CN114860278A - 一种语音芯片ota升级方法 - Google Patents
一种语音芯片ota升级方法 Download PDFInfo
- Publication number
- CN114860278A CN114860278A CN202210426004.0A CN202210426004A CN114860278A CN 114860278 A CN114860278 A CN 114860278A CN 202210426004 A CN202210426004 A CN 202210426004A CN 114860278 A CN114860278 A CN 114860278A
- Authority
- CN
- China
- Prior art keywords
- firmware
- upgrading
- voice chip
- ota
- configuration information
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000005192 partition Methods 0.000 claims abstract description 38
- 230000005540 biological transmission Effects 0.000 claims abstract description 34
- 238000012795 verification Methods 0.000 claims abstract description 10
- 238000004891 communication Methods 0.000 claims abstract description 9
- 238000005516 engineering process Methods 0.000 claims description 5
- 238000012790 confirmation Methods 0.000 claims description 2
- 238000012858 packaging process Methods 0.000 claims description 2
- 239000002699 waste material Substances 0.000 abstract description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/66—Updates of program code stored in read-only memory [ROM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1441—Resetting or repowering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
一种语音芯片OTA升级方法,包括如下步骤:步骤1.将用于升级的软件打包成固件,所述固件由多个固件块组成;步骤2.服务器通过发送OTA升级指令给无线传输模块,无线传输模块确认收到升级指令后随即对语音芯片进行软复位,使语音芯片工作状态切换至开始运行芯片引导程序;步骤3.建立串口通信并传输OTA升级代理信息,传输完成后通过校验,无线传输模块与语音芯片的升级代理程序建立串口通信;步骤4.进行分区升级,并将服务器端的配置信息更新到语音芯片中。本发明通过传输OTA升级代理的方式减少了启动程序占用语音芯片设备内存空间的大小;可以精确下载更新的固件块,避免整包下载中的带宽浪费和无效传输。
Description
技术领域
本发明属于语音技术领域,具体涉及一种语音芯片OTA升级方法。
背景技术
人工OTA(英文全称:Over the Air Technology)空中下载技术。是指通过网络(例如:WIFI、蓝牙、2G/3G/4G/5G等)下载升级包,进行软件更新。以达到降低维护成本和提供更加完善的功能。当前主流OTA升级方式分为:整块升级和差分包升级。
现有的OTA升级技术中有如下问题:
1.OTA服务器仅仅管理固件和版本,不具有比较每个设备特征信息的功能,例如对于某款语音AI芯片的产品(语音空调)如果需要优化识别“打开空调”这一语音命令,将方言识别更新进现有固件中,按照以往方式,需要区分出四川话和广东话需要大量人力去确认设备信息并且匹配对应固件。
2.目前通用的OTA升级方式方案采用整体和差分包升级。差分包升级方式是在PC上进行差分制作,终端设备根据差分算法、差分包和之前固件对比生成新的固件,但这里需要足够的ROM空间放置差分包所生成的新固件。对于终端AI芯片来说,会加大成本。
3.未对固件进行分块,导致如果写FLASH错误,需要重新加载备份区域固件。
4.未能根据需要选择性备份,目前传统方式都是完全备份所有FLASH,导致FLASH利用率低下 ,例如 16M FLASH如果采用全备份方式,实际可用区域可能只有8M。
发明内容
为解决现有技术的缺陷,节省存储空间,提高存储器利用率,降低硬件成本,提高OTA升级效率,本发明公开了一种语音芯片OTA升级方法。
本发明所述
采用本发明所述语音芯片OTA升级方法,具有如下技术优越性:
1.通过传输OTA升级代理的方式减少了启动程序占用语音芯片设备内存空间的大小;
2.语音芯片设备通过读取本机FLASH和服务器中固件的配置信息进行分区升级,可以精确下载更新的固件块,避免整包下载中的带宽浪费和无效传输;
3.对升级的固件块进行校验,并和服务器端对应固件块的校验值对比,避免升级错误导致全部加载所有备份区软件,节省FLASH空间,降低开发成本。
附图说明
图1为本发明所述语音芯片OTA升级方法的一种具体实施方式示意图。
具体实施方式
下面对本发明的具体实施方式作进一步的详细说明。
本发明所述语音芯片OTA升级方法,包括以下步骤:
步骤1.将软件打包成固件,所述固件由多个固件块组成,打包过程中使用配套的打包工具在各固件块中设定一个配置信息存储固件块,将固件块的自身信息存储在配置信息存储固件中;
步骤2.服务器端通过无线传输模块通信发送OTA升级指令给无线传输模块,无线传输模块确认收到升级指令后随即对语音芯片进行软复位,使语音芯片工作状态切换至开始运行芯片引导程序(bootloader);无线传输模块可以为WIFI模块或蓝牙模块
步骤3.无线传输模块再次与语音芯片的芯片引导程序建立串口通信并传输OTA升级代理信息,传输完成后通过校验,无线传输模块与语音芯片的升级代理程序(updater)建立串口通信;
步骤3中设备固件升级可以具体为:
服务器发送升级信号,无线传输模块读取固件的存储起始地址和固件大小,随后设备开始擦除以起始地址为起点且大小相符的存储区域,随后将通过HTTP方式下载得到的数据写入擦除后的地址,写入完成后,设备向服务器发送升级结束信号。
步骤4.读取语音芯片自身固件和服务器端待升级固件的固件配置信息,并进行比对,符合要求则进行分区升级,并将服务器端的配置信息更新到语音芯片中;所述固件配置信息存储在固件的配置信息存储固件块中。
所述固件配置信息包括固件块性质、版本号、分块大小、起始地址和校验结果值。
在服务器和设备中均按照相同方式对软件进行打包形成固件,每个固件由多个分区固件块组成,需要在固件中划分一个分区表作为配置信息表用于存储配置的具体信息,包括软件版本信息、硬件版本信息、各分区版本号、分区大小、分区起始FLASH地址、分区CRC(循环冗余校验)校验值和分区表检验和值(checksum)。
一个优选实施方式中,语音芯片中包括存储固件内容相同的用户代码存放区固件和用户代码备份区固件 ,步骤4中 ,首先升级用户代码存放区固件 ,如果该固件升级不成功 , 则在语音芯片重新上电时将用户代码备份区的固件重新加载在用户代码存放区 ,如果升级成功 ,则继续升级用户代码备份区固件。
一个典型的具体实施方式如下文所述:
11.软件发布人员通过打包工具将已打包好的待升级固件上传到服务器,并发送固件升级指令到无线传输模块,由无线传输模块创建OTA升级任务;
12.先从服务器端拉取待升级固件的分区表,然后复位语音芯片,使语音芯片运行芯片引导程序,建立通信;
13.无线传输模块向语音芯片发送升级代理程序的运行起始地址、大小和分区CRC(循环冗余校验)校验值信息,传输升级代理固件,发送校验指令使语音芯片校验收到的升级代理程序固件并与前面收到的CRC校验值对比,通过则运行升级代理程序;
14.无线传输模块与语音芯片的升级代理程序通信成功后设置无线传输模块与语音芯片的串口通信波特率为高速波特率;波特率即为串口之间每秒钟传输二进制的位数,如可以取高速波特率200万bits;
15.无线传输模块获取语音芯片的分区表信息并与步骤12中从服务器拉取的分区表对比确认需要更新的分区块,对配置信息不同的分区块进行升级,例如分区块1的配置信息不同,则需升级分区块1;
16.如果有需要升级的分区则先更新语音芯片的分区表:发送分区表起始地址(表示存储该固件的起始FLASH地址)、大小、CRC,语音芯片收到消息并返回确认,无线传输模块再发送擦除指令,语音芯片随即根据起始地址和大小进行FLASH擦除。无线传输模块开始发送分区表,完成后发送校验指令,校验通过则进行下一步升级,不过则反馈校验失败,复位重启等待下一次OTA升级;其中语音芯片有两份相同的分区表,若第一份更新后校验失败,在复位后使用备份分区表,保障固件的运行;
所述配置信息存储固件块中存储有根据CRC16算法得到的校验和,对完成升级的固件块计算其校验和,将其与WIFI传输时计算并存储在配置信息存储固件块中的校验和比较一致则校验合格,否则表示升级不成功;升级不成功则复位后再次升级,直至升级成功;
17.按照步骤16的方式更新语音芯片备份分区表;
18.更新待升级的分区块:流程和步骤16类似,其中分区块的信息和固件均采用http断点续传技术从服务器端获取;
19.升级完成后,复位无线传输模块和语音芯片,OTA升级结束。
采用本发明所述语音芯片OTA升级方法,具有如下技术优越性:
1.通过传输OTA升级代理的方式减少了启动程序占用语音芯片设备内存空间的大小;
2.语音芯片设备通过读取本机FLASH和服务器中固件的配置信息进行分区升级,可以精确下载更新的固件块,避免整包下载中的带宽浪费和无效传输;
3.对升级的固件块进行校验,并和服务器端对应固件块的校验值对比,避免升级错误导致全部加载所有备份区软件,节省FLASH空间,降低开发成本。
前文所述的为本发明的各个优选实施例,各个优选实施例中的优选实施方式如果不是明显自相矛盾或以某一优选实施方式为前提,各个优选实施方式都可以任意叠加组合使用,所述实施例以及实施例中的具体参数仅是为了清楚表述发明人的发明验证过程,并非用以限制本发明的专利保护范围,本发明的专利保护范围仍然以其权利要求书为准,凡是运用本发明的说明书及附图内容所作的等同结构变化,同理均应包含在本发明的保护范围内。
Claims (9)
1.一种语音芯片OTA升级方法,其特征在于,包括如下步骤:
步骤1.将用于升级的软件打包成固件,所述固件由多个固件块组成,打包过程中设定配置信息存储固件块,将固件块的自身信息作为固件配置信息存储在配置信息存储固件块中;
步骤2.服务器通过发送OTA升级指令给无线传输模块,无线传输模块确认收到升级指令后随即对语音芯片进行软复位,使语音芯片工作状态切换至开始运行芯片引导程序;
步骤3.无线传输模块与语音芯片的芯片引导程序建立串口通信并传输OTA升级代理信息,传输完成后通过校验,无线传输模块与语音芯片的升级代理程序建立串口通信;
步骤4.读取语音芯片自身固件和服务器端待升级固件的固件配置信息,并进行比对,符合要求则进行分区升级,并将服务器端的配置信息更新到语音芯片中;所述固件配置信息存储在固件的配置信息存储固件块中。
2.如权利要求1所述的语音芯片OTA升级方法,其特征在于,所述固件配置信息包括固件块性质、版本号、分块大小、起始地址和校验结果值。
3.如权利要求1所述的语音芯片OTA升级方法,其特征在于,所述步骤4中,所述比对的具体方式为: 无线传输模块获取语音芯片的分区表信息并与步骤12中从服务器拉取的分区表对比确认需要更新的分区块,对配置信息不同的分区块进行升级。
4.如权利要求3所述的语音芯片OTA升级方法,其特征在于,所述步骤4中,升级过程具体为:
如果有需要升级的分区则先更新语音芯片的分区表:发送分区表起始地址、大小、CRC,语音芯片收到消息并返回确认,无线传输模块发送擦除指令,语音芯片随即根据起始地址和大小进行FLASH擦除;
无线传输模块开始发送分区表,完成后发送校验指令,校验通过则进行下一步升级,不过则反馈校验失败,复位重启等待下一次OTA升级。
5.如权利要求1所述的语音芯片OTA升级方法,其特征在于,所述步骤2中,确认收到升级指令的具体方式为:
无线传输模块向语音芯片发送升级代理程序的运行起始地址、大小和CRC校验值信息,传输升级代理固件,发送校验指令使语音芯片校验收到的升级代理程序固件并与前面收到的CRC校验值对比,通过则运行升级代理程序。
6.如权利要求1所述的语音芯片OTA升级方法,其特征在于,所述步骤4的升级过程中,分区块的信息及固件均采用http断点续传技术从服务器端获取。
7.如权利要求1所述的语音芯片OTA升级方法,其特征在于,语音芯片中包括存储固件内容相同的用户代码存放区固件和用户代码备份区固件 ,步骤4中 ,首先升级用户代码存放区固件 ,如果该固件升级不成功 , 则在语音芯片重新上电时将用户代码备份区的固件重新加载在用户代码存放区 ,如果升级成功 ,则继续升级用户代码备份区固件。
8.如权利要求1所述的语音芯片OTA升级方法,其特征在于,配置信息存储固件块中存储有根据CRC16算法得到的校验和,所述步骤4中,还包括升级成功判断过程,具体为:对完成升级的固件块计算其校验和,将其与存储的校验和比较一致则校验合格,否则表示升级不成功。
9.如权利要求1所述的语音芯片OTA升级方法,其特征在于,所述无线传输模块为WIFI模块或蓝牙模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210426004.0A CN114860278A (zh) | 2022-04-22 | 2022-04-22 | 一种语音芯片ota升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210426004.0A CN114860278A (zh) | 2022-04-22 | 2022-04-22 | 一种语音芯片ota升级方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114860278A true CN114860278A (zh) | 2022-08-05 |
Family
ID=82633017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210426004.0A Pending CN114860278A (zh) | 2022-04-22 | 2022-04-22 | 一种语音芯片ota升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114860278A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115840410A (zh) * | 2023-02-22 | 2023-03-24 | 合肥芯荣微电子有限公司 | 一种硬件可编程音频芯片、系统及在线升级方法 |
CN117560285A (zh) * | 2024-01-08 | 2024-02-13 | 河北普兰特生物科技有限公司 | 一种智控物联整机ota升级方法、客户端及服务端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160117166A1 (en) * | 2012-01-12 | 2016-04-28 | Facebook, Inc. | Multiple system images for over-the-air updates |
CN106201586A (zh) * | 2016-06-28 | 2016-12-07 | 青岛海信移动通信技术股份有限公司 | 一种基于ota的系统升级方法及终端、系统 |
CN106293824A (zh) * | 2016-08-04 | 2017-01-04 | 青岛海信电器股份有限公司 | 一种从处理芯片升级的方法及装置 |
CN111769962A (zh) * | 2019-04-01 | 2020-10-13 | 成都启英泰伦科技有限公司 | 一种mcu固件ota升级方法 |
CN112230951A (zh) * | 2020-09-24 | 2021-01-15 | 易兆微电子(杭州)股份有限公司 | 一种基于bnep蓝牙实现鼠标ota升级系统及其升级方法 |
-
2022
- 2022-04-22 CN CN202210426004.0A patent/CN114860278A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160117166A1 (en) * | 2012-01-12 | 2016-04-28 | Facebook, Inc. | Multiple system images for over-the-air updates |
CN106201586A (zh) * | 2016-06-28 | 2016-12-07 | 青岛海信移动通信技术股份有限公司 | 一种基于ota的系统升级方法及终端、系统 |
CN106293824A (zh) * | 2016-08-04 | 2017-01-04 | 青岛海信电器股份有限公司 | 一种从处理芯片升级的方法及装置 |
CN111769962A (zh) * | 2019-04-01 | 2020-10-13 | 成都启英泰伦科技有限公司 | 一种mcu固件ota升级方法 |
CN112230951A (zh) * | 2020-09-24 | 2021-01-15 | 易兆微电子(杭州)股份有限公司 | 一种基于bnep蓝牙实现鼠标ota升级系统及其升级方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115840410A (zh) * | 2023-02-22 | 2023-03-24 | 合肥芯荣微电子有限公司 | 一种硬件可编程音频芯片、系统及在线升级方法 |
CN117560285A (zh) * | 2024-01-08 | 2024-02-13 | 河北普兰特生物科技有限公司 | 一种智控物联整机ota升级方法、客户端及服务端 |
CN117560285B (zh) * | 2024-01-08 | 2024-04-09 | 河北普兰特生物科技有限公司 | 一种智控物联整机ota升级方法、客户端及服务端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114860278A (zh) | 一种语音芯片ota升级方法 | |
US5887254A (en) | Methods and apparatus for updating the software of a mobile terminal using the air interface | |
CN110096294B (zh) | 一种可任意断点无线升级mcu应用程序的方法 | |
CN111769962A (zh) | 一种mcu固件ota升级方法 | |
CN103077058B (zh) | 一种安装应用程序的方法及装置 | |
CN110730104A (zh) | 一种mesh网络设备的多设备批量固件升级的方法 | |
CN104899065A (zh) | 一种可批量软件在线恢复与软件在线升级的方法和系统 | |
US20120117557A1 (en) | Method and system for upgrading wireless data card | |
CN109358887B (zh) | 一种单片机程序的在线升级方法、装置及系统 | |
CN106406935A (zh) | 一种蓝牙芯片ota升级的方法和蓝牙芯片 | |
CN111813428A (zh) | 终端固件的升级方法、装置、电子设备及存储介质 | |
CN110086885A (zh) | 空间下载技术的升级包下载方法及装置、存储介质和终端 | |
CN102004657B (zh) | 一种电子设备及其升级方法 | |
CN109951842B (zh) | 一种蓝牙固件升级中保留ble名称及mac地址的方法 | |
CN114281394A (zh) | 一种快速在线升级程序的方法、系统、设备及介质 | |
CN108446130A (zh) | Ota升级方法 | |
CN112181455B (zh) | 微控制器的在线升级方法、微控制器及存储介质 | |
KR20210041972A (ko) | 차량 ecu 소프트웨어 업데이트 장치 | |
CN108153548A (zh) | 一种emmc固件升级方法和装置 | |
CN110769411B (zh) | 稳定实现终端设备的批量ota升级方法、装置、设备及系统 | |
CN113778739B (zh) | 一种一体机的系统修复方法、系统、设备及存储介质 | |
CN106130771B (zh) | 一种基于带内以太网络在线升级flash的方法 | |
CN113138788A (zh) | 空调程序升级方法及空调系统 | |
CN110704080A (zh) | 一种通过Wi-Fi模块给蓝牙模块升级的方法 | |
CN116700765A (zh) | 伺服驱动器的固件升级方法及装置、伺服驱动器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |