关于PCI

PCI peripheral component interconnect 外设部件互连标准



优点

1.   即插即用

2.   中断共享

3.   可扩展

4.   自动配置


缺点

1.   扩展性差:PCI总线结构限制了可挂载的设备数量,如66MHZ PCI总线负载能力为3

2.   安全性差:由于设备共享总线,系统难区分不同数据流而采用相应的保护措施

3.    容错性差:总线设备发生故障时,对故障设备的隔离和定位非常困难。任何单个I/O连接点的错误都能导致整个系统的崩溃

4.   系统整体I/O吞吐量地:所有设备共享一总线带宽,即外设越多,可用的带宽越少,从而噪声严重的系统I/O瓶颈。

同时,大量的引脚数目带来了电气特性和机械特性问题,使得PCB空间、信号频率以及传输距离均受到很大的制约。



主要性能:

1.   总线32位或64位,工作频率33MHZ/66MHZ,传输速率132MHZ/s、264MHZ/s 。

2.    32位地址和数据信号分时复用。

3.    支持64位寻址

4.    适用5V和3.3V电源供电

PCI-X总线位宽不改变的情况下,提高时钟频率:

PCI-X1.0的时钟频率66MHZ、100MHZ、133MHZ

PCI-X2.0的时钟频率有266MHZ、533MHZ、1066MHZ

此外,PCI-X还在传输协议上进行了改进,其采用了“寄存器到寄存器”的新协议

(“寄存器到寄存器”的新协议模式:发送方发出的数据信号会被预先送入一个专门的寄存器内,并在寄存器中保存一个时钟周期,接收端只要在这个时钟周期内做出响应,取走数据即可)



总线结构

PCI总线上可以挂载PCI设备和PCI桥片,PCI总线上只允许有一个PCI主设备,其他均为PCI从设备。而且读写只能在主从设备之间进行,从设备之间的数据交换需要通过主设备中转。



管脚信号

PCI主设备最少需要49根线,从设备最少需要47根线,剩下的线可选。

——管脚信号类型

A.in 输入信号

B.out 输出信

C.t/s 双向三态信号(Tri-state),无效时为高阻态

D.s/t/s 持续三态信号(Sustained Tri-state)

每次有且只有一个单元拥有并驱动的低有效、双向、三态信号。驱动一个s/t/s信号到低的单元在释放该信号浮空之前必须要将它驱动到高电平至少一个时钟周期

E. o/d 漏记开路输出(Open Drain)

——管脚硬件处理

A.需要上拉的信号,上拉电阻10K[if !supportAnnotations][L1][endif] 

FRAME#、TRDY#、IRDY#、DEVSEL#、STOP#、PERR#、SERR#、LOCK#、REQ64、REQ#、ACK64#、REQ#、GNT#、AD[63:32]、C/BE[7:4]、PAR64等

(未使用时也需要处理,避免悬空)

B. 不需要上拉的信号

AD[31:0]、C/BE[3:0]、PAR、IDSEL、CLK


①   系统引脚

CLK:in,系统时钟,为所有PCI上的传输及总线仲裁提供时序。除RST#外,所有PCI信号都在CLK的上升沿采样

RST#:in,异步复位信号

②  地址及数据引脚

AD[31:0]:t/s,地址数据复用引脚。地址和数据传输,必须在FRAME#有效器件进行。当FRAME#有效的第1个时钟周期,AD[31:0]传输的是地址信号,称为地址期;当IRDY#和TRDY#同时有效时,AD[31:0]传输是数据信号,称为数据期。传输数据是,AD[7:0]为最低字节

C/BE[3:0]#:t/s,总线命令和字节允许复用引脚。在AD[31:0]传输地址时,C[3:0]上传输的是总线命令;在AD[31:0]传输数据时,BE[3:0]用作字节允许,表示哪些通道上的数据有效。BE0#对应最低字节。

PAR:t/s,AD[31:0]和C/BE[3:0]#上的数据偶效验。PAR与AD[31:0]有相同的时序,但延迟一个时钟,在地址段后一个时钟,PAR稳定并有效;对于数据段,在传输中,PAR在IRDY#有效一个时钟稳定有效,而在传输中,PAR在TRAY#有效后一个时钟稳定并有效。一旦PAR有效,它必须保持有效值到当前数据段完成后一个时钟。在地址段和写数据段,主PCI设备驱动PAR;在读数据段,目标从PCI驱动PAR.

③   接口控制引脚

FRAME#:s/t/s,帧开始信号。

IRDY#:s/t/s,Initiator Ready。在读操作中,IRDY#有效说明总线主设备已准备好接收数据;在写操作中,IRDY#有效说明AD[31:0]上已有有效数据。

TRDE#:s/t/s,Target Ready。在写操作中,TRDE #有效说明总线主设备已准备好接收数据;在读操作中,TRDE #有效说明AD[31:0]上已有有效数据。

STOP#:s/t/s,停止信号

LOCK#:s/t/s,锁定信号

IDSEL:in,初始化设备选择(Initialization Device Selcet)。在配置空间读写操作送,用作片选

DEVSEL:s/t/s,设备选择。驱动有效时,说明驱动它的设备已将其地址解码为当前操作的目标设备。

④  仲裁引脚

REQ#:t/s,申请。向冲裁器说明单元想要使用的总线。

GNT#:t/s,允许。仲裁器向申请单元说明其对总线的操作已被允许。

⑤ 错误反馈引脚

PERR#:s/t/s,奇偶校验错误(Parity Error)。PERR#维持三态,在检测到奇偶校验错误后,在数据结束后两个时钟周期,由接收数据的单元驱动PERR#有效,并至少持续一个时钟周期。只有发出DESEL#的单元才能发出PERR#。

SERR#:o/d,系统错误(System Error)。用于反馈地址奇偶校验错误、特殊周期命令中的数据奇偶校验错误和将引起重大事故的其他灾难性的系统错误。

⑥   中断引脚

INTA#、INTB#、INTC#、INTD#:o/d,中断输出。仅对多功能设备有意义。对于单设备只能使用INTA#

⑦   高速缓存支持引脚

SBO#:in/out,检视补偿。当其有效时,说明对某条变化线的一次命中。当其无效而SDONE有效时,说明一次“干净”的检视结果

SDONE:in/out,检视进行。

⑧   64位总线扩充引脚

AD[63:32]:t/s,地址数据复用引脚提供32个附加位

C/BE[7:4]:t/s ,总线命令和字节允许复用引脚

REQ64#:s/t/s,请求64位传输

ACK#:s/t/s,应答64位传送

PAR64:t/s,高双字偶校验


时序(写操作)

读操作同写操作相似,只是在FRAME#有效后的第一个时钟周期内,C/BE#上传输的是命令不同而已(I/O读操作命令为0010;I/O写操作命令为0011)


PCI仲裁器工作原理

       PCI总线仲裁器采样到REQ2后,等到IRDY和FRAME有效后,才将GNT#拉低。避免某些PCI设备申请总线使用权而实际并不适用。

       假如PCI总线仲裁器采样到REQ2后,一直没有采样到FRAME和IRDY信号有效,仲裁器等到内部定时器超时后,就不再等待了。

       仲裁器规则:优先级高设备抢占优先级低设备资源


       假如PCI设备的优先级顺序为:PCI3>PCI2>PCI1

       PCI1正在使用PCI总线传输数据时,PCI2想要使用PCI总线,于是将REQ2拉低,向PCI总线仲裁器申请PCI总线的使用权。此时REQ1和REQ2均处于有效状态,虽然PCI2的优先级高于PCI1,但是总线仲裁器不会马上响应PCI2的请求。而是等到PCI1完成以此操作(注:是一次操作,而不是全部)后,PCI1将FRAME和IRDR总线驱动为高。

PCI2探测到PCI总线空闲后,将FRAME和IRDY信号驱动为低。总线仲裁器采样到这两个信号后,将GNT1驱动为高,同时将GNT2驱动为低,将总线的使用权交给PCI2。

此时,如果PCI1完成了全部数据传输,会将REQ1驱动为高。

如果,PCI1还有数据需要传输,那么它会将REQ1一直保持低电平,一直进行总线申请。等PCI2完全全部操作后,再将PCI总线的使用权释放给PCI1。



PCI设备的配置空间

       目前三类首部格式:

              首部类型0—用于全部除PCI之外的设备

              首部类型1—用于PCI-PCI桥

              首部类型2—用于Card Bus桥



PCI案例分析

问题描述:测试PCI总线的TRDY信号时,发现该信号低电平转高电平太缓慢

       分析:

s/t/s特点:

a. 在某一时刻只能由一个设备驱动;

b. 在释放之前必须将该信号驱动到高电平,并且至少保持一个时钟周期

c.  其他设备必须等该信号释放至少一个周期以上才能重新驱动

d. 该信号需要进行外部上拉

上面的异常波形产生的原因为:IRDY在低电平状态直接为释放为高阻态后,完全依靠外部的上拉电阻将其拉到高电平位置。由于外部上拉较弱,所以出现上升缓慢的现象。

解决:修改逻辑代码即可

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容

  • 1、嵌入式系统的定义 (1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本...
    荣卓然阅读 1,808评论 0 5
  • ​​​本文主要介绍嵌入式系统的一些基础知识,希望对各位有帮助。 嵌入式系统基础 1、嵌入式系统的定义 (1)定义:...
    OpenJetson阅读 3,297评论 0 13
  • 什么是嵌入式 IEEE(Institute of Electrical and Electronics Engin...
    Leon_Geo阅读 3,694评论 1 20
  • 关于时间这件小事 频率 带宽与频率与频率相关的另一个参数是数据传输率,也称为"带宽",用于衡量数据通信速度的快慢。...
    胡聿泽阅读 1,082评论 0 0
  • 第五章中央处理器 5.1.1 CPU的功能 程序是一个指令序列,这个序列明确告诉计算机应该执行什么操作,在什么地方...
    倾慕_ff96阅读 1,501评论 0 0