于鹏
(中国科学院长春光学精密机械与物理研究所 空间机器人系统创新研究室,吉林 长春 130033)
摘要:随着计算机和互联网等信息行业的快速发展,数据采集系统越来越得到人们的重视和应用。以某研究院数据采集系统的研究室横向项目为基础,阐述了数据采集系统的软硬件设计,并实现了一套基于ARM CortexM3的数据采集系统。首先对系统选型及开发平台进行了简要介绍,进而在此基础上详细阐述了硬件电路和软件程序的设计,最后说明综合调试的方法和遇到的关键问题及其解决办法。
关键词:数据采集;ARM Cortex-M3;无线传输;高精度
0引言
信息行业发展的速度让人吃惊,在此影响下一些相对传统的行业也发生了巨大的变化。随着计算机的广泛应用和互联网行业的快速发展,数据采集的重要性也越来越明显,它是计算机与外部物理世界的连接桥梁,已被广泛应用于各个领域,国内外各种数据采集系统相继问世,数据采集进入了一个全新的时代[1]。
本文将结合横向项目,针对建筑行业设计并实现一套数据采集系统,来帮助获得应变、震动等专业数据,以便进行分析仿真。系统将基于嵌入式技术,针对不同信号的采集设计动态和静态两种节点,灵活设计传输方式,既可以采用以太网,又可以采用无线网,而且还要将各种传输方式都接入上位机所在局域网,使系统更好地适应具体的工作环境。
1系统硬件电路设计
1.1主控模块
主控模块是整个硬件系统的核心,整个系统的运行都是由这里控制,所以主控芯片的性能直接影响系统的各项指标。
本系统的主控芯片选用TI公司的LM3S9B96,它采用ARM CortexM3内核,主流外设一应俱全,而且集成了以太网控制器。主控芯片及其外围部分电路见图1,芯片外接16 MHz的晶振作为其频率源,经锁相环倍频后可达到200 MHz,以太网控制器单独外接一个25 MHz的晶振,用复位芯片MAX811为芯片提供稳定的复位电平,将芯片的JTAG口引出用于程序的下载和仿真跟踪调试,LDO脚接一个线性稳压芯片FAN2558以保证内核工作稳定,LED1则是一个双色LED,用于系统工作时的状态指示[2]。
另外主控模块还设计有串口电平转换电路,方便系统和计算机直连辅助调试,电路如图2所示。
1.2电源模块
电源模块为整个系统提供电源保障,它的稳定直接关系到系统各模块的稳定工作,而且各电路模块所需电压不尽相同,所以电源模块的设计相对比较复杂。
首先是电源输入选择电路,系统有外接DC 12 V和7.4 V锂电池两种供电方式,当外接直流电源时自动切换到锂电池充电状态,切换电路如图3所示,供电方式的切换通过继电器实现。图1主控芯片LM3S9B96及其外围部分电路
而锂电池的充电控制用电流源芯片MAX1640实现,如图4所示。
其次是稳压电路,输入电源经过线性稳压得到数字+5 V,再经升压模块升至±15 V,而后经过LM317和LM337构成的组合电路隔离稳压后得到模拟±15 V,用于电压预处理电路和电压型传感器供电;数字+5 V通过LT10863.3 V进一步稳到+3.3 V,用于主控芯片等部分芯片的供电。图5给出了部分线性稳压电路。
1.3采样模块
采样模块是系统的重要组成部分,其任务就是对ICP传感器、应变传感器等进行采样,并将数据传送至上位机进行处理,所以采样模块是实现任务的第一步,即将微小的传感器信号放大滤波后送入AD芯片转换成数字量[3]。
作为采样模块的核心,动态节点和静态节点所选用的AD芯片不同。动态节点选用AD7716对处理后的信号进行采样,静态节点选用AD7734,两款芯片均外接一个6 MHz晶振为其提供采样时钟,与主控芯片通过SPI进行通信,两且AD7716还外接了一个LED作为采样指示灯,其电路如图6所示。
1.4通信模块
通信模块是系统的重要组成部分,系统的任务就是对ICP传感器、应变传感器等进行采样,并将数据传送至上位机进行处理,所以采样是实现系统任务的第一步,通信是实现系统任务的第二步,要将AD芯片转换的采样数据传送至上位机。有线传输方式用以太网,主控芯片已经集成,只需配置外围电路即可[4]。无线传输方式有两种,动态节点采用WiFi无线网,用以色列ConnectOne公司的Nano WiReach WiFi联网控制器实现,通过串口与主控芯片相连;静态节点采用ZigBee无线网,用美国Digi公司的XBeePRO 射频模块实现,同样通过串口与主控芯片相连。
2系统软件程序设计
2.1主控程序
主程序负责系统的宏观控制,调用各功能函数共同实现系统功能。系统的主程序仅有2个函数,初始化函数init()和主函数main()。初始化函数init()负责系统的初始化;主函数main()是整个程序的入口函数,对其他文件和函数依功能需求进行组织和调用,主程序流程图如图7所示。
2.2采样程序
系统的采样方式设计有三种,即动作采样、定时采样和触发采样。动作采样是上位机发送采样命令后,系统开始采样相应长度数据;定时采样是在某一设定时刻开始采样相应长度数据;触发采样是一直监视某个采样值,一旦其大于规定值时开始采样相应长度数据,并且开始时刻前一段时间内的采样值也要保留,以便分析触发时刻前后的变化。虽然有三种采样方式,但分析后可知,只需编写两个函数便可实现三种采样方式,即一个只负责采样一定长度数据的普通采样函数和一个监视采样值并进行一定缓存的触发采样函数,这两个函数进行适时调用和组合,即可实现这三种采样方式。
动态节点的AD7716的采样采用中断方式,其数据准备好后会触发外部中断,在中断服务程序中对其进行采样并将数据缓存。对AD7716进行初始化后其便开始采样,就会触发中断,所以在系统不进行采样时将外部中断口禁能,在进入普通采样函数时将其使能。静态节点的采样程序和动态节点相比,只因AD芯片不同而存在一些差异。
2.3通信程序
通信程序主要实现数据发送功能,发送函数可以发送采样数据、参数或状态结构体,并且可以根据网络设置参数自动选择发送方式,其程序流程图如图8所示。
这里需要注意的是WiFi模块需用串口通过AT指令进行控制。ZigBee模块同样通过串口与主控芯片进行通信,采用透明传输模式,上电后自动进入此模式,所以只要事先将模块配置好,对于主控芯片而言就相当于一个无线串口,收发数据直接操作所用串口即可[5]。
3系统调试
系统调试中经常用到虚拟串口,它是RealView MDK的调试器提供的一个比较方便的功能[6],将MDK自带例程中的Retarget.c添加到系统工程中,然后重写fputc()函数,程序如下:
int fputc(int ch, FILE *f)
{
if(DEMCR & TRCENA)
{
while(ITM_Port32(0) == 0);
ITM_Port8(0) = ch;
}
return(ch);
}
这样,在程序中调用打印函数printf(),就可以在Debug(printf) Viewer调试窗口输出打印信息。
一台上位机同时控制多个节点。动态节点可以同时采集最多四路ICP传感器或应变传感器,具有22位高精度,无线数据传输通过WiFi无线网,速度较快可达400 kb/s,直接通过局域网连接上位机,适合大量高速数据的近距采集;静态节点可分时采集八路应变传感器,具有24位高精度,无线传输通过ZigBee无线网,距离较远可达1 km,适合小量低速数据的远距采集。
通过联合上位机调试,单节点可稳定工作,完成系统任务,实现了系统功能。但由于时间及水平有限,多节点同时连接上位机工作时不稳定,有数据丢失现象;另外采用以太网传输方式时,如果节点通过DHCP方式获得IP地址,不能建立TCP连接;功能方面也还不够人性化,不够完善。这些问题都有待进一步研究。
4结论
本文设计的数据采集系统基于ARM CortexM3嵌入式内核,实现了对多路ICP或应变传感器同时进行大量高速近距采集和小量低速远距采集,并且具有高精度。灵活设计以太网、WiFi和ZigBee无线网多种传输方式,使系统能更好地适应工作环境。
参考文献
[1] 刘满仓,雷卫宁,王春成.基于ARM的高精度数据采集系统设计[J].现代电子技术,2012,35(8):1214.
[2] 王建辉,李正民,刘伟伟.基于ARM CortexM3的智能数据采集终端的设计[J].计算机与现代化,2011(9):6164.
[3] 纪宗南.高分辨率的数据采集系统[J].电子元器件应用,2002,4(12):1518.
[4] 刘亮,王击,杨泽.基于ARM CortexM3和Internet的实时数据采集系统设计[J].工业控制计算机,2011,24(11):1819.
[5] 严正国,黎伟,马龙,等.一种分布式无线同步数据采集系统设计[J].电子技术应用,2014,40(10):4952,56.
[6] 张奕,余海龙,谭剑美.四通道高速数据采集系统设计[J].现代电子技术,2012,35(9):1012.