罗 铿,平佳伟
(上海航天电子技术研究所,上海 201100)
基于ARM的全自动数据采集系统的设计与实现
罗铿,平佳伟
(上海航天电子技术研究所,上海201100)
为满足环境恶劣、人烟稀少地区数据自动采集的要求,提出并实现了一种基于ARM的全自动数据采集系统的方案;设计的主控板硬件电路以AM3352为核心,配备数字量和模拟量采集模块,扩展以太网、WIFI、RS232/485等外设接口;开发的主控软件在嵌入式Linux操作系统中实现全自动数据采集控制,开发的基于Android的手机APP可与主控软件实时通信,设置采集系统的各项参数;测试结果表明,开发的全自动数据采集系统具有操作方便、采样精度高以及运行稳定等优点,可满足实际应用。
ARM;Linux;Android;APP;自动数据采集
某公司需要开发一套数据采集系统,主要应用于环境监测,部署在高山、冰川、海岛、沙漠、原始森林等环境恶劣、人烟稀少的地区,实现区域内监测数据的采集、处理及存储,并将数据发送至卫星。由于部署环境偏僻,不方便维护和修改配置,该系统必须具有很高的可靠性,很强的错误处理能力,断电自重启、自运行等功能。
为了满足该项目的需求,采用以ARM处理器为核心,结合移植的Linux操作系统,开发了一套集嵌入式控制、高速数据采集、实时处理于一体的数据采集系统。该系统具有16路同步16bit精度模拟采集通道,16路数字量采集通道,以及RS232和RS485等接口用于外接其他传感器或设备,能对各类现场信号进行采集、分析处理和存储;该系统具有上电自运行,出错自重启等错误处理和自恢复功能;该系统仅在用户设定的时间段内启动各功能模块进行数据采集、发送,其他大部分时间处于待机状态能够保持较低的功耗。
同时开发APP软件,可通过移动客户端与系统连接,实现参数实时设置、数据实时显示等功能,在偏僻地区部署系统时只需携带手机即可对系统进行重新设置,满足系统的便携性需求。
系统主要由通信模块、主控板以及客户端组成,框架如图1所示。
图1 系统框架
主控板为整套系统的核心,搭载板上系统,运行主控软件,接收来自传感器的监测数据,与通信模块进行实时交互,与后端计算机或移动客户端进行实时通信;通信模块接收主控板的指令,向卫星发送数据;计算机或移动客户端接收主控板的数据进行实时显示,并实时设置主控板的各项参数。
为满足项目需求,以AM3352为核心设计了主控板硬件电路[1-3],同时包括电源、复位电路、时钟电路、128 MB DDR2 SDRAM、256 MB NAND FLASH、SD卡接口、RS232接口、RS485接口、以太网接口、WIFI模块、AD采集模块、数字IO模块,框架如图2所示。
图2 主控板硬件框架
微处理器采用TI公司的Cortex-A8 32位RISC处理器AM3352,工作频率为800 MHz,最高频率达到1 GHz,具有NEON SIMD 协处理器、单错检测(奇偶校验)的 32 KB/32 KB L1 指令/数据高速缓存、含纠错码(ECC)的 256 KB L2 高速缓存,支持Linux操作系统,具有丰富的外设接口,使得这款处理器在兼备高效处理能力、可靠性以及低功耗。
2.1AD模块
AD模块由多路复用电路、衰减电路、AD电路组成,其原理如图3所示。
图3 AD模块框图
图4 AD电路原理图
SPI控制接口采用三线式,将引脚SDI拉高;CS片选信号连接引脚CNV,上升沿启动转换,但CNV必须在最小转换时间逝去前返回低电平,启动转换后,并强制SDO进入高阻态,直至转换完成,SDO从高阻态变为低阻态,数据位则在随后的SCK下降沿逐个输出,MSB优先,时序如图5所示。
图5 AD数据采集时序图
2.2WIFI模块
WIFI模块采用小型WIFI232模块,支持802.11 b/g/n无线标准,UART数据通讯接口,多种工作模式可配置,内置天线,具有超小尺寸低功耗的特点。
WIFI模块采用MTK公司的802.11 b/g/n标准WIFI芯片MT5931,集成功率放大器(PA)、低噪声放大器(LNA)及收/发开关(T/R Switch)于单芯片,支持最先进的Wi-Fi规格,包括 STBC、Wi-Fi Direct 以及 Hotspot 模式。WIFI芯片通过单片机扩展UART接口,以便于接入其他控制器,简化通信接口驱动,可直接使用异步串行通信。连接引脚VCC、GND、RXD和TXD。
2.3以太网模块
以太网模块采用MICREL公司的千兆以太网PHY芯片KSZ9031RNI,该芯片支持10 M/100 M/1000 Mbps以太网收发,提供RGMII接口,使用3.3 V和1.2 V电源供电,网络插座采用内置网络变压器的HY911130AE。以太网模块原理如图6所示。
图6 以太网电路原理图
全自动数据采集系统主要包括3个
软件:主控软件、客户端软件、App软件。
主控软件运行在主控板上,是整个系统的核心。客户端软件可运行在Windows系统、Linux系统的计算机上,主要用于设置主控软件的各个参数并显示接收到的数据。App软件可运行在Android系统的手机上,实现与客户端软件相同的功能,同时具备更高的灵活性与便携性。主控软件和客户端软件、APP软件通过网络连接,可实时通信,延时在1秒内。
3.1主控软件设计
开发环境:以一台安装Ubuntu12.04桌面版系统的计算机作为宿主开发环境,通过网线连接移植了Linux3.2.0系统的主控板,使用NFS来挂载共享目录。在宿主机安装QT4.7开发工具,采用交叉编译工具链arm-none-linux-gnueabi-g++,编写完成的程序通过共享目录拷贝到主控板上,在主控板上进行调试[4]。
主控软件包含主程序和AD子程序、参数子程序、通信子程序3个子程序。
1)主程序负责完成逻辑控制,实时检测是否有新的参数传入并设置,配置通信模块的各项参数,在到达设定的采样时间调用AD子程序,到达设定的发送时间调用通信子程序等功能;
2)参数子程序与上位机软件建立网络连接,实时获得设置的参数,并保存在SD卡中;
3)AD子程序通过控制主控板上外接的AD模块获得采样数据,并保存在SD卡中;
4)通信子程序接收来自通信模块的数据,解析GPS时间并完成校时;
主控软件的运行流程如图7所示。
图7 运行流程图
主控软件可在主控板上电时自动启动,方法是在主控板的Linux系统目录/etc/init.d/下面增加添加自命名为S91dcp.sh的脚本文件,文件内容如下:
!/bin/sh
/home/build-Debug_m3352-ARMQT-Debug/Debug_m3352 &
其中第二行就是指主控软件在系统中的实际位置。
3.2客户端软件设计
客户端软件通过TCP/IP协议与主控软件建立连接进行通信,本文将主控软件设计为Server端,将客户端软件设计为Client端,主控软件运行时,客户端软件可随时连接或断开连接。
开发完成的客户端软件具有与主控板实时通信、数据包收发、通信模块状态实时显示、AD采样数据实时显示、参数实时设置等功能,界面如图8所示。
图8 客户端软件界面图
用户在客户端软件上设置了平台地址、发射频道、发射频率、发射功率、发射时间、数据保存时间、AD采样时间段等多项参数后,将这些参数整合成一个数据包发送给主控板,主控软件对数据包进行解析并实时设置。客户端软件收到主控软件发来的数据包,解析后实时显示各个模块的数据,同时,客户端软件可以发送控制指令到主控软件,再由主控软件转设置通信模块,实现对通信模块的实时控制。整个客户端软件功能如图9所示。
图9 客户端功能图
主控软件将所有信息组成一个包,每1秒向客户端软件发送一次,客户端软件收到这个数据包后,根据两个软件的通信协议(见表1)解析出各个模块的数据。
表1 主控软件与客户端软件通信协议
3.3APP软件设计
项目在Android手机上开发了相应的APP软件,可无线连接到主控板,实现远程控制与显示,大幅度提升系统的灵活性与便携性。
APP软件开发的方式与主控软件开发方式类似,以一台安装Windows7操作系统的计算机作为宿主开发环境,通过USB线连接Android手机。在宿主机中安装QT5.2开发工具,安装并配置JDK1.8、Apache1.9、Android SDK、Android NDK这4个软件,配置完成后即可编译生成后缀为Apk的Android程序,然后在手机上进行调试[5-6]。
项目采用的软件开发工具QT是一种跨平台的开发工具,因此只需对客户端软件进行部分修改,绘制APP软件界面,在配置好的环境下重新编译,即可生成APP软件。项目开发的APP软件具有与客户端软件完全相同的功能,由于手机屏幕较小无法同时显示所有功能,分别绘制了参数设置界面、参数和状态查询界面、实时通信界面,这3个界面可实时切换,便于用户使用。
本文设计与实现的系统需要在恶劣环境下长期工作,为了验证系统的可靠性和实用性,进行了大量的数据采集测试、应急模式测试和稳定性测试。
4.1数据采集测试
利用标准信号源提供信号,接到ADC的16个通道上,通过主控板的AD子程序读取采样数据,转发到客户端软件进行显示,结果如表2所示。
表2 ADC数据采集测试结果 V
由表2可以看出,获得的采样值与标准信号源的值误差在0.01V以内,采样率误差较小,系统可以准确地采集数据,且数据转换精度高、误差小,符合使用要求。
4.2应急模式测试
应急模式是系统监测到某个采样值超过设定的阈值时紧急启动的一种机制,触发后立刻进入发射模式,将当天的采样数据发送出来。
模拟实际情况进行应急模式测试,在系统平稳运行采集数据时,给通道一个超过阈值的信号,观察客户端软件发现系统立刻进入了应急模式,完成了数据发送,事后通过回看系统日志也证实在该时刻系统进入了应急模式。在不同采样时间段分别进行应急模式测试,从触发阈值到进入应急模式均在1秒内,大量测试表明应急模式满足实际应用需求。
4.3系统稳定性测试
稳定性是系统最重要的指标,设置好各项参数后,启动系统并进行了72小时不间断测试,在每天固定时间启动AD子程序进行数据采集,每天固定时间进行数据发送,每1小时进行一次系统校时确保与卫星时间同步。
通过分析操作日志以及观察客户端的实时数据,发现系统运行稳定,功能完善,在72小时内未出现错误,达到了预期的效果。
本文提出了一种基于ARM和Linux的通用数据采集系统方案,设计了主控板卡硬件电路,搭建了嵌入式Linux系统采集平台,实现了16路精确定时模拟量采样、16路数字量采样,具备RS232/485接口、以太网通信功能,开发的系统软件运行稳定,客户端软件具备良好人机交互界面,扩展的手机APP软件功能完善,组建完成的系统功能完善、运行稳定,在工农业生产监控、地质水文环境监测、森林灾害预防等领域有着广阔的应用前景。
[1]柯新宇.基于ARM的数据采集卡研制[D].武汉:华中科技大学,2008.
[2]韩雪川.基于ARM嵌入式Linux的数据采集监控终端设计[D].哈尔滨:哈尔滨工程大学,2010.
[3]闫广续,袁纵横,等.基于ARM嵌入式Linux的数据采集系统设计[J] .计算机测量与控制,2015,23(5):1724-1727.
[4]陆文周.Qt5开发及实例[M].北京:电子工业出版社,2014.
[5]王森.一种基于Android的远程控制工具的设计与实现[D].西安:西安电子科技大学,2012.
[6]王峰,宣伯凯,等.基于Android的家庭移动医疗监护系统的设计[J].计算机测量与控制,2015,23(5):1586-1588.
Design and Implementation of Automatic Data Acquisition System Based on ARM
Luo Keng,Ping Jiawei
(Shanghai Aerospace Electronic Technology Institute,Shanghai201100,China)
A scheme of automatic data acquisition system based on ARM is proposed and realized to meet the requirements of automatic data acquisition in poor environment and sparsely populated areas;The hardware circuit is designed with AM3352 as the core,equipped with digital and analog data acquisition module,extended with Ethernet、WIFI、RS232/485 interface;The developed software in Linux embedded system can realize automatic data acquisition and control;The developed APP based on Android can communicate with the software in real time and set various parameters to acquisition system;The test results show that the developed automatic data acquisition system which is easy to operate、running stable and provides high sampling accuracy,meets the practical application.
ARM;Linux;Android;APP;automatic data acquisition
1671-4598(2016)04-0159-04DOI:10.16526/j.cnki.11-4762/tp.2016.04.047
TP311
A
2015-10-11;
2015-11-09。
罗铿(1986-),男,浙江舟山人,硕士研究生,主管设计师,主要从事嵌入式测控自动化设备方向的研究。