FPGA培训
  首页 FPGA培训 北京FPGA培训 成都FPGA培训 四川FPGA培训 深圳FPGA培训 广州FPGA培训 广东FPGA培训 西安FPGA培训 陕西FPGA培训
空白
空白
技  术  频  道
        嵌入式系统     电源管理
        3G手机     汽车电子
        数字电视     消费电子
        传感器     通信技术
        工业控制     测试测量
        可编程逻辑     中国RoHS
        DSP与MCU     无源元件
        电子制造     模拟电路
哈佛结构  运算放大器  非结晶硅太阳电池
DSP MCU双核  数据转换器  MODEM
专用型DSP   检波器   通用型DSP
请您来编写词条                     更多>>
分布式自组织无线数据采集系统 软件设计
南京航空航天大学 陈林 宋茂忠 宰云峰


引 言

随着无线通信和射频技术 不断发展,具有布局灵活, 成本低廉, 组网便捷等特点 无线数据采集系统正在逐渐取代传统 有线数据采集系统,  目前,市场上 无线数据采集系统虽然功能较齐全,但一般不具有以太网通信和节点自主加入 功能,  这在很大程度上限制了系统 扩展性能,给系统 维护带来一定困难,同时也限制了系统在有较高要求 特殊环境中 应用,  本系统实现了一种实时, 可靠 分布式自组织无线数据采集系统,具有更好 扩展性和通用性, 

1 系统概述和原理

子网 系统结构如图1所示,  主数据采集器(相当于一个基站)和数据采集节点通过无线通信组成数据采集子网,二者之间采用主从式基于时间片轮询 点对多点通信方式;各数据采集节点通过传感器组完成各种类型数据 采集,主控点每隔一个时间片向各个数据采集点请求一次数据传输;数据采集节点接收到数据请求命令后,向主数据采集器发送数据;主数据采集器接收数据并将数据每隔一个小时间片,按一定 数据格式存储在SD存储卡中, 

计算机服务器与主数据采集器采用有线方式组网,二者之间通过以太网进行数据通信,  当系统中有多个数据采集子网时,各个主数据采集器需要通过交换机转换后与服务器连接,  服务器端可随时从SD存储卡中读取数据, 

为了保证网络 可靠性和健壮性,网络 自主加入功能由服务器端进行使能控制,  每次自主加入持续一个较短 时间,服务器端可以随时手动添加或删除网络中 数据采集节点, 

2 系统硬件组成

如图2所示,主数据采集器 硬件系统主要包括LPC2378控制器模块, 按键模块, LCD显示模块(可选), SD/MMC卡接口, 以太网接口和无线收发器等几大模块,  主数据采集器采用高性能 10/100 Mbps以太网PHY收发器芯片DM9161A作为以太网控制器,  无线收发器通过模拟I2C总线与LPC2378连接,SD/MMC卡通过SD总线与LPC2378连接, 

LPC2378是NXP公司新近推出 一款基于ARM 微控制器,可在高达72 MHz 频率下运行,拥有512 KB 片内Flash程序存储器,局部总线上有32 KB SRAM,可进行高性能 CPU访问;具有丰富 接口和外设,  系统主要使用10/100 Ethernet MAC(带有相关 DMA控制器,位于独立 AHB总线上)和SD/MMC接口(共用通用 AHB DMA控制器), 

无线收发器采用挪威Nordic公司推出 2.4 GHz单片无线射频收发芯片——nRF2401,  通过外接增益天线,芯片 实际传输距离可达100 m,  芯片内置频率合成器, 功率放大器, 晶体振荡器和调制器等功能模块,输出功率和通信频道可通过程序进行配置,  该芯片具有接收灵敏度高, 外围电路少, 发射功率低, 传输速率高(最高传输速率达1 Mbps), 功耗低等优点, 

nRF2401具有4种工作模式,分别是工作模式(接收/发送), 配置模式, 掉电模式和待机模式,  模式可通过软件进行配置和切换,芯片正常工作情况下处于工作模式,  nRF2401有两个数据收发缓冲通道,其中通道1可以接收和发送数据,通道2只可以接收数据,  同一个芯片 两个通道可以配置相同 地址,也可以配置不同 地址, 

数据采集节点 硬件系统采用了宏晶科技公司具有低功耗, 高速度等特点 STC89LE52RC单片机作为微控制器,  节点系统还包括:无线收发器, 传感器组和电池供电模块等,其中无线收发器和传感器组通过软件模拟SPI总线与单片机连接, 

3 通信协议

3.1通信协议设计

如图1所示,各个无线数据采集子网之间采用并联方式构成整个数据采集网络,  由于无线模块可以预置40位地址(本系统预置32位地址),这样可以确保每个数据采集节点和主数据采集器具有唯一 通信地址;网络加入时段 广播地址(本系统设置数据采集节点和主数据采集器 数据通道2作为广播通道,其地址为广播地址)可以重复,通过软件在广播中加入主数据采集器识别标识符,每个子网 数据采集节点只会接收对应 主数据采集器 广播,  因此,系统能够避免数据采集器问以及数据采集节点间 同频干扰和子网间 干扰等问题, 

图3为一个无线数据采集子网 通信协议示意图, 

该协议具体 通信算法如下:

①主无线数据采集器开机后进入查询工作状态,按一定时间片不断向各数据采集节点发送数据请求命令, 

②数据采集节点开机后进入监听状态(初始化默认自身连接在网络中),监听是否有主无线数据采集器 数据请求命令, 

③数据采集节点接收到主无线数据采集器 数据请求命令后,进入数据发送状态,向主无线数据采集器发送采集 传感数据, 

④如果间隔一段时间(系统设置10 s),数据采集节点未监听到任何数据,节点就认为是自身掉线(没有连接在网络中);节点同时开始监听是否有主无线数据采集器 要求加入网络 广播,然后向主无线数据采集器发送请求加入命令, 

⑤服务器控制主无线数据采集器允许加入网络 广播发送, 

⑥数据采集节点接收到要求节点加入网络 广播后,进入数据发送状态,向主无线数据采集器发送请求加入命令,同时认为自身在线(连接在网络中), 

⑦如果主无线数据采集器接收到节点 请求加入命令,则记录节点状态为在线, 

3.2 数据传送格式

发送帧数据格式:

每格代表1个字节,1帧14个字节, 

接收帧数据格式:

每格代表1个字节,1帧10个字节, 

4 系统程序设计

4.1 主数据采集器程序设计

主数据采集器 软件设计引入实时操作系统(RTOS)概念,采用μC/OS-II实时操作系统(V2.52版本)作为系统软件 核心,  软件基于3层设计,包括硬件驱动层, 操作系统层和用户应用层, 

驱动程序是硬件和软件之间 桥梁,任何一个硬件设备都需要加载驱动程序才能被系统正常识别和支持,  这种固化在了硬件中 软件被称为“Firmware”,即固件,  它存储着系统中硬件设备最基本 参数,为系统提供直接 , 底层 硬件控制,  本系统主要使用了以太网驱动和SD卡驱动, 

操作系统层可以看作一个实时 多任务调度器,并且完善地添加了与多任务操作系统相关 一些系统服务,如信号量, 消息队列, 邮箱等,  要将μC/OS-II移植到ARM处理器LPC2378上,需要修改3个与ARM体系结构相关 文件——OS_CPU.H, OS_CPU_C.C, OS_CPU_A.S;同时还要配置与CPU相关 Startup.S和Target.C文件, 

主数据采集器 应用层主要设计了数据查询任务, 数据采集节点加入任务, 服务器通信任务等,  其中数据查询任务实现:轮询各数据采集节点状态;接收数据采集点 数据,将数据存储在SD存储卡中,  具体实现流程如图4所示, 

数据采集节点加入任务实现:

①初始设置不允许网络自动加入,此时将节点加入任务挂起, 

②允许自动加入时,先进行广播,每次广播持续时间为0.5 s, 

③切换为接收模式,一次添加时间允许添加10个节点(通信出错时 节点算入添加计数值), 

④从数据缓冲通道2接收数据,每次间隔0.5 s,并判断接收命令是否为数据采集节点请求加入, 

⑤若为请求加入命令,则在主数据采集器内存 索引表中查找该节点地址;未找到,则添加节点地址至内存查找表中, 

⑥将节点信息存储至SD卡中,若存储失败,则在内存中删除该节点, 

具体实现流程如图5所示, 

服务器通信任务实现:向主数据采集器发送通信命令;主数据采集器响应命令并返回相应 消息, 

通信命令包括:获取SD卡中数据采集节点信息和采集 数据;禁止或允许网络自主加入以及删除或添加网络中 数据采集节点等,  具体实现流程如图6所示, 

4.2 数据采集节点 程序设计

数据采集节点 主程序相对简单,节点一般工作在休眠模式,休眠模式下只有无线模块处于工作状态(监听),  当无线模块监听到数据时,唤醒数据采集节点 CPU,  节点根据接收到 主数据采集器 通信命令主要完成两项任务:接收主数据采集器 广播,申请自主加入网络;接收主数据采集器 数据请求命令,向主数据采集器发送实时采集 传感数据,  具体实现流程如图7所示, 

编者注:源程序见网站www.mesnet.com.cn

5 系统测试与结论

5.1 网络自主加入功能测试

系统测试初期,将网络自主加入功能一直开放,经过测试发现,有时网络运行会不稳定,比如在一段较长时间内,会出现节点一直处于掉线状态,  经过分析,系统将自主加入功能赋予服务器,且每次开放持续一个较短 时间间隔(本系统设置2 s),这是由于无线收发器只能进行半双工通信,在接收和发送状态切换过程中可能造成数据丢失,因此要尽量将时间间隔设置短些,  经过测试证实,此时网络运行更稳定,同时也使服务器端管理员对网络有更好 管理和监控能力,增强了网络 健壮性, 

5.2 μC/OS-II任务调度测试

主数据采集器 操作系统多任务调度 优先级安排,要做到以下两点:系统调用频繁 任务优先级相对较高;占用CPU资源较多 任务优先级相对较低,  同时,系统要尽量减少任务之间 切换和过多信号量 使用,避免信号量 竞争特别是死锁现象 发生, 

5.3 结 论

通过一段时间 运行,在服务器端软件 管理下,此无线数据采集系统能够很好地进行数据采集,具有较高 稳定性,  由于使用了以太网和自主网络,系统因此具有更好 通用性, 扩展性和易维护性;同时系统 数据采集具有较好 实时性,可以满足对数据采集实时性较高 环境使用,  作为一种设计方案,本系统可结合具体 应用进行功能扩展,从而更好地满足不同 需求, 

 
本文摘自《单片机与嵌入式系统应用》
版权所有2010 备案号:沪ICP备05030316号