本设计的接口总线选用的是PCI总线。PCI(Peripheral Component Interconnect)是一种由NI公司于1997年发布的基于计算机测量和自动化平台的一种全新的开放性、模块化仪器总线规范。PCI总线采用32位突发方式传输的局部总线,工作频率可达33 MHz,支持32 b/64 b的数据传输,并支持多总线主控和线性突发(Burst)模式传送,在理论上数据传输速率可以达到132 Mb/s。
目前国内外PCI总线接口实现方案主要有:采用专用的PCI接口芯片。采用专用芯片只需考虑用它来实现自己要求的功能,而不用考虑PCI芯片的内部结构,这样就缩短了设计时间,但灵活性较差,会造成一定的资源浪费。利用IP核来实现PCI接口,利用基于PCI协议的IP核来实现PCI接口,这种设计开发速度较快,灵活性较好,但是IP核价格昂贵。采用FPGA实现PCI总线协议。采用CPLD/FPGA等可编程逻辑器件实现PCI接口,最大的优点在于灵活的可编程性,可以节约系统的逻辑资源,系统设计紧凑,方便系统更新,缺点是开发难度大,周期长,系统检验困难,且不具备通用性。本文设计了一种采用PCI专用接口芯片PCI9030实现PCI总线接口,并利用可编程逻辑器件FPGA完成复杂的时序逻辑控制和地址译码。该设计的特点是简化了硬件电路的复杂性,缩短了开发周期,通用性较好。其硬件连接框图如图2所示。[page]
2 PCI总线的信号定义
PCI总线的信号主要包括PCI总线信号、E2PROM接口信号和局部总线信号。主要信号的电路连接图如图3所示。
2.1 PCI总线信号
PCI总线信号包括CLK(时钟信号)、(复位信号)、(帧周期信号)、C/BE[3..0](总线命令/字节使能信号)、(主设备准备好信号)、(目标设备准备好信号)、AD[31..00](地址/数据信号)、PAR(奇偶校验信号)、(停止信号)、IDSEL(初始化设备选信号)、(设备选择信号)、(数据奇偶校验错误报告信号)、(系统错误报告信号)、(中断信号)等。这些信号由PCI9030芯片上的各管脚直接与PC机的PCI插槽对应的端口相连。其中MODE信号是多路复用信号,这里使用多路复用功能,需要上拉10kΩ的电阻至3.3 V电源,边界扫描功能不使用,引脚TRST应该接地。
2.2 E2PROM的控制信号
PCI总线接口芯片的配置信息需要通过E2PROM存储并在没备复位时加载。PCI9030的信号线EECS,EESK,EEDI和EEDO是专门用于E2PROM的连接,本没计选用的E2PROM是NM93CS66L,该芯片拥有一个4 KB容量的低电平串行存储器,在对芯片PCI9030执行复佗操作时加载存储信息,从而使PCI接口卡实现即插即用的功能。PCI9030与NM93CS66L的电路连接如图4所示。
2.3 PCI局部总线信号
PCI局部总线信号是指接口芯片对PCI总线信号进行转换后可以被外设设备使用的信号。通常,所需要设计的功能电路都会需要一定的逻辑控制,所以PCI9030提供的局部总线接口信号通常会引入FPGACPLD中实现时序逻辑的控制以简化电路。比较重要的信号有:LINTi1和LINTi2(本地中断信号)、(本地总线等待信号)、(地址选通信号)、[3..0](字节使能信号)、LD[31..00](本地数据总线信号)LA[23.,0](本地地址总线信号)、LCLK(本地总线时钟信号)、(读/写控制信号)、(读选通信号)、(写选通信号)、(传输准备好信号)等。其中,[3..0j信号根据设置的数据总线宽度的不同而表示了不同的含义:
(1)设置本地数据总线的宽度是32位时,[3..0]用来指示数据的有效位::使能字节0,LD[31..24]有效;:使能字节1,LD[23..16]有效;:使能字节2,LD[15..08]有效;:使能字节3,LD[07..00]有效;
(2)设置本地数据总线的宽度是16位时,分别表示(高字节有效)、(低字节有效)、LA1(地址位1)信号::,LD[07..00]有效;:LA1;:没有使用;:,LD[15..08]有效;[page]
(3)设置本地数据总线的宽度是8位时,表示LA1(地址位1)和LA0(地址位0)信号::LA0;:LA1;:没有使用;:没有使用。
3 驱动程序的设计
PCI驱动程序是实现PCI板卡与PC机应用软件间的接口控制与数据传递的专用软件,它可提供PCI板卡与PC机各类消息数据的读、写支持,以及对PCI板卡内部程序的调度。在Windows XP操作系统上可以使用PLX公司提供的软件工具开发包SDK来完成PCI9030驱动程序的设计。SDK包含了用于开发PCI驱动的软件工具和函数库,主要有PLXMON软件工具、API函数库以及用于和操作系统兼容的设驱动程序。PLXMON是一个Wind ows图形窗口的调试软件。利用该工具可以对PCI设备进行配置和更改,也可以将本地软件下载到ROM或RAM中,用户还可以通过它设置E2PROM来实现对PLX公司的PCI芯片的配置和调试。API函数库是以DLL(动态连接库)的形式提供的,被包装在PlxApi.dll中。利用软件开发工具VC 6.0设计PCI驱动程序时,需要将SDK中的PlxApi.dll、PlxApi.lib和PlxApi.h三个文件拷贝到所建VC工程的目录下。在头文件(.h)中添加语句include“PlxApi.h”包含API函数的头文件,在调用API函数之前添加语句LoadLibrary(“PlxApi.lib”)加载API函数库,之后就可以调用API函数设计需要的PCI驱动程序。通过PCI接口卡完成一次电参数测试过程的程序主要代码如下:
4 结语
利用PCI专用接口芯片与FPGA结合可以实现PCI接口电路的简化设计,缩短开发周期;通过PLX公司的SDK软件开发包可以很轻松地完成PCI芯片的配置和调试,在Windows XP操作系统中利用VC6.0软件开发工具加载SDK中的API函数库可以实现用于集成电路测试的PCI驱动程序的设计。通过该接口电路实现了利用PC软件控制硬件电路完成IC测试的功能。
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』