APP下载

基于数据采集器的研究与实践

2017-09-03王建中

兵器装备工程学报 2017年8期
关键词:工控采集器字节

王建中

(重庆青年职业技术学院 信息工程系, 重庆 400712)

【信息科学与控制工程】

基于数据采集器的研究与实践

王建中

(重庆青年职业技术学院 信息工程系, 重庆 400712)

针对目前数据采集设备接口单一、功能固定、实用性差等缺点,采用ARM嵌入式工控模块为基础,研究支持以太网、CAN总线、UART串行接口、二线MODEM模拟通信的数据采集器,在硬件设计上采用MODEM芯片73K222AU、HR219307变压器实现模拟信号远距离传输和数据采集;在软件设计上实现用户自定义协议和集成算法,可以有效解决多功能多接口数据采集、传输和控制。实验结果表明,该研究能实现以太网、CAN、UART、二线模拟信号等数据采集和数据转发功能,具有很强的实用价值。

数据采集器、以太网、CAN总线、73K222AU、二线模拟信号

目前,数据采集器主要针对传感器直接采样,常用D/A 转换[1]、总线采样、USB数据传输[2]、串行读取、以太网络、无线传输等技术,高速实时快速采样常采用双端口RAM或SRAM技术[3-4],但几乎没有基于直接获取设备数据或交换信息的专用仪器,信号探测和数据获取非常困难,设备数据分析、检测、检修经常需要大批量的专用设备,野外极为不便,因此,研究多功能数据采集器满足设备数据快速获取、检测、故障分析非常重要。

1 系统设计方案

数据采集器主要以获取信息化设备数据为主,辅助多种通信、故障诊断等功能,设置有可供选择的通信校验算法,如奇偶校验、循环冗余码校验CRC,最大限度的可配置程序组合模块,方便数据采集人机交互。整个系统分为上位机程序和数据采集器两部分,上位机程序安装在传统PC机或便携式笔记本中[5],上位机必须具备RS-232串行接口或能提供USB转RS-232串口;数据采集器由集成ARM7芯片的M9020-N20/M9080-N20嵌入式工控模块和AT89S52单片机构成,配置有RS-232串口、以太网络、CAN总线、二线模拟通信等数据接口,负责完成与设备的数据采集和信息交互,具有转发上位机初始化设备功能;通过VK3266扩展8路串行接口满足RS-485、TTL通信,同时能对标准RS-232数据监测或获取数据。系统数据采集和数据交换方案如图1所示。

图1 多功能数据采集器系统结构

为了满足多种设备数据采集,电气接口采用IEEE或ISO国际化标准,设计有14个通信接口;其中2个嵌入式工控模块自带两个TTL串行接口,通过SP232芯片转换成标准RS-232电平,按照RS-232标准电气关系连接,其中COM1与上位机(用户计算机)连接,COM2与被测设备连接;1路以太网络接口采用RJ45标准;2路CAN总线接口;2路二线模拟通信接口,可采集公共电话网络数据,具有远程控制功能;具有1路RS-485和1路TTL串行通信接口,满足特殊串行通信设备数据采集需要;另外,设计4路RS-232串行诊断监听接口,每路只接两个连线,即地线GND、发送TXD或接收RXD,满足从正常通信设备线路上获取数据的需求,接线关系如图2所示。

2 硬件设计

2.1 嵌入式工控模块性能及特点

嵌入式工控模块是基于LPC2290工业级微控制器,需要同时供应3.3 V和5.0 V电源,模块集成复位电路,阈值电压为2.93 V;支持10M以太网,2路CAN总线,2路UART串行接口,4路10位A/D转换器;内嵌实时操作系统μC/OS-Ⅱ正版实时操作系统,支持TCP/IP协议,8MB内存,2MB NOR Flash程序存储器[6],能满足大量程序装载和定点运算。

2.2 UART串行接口电路

M9020-N20/M9080-N20工控模块内置2个UART接口,输出信号是TTL电平,如果要输出RS-232、RS-485串行标准接口,需要使用SP3232E、MAX485电压转换芯片实现,为了保证工作稳定和降低噪声,需要0.1 μF电容滤波,电路设计如图3所示。

图2 RS-232串行诊断监听电路

图3 UART串行接口电路

2.3 网络接口电路

工控模块内部已经设计CS8900A以太网控制器,为了保证与外部以太网络通信,设计以太网接口电路,如图4所示,外接网络隔离变压器HR601629E芯片,以及相应的匹配电阻、滤波电容、高压电容,从而满足以太网可靠通信。

2.4 CAN 总线接口电路

CAN总线设备由CAN 控制器、总线收发器以及相应的隔离电路组成[7]。工控模块可通过外接CTM8251D芯片,提供带隔离的高速2路CAN总线收发模块,确保CAN总线正常工作,且能在恶劣环境中抗干扰,接线关系如图5所示。2路CAN 总线满足可编程模式,通过上位机设置通信频率、通信模式和CAN地址等参数。

2.5 VK3266串口芯片扩展电路

多功能数据采集器串行接口共10个,即工控模块集成2个,2片VK3266芯片扩展8个串行接口,其中6个为标准RS-232、1个TTL和1个RS-485串行接口。VK3266扩展内部结构包括主机接口、子通道部分、MODEM控制逻辑、中断控制逻辑等几部分,多功能数据采集器方案采用M9020-N20/M9080-N20工控板模块,CPU为ARM7 微控制器,接线关系如图6所示,VK3266通信模式信号线为M1、MO,可选择8位并行总线、SPI总线、UART 3种接口方式,每个子通道具备收/发独立的16 BYTE FIFO,FIFO的中断为4级可编程条件触发点,多功能数据采集器采用8位并行总线,M1、M0分别连接高电平3.3V、GND。CPU发送数据到主通道,VK3266接收到数据后传送到相应的子通道FIFO。FIFO里的数据经过流量控制逻辑后,在波特率发生器的作用下,通过发送移位寄存器顺次将数据发送到TX串行输出信号线上;数据接收时先判断RX串行接收信号线上是否为相对应的数据,接收数据过程与发送数据可逆。接口电路、读写操作时序如图7、图8所示。

VK3266主接口固定设置8位并口,满足一个8位并行数据总线与4个通道UART串行数据通信,通过A0(数据/控制)信号进行切换,子通道选择通过命令字控制和指示,无需额外的通道指示信号线。数据收发根据每次往并行口写高位控制字节CMD的值来区分读写数据,控制字节第6位读写位,高电平时为写寄存器,低电平时为读寄存器;第5、4位为子串口通道号,通过C1、CO的值分别对应子串口1~4;第3、2、1、0位为子串口寄存器地址,即A3、A2、A1、A0串口寄存器地址组合。并行8位传输协议如表1、表2所示。

图4 工控模块以太网接口电路

图5 2路CAN总线接口电路

图6 VK3266扩展串行接口电路

图7 VK3266写操作时序

分类控制字节CMD(A0=0)1个数据字节DB(下行)(A0=1)bit7654321076543210设置01C1C0A3A2A1A0D7D6D5D4D3D2D1D0

表2 并行8位总线传输协议读寄存器

2.6 模拟处理CPU芯片AT89S52

AT89S52芯片 是美国ATMEL公司研制生产,具有低功耗、高性能,兼容80C51指令和引脚,CMOS 8位单片机,8k字节的EPROM和256字节的RAM[8],1个支持全双工UART串行通信口。P1.0~P1.7用作控制信号,P1.0与73K222AU-IP芯片中断信号INTRPT;P1.1、P1.2连接模拟开关74HC4053,控制选通输出;P1.3~P1.7控制信号选通、距离模拟、扩展功能;数据交换通过RS-232串行接口RXD、TXD与工控模块数据通信。

2.7 MODEM芯片72K222AU模拟通信电路

73K222AU是TDK公司生产的紧凑、高性能MODEM芯片,目前有40引脚DIP和44引脚PLCC两种封装,支持Bell 212A/103 、CCITT V.22/V.21、Bell 212A和V.22、Bell 103和V.21标准协议,具有调制解调器的功能,支持语音拨号和应答等功能,数据传输协议可根据检测需要由上位机发送端口初始化命令,二线模拟通信原理如图9所示。

二线模拟通信模块由73K222AU 芯片、HR219307变压器、接口电路、AT89S52处理芯片组成远程传输或接收系统,通过16位地址/数据复用与MODEM芯片相连,利用单片机控制数据收发,再通过变压器信号放大,实现两根电话线同步或异步远程数据通信,甚至可以达到数百公里。73K222AU 中UART控制、MODEM控制,即接收缓冲RBR、发送缓冲THR、线路控制LCR、MODEM控制MCR、线路状态LSR 、分压锁存器低位DLL、分压锁存器高位DLM、控制CR0、控制CR1等20个寄存器。通过寄存器设置模拟通信传输协议、主叫和被叫方式,保证通信线路全双工工作模式。

图9 73K222AU模拟通信模块电路

3 软件设计思路与实现

3.1 软件模块设计

多功能数据采集器软件设计采用模块化架构,便于用户根据需要设置采集口通信参数和组装通信协议,软件设计分成上位机控制、ARM信号处理板数据采集、模拟通信板数据采集3部分软件。上位机软件集成各数据采集端口初始化通信协议,封装与被采集设备相应的数据交换协议,接收并解析工控板各端口采集的数据;ARM信号处理板数据采集以M9020-N20/M9080-N20工控板和扩展串口构成,包含UART串口、VK3266扩展串口、以太网络、CAN总线等处理软件,同时,接收和转发上位机通道初始化参数至模拟通信板,接收和转发来自二线模拟通道采集的数据至上位机;模拟通信板数据采集以AT89S52为主控CPU,完成基于MODEM模拟信号数据采集。软件程序模块如图10所示。

图10 多功能数据采集器软件模块

上位机软件采用Microsoft Visual C++ 6.0软件开发,数据库采用Microsoft SQL Server 2008 ;ARM信号处理板数据采集软件采用ARM公司推出的集成开发工具ADS 1.2;模拟通信板数据采集软件采用keil c51中文版v9.0.0开发。

3.2 多功能数据采集器协议封装

3.2.1 采集端口初始化协议

多功能数据采集器端口较多,为更好满足用户数据采集协议可定制需要,给每个数据采集端口分配1个字节的地址位,便于数据接收和解析;每种类型端口初始化数据长度占1个字节;另外初始化参数包含报头、发送字节数、端口参数配置、校验码、报尾。

采集端口初始化协议格式:报头(02)+总字节数(除报头、报尾)+端口地址+字节数+端口参数配置+……端口地址+字节数+端口参数配置+校验码1+校验码2+报尾(03)。参数设置端口可以任意选择,可以一次设置启动一个或多个数据采集口。

3.2.2 解析被采集设备数据

上位机启动采集器后,各端口工作一直处于接收状态,时间为T0,等待时刻为T1,如果T1-T0≥30 s则未采集到数据,连续3次未收到数据,通知用户数据采集失败;否则,收到数据显示在采集串口并保存至数据库,如图11所示。

多功能数据采集器接收数据后,打包转发至上位机,数据封装:报头(02)+端口地址+字节数+采集数据+报尾(03),由ARM信号处理板完成。如果有多个采集口同时采集到数据,仍然按以上封装格式分别发送至COM1,由上位机按端口解析保存数据。

MODEM模拟通信板数据采集由二线模拟通道完成,接收到上位机初始化指令后,直接调用XBYTE写入每一个寄存器控制字;初始化后二线模拟通信口一直处于接收状态,待采集到数据后,单片机AT89S52将接收的数据通过串口发送至ARM信号处理板COM3或COM4。模拟通信板发送、接收程序让如下:

void send_data(unsigned char ch)

{

while((XBYTE[LSR_addr]&0x20) == 0x20)

{ XBYTE[THR_addr] = ch; }

}

unsigned char recieve_data( )

{

unsigned char recieve_ch;

while((XBYTE[LSR_addr]&0x01) == 0x01)

{ recieve_ch = XBYTE[RBR_addr] & 0x0ff; }

return recieve_ch;

}

图11 上位机数据采集流程

3.3 数据采集器常用算法封装

为了满足数据采集功能适应多种设备,集成了常用的通信校验码程序,并预留程序接口以便后期功能扩展,主要集成以下2种常用通信校验程序:

1) 奇偶校验算法及程序

奇偶校验是将给定数转换成二进制数,其二进制数中含1的个数是奇数或是偶数[9]。

int parity_check(unsigned char c)

{

int value=0;

while(c) { value ^=c; //进行异或运算

value >>=1; //value右移一位

}

value &=0x1;

return value;

}

2) CRC循环冗余码校验算法

循环冗余码校验( Cyclic Redundancy Check,简称CRC)是一类重要的线性分组码[10],具有较强的误码检测能力和抗干扰能力,在通信领域广泛应用,其编码和解码技术简单,计算量较小,适用于检错和纠错。国际上常用CRC有以下几种多项式[11]:

CRC-8:

(1)

CRC-CCITT:

(2)

CRC-16:

(3)

CRC-12:

(4)

CRC-32:

(5)

CRC校验基于线性编码理论实现通信误码检测,发送端数据的信息编码都遵循这一编码原则。在发送端,选定CRC校验规则生成传送信息码的监督码,并附在传送信息后边,组成新的报文打包发送;在接收端,接收的信息码(去除CRC码)按同样的规则重新生成CRC码,新生成的CRC码与接收到的CRC码进行比较,如果相同则接收数据正确,否则错误。CRC码生成规则有按位计算、按字节计算、按半字节计算3种形式,计算方法如下:

(6)

① 按位计算CRC:

(7)

(8)

② 按字节计算CRC:

(9)

(10)

③ 按半字节计算CRC:

(11)

(12)

4 实验验证

多功能数据采集器实验前,需要针对采集设备连接好线路,各采集口接线除监听按照电气接口采用IEEE或ISO国际化标准,COM1参数设置固定(波特率:115200,奇偶效验:无,数据位:8,停止位:1)。 COM3、COM4参数设置固定(波特率:9600,奇偶效验:无,数据位:8,停止位:1)。如果需要监听检测设备串行接口数据,接线关系按照图2方式连接,确保各设备接线正确后开启电源,会听到多功能数据采集器蜂鸣器响声,运行多功能数据采集器程序,采集端口初始化后,启动采集口30s未收到被采集设备的数据,接收数据栏显示“检测失败”。 PC端采集端口初始化窗口详见图12; MODEM模拟通信硬件电路板详见图13;二线模拟端接收到数据时波形如图14。

图12 采集器端口初始化窗口

图13 MODEM模拟通信板硬件电路板

图14 二线模拟端口接收到数据时的波形

5 结论

提出了采用集成ARM7芯片的M9080-N20嵌入式工控模块和AT89S52单片机构成多功能数据采集器CPU,通过VK3266芯片扩展串行接口,以及MODEM芯片73K222AU调制解调器实现模拟通信,集成1个以太网络接口,2路CAN总线接口,5路UART标准RS-232、1路TTL、1路RS-485串行接口,2路二线模拟信号数据接口;灵活多样的模块化程序设计,满足用户对数据采集口配置通信模式,通信协议可根据设备需要自由组装,有效解决数据采集设备接口单一、功能固定、实用性差等缺点,便于应对以太网、CAN、串行接口、二线模拟等多种设备数据采集,满足通信设备数据信息提取、故障诊断,以及远距离模拟信号数据传输、野外数据组网和通信需求。

[1] 李艳坤.基于ARM11的LXI多通道数据采集器的研究与实现[D].西安:西安电子科技大学,2012.

[2] 朱磊.基于C8051F340的低成本数据采集器设计[J].国外电子元器件,2008(4):6-8.

[3] 孔令海.高速大容量数据采集器的设计[D].成都:电子科技大学,2013.

[4] 王建中.高速实时数据采集与传输在捷联惯性导航中的应用[J].科技创新与应用,2011,165 (17):86-87.

[5] 朱磊,薛谦,石教雄.基于LabVIEW的以太网接口数据采集器设计[J].计算机测量与控制,2009,17(4):788-790.

[6] 吴桂清,张向荣.基于MiniARM9080 的车载监控系统设计[J].电子技术应用,2009(6):110-113.

[7] 广州致远电子有限公司.M9020-N20/M9080-N20 产品用户手册[Z].2007.

[8] 刘绿山,刘建群,李仕勇,等.基于AT89S52单片机的温度控制系统[J].微计算机信息,2007,23(17):98-100.

[9] 杨晓阔,蔡,理,黄宏图.基于量子元胞自动机的奇偶校验系统分块设计[J].固体电子学研究与进展,2010,30(4):487-494.

[10]马吉明,程立辉,张素智.字节型CRC算法分析与实现[J].微计算机信息,2006,22(3):234-236.

[11]CAMPOBELLO G,PATANE G,RUSSO M.Parrallel CRC Realization[J].IEEE Transactions on Computers,2003,52(10):1312-1319.

[12]刘永易,贾彪,西光旭,等. 某战术训练模拟器快速校准数据采集系统[J].火力与指挥控制,2016(12):165-168.

(责任编辑 杨继森)

Research and Practice of Data Collector Device

WANG Jianzhong

(Information Engineering Department, Chongqing Youth Vocational & Technical College, Chongqing 400712, China)

Since currently data collector has some defects, such as interface is single, function is fixed, and practicability is poor, and a new collector is proposed, which is based on ARM built-in industrial control module, and can support Ethernet, CAN bus, UART serial interface, and the data collector having two lines MODEM analog communication. The hardware design uses MODEM chip 73K222AU, HR219307 transformer to realize analog signal long-distance transmission and data acquisition; user-defined protocols and integrated algorithm in software design can expand the function of analog communication based on 73K222AU modulator-demodulator, resolving effectively the problems of multifunctional data collection, transmission, and control with multi-interface. The experimental results indicate that this type of product can implement the data collection and transmission function of Ethernet, CAN, UART and two lines MODEM analog signal. Consequently, it has very strong practical values.

data collection; Ethernet; CAN bus; 73K222AU; second line analog signal

2017-04-20;

2017-05-22 基金项目:重庆市基础科学与前沿技术研究专项(一般项目)“北斗组合导航系统的数据融合方法研究”(cstc2016jcyjA0138);重庆市教委科学技术研究项目“MEMS捷联惯性导航系统研究”(KJ1603902);重庆青年职业技术学院基础研究项目(重点项目)“多功能数据采集平台建设研究”(CQY2015Z001);计算机基础MOOCs与混合教学研究项目(CQY2015Y014)

王建中(1979—),男,硕士研究生,双硕士学位,副教授,高级工程师,主要从事计算机信息技术、惯性导航研究。

10.11809/scbgxb2017.08.026

format:WANG Jianzhong.Research and Practice of Data Collector Device[J].Journal of Ordnance Equipment Engineering,2017(8):117-123.

TP274

A

2096-2304(2017)08-0117-07

本文引用格式:王建中.基于数据采集器的研究与实践[J].兵器装备工程学报,2017(8):117-123.

猜你喜欢

工控采集器字节
工控编程编译工具应用现状分析及展望
工控系统脆弱性分析研究
基于蜜罐的工控网络安全防护技术研究进展
带U型切口的非线性压电能量采集器的动力学仿真研究
No.8 字节跳动将推出独立出口电商APP
COVID-19大便标本采集器的设计及应用
智能矿井工控网络安全防护系统研究与实践
碰撞式宽频振动能量采集器研究进展
No.10 “字节跳动手机”要来了?
轻量级分组密码Midori64的积分攻击