Come! Fun hands tell you how things device software upgrade

----- ----- Software Upgrade Process

Software (Software) feature generally fall into the system software and application software, system software basic equipment, such as compiling tools, document management systems; application software according to the characteristics of the device, with different functions, such as data collection, data analysis processing.

Software upgrades, also known as SOTA (SoftWare Over The Air), is a user of the device can LWM2M protocol supported by a software upgrade OTA way. Software upgrades to follow protocol PCP protocol, device side need to follow the PCP protocol software upgrades to develop adaptation. SOTA flow as shown below:spacer.gif

1577150777252658.png

SOTA detailed description of the upgrade process:

1 to 2 users to upload packages in the console device management services and creates software upgrade tasks on the console or application server.

3. NB-IoT devices reported data, platform-aware devices on the line, triggering upgrade negotiation process.

4-5. Things query the device software development platform version of the command to the next device, the query is successful, things need to upgrade the target platform version judgment equipment upgrades.

  • If the return target version information and upgrade the software version of the same information, the upgrade process ends, not the upgrade process.

  • If the return of the target version of the software version information and upgrade different, proceed to the next step of the upgrade process.

6. Things platform software subscription upgrade to the device status.

7-8. Things internet query the wireless signal coverage where the terminal device is located, acquiring a cell ID, RSRP (Reference Signal Received Power, reference signal received power) and SINR (Signal to Interference Plus Noise Ratio, a signal to interference noise ratio) information.

  • Query succeeds: calculating the number of concurrent simultaneously upgraded calculated according to the following embodiment, and processed according to step 10.

    • As shown below, if the RSRP SINR strength and intensity level falls devices are "0", then the update can be simultaneously performed while the cover section 50 of the same signal device cell.

    • If the RSRP SINR strength and intensity level falls apparatus respectively "0" and "1", the signal is weak places of level "1" basis can only be upgraded at the same time the 10 cell device.

    • 如果设备的RSRP强度和SINR强度分别落在等级“1”和“2”中,则以信号较弱的等级“2”为准,则只能同时对该小区的1个设备进行升级。

      如果设备的RSRP强度和SINR强度不在该3个等级范围内,且均可以查询到,则按照信号最弱覆盖等级“2”处理,则只能同时对1个设备进行升级。

      1577150807458220.png

      注:如果用户在软件升级中发现同时进行升级的设备数较少,则可以联系当地运营商检查和优化设备所在小区的无线覆盖情况。

  • 查询失败:则按照步骤9进行处理。

9. 物联网平台继续下发查询小区ID信息的命令,获取终端设备所在的小区ID信息。

  • 如果查询成功:物联网平台支持同时对该小区的10个相同情况的设备进行软件升级。

  • 如果查询失败:则升级失败。

10~12. 物联网平台通知设备有新的软件包版本,设备启动软件包的下载。软件包的下载按照分片的方式进行下载,支持断点续传功能,通过软件包分片中携带的“versionCheckCode”确定是否属于同一个软件包。下载完成后,设备知会物联网平台软件包已下载完毕。

13~14. 物联网平台向设备下发升级的命令,终端设备进行升级操作,升级完成后终端设备向物联网平台反馈升级的结果。

15. 物联网平台向控制台/应用服务器通知升级的结果。

-----软件升级版本包结构------

设备升级的软件包文件由各设备厂商提供,在物联网平台上传设备的软件升级包前,需要制作软件升级的版本包,用于修改软件包的描述文件,如软件版本、厂商名称、设备类型、产品模型等信息。下面将详细介绍版本包的制作方法。

  1. 新建文件夹命名为“DM”,在DM文件夹下新建文件夹,命名为“linux”。

  2. 使用Notepad++文本工具新建一个文本文件,拷贝如下内容到文本中,在Notepad++工具的“编码”菜单中选择“以UTF-8无BOM格式编码”,然后将文本进行存储,存储路径选择步骤1中的“linux”文件夹,文件名称命名为“UpgradeDesc”,保存类型选择“.json”。

    {

    "specVersion": "",

    "fileName": "",

    "packageType": "",

    "version": "",

    "deviceType": "",

    "manufacturerName": "",

    "model": "",

    "protocolType":"",

    "description":"",

    "versionCheckCode":"",

    "deviceShard":"",

    "platform":"",

    "supportSourceVersionList":[],

    "date":""

    }

    打开创建的“UpgradeDesc.json”文件,修改软件升级描述文件,相关字段如下表所示。

    1577150939696835.png

  3. 在与“DM”同级目录下创建文件夹,命名为“linux”,该文件夹名称必须同步骤1中的文件夹命令保持一致,将厂商软件包(软件包格式无限制)置于该文件中。

  4. 选中“DM”和“linux”文件夹,使用压缩工具打包成ZIP格式的压缩包,建议命令为“xx_package.zip”。

注:

  • 文件“DM”和“linux”的命名是固定的。

  • “xx_package.zip”下不能包含package这层目录。

  • 仅支持ZIP格式的压缩包,不能压缩成其他格式后,例如rar,再手动修改文件类型为zip。

-----设备侧适配开发概述------

设备的OTA软件升级是基于华为定义的PCP协议进行的,设备侧需根据PCP协议定义的交互流程进行适配开发。下面我们将结合物联网平台与设备的软件升级交互流程,介绍终端设备将如何基于PCP协议构建交互过程中的请求消息和应答消息,帮助您更好的根据PCP协议进行终端侧的软件升级功能开发。

下面我们先了解下PCP消息的结构,PCP协议的请求消息和应答消息都遵循相同的消息结构,主要由这几部分组成:

1577150983209435.png

PCP协议消息由:起始标识位、版本号、消息码、校验码、数据区长度和数据区组成,各字段的要求和描述如下表所示。

1577150995959624.png

物联网平台发送消息接下来让我们以查询设备版本号为例看下平台与设备交互消息的结构。

根据PCP消息结构的定义可以得出,物联网平台向设备下发查询版本号时,各消息字段的填写如下:

  • 起始标识:固定为消息流的前2个字节,固定为FFFE。

  • 版本号:数据类型为1个字节整数,且固定为1,即在消息流中为01。

  • 消息码:数据类型为1个字节整数,查询设备版本的消息码为19,转换为十六进制为13。

  • 校验码:数据类型为2个字节整数,先将校验码置为0000,然后将完整的消息码流进行CRC16的算法计算得到校验码,再将得到的校验码替换原消息中的0000。

  • 数据区长度:数据类型为2个字节整数,代表数据区的消息长度,根据数据区的数据结构可以得出该条消息无数据区,即数据区长度为0000。

  • 数据区:数据区代表要真正发送给设备的数据,根据查询版本信息的数据区定义,该条消息是没有实际要传送的数据的,即无需数据区字段。

因此将查询版本消息的码流组合起来得到:FFFE 01 13 0000 0000。前面的校验码时讲了,需要将组合后的消息码流进行CRC16算法得到校验码4C9A,然后将该校验码替换原码流中的0000后得到FFFE01134C9A0000,该消息码流即为物联网平台发送给设备的查询版本信息的消息码流。

设备返回的应答消息

设备收到物联网平台要查询设备的软件版本号消息,设备要向物联网平台反馈查询的结果,各消息字段的填写如下。

  • 起始标识固定为:FFFE。

  • 版本号固定为:01。

  • 消息码:与请求的消息码一致,为13。

  • 校验码:CRC16计算前先用0000替代。

  • 数据区长度:根据数据区的字段的数据类型得出数据区长度为17个字节,转换为十六进制为:0011。

  • 数据区:根据数据区的定义可知,处理成功的结果码为00,版本号信息假设为V0.9,将V0.9进行ASCII转码得到56302E39,由于版本号的数据类型为BYTE[16],即16个字节,当前只有4个字节,因此需要在版本号数据后面补0,得到56302E39000000000000000000000000。因此,数据区合并后为0056302E39000000000000000000000000。

    1577151028585971.png

将查询版本信息的消息流组合起来得到:FFFE 01 13 0000 0011 0056302E39000000000000000000000000。前面讲到,还要将消息流进行CRC16算法计算得到校验码为8DE3。因此,物联网平台向设备查询版本号信息,设备向平台返回的消息流为FFFE01138DE300110056302E39000000000000000000000000。

设备升级期间,物联网平台和设备交互的其他消息也都遵循PCP协议,此处不再详细介绍。

看完本文后,您是否对设备软件升级有了更胜的了解呢?如果您想进一步了解设备软件升级的原理和操作,可以访问设备管理服务的帮助中心

关于华为物联网可参加学习免费课程视>>>>>《IoT七天开发训练营》或联系华为IoT小助手(微信号:huawei-iot)获取更多课程。

Guess you like

Origin www.cnblogs.com/hwiot/p/12110963.html