PCI技术规格简介
控制系统架构:
一个完整的控制处理系统一般由CPU、北桥(Northern Bridge)、南桥(Southern Bridge)、PCI-PCI 桥、以及其他功能设备组成。而对于一些相对高端的期间或者设备,我们往往是通过PCI总线施加控制或者数据传送,(当然一些低端的还有其他控制接口,不过我们就先不管了)从1992年创立规范到如今,PCI总线已成为了计算机的一种标准总线。由PCI总线构成的标准系统结构如图一所示。
CPU
CPU是系统的核心部件,内部有CACHE以提高运行速度,再次之则有DDR/SDRAM等等最为程序载体。
北桥(Northern Bridge/ Host Bridge)
北桥芯片一端与CPU直接连接,另一端与PCI 总线设备直接连接。北桥将CPU与PCI 总线隔离开来,使得CPU的升级不会引起PCI 系统结构的变化,同时为多种总线接口之间提供方便的互通。
北桥通常具备三种接口:
CPU总线接口:连接CPU芯片
存储器总线接口:连接内存
PCI总线接口:连接PCI 设备
北桥为CPU访问PCI 总线上的所有PCI 设备提供了一条低延迟路径,同时CPU可以通过北桥高速访问到内存。
说明:一些嵌入式CPU可能没有NB,是把NB精简一些作在了CPU里面,不过原理和架构是几乎不便的,不用特别在意形式。
PCI 总线上挂接的设备也可以通过北桥访问到内存,并且不需要CPU干预。
南桥 SBG
南桥芯片提供PCI 系统与其他类型总线(如ISA、IDE等)的连接,实现PCI 总线与通用存储设备、串口、硬盘等的连接。部分南桥芯片具备负向译码功能,使得PCI 系统在上电时可以对南桥下挂接的低速设备进行操作,实现数据读取或写入,控制施加信息读取等。
PCI-PCI桥
PCI 总线可以级连,各级PCI 总线段被分配给不同的PCI 总线号(0~255)加以区分。
PCI-PCI 桥提供上一级PCI 总线与下一级PCI 总线的连接,它的两侧都是PCI 总线接口。透明桥的两套PCI 总线统一寻址,不透明桥的两套PCI 总线各自独立寻址。
其它的一些功能设备
根据系统要求,还可以在PCI 总线上挂接网口设备、SCSI 设备、音频设备和视频设备等,这些设备可以是芯片,也可以是插卡,还可以是扣板。
芯片:位于母板上。
插卡:通过接插件与母板连接,放置时与母板保持垂直。应用于对空间要求不高的场合,在PCI 系统中称为add-in card。
扣板:通过接插件与母板连接,放置时与母板保持平行。应用于对空间要求较高的场合,在PCI 系统中称为PMC(PCI Mezzanine Card)。
插卡与扣板都有严格的机械尺寸和电气特性要求。
插卡按照长度分为长卡、短卡和可变长度卡,按照工作电压分为5V卡、3.3V卡和通用卡。
扣板按照外形分为single卡和double卡,single卡只占用一组PMC插座,double卡同时占用两组PMC插座。
PCI总线信号定义
系统信号
CLK (IN):系统时钟信号。对所有PCI设备来说都是输入信号,频率范围是0-33MHz,除RST#、INTA#、INTB#、INTC#、INTD#之外,所有信号都在CLK的上升沿有效
RST# (IN):PCI 复位信号。用来使PCI专用的特性寄存器、定序器和相关的信号恢复到初始状态。
数据和地址信号
AD[31::00] (T/S):数据/地址复用的输入/输出信号。在地址期时,AD[31::00]上的数据为32位物理地址。在数据期时,用于传送数据,AD[07::00]为最低字节,AD[31::24]为高字节。
C/BE[3::0]# (T/S):总线命令/字节使能复用信号。地址期对应的是总线命令;数据期对应的是字节使能信号,表示在整个数据期中,AD[31::00]上那些字节为有效数据。
接口控制信号
FRAME# (S/T/S):帧周期信号,由当前的主设备驱动,表示一次访问的开始和持续的时间,FRAME#无效后,是传输的最后一个数据期。
IRDY# (S/T/S):主设备准备好信号,该信号有效时表明发起本次传输的设备能够完成一个数据期。与TRDY#配合使用,二者同时有效,数据才能完成传输。
TRDY# (S/T/S):目标设备准备好信号,有效时表示目标设备已作好进行当前数据传输的准备工作,可以进行相应的数据传输。
STOP# (S/T/S):停止数据传送信号。有效时表示目标设备要求主设备终止当前的数据传送,该信号由目标设备发出。
LOCK# (S/T/S):锁定信号。表示驱动它的设备所进行的操作可能需要多个传输才能完成。LOCK#信号的控制是由PCI总线上发起数据传输的设备,根据它自己的约定并结合GNT#信号来完成的。
IDSEL (IN):初始化设备选择信号。在配置空间读/写传输期间,用作片选信号。计算机各插槽上的IDSEL信号是不同的;
DEVSEL# (S/T/S):设备选择信号。该信号有效时,表示驱动它的设备已经成为当前访问的目标设备。换言之,它的有效说明PCI总线某一设备已被选中。
仲裁信号
REQ# (T/S):总线占用请求信号,该信号一旦有效即表明驱动它的设备要求使用总线。它是一个点到点的信号线,任何设备都可以有其REQ#信号。
GNT# (T/S):总线占用允许信号,用来向申请占用总线的设备,其请求已获得批准,它也是一个点到点的信号线,任何主设备都有自己的GNT#信号。
注意:REQ #、GNT#仅在PCI设备作为MASTER设备时需要实现。
错误报告信号
PERR# (S/T/S):数据奇偶校验错报告信号,对于每个数据接收设备,如果发现数据有错误,就应该在数据收到后的两个时钟周期内将PERR#激活,由于该信号为持续的三态信号,因此该信号在释放前必须先驱动为高电平,另外对于数据奇偶错的报告既不能丢失也不能推迟。
SERR# (O/D):系统错误报告信号,作用是报告地址奇偶错、特殊命令序列中的数据奇偶错,以及其它可能引起灾难性后果的系统错误。
中断信号
INTA#、INTB#、INTC#、INTD#:PCI总线中共有四条中断线,都是漏极开路,分别用以请求一个中断。单功能设备只能用INTA#,后三个中断只能用于多功能设备。
其它可选信号
AD[63::32](T/S):扩展的32位地址和数据多路复用线。
C/BE[7::4]#(T/S):总线命令和字节使能多路复用信号线,在数据期间,若REQ64#和ACK64#同时有效时,该四条线上传输的是表示数据线上那些字节是有意义的字节使能信号。
REQ64# (S/TS):64位传输请求。表示设备要求采用64位通路传输数据。
ACK64# (S/T/S):64位传输认可。表明目标设备将用64位传输。
PAR64# (T/S):奇偶双字节校验。是AD[64::32]和C/BE[7::4]的校验位。
计算机PCI插槽专用信号:
PRSNT1#、PRSNT2#,表示插卡是否存在以及插卡功耗的信号。
注:除了信号的功能外,要注意信号的类型以及信号是什麽单词的缩写,这样能教透彻的理解并记住它了 (IN:标准输入信号;
OUT:标准输出信号;
T/S:双向三态输入输出信号;
S/T/S:低电平有效的三态信号,每次只能被1个设备驱动,并且在该设备释放之前必须驱动该信号至少1个时钟周期的高电平;
O/D:开漏输出信号)