
1.1 简介
KT803C是一个提供串口的语音芯片,的集成了MP3、WAV的硬解码。同时软件支持工业级别的串口通信协议,以SPIFLASH作为存储介质。通过简单的串口指令即可完成播放指定的语音,以及如何播放语音等功能,无需繁琐的底层操作,使用方便,稳定可靠是此款产品的最大特点。无需任何烧录器,无需任何软件,USB直接烧写FLASH。同时支持串口直接下载语音
KT803C芯片只是基于KT404A芯片开发出来的单独一个软件版本,用以满足串口下载语音的需求
1.2 功能1、支持采样率(KHz):8/11.025/12/16/22.05/24/32/44.1/48
2、24位DAC输出,动态范围支持90dB,信噪比支持85dB
3、最大支持16M字节的SPIFLASH。例如W25Q16[2M字节]、W25Q128[16M字节]
4、Miniusb接口更新语音文件,无需安装任何软件。支持XP和WIN7系统。
5、30级音量可调。支持外挂多种类型的功放,如3W、5W、10W等等
6、支持用户直接单片机窗口下载语音,按照我们给出的协议。满足远程更换声音的需求,常见的如蓝牙、wifi、4G等等无线方案来轻松的更换声音
7、存储的语音文件可以很方便的通过串口进行动态更新。适用于一些短声音文件,以及小文件
1.3 应用1、 车载导航语音播报
2、 公路运输稽查、收费站语音提示;
3、 火车站、汽车站安全检查语音提示;
4、 电力、通信、金融营业厅语音提示;
5、 车辆进、出通道验证语音提示;
6、 公安边防检查通道语音提示;
8、 电动观光车安全行驶语音告示;
9、 机电设备故障自动报警;
10、消防语音报警提示;
1. 方案说明芯片选用的是SOC方案,集成了一个16位的MCU,以及一个专门针对音频解码的aDSP,采用硬解码的方式,更加保证了系统的稳定性和音质。小巧的封装尺寸更加满足嵌入其它产品的需求
2.1 参数说明名称 | 参数 |
MP3文件格式 | 1、支持所有比特率11172-3和ISO13813-3 layer3音频解码 |
2、采样率支持(KHZ):8/11.025/12/16/22.05/24/32/44.1/48 | |
3、支持Normal、Jazz、Classic、Pop、Rock等音效 | |
USB接口 | 2.0标准 |
UART接口 | 标准串口,TTL电平,波特率可设[用户不可设] |
输入电压 | 3.7V-5.2V[7805后级串一个二极管为最佳] |
额定电流 | 10MA[静态] |
低功耗电流 | <200uA |
功放功率 | 负载32欧姆0.25W[只支持驱动耳机][不支持直接驱动喇叭] |
尺寸 | 参见封装章节 |
工作温度 | [-40度] -- [80度] |
湿度 | 5% ~ 95% |
主芯片型号 | KT803C[SSOP24] |
2.2 管脚说明引脚序号 | 引脚名称 | 功能描述 | 备注 |
1 | DACL | 左声道 |
|
2 | DACR | 右声道 |
|
3 | 3V3 | 3.3V稳压输出 |
|
4 | VIN | 电源输入 | 3.3V-5.6V |
5 | GND | 电源地 |
|
6 | TX | 通用输入输出口 | TTL电平 |
7 | RX | 通用输入输出口 | TTL电平 |
8 | GPIOA7 | 晶振输入 |
|
9 | SPICS | 晶振输出 |
|
10 | BUSY | 通用输入输出口 |
|
11 | SPIDO | 通用输入输出口 |
|
12 | SPISCK | 通用输入输出口 |
|
13 | GPIOA0 | 通用输入输出口 |
|
14 | GPIOA1 | 通用输入输出口 |
|
15 | GPIOA2 | 通用输入输出口 |
|
16 | GPIOA3 | 通用输入输出口 |
|
17 | GPIOA4 | 通用输入输出口 |
|
18 | GPIOA5 | 通用输入输出口 |
|
19 | GPIOA6 | 通用输入输出口 |
|
20 | USB- | 通用输入输出口 |
|
21 | USB+ | 通用输入输出口 |
|
22 | NC | NC | 空脚 |
23 | VCOM | DAC的参考电压 | DAC的参考电压 |
24 | DACVSS | DAC的输出地 | DAC的输出地 |
(1)、只要需要外接喇叭的应用,即使是0.5W的,也是需要外加功放的
(2)、DACL和DACR只能推动耳机,是芯片内部自己产品的音频信号,就像电脑的音频接口一样。

2.3测试简述1、用户拿到芯片之后,可以直接插上USB线缆,对芯片进行下载语音,正常,插入USB线之后,电脑会显示如U盘插入一样的窗口。并且电脑会自动安装USB驱动,无需用户关心
2、如果下载语音完成之后,有两种选择测试
(1)、用户可以直接拔掉USB线缆,再供电测试[注意不要插入电脑],相当于对芯片进行一次重启。[建议这样测试]
(2)、下载完声音之后,可以直接使用外接电源或者USB充电头来供电测试
3、进入工作状态之后,就可以按照我们的按键表格,来进行芯片的简单测试了
4、如果用户需要简单的测试一下音质效果,搭建好电路之后,在芯片的第4脚,连接一个按键[微动开关]到地,按一下芯片就会播放下一段声音,再按会继续播放下一段声音,在整个存储介质里面循环
2.4下文的概念解析1、分区的概念
(1)、由于我们将spiflash默认的分为了两个区间,所以下文会提到,第一分区和第二分区的概念.
(2)、其中第一分区指的是可以通过USB下载固定语音的部分空间
(3)、其中第二分区指的是通过串口动态更新的部分空间
(4)、两个空间相互独立,互不干扰,可以分别控制,也可以统一控制,详见下文的介绍
2、串口下载
详细的请参考另外一份文档“串口下载流程分析”
3. 串口通讯协议串口作为一种在控制领域常用的通信,我们进行了工业级别的优化,加入的帧的校验、重发、错误处理等措施,大大加强通信的稳定性和可靠性,串口的通信波特率默认为115200,不可再设置
3.1 通讯格式支持异步串口通讯模式,通过串口接受上位机发送的命令 停止位 :1 | ||
格式:$S VER Len CMD Feedback para1 para2 checksum $O | ||
1 | 0x7E | 起始标记 |
2 | CMD | 命令字节 |
3 | lenH | 包的序号--高字节 |
4 | lenL | 包的序号--低字节 |
..... | DAT | 数据区 |
结束 | 0xEF | 结束标志 |
举个例子,如果我们指定播放SPIFLASH,就需要发送:7E A5 00 02 00 01 EF
数据长度为2 ,这2个字节分别是[00 01] 。代表是指定第一分区的第一段语音播放
3.2 通讯指令我们的通讯分为以下两大块
n 控制指令
n 查询芯片的参数以及状态
3.2.1 控制指令CMD命令 | 对应的功能 | 参数(16位) |
0x01 | 下一曲 |
|
0x02 | 上一曲 |
|
0x03 | 指定曲目(NUM) | 详见3.4.1 |
0x04 | 音量+ |
|
0x05 | 音量- |
|
0x06 | 指定音量 | 详见3.4.2 |
0x0C | 芯片复位 | 任何状态有效 |
0x0D | 播放 |
|
0x0E | 暂停 |
|
0x0F | 指定文件夹文件名播放 | 暂不开放 |
0x16 | 停止 |
|
0x17 | 指定文件夹循环播放 | 暂不开放 |
0x19 | 对当前播放的曲目设置为循环播放 | 暂不开放 |
0x21 | 组合播放 | 暂不开放 |
0x25 | 多文件夹插播 | 暂不开放 |
0x28 | 指定文件夹随机播放 | 暂不开放 |
0xA5 | 指定第一分区播放 | 详见3.4.1 |
0xA6 | 指定第二分区播放 | 详见3.4.2 |
0xA0 | 开始下载的起始指令 | 详见“串口下载完整说明” |
0xA1 | 下载的有效数据指令 | 详见“串口下载完整说明” |
0xA2 | 应答信息 | 详见“串口下载完整说明” |
0xA3 | 当前的文件下载完毕 | 详见“串口下载完整说明” |
3.2.2 查询指令这里是查询芯片的状态和相关的参数
CMD命令详解(查询) | 对应的功能 | 参数(16位) |
0x3C | 保留 |
|
0x3D | 保留 |
|
0x3E | 保留 |
|
0x3F | 查询初始化的状态 | 详见3.5.1 |
0x40 | 返回错误,请求重发 |
|
0x41 | 应答 |
|
0x42 | 查询当前状态 | 详见3.4.10 |
0x43 | 查询当前音量 |
|
0x49 | 查询FLASH的总文件数 | 5个文件夹的总文件数 |

