车载无线传感器网络监测系统设计
扫描二维码
随时随地手机看文章
摘要:基于IEEE 802.15.4和ZigBee标准实现了一个车载无线传感器网络监测系统。借助通用无线传感器网络,为车载系统扩展了监控范围和监控功能,实现了车载设备状态的数据采集和状态监视,以及必要的设备控制、拓扑控制、拓扑查询等功能。
关键词:无线传感器网络;监测系统;MC9S08GB60;MC13192
引言
为了满足人们对车载安全性、操控性以及舒适性的要求,车载上集成了越来越多的电子系统。目前,汽车电子设备广泛采用16位或32位微处理器进行控制。本文基于IEEE 802.15.4和ZigBee标准的无线传感器网络构建车载监测系统,设计实现更加优化的无线传感器网络,逐步实现车载系统的网络化、智能化和可控性,以提,高车载系统的安全性。
1 系统设计方案
本文在现有的车载系统上,将数据传输的方式扩展为无线传输方式,实现一个星型网络的数据采集系统。并能分别将各个数据采集节点的所获得的数据传输到网关,网关通过串口将数据上传到主机上,在主机中实现数据的实时波形显示,并以数据库的方式加以保存,供后续数据处理。该采集系统的应用对象由温度传感器、油压传感器、转速传感器、速度传感器、电流传感器、压力传感器等传感器子系统所组成。这样设计的目的是用一个监控主机端来检测多个待测目标环境,考虑到接入的数据吞吐量和软件系统的复杂程度,采用时分复用的方式,逐个对网内的终端采集点进行控制采集。
如图1所示,该车载系统分3个部分:车载监控中心、车载网关和车载传感器节点。车载网关是整个车载系统的核心,可以和所有的车载传感器节点通信。车载监控中心可以向车载网关发出控制命令,由车载网关将控制命令转换为射频信号后发送给车载传感器节点。当车载传感器节点发送数据时,车载网关进入数据接收状态,并将数据上传到车载监控中心作进一步处理。此外,车载传感器节点之间不能互相通信。监控中心的监控软件与车载网关之间以RS232的接口标准进行通信。
车载传感器节点的生命周期由活跃期和休眠期构成。节点在活跃期完成数据采集,向网关发送数据,接收并执行网关命令;在休眠期关闭无线射频模块以节省能量,直到下一个活跃期来临。系统通过这种休眠机制来减少系统的能量消耗,延长系统整体寿命。
本系统用PC机作为监控中心,PC机上的监控软件在VB环境下开发,是一个基于对话框的应用软件。为了提高通信传输模块的智能化水平,在设计中,它的功能不限于数据的实时显示,所有的数据采集由监控软件通过发送请求信号的方式触发。考虑到原始数据需要进行后续的处理与深入的分析,才能对车载系统的状况进行准确的判定,软件中还添加了数据文件形式的保存与数据文件回显功能。
总体上来讲,整个网络的所有节点都受控于主机监控软件,工作过程中网络的每一个节点都不需要人为的参与。
2 系统硬件设计
2.1 应用芯片介绍
Freescale公司的MC13192符合IEEE 802.15.4标准,工作频率是2.405~2.480 GHz,数据传输速率为250kbps,采用0-QPSK调试方式。这种功能丰富的双向2.4 GHz收发器带有一个数据调制解调器,可以在ZigBee技术应用中使用。它还具有一个优化的数字核心,有助于降低MCU处理功率,缩短执行周期。
主控MCU选用Freescale公司HCS08系列的低功耗、高性能微处理器MC9S08GB60。该处理器具有60 KB的应用可编程Flash、4 KB的RAM、8通道的10位ADC、2个异步串行通信接口(SCI)、1个同步串行外部接口(SPI)以及I2C总线模块,完全能够满足车载网关和节点对处理器的要求。
2.2 MCl3192与MC9S08GB60的硬件连接
MC13192与MC9S08GB60的硬件连接图如图2所示。MC13192的控制和数据传送依靠4线串行外设接口(SPI)完成,其4个接口信号分别是MOS-I、MISO、、SPICLK。主控MCU通过控制信号退出睡眠模式或休眠模式,通过来复位收发器,通过RXTXEN来控制数据的发送和接收,或者强制收发器进入空闲模式。由传感器输出的模拟信号经过MCU的8通道10位ADC转换后输入到MCU。MCU通过SPI口进行MC13192的读写操作,并把传感器采集的信号经过处理后通过MC13192发射出去。MC13192的中断通过IRQ引脚和中断寄存器来判断中断类型。MC908GB60通过引脚来控制MC13192进入不同的工作模式。对传感器的控制信号可以从MC13192的天线接收进来,通过SPI传送到MCU上,经过MCU的判断处理后通过GPIO口传送到传感器上,完成对传感器的控制。同时,MCU完成MC13192收发控制和所需要的MAC层操作。
[!--empirenews.page--]
3 系统软件设计
3.1 软件整体设计
软件设计是本设计的核心,关键在于软件的总体架构和数据结构的设计。着重要考虑的因素一个是效率,另一个是设计的清晰性。
车载系统软件由网关节点与传感器节点两大部分组成,这两部分都需要完成SMAC协议的移植,并根据不同需要为上层通信应用提供API接口函数。因为SMAC协议栈编程模型采用层次设计,只有底层的PHY和MAC程序层与硬件相关,而网络层和应用层程序则不受硬件影响。SMAC在不同硬件平台的移植只需修改PHY和MAC层,其上各层可以屏蔽硬件差异直接运行。
如图3所示,本设计把软件分为系统平台层、协议层和应用层3层。同时,定义了3个API接口:系统层接口、协议层接口和应用层接口。系统层接口定义了硬件的寄存器映射,这样C语言就能直接访问硬件寄存器来控制硬件。系统平台层建立在μC/OS-II实时操作系统上,为协议层提供系统服务。硬件驱动模块提供硬件驱动程序,所有对硬件的控制都通过该模块提供的服务。系统平台层通过协议层接口为协议层提供服务。协议层则实现了基于IEEE 802.15.4的物理层和链路层以及基于ZigBee的网络层协议。应用层通过应用层接口来调用协议层提供的服务,实现网络的管理和数据传输等任务。应用配置模块既会调用协议层提供的网络服务,也会直接对系统进行配置和查询,这主要是通过AT指令来实现的,因此该模块会调用应用层接口和协议层接口提供的服务。
3.2 传感器节点软件设计
基于系统长期使用的功能需求,传感器节点中软件设计的关键是既能实现所需的功能,又能最大限度地减少传感器节点的能耗。
通过测试发现,ZigBee模块的能耗要远远大于中央处理器和传感模块的能耗。因此,传感器节点应用软件的设计既要尽量使各模块处于休眠状态,又要尽量减少唤醒ZigBee模块的次数。因此,在传感器节点上电各功能模块初始化完成、并加入了网络后,即进入休眠状态,中央处理器周期地被定时唤醒向网关发送数据,并接收网关的命令。传感器节点的工作流程如图4所示。
3.3 网关节点软件设计
车载网关向下管理传感器节点,向上完成和PC监控中心的交互,需要进行复杂的任务管理和调度,因此,采用基于uC/OS内核的嵌入式操作系统管理整个网关,为应用任务的高效运行提供良好的软件平台支撑。根据网关的功能需求,将μC/OS-II、SMAC协议有机的结合,构成一个网络化的操作环境,用户可以方便地在其基础上开发应用程序。基于μC/OS-II扩展的网关软件平台结构如图5所示。基于μC/OS-II操作系统,分别构建系统任务SYS_task()、SMAC星型组网任务START_task()、网关和传感器节点交互任务COMM_task()、PC临控中心端口监听任务SER_task()等一系列应用任务,从而实现网关软件的应用功能。
[!--empirenews.page--]
3.4 主机监控软件的设计
本系统最终目的是将采集到的车载传感器数据实时地传送到主机,并在主机中得到显示和保存。显示的目的是获得被车载传感器节点所监控环境的初步情况,保存的目的是作为深入分析的数据样本。除此以外,作为整个系统的主控方和数据采集请求的发起者,需要能够按照要求发送数据请求信号。根据以上要求,在VB环境下开发了一个基于对话框的应用程序。这个应用程序包括了4个模块:
①实时数据显示波形模块。该模块的作用是将节点的数据以波形的形式实时地进行显示,实现的方式是利用MSChart和Timer控件。
②拓扑显示模块。当用户希望了解无线传感器网络的拓扑构建情况时,可以查看拓扑信息栏,了解网络中节点的加入和丢失情况。
③历史数据显示模块。在车载网络系统运行到一定时期,可能需要对过去某一段时间的原始数据进行后续的处理与深入的分析,以便对车载系统的状况进行准确的判定。借助历史数据显示模块,可以将监控中心从车载网关中得到的数据,按照不同节点的属性、地址和时间分别保存到数据库的相应字段中,并可以通过波形图的方式将历史数据显示出来,供用户分析。
④控制模块。在车载系统运行过程中可能关心某一个车载传感器节点的数值,或者需要对某一个传感器进行阈值设置,以便待监测的环境出现异常情况可以及时地报告给系统。这些都可以通过控制模块对系统进行相应的设置,控制模块还可以对系统中的某个不需要的节点进行删除操作。
总之,通过主机监控软件用户可以直观且多方面地对通用无线传感器网络系统进行了解和使用。
4 测试与验证
4.1 组网测试
测试设备:4个MCl3192 ZigBee芯片节点,1个作为网关节点,其余3个作为传感器节点。
测试方法:网关节点上电后,4个LED同时点亮,扫描信道如果搜索到空闲信道后,LED熄灭并加入空闲信道等待。传感器节点上电后,4个LED在扫描信道的同时,轮询点亮。当网关节点收到传感器节点的Beacon帧后,LED1闪烁一次;当传感器节点收到网关节点的分配地址后,LED1也闪烁一次。至此,组网过程和地址绑定过程完成。
4.2 ZigBee射频通信测试
测试设备:ZigBee节点4个,计算机终端1台。
测试方法:根据ZigBee传输的帧格式,实际传输总字节数为(n+6),即(n+6)个字节为一个数据包。根据设定的软件参数,如有数据包丢失则丢包数加1。若接收到数据包,则接收数据包数加1,然后与发送数据进行比较,若数据正确则正确包数加1,反之错误包数加1。最后统计数据结果,就可以知道数据的丢包率和误包率。4个节点组建一个ZigBee网络,其中1个作为网关,其余3个节点作为传感器节点。编写程序设定:3个节点均与网关通信,计算机终端与网关通过RS232相连,终端设备软件记录从3个节点接收数据的情况,节点工作在2.4 GHz频段下,传输一个字节的数据,循环发送100次。最后取得3个节点的测试平均数作为数据结果进行分析。星形网射频通信误码率测试结果如表1所列。
实验分析:在星形网络中进行数据传输,测试结果明显差于单点对单点传输方式。这主要是因为,在传输过程中节点之间存在一定的频率干扰和其他干扰。
4.3 功耗测试
在系统工作状态和休眠状态下,分别使用万用表测试网关节点和传感器节点的功耗情况,测试结果如表2所列。
结语
本文分析了IEEE 802.15.4和ZigBee协议,结合通信系统和嵌入式系统的一般开发原则,在μC/OS-II操作系统上实现IEEE802.15.4协议,选择合适的软硬件平台,着重于软件支撑平台的构建、软件总体结构设计以及通信协议栈的实现,最终实现了一个符合ZigBee规范的车载星型无线数据采集网络。该系统具有以下的优势:
①系统安装方便。无线互连使得设备安装位置灵活,同时满足了系统安装的自动化要求。人们只需要把设备上电就可以了。该车载网络系统能够自动完成网络的配置。
②可扩展性。把设备放在车载网关的覆盖范围以内,打开设备电源,节点将自动加入网络。
③网络自我修复能力。如果网络中某个设备出现故障,车载网关能够自动监测到,发出指令将该设备复位并重新入网。