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()等一系列应用任务,从而实现网关软件的应用功能。
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规范的车载星型无线数据采集网络。该系统具有以下的优势:
①系统安装方便。无线互连使得设备安装位置灵活,同时满足了系统安装的自动化要求。人们只需要把设备上电就可以了。该车载网络系统能够自动完成网络的配置。
②可扩展性。把设备放在车载网关的覆盖范围以内,打开设备电源,节点将自动加入网络。
③网络自我修复能力。如果网络中某个设备出现故障,车载网关能够自动监测到,发出指令将该设备复位并重新入网。
上一篇:车载无线传感器网络监测系统设计方案
下一篇:电感式直线位移传感器在机床行业应用
推荐阅读最新更新时间:2023-10-12 20:41
- 热门资源推荐
- 热门放大器推荐
- 英飞凌推出OptiMOS™ Linear FET 2 MOSFET, 赋能先进的热插拔技术和电池保护功能
- USB Type-C® 和 USB Power Delivery:专为扩展功率范围和电池供电型系统而设计
- ROHM开发出适合高分辨率音源播放的MUS-IC™系列第2代音频DAC芯片
- ADALM2000实验:变压器耦合放大器
- 高信噪比MEMS麦克风驱动人工智能交互
- 在发送信号链设计中使用差分转单端射频放大器的优势
- 安森美CEO亮相慕尼黑Electronica展,推出Treo平台
- 安森美推出业界领先的模拟和混合信号平台
- 贸泽开售用于快速开发精密数据采集系统的 Analog Devices ADAQ7767-1 μModule DAQ解决方案