一种基于跨协议通信的物联网节点代码更新方法转让专利
申请号 : CN201911278193.6
文献号 : CN110995853B
文献日 : 2021-08-20
发明人 : 覃振权 , 仲点 , 崔国繁 , 兰慧君 , 王雷 , 卢炳先 , 朱明
申请人 : 大连理工大学
摘要 :
权利要求 :
1.一种基于跨协议通信的物联网节点代码更新方法,其特征在于,步骤如下:步骤一,上位机编写更新程序,并由编译器编译成Hex的ZigBee节点可执行文件;
步骤二,上位机获取时间同步序列,与待更新节点实现时间同步;上位机控制网卡设置Wi‑Fi协议在1信道工作,即ZigBee的11信道,周期性广播名为SyncStart的Beacon;利用ZigBee节点感知信道RSSI值,监测到ZigBee的11信道被占用,则说明检测到该SyncStart信标;ZigBee节点开始时间同步,并在当前信道持续发送与ZigBee数据包不同功率强度的数据包SyncACK,由上位机使用Ath9k网卡光谱扫描发现该变化后,进入时间同步状态;
步骤三,上位机上的更新程序对更新数据包按照跨协议通信协议进行编码并发送;按照如下规则进行编码:(1)假定Wi‑Fi与ZigBee运行在同一信道上,当Wi‑Fi传输数据占用信道时,会导致信道中接收端信号的功率强度增大,ZigBee节点检测到的RSSI值会发生变化;
(2)当Wi‑Fi端发包占用信道时,ZigBee节点感受该信道的RSSI值明显增大,则判断接收名为Symbol‘1’的编码;(3)当Wi‑Fi端不发送数据包时,ZigBee节点则感受该信道的RSSI值明显减少,则判断接收名为Symbol‘0’的编码,完成编码;工作信道上位机以及更新节点分别设置在都较少使用的Wi‑Fi的1信道以及ZigBee的11信道进行工作;上位机完成对网卡发送的数据帧的时间序列的编码后,按照该时间序列发送数据包;
步骤四,待更新节点的采样接收上位机发送数据模块接收更新脚本,并依照跨协议通信协议进行解码;自开始时间同步时,待接收节点持续监听ZigBee的11信道的能量变化,并通过采样获取并记录信道的RSSI值,由特征分析及干扰剔除模块205通过特征提取对每一个RSSI值片段进行量化,通过干扰剔除排除掉干扰信道的RSSI值,并将其存储于存储模块
206接着通过解码模块207将信息还原;
步骤五,待更新节点的更新操作模块负责对接收的更新数据包校验以及进行更新操作;待更新节点使用基于整个代码的更新模式,即新代码完全接收完并校验无误后,将运行权交由程序引导装载区的程序,完成对Flash区域的代码擦除和新代码的写入的模式;更新操作包括以下步骤:(1)启动代码更新服务,接收到上位机发送的同步更新数据帧SyncStart,则启动同步更新服务;(2)接收上位机发送的更新代码的编码序列,并将其解码成新程序代码,将其储存在外部Flash中,并对其进行验证,确保安全完整;(3)代码更新,确定接收到完整安全的代码后,启动程序引导装载区中的代码更新服务;
步骤六,ZigBee节点根据跨协议通信协议向上位机发送更新完成信息,更新完成后,同样依照ZigBee和Wi‑Fi工作在相同频段的特性,更新完成后的节点,连续一段时间在ZigBee的20信道发送功率强度有明显变化的表示更新已完成的Fin数据包;
步骤七,上位机扫描到接收到节点的更新完成信息数据包,更新完成;上位机使用Ath9k网卡光谱扫描方法,获取由待更新节点发送的数据包的RSSI能量值,一旦扫描到ZigBee的20信道上功率强度持续一段时间内发生明显变化的数据包Fin,则表示更新成功,否则更新失败。
说明书 :
一种基于跨协议通信的物联网节点代码更新方法
技术领域
背景技术
网节点分布在它们发挥作用的各个领域,但随着技术的发展进步,很多节点的功能需要升
级改进。我们把这些维护工作称作是节点的代码更新。代码更新有传统的人工烧录,但是由
于节点分布分散,版本更新换代快,以及人工成本高等原因显得不切实际。所以就引申出现
在的代码更新方法。当前的代码更新方法是,在一个区域内部署一个网关,由上位机编写更
新数据包,由网关对节点进行分发,并通过节点的网络多跳传递实现整个物联网节点网络
的代码更新。但是,当前的代码更新存在对节点的开销大,成本高,多跳传递更新数据包实
现困难等问题。例如,节点需要广播预更新消息,这对低能耗,短距离的节点来说是一个不
小的开销。跨协议通信(Cross‑Technology Communication,CTC),要解决的问题是如何实
现异构的无线设备(Wi‑Fi,蓝牙,ZigBee等)的直接通信。目前在CTC领域有很多可喜的进
展,如FreeBee实现了Wi‑Fi、ZigBee之间直接通信,WiZig在幅度维度和时间维度上采用能
量调制技术,以优化在嘈杂信道上从Wi‑Fi到ZigBee的吞吐量,B2W2充分利用重叠的特征渠
道将数据传输从蓝牙低能量设备重新连接到Wi‑Fi设备等。
发明内容
实现。
周期性广播名为SyncStart的Beacon(信标)。利用ZigBee节点感知信道RSSI值的特性,监测
到ZigBee的11信道被占用,则说明检测到该SyncStart信标;于是ZigBee节点开始时间同
步,并在当前信道持续发送与ZigBee数据包不同功率强度的数据包SyncACK,由上位机使用
Ath9k网卡光谱扫描技术,发现该变化后,进入时间同步状态;
占用信道时,会导致信道中接收端信号的功率强度增大,ZigBee节点检测到的RSSI值(接收
的信号强度)就会发生变化;(2)当Wi‑Fi端发包占用信道时,ZigBee节点感受该信道的RSSI
值明显增大,则判断接收名为Symbol‘1’的编码;(3)当Wi‑Fi端不发送数据包时,ZigBee节
点则感受该信道的RSSI值明显减少,则判断接收名为Symbol‘0’的编码,完成编码;工作信
道上位机以及更新节点分别设置在都较少使用的Wi‑Fi的1信道以及ZigBee的11信道进行
工作;上位机完成对网卡发送的数据帧的时间序列的编码后,按照该时间序列发送数据包;
化,并通过采样获取并记录信道的RSSI值,通过特征提取对每一个RSSI值片段进行量化,通
过干扰剔除排除掉干扰信道的RSSI值,接着通过解码将信息还原;
行权交由程序引导装载区的程序,完成对Flash区域的代码擦除和新代码的写入的模式;更
新操作包括以下步骤:(1)启动代码更新服务,接收到上位机发送的同步更新数据帧
SyncStart,则启动同步更新服务;(2)接收上位机发送的更新代码的编码序列,并将其解码
成新程序代码,将其储存在外部Flash中,并对其进行验证,确保安全完整;(3)代码更新,确
定接收到完整安全的代码后,启动程序引导装载区中的代码更新服务;
ZigBee的20信道(2449MHz‑2451MHz,WiFi并不工作在此频段,但使用Ath9k光谱扫描技术可
以检测到该信道的RSSI值)发送功率强度有明显变化的表示更新已完成的Fin数据包;
ZigBee的20信道上功率强度持续一段时间内发生明显变化的数据包Fin,则表示更新成功,
否则更新失败。
以及待更新节点接收并解码模块和待更新节点更新模块。
了更新过程中的复杂程度。此外,本发明是通过上位机和待更新节点之间的直接传输实现
的,因此,不需要传统代码更新技术中的网关节点,减少了代码更新过程中的成本。
附图说明
上位机发送数据模块;205特征分析以及干扰剔除模块;206存储经过上述处理的数据模块;
207根据跨协议通信协议解码模块;208更新操作模块;209回复更新完成数据包模块。
具体实施方式
不用于限定本发明。
节点b103。图1种闪电符号表示上位机101,待更新节点a102以及待更新节点b103是通过无
线的方式进行通信的。
交给上位机101的跨协议通信模块按照相应协议对其进行编码(参见下文的描述)。在本系
统内,在一个更新区域范围中,只允许一个上位机101的存在。此外,本发明使用跨协议通信
涉及到的两种协议WiFi及ZigBee的信道分布图见图4。
时间同步,所以在一段时间内只有一个待更新节点进行代码更新操作。图1中是待更新节点
a102正在进行更新操作,待更新节点b103处于等待更新状态。
以及发送编码模块203。待更新节点的功能模块包括采样接收上位机发送数据模块204、对
数据特征分析及干扰剔除模块205、存储经过上述处理的数据模块206、根据跨协议通信协
议解码模块207、更新操作模块208以及回复更新完成数据包模块209。现将各个模块的功能
及实现方法分别说明如下。
块的操作,直接进入编写编译更新代码模块201,开始更新操作。
议通信协议编码模块202需要上位机101同更新节点之间实现时间同步,依据的是无线网络
中具有周期特征的Beacon信标进行,Wi‑Fi系统中,无线设备会周期性地广播Beacon信标来
宣布自身存在,这是Wi‑Fi的固有特性。如图5所示,其编码主要按照如下步骤:
将Symbol窗口均分为3个小窗口,分别为up、mid和low,时长分别为Tup、Tmid和Tlow,且三者相
等;如图6的603部分所示,控制包长相同的多个包以固定的传输时间间隔平铺在不同的小
窗口内,在up和low两个窗口进行传输以代表编码Symbol‘1’,如图6的601部分,控制这些包
在mid窗口上传输以代表编码Symbol‘0’,如图6的602部分。将需要传输的信息编码成时间
序列包,即更新程序的编码;
SyncStart数据帧,便可以完成实现时间同步。依据此原理时间同步具体实现见下文。
RSSI值,依据802.15.4提供的信道空闲监测机制,将大于‑75dBm的值量化成数值1指代信道
忙,并将小于‑75dBm的值量化成数值0指代信道空。在此基础上,依据折叠策略来进行
SyncStart的识别。
rssi(t),…,rssi(Tsample)},
(w,n)每一列的和sum(n),sum(n)中的最大值所对应的下标即Beacon信标出现的位置。sum
(n)的计算公式如下
的最大值便可快熟识别出Beacon信标。图中灰色方框为噪声点,经过折叠后噪声被消除。按
照此方法实现ZigBee节点对信标的识别,从而实现上位机和ZigBee节点的时间同步。
持续发送与ZigBee数据包不同功率强度的数据包SyncACK。根据图4的描述,WiFi并不工作
在此信道上。但使用Ath9k网卡的光谱扫描技术可以检测到该信道的变化,这么做可以减弱
无关WiFi信号对本系统的干扰。由上位机使用Ath9k网卡光谱扫描技术,发现该变化后,将
编码交由更新发送模块。
作。
除。接下来将依次说明上述步骤。
ZigBee节点对RSSI值的监测。
开始,若有RSSI开始小于此阈值,则意味值探测到每个片段的结束为止,据此我们可以获得
M个片段。
特征向量值与预先得到的指纹特征进行对比,依据干扰片段与兴趣片段的特征差异性规则
完成区分与剔除。
大小取决于发送端设定的窗口大小,将每一个Symbol块均分为3个部分,按照编码方式完成
解码。即窗口up和low被占有则判定为Symbol‘1’,如mid被占有则判定为Symbol‘0’,端口是
否被占用依据如下公式进行,
下公式判断:
更新完成模块200接收。具体操作是,更新完成的节点在连续一段时间在ZigBee的20信道发
送功率强度有明显变化的Fin数据包,表示自己已完成代码更新。
跨协议通信方法的基本思路。在WiFi端,借用Beacon信标作为时间标志完成编码。在ZigBee
接收端,通过RSSI采样获取信道RSSI值,通过RSSI值分割提取被扰动的信道RSSI值并归为
片段,通过提成提取对每一个RSSI值片段进行量化,通过干扰剔除将干扰源扰动给的信道
RSSI值去掉,通过解码将信息还原,最终完成WiFi到ZigBee的直接通信。
以增减、替换、变换或改进,而所有这些增减、替换、变换或改进后的技术方案,都应属于本
发明所附权利要求的保护范围。