随着现代工业生产和科学研究对数据采集系统的要求日益提高,采集精度、抗干扰能力和操作安装的简易与否成为人们采集数据时关注的主要问题,这使得高精度的数据采集技术成为关键。基于单片机或其他系列DSP的数据采集器,受芯片功能和结构的限制,硬件设计中往往需要较多的外围电路,导致装置的整体集成度不高,硬件开发相对复杂,使数据采集器的可靠性和抗干扰能力受到极大的限制。基于dsPIC30F系列数字信号控制(DSC)芯片,采用高精度、低噪声、22位分辨率的新型Δ-Σ A/D转换器MCP3551的高精度数据采集器,具有数据精度高、芯片集成度高、开发方便等特点。
Microchip公司推出的dsPIC30F系列芯片是一款将单片机与DSP技术相结合的高性能16位数字信号控制器。以16位单片机为核心的dsPIC30F系列芯片不仅具有功能强大的外围设备和快速中断处理能力,同时还融合了可进行高速计算的数字信号处理器。此外,它在异常事件处理、软件开发环境等方面也表现出强大的性能。由于dsPIC30F芯片的内部资源丰富,因此基于dsPIC30F平台开发的数据采集器仅需要很少的外设。不但装置的抗干扰性和可靠性能够满足数据采集器在各种环境下运行的要求,而且可以提升系统的灵活性,缩短开发时间,降低开发成本。
数据采集系统设计
数据采集系统如图1所示,主要由模拟信号调理电路、A/D转换电路、显示电路和485通信电路等构成。信号进入A/D转换器之前要进行处理,模拟信号处理是影响系统性能的重要因素之一,设计时考虑信号质量,提高信噪比,尽量减少畸变。设计时在调理电路中采用电位器微调,稳压管限制输入量程。在A/D转换电路中采用Microchip公司的MCP3551芯片采样并转换信号,它以三线的SPI方式和dsPIC30F微处理器联接。dsPIC30F微处理器控制A/D采样转换,并通过显示电路数码管显示输出及RS485与计算机通信。输入信号为0"30mA的电流信号,经过调理电路的处理,进入MCP3551E的输入端的差分信号幅度范围为0~3V,同时信噪比高。A/D转换电路是数据采集系统的核心部分,本系统采用Microchip公司的MCP3551芯片。该芯片使用Δ-Σ转换方法,实现最高22位的无丢失码数据输出,其有效分辨率为21.9位,转换精度高,功率消耗低。
系统硬件设计
高精度数据采集器以dsPIC30F2010芯片为核心,硬件结构图如图2所示。首先,由于dsPIC30F2010为16位数字信号控制器,其强大的计算能力和数据吞吐能力使得dsPIC30F2010能够单独完成数据处理、控制、通信、人机接口等功能,减少了芯片数量,简化了硬件结构。其次,由于dsPIC30F2010内部集成了许多必需的外围器件,如RAM、FLASH、EEPROM、USART、MSSP等,使得所需外围扩展电路很少,进一步简化了硬件结构。从图2可以看出,本装置的硬件结构非常简单,极大地提高了数据采集器的实时显示性及抗干扰性。
A/D采样转换模块设计
A/D采样转换模块采用MCP3551,它是一种高精度、低噪声、宽动态范围并采用单2.7V"5.5V电源供电的单通道22位分辨率Δ-Σ的A/D转换器,可在扩展温度范围(-40oC"+125oC)条件下工作,方便地测量低频低电压信号。
输入信号为0"30mA电流,经过调理电路的精密电阻R3把电流信号转换成电压信号,进入MCP3551的输入端的差分信号幅度范围为0"+3V的电压。电阻R4和电位器RP1并联构成微调电路。电阻R2为限流电阻。二极管D1、稳压管D2及电阻R5构成量程限制电路,当输入信号的幅值超过+5V,则二极管D1导通把信号限制在+5V,对后面的电路起保护作用。dsPIC30F微处理器的RB0、SDI和SCK引脚分别与MCP3551的片选端{C}\halfnote_{}^{-}{S}\halfnote_{}^{-} 、数据输出端SDO和串行时钟输入端SCK相连。RB0控制着转换的启动。转换状态由SDO/ R{D}\halfnote_{}^{-}{Y}\halfnote_{}^{-}引脚输出,在RB0为低电平时通过检测SDI获得。SDI引脚的高电平状态表示器件正在进行转换,而低电平状态则表示转换完成。同时使用SCK传输已准备就绪的数据。
在实际的测量中,参考电源是影响MCP3551采集精度的重要因素之一。为了减小其影响,参考电源必须稳定、噪声小。因此,使用REF3125作+2.5V电压的稳压芯片,以及利用外围电容的滤波作用进一步减少电压波动对MCP3551的影响。
RS485串行通信模块设计
RS485串行通信模块通过MAX485芯片进行信号收发。主控机处于远程控制室,所受干扰小,因此用MAX485芯片完成数据通讯功能。而传输分站工作在环境恶劣的工业生产现场,干扰较大,因此dsPIC30F微处理器和MAX485之间采用光电隔离。MAX485是半双工通讯芯片,其收发状态由dsPIC30F微处理器的RB4引脚控制。当RB4置低电平时,DE连接的二级管导通,使信号输入端DI 连接的二级管正端电压较低,二级管截止,发送器不工作,芯片成为RS485接收器。差分信号由A、B输入,由接收器输出反向端RO输出反向信号,经光电隔离到dsPIC30F微处理器的RXD引脚,完成接收过程。当RB4置高电平时,DE连接的二级管截止,使得输入端DI连接的二级管正端电压较高,此二级管的通断由DI 输入端电平高低决定,芯片成为RS485发送器。信号由dsPIC30F微处理器的TXD引脚发出,经光电隔离,从DI输入,由A、B口输出RS485差分信号,完成发送过程。另外,由于dsPIC30F微处理器能够输出20mA以上的电流,因此,在dsPIC30F微处理器和MAX485的控制连接线路和发送接收连接线路中,可以不加逻辑门电路。
LED显示模块设计
LED显示模块采用串行接口的8位数码管显示驱动器MAX7219。它具有10MHz传输率的三线串行接口与dsPIC30F微处理器相连,最多可驱动8个共阴数码管或64个发光二极管。其内部有可存储显示信息的8×8静态RAM、动态扫描电路以及段、位驱动器。MAX7219的数据输入主要由三根输入线完成。它们分别是串行数据线DIN、加载线LOAD与时钟线CLK,分别和dsPIC30F微处理器的RB1、RB2与RB3引脚相连。串行数据是以16 位数据包的形式从DIN 脚串行输入,在CLK的每一个上升沿逐位送入芯片内部,LOAD脚在第16个CLK上升沿出现的同时或者之后但在下一个CLK上升沿到达之前,对输入的数据进行锁存,否则送入的数据将丢失。
系统软件设计
软件在Microchip公司的MPLAB IDE可视化集成开发环境下运行,使用C30编译器编写。MPLAB IDE提供了方便且功能丰富的界面,其中C30编译器提供了C语言的标准特性。高精度数据采集器的软件主要完成A/D转换、LED显示和RS485通信功能。
主程序流程图如图3所示。首先,配置PIC微处理器的SPI端口为在时钟下降沿时,MCP3551输出数据,在时钟上升沿时锁存数据。然后配置MCP3551在连续转换模式方式下工作,上电令RB0为低电平输出,即{C}\halfnote_{}^{-}{S}\halfnote_{}^{-} 为低电平,并一直维持。然后查询SDI引脚的电平状态,如果SDI引脚为低电平,则读取接收缓冲器SPI1BUF的数据,如果SDI引脚为高电平,则继续查询。然后通过LED显示输出及通过RS485通信程序与PC机通信。
RS485通信采用dsPIC30F微处理器的USART串口接口,以串口中断的方式通信。串口中断设定为最高中断优先级,使能接收中断,禁止发送中断。波特率发生器的值由公式U1BRG=FCY/(16×波特率)?1计算得到,其中FCY为指令周期时钟频率,波特率选择9600bps,通过接收器和发送器进行数据传输。
结束语
本文介绍的基于dsPIC30F的高精度数据采集器,利用了高精度、低噪声、22位分辨率的新型Δ-Σ的A/D转换器MCP3551进行数据采样转换,实现了dsPIC30F微处理器与PC机的RS485通信功能,并能够通过LED显示输出。按照此方案设计的系统成功应用于传感器校验系统中。实际的调试和运行表明,此数据采集器可在扩展温度范围(-40oC"+125oC)条件下工作,方便地测量低频低电压信号,它精度高、抗干扰能力强、体积小,能达到6位半LED显示输出,具有很强的实用价值。