CN104199661B - 一种面向mc1321x的无线传感器网络wsn重编程方法 - Google Patents

一种面向mc1321x的无线传感器网络wsn重编程方法 Download PDF

Info

Publication number
CN104199661B
CN104199661B CN201410437526.6A CN201410437526A CN104199661B CN 104199661 B CN104199661 B CN 104199661B CN 201410437526 A CN201410437526 A CN 201410437526A CN 104199661 B CN104199661 B CN 104199661B
Authority
CN
China
Prior art keywords
code
mc1321x
wsn
frame
sensor network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410437526.6A
Other languages
English (en)
Other versions
CN104199661A (zh
Inventor
王宜怀
胡宗棠
凌云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nantong Construction Engineering Co ltd
Original Assignee
Suzhou University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou University filed Critical Suzhou University
Priority to CN201410437526.6A priority Critical patent/CN104199661B/zh
Publication of CN104199661A publication Critical patent/CN104199661A/zh
Application granted granted Critical
Publication of CN104199661B publication Critical patent/CN104199661B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明提出一种面向MC1321X的开销无线重编程方法WSN_OTAR。该方法在对比WSN无线节点中新旧MCU方机器码差异程度的基础上,进行增量式的代码迭代更新,从而有效地减少了WSN中更新代码的传输量,提高了无线重编程的正确性及可靠性。该方法不依赖于具体硬件平台,主要依靠软件实现,具有低开销、高可靠、低延迟和低存储等特点。

Description

一种面向MC1321X的无线传感器网络WSN重编程方法
技术领域
本发明属于WSN(wireless sensor network,无线传感器网络)领域,具体涉及一种面向MC1321X的无线传感器网络WSN重编程方法。
背景技术
无线重编程技术已经成为目前WSN研究的热点。目前,国内外对代码远程更新已经具有一定的研究,已有的代码分发协议主要包括Deluge、MOAP和Elon等。
Deluge是较早提出的一种多跳代码分发协议,它已经成为嵌入式操作系统TinyOS的一种代码更新标准协议。该协议依赖于TinyOS系统,并且在对目标节点进行代码更新时需要更新整个TinyOS的镜像文件。因而,对无线网络中节点的传输负载量较大。
MOAP是对WSN中一些选中的节点进行代码更新,而不是洪泛至所有节点。对传输中丢失的数据包,其采用了滑动窗口机制,当节点处于等待丢失数据包重传状态时,允许重传。
Elon是基于TinyOS组件的代码分发协议,在更新时需要以组件为单位进行传输和重组。因此,该协议不仅和Deluge一样依赖于TinyOS操作系统,而且还包含了很多无关的冗余代码,增加了更新时的传输开销。
根据这些协议的更新模式、MAC层协议、更新范围和跳步方式,对这些协议进行分类,详细见表1。
表1几种代码分发协议的分析对比
由于在WSN中节点本身资源受限制、无线传输不可靠,因此将无线重编程技术应用于实际中,主要解决以下几个问题。
(1)可靠性传输
在进行无线重编程过程中,必须确保更新的代码数据被完整地传输至网络中待更新的节点,并且要保证代码中的每一个字节的正确性。
(2)资源节约使用
节点的存储空间资源十分有限,比如KW01节点仅有16KB的RAM和128KB的FLASH。因此,无线重编程应该尽量减少对节点存储资源的使用。
(3)实时更新
一种高效的无线重编程机制应尽量减少对已运行的应用系统产生影响,因此需要具有较强的实时性。
(4)支持异构网络
由于在同一个WSN中的不同节点可能需要各自完成不同的任务,这就需要能够支持异构网络。通过对节点进行独立编址,可使运行不同应用任务的节点共存于同一个网络中。
(5)与平台无关性
目前,绝大多数代码分发协议需要依托具体软硬件平台。所以,在设计无线重编程机制时,必须考虑其通用性,尽量减少其对平台的依赖性。
传统的无线重编程方法一般对无线节点中整个MCU程序镜像进行替换和更新。然而,过高的代码更新量一直是无线重编程技术在实际大规模应用中的瓶颈。
发明内容
本发明在研究与分析目前国内外几种主要的WSN代码分发协议的基础上,借鉴这些分发协议的优点,提出一种面向MC1321X的开销无线重编程方法WSN_OTAR。该方法在对比WSN无线节点中新旧MCU方机器码差异程度的基础上,进行增量式的代码迭代更新,从而有效地减少了WSN中更新代码的传输量,提高了无线重编程的正确性及可靠性。该方法不依赖于具体硬件平台,主要依靠软件实现,具有低开销、高可靠、低延迟和低存储等特点。
本发明实现其目的采用的技术方案如下:
一种面向MC1321X的无线传感器网络WSN重编程方法,其中:将每行机器码校验和作为代码快速比较的索引值,逐行遍历S19文件,按照校验和、FLASH地址、长度和代码数据建立二级映射的MC1321X机器码管理列表;在机器码管理列表的一级列表中将新旧程序的一级列表中每个单元值进行异或运算比较,确定具有差异的S记录行;通过计算MCU FLASH地址,确定具有差异的S记录行代码位于MC1321X中FLASH的页号和页内偏移,将计算出的页号、页内偏移和S19文件的其他属性填入MC1321X差异代码管理双向链表中;根据MC1321X差异代码管理双向链表确定需更新的MCU方机器码;将需更新的MCU方机器码分成若干个代码摘要或代码段,每个代码摘要或代码段由一个序号来标识;对于每个代码摘要或代码段数据帧,判断帧位图,决定是否进行接收流程并转发此帧并通过帧位图来判断是否重复转发相同数据帧。
进一步地,差异代码管理双向链表节点的先后按照FLASH地址大小排列。
进一步地,使用一个计时器t来表示每个代码摘要或代码段数据帧在节点中的生命周期,当节点第一次接收到该数据帧时开始计时,选择一个时间阈值TIME,当t大于TIME时判断帧位图,决定是否进行接收流程并转发此帧。
进一步地,数据帧号为8个Bit。
附图说明
图1表示MC13213芯片的FLASH存储空间划分图。
图2表示MC1321X差异代码管理链表生成过程图。
图3表示WSN_OTAR与RUPNP的更新性能比较。
具体实施方式
下面结合附图,对本发明做进一步详细说明。
1.硬件基础:
在对Freescale推出的基于S08内核架构的MC1321X系列无线射频芯片的分析与研究的基础上,设计了面向MC1321X芯片的Bootloader固件程序。在WSN_OTAR无线重编程方法中,Bootloader的主要功能是在重新复位后,接收差异化代码,备份当前用户程序代码并进行代码重组,最后进行异常检测决定是否跳转至更新后的用户程序区。为利用MC1321X的有限片上资源,本方法首先对MC1321X的片上FLASH空间进行有效合理地划分。根据对MC1321X存储空间的分析,将Bootloader放在Flash末尾,中断向量表之前的位置,其地址0xC000-0xFE00,中断向量表最后一页预留。图1为Flash存储空间划分图。
通过修改MC1321X的PRM链接配置文件将Bootloader重定位于和用户程序不冲突的地址中,具体做法是:在“SECTION-END”标识符内加入新的块Bootloader_ROM,并在“PLACEMENT-END”标识符中将Bootloader的启动代码重定位至新定义的块中。代码如下所示:
在MC1321X的片上FLASH中,我们在一个指定地址中存放这样一个数据结构,如表2所示。
表2Bootloader启动参数
当节点上电或软件复位启动后,若不执行重编程则需从片上FLASH中读取这两个参数变量,然后判断ReprogramSuccess值,如果为TRUE则直接从userAppStarAddr指定的更新用户程序区地址中读取完成重组后的代码至用户程序区,否则直接跳转至用户程序区执行。
2.WSN-OTAR方法的设计:
当需要对已经部署的WSN系统进行软件升级和功能再配置时,开发人员一般在原有设计框架的基础上进行迭代式开发。因此,没有必要对远程节点进行完全代码更新。在对MC1321X可执行机器码S19文件分析与研究的基础上,设计了一种差异化代码的生成方法,有效的降低了无线重编程过程中的代码量。
(1)MC1321X的S19机器码解析
S19文件为MC1321X的可执行代码,是Freescale MCU方的机器码文件。它以S记录格式表示,是十六进制目标代码文件。该文件由若干行S开头的记录构成,其中每行记录主要包括五个部分组成,如表3所示。
表3S19机器码文件格式
(2)差异化代码生成方法
为降低在无线重编过程中的代码传输的开销量,在PC端设计与实现了一种差异化代码生成软件Codes_Compare。在对S19机器码文件的分析与研究的基础上可知,其中的校验和为代码长度、地址和代码数据三部分所有字节之和的反码的低8位。根据每行机器码校验和的唯一性特点,Codes_Compare软件将其作为代码快速比较的索引值。因此,Codes_Compare可以逐行遍历S19文件,按照校验和、FLASH地址、长度和代码数据快速建立一个二级映射的MC1321X机器码管理列表。
在机器码管理列表的一级列表中采用滑动窗口比较策略。假设此窗口长度为4,则每个窗口单元值表示4行机器码校验和分别按8到24位左移而合成的校验总和。将新旧程序的一级列表中每个单元值进行异或运算比较,便可快速确定哪行S记录具有差异,然后再将窗口移至下一单元继续进行比较。
通过计算其中的MCU FLASH地址,可确定该行代码位于MC1321X中Flash的哪一页和页内偏移。将计算出的页号、页内偏移和S19文件的其他属性一起填入MC1321X差异代码管理双向链表中,其中链表节点的先后按照FLASH地址大小排列,如图2所示为该链表的生成过程,图中m和n分别为新旧程序机器码行数。根据MC1321X差异代码管理双向链表确定需更新的MCU方机器码。
(3)代码分发协议的设计
通过对所需更新的MCU方机器码进行有效合理地划分,将其分成若干个代码摘要或代码段,每个代码摘要或代码段由一个序号来标识。在本发明中主要采用两种数据帧格式,其定义格式如下:
表4“代码摘要”数据帧格式定义
表5“代码段”数据帧格式定义
针对差异化无线重编程过程中所需代码量低的特点,本代码分发协议采用基于定时器的轻量级广播算法实现对“代码摘要”和“代码段”数据帧的传输,并在转发数据帧时候通过帧位图的方式禁止重复转发,有效地避免了网络数据风暴。
此算法的基本思想是重播节点所能覆盖的新区域会随着广播分组次数的增加而减少,使用一个计时器t来表示此数据帧在该节点中的生命周期。当节点第一次接收到该数据帧时开始计时,选择一个时间阈值TIME,当t大于TIME时判断帧位图,决定是否进行接收流程并转发此帧。同时,通过帧位图来判断是否重复转发相同数据帧,使用帧位图的方式实现了MC1321X节点内低存储资源的需求和高效的判断。数据帧号为8个Bit,范围从0~255,总共256个帧号。在帧位图中,每一位代表一个帧。如果该位为1表示已经接收过该帧,为0表示尚未收到过。该方法只需占用32个字节的空间。该广播算法为轻量级的,能够在保持无线传感网络系统性能的同时有效减少数据冲突。
3.测试过程:
为验证本方法的实际应用价值,设计了4种单次更新的场景来进行实际测
试,以评估WSN_OTAR性能,主要包括
更新1:在main函数中,增加一个空循环用于延迟;
更新2:在MCUInit函数中,使用TPMinit函数对定时器进行初始化;
更新3:在MCUInit函数中,增加UartInit对串口进行初始化;
更新4:在静态函数WriteAppInfoProc中,增加Flash_Erase对Flash进行擦除。
在测试实验中,我们将WSN_OTAR与完全代码更新机制RUPNP进行比较。表5显示了在1~4测试场景中RUPNP和WSN_OTAR需要传输的代码量。观察发现RUPNP需要传输代码量的开销比较大,因为RUPNP需要更新MCU完整的代码镜像文件。然而,WSN_OTAR只需要传输新旧程序中有差异的机器码,在1~4测试场景中所需传输的代码量约为RUPNP的50%,因此可有效降低代码传输的开销,缩短代码更新时间,提高更新的可靠性。
表6四种测试场景下重编程所需的传输代码量
为了评估该方法的性能,在实验室内部署30个MC13213节点,具体的部署方法是:将这30个节点排列成5*6的矩形网络拓扑结构,为了去除节点密度的影响,我们固定节点之间的间距。使用上述1~4更新的测试场景结合上位机测试软件与根节点,同时不改变网络拓扑结构,对RUPNP和WSN_OTAR两种无线重编程机制的更新时间进行实际评估。对于每一种测试场景的实验重复进行5次,取5次的平均时间为实验结果,然后进行下一种场景的实验。在每次实验中,代码镜像文件均从上位机通过USB传至根节点,然后再由根节点分发至该无线网络中所有其他节点。其中,每次实验的代码更新时间计算为从根节点启动分发代码流程至根节点收到该网段所有节点更新完毕数据帧的总时间。图3所示为WSN_OTAR与RUPNP在4种测试场景下的代码更新时间比较。
以上实施例仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (4)

1.一种面向MC1321X的无线传感器网络WSN重编程方法,其特征在于:
将每行机器码校验和作为代码快速比较的索引值,逐行遍历S19文件,按照校验和、FLASH地址、长度和代码数据建立二级映射的MC1321X机器码管理列表,所述校验和为代码长度、地址和代码数据三部分所有字节之和的反码的低8位;
在机器码管理列表的一级列表中将新旧程序的一级列表中每个单元值进行异或运算比较,确定具有差异的S记录行;
通过计算MCU FLASH地址,确定具有差异的S记录行代码位于MC1321X中Flash的页号和页内偏移,将计算出的页号、页内偏移和S19文件的其他属性填入MC1321X差异代码管理双向链表中;
根据MC1321X差异代码管理双向链表确定需更新的MCU方机器码;
将需更新的MCU方机器码分成若干个代码摘要或代码段,每个代码摘要或代码段由一个序号来标识;
对于每个代码摘要或代码段数据帧,判断帧位图,决定是否进行接收流程并转发此帧并通过帧位图来判断是否重复转发相同数据帧。
2.根据权利要求1所述的面向MC1321X的无线传感器网络WSN重编程方法,其特征在于,差异代码管理双向链表节点的先后按照FLASH地址大小排列。
3.根据权利要求1所述的面向MC1321X的无线传感器网络WSN重编程方法,其特征在于,使用一个计时器t来表示每个代码摘要或代码段数据帧在节点中的生命周期,当节点第一次接收到该数据帧时开始计时,选择一个时间阈值TIME,当t大于TIME时判断帧位图,决定是否进行接收流程并转发此帧。
4.根据权利要求1所述的面向MC1321X的无线传感器网络WSN重编程方法,其特征在于,数据帧号为8个Bit。
CN201410437526.6A 2014-08-29 2014-08-29 一种面向mc1321x的无线传感器网络wsn重编程方法 Active CN104199661B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410437526.6A CN104199661B (zh) 2014-08-29 2014-08-29 一种面向mc1321x的无线传感器网络wsn重编程方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410437526.6A CN104199661B (zh) 2014-08-29 2014-08-29 一种面向mc1321x的无线传感器网络wsn重编程方法

Publications (2)

Publication Number Publication Date
CN104199661A CN104199661A (zh) 2014-12-10
CN104199661B true CN104199661B (zh) 2017-06-16

Family

ID=52084958

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410437526.6A Active CN104199661B (zh) 2014-08-29 2014-08-29 一种面向mc1321x的无线传感器网络wsn重编程方法

Country Status (1)

Country Link
CN (1) CN104199661B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105117210A (zh) * 2015-07-28 2015-12-02 苏州大学 一种面向wscn的图形化编程系统
CN105722116A (zh) * 2016-01-27 2016-06-29 北京交通大学 一种工业无线传感器网络的重配置方法
CN105824644A (zh) * 2016-03-25 2016-08-03 重庆邮电大学 一种适用于无线传感器网络的增量式代码分发协议
US10447765B2 (en) * 2017-07-13 2019-10-15 International Business Machines Corporation Shared memory device
CN111862568B (zh) * 2020-07-20 2022-02-25 百度在线网络技术(北京)有限公司 指令传输方法、装置、系统、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101232516A (zh) * 2008-01-31 2008-07-30 北京航空航天大学 无线传感器网络应用中使用差分压缩的低功耗系统更新方法
KR100883635B1 (ko) * 2007-06-26 2009-02-16 학교법인 영광학원 무선 센서 네트 워크를 위한 에너지 인식 기반의 코드업데이트 데이터 전달 방법
CN101951556A (zh) * 2010-09-28 2011-01-19 湖南大学 基于网络编码的无线传感器网络数据分发方法
CN102202383A (zh) * 2011-06-14 2011-09-28 四川大学 无线传感器网络中应用多信道代码分发的重编程方法
US8107397B1 (en) * 2006-06-05 2012-01-31 Purdue Research Foundation Protocol for secure and energy-efficient reprogramming of wireless multi-hop sensor networks
CN103677869A (zh) * 2012-09-06 2014-03-26 中国科学院计算技术研究所 无线传感器网络节点远程代码更新系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8107397B1 (en) * 2006-06-05 2012-01-31 Purdue Research Foundation Protocol for secure and energy-efficient reprogramming of wireless multi-hop sensor networks
KR100883635B1 (ko) * 2007-06-26 2009-02-16 학교법인 영광학원 무선 센서 네트 워크를 위한 에너지 인식 기반의 코드업데이트 데이터 전달 방법
CN101232516A (zh) * 2008-01-31 2008-07-30 北京航空航天大学 无线传感器网络应用中使用差分压缩的低功耗系统更新方法
CN101951556A (zh) * 2010-09-28 2011-01-19 湖南大学 基于网络编码的无线传感器网络数据分发方法
CN102202383A (zh) * 2011-06-14 2011-09-28 四川大学 无线传感器网络中应用多信道代码分发的重编程方法
CN103677869A (zh) * 2012-09-06 2014-03-26 中国科学院计算技术研究所 无线传感器网络节点远程代码更新系统及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Cortex-M0+内核Kinetis L系列的低功耗机制分析;沈忱等;《单片机与嵌入式系统应用》;20140331(第3期);全文 *

Also Published As

Publication number Publication date
CN104199661A (zh) 2014-12-10

Similar Documents

Publication Publication Date Title
CN104199661B (zh) 一种面向mc1321x的无线传感器网络wsn重编程方法
Mottola et al. Logical neighborhoods: A programming abstraction for wireless sensor networks
Arakadakis et al. Firmware over-the-air programming techniques for IoT networks-A survey
US8819653B2 (en) Automated improvement of executable applications based on evaluating independent execution heuristics
CN107579863A (zh) 终端ota升级方法、装置及系统
CN107613583B (zh) 一种分布式无线传感器网络数据汇总网关
CN105573810A (zh) 一种无线传感器网络节点远程升级方法及装置
US20190138295A1 (en) Delivery of firmware updates in a low-power mesh network
Marrón et al. Management and configuration issues for sensor networks
CN102238603A (zh) 一种无线传感器网络的更新方法
CN109873722A (zh) 固件远程升级方法、装置、计算机设备及存储介质
Ngo et al. Simulation wireless sensor networks in castalia
CN104754021A (zh) 用于促进对分布式存储系统中的数据的访问的装置和方法
KR101960736B1 (ko) 무선 네트워크를 통해 프로그램을 업데이트하는 무선기기 및 무선시스템
Müller Data stream processing on embedded devices
CN110366186A (zh) 一种传感器执行器网络应用程序的部署方法及系统
Audrito et al. Fcpp+ miosix: Scaling aggregate programming to embedded systems
Xia et al. MC2: Multimode user-centric design of wireless sensor networks for long-term monitoring
Khieng et al. A Long Distance Low Bandwidth Firmware Update process for LPWAN-Taking LoRaP2P+ as example
CN113805927A (zh) 一种代码更新方法、装置、电子设备及计算机存储介质
Ramos et al. Gatherer: An environmental monitoring application based on IPv6 using wireless sensor networks
KR101031001B1 (ko) 단일 홉 무선 센서 네트워크를 위한 고속 병렬 소프트웨어 업데이트 방법
CN108829451A (zh) Bmc配置更新方法、装置、基板管理控制器及存储介质
Wibling Ad hoc routing protocol validation
Jiang et al. The simulation of address autoconfiguration protocols in mobile Ad Hoc Networks based on NS2

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180919

Address after: 226100 Fujiang South Road, Haimen street, Haimen, Nantong, Jiangsu 698

Patentee after: Haimen hawen Textile Co.,Ltd.

Address before: 215123 199 Ren Yan Road, Suzhou Industrial Park, Jiangsu

Patentee before: Soochow University

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220228

Address after: 226000 room 3, No. 777, Guangzhou road, Binjiang street, Haimen District, Nantong City, Jiangsu Province

Patentee after: Sinosoft International Digital Technology (Nantong) Co.,Ltd.

Address before: 226100 Fujiang South Road, Haimen street, Haimen, Nantong, Jiangsu 698

Patentee before: Haimen hawen Textile Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231011

Address after: 226000 Haimen Economic and Technological Development Zone, Nantong City, Jiangsu Province, No. 999 Guangzhou Road

Patentee after: Nantong Construction Engineering Co.,Ltd.

Address before: 226000 room 3, No. 777, Guangzhou road, Binjiang street, Haimen District, Nantong City, Jiangsu Province

Patentee before: Sinosoft International Digital Technology (Nantong) Co.,Ltd.