pci总线协议学习笔记——PCI总线基本概念

news2024/12/23 6:50:32

1、pci总线概述

(1)PCI,外设组件互连标准(Peripheral Component Interconnection),是一种由英特尔(Intel)公司1991年推出的用于定义局部总线的标准;
(2)最早提出的PCI总线工作在33MHz频率之下,传输带宽达到133MB/s(33MHz * 32bit/s)。后面提出64bit的pci总线,总线频率也提升到66MHz;
(3)pci协议已经被pcie总线替代,现在pcie总线是主流,但是软件编程上pci和pcie两个总线是兼容的,几乎可以不用做区分,只需要在配置、传输等底层操作去区分两种总线协议;

2、pci总线特点

(1)pci总线是串行总线,有32/64根地址线。地址和数据都通过这32/64根地址线进行传输,分时复用;
(2)pci总线上可同时挂载多个设备,设备分为主设备和从设备,主设备一般是主控芯片的pci控制器,需要负责pci总线上的总裁;
(3)pci设备将共享总线。同一条pci总线上的设备,总线都是接在一起的,会通过片选引脚、地址范围、总线号、设备号、功能号等机制来觉得当前和哪个设备通信;
(4)pci总线通信大致分为两个阶段:配置阶段、通过地址访问阶段;
(5)配置阶段:pci总线控制器去依次扫描接在pci总线上的所有设备,访问设备的配置空间,知道设备的类型、要申请的资源,然后给设备分配总线号、设备号、功能号、地址空间,并写进设备的配置空间;
(6)地址访问阶段:在配置阶段给每一个pci设备分配pci地址范围并写进设备寄存器,以后设备会监听地址线,当监听到地址线上传输的地址是自己的地址范围,就会去处理;
(7)pci采用同步时序协议,信号线里有clk时钟线;

3、pci信号线

在这里插入图片描述

信号线功能描述
CLK总线的时钟线,提供同步时序基准,由pci控制器提供
RST#复位信号线,强制所有pci寄存器、排序器、信号回到初始状态
AD[0:63]地址和数据复用线
FRAME#帧信号,表示传输开始和结束
C/BE[3:0]总线命令编码
INTA#—INTD#终端信号线
IRDYMaster可以传输数据的标志
TRDYSlave可以转输数据的标志
DEVSEL#当Slave发现自己被寻址时置低应答
GNT#总裁器允许Master得到总线使用权的信号
IDSEL片选引脚,高电平表示该设备被主设备选中

4、PCI总线的命令码

在这里插入图片描述

5、 PCI总线读周期时序分析

在这里插入图片描述

(1)知识点补充:PCI总线是在下降沿改变信号线上的状态,在上升沿锁定信号线的状态;圆形箭头符号,表示信号线的所有权发送变化;
(2)第一个周期上升沿:此时FRAME#是高电平,表示没有开始传输数据,此时总线空闲;
(3)第二个周期上升沿:此时主设备将地址发到AD线上,将命令码发到C/BE#线上,FRAME#拉低表示数据传输开始,FRAME#拉低的第一个时钟周期AD线上传输的是地址,后续时钟周期AD线上传输的是数据;
(4)第三个周期上升沿:从设备开始解析地址和命令码,地址匹配的从设备将DEVSEL#拉低;主设备将IRDY#线拉低,表示准备好接收数据;
(5)第四个周期上升沿:从设备将数据发送到AD线上,并将TRDY#拉低,表示从设备准备好数据;主设备接收数据;
(6)第五个周期上升沿:从设备没有准备好数据,将TRDY#线拉高,插入一个等待周期;
(7)第六个周期上升沿:从设备将数据发送到AD线上,并将TRDY#拉低,表示从设备准备好数据;主设备接收数据;
(8)第七个周期上升沿:从设备将数据发送到AD线上,并将TRDY#拉低,表示从设备准备好数据;主设备将IRDY#拉高,表示没有准备好接收数据,插入一个等待周期;
(9)第八个周期上升沿:主设备从AD线上接收数据,并且FRAME#被拉高,表示数据传输结束,当前这是最后一个字节;

6、典型pci总线拓扑

在这里插入图片描述

PCI总线上不仅可以挂载多个PCI设备,还可以挂载PCI桥,形成多级的PCI总线架构;

推荐

给大家推荐一个学校嵌入式知识的网站,博主在大学时候学习嵌入式知识、找工作的时候都在用这个网站,网站里有C语言、Linux等等的笔试题、面试常问问题等等知识,无论是学习基础知识、面试刷题、交流工作经验都是不错的选择。大家一起进步,欢迎留言交流。
链接:学习神器跳转
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/477606.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode】236. 二叉树的最近公共祖先

1.问题 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是…

1992-2022年31省GDP、第一产业增加值、第二产业增加值 第三产业增加值

1992-2022年31省GDP、第一产业增加值、第二产业增加值 第三产业增加值 1、时间:1992-2022年 2、范围:包括31省 3、指标:省GDP、省第一产业增加值、省第二产业增加值、省第三产业增加值 4、缺失情况说明:无缺失 5、来源&#…

【python知识】__init__.py的来龙去脉

一、说明 我们常见__init__.py文件,但说不清楚它的用途,在本文,我将首先把它的来龙去脉说清楚,然后告诉大家,如何编制python工程,培养全局的编程格局。 二、包-模块-函数结构 在Python工程里,当…

playwright连接已有浏览器操作

文章目录 playwright连接已有浏览器操作前置准备打开本地已有缓存的Chrome(理解)指定端口打开浏览器连接指定端口已启动浏览器(推荐) playwright连接已有浏览器操作 前置准备 pip install playwright # 安装playwright的python…

红黑树数据结构

现在JAVASE中HashMap中底层源码是由数组链表红黑树进行设计的,然后很多地方也是用到红黑树,这里单独对红黑树数据结构进行简单的介绍。 目录 红黑树概念 红黑树的性质 自平衡规则 代码 红黑树概念 红黑树,是一种二叉搜索树,…

linux常用命令大全(保姆及入门)

linux常用命令大全 一、文件处理命令1、目录处理命令:ls2、目录处理命令2.1 mkdir2.2 pwd2.3 rmdir2.4 cp2.5 mv2.6 rm 3.文件处理命令3.1 touch3.2 cat3.3 tac3.4 more3.5 less3.6 head3.7 tail 4.链接命令4.1 ln 二、权限管理命令2.1 chmod2.2 chown2.3 chgrp 2.4…

VRPTW:新雀优化算法NOA求解带时间窗的车辆路径问题

一、新雀优化算法NOA求解带时间窗的车辆路径问题 1.1VRPTW模型如下: 带时间窗的车辆路径问题(Vehicle Routing Problem with Time Windows, VRPTW) 1.2新雀优化算法NOA求解VRPTW close all clear clc SearchAgents_no30; % 种群大小 Function_nameF1; Max_ite…

准备“开黑”,电脑却“告退”?游戏闪退的解决方法

游戏玩家近期可能会发现,不少大作陆陆续续登录PC市场,比如《死亡岛 2》、《无畏契约》等。但也有不少游戏用户会发现,电脑玩游戏时容易出现闪退的情况。特别是在进行高负荷运算的时候,有一些游戏更为容易出现这种情况,…

[架构之路-176]-《软考-系统分析师》-17-嵌入式系统分析与设计 -1- 实时性(任务切换时间、中断延迟时间、中断响应时间)、可靠性、功耗、体积、成本

目录 前言: 1 7 . 1 嵌 入 式 系 统 概 述 1 . 嵌入式系统的特点 (1) 系统专用性强。 (2) 系统实时性强。 (3) 软硬件依赖性强 (4) 处理器专用。 ( 5 ) 多种技术紧密结合。 (6) 系统透明性。 (7) 系统资源受限。 2 . 嵌入式系统的组成 1 7 . 3 嵌入式实…

拷贝构造函数和赋值重载函数详解

1.拷贝构造函数 1.1拷贝构造函数的概念 拷贝构造函数:只有单个形参,该形参是对本类类型对象的引用(一般常用const修饰),在用已存在的类类型对象创建新对象时由编译器自动调用。拷贝构造函数也是特殊的成员函数,其特征如下&#…

Golang每日一练(leetDay0051)

目录 151. 颠倒字符串中的单词 Reverse Words In A String 🌟🌟 152. 乘积最大子数组 Maximum Product Sub-Array 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一…

【分布式】CAP原则和BASE理论

CAP原则概述 CConsistency一致性AAvailability可用性PPartition tolerance分区容错性 1998年,加州大学的计算机科学家Eric Brewer提出,分布式系统有三个指标 一致性(C):在分布式系统中的所有数据备份,在同…

TiDB实战篇-基于索引的SQL优化

简介 TiDB实战篇-基于索引的SQL优化。 Online DDL 允许直接在线执行ddl操作,不会锁表,但是执行多个ddl的时候会要排队。 原理 控制创建索引的速度 查看影响 标红的是加了多少行索引。 添加索引的线上的影响(读写频繁) 只读场…

Linux程序设计之IP地址转换

1.通常,人们习惯于使用可读性好的字符串来表示IP的地址,但是,在实际的使用过程中,需要使用的IP地址应该为无符号的整数(在计算机中存储时是对应的二进制,只有二进制计算机才能识别,即0、1)。已经封装好的函…

windows开机不自动挂载磁盘的方法

本人的电脑系统为win11 写作时间20230430 开机不挂载某块磁盘的理由 1.本人电脑上有个仓库盘是机械硬盘,并不是每次开机都要用到,开机不挂载也许有利于增加数据盘的寿命 2.挂载了数据盘,有时候打开文件页面会比较慢,不够丝滑 …

MATLAB绘制汽车理论的仿真图片

这里写自定义目录标题 仿真绘图内容发动机最优曲线最优燃油消耗率曲线最优效率曲线工作时间/能量消耗的分布 传统车动力性分析绘制三(或多个)y坐标轴函数统计数据分布情况函数 仿真绘图内容 从传统车到新能源混合动力车型的不同绘制。 发动机最优曲线 …

排序算法 - 选择排序

文章目录 选择排序介绍选择排序实现选择排序的时间复杂度和稳定性选择排序时间复杂度选择排序稳定性 代码实现核心&总结 每日一道算法,提高脑力。第四天,选择排序。 选择排序介绍 它的基本思想是: 首先在未排序的数列中找到最小(or最大)元素&#…

Vue3超详细的ref()用法,看这一篇就够了

ref()接受一个内部值,返回一个响应式的、可更改的 ref 对象,此对象只有一个指向其内部值的属性 .value。 ref() 将传入参数的值包装为一个带 .value 属性的 ref 对象。 1、ref 对象是可更改的,即可以为 .value 赋予新的值 举例: c…

使用Vscode调试shell脚本 环境搭建基本步骤

操作系统: Linux --CentOS. step1: 在Vscode 中安装Bash Debug Step2:创建一个名字为123.sh的shell脚本; 输入123.sh, 回车: ​​​​​​Step3:编辑简单的待打印的内容,如下: Step4: 配置编译器 修改为下面内容: Step5: 点击按…

spring源码搭建记录

spring源码搭建记录 一.环境1.1 构建工具1.1.1 Gradle简介1.1.2 与常见的项目构建工具对比1.1.3 gradle下载1.1.4 Gradle安装 1.2 jdk与源码版本1.3 源码下载与导入 一.环境 1.1 构建工具 Spring源码工程使用的项目构建工具不是Maven,而是Google的Gradle。首先需了…