用双端口RAM实现与PCI总线接口数据通讯
2.1PCI9030内部结构及其数据传输
PCI9030是PLX公司开发的PCI总线目标接口芯片。其特点:低功耗,PQFP176针封装,符合PCIV2.2规范;在PCI总线上是从设备,但在局部总线上是主设备;PCI9030支持突发传输,有5个PCI总线到局部总线地址空间,9个可编程的通用I/O,4个可编程的片选,支持热插拔。PCI 9030主要由PCI总线接口逻辑、局部总线接口逻辑、串行E2PROM接口逻辑和内部逻辑组成,结构框图见图3。
PCI9030支持PCI主设备直接访问局部总线上的设备,数据传输方式分为内存映射的突发传输和I/O映射的单次传输,并且由PCI基址寄存器设置在PCI内存和I/O空间中的合适位置,另外局部映射寄存器允许PCI地址空间转换到局部地址空间。
2.2配置实例
系统访问的双口RAM存储空间为2KB,要求将这个存储器空间映射到局部地址空间0,采用内存方式映射,存储器的数据宽度为8位,并且不采用突发传输,读写时不可预取。下面介绍这个地址空间各个寄存器的具体配置过程。
(1)配置地址范围寄存器
根据PCI配置寄存器与LAS0RR的对应关系以及双口RAM的地址空间800H,取7FFH的补码得到FFFFF800H。又因为按照设计要求,要映射到内存空间的任何位置并且设置为不可预取的,这样LASORR寄存器后3位应该为000H。所以LAS0RR的值应该最终确定为FFFFF800H。
(2)配置基址寄存器
该寄存器的基址必须是地址空间范围的整数倍,在本例中必须是2K的整数倍,可将基地址定为00004000H,又由于基址寄存器位0为空间使能位,所以应将这一位设置1;至于位2、位3,由于是映射到内存空间,设为00H即可。所以LAS0BA的值最终被确定为00004001H。
(3)配置片选信号控制寄存器
该寄存器的地址范围和基地址必须与LAS0RR或LAS0BA所定义的范围和空间相对应。可根据PCI9030提供的配置寄存器的方法确定CS0BASE的数值:板卡的2KB空间可以用十六进制表示为800H,将800H右移一位得到400H,然后将基地址加到400H左边的任何一位中。因为所采用的基地址为00004000H,所以得到的值为00004400H;又因为第1位为片选使能位,应该设置为1。所以最终确定的数值为00004401H。
由于局部总线采用8位的宽度,将工作方式定义在不使能突发,不预取,配置总线区域描述寄存器的数值确定为400140A2H。另外,还要根据要求设置CNTRL寄存器控制PCI9030的工作状态,确定为18784500H。当所有这些数据都配置完成后,便可将这些数据按照加载顺序写入串行E2PROM中,从而完成整个系统的配置。
通过这几个寄存器的配置,一个局部地址空间便可以确定下来。在系统上电后,系统BIOS根据这几个寄存器的内容将板卡上2KB的RAM空间重映射到PCI空间中,使主机可以像访问自己的地址空间一样访问板卡上的RAM。
评论