跳转至

串口升级工具使用说明

1. 概述

本文档为我司串口升级工具 PACK_UPDATE_TOOL.exe 使用说明书,该工具需要在Windows系统中运行,以图形界面方式在电脑上显示,用户可点击对应图标选择需要的功能,支持中英文显示芯片选型(CI110X / CI112X)界面切换等功能,方便快速打包生成固件,并配合USB串口设备帮助模块板更新固件程序。

下面从工具获取方式工具包含功能工具使用说明串口协议升级常见错误处理等几个方面展开介绍。


2. 工具获取方式

  1. 登录 ☞启英泰伦语音AI平台 获取,工具名称为:串口升级工具VXXX.rar。
  2. SDK包的工程目录下已存放该工具,如:CI11XX_SDK\tools\PACK_UPDATE_TOOL.exe。
  3. 在SDK包的工程目录下:双击(CI11XX_SDK\sample\internal\sample_xxx\firmware\打包升级.bat)文件也可以打开 PACK_UPDATE_TOOL.exe。

3. 工具包含功能

3.1. 主界面功能介绍

  • 双击运行 PACK_UPDATE_TOOL.exe (以下以V3.3.9版本为例进行介绍)可以看到下图所示主界面。

整体开发板

(1)芯片类别选择:选择芯片类别,有CI110X和CI112X。

(2)工具界面显示语言选择:选择显示的语言,有English和中文。

(3)固件打包:点击后进入固件打包页面。

(4)固件升级:点击后进入固件升级页面。

(5)检查版本:点击后检查串口升级工具的版本,联网可更新最新版本。

(6)退出工具:点击后退出该工具。

(7)按下“F1”查看帮助:离线查看串口升级工具更多说明。

3.2. 固件打包功能介绍

  • 点击主界面(固件打包)按钮,可以进入下图所示的固件打包页面。

整体开发板

(1)Config(固件基础信息配置)

  • 厂商编号:可填对应数字,或保持默认。
  • 产品编号:可填对应数字,或保持默认。
  • 硬件名称:可填中/英文,或保持默认。
  • 硬件版本:可修改成标记版本的数字,或保持默认。
  • 软件名称:可填中/英文,或保持默认,或保持默认。
  • 软件版本:可修改成标记版本的数字,或保持默认。

注意

打包生成的固件名,由软件名称和软件版本共同组成,例如 Firmware_V200.bin

(2)User(用户代码存放分区)

  • 文件路径:./user_code/user.bin。或点击右方省略图标,在工程目录(CI11XX_SDK\sample\internal\sample_xxx\firmware\user_code\)下选择user.bin。
  • 预留大小:按0x1000的整数倍增加减小,或保持默认。
  • 当前版本:user.bin的版本号,可保持默认。

(3)ASR(语言模型存放分区)

  • 文件路径:./asr/asr.bin。或点击右方省略图标,在工程目录(CI11XX_SDK\sample\internal\sample_xxx\firmware\asr\)下选择asr.bin。
  • 预留大小:按0x1000的整数倍增加减小,或保持默认。
  • 当前版本:asr.bin的版本号,可保持默认。

(4)DNN(声学模型存放分区)

  • 文件路径:./dnn/dnn.bin。或点击右方省略图标,在工程目录(CI11XX_SDK\sample\internal\sample_xxx\firmware\dnn\)下选择dnn.bin。
  • 预留大小:按0x1000的整数倍增加减小,或保持默认。
  • 当前版本:dnn.bin的版本号,可保持默认。

(5)Voice(播报音存放分区)

  • 文件路径:./voice/voice.bin。或点击右方省略图标,在工程目录(CI11XX_SDK\sample\internal\sample_xxx\firmware\voice\)下选择voice.bin。
  • 预留大小:按0x1000的整数倍增加减小,或保持默认。
  • 当前版本:voice.bin的版本号,可保持默认。

(6)UserFile(命令词信息表存放分区)

  • 文件路径:./user_file/user_file.bin。或点击右方省略图标,在工程目录(CI11XX_SDK\sample\internal\sample_xxx\firmware\user_file\)下选择user_file.bin。
  • 预留大小:按0x1000的整数倍增加减小,或保持默认。
  • 当前版本:User_File.bin的版本号,可保持默认。
  • 添加UserFile:不需要打包user_file.bin时可去掉勾选。

(7)ConsumerData(NVDATA数据存放分区)

  • 预留大小:按0x1000的整数倍增加减小,或保持默认。
  • Flash大小:现支持4M8M16M32M大小的FLASH。

(8)按钮功能

  • 芯片类别选择:选择CI110X或CI112X。
  • 恢复默认:将界面所有选项恢复到默认值。
  • 刷新地址:在修改各分区预留大小后,点击刷新地址,再打包固件。
  • 打包固件:在资源文件目录下生成固件文件。
  • 固件升级:切换到固件升级页面。
  • 上级目录:回到上级工具主界面。
  • 退出工具:退出工具。

3.3. 固件升级功能介绍

  • 点击主界面(固件升级)按钮,或固件打包页面的(固件升级)按钮,均可进入下图所示的固件升级页面。

整体开发板

(1)固件路径

  • 选择固件:选择固件所在路径。

(2)串口选择配置及升级进度条

  • COMX:选择USB串口使用的COM编号。
  • %X:固件升级进度百分比。
  • 白框:升级过程中文字提示。
  • 串口波特率选择:115200 / 230400 / 460800 / 921600 / 1000000 / 2000000。
  • COMX号选中框:在使用的COMX后选中即显示绿色的勾符号。

(3)鉴权文件

  • 鉴权文件:选中打勾后,会显示有几份鉴权文件。鉴权文件用于离在线连接云端时使用。
  • 路径:保持默认。或在工程目录选择(CI11XX_SDK\sample\internal\sample_xxx\firmware)。

注意

鉴权文件存放目录为:CI11XX_SDK\sample\internal\sample_xxx\firmware\authentication_file\valid\鉴权文件。

(4)加密

  • 加密:无标准加密自定义加密算法。
  • 密码/路径:当加密方式选择标准加密时,这里填写密码。当选择自定义加密算法时,这里选择算法文件路径。

(5)工具版本信息

  • 包含工具版本号,SPI分区信息。

(6)按钮功能

  • 强制更新所有分区:勾选后,会更新所有分区。不勾选,会自动检查只更新改动的部分。
  • 擦除NV:勾选后,升级时会把FLASH里的NV信息擦除。
  • 全选:User_File.bin的版本号,可保持默认。
  • 芯片类别选择:CI110XCI112X。
  • 上级目录:退回到上级界面。
  • 退出工具:退出工具。

4. 工具使用说明

4.1. 固件打包

  • 第一步:进入如下图所示固件打包界面,填写Config配置信息,使用默认固件分区信息区内容。

整体开发板

  • 第二步:点击上图中(打包固件)按钮,打包成功会显示下列提示框。

整体开发板

点击(打包固件)按钮后,若出现其他错误提示框,请查看(第6章-常见错误处理)解决问题。

4.2. 固件升级

  • 第一步:进入如下图所示固件升级界面。

整体开发板

  • 第二步:配置以下信息。

(1)选择固件:查找需要下载的固件,默认为4.1节打包完成的固件。

(2)鉴权文件:离线SDK一般不用,离在线SDK需要时请参考本文档4.3节。

(3)加密:参照SDK文档 ☞《FLASH加密功能使用说明》

(4)密码/路径:用标准加密时点击“眼睛”图标显示密码。用自定义加密算法时才能打开“…”路径。

(5)强制更新所有分区:强制更新bootloader等所有分区。不勾选则只更新改动部分。

(6)擦除NV:擦除原来FLASH存储的NV数据,默认选中。

(7)全选:当进行大量升级时,可选中所有串口。

  • 第三步:连接硬件。

(1)进行到这里时需给板子连线,插上麦克风,SDK默认配置UART0为升级串口,USB的TX连接语音板子的RX0,USB的RX连接语音板子的TX0,USB的GND连接语音板子的GND,用跳线帽或杜邦线短接PG_EN脚到3.3V,进入升级模式。

(2)在对应COM编号后,可修改串口波特率,这里使用默认的921600,在对应COM编号后的蓝色框上打钩,选中串口。

(3)准备好上述步骤,使用冷启动方式,即将USB的5V接到板子供电5V接口上,上电即可下载程序。下载成功界面如下图所示。

整体开发板

4.3. 鉴权文件

  • 离线SDK一般不用,离在线SDK需要。打开串口工具 **PACK_UPDATE_TOOL.exe**后,会生成一个空目录(authentication_file\vaild),可以将鉴权文件放在里面。

(1)当authentication_file\vaild目录下无鉴权文件时,在升级固件界面,点击“鉴权文件”后的蓝色框,是下列结果,显示0份鉴权文件,且提示没有可用的鉴权文件。

整体开发板

整体开发板

(2)如需使用鉴权文件,把鉴权文件存放在authentication_file\valid目录内,规定鉴权文件总大小不能超过4K。存放3个鉴权文件到authentication_file\valid目录后,点击“鉴权文件”后面的蓝色框,是下列结果。同时会在authentication_file目录下自动生成invalid空目录。

整体开发板

(3)升级完成后,鉴权文件界面会显示”0份鉴权文件”,表示刚刚的鉴权文件已经烧录成功,且valid目录下鉴权文件会被移动到invalid目录。


5. 串口协议升级

  • 串口协议升级,是除了冷启动方式外的另外一种升级方式。即设备未断电时,直接勾选串口工具 PACK_UPDATE_TOOL.exe 升级界面对应串口号,完成快速升级,而无需硬件冷启动。下面详细介绍这种升级方式使用步骤。

5.1. 配置介绍

  • 打开升级工具 PACK_UPDATE_TOOL.exe 后,会生成config.ini配置文件,该文件为升级工具的一些默认配置信息。用代码编辑器打开config.ini配置文件,找到下列代码位置。
[UPDATE]
reset-command =                  //串口协议命令
send-reset-baudrate =            //串口协议波特率
  • 两条命令的主要功能是:将串口协议填写在升级工具配置文件config.ini中,通过升级工具,给板子发送串口协议复位命令,达到重新上电升级的效果。具体使用参考步骤4.4.2。

  • SDK默认配置如下:

(1)UART0:升级接口日志打印接口。

(2)UART1:串口协议接口。

5.2. 使用说明

  • 第一步:修改代码(目录:CI11XX_SDK\sample\internal\sample_xxx\src\user_config.h)。

(1)打开工程代码,修改user_config.h,让UART0不仅作为升级接口,也作为串口协议接口。

#define UART_PROTOCOL_NUMBER    (HAL_UART0_BASE)    //串口协议接口选择UART0

(2)在user_config.h,添加宏,修改日志打印接口为UART1或UART2。

#define CONFIG_CI_LOG_UART      HAL_UART1_BASE      //或者HAL_UART2_BASE

(3)修改完成,重新编译代码。先按照4.2步骤的冷启动方式给板子升级程序,使当前板子支持串口协议升级方式。

  • 第二步:修改配置文件config.ini。

(1)用代码编辑器打开config.ini配置文件,补充下列代码等号后面的值,保存。

[UPDATE]
reset-command = A5 FC 05 00 A1 95 04 01 00 00 00 00 3B 01 FB     //复位命令
send-reset-baudrate = 9600 //该波特率与user_config.h的宏UART_PROTOCOL_BAUDRATE值一致

(2)现在就可以实现,设备未断电,只需在升级工具选中串口,就能升级的功能了。

注意

在板子未断电时,运用这种方式升级,是没有欢迎词播报的,只有重新上电才有欢迎词播报。


6. 常见错误处理

6.1. 分区User:无法打开文件或文件不存在,请检查路径!

  • 如果出现下列提示,一般表示程序还未编译,没有生成user.bin。

整体开发板

  • 关于CI110X如何编译,请参考SDK文档 ☞《CI110X SDK Quick Start》(4.3节烧录方式-步骤2)。

  • 关于CI112X如何编译,请参考SDK文档 ☞《CI112X SDK Quick Start》(4.3节烧录方式-步骤2)。

  • 完成编译后,会在CI11XX_SDK\internal\sample_xxx\firmware\user_code目录下生成应用代码的user.bin。

6.2. 分区ASR:无法打开文件或文件不存在,请检查路径!

  • 如果出现下列提示,表示还没有通过(批量处理工具)生成asr.bin等其他文件。

整体开发板

6.3. 分区User:文件过大,超出预留大小!

  • 如果出现下列分区相关提示,一般需修改User分区预留大小。

整体开发板

  • 假如实际User分区需求为0x28046,预留只有0x26000,可修改增加0x3000预留为0x29000,选择另外一个其他分区(或DNN或ASR或Voice)对应减少0x3000。

  • 预留大小按照0x1000的整数倍进行配置,配置预留大小后需要刷新地址。

  • 如果客户制作的命令词很多,则一般需要增加UserFile分区预留大小。

  • 如果所有分区都已调到极限,还是不够,那说明FLASH大小不能满足需求,要么更换更大的FLASH,要么精简某些分区资源。更换Flash后,根据Flash型号修改Flash大小。