终端产品升级软件通用设计方法

一、概述

1、功能描述

2、功能规格

软件版本规则定义

软件版本检查规则

软件升级方式

二、版本命名规则

1、内容

    版本命名包含三个版本,产品名称+硬件版本信息+软件版本信息,产品名称为一字符串

硬件版本 规则

硬件版本为: XX. XXXX  XX两为大版本 , XXXX四位为小版本 ,都为字符串,00或0000为起始版本 ,依次递增;数字使用完可以使用字母

软件版本 规则

软件版本为: XX. XXXX  XX两位为大版本 , XXXX四位为小版本 ,都为字符串,00或0000为起始版本 ,依次递增;数字使用完可以使用字母

 

名称

解释

备注

1

产品名称

32个字符

 

2

硬件版本

10个字符

HW+XX.XXXX

3

软件版本

10个字符

SW+XX.XXXX

 

2、实例

完整的版本命名:

T1 HW 00.0000 SW 00.0000

T2 HW 00.0001 SW 01.0000

T1 HW 00.000A SW F1.ABCD

三、软件升级内容定义

1、分区升级

可以进行分区表的更新,分区内容的更新,可以一个或多个分区进行更新升级

2、文件升级

可以对特定分区文件系统中的一个或多个进行升级

3、参数升级

    对特定设备上的数据进行更新,如E2PROM, 安全芯片数据区, OTP区的数据进行添加或更新,目前只用SN和版本信息需要写入到E2PROM上

4、版本升级版本检测规则

    版本升级原则:终端机获得升级的版本信息,进行版本比对,产品名称对应相等,硬件版本对应相等,软件版本大过当前版本;

    例外情况: 当软件升级信息中有强制升级方式的情况下,软件版本不进行比对,但硬件版本和产品名称还是要进行比对;

 

四、软件版本升级

1、升级方式

    主要有TOOLS, USB,  ONLINE三种,升级中又分一般升级和强制升级(软件版本不检查);

2、TOOLS升级

    使用工具进行IMG烧写,不进行版本检查,用于调试过程中烧写,以及用于BOOT有问题的情况下进行BOOT恢复,。

3、USB升级

    通过U盘进行升级,主要是按分区进行升级,可以进行分区更改。需要进行版本检查,安全检查的功能。

4、在线升级

通过 络进行版本检查和升级

 

 

五、软件版本制作过程

1、配置文件格式定义

 

名称

解释

备注

1

STARTCODE

起始码

 

2

CFGTYPE

配置信息类型

区分不同类型的配置信息

3

Update mode

升级方式

强制和非强制

4

versioninfo

产品版本信息

 

5

imginfolen

Imginfo长度(从imginfolen域后计算开始)

 

6

Imginfo

Img分区或文件信息

 

7

CRC

校验(从STARTCODE后算起,到CRC前的数据内容)

 

8

EOF

结束码

 

升级的配置信息文件包含的内容有:升级方式,版本信息,升级IMG信息,通过下载升级配置文件获得升级的版本信息和分区信息;

2、版本信息

名称

说明

备注

1

Product name

产品名称

定长字节数

2

HW VERSION

硬件版本

 

3

SW VERSION

软件版本

 

4

DATE

版本时间

 

3、IMGINFO信息

名称

解释

备注

1

imgnum

IMG数量

 

2

imgtype

IMG类型

分区,文件,数据类型

3

fstype

文件系统类型

 

4

Flash startaddress

分区起始地址

 

5

Flash endaddress

分区终止地址

 

6

imgfilename

IMG文件名称

 

7

NEXT/EOF

间隔标记 / 结束标记

 

4、IMG文件格式定义

名称

解释

备注

1

IMG START CODE

起始码

 

2

Img cfg type

Img 配置类型

 

3

Img cfg len

Img 配置数据的长度

 

4

CFG INFO

配置数据内容

 

5

CFG CRC

配置数据的CRC

 

6

IMG LEN

IMG的长度

 

7

IMG

加密的IMG数据

由CFG INFO中的KEY 进行加密

8

IMG CRC

校验

 

9

EOF

结束

 

 

通过文件打包将IMG的内容进行加密和校验,BOOT程序和在线升级程序获得后进行解密和校验。

5、定义的CFG INFO

OTPSOURCE的内容通过OPT KEY进行加密,生成OTPENCRYPT内容;取OTPENCRYPT中的某些数据作为IMG的IMG KEY, 用IMGKEY对IMG的内容进行加密。

 

六、USB升级流程

升级流程图

 

升级说明

升级过程中对IMG的检查和校验,使用OTP区存的KEY进行IMG合法性检查

 

    当OTP  KEY 区是空的情况,第一次BOOT升级进行OTP KEY的烧写,将OTP KEY进行变换填写到文件头,OTPSOURCE 和 OTPENCRYPT的内容生成, OTPSOURCE的内容通过OPT KEY进行加密,生成OTPENCRYPT内容;取OTPENCRYPT中的某些数据作为IMG的IMG KEY, 用IMGKEY对IMG的内容进行加密。

 

BOOT进行升级的过程中,首先检查OPT KEY是否烧写,只第一次进行烧写,后续升级不可操作;      BOOT在进行OTPSOURCE 加密生成的数据和IMG FILE中OTPENCRYPT的内容进行比对,相同就是合法版本,不同就是非法软件;

 

     判断为合法软件后通过OTPencrypted中包含的IMG KEY 对IMG内容进行解密形成真实的IMG内容,然后进行烧写对应的分区或改写文件;

 

七、在线升级流程

升级流程图

 

 

升级说明

    升级触发是通过APP的程序进行升级触发,APP程序通过查询版本信息交易获得版本信息,进行版本升级的触发,设置升级标记(存入E2PROM中),获得URL地址,将此URL地址传递给升级程序;

       升级程序读取升级标记,同时根据URL进行CFG和IMG文件的下载,升级异常机器重新启动进行升级有URL没有的情况,这个时要进行URL的获取操作,再重新进行CFG和IMG的下载;

E2PROM格式定义

格式定义

名称

解释

备注

1

STARTCODE

起始码(0XFE)

1个字节

2

CFGTYPE

配置类型(0X00)

1个字节

3

PRODUCT NAME

产品名称

32个字节

4

HW VERSION

硬件版本

6个字节

5

SW VERSION

软件版本

6个字节

6

SN

序列

8个字节

7

UPDATEFLAG

升级类型标记

1个字节

8

UPDATEFINISHFLAG

升级完成标记

1个字节

9

CRC

CRC域前的所有数据进行CRC

4个字节

10

LOGID

流水

根据项目确定

11

CFG

XX数据

根据项目确定

 

 

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月13日
下一篇 2020年11月13日

相关推荐