最新发布的VC系列离线语音模组,将离线识别算法芯片架构深度融合,为客户提供超低成本的离线语音识别方案。

VC系列离线语音模组可广泛且高效地应用于智能家居领域,如各类智能小家电,86盒,智能玩具,智能照明灯等需要语音操控的产品。

lQLPJxZrknKqi_zM2c0BgrBn-KqStq2upgKxT_eTQPgA_386_217.png

一、准备工具
二、模组出厂固件使用
三、开发板出厂固件使用
四、语音控制流程

VC系列一共有2款模组及对应开发板,开发板的出厂固件和模组的出厂固件是不相同的。

微信图片_20220620100103.png
一、
准备工具
1.通讯接口连接

如果是使用模组进行串口连接的话,建议使用如下接口进行通讯:RX1、TX1。

微信图片_20220620100036.png

如果使用开发板,直接用USB 口调试即可,模组与单片机或者TTL模块连接示意:

微信图片_20220620100053.png
(注意TX1和RX1不要接反)
UART1默认的串口配置:

  • 波特率:115200

  • 数据位:8

  • 停止位:1

  • 校验位:None

  • 流控制:None

UART0(TX0:IOB8)Log 输出配置

  • 波特率:57600

  • 数据位:8

  • 停止位:1

  • 校验位:None

  • 流控制:None

2.开发板硬件说明

VC-01和VC-02共用一款底板:

微信图片_20220620100238.png
3.烧录说明
VC系列一共有两种烧录方式:

  • JTAG调试器烧录

JTAG调试器烧录方式,需使用专用的JTAG调试器,烧录完整的固件,使用的软件是:UniOneDownloadTool.exe, 一般固件的文件名为:uni_app_release.bin



  • 串口烧录

串口烧录的方式使用TTL模块进行固件升级,对模块没有任何要求,使用的软件是:UniOneUpdateTool.exe,一般固件的文件名为:uni_app_release_update.bin


两种烧录方式会在下面进行详细的介绍:
(1)JTAG烧录接线及烧录介绍

JTAG 烧录方式只能使用专用的JTAG调试器,可通过安信可淘宝店购买套件。(不支持使用J-link D9A2BBE9-971C-46d7-AC24-4CA3B65F25D9.png

JTAG调试器与VC系列的连接如下:

微信图片_20220620111259.png

连接好之后,把调试器插入电脑(调试器需要安装驱动,安装教程请看:Hummingbird-M-Production-Tool/M_Download_Tool_User_Guide.pdf(在SDK文件夹中查找此文件),打开UniOneDownloadTool.exe:

微信图片_20220620102020.png
烧录过程:
微信图片_20220620102037.gif
2)UART串口升级接线及烧录介绍

串口烧录的接线和通讯方式的接线相同,烧录的固件有些重点需要注意,小心模块变砖!!!


  • 首次烧录必须先烧录“uni_hb_m_solution\image_demo\Hummingbird-M-Update-Tool”下的uni_app_release.bin 或 uni_app_debug.bin 固件。(出厂固件已烧录)

  • 烧录的固件必须是使用 build.sh update指令生成的uni_app_release_update.bin

  • 注意!烧录工具只能使用:
    UniOneUpdateTool.exe

下面就开始延时烧录过程:
微信图片_20220620111530.gif

微信图片_20220620102054.png
(注意:所有端口号成功打开时,背景颜色会是黄色的)
二、
模组出厂固件使用
1.指令词及指令码

模组出厂固件中,默认写入了一些通用的指令及其对应的指令码。

微信图片_20220620102113.png
2.指令码说明

每个指令码的都代表了VC当前所识别的指令,指令中的含义:以 “0x5a 0x00 0x00 0x00 0x5a” 为例

微信图片_20220620102122.png
起始位:为固定值:0x5a
指令序号:代表唯一的指令:0x00为唤醒词的序号
保留位1:固定值为:0x00
保留位2:固定值为:0x00
校验位:前四位的异或值,0x5aXOR0x00XOR0x00XOR0x00=0x5a
三、
开发板出厂固件使用

开发板出厂固件的指令词和模组的一样,只是加入了LED控制功能及按键唤醒功能:

微信图片_20220620102131.png
四、
语音控制流程
微信图片_20220620102142.png
其它说明
开发板出厂固件使用

出厂固件已经具备一些实用指令,单片机可以根据对应的指令码做相应的处理。指令码最重要的一个字节就是校验位,在C语言中可以这么做:









//假如判断唤醒:0x5a 0x00 0x00 0x00 0x5achar start_bit=0x5a;char cmd_num_bit=0x00;char temp_num1_bit=0x00;char temp_num2_bit=0x00;//计算校验位char check_bit=start_bit^cmd_mun_bit^temp_num1_bit^temp_num2_bit;