传感器网络应用程序的建模、仿真与自动代码生成框架
引言
无线传感器网络(Wireless Sensor Networks,WSN)在现场应用时,通过无线信道通信进行信息共享和协作处理。
WSN应用目前存在两种功能分析包,即特定平台操作系统和量身定制模型,在应用程序开发阶段都存在明显的缺陷。第一类将应用程序迁移到其他平台时很困难,例如从TinyOS迁移到MANTIS或迁移到ZigBee兼容平台,必须重写大量代码并进行大量调试。第二类有许多依赖于平台的具体代码需要开发和调试,如果在开发和集成阶段结束后发现问题,惟一的解决方法就是基于LED进行调试,极为耗时。
参考仿真框架
The MathWorks公司构建了基于 Simulink的传感器网络模型作为动态系统的基时仿真器。模型具有两个主要组件:无线信道模型(下文称为Communication Medium)和Node块。
Communication Medium块可以通过C语言实现,可将其修改为重用任意现有信道和连接模型。
Node块有多个完全参数化的mote,包含硬件与软件平台模型。例如包括计时器、LED以及应用程序的参数化Stateflow块。Stateflow是一种有限状态机语言,用于建模、仿真控制逻辑和流程图。可以用于实现各mote内运行的算法(应用程序、中间件或设备驱动器)。
只需修改模板算法(Stateflow 库对象),在Communication Medium块中设置节点的连接参数即可开始仿真。使用动画状态图、观测仪器和显示器收集统计数据,以执行算法的功能分析。如果结果分析表明需要改进,则可通过改进算法实现。
完成算法的功能分析后,通过算法的Stateflow自动为任何受支持的WSN平台生成代码。这是利用RealTime Workshop Embedded Coder软件的自定义功能完成的,它能为Simulink和Stateflow块生成可嵌入的ANSI C代码。
图1 WSN的一个简单仿真框架
WSN应用程序操作系统示例:TinyOS与MANTIS
TinyOS的编程模型基于组件,概念实体由模块和配置两类组件表示,实现用于声明命令和事件签名的接口。事件即软件抽象,例如接受信息包、完成传感器取样等。命令用于触发操作,例如传感器读取操作或启动无线电接收和传输信息等。TinyOS应用程序是使用nesC编写的,这是C语言的一个扩展。
MANTIS是一种轻量级、多线程的操作系统,能在能源受限的分布式传感器网络上进行多任务处理。调度程序采用基于优先级的轮叫调度,支持线程先占(pre-emption),允许操作系统在活动线程间自由切换而无需等待。由于采用了这样的方法,操作系统对于关键事件的响应速度比TinyOS更快。MANTIS的内核和API都是使用标准C语言编写的。
加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW
或用微信扫描左侧二维码