APP下载

基于nRF905的嵌入式多点数据采集系统设计*

2013-09-28陈东阳司永杰艾树峰靳敬磊司永光

电讯技术 2013年10期
关键词:集中器采集器链路

陈东阳,司永杰,**,艾树峰,靳敬磊,司永光

(1.石家庄铁道大学电气与电子工程学院,石家庄050043;2.浙江传媒学院,杭州310018;3.河北省疾病预防控制中心,石家庄050021)

1 引言

数据采集系统广泛应用于生产、生活和科研中。基于传统有线传输方式的数据采集系统优点在于传输质量比较可靠,实时性比较好,但是这种系统架设有线网络的一次性投资较大,硬件改造及扩展都不方便,系统的安装成本高,人工维护量大[1],且很难对移动的被测对象进行数据采集,因此有线数据采集系统的应用范围受到了很大程度的制约。近年来,无线数据采集方式越来越被人们所接受,并且它代表着工业控制及现场监测等领域的一个发展方向。目前使用较为广泛的近距无线通信技术有蓝牙技术(Bluetooth)、无线局域网802.11(Wi-Fi)和红外数据传输(IrDA)技术等,可根据检测系统的具体应用环境以及成本等因素选择不同的通信技术。然而在某些场合,上述技术并不能可靠地工作,如地铁、铁路边坡监测、桥梁监测、箱梁内部和隧道内部的监测等。

本文提出的基于nRF905的嵌入式无线多点数据采集系统,以MSP430微控制器作为数据采集器与数据集中器的控制核心,通过nRF905无线数据收发模块构成数据传输链路,从而形成完整的数据采集系统。该系统的最大特点在于软硬件结构简单、功耗低,并且可根据需要定义链路参数和数据传输控制算法。如果有必要,还可采用跳频算法,因此具有良好的适应性。

2 系统硬件设计

2.1 总体结构

如图1所示,系统主要由数据集中器和若干个数据采集器构成,数据集中器和数据采集器内部都带有nRF905无线数据收发模块。数据采集器对被测对象的参数(如电压、电流、压强、温度等)进行采集,将采集所得信号以无线的方式发送到数据集中器,数据集中器通过RS485通信接口与上位机之间进行现场通信,由上位机对所得各项参数进行分析处理以判断被监测对象的状态。相应地,数据集中器也可把上位机下发的命令传送至数据采集器。由于数据集中器与数据采集器之间的通信是一点对多点的无线通信,所以在数据采集器初始化时需通过单片机赋予每个nRF905不同的地址。一个数据集中器理论上可与许多个数据采集器进行通信,但为使通信更稳定可靠,在实际设计中限制每个数据集中器与不超过20个数据采集器进行通信。

图1 总体结构框图Fig.1 Block diagram of system architecture

2.2 数据采集器设计

数据采集器如图2所示,其核心部分是MSP430微控制器、nRF905无线数据收发模块和数据采集电路。MSP430系列微控制器是目前应用极为广泛的超低功耗单片机[2]。本文出于采集、通信控制的需求,选择含有8路A/D、2 KB内存、62 KB程序存储器的MSP430F149作为主控芯片。

nRF905是挪威NordicVLSI公司推出的单片射频收发器。根据资料,nRF905提供了强大的跳频机制以及大量的频道支持,即使利用无增益的PCB天线,其传输距离也可达200 m,能够满足中等距离数据通信的要求[3]。

图2 数据采集器Fig.2 Data acquisition module

2.2.1 数据采集电路

数据采集电路包括电压、电流、压力、位移、应力以及温度采集电路。因为MSP430F149具有8路A/D通道,所以理论上可同时采集8路模拟量。不过为防止干扰,我们只使用了4路,并且间隔使用,将不用的A/D通道引脚全部接地。

为进一步降低功耗,电路设计中应注意:A/D参考电源、转换时钟不使用CPU内部电路提供。

2.2.2 nRF905 的数据传输控制

MSP430用标准SPI口与nRF905进行通信,SPI(Serial Peripheral Interface)是一种高速、全双工、同步的串行通信协议,工作在3线模式下。nRF905一旦配置完成便不再需要CPU干预,只需将待发送数据提交给nRF905,它就会自动打包发送。当有数据到来时,nRF905会自动唤醒CPU。

nRF905有两种工作模式和两种节能模式。两种工作模式分别是接收模式和发送模式,两种节能模式分别是关机模式和空闲模式。最初我们采用单一nRF905模块构成上、下行通信链路,通过TRX_CE、TX_EN和PWR_UP 3个引脚改变其工作模式来实现半双工通信。但工作模式的转换需要时间,且采集器的数据采集及处理时间不确定,因而造成链路控制算法复杂,甚至无法可靠工作。为此,我们采用两块nRF905模块构成上、下行通信链路,使链路控制变得简单。

2.3 数据集中器设计

我们在工作现场对nRF905无线通信模块进行了测试,由于散射波的干扰,实际传输距离只有60~80 m,并不能达到我们所需的150~200 m的传输距离要求。为此,我们专门设计了数据集中器,利用集中器将原来将近200 m的长度划为3个区域,每个区域由一个集中器和若干采集器构成一个无线主-从数据采集网络,相邻网络使用不同的频点以避免相互干扰[4]。

数据集中器主要由MSP430F149单片机处理单元、nRF905无线通信模块、RS485通信接口和电源模块组成。由于RS232的通信距离太短不能满足要求,故数据集中器通过标准的RS485接口与PC机进行通信,在 PC机处还需连接一个 RS485/RS232转换器。数据集中器与数据采集器之间通过nRF905实现无线通信。数据集中器的主要结构如图3所示。

图3 数据集中器示意图Fig.3 Schematic diagram of data concentrator

3 软件设计

编译环境采用 IAR Embedded Workbench for MSP430,该软件支持汇编语言、C语言、汇编语言和C语言混合进行编程,可进行软件、硬件仿真,也可进行单步、连续、断点调试。为方便程序调试,缩短开发周期,提高程序的可移植性,采用了模块化设计的方法。软件由主程序和各个功能子模块组成,此处重点介绍主程序和nRF905数据收发程序。

3.1 主程序设计

主程序设计包括数据集中器和数据采集器两部分。数据集中器的主程序较简单,通过RS485口接收上位机指令,根据指令与相应采集器通信,将采集器中的数据保存在缓冲区中,并上传到上位机。

数据采集器的主程序流程如图4所示。系统初始化包括设置本机地址、AD初始化、nRF905初始化、IIC总线初始化和PCF8583初始化。初始化完成后开AD总中断,开始采集数据。采集完成后对得到的数据进行处理,然后保存到缓冲区模块。在主循环周期内对nRF905模块进行查询,若数据集中器有数据请求,则本机生成数据帧,通过发送模块将其上传至数据集中器。

图4 数据采集器主程序流程图Fig.4 Main program flowchart of data collector

3.2 nRF905数据接收程序

初始化之后nRF905的配置频段在430 MHz左右,输出功率为10 dB,地址宽度为4 B,8位CRC校验,TRX_CE=1,TX_EN=0。启动接收数据后,nRF905不断进行载波检测,当检测到同一频段的载波时,载波检测引脚被置高(CD=1),开始接收数据。一个正确的数据包接收完毕后,数据准备好引脚DR置高,然后MSP430单片机把TRX_CE引脚置低,读nRF905接收到的数据,并将所得数据进行存储[5]。数据接收流程图如图5所示。

图5 数据接收流程图Fig.5 Data reception flowchart

3.3 nRF905数据发送程序

数据采集器与数据集中器的发送程序有所不同,每个主-从网络内的采集器均向相同的数据集中器发送数据,因而它们有相同的发送地址。而数据集中器要向不同的数据采集器发送数据,所以每次发送地址是不同的。发送模块和接收模块的配置基本相同,即输出功率为10 dB,地址宽度为4 B,8位CRC校验,但是发送模块的工作频点与接收模块的工作频点要错开。

数据采集器初始化之后,当数据采集模块有数据需要发送时,通过SPI接口按时序把待发数据及其地址传送给nRF905,然后微控制器把nRF905的工作模式设置为发送模式[6]。数据发送流程图如图6所示。

图6 数据发送流程图Fig.6 Data transmission flowchart

3.4 链路控制方案设计

由于nRF905模块工作在开放频段,突发干扰难以避免,为保证数据传输的可靠性,通常采用面向连接的传输模式,即发送请求或数据后必须要求有回应,以确保数据的正确传输。一旦在设定的时间内未收到回应,则需要重发。为此,我们在数据帧中定义了数据帧标识字段,每一个通信周期的数据帧拥有相同的标识,不同周期标识不同,从而避免了重复数据或重复动作。等待响应的时间根据采集器的采集周期确定,通常设为5~10 ms。重发次数一般限定为3~5次,超过该次数即报通信失败。

4 实际应用中面临的问题及应对方案

尽管nRF905和MSP430具有较强的抗干扰能力,但在实际应用中为保证系统的可靠性还应注意以下问题:

(1)由于无线数据传输系统对电磁环境极为敏感,因此在使用该系统之前应对应用现场进行相关测试,将取得的相关参数作为无线数据传输系统收发模块选型以及工作频段、频点及工作模式设计的依据;

(2)根据现场的空间结构对无线电波的影响,适当调整发射功率和接收灵敏度(减少散射波影响)以保证数据传输的可靠性;

(3)尽量减少数据帧的长度,降低被干扰的可能性。nRF905模块最大数据帧长度为32 B,实际应用时尽量不超过16 B;

(4)为进一步降低数据采集器的功耗,用于发送数据的nRF905模块完成数据发送后应立即关闭(关机模式);MSP430完成数据采集和发送周期后也应立即转入休眠状态;

(5)上、下行频点应至少相差300 kHz。

5 结论

数据传输可简单地分为有线传输和无线传输,相比较而言,用无线数据传输模块建立的专用无线数据传输系统具有成本低廉、可移动性强和易维护等优点。由于数据采集系统多用于工业现场,环境恶劣,本系统通过设置合理的通信参数,运用科学的链路控制算法可有效满足数据采集和通信要求。由数据集中器和若干数据采集器构成的无线主-从数据采集网络,易于调整、均衡各采集器的通信距离,应用于狭窄的场合(如隧道、封闭长廊等)时可减少散射波的干扰,大大提高系统传输的可靠性。

[1]高静,黄绍明.基于PROFIBUS-DP的环境参数采集系统设计与应用[J].电讯技术,2011,51(2):80 -84.GAO Jing,HUANG Shao - ming.Design and Application of Environment Parameter Acquisition System Based on PROFIBUS - DP[J].Telecommunication Engineering,2011,51(2):80 -84.(in Chinese)

[2]张福才.MSP430单片机自学笔记[M].北京:北京航空航天大学出版社,2011.ZHANG Fu-cai.Study Notes of MSP430 MCU[M].Beijing:Beihang University Press,2011.(in Chinese)

[3]宁运琨,熊显明,赵国如.基于nRF905和MSP430的惯性传感器无线数传系统设计[J].传感器与微系统,2013,32(5):138 -141.NING Yun -kun,XIONG Xian -ming,ZHAO Guo -ru.Design of wireless data-transfer system for inertial sensor based on nRF905 and MSP430[J].Transducer and Micr-osystem Technologies,2013,32(5):138 -141.(in Chinese)

[4]李静,黄峥.无线数据采集系统设计[J].中北大学学报(自然科学版),2010,31(2):178 -182.LI Jing,HUANG Zheng.Design of Wireless Data Acquiring System[J].Journal of North University of China(Natural Science Edition),2010,31(2):178 -182.(in Chinese)

[5]李增祥,李田泽,巨同升.基于MSP430的土壤温度检测系统[J].湖北农业科学,2010,49(9):2241 -2242.LI Zeng-xiang,LI Tian - ze,JU Tong - sheng.Development of A Soil Temperature Monitor System Based on MSP430[J].Hubei Agricultural Sciences,2010,49(9):2241 -2242.(in Chinese)

[6]邢唱白.浅谈基于MSP430和nRF905的无线传感器网络设计[J].科技信息,2012(23):47-49.XING Chang - bai.Discussion about The Design of Wireless Sensor Network Based on MSP430 and nRF905[J].Science&Technology Information,2012,51(2):47 - 49.(in Chinese).

猜你喜欢

集中器采集器链路
天空地一体化网络多中继链路自适应调度技术
COVID-19大便标本采集器的设计及应用
基于星间链路的导航卫星时间自主恢复策略
低压集中器采集调试和维护问题分析
基于Cortex-M4的油气管道微功耗数据采集器软件设计应用
基于ZigBee的大型公共建筑能耗采集器设计
基于LabVIEW的多数据采集器自动监控软件设计与开发
谈低压集中器及表计在线故障快速排查方法
集中器常见死机原因分析及解决方法探究
基于3G的VPDN技术在高速公路备份链路中的应用