GNT#:Arbiter允许Master得到总线使用权的信号
★ 错误报告
PERR#:数据奇偶校验错
SERR#:系统奇偶校验错
当PCI总线进行操作时,发起者(Master)先职位REQ#,当仲裁器(Arbiter)的许可(GNT#)时,会将FRAME#置底,并在AD总线上放置从设备(Slave)的地址,同时C/BE[3:0]放置命令信号,说明接下来得传输类型。PCI总线上的所有设备都需对此地址译码,被选中的设备要置DEVSEL#为低,以声明自己被选中,然后当IRDY与TRDY都置低时,可以传输数据。在Master数据传输结束前,将FRAME#置高以标明只剩最后一组数据传输,并在传完数据后放开IRDY#以释放总线控制权。
3.3.1 PCI总线控制命令
PCI总线传输采用命令驱动方式,总线命令的作用用来规定主、从设备之间的传输类型,当AD总线上传输的是地址时,C/BE[3:0]用于控制总线命令,主要是对目标设备的控制。如下表3-1所示
表3-1 PCI总线命令
C/BE[3:0]# 命令类型说明
0000 中断应答
0001 特殊周期
0010 I/O读(从I/O地址中读数据)
0011 I/O写(向I/O地址中写数据)
0100 保留
0101 保留
0110 存储器读(从内存空间中读数据)
0111 存储器写(向内存空间中写数据)
1000 保留
1001 保留
1010 配置读
1011 配置写
1100 存储器多行读
1101 双地址周期(64位地址的情况)
1110 存储器一行读
1111 存储器读写无效
3.3.2 PCI总线传输控制
PCI总线传输协议是同步传输协议,所有PCI操作均同步于PCI时钟(中断操作异步与时钟)。PCI总线的传输机制是突发成组传输,一个突发分组有一个地址期和一个或多个数据期组成。基本的PCI传输由FRAME#、IRDY#和TRDY#三个信号控制。
当数据有效时,数据控制传输信号需要无条件设置XRDY#信号(写操作为IRDY#,读操作为TRDY#)。接收方可以在适当的时间发出它的XRDY信号。FRAME#信号有效后的第一个时钟前沿是地址周期的开始,此时传送地址信息和总线控制命令。下一个时钟前沿开始为一个或多个数据周期。每逢IRDY#和TRDY#同时有效时,所对应的时钟前沿就使数据在主、从设备之间传送。在此期间,可由主设备或从设备分别利用IRDY#和TRDY#的无效而插入等待周期。一旦主设备设置了IRDY#信号,直到当前数据周期结束为止,主设备不能改变IRDY#信号和FRAME#信号。而一个从设备一旦设置了TRDY#信号或STOP#信号,就不能改变DEVSEL#、TRDY#或STOP#,直到当前的数据周期完成。当最后一次数据传输时(有时紧接地址周期之后),主设备应撤消FRAME#信号,而建立IRDY#信号,表明主设备己做好了最后一次传输数据的准备,待到从设备发出TRDY#信号后,就说明最后一次数据传输已完成,FRAME#和IRDY#信号均撤消,接口回至了空闲状态。
PCI总线传输包含读、写和中止三个操作。当一个PCI设备需要占用PCI总线传输数据时,首先发出其REQ#信号,请求占用总线。若总线仲裁器允许其占用总线时,发出相应的GEN#信号。该设备收到允许信号后,要查询当前总线是否空闲,若总线忙,说明由其它主设备仍在使用PCI总线,必须等到总线空闲后方可启动总线传输。 PCI-Express高速数据传输技术研究(6):http://www.751com.cn/tongxin/lunwen_9264.html