针对产业控制系统的要求,先容了一种基于Compact PCI总线的数据采集系统,可以实现对模拟信号、串行数字信号和并行数字信号的采集。结合DSP芯片TSM320F2812和PCI接口芯片PCI9054的性能特点,具体讨论了采集系统的硬件结构和Compact PCI接口的实现。
本文的创新点是结合了Compact PCI总线和DSP芯片的上风,大大进步了系统的可靠性和实时性,同时又给应用程序开发职员提供了良好的接口,方便了硬件工作参数的修改,进步了系统的灵活性。
引言
数据采集的实时性和可靠性是关系产业控制系统性能的重要因素,数据采集系统的速率主要取决于A/D转换、通讯接口和总线传输的速率。本文研制了一种基于Compact PCI总线的数据采集系统,系统以DSP作为控制核心,可以进行模拟信号采集、并行接口和串行接口的数据信号的采样。
1 Compact PCI总线简介
Compact PCI总线与PCI标准完全兼容,但作为开放的产业计算机标准,Compact PCI总线与PCI总线有很多不同。主要体现在:
(1) Compact PCI总线具有热切换能力,可以使整个系统在不断电的情况下,更换损坏的插板,这对于有高可靠性要求的系统是至关重要的。
(2) Compact PCI总线采用欧式插卡(Eurocard),具有更好的机械特性。欧式插卡的组装技术目前已经十分成熟,插卡垂向而平行的插进机箱,有利于透风散热;采用插进式电源模块,便于维修,适合于安装在标准化产业机架上。
(3) 使用高密度针孔总线连接器,完全气密,比台式机的PCI插槽具有更高的抗震性能和可靠性。
(4) Compact PCI底板可以容纳8块插卡,比原有的PCI规范增加了一倍,更能满足产业系统的需要。
2 采集系统硬件结构设计
在产业控制系统中,采集系同一方面需要把电机转速、电流环等模拟参数传送到监控主机,另一方面需要对下位机的各种参数和图像数据进行采集,同时监控主机还要对下位机发送各种控制信号。为了兼顾各种需要,设计中集合了模拟和数字两种采集方式,可以实现8路A/D采样,2路串行数据采集和2路并行数据采集,系统的结构框图如图1所示。
图1 采集系统结构框图
采集系统以数字信号处理芯片TMS320F2812作为控制核心,F2812最高工作频率可达150MHz,除了丰富的内部存储器资源外,还具有ADC,SCI、SPI等多种外设资源,设计中利用了其ADC和SCI模块来进行模拟信号和串行数字信号的采集。对并行数据的采集则不通过DSP而直接与主机进行数据交换。由于主机与外设速度不匹配,选用双口RAM芯片IDT70V24作为数据缓存,它是一种高速度、低功耗的双口RAM,存储量为8k字节。系统的逻辑控制采用CPLD芯片XC95108完成,它主要负责的功能是PCI局部总线仲裁和地址译码。三种采集模块的实现如下:
(1) A/D采集模块。对模拟信号的采样使用了F2812自带的数模转换模块ADC,该ADC具有16路模拟输进通道,带有两路内置S/H(抽样保持器),转换精度为12bit,最大转换速率为12.5MSPS,支持范围在0~3 V的数据输进。16路输进通道在ADC内部共用1个模数转换器,它们被分位两组,每组8路通道,使用排序器Sequencer来设定每路通道占用模数转换器的顺序。设计中使用了其中8路通道(ADCIN0~ADCIN7)。
(2) 串行数据采集模块。F2812的SCI模块具有两路串行通讯接口,可配置成65536种不同的波特率,具有奇偶校验标志,可工作于半双工或者全双工模式,可设置成中断或者查询方式。另外,SCI还具有两个增强性能:①发送、接收都具有独立的FIFO,FIFO深度为16个字,触发级可以配置为16以内的任何数。这种灵活的设置对实际使用非常方便,由于下位机采集的数据长度往往不是16的整数倍,根据其数据长度设定FIFO触发级,可以使一帧数据及时被传输和处理;②可以实现波特率自动检测,这在未知通讯终端波特率或者需要更换通讯终真个情况下非常适用。下位机与监控主机的通讯采用RS-422接口,传输间隔远,抗干扰能力强。RS-422传输使用的是差分电平,而SCI的输进输出管脚是TTL电平,需要进行电平转换,设计种选用了符合RS-422标准的电平转换芯片MAX3461。
(3) 并口通讯模块。对于图像信号等数据传输量大的信号,需要使用并口通讯的方式。本采集系统提供两路并口,数据宽度为8位,地址宽度为8位,它们通过双口RAM与主机进行数据交换。3 Compact PCI接口设计
3.1 CPCI桥接芯片
目前,很多PCI协议芯片同时也支持热交换,使得原有的基于PCI总线的硬件系统可以很轻易地移植到CPCI构架下,而不需要在硬件和软件上做大的修改。本设计选用的是PLX公司推出的PCI9054,符合PCI 2.2规范和CPCI 2.1热交换规范。
针对CPCI的热交换规范,PCI9054提供了管脚ENUM#和LEDon/LEDin,ENUM#的激活表明板卡的插拔状态即将发生改变,LEDon/LEDin管脚用于驱动外部LED,指示当前系统软件层连接和断开的情况。PCI9054还提供了热交换控制寄存器HS_CSR用来记录板卡插拔状态并控制指示灯状态。HS_CSR的定义表1所示。
表1 热交换控制状态寄存器HS_CSR
当板卡插进时,HS_CSR[3]被置为1,点亮蓝灯,PCI9054置HS--_CSR[7]为1,激活ENUM#信号引起中断,直到设备驱动程序被安装后,中断被清除,HS_CSR[3]被置为0,熄灭蓝灯。当板卡拔出时,HS_CSR[6]被置为1,激活ENUM#信号引起中断,主机卸载驱动程序后,HS_CSR[3]被置为1,点亮蓝灯,表明板卡可以安全地被拔出。
3.2 热插拔电源治理
CPCI规范中用于热插拔控制的信号主要有:BD_SEL#,HEALTHY和PCI_RST#。CPCI总线的接插件J1的插针分为长针、中长针和短针。长针是电源和地信号,中长针是PCI总线信号,短针是BD_SEL#和IDSEL。当板卡插进时,电源信号最先接触,将PCI总线信号预充电至1V,这是为了减小热插拔过程中对PCI总线信号的冲击,然后是PCI总线信连接,最后是BD_SEL#信号连接,BD_SEL#有效表示板卡已经插好,可以上电工作。卡拔出过程正好相反。HEALTHY#是反映板卡电源状态是否良好的信号。PCI-_RST#是主机复位信号,它和HEALTHY#信号共同作用,控制PCI局部总线的复位信号。
LTC1646是Linear公司针对CPCI接口推出的热插拔电源治理芯片。LTC1646需要外接两个N沟道晶体管作为开关控制3.3V和5V电源对板卡的供电。LTC1646的OFF/ON#管脚与BD_SEL#相连,当BD_SEL#为低时,晶体管导通,3.3V和5V电源按一定速率上电。PWRGD#与HEALTHY#连接,当板卡电源在容差范围内时,此信号为低。PCI_RST#与LTC1646的RESETIN#管脚相连,它与HEALTHY信号进行或运算得到输出信号RESETOUT#,此信号与PCI9054的RST#管脚相连作为CPCI板卡的复位信号。LTC1646提供一个输出管脚PRECHARGE,它与PCI9054的总线信号相连接,在板卡插进和拔出的过程中,对总线信号进行预充电。需要预充电的信号需要经过10kΩ的电阻上拉至预充电电压(1V±10%)。4 软件接口
由于产业现场外设种类多,采集到的信号特性各异,假如硬件系统内部程序固定为一种模式,必定不能达到最佳传输效果。而硬件板卡在交付使用后,再修改其内部程序便十分麻烦,所以本系统给应用程序开发职员提供了软件接口,使得对硬件配置的修改不需要通过仿真器,而可以直接在应用程序界面下修改。
对硬件工作参数的修改是通过中断方式实现的。自定义一个16位控制寄存器User_CSR,其高4位用作命令字,低12位用作控制字。当应用程序通过PCI总线向User_CSR写进数据时,CPLD通过译码逻辑向F2812的外部中断管脚XINT2发出中断信号,F2812响应中断后,读取User_CSR的值,根据其命令字判定需要修改的是哪种参数,再根据其控制字得到新的参数值,将其写进相应的寄存器,即可完成修改。由于篇幅所限,仅以修改SCIA的设置为例,说明具体实现方法。User_CSR对SCIA修改的定义如下:
表2 User_CSR的部分定义
通过该接口可修改的硬件配置有SCI的波特率、收发FIFO的触发级别和各采集通道占用双口RAM空间的大小。
5 结束语
本设计以TMS320F2812作为数据采集系统的控制核心,满足了系统的实时性要求,又节省了外设资源,进步了系统的性价比。把Compact PCI总线应用到采集系统中,使系统具有了带电插拔的能力,进步了整个系统的可靠性,更能适应产业工作环境的需要。