论文部分内容阅读
无线传感网络概念自被提出以来,在MAC、路由层协议、功耗、组网等方面获得长足的研究与发展,并在工业现场监控、无线抄表、智能建筑、智能家居等场景下有广泛应用。与实验阶段的节点不同的是,安装在实际应用场景下的节点会因为客观环境影响以及人造因素等产生与设计需求相偏离的变化,并且在一些环境下硬件更换的难度较大、成本较高,节点的软件生命周期受限于外界因素而缩短,研究对已部署的节点进行功能更新的重编程方法成为迫切而重要的课题。随着嵌入式软件设计方法的不断进步,针对无线传感网络的操作系统也越来越多受到关注与重视。首先,本文对无线传感网络的各操作系统进行了详细的比较与分析,并对现有的重编程方式以及无线代码分发协议进行了介绍与对比。本文选取事件驱动型的微内核操作系统Contiki作为研究对象,重点深入研究了其采用的Protothread线程原型,对该线程的优缺点进行了总结分析。另外简要介绍Contiki提供的一个完整的软件平台包括可以运用在无线网络的Rime通信协议栈,基于Flash存储器的微日志文件系统Coffee,以及能够运行在8位微控制器上的微型TCP/IP协议栈uIP。其次,本文主要设计了重编程的两种方案,一种是整体重编程,另一种动态加载的重编程。整体重编程是传统的IAP,该方式是将嵌入式生产力工具生成的二进制可执行文件完整覆盖替代旧存储区的装载域文件,并重新引导系统启动而完成升级。第二种动态加载模式采用了Contiki集成的ELF loader工具进行可重入目标模块的解析、加载和运行。在K64F硬件平台上分别针对两种重编程方式,进行了软件框架设计和试验,并针对这两种升级方式,在升级粒度和深度两个维度上进行了比较。同时,本文针对重编程过程中文件的传输安全以及数据完整性进行了可靠性设计实现,提高映像文件升级的容错性。最后,对本文的研究进行了总结,提出在实施设计过程中出现的一些问题及不足。在可移植性方面,动态加载方式还不能移植到采用非ELF可重定位文件的微处理器,这为下一个研究阶段的的任务明确了方向。