硬盘爱好者 发表于 2006-11-21 14:05:12

PCI总线操作规则

1. 一旦复位完成,应保证下列信号在所有时钟的上升沿稳定:LOCK#,IRDY#,TRDY#,
REQ#,FRAME#,DEVEL#,STOP#,GNT#,REQ64#,ACK64#,SBO#,SDONE#,PERR#,SERR
#(只在下降沿)。
2. 保证地址/数据在以下各种情况中的相应要求:
a. 在FREAME#有效后的第一时钟上,无论地址线AD是否全部有用,他们都必须
是稳定的。
b. 在REQ64#有效后的第一时钟上,无论地址线AD 是否全部有用,他们都必须
是稳定的。
c. 在读操作中,当TRDY#有效时,数据线AD与字节使能无关,必须全部稳定
有效;而在写操作里,当IRDY#有效时,数据线AD与字节使能无关,必须全部
稳定有效。在其它任何时间数据线的状态都是不确定的。在读写操作中,一旦相应的TR
DY#或IRDY#有效,数据线就不能发生变化直到当前数据期完成为止。
d. 在读/写传输中,当ACK64#和TRDY#/IRDY#有效时,数据线AD与字节使能无
关应全部稳定有效,而在其它任何时间都是不确定的。
e. 在特殊周期命令中,当IRDY#有效时,数据线AD在传输期稳定有效且与字
节使能无关。
f. 在读/写传输中,当TRDY#/IRDY#有效后,不能向PCI总线上发异步数据。
3. 命令/字节使能线的状态应满足下述要求:
a. 作为总线命令的C/BE#和C/BE#,分别在FRAME#和REQ64#初次建立时
保持稳定;有效并且含有相应的命令码。
b. 作为字节使能的C/BE和C/BE#,在地址期过后的时钟上以及整个数
据期的每个时钟周期都是稳定有效的,并且不受等待周期插入的影响。在突发传输期内
,主设备可以在每个数据期完成时,所对应的时钟上修改字节使能,但次修改值要在下
一个时钟上才能有效。
4. PAR在AD有效后的一个时钟上稳定有效;PAR64在AD有效后的一
个时钟上稳定有效。
5. IDSEL只在配置访问时相应的FRAME#建立后的第一个时钟上稳定有效,而在其它任何
时间都是不确定的。
6. 对于RST#,IRQA#,IRQB#,IRQC#和IRQD#没有限制或者说是异步的。
7. 当FRAME#和IRDY#无效而GNT#有效时,一个设备可以启动一次访问。
8. FRAME#信号的初次建立就标志着一次传输的开始。
9. 在所有的PCI传输中,FRAME#和IRDY#应符合下列条件:
a. FRAME#和IRDY#定义了总线的忙/闲状态。当其中一个有效时,总线是忙的;两个都无
效时,总线处于空闲状态。
b. 一旦FRAME#被置为无效,在同一传输期间不能重新设置。
c. 除非设置IRDY#无效,一般情况下不能设置FRAME#无效。
d. 一旦主设备设置IRDY#,直到当前数据期结束为止,主设备不能改变IRDY#和FRAME#的
状态。
10.当下列条件之一满足时,表明最后一个数据期已经 完成:
a. FRAME#无效而TRDY#有效(正常终止方式)。
b. FRAME#无效而STOP#有效(目标终止方式)。
c. FRAME#无效并且设备选择计时器已经计满(主设备废止方式)。
d. DEVSEL#无效而STOP#有效(目标废止方式)。
11.当FRAME#和IRDY#无效时,表示传输结束。
12.下列一般规则在所有PCI传输中对于FRAME#、IRDY#、TRDY#、STOP#都有效:
a. 每当STOP#发出时,FRAME#必须尽快地撤消,但要符合撤消FRAME#的规则,即必须发
出IRDY#。FRAME#的撤消应尽快在STOP#发出之后2-3个时钟周期之内实现。目标设备不能
假设STOP#的发出和FRAME#的撤消之间有任何时间关系,而是必须保持STOP#信号一直到
FRAME#撤消为止。当主设备取样发现STOP#有效时,它就必须在有IRDY#的周期后面的第
一个周期内将FRAME#撤消。IRDY#的发出和FRAME#的撤消动作可以作为主设备正常的IRD
Y#行为,并根据主设备何时准备完成一次数据传输而延迟0个或者多个周期。然而,如果
TRDY#无效,主设备便可立即发出IRDY#,因为这时不会发生数据传输。
b. STOP#一旦建立,就必须保持到FRAME#撤消为止,接着STOP#也必须撤消。
c. 一旦目标设备发出了TRDY#或STOP#,它就不能改变DEVSEL#、TRDY#和STOP#信号,直
到当前的数据期完成。
13. 主设备和目标设备之间的数据传送发生于每个TRDY#和IRDY#同时有效的时钟沿上。

14. 当数据有效时,要求数据源无条件发出XRDY#信号(写传输为IRDY#,读传输为TRDY#
)。接受设备也必须发出它的XRDY#信号。
15. 如果当前传输被目标终止时,主设备必须撤消它的REQ#信号至少两个PCI时钟周期,
一个是总线进入的第一个空闲周期,另一个在此空闲周期之前或之后。
16. 一个设备通过DEVSEL#信号表明它是被访问的目标。
17. DEVSEL#的发出必须早于或同时于目标使能输出时所对应的时钟边沿。
18. 一旦DEVSEL#建立,除非被目标废止,否则在最后一个数据期完成之前,不允许将它
撤消。
19. LOCK#信号具有独占性并且只能由一个设备驱动,当总线释放时它仍可以保留。
20. 在PCI总线上,一个支持LOCK#的目标设备必须遵守下列规则:
a. 当LOCK#在地址期中撤消时,被访问的设备要将自身锁定。
b. 一旦建立了锁,目标将保持锁定状态,直到取样发现FRAME#和LOCK#一起撤消或者发
出目标废止。
c. 保证LOCK#信号所有者的独占性,一旦锁已建立,至少有16个字节的资源,最多可以
锁定整个资源。
21.在PCI总线上,使用LOCK#的主设备必须遵循以下规则:
a. 在锁操作期间,一个主设备只能访问一个单一的资源。
b. 一个锁不能跨越设备边界。
c. 16个对齐的字节是一个主设备在锁操作中执行互斥时可以计算的最大资源,对16字
节块内任何字节的互斥访问,将会锁住整个16字节的块。
d. 锁操作中的第一个传输必须是读传输。
e. LOCK#必须在紧跟地址期的时钟上被设置,并保持设置以继续控制。
f. 在数据期结束之前,如果出现再试并且锁还没有建立时,应该释放LOCK#。
g. 无论何时,在一存取被主、从设备打断时,必须释放LOCK#。
h. 在连续的锁操作中,LOCK#必须被置成一个最小空闲周期。
22.仲裁器可以在任何时钟置某一设备的GNT#信号无效。
23.GNT#一旦建立,其撤消应符合以下规则:
a. 如果总线不是处于空闲状态,有可能一个GNT#的撤消时刻碰巧是另一个GNT#的发出
时刻。否则,要求一个GNT#的撤消到下一个GNT#的发出之间要有一个时钟的延迟,以避
免在AD线和PAR线上出现冲突。
b. 当FRAME#无信号时,GNT#可以在任何时间撤消,以便服务于另一个主设备,或者作
为对应的REQ#撤消的响应。如果GNT#撤消而FRAME#有效并可继续下去。
24.当仲裁器向一个设备发出了GNT#信号并且总线处于空闲状态时,该设备必在8个PCI
时钟周期内将AD、C/BE#和PAR驱动到有效状态。
25.奇偶校验的产生应依据下述规则:
a. 不管类型及形式,在所有PCI事务中奇偶校验的计算方法不变。
b. AD、C/BE#及PAR上"1"的个数等于偶数。
c. AD、C/BE#及PAR上"1"的个数等于偶数。
d. 奇偶校验的产生不是可选项,它必须由所有PCI从属设备完成。

mahuafeng 发表于 2008-12-31 21:59:00

谢谢下谢谢嘻嘻嘻嘻嘻惺惺相惜下谢谢嘻嘻嘻嘻嘻嘻嘻嘻嘻嘻

szm5168 发表于 2011-3-24 19:22:23

看过不错的

szm5168 发表于 2011-4-8 12:49:43

如果出现修复PCI FRAME时,应该怎么去修呀?
页: [1]
查看完整版本: PCI总线操作规则