一种远程更新方法及系统的制作方法_2

文档序号:9600899阅读:来源:国知局
据来更新固件;
[0052]已更新的各个协调器同时向两个未更新的协调器发送以帧为单位的更新数据,从而以二的指数倍的更新速度更新全部协调器。
[0053]实施例一
[0054]在需要更新时,网关广播更新通知和固件更新信息。固件更新信息中包含了固件类型、固件版本号、固件长度等信息。如图2所示,至少一个协调器接收到网关广播的更新通知之后,解析固件更新信息中的固件版本号、固件类型和固件长度。协调器会判定自身的固件版本号是否低于更新通知中的固件版本号。若是协调器自身的固件版本号高于或等于更新通知中的固件版本号时,则保持当前的固件版本。若是协调器自身的固件版本号低于更新通知中的固件版本号时,协调器生成更新请求,并将更新请求发送至网关。网关在接收到协调器发送的更新请求时,向协调器发送更新数据。更新数据以帧为单位逐帧发送。
[0055]Zigbee网络的物理层传输速率为每个信道250kbps。对于运行在同一个网络中的所有节点来说,总速率不能大于250kbps。而zigbee网络的一个物理帧最大为127字节,可以计算出每一帧的占用时间为4.256ms。加上帧间隔时间,每一帧的传输为5ms。再按照请求/响应的工作模式,每一组zigbee通信传输一次升级文件片段,约10ms。假设一个节点固件大小为187KB,按照zigbee每一帧127字节计算,其应用层可以携带64字节,187KB约合3000帧。网络内N个节点,累计需要传输3000*N帧,每一帧10ms,需要时间为3000*10*N(ms),约合30*N(s)。因此,网关向协调器以帧为单位发送更新数据。这样能够降低更新数据的丢失率,使更新数据稳定而有序的传输。
[0056]根据一个优选实施方式,协调器根据解析固件更新信息中的固件长度计算需要接收的更新数据的总帧数。然后协调器按照从0开始向网关发送更新请求。其中一个更新请求对应一帧更新数据。网关响应第一个更新请求后向协调器发送第一帧更新数据。协调器接收第一帧更新数据后,保存第一帧更新数据。协调器向网关发送第二个更新请求。网关响应第二个更新请求后向协调器发送第二帧更新数据。协调器接收第二帧更新数据后,保存第二帧更新数据。发送更新请求和接收对应的更新数据交替进行,直至协调器发送更新请求后接收最后一帧更新数据并保存后停止。
[0057]根据一个优选实施方式,协调器校验接收的每一帧更新数据的有效性。既协调器校验更新数据是否损坏或丢失。损坏或丢失的更新数据为无效的更新数据。协调器向网关重新发送对应于无效的帧更新数据的更新请求。网关响应更新请求后,重新发送该帧更新数据。协调器在接收到该帧更新数据并保存。校验有效性保证了更新数据的传输稳定性。
[0058]实施例2
[0059]本实施例是在实施例一的基础上的进一步改进。
[0060]网关向至少一个协调器广播固件更新信息。协调器解析固件更新信息中的固件版本号、固件类型和固件长度等信息。协调器根据固件长度计算更新数据的总帧数。协调器向固件版本号高于自身版本号的网关发送更新请求。网关对更新请求做出响应,逐帧发送更新数据。协调器逐帧接收更新数据并保存。
[0061]根据一个优选实施方式,网关广播的固件更新信息中携带设定校验值。设定校验值包括CRC值。协调器解析固件更新信息中的设定校验值。当协调器接收全部更新数据后,对接收的每一帧更新数据进行计算,得到另一个CRC值。若协调器计算得到的CRC值与固件更新信息中的CRC值相等,说明更新数据没有出现丢失或损坏的现象。协调器保存全部的更新数据。若协调器计算得到的CRC值与固件更新信息中的CRC值不相等,说明更新数据中丢失了以帧为单位的更新数据。协调器根据标识参数确定丢失的是第几帧的更新数据,向网关重新发送更新请求以请求网关重新发送丢失的更新数据。
[0062]每一帧更新数据中带有一个标识参数。该标识参数代表更新数据的顺序。当协调器逐帧接收全部的更新数据后,基于每帧更新数据的标识参数确认丢失的更新数据。协调器向网关重新发送对应于丢失的更新数据的更新请求。协调器重新接收丢失的更新数据。例如,协调器根据标识参数确认损坏或丢失的更新数据是第几帧更新数据。若协调器发现缺少第二帧更新数据的标识参数,则向网关重新发送更新请求,请求网关重新发送第二帧更新数据。网关响应协调器的更新请求,重新发送第二帧更新数据。
[0063]根据一个优选实施方式,协调器在在计算得到的CRC值与固件更新信息中携带的CRC值相同时,则执行更新程序。协调器的更新程序在后台运行。在更新期间,协调器正常接收工作数据,不会影响用户的正常使用。
[0064]实施例三
[0065]本发明是在实施例二的基础上的进一步改进。
[0066]网关连接至少一个网络设备。网络设备包括协调器、智能照明设备、智能家电、智能电子设备。以智能照明设备对本实施例进行说明。
[0067]网关与至少一个智能照明设备通过无线网络连接。智能照明设备接收到网关的广播更新通知。广播更新通知中包括固件更新信息。智能照明设备解析固件更新信息,并且以hex文件形式读取固件更新信息。智能照明设备按行读取固件更新信息。从index = 0读取,每次读取4行共64个字节,即一个index。
[0068]智能照明设备比较更新版本号和自身固件版本号的级别高低,向固件版本号级别高与自身的网关发送更新请求。网关响应更新请求,向智能照明设备发送带有index和对应数据的更新数据。智能照明设备将得接收的更新数据保存在外扩SPI FLASH中。SPIFLASH为4KB —擦除。所以智能照明灯具会在每4KB数据后保存一次断点记录。即:index为64的整数倍时保护断点。本发明可以避免丢失一帧数据之后就再次进行重头开始发送更新请求的问题,提升了固件更新的稳定性。
[0069]根据一个优选实施方式,网关广播的固件更新信息中携带设定校验值。设定校验值包括CRC值。智能照明设备解析固件更新信息中的设定校验值。当智能照明设备接收全部更新数据后,对接收的每一帧更新数据进行计算,得到另一个CRC值。若智能照明设备计算得到的CRC值与固件更新信息中的CRC值相等,说明更新数据没有出现丢失或损坏的现象。智能照明设备保存全部的更新数据。若智能照明设备计算得到的CRC值与固件更新信息中的CRC值不相等,说明更新数据中丢失了以帧为单位的更新数据。智能照明设备根据标识参数确定丢失的是第几帧的更新数据,向网关重新发送更新请求以请求网关重新发送丢失的更新数据。
[0070]每一帧更新数据中带有一个标识参数。该标识参数代表更新数据的顺序。当智能照明设备逐帧接收全部的更新数据后,基于每帧更新数据的标识参数确认丢失的更新数据。智能照明设备向网关重新发送对应于丢失的更新数据的更新请求。智能照明设备重新接收丢失的更新数据。例如,智能照明设备根据标识参数确认损坏或丢失的更新数据是第几帧更新数据。若智能照明设备发现缺少第二帧更新数据的标识参数,则向网关重新发送更新请求,请求网关重新发送第二帧更新数据。网关响应智能照明设备的更新请求,重新发送第二帧更新数据。
[0071]多个智能照明设备同时从网关接收更新数据。在智能照明设备保存全部更新数据后,多个智能照明设备同时在在
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1