PCI9030及其PCI总线接口电路设计
扫描二维码
随时随地手机看文章
0 引 言
PXI总线系统的卓越性能和较低的价格,使得越来越多从事自动测试的工程技术人员开始关注PXI的发展。而PXI总线是PCI总线在仪器领域的扩展,可以将PXI总线分为PCI总线和PXI扩展的总线两部分。将进行PCI总线接口电路的设计,从而为设计 PXI模块仪器,组建PXI总线自动测试系统做好准备。
目前,PCI总线接口电路的实现主要有两种方案:一是采用一片大容量FPGA/CPLD实现PCI总线接口逻辑;另一种是采用ASIC芯片完成PCI总线的接口电路。由于PCI总线速度高,协议复杂,采用第一种方案虽然应用很灵活,但是调试困难,开发周期长,而且采用一片工业级可用于PCI接口的 FPGA/CPLD完成PCI总线接口功能,远比使用PCI接口芯片的成本高。采用第二种方案,功能强,价格低,稳定性好,开发周期较短。通过对上述两种接口方案的比较,从综合开发难度、芯片功能、开发速度和开发经费等方面考虑,在此采用后一种方案完成PCI总线的接口设计。
1 PCI9030芯片及其主要特点
PCI9030是全球最大的PCI接口设备制造商PLXTechnology于1999年3月推出的全新的32 b/33 MHz PCI目标设备接口芯片。它采用PLX先进的SMARTarget技术,不仅为各种应用提供了最大的灵活性,而且大大简化了系统设计,具有最高的性价比,能够满足各种应用的要求。PLX计划用它替代应用广泛的PCI9050和PCI9052。PCI9030主要有以下特点;
(1)采用PLX先进的SMARTarget技术,完全兼容PCI 2.2协议规范,PCI突发传输速率高达132 MB,/s,是第一个符合CompactPCI PICMG2.1标准的工业级目标设备接口芯片。
(2)支持高达60 MHz的局部总线操作,突发传输模式下速率可达240 MB/s,支持PCI目标预取模式、PCI目标可编程突发传输、PCI目标延迟写模式和PMW(Posted Memory Writes)模式。
(3)资源丰富,应用灵活。它支持5个PCI to Lo-cal地址空间,拥有9个通用I/O(GPIOs),4个可编程片选(CS[3…0]),中断发生器/控制器,支持 Big/LittleEndian字节转换,可提供PCI缓冲时钟(33 MHz),局部总线可编程读写选通定时等。
(4)局部总线的配置可编程,可支持复用或非复用模式的8位,16位或32位局部总线。
(5)PCI9030支持3.3 V,5 V电源容错,因此在采用5 V电源的CPLD时,不需要进行电平转换,可以直接连接,使得电路更加简洁。
2 PCI总线接口电路
PCI总线开关模块是在满足PCI总线数据传输协议的前提下进行写数据和数据回读,完成PCI总线的基本数据传送。写数据时经过锁存和继电器驱动模块来驱动继电器工作,可以通过数据线回读继电器的状态,以判断数据传输的正确性,其原理框图如图1所示。
下面以本模块为例介绍PCI总线接口设计过程。
PCI总线接口电路主要分为3个部分,即PCI总线接口、局部总线接口、串行E2PROM接口,如图2所示。LCLK通过500 Ω电阻与BCLK0连接,为PCI9030提供本地时钟信号。局部总线多路复用和非多路复用选择是通过硬件实现。这里选用多路复用,故将PCI9030的 MODE引脚通过电阻上拉至3.3 V电源。边界扫描JTAG不使用,PCI9030引脚TRST应该通过电阻接地。[!--empirenews.page--]
局部总线采用8位数据总线,使用片选信号CSO和CS1,通用接口信号GPIO0和GPIO1。一般情况,所要实现的功能电路会需要一定的逻辑控制,所以 PCI9030提供的局部总线接口信号通常会引入FPGA/CPLD中,并实现控制逻辑以简化电路。实例中采用EPM7128SQC100-10实现局部控制逻辑。
串行E2PROM接口部分采用93LC66B芯片,写数据信号(EEDI)和读数据信号(EEDO)需要接上拉电阻。
另外,还有一些问题需要注意。如果不用边界扫描应将TDI和TDO连接起来。
在非热插拔系统中,应将PCI9030的CPCISW引脚通过的电阻接地。
局域总线根据局域总线时钟信号运行,并产生必要的内部时钟信号。该时钟与PCI时钟异步运行。
BCLK0可以提供PCI缓冲时钟,当其满足应用要求时,可以省去本地时钟芯片,否则需外接本地时钟信号产生芯片。
在对E2PRoM编写配置信息前,插入PCI板卡,BD_SEL需要上拉再接地才能进入系统,所以通过跳线接地,方便板卡调试。
PCI连接器上的两个引脚PRSNT1和PRSNT2应根据实际最大功耗进行设置,具体设置见表1。
4 板卡调试
通常使用PLXmon软件对板卡进行调试。在硬件没有错误,E2PROM内容配置正确的情况下,将板卡插入PCI插槽,启动PLXmon后会自动识别已插入的PCI板卡;然后就可以观察PCI配置寄存器(PCR)和局部配置寄存器(LCR)的内容;观察和修改E2PROM的内容。另外,用户还可以进行内存和I/O端口的读写。
5 编写WDM驱动程序
在WindowsXP操作系统下编写WDM驱动程序,最常用的开发工具是 DriverStudio和WinDriv-er。在此采用DriverStudio编写PCI板卡的驱动程序。首先,根据DriverStudio的图形向导建立WDM功能驱动程序框架,硬件选择PCI总线,填写Device ID,Ven-dot。ID,子系统ID号和版本ID号;然后添加所需类和资源,包括KIoRange类、KMemoryRange类和设备接口、选择读写存取方式、中断资源、根据需要添加控制码等。在生成驱动程序基本框架后,就要根据实际需求添加功能代码。由于PCI9030为从设备芯片,不能主动发起总线传输,没有DMA传输功能。因此,开发PCI设备驱动程序WDM主要是实现对I/O映射空间和内存映射空间的访问。通常利用DriverStudio 提供的KIoRange类和KMemoryRange类就可以简单的实现。PCI基地址寄存器0专用于对本地配置寄存器的内存访问;PCI基地址寄存器1 专用于对本地配置寄存器的I/O访问。通过访问本地配置寄存器,可以充分利用PCI9030芯片内的资源,包括中断控制器、GPIO、片选、局部总线可编程读写选通定时等。
编写完基本代码后,编译即可生成*.sys和*.inf文件。根据需要可对*.inf文件做适当修改并拷贝到*.sys文件所在的文件夹中,即可安装驱动程序。
6 结 语
正确的硬件电路连接是PCI板卡其他工作的基础和保证,否则会导致PCI板卡根本上的失败。E2PROM的配置是PCI板卡能否正常工作的关键,一点小的问题都会导致板卡不能正确识别和工作。调试工具和驱动软件的选择也应根据实际需要进行选择,以提高开发效率,缩短开发时间。
这里利用接口芯片实现PCI总线接口电路的设计,可以提高开发效率,降低开发成本,同时验证其可靠性和稳定性,为下一步开发PXI总线接口电路打下了良好的基础。