首页 文学文摘 时政新闻 科技科普 经济法律 健康生活 管理财经 教育教学 文化艺术 社科历史

多冗余输出的数据采集处理单元设计与实现

作者:蒋元星, 邵忠辉 来源:现代电子技术


  摘 要:为解决多通道数据的远程采集和多路冗余输出问题,介绍基于RS 485总线的多冗余数据采集处理单元设计方法,给出4~20 mA采集模块、多路冗余输出处理模块的设计实现,该单元具有通用性、可扩展性强,冗余度高的特点。
  关键词:RS 485总线;单片机;数据采集;冗余输出
  中图分类号:TN919 文献标识码:A
  文章编号:1004-373X(2010)11-0097-03
  
  Design and Implementation of Data Acquisition Processing and Multi-redundant Output Unit
  JIANG Yuan-xing1,2, SHAO Zhong-hui2
  (1. Zhejiang Tongji Vocational College of Science and Technology, Hangzhou 311231, China;
  2. Zhejiang Xinya Magnetoelectricity Developmemt Co. Ltd., Zhoushan 316000, China)
  Abstract:A method to design the multi-redundant data acquisition and processing unit based on RS 485 bus is introduced to solve the issues of multi-channel data acquisition and multi-redundant output. The realization of 4~20 mA acquisition module and multi-redundant output processing module is described. The unit has the characteristics of generability, scalability and high-redundancy.
  Keywords: RS 485 bus; micro controller; data acquisition; redundant output
  
  在现代信号处理系统中,数据采集处理系统越来越广泛地用于各行各业[1]。现代船舶为了实现安全、经济的运行,自动化程度越来越高,需要采集处理各种数据。由于船舶本身的特殊性,各设备运行工况非常恶劣,环境干扰因素多,为了保障船舶安全,对数据采集处理的可高性有很高的要求。本文介绍一种用于船舶监测报警系统的数据采集单元,该单元由采集模块实现对多通道现场各数据的实时采集,然后由专用的多路冗余处理模块输出至本地人机界面显示和上位机进行综合处理,具有很强的实用性、通用性及可扩展性,且冗余度高,稳定可靠,已在多个船舶监测报警系统实际工程中应用。
  1 系统总体设计
  为满足对现场多种数据采集和处理、显示与上传,采集单元由开关量采集模块、4~20 mA采集模块、Pt100采集模块、热电偶采集模块构成集总式采集系统,再由双CPU专用处理模块实现多路冗余输出至本地人机界面显示和PC机。单片机的运算能力强,运算速度快,I/O接口功能完善,抗干扰能力强,可靠性高,系统结构简单、价格优廉,是现场数据采集器的核心元件之一[2]。采集终端采用基于单片机ATmega16的各专用采集模块。RS 485硬件设计简单,控制方便成本低廉,支持远距离多机通信[3],故采用RS 485总线进行数据传输。图1为系统的总体框图。
  图1 系统的总体框图
  2 系统的设计实现
  本文主要对数据采集单元硬件部份的实现做介绍,包括单片机采集模块、多路冗余输出处理模块。开发工具为Protel 2004 DXP和Keil μVision 2。
  2.1 单片机采集模块
  为满足工程需要,开发设计了4~20 mA输入与输出模块、PT100输入模块、热电偶输入模块、开关量输入与输出模块等系列采集终端,各终端采用模块化设计,可以方便灵活地组成不同要求的采集单元。以下以8路4~20 mA输入模块为例说明其设计与实现。
  2.1.1 单片机选择及ATmegal6单片机主要特征
  该系列采集模块采用功能强大的ATmega16(TQFP封装)作为主处理器。ATmega16是RISC结构的低功耗8位AVR微控制器,其主要特点如下[4-5]:16 KB的系统内可编程FLASH 512 B E2PROM,1 KB SRAM,32个通用I/O口线,32个通用工作寄存器,用于边界扫描的JTAG接口,支持片内调试与编程,3个具有比较模式的灵活的定时器/计数器(T/C),片内/外中断,可编程串行USART,有起始条件检测器的通用串行接口,8路10位具有可选差分输入级可编程增益的ADC(TQFP封装),具有片内振荡器的可编程看门狗定时器,1个SPI串行端口,以及6个可以通过软件进行选择的省电模式。片内ISP FLASH允许程序存储器通过ISP串行接口,或者通用编程器进行编程,也可以通过运行于AVR内核之中的引导程序进行编程。引导程序可以使用任意接口将应用程序下载到应用FLASH存储区(Application FLASH Memory)。在更新应用FLASH存储区时引导FLASH区(Boot FLASH Memory)的程序继续运行,实现了RWW操作。由于其先进的指令集以及单时钟周期指令执行时间,ATmega16的数据吞吐率高达1 MIPS/MHz。
  2.1.2 电源及电压基准源
  本模块外部由直流24 V电源供电,内部由3个鑫飞达DC/DC隔离电源实现分开供电,互不干扰,一路经DFA5-24S12输入24 V隔离输出5 V供通道采样与A/D转换工作电源;一路经DFA5-24S5输入24 V隔离输出5 V供CPU工作电源;一路S05HIS05-2W输入5 V隔离输出5 V供RS 485通讯工作电源。模块前向通道的信号调理电路和模数转换芯片都需要一个高精度的5 V的电压基准源,TL431就是基准源电路的核心器件。其主要特点是:稳压值从2.5~36 V连续可调;参考电压源误差±1%,低动态输出电阻,典型值0.22 Ω,输出电流1.0~100 mA,全温度范伟内温度特性平坦,典型值为50 ppm;低输出电压噪声[6]。TL431适用作12位模数转换器的基准电压参考源[7]。本模块用TL431构建的5 V基准电路。
  2.1.3 工作过程
  8路4~20 mA信号经信号调理电路(TLC279ID),再经数模转换(TLC2543)、隔离(6N137)送入ATmega16单片机,它利用内部自带的ADD转换器采集8路数据,将其经由RS 485接口电路传送给上位机,RS 485通讯模块采用带磁隔离的ADM2483。其原理框图见图2。
  2.1.4 程序设计
  系统上电后执行初始化程序,复位各个端口。当处于监听状态时,各监测点数据采集模块处于自动巡回监测状态,系统开始对各通道按设定间隔时间进行采集;当接收到上位机发送来的指令便选中相应的采集通道执行数据采集,调用数字滤波子程序进行滤波得到精确的数值,再通过数据转换和处理后送微处理器的数据存储器,等待上位机的读取[8]。单片机程序采用C语言编写,系统主程序为一个循环,在循环中完成以下工作[9]:系统初始化,包括初始化I/O端口,外部中断,计数器0,USART等;扫描上位机采集指令;开中断;响应INTO中断和计数器0溢出中断;读取ADC转换结果;将采集的数据调用通讯子程序由串口通讯模块输出;接收上位机发出的命令并进行相应的操作。
  
  图2 4~20 mA输入模块原理框图
  2.2 多路冗余输出处理模块
  为解决对所采集的数据进行多路冗余处理输出,提高可靠性,特设计一双CPU协同处理的串口扩展模块实现多路冗余处理输出。数据通过RS 485总线输入至该模块,经隔离进双CPU处理,扩展为三路串口输出,原理框图见图3。模块采用双ATmega64 芯片作为处理器,双CPU并口总线通讯,CPU数据RAM映射,数据交换速度快,实时性高。串口通讯RS 485总线,通讯模块芯片为带磁隔离的ADM2483,输出采用标准的MODBUS RTU通讯协议。电源采用鑫飞达的5 W DC/DC隔离模块DFA5-24S5。
  ATmega64是高性能、低功耗的AVR、8位微处理器,先进的 RISC 结构,其特性[10]如下:133 条指令大多数可以在一个时钟周期内完成,32×8 通用工作寄存器和外设控制寄存器,全静态工作,工作于16 MHz时性能高达16 MIPS,只需两个时钟周期的硬件乘法器;非易失性的程序和数据存储器,128 KB的系统内可编程FLASH,具有独立锁定位、可选择的启动代码区,通过片内的启动程序实现系统内编程,可以对锁定位进行编程以实现软件加密,可以通过SPI实现系统内编程;JTAG接口(与IEEE 1149.1标准兼容 ),遵循JTAG标准的边界扫描功能,支持扩展的片内调试,通过JTAG接口实现对 FLASH、E2PROM、熔丝位和锁定位的编程。
  图3 多路冗余处理输出模块原理框图
  2.3 通讯设计
  RS 232/422/485都是串行数据接口的标准。RS 232是非平衡传输,RS 422/485是平衡传输。RS 232传送距离最大仅为15 m,最高速率为20 Kb/s,比较适合近距离的本地设备之间的通信连接;RS 485连接最长可达1.2 km,可连接至256个设备节点,数据传输率能高达10 Mb/s[11]。为实现底层多采集模块和上位机间远距离通讯,在底层采用RS 485总线进行数据传输。因PC机端的串口是RS 232接口,故需在PC端接专用的RS 232/RS 485转换模块将RS 232信号转换成RS 485的信号。本采集单元使用通讯模块芯片为带磁隔离的ADM2483,采用工业标准协议——MODBUS RTU通讯协议。图4为RS 485通信接口硬件电路。
  图4 RS 485通信接口硬件电路图
  3 实现结果
  本文所开发设计的4~20 mA输入与输出模块、Pt100输入模块、热电偶输入模块、开关量输入与输出模块系列模块均已定型生产,并获得CCS的型式认可。4-20MA输入模块实物如图5所示,技术参数如下:
  工作电压: (24±0.48) V;
  工作温度: 0 ~60 ℃;
  4~20 mA输入类型:有源、无源;
  量程: 4~20 mA;
  转换分辨率: 12 B;
  转换时间小于1 ms;
  通讯方式: RS 485;
  协议: MODBUS RTU;
  波特率: 9 600 b/s;
  外型尺寸(W×D):108 mm×145 mm。
  多路冗余处理输出模块中数据采集系统的地址、类型、参数等通过可从上位机导入,从而适应各种类型采集模块,具有高的灵活与可扩展性。可将采集终端的数据处理后同步提拱给触摸屏独立显示与上位PC机,也可独立使用直接驱动本地人机界面显示与打印机。模块实物如图6所示。
  图5 4~20 mA输入模块实物
  图6 多路冗余处理输出模块
  4 结 语
  本文所介绍的采集单元实现了对多通道现场数据的实时采集,实现了多路冗余处理模块输出,有很强的实用性、通用性及可扩展性,且冗余度高。该数据采集单元在工程上具有广泛的应用价值,经在多个船舶监测报警系统实际工程中应用表明其性能稳定可靠。
  
  参考文献
  [1]王浩,刘文怡,韩志军.多通道同步数据采集与处理系统的设计与实现[J].通信技术,2009(1):297-299.
  [2]刘松文.基于单片机的实时数据采集系统设计[J].科技风,2009(1):31-32.
  [3]李新超,李继凯.基于RS 485总线的数据采集处理系统[J].现代电子技术,2007,30(12):124-126.
  [4]Atmel Corp.. AVR Application Notes[EB/OL]. \. http://www.atmel.com.2004.
  [5]Atmel Corp.. ATmega16 Data Book[EB/OL]. \. http://www.atmel.com.2003.
  [6]Texas Instruments.TL431 Data Book[EB/OL]. \. http://www.ti.com. 2005.
  [7]谭炳按,马平.基于ATmega16的同步数据采集系统[J].机电工程技术,2008(4):40-43.
  [8]卢长晓.基于ATmegal6的多路水文参数采集及无线传输系统[J].世界电子元器件,2008(12):89-91.
  [9]周俊杰.嵌入式C编程与Atmel AVR[M].北京:清华大学出版社,2003.
  [10]Atmel Corp.. Atmega64 Data Book[EB/OL]. \. http://www.atmel.com.2003.
  [11]许永和.Visual Basic接口设计与工程实践[M].北京:人民邮电出版社,2007.