PXI(PCI eXtension for Instrumentation)总线规范是由NI(National Instuments)公司于1997年9月推出的测控仪器总线标准,是以PCI计算机局部总线(IEEE1014-1987标准)为基础的模块仪器结构,目标是在PCI总线基础上提供一种技术优良的模块仪器标准,构成以PC机为基础的高性能低价位的模块仪器系统。其核心是Compact PCI的结构与Microsoft Window软件,再加VXI总线的定时和触发信号,这就使得PXI用户能够把包括机械、电气和软件在内的所有PCI的优越性能和Microsoft Windows软件直接应用到测试、测量、数据采集和工业控制中去,在不牺牲测量指标以及不增加开发费用的情况下,满足不同层次用户对测试、测量、数据采集和工业自动化的应用需求。
1 PXI总线规范及特点
PXI总线规范是在PCI电气规范、CURIOSITY PCI机械规范和VXI即插即用规范的基础上,扩充了13条局部总线:触发信号线,时钟信号线,模拟信号线而形成的。PXI还定义了软件框架,对全部PXI外围模块需要相应的设备驱动软件集成提供方便。
1.1 PXI机械特点
PXI 3U模块具有两个接口连接器。J1传输32位局部总线所需的信号,J2传输64位PCI传输信号以及实现PXI电气特性的信号。PXI机械规范定义了一个包括电源系统、冷却系统和安插模块槽位的一个标准机箱。PXI在机械结构方面与Compact PCI的要求基本一致,采用了ANSI310-C、IEC-297和IEEE1101.1等在工业环境下具有很长应用历史的Eurocard规范,支持3U和6U两种模块尺寸,其特性如下:
· PXI总线采用了与Compact PCI相同的,2mm间距、高密度、屏蔽型、针孔式、高可靠性和阻抗匹配的,符合国际标准的IEC-1076连接器;
·除了将Compact PCI规范中的所有机械规范直接移植进PXI规范之外,PXI还增加了一些Compact PCI所没有的,冷却、温度、湿度、振动和冲击方面的规范内容;
·PXI和Compact PCI规范支持容错系统所需要的在线插"热插拔"功能;
·PXI的重要特性之一是与Compact PCI产品的互操作性。
1.2 PXI电气特点
·与PCI的电气规范兼容;
·支持5V和3.3V两种电源机制;
·支持32位或64位数据传输;
·总线带宽(32位:132MB/s;64位:264MB/s);
·支持PCI-PCI桥路扩展和即插即用;
为满足测控模块的需要,PXI总线通过J1连接器提供了33MHz的系统时钟,通过J2连接器提供了10MHz的TTL参考时钟信号、TTL触发总线和13引脚的局部总线。这样同步、触发和时钟等功能的信号线均可直接从PXI总线上获得,而不需要繁多的连线和电缆。
PXI在保留PCI总线所有优点的前提下增加了用于多板间同步的参考时钟、触发总线、用于进行精确定时的星形触发总线以及用于相邻模块间高速通信的局部总线来满足高精确度的定时、同步与数据通信要求。
1.3 PXI软件及其特点
良好的软件兼容性是PXI系统发展优势,将用户所熟悉的应用软件和操作系统直接应用到PXI中,是PXI模块仪器系统软件的一大特点。
PXI用于自动测试和控制的软件由4个主要部分组成:系统管理软件、应用程序、仪器驱动软件和I/O接口软件。PXI将MicrosoftTM Windows NTTM 和MicrosoftTM Windows 95TM 定义为其标准软件框架,并要求所的的仪器模块都必须带有按VISA(虚拟软件体系结构)规范编写的Windows设备驱动程序,使PXI成为一种系统级规范,保证系统的易于集成与使用,从而进一步降低最终用户的开发费用和周期。
1.4 PXI信号组及电气要求
PXI信号组包括直接从Compact PCI映射至P1/J1上的信号,复制在P2/J2 上的64位信号,位于P2/J2的PXI专用信号。PXI专用信号包括触发总线、参数时钟、本地总线与星形触发所需的信号。
1.5 Local总线
PXI在相邻外设模块间设置了菊链式本地总线。本地总线是一种具有多种用途的用户定义总线(13线宽)。应用范围遍及在两个模块间传送模拟信号,直至不影响PXI带宽的高速数据传输。对多数插槽来说,本地总线的功能是用户定义的;然而也有PXI规范定义的专用设置。
为了系统配置目起见本地总线的机箱配置应由机箱的初始化(.ini)文件来确定。Ini文件列有系统中每个插槽及其位置的信息.系统配置软件利用这个信息来确定系统是否正确地配置在一起。
1.6 参数时钟:PXI-CLK10
PXI背板负责为测量与控制系统中多个模块的同步功能提供公共基准时钟。PXI-CLK10独立地为每个外设槽提供10MHz的时钟。PXI-CLK10根据公共基准同步操作多个模块。它的低时滞质量对考核触发协议是十分理想的。星形触发槽已定义了提供外部时钟的引脚。
1.7 触发总线
PXI触发总线提供模块同步与通讯。触发总线的导线可用于触发或时钟传输。PXI触发总线由下列八种信号组成:PXI-TRIG[0:7]。
● 时钟传输
● PXI触发协议
● PXI异步触发
● PXI同步触发
除了总线化的PXI触发外,PXI总线为每个插槽配备了独立的触发信号(PXI-STAR),它是根据星形触发槽按星形配置定向的。星形触发槽与系统槽相邻,将13个左边本地总线信号用作星形触发信号。这允许单个星形触发槽去控制和监测两个PCI总线段的触发功能。
2.硬件设计
2.1 PLX9030芯片功能概述
由于PXI总线的信号P1/J1为直接从Compact PCI映射的信号,因此要实现对PXI总线的访问,最便捷、最可靠的方法是采用PCI接口芯片,本设计中采用的PCI接口芯片是PLX9030,该芯片符合PCIv2.2规范,适应于32bit-33MHz目标链接使PCI突发传输至132MB/sec,60MB/sec Local总线操作使突发传输至240MB/sec,PCI目标提前读出模式(Readed Ahead Mode),PCI目标延迟写入模式(Delayed Write),同时还具有CompactPCI热交换功能,PCIv2.2电源管理,PCIv2.2VPD支持,兼容3.3V和5V 的PCI总线信号。其结构图如图1。
如图所示,PLX9030提供三种物理总线接口:PCI总线,Local总线接口及串行EEPROM接口。本设计为64通道扫描式A/D采集卡,采集速率100K,只需要利用9030的local总线与PCI总线之间数据传输的从模式(Direct Slave)即可满足要求,同时9030还具有5个PCI到Local地址空间,9个可编程GPIOs,4个可编程芯片选择信号,以及中断发生器能力。
9030内部寄存器的配置信息写在EEPROM中,加电时9030自动加载串行EEPROM配置信息,通过PXI总线对配置寄存器读写。
2.2 基于PLX9030的PXI总线A/D采集卡设计
PXI总线64通道A/D转换卡,(简称A/D卡),可插于PXI 3U机箱的任一附加插槽中。A/D卡的PXI连接器与机箱底板总线连接,68线插座连接输入信号至用户端。A/D卡由接口控制逻辑电路、时钟分频电路、16位A/D转换电路和数据输入缓冲电路组成。它可将模拟输入信号转换成16位的的数字量信号,送至计算机。A/D卡结构图见图2。
外接16MHz时钟经初始化设定,通过8254可以产生0-100K的采样周期控制脉冲,可通过程序进行不同档位的选择,来实现对其采样速率的控制。
A/D芯片设计选用LTC1606,该芯片具有16it的分辨精度,最高转换频率250KHz。芯片内自带采样保持放大器及精密电压基准,电压输入+10V~-10V。
板内设计64路(单)/32路(差分)采集通道。在模数转换控制逻辑电路的控制之下,模数转换控制逻辑向LTC1601发出一个模数转换命令(脉冲),并在对应的跳变沿上开始进行模数转换,在转换完成以后相关的电路将自动把各个采样周期采集的数据依次存贮在FIFO存储器中,可以通过PCI总线接口读出。这样即完成一次采样。为了适合实时、高速数据或突发数据的传输,接口电路采用异步FIFO存储器作为数据缓冲电路。
在数据采集与传输系统设计中,软件查询和中断技术是经常采用的两种方式,查询方式比较简单,但是,处理器需要不断地读状态位,占用大量的处理器时间,将大大主机的机器时间。在这种情况下,本设计采用中断方式,通过9030的LINTi 将中断信号写入中断寄存器,通过Burst 传送完成对FIFO数据存储器中数据的读出。
3.软件设计:
PXI总线控制模板的底层驱动程序是使用WINDRIVER实现的。WINDRIVER是一个开发驱动程序的工具。采用它开发驱动程序方便,快捷。数据采集和传输采用中断方式。当FIFOs半满时,产生中断信号。在中断服务程序中,将数据取出, 放到自定义的FIFO中。PCI卡的中断是电平触发的。如果没有清除,中断就一直存在,就会造成死机。所以在底层中断程序中的一个重要工作就是清除中断标志。中断标志的清除就是向中断寄存器写入特定的值,该值硬件相关的。在中断服务程序中重新开启中断:
A/D卡的初始化可以在上层控制软件中进行。PXI的控制面板是在Visual C++环境下开发的。可以对64通道中的任意通道采集数据并进行实时显示和存储。可以设置采集频率,采集时间,增益和输入方式。并且还可以进行校准。初始化完成后,开始一个线程,取出自定义FIFO中的码值,并将其转化成对应的电压值,并存储到文件中。在OnPaint()中,重绘得到的数据曲线。如果退出,则中止线程。采用了消息和事件触发机制,使程序更加灵活。软件初始化流程如图3。