车载无线传感器网络监测系统设计方案2
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()等一系列应用任务,从而实现网关软件的应用功能。
评论