1、PCI和PCIE的差异
(1)PCIE协议在软件编程上是兼容PCI协议,不同在于PCIE和PCI的控制器;
(2)PCIE是差分串行信号线,PCI是电平并行信号线;
(3)PCI协议使用INTA#、INTB#、INTC#、INTD#四根中断线来触发终端,PCIE协议没有这几个引脚,但是在软件上兼容PCI协议的这种中断方式;PCIE还支持MSI、MSI-X中断方式;
(4)PCI总线是一对多的,一个PCI总线可以挂载多个PCI设备;PCIE总线是一对一的,如果需要扩展,需要借助Switch设备;
2、PCIE引脚定义
3、PCIE总线lane概念介绍
(1)PCIE设备之间连接叫做Link,一个Link可以由多个lane组成,PCIE设备里经常提到的X1、X2、X8,就是指Link由1个、2个、8个lane组成;
(2)PCIE是差分串行信号线,两根线用于收,两根线用于发,一收一发组成一个lane;
4、PCIE总线速率计算
参考博客:《查看pcie总线上的设备ID以及带宽计算》;
5、PCIE总线的层次结构
(1)PCIE分为三层:事务层、数据链路层、物理层;
(2)事务层:主要是将要传输的数据,目标设备的PCIE地址等封装成数据包。事务层的数据包叫TLP,由包头、数据、包尾组成,包头指定了目标设备的pcie地址;
(3)数据链路层:对事务层传下来的包进行加头加尾,主要保证数据传输。比如:给每包数据添加序号,支持重传机制;
(4)物理层:在物理层觉得数据的传输时序。比如开始信号、结束信号等;
类比:层次结构和网络的TCP/IP结构类似,发送时从上往下每层都加头加尾,接收时从下往上去头去尾;
推荐
给大家推荐一个学校嵌入式知识的网站,博主在大学时候学习嵌入式知识、找工作的时候都在用这个网站,网站里有C语言、Linux等等的笔试题、面试常问问题等等知识,无论是学习基础知识、面试刷题、交流工作经验都是不错的选择。大家一起进步,欢迎留言交流。
链接:学习神器跳转