基于单片机和CPLD的高精度数据采集系统设计
扫描二维码
随时随地手机看文章
1 引言
数据采集系统的任务,就是采集传感器输出的模拟信号转换成计算机能识别的数字信号,送入计算机,将计算机得到的数据进行显示或打印,以便实现对某些物理量的监视,其中一部分数据还将被生产过程中的计算机控制系统用来控制某些物理量。数据采集系统性能的好坏,主要取决于它的精度和速度。在保证精度的条件下,应有尽可能高的采样速度,以满足实时采集、实时处理和实时控制对速度的要求。
当前科学技术的发展对数据采集系统的采样速率、分辨率、精度、接口及抗干扰能力等提出越来越高的要求,许多领域越来越多地要求具有高精度A/D转换和实时处理功能。同时,市场对支持更复杂的显示和通信接口的要求也在提高,如环境监测、电表、医疗设备、便携式数据采集以及工业传感器和工业控制等。传统设计方法是应用MCU通过软件控制数据采集的A/D转换,这样必将频繁中断系统的运行,从而减弱系统的数据运算能力,数据采集的速度也将受到限制。本文采用MCU+CPLD的方案,由硬件控制A/D转换和数据存储,同时采取多模冗余的模/数转换结构,最大限度地提高系统的信号采集精度和处理能力。
2采集系统硬件设计
本文的设计方案来源于对某控制系统的检测与诊断的研究,该控制系统在工作过程中,有多种产生于不同部件的信号需要检测,其中有模拟输入信号9路(其中6路16位精度要求,3路12位精度要求),数字输入信号3路(16位),要求以CAN2.0总线/RS232输出,误差<=10-5,温度范围为:-400C≤ T ≤ +850C。
2.1数据采集系统硬件设计
根据该系统功能和性能要求以及传统的基于单一的单片机的数据采集系统的缺点,本文设计了结合单片机和CPLD器件的各自优点, 以MCU+CPLD的双片结构设计了高精度的多模冗余的数据采集系统。系统主要由MCU处理模块、CPLD处理模块和ADC阵列、通信模块四个部分组成,其总体硬件框图如图1所示。
图1 数据采集系统总体框图
根据系统精度要求,A/D转换器件要分别达到16、12位精度,为此选用了美国模拟器件公司(ADI)公司的16位高速A/D转换器AD7656以及12位高速A/D转换器AD7864。3路数据采集并行实现,所有的时序信号和控制逻辑由同一片CPLD实现,系统体积小,速度快。本设计选用了Altera公司的MAX3000系列可编程逻辑器件EPM3128芯片。3路ADC模数转换结束后,CPLD调用三模冗余表决程序对A/D转换结果进行判断,并把结果送入运算模块的输入FIFO。三模冗余的原理结构图如图2所示。
图2 三模冗余原理结构图
此处的三模冗余表决程序使用VHDL语言编写,运行速度快,可靠性高。此方案的具体硬件设计如图3所示。
图3 系统硬件原理图
3 系统主要芯片介绍
系统所使用的几个主要的芯片包括MCU、CPLD、A/D等芯片,下面对芯片进行简单的介绍。
3.1 MCU
Cygnal公司的单片机C8051F040具有与8051指令集完全兼容的CIP-51内核。它的最高频率可达25Mhz,内置64KB FLASH RAM和4KB的数据存储器。C8051F040在一个芯片内集成了构成单片机数据采集或控制系统所需要的几乎所有模拟和数字外设及其它功能部件,包括ADC、可编程增益放大器、DAC、电压比较器、温度传感器、SMBus/I2C、UART、SPI、定时器、内部振荡器、看门狗电路以及CAN控制器等,这种高度集成为设计小体积、低功耗、高可靠和高性能的测控系统提供了方便,同时也使测控设备整体成本能够降低。
C8051F040内部集成有BOTSH CAN,它兼容CAN技术规范2.0A和2.0B,主要由CAN内核、消息RAM(独立于CIP-51的RAM)、消息处理单元和控制寄存器组成。
3.2 CPLD
根据数据采集系统的需要,在现有的CPLD中选择Altera公司中MAX 3000A[50]系列中的EPM3218ATC100-10。MAX 3000A器件具有以下特性:
1) Altera 的MAX 3000A 可编程逻辑器件(PLD)是满足大批量,成本敏感性应用的非易失性和即用性CPLD理想的解决方案。MAX 3000A提供从32到512个宏单元,3.3V逻辑内核电压,并支持通用特性和封装;
2)Altera的MultiVolt™ 多电压接口从工业应用传统所要求的5.0V I/O信号到消费电子应用要求的低电压标准如2.5V,MAX 3000A器件都提供强大的I/O电压选项。
3)出众的硅片特性:MAX 3000A器件是具有即用性,非易失性,提供全局时钟,在系统可编程,IEEE-1532标准支持,和开路输出特性的器件,MAX 3000A器件适用于大量系统级的应用;
4)易用的设计软件:MAX器件为易用的Quartus® II网络版和MAX+PLUS® II 基础版设计软件所支持。这两个平台提供综合布局布线,设计验证和器件编程功。
本文中采用的EPM3218ATC100-10具有128个宏单元,80用户I/O管脚数,工作电压为3.3V,具有2500个可用门和ISP,管脚间延迟快至10ns,计数器速度可高达100MHz,可以很好的满足系统的需要。
3.3 A/D
ADI公司16位模数转换芯片AD7656采用iCMOS工艺制造的,是高集成度、6通道16-bit逐次逼近(SAR)型ADC,内含1个2.5V基准电压源和基准缓冲器。AD7656在每通道250kS/s采样速率下的精度(±4LSB最大值积分线性误差)是同类产品的2倍,可以满足工业领域对高分辨率、多通道、高转换速率和低功耗的要求。AD7864是一种高速、低功耗、可以4通道同时采样的A/D转换器。它的主要特性有:高速12位A/D转换器;同时采样4个输入通道,并具有4个采样、保持放大器;0.35ms采样保持获取时间,每一个通道转换时间1.65ms;可以通过软件或者硬件的方法选取用于采样的通道;多个转换电压范围;具有高速并行接口,可以与处理器直接连接;低功耗,每通道功耗90mW;对于每一个模拟输入通道均有过压保护电路。AD7864 4通道同时工作时,最大采样率可以高达130KHz。以上两种芯片能满足系统的精度和实时性的要求。
4数据采集系统软件设计
在一般的数据采集系统中,每次数据采集过程,单片机和A/ D 转换之间都存在数据的传送,由于受单片机执行指令时间的限制,采集一个数据需要几到几十微秒的时间,这样的数据采集系统难以适应高速信号采集的需要。本系统是在单片机控制下,完全由CPLD自动实现数据采集的全过程。在该系统中单片机只控制数据采集的启动和采集结束后对数据的处理或传输,在数据采集的过程中,单片机并不对采集通道进行任何控制,这样就使系统的采集速率完全不受单片机速度的限制,从而实现高速数据采集的目的。系统的主程序的基本流程框图如图4所示。
图4 主程序流程图
主程序主要采用中断的方式对整个系统进行操作和控制。其中,数据采集使用外部中断方式,当CPLD的数据缓冲器数据存满时发出中断申请,单片机就转入相应的中断程序,进行中断数据处理,把CPLD中的数据转移到SRAM里进行保存;与PC机的数据连接使用串行口中断方式(设置为最高优先级,响应时屏蔽其他一切任务的执行),将SRAM中的数据传送到PC机。与主机通信主要由C8051F040通过中断方式接收PC机发送过来的字符,在进行码字的判别之后,把相应的数据送回到PC机。
5 应用分析与结论
本文作者的创新观点是:针对某军工产品的设计需要,采用CPLD和MCU设计了一种多路高速实时数据采集系统的设计方案及实现,该系统能够实现多通道同步采样或异步采样,利用CPLD实现对A/D的逻辑控制,使用C8051F040对A/D转换数据进行处理。测试结果表明,所设计的基于CPLD的多通道数据采集系统,能够准确有效地进行A/D数据采集。本系统的设计思想和方法不仅适用于多路数据采集,而且能有效地扩MCU访问外设的能力,在成本控制、可扩展性以及资源利用效率上都有非常大的提高。此设计方案已经成功的运用于该产品上,对其数据采集的精度有了较大幅度的提高,产生了较好的经济效益。