文献标识码:A
文章编号: 0258-7998(2014)10-0049-04
0 引言
数据采集是指从传感器和其他待测设备等模拟和数字被测单元中自动采集非电量或者电量信号,送到上位机中进行分析、处理。传统数据采集系统大部分是基于有线的通用微型计算机数据采集系统。虽然有线数据采集系统采集精度高,能够实现同步数据采集,但也存在布线繁琐、耗材多、造价高、功耗大、扩展性能差等不足之处。本设计针对有线数据采集系统的不足,在保证数据的同步采集和允许误差范围前提下,提出了以单片机C8051F020微处理器为核心的无线分布式同步数据采集系统。
1 系统方案设计
本分布式无线同步数据采集系统的设计包括通信控制中心与多个无线数据采集单元,系统总体框图如图1所示。通信控制中心主要由上位机和无线模块组成,无线模块与上位机之间通过USB接口连接。整个系统由上位机控制,可以远程实时配置系统参数,控制无线数据采集单元实现数据的采集、接收、存储和处理。
2 系统硬件设计
由图1可知,系统硬件电路设计主要包括通信控制电路和无线数据采集单元的设计。
2.1 通信电路控制电路设计
通信控制电路的主要功能是将上位机发出的控制命令转发给各无线数据采集单元,并接收无线数据采集单元回传的数据,发送到上位机进行数据后期处理。系统通信电路主要由上位机与无线模块之间的通信电路设计以及无线通信模块与各无线数据采集单元之间的通信电路设计两部分组成。
2.1.1 上位机与无线模块电路设计
上位机与无线模块之间采用USB转串口的通信连接,通过Silicon Laboratories公司的USB接口与RS232串口转换器CP2102芯片实现[1]。USB转RS-232串口电路设计如图2所示。通过转换电路,实现了USB端口的数据传输端(D-和D+)与RS-232串口的数据通信端(TXD和RXD)之间的通信。
无线模块选用美国DIGI公司的XBee-PRO RF模块,该模块操作在ISM 2.4 GHz,低功耗,低成本,高性能,而且使用简易。数据输出DOUT接至CP2102的串口接收RXD,数据输入DIN连接至CP2102的串口发送TXD。电路设计如图3所示。
2.1.2 无线模块与无线模块通信
在数据采集系统中使用无线模块的透明传输模式,它起到替代串口线的作用。所有通过DIN引脚接收到的UART数据依次由RF模块发送。收到RF数据时,数据被直接送出到DOUT脚。相邻无线模块之间可以自组网,以此拓宽无线通信的传输距离[2]。
2.2 无线数据采集单元设计
无线数据采集单元电路设计框图如图4所示,主控制单元为无线数据采集单元的核心,它控制采集系统的A/D转换、GPS模块和无线模块。GPS模块为系统提供位置信息、时钟信息和秒脉冲PPS信号,与主控单元通过异步串行端口进行通信,实现时钟、位置信息的接收,秒脉冲输出PPS引脚接入主控单元的外部中断源/INT0,控制无线数据采集系统同步采集[3]。
3 系统软件设计
为了使程序编写、调试方便以及结构清晰,软件开发采用模块化设计,整个数据采集系统主要包括以下几个模块:主程序设计、数据采集程序设计、GPS程序设计和无线通信程序设计[4]。
3.1 主程序设计
系统主程序流程框图如图5所示。系统上电进入初始化后,处于等待上位机下发命令状态。各数据采集单元收到上位机下发的命令后进行ID号匹配,只有ID号与上位机下发的ID号匹配才开始解析上位机下发的命令。解析成功之后执行相应的指令。
3.2 数据采集程序设计
系统数据采集部分由地震检波器将地震波信号转换成电信,经过调理电路放大、滤波等处理后,经差分输入接入A/D转换,进行模数转换得到数字信号。A/D采集程序流程图如图6所示。系统通过GPS模块的PPS信号使个数据采集单元进行同步采集。
3.3 GPS程序设计
GPS数据接收程序流程图如图7所示,图中GPS_RX为GPS接收数据计数器。当无线数据采集单元接收到上传GPS命令时,主程序中使能GPS数据接收,串口0中断服务程序中接收GPS数据,首先检测GPS数据帧头开始“$”,检测到“$”后,开始接收串口0的数据,接收到6个数据时,判断数据帧头其余数据是否正确,正确的数据帧头为“GPGGA”。如果数据帧头接收正确,则其后的数据帧均接收到接收缓存数组;如果数据帧头接收不正确,则清零GPS接收数据计数器GPS_RX,重新开始GPS数据接收。NMEA-0183标准语句格式帧结束为CR+LF,当接收到0x0d和0x0a时,说明GPS数据已接收完。
3.4 无线通信程序设计
为了保证无线数据采集单元能接收到上位机发送的命令,串口1一直处于打开状态。命令接收程序流程图如图8所示。上位机下发命令为8 B,其中前4个字节为数据帧头“$DZD”,第5个字节为ID号,第6个字节为命令字,第7、8个字节为参数。如果数据帧头接收正确,则其后的数据帧均接收到串口1接收数据数组;如果数据帧头不正确,则清零命令接收计数器CMD_RX,重新开始命令接收[5]。
无线数据采集单元上传的数据包括GPS数据、数据采集单元状态数据和有效数据。主控单元通过串口1将要上传的数据发送给无线模块,无线模块转发给上位机。GPS数据、状态数据和有效数据上传程序设计思想类似。
上传回上位机的有效数据包含触发坐标、起始时刻和有效数据,3组数据之间通过回车符分开,3组数据的帧头分别为“$CFZB”、“$QSSK”和“$YXSJ”, 每组数据帧头后增加ID号,再发送有效数据。
4 系统测试
无线同步数据采集系统的测试分为两个阶段进行。第一个阶段为电路板测试,测试系统各部分功能是否正常;第二个阶段为现场测试,测试系统在真实地理环境中数据采集的精确度、稳定性和可靠性。
4.1 电路板测试
系统单个无线数据采集单元调试中,测试电路ID号为2号,系统上电后处于待机状态,调试软件选择COM口,配置波特率为57 600 b/s,测试上传GPS和查询状态命令结果如图9所示,左侧窗口为ASCII码显示,右侧窗口为16进制显示。通过调试端口发送上传GPS命令, 命令16进制显示为“24 44 5A 44 02 12 00 00”,收到上传的GPS数据,包括ID号02、时间信息、经纬度信息等;再发送查询状态命令“24 44 5A 44 02 44 00 00”,返回02号单元处于12命令状态。通过测试1说明,通信控制中心与无线数据采集单元之间的无线通信正常,无线数据采集单元上传GPS命令和查询状态命令工作正常。
系统采集数据的测试结果如图10所示。等待GPS模块信号稳定后,发送启动采集命令“24 44 5A 44 02 77 00 00”,再发送查询状态命令,返回数据表明02号单元处于采集状态77,状态正确,等待震动触发。若没有触发信号,则发送上传有效数据命令,返回数据“NODATA”。若敲击02号单元产生震动信号,则发送上传有效数据命令,返回起始时刻,触发坐标,还有200个(系统默认上传有效数据个数为200)有效数据。通过测试2说明系统采集部分工作正常。
系统设置参数的测试结果如图11所示。上位机发送有效数据长度设置命令“24 44 5A 44 02 66 00 64”,命令中66为命令字,参数为2 B,修改有效数据长度为100,十六进制表示为64。接着查询状态,返回02号单元处于参数设置状态66。然后再进行数据采集,观察有效数据长度是否已修改,由返回数据可见,有效数据长度参数设置成功,返回有效数据100个。通过测试3说明系统参数设置程序工作正常,能够实现参数的远程配置。
4.2 现场测试
系统进行了现场实地测试,测试多个无线数据采集单元能否实现数据的同步采集。将6个无线数据采集单元在1 m范围内排布成圆形,以保证无线数据采集单元能够采集到震动信号。通信控制中心距离无线数据采集单元5 m的地方。实验开始后,首先打开电源开关,上传GPS信号,配置比较电压值为100,有效数据长度为200。发送采集数据命令,查询系统状态,6个无线数据采集单元处于采集状态,在圆形中央人工激发震动,上位机下发上传有效数据命令,接收有效数据。将接收的有效数据利用上位机测试软件绘制成波形,如图12所示。
分析采集数据波形图可知,6个无线数据采集单元的有效数据都接收完整,大于比较电压的数据为震动触发数据,在图中为波形起伏部分。波形左侧为单元ID号,起始时刻和触发坐标。采集单元距离震源远近不同,从图中数据可以看出触发坐标相差1~2个点。6个采集单元的起始时刻完全相同,都为“24907”,说明起始时刻为2点49分07秒,07秒6个单元同步采集数据。为了验证系统的可靠性,现场做了多次触发采集,结果基本相同。说明系统能够完成数据的无线同步采集,达到了预期设计目标。
5 结论
实验证明,该分布式无线同步数据采集系统能够达到数据的同步采集和数据的无线传输。系统工作稳定,操作简单,具有较高的工程使用价值,给基于分布式的系统设计提供了参考。
参考文献
[1] 刘妍,马艳娥,陈思.一种基于单片机串口的数据采集系统设计[J].电子测试,2011,9(9):59-60.
[2] 詹新生,张江伟.基于AT89S51的无线数据采集系统设计[J].实验室研究与探索,2011,30(4):201-202.
[3] 尧鹏,谢志江,余中云.一种高精度数据采集无线传输系统硬件设计[J].重庆大学学报(自然科学版),2006,29(4):9-10.
[4] 陈湘平,房莉.基于ZigBee的数据采集系统设计[J].测控自动化,2009,25(4-1):99-100.
[5] 朱卫华.基于单片机射频收发器的无线数据采集系统设计[J].南华大学学报(理工版),2003,17(4):51-52.