一种基于Compact PCI总线的数据采集系统设计
制寄存器HS_CSR用来记录 板卡插拔状态并控制指示灯状态。HS_CSR的定义表1所示。 当板卡插入时,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总线应用到采集系统中,使系统具有了带电插拔的能力,提高了整个系统的可靠性,更能适应工业工作环境的需要。本文的创新点是结合了 Compact PCI总线和DSP芯片的优势,大大提高了系统的可靠性和实时性,同时又给应用程序开发人员提供了良好的接口,方便了硬件工作参数的修改,提高了系统的灵活性。
CompactPCI总线数据采集系 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)