基于单片机和CPLD实时数据采集显示系统设计
数据采集是分析模拟信号量数据的有效方法。而实时显示数据是自动化检测系统的现实需求。在测试空空导弹导引头的过程中,导引头的响应信号包括内部二次电源信号和模拟量电压信号。检测过程中要求检测系统实时显示导引头的工作状态,显示二次电源和模拟量响应电压信号,判断导引头性能,同时保证在非常情况下人为对导引头做出应急处理,保护导引头。对于模拟量电压信号,通常采用模数转换、事后数据标定的方法实现。根据现实需求,研制相应检测系统可作为导引头日常维护和修理的重要工具。这里介绍一种基于单片机和CPLD的实时数据采集显示系统设计方案。
2 系统构成
该系统中待采集显示电压信号共16路,动态电压范围为-22~+27 V。由于这些电压信号变化频率较低,或者认为频率无变化,且检测系统只关心其电压值,所以在低采样率下就可满足系统要求。根据需求,系统设计的采样率即显示刷新速率在1.56 k/s以上。
采用单片机80C196KB和可编程逻辑器件EPM7128SLC为核心控制器,以80C196KB内部集成A/D转换器作为模数转换器实现16路电压信号的实时数据采集、显示、控制。该系统总体设计结构框图如图1所示。
整个系统主要由信号预处理、信号选通、单片机采集、双机数据传输以及数据处理显示等模块构成。其中,信号选通模块由CPLD和多路模拟选择器组成。
3 系统硬件电路设计
3.1 信号预处理电路
由于待采集电压信号输入动态范围较宽,且极性各异,对于单片机A/D转换器来说,需要调理到能够采集的电压范围闱0~5 V,所以要统一调理采集信号,如图2所示。
图2中运放LM224和MC1556均采用双电压供电,以提高动态信号输入范围;电阻均采用精度为0.1%的精密型金属膜电阻,以提高电压转换精度。
在二级电压凋理过程中,MC1556同相输人端采用稳压电路以减少长时间通电情况下温度升高对系统产生的不良影响。南于电压跟随器具有输入阻抗大和输出驱动能力强的特点,故在预处理电路的输入端和输出端均采用电压跟随电路。
3.2 信号选通电路
ADG508A是一款8通道CMOS模拟多路选择器,具有高速转换速度和低内阻特性,通道切换具有防短路功能。在CPLD控制下,它可对采集信号进行有序通道切换,配合单片机进行数据采集。
EPM7128SLC是一款Ahera公司生产的CPLD,其容量为128个宏单元,采用硬件描述语言VHDL对CPLD编程设置实现信号的选通控制。首先编写分频器模块对1 MHz晶体振荡器进行20分频,输出2路相位相错、周期为20 μs的矩形同步信号。其中一路信号经D触发器进行2分频,得到占空比50%、周期为40μs的方波信号;然后编写信号选通控制模块。此模块根据方波信号和另一路同步信号循环输出控制信号,两模块都在MuxPlus-II环境下开发,CPLD控制信号时序仿真结果如图3所示,其中,信号FRM和ROAD是单片机主程序运行的勤务信号;CS1和CS2是2片ADG508A的片选信号:A0、A1和A2则是ADG508A通道选通控制信号。
3.3 单片机采集电路
80C196KB是Intel公司生产的一款16位CMOS单片机,片内集成有8路A/D转换器,该转换器包括一个8通道多路模拟开关,采样保持电路和10位A/D转换器。由于该系统外部有多路选择器,故内部无需通道转换,采用一个ACH0通道即可完成数据采集。对于采用12 MHz晶振的单片机系统,完成一次A/D转换需22μs。80C196KB的A/D转换器采用逐次逼近的方法完成模拟量到数字量的转换,基准电压设定非常关键,内部阻容网络将基准电压Vref等分为1 024个阶梯,每级为Vref/1 024 V。通过与基准电压比较,可得到10位数据转换结果,其中基准电压的精度以及稳定度直接影响到测量结果的绝对精度。因此在电路中Vref采用单独电源供电并通过基准稳压源如LM136的5 V提高精度及稳定度。
80C196KB通过判断ROAD信号在其上升沿读取上次A/D转换结果,同时启动A/D转换器转换下一路信号,该单片机用FRM信号作为非屏蔽中断使计数器DXL归零,主程序循环一次,保证对16路通道信号的时分复用采集。单片机80C196KB程序流程如图4所示。
评论