欢迎光临~广州悦欣电子科技有限公司
服务热线全国服务热线:

18925103846

资料知识

MP3-FLASH-10P模块说明书V1.0

MP3-FLASH-10P模块说明书V1.0
1.1 简介
MP3-FLASH-10P是一个提供串口的语音模块,完美的集成了MP3、WAV的硬解码。同时软件支持工业级别的串口通信协议,以SPIFLASH、U盘作为存储介质,用户可以灵活的选用其中的任何一种设备作为语音的存储介质。通过简单的串口指令即可完成播放指定的语音,以及如何播放语音等功能,无需繁琐的底层操作,使用方便,稳定可靠是此款产品的最大特点。
无需任何烧录器,无需任何软件,USB直接烧写FLASH
同时可以以SPIFLASH为存储介质的U盘功能,后面章节详细说明
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、多种控制模式、串口模式、AD按键控制模式[此功能可以定制开发]
5、Miniusb接口更新语音文件,无需安装任何软件。支持XP到WIN10系统。
6、支持组合播放功能,可以实现报时、报温度,在一定程度上可以替代一些昂贵的TTS方案
7、30级音量可调,5级EQ可调[此功能暂不开放]
8、直接可接3W喇叭,也可以接耳机或功放
9、支持1段语音的触发播放,IO检测的方式,所以适合碳膜按键等等场合
10、可以同时支持U盘以及SPIFLASH作为存储介质
1.3 应用
1、 车载导航语音播报
2、 公路运输稽查、收费站语音提示;
3、 火车站、汽车站安全检查语音提示;
4、 电力、通信、金融营业厅语音提示;
5、 车辆进、出通道验证语音提示;
6、 公安边防检查通道语音提示;
8、 电动观光车安全行驶语音告示;
9、 机电设备故障自动报警;
10、消防语音报警提示;

2. 方案说明

芯片选用的是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.3V-5V[7805后级串一个二极管为最佳]

额定电流

10MA[静态]

低功耗电流

<200uA

功放功率

驱耳机,功放

尺寸

16S

工作温度

[-40度] -- [80度]

湿度

5% ~ 95%

主芯片型号

YX6100-16S[SSOP24]

2.2管脚说明

mp3-flash-10p引脚说明

引脚序号

引脚名称

功能描述

备注

1

VDD

5V 电源输入

不可以超过5.2V

2

DAC-L

音频输出左声道

驱动耳机、功放

3

DAC-R

音频输出右声道

驱动耳机、功放

4

BUSY

Busy 输出

播放时输出低电平

5

RX

UART 串行数据输入

3.3V 的TTL 电平

6

TX

UART 串行数据输出

3.3V 的TTL 电平

7

GND

电源地/音频地


8

PO1

触发输出口

对地触发

9

SPK+

喇叭+

接1-5W喇叭

10

SPK-

喇叭-

接1-5W喇叭

3、串口通讯协议
串口作为一种在控制领域常用的通信,我们进行了工业级别的优化,加入的帧的校验、重发、错误处理等措施,大大加强通信的稳定性和可靠性,同时可以在此基础上扩展更加强大的RS485
进行组网功能,串口的通信波特率可自行设置,默认为9600

3.1 通讯格式
支持异步串口通讯模式,通过串口接受上位机发送的命令

通讯标准:9600 bps
数据位  :1
校验位  :none
流控制  :none

格式:$S  VER  Len  CMD  Feedback  para1  para2  checksum  $O






$S

起始位0x7E

每条命令反馈均以$开头,即0x7E


VER

版本

版本信息


Len

len后字节个数

校验和不计算在内


CMD

命令字

表示具体的操作,比如播放/暂停等等


Feedback

命令反馈

是否需要反馈信息,1反馈,0不反馈


dat

参数

和前面的len相关联,不限制长度


checksum

校验和[占两个字节]

累加和校验[不计起始位$]


$O

结束位

结束位0xEF

举个例子,如果我们指定播放SPIFLASH,就需要发送:7E FF 06 09 00 00 04 FF dd EF
数据长度为6 ,这6个字节分别是[FF 06 09 00 00 04] 。不计算起始、结束、和校验。然后对得到的结果进行累加,再用0减,即“0-checksum=校验数据”。如果这里不明白,可以参考我们的例程。另外用户也可以直接忽视校验,参考我们的5.3.4章节说明。
3.2 通讯指令
我们的通讯分为以下两大块
n 控制指令
n 查询芯片的参数以及状态
3.2.1 控制指令
这里是控制芯片如何工作

CMD命令

对应的功能

参数(16位)

0x01

下一曲


0x02

上一曲


0x03

指定曲目(根目录)

详见3.4.1

0x04

音量+


0x05

音量-


0x06

指定音量

详见3.4.2

0x07

保留

保留

0x08

单曲循环指定曲目播放(根目录)

详见3.4.3

0x09

指定播放设备

详见3.4.4

0x0A

进入睡眠 -- 低功耗

功耗10MA

0x0B

唤醒睡眠


0x0C

芯片复位


0x0D

播放


0x0E

暂停


0x0F

指定文件夹文件名播放

详见3.4.5

0x13

插播广告

详见3.4.6

0x14

单个文件夹支持1000首曲目

保留

0x15

停止插播播放背景音乐


0x16

停止


0x17

指定文件夹循环播放

详见3.4.7

0x18

指定整个设备随机播放

详见3.4.8

0x19

对当前播放的曲目设置为循环播放

详见3.4.8

0x1A

开启和关闭芯片的DAC输出

详见3.4.9

0x21

保留

详见3.4.10

0x25

多文件夹插播

详见3.4.11


3.2.2 查询指令

这里是查询芯片的状态和相关的参数

CMD命令详解(查询)

对应的功能

参数(16位)

0x3C

保留


0x3D

保留


0x3E

保留


0x3F

查询在线的设备

详见3.5.1

0x40

返回错误,请求重发


0x41

应答


0x42

查询当前状态

详见3.4.10

0x43

查询当前音量


0x44

查询当前EQ

保留

0x45

保留

该版本保留此功能

0x46

保留

该版本保留此功能

0x47

查询UDISK文件总数

设备的总文件数

0x48

保留

保留

0x49

查询FLASH的总文件数

5个文件夹的总文件数

0x4B

查询UDISK的当前曲目

物理顺序

0x4C

保留

保留

0x4D

查询FLASH的当前曲目

返回文件夹号和曲目指针

0x4E

查询指定文件夹的曲目总数

详见3.5.3

0x4F

查询当前设备的总文件夹数

详见3.5.4

0x61

查询当前文件夹指针

仅支持FLASH


3.3 芯片返回的数据

芯片在关键地方均会有数据返回。供用户掌控芯片的工作状态

n 芯片上电初始化成功的数据

n 芯片播放完当前曲目的数据

n 芯片成功接收到指令返回的ACK(应答)

n 芯片接收一帧数据出错[包括数据没收完整、校验出错两种情况]

n 芯片在繁忙时,有数据过来,芯片会返回忙的指令

n U盘、TF卡插入拔出,均有数据返回

3.3.1 芯片上电返回的数据

(1)、芯片上电,需要一定的时间初始化,这个时间是需要根据TF卡、U盘、SPIFLASH设备的文件多少决定的,一般情况在小于500ms这个时间。如果超过这个时间芯片的初始化数据还没有发送出来,说明芯片初始化出错,请检查硬件的连接

(2)、芯片初始化返回的数据为当前的有效文件夹,譬如返回7E FF 06 3F 00 00 03 xx xx EF

==>其中0x03代表的是U盘和TF这两个设备在线

U盘 -- 在线

7E FF 06 3F 00 00 01 xx xx EF

各设备之间是或的关系

PC -- 在线

7E FF 06 3F 00 00 04 xx xx EF


FLASH -- 在线

7E FF 06 3F 00 00 08 xx xx EF



(3)、MCU必须等待芯片初始化指令发出之后才能发送相应的控制指令,否则发送的指令芯片将不予处理。同时还会影响芯片的正常初始化。

3.3.2 曲目播放完毕返回的数据

U盘播放完第1曲

7E FF 06 3C 00 00 01 xx xx EF

U盘播放第1曲完毕

U盘播放完第2曲

7E FF 06 3C 00 00 02 xx xx EF

U盘播放第2曲完毕

FLASH播放完第1曲

7E FF 06 3E 00 01 01 xx xx EF

第1曲播放完

FLASH播放完第2曲

7E FF 06 3E 00 02 02 xx xx EF

第2曲播放完

1、针对很多的触发型的播放需求,我们芯片更正为播放一曲之后自动进入停止状态。如果用户需要此类应用。只需要指定曲目播放即可。这样,曲目播放完毕会自动停止,等待指令

2、另外我们专门开辟一个IO作为解码和暂停的状态指示。请参见第16脚

(1)、播放状态输出低电平[很多功放有静音脚,可以通过此IO直接进行控制]

(2)、播放暂停状态,输出高电平。芯片睡眠状态。也是低电平

3、芯片通电之后,初始化正常 ,芯片会自动进入设备播放状态。并且停止解码,等待用户发送播放的相关指令

4、另外用户在指定设备之后,需要等待200ms的时间,再发送指定的曲目,因为一旦指定曲目之后,系统会对指定的设备进行文件系统的初始化,如果立刻发送指定的曲目命令,会导致芯片接收不到。

3.3.3 芯片应答返回的数据

芯片返回ACK

7E FF 06 41 00 00 00 xx xx EF

说明成功接收数据


(1)、为了加强数据通信之间的稳定性,我们增加了应答处理,ACKB字节就是设置是否需要回复应答。这样做的好处是保证每次通信都有握手信号,收到应答就表示MCU发送的数据,芯片已经成功收到,马上处理。

(2)、对于一般的应用,客户可以自由选择,不加这个应答处理也是可以的。

3.3.4 芯片错误返回的数据

返回忙

7E FF 06 40 00 00 01 xx xx EF

芯片在文件系统初始化时

当前处于睡眠模式

7E FF 06 40 00 00 02 xx xx EF

睡眠模式只支持指定设备

串口接收错误

7E FF 06 40 00 00 03 xx xx EF

串口一帧数据没接收完毕

校验出错

7E FF 06 40 00 00 04 xx xx EF

和校验出错

指定文件超范围

7E FF 06 40 00 00 05 xx xx EF

文件的指定超过设定的范围

未找到指定的文件

7E FF 06 40 00 00 06 xx xx EF

指定为文件没有被找到

数据不符合规则

7E FF 06 40 00 00 08 xx xx EF

如最小为1的地方,发送为0

(1)、为了加强数据通信之间的稳定性,我们增加了数据错误处理机制。芯片收到不符合格式的数据,均会有信息反馈出来

(2)、在环境比较恶劣的情况下,强烈建议客户处理此命令。如果应用环境一般,可以不用处理。

(3)、芯片返回忙,基本上是芯片上电初始化的时候才会返回,因为芯片需要初始化文件系统

(4)、芯片上电之后,进入的是设备状态,设备是SPIFLASH。如果SPIFLASH不在线的话,会自动进入睡眠状态。

(5)、只要参考我们给出的测试SDK程序,移植里面的串口操作部分,就不会出现校验出错,在这里强烈建议用户使用我们给出的校验方式。因为谁都不能保证数据的传输不会出错。

(6)、文件指定部分出错,请参考下面的详解

3.3.5 设备插入拔出消息

U盘插入

7E FF 06 3A 00 00 01 xx xx EF


PC插入

7E FF 06 3A 00 00 04 xx xx EF


U盘拔出

7E FF 06 3B 00 00 01 xx xx EF


PC拔出

7E FF 06 3B 00 00 04 xx xx EF



(1)、为了加强芯片的灵活性,我们特别增加了,设备插入、拔出的指令反馈。方便用户知道芯片的工作状态。

(2)、设备插入的时候,我们默认进入到设备等待状态,如果用户插入的是带灯的U盘,可以看到U盘灯闪烁。也可以接收到设备插入的串口消息。

3.4 串口控制指令详解

以下我们对关键的地方进行详细的说明--针对控制指令:

n 指定曲目播放

n 指定播放的音量

n 指定播放的设备

n 全部循环播放指令

n 组合播放功能[亮点]

n 带音量参数的指定曲目播放


3.4.1 指定歌曲播放指令[可以直接参考3.4.7]

我们给出的指令是支持指定曲目播放的,歌曲的选择范围为0~3000.其实是可以支持更多的,因为涉及到文件管理的原因,支持过多的歌曲,会导致系统操作缓慢,一般的应用也不需要支持这么多的文件。如果客户有非常规的应用,请事前和我们沟通。此指令在TF卡和U盘状态是按照存储的物理顺序指定的。FLASH则是默认为FOLDER1区域

(1)、例如选择第一首歌播放,串口的发送部分7E FF 06 03 00 00 01 FF E6 EF

7E --- 起始命令

FF --- 版本信息

06 --- 数据长度(不包含校验)

03 --- 代表产品编号

00 --- 是否需要应答[0x01:需要应答,0x00:不需要返回应答]

00 --- 曲目的高字节[DH]

01 --- 曲目的低字节[DL],这里代表的是第一首歌播放

FF --- 校验的高字节

E7 --- 校验的低字节

EF --- 结束命令

(2)、对于选曲,如果选择第100首,首先将100转化为16进制,默认为双字节,就为0x0064。

DH = 0x00  ; DL = 0x64

(3)、其它的操作依次类推即可,因为在嵌入式领域采用16进制是最为方便的一种操作。

3.4.2 指定音量播放指令

(1)、我们系统上电默认的音量为30级,如果要设置音量的话,直接发送相应的指令即可

(2)、芯片内部设置的音量细分级数为0--30.请用户注意

(3)、例如指定音量为15级,串口发送的指令:7E FF 06 06 00 00 0F FF D5 EF

(4)、DH = 0x00 ; DL = 0x0F ,15转化为16进制为0x000F。可以参照播放曲目部分的说明


3.4.3 单曲循环播放指令

循环播放指定曲目

7E FF 06 08 00 00 01 xx xx EF

根目录循环播放第一曲


7E FF 06 08 00 00 02 xx xx EF

根目录循环播放第二曲


7E FF 06 08  00 01 03 xx xx EF

根目录循环播放第三曲

(1)、争对一些需要单曲循环播放的要求,我们改进这一条控制指令0x08。在操作SPI flash者U盘时,根目录按照的是文件存储的物理顺序指定,这点请用户注意。但是在操作FLASH时,是按照文件夹分区指定的,请参考上面的测试指令。

(2)、在循环播放的过程中,可以正常的操作播放/暂停,上一曲、下一曲、音量调节,包括EQ等等

并且状态仍然是循环播放.可以通过指定单曲触发播放或者停止来关闭循环播放状态


3.4.4 指定播放设备

(1)、我们的芯片默认是支持4种类型的播放设备,只有设备在线才能指定设备去播放

设备是否在线,我们软件会自动检测,无需用户关系。

(4)、看下表,选择合适的指令发送

(3)、指定设备之后。芯片会自动进入停止解码状态,等待用户指定曲目播放。从接收到指定设备到芯片内部完成初始化文件系统。大概需要200ms。请等待200ms之后再发送指定曲目的指令。


指定播放设备-U盘

7E FF 06 09 00 00 01 xx  xx EF

xx xx:代表校验

指定播放设备-PC

7E FF 06 09 00 00 03 xx  xx EF

指[读卡、声卡]模式

指定播放设备-FLASH

7E FF 06 09 00 00 04 xx  xx EF


指定播放设备-SLEEP

7E FF 06 09 00 00 05 xx  xx EF



3.4.5 指定文件夹文件名播放


文件夹01的001xxx.mp3

7E FF 06 0F 00 01 01 xx  xx EF

TF卡或者U盘或者FLASH

文件夹11的100xxx.mp3

7E FF 06 0F 00 0B 64 xx  xx EF

TF卡或者U盘或者FLASH

文件夹99的255xxx.mp3

7E FF 06 0F 00 63 FF xx  xx EF

TF卡或者U盘或者FLASH


更多内容请向业务员索取资料。

用手机扫描二维码关闭
二维码