SYN6288语音播放模块.docx
- 文档编号:6527219
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:13
- 大小:214.84KB
SYN6288语音播放模块.docx
《SYN6288语音播放模块.docx》由会员分享,可在线阅读,更多相关《SYN6288语音播放模块.docx(13页珍藏版)》请在冰豆网上搜索。
SYN6288语音播放模块
SYN6288语音播放模块制作
1、SYN6288语音芯片封装图:
1O
28
VDD1O0匚
2
27
\ssiooZ
3
26
Ready/HiK\_
4
25
Rt-h匚
5
24
\DDK>1匚
6
23
VSSIO1匚
7
22
vssppZ
R
21
9
20
\DDPP1_
10
19
BM)Z
11
18
VSSPP
12
17
址匸
B
16
NC匚
14
15
R\l)
\'SSA
cvss
ItFGOUT口CVI>D口VDDIO2_KST
]Til>
□VDIJA
□XOIT
□XIN
]VSSIO2
二|VSN
□^C
2、通信方式:
2.1异步串行通讯(UART接口
PC的数据传输。
SYN6288芯片支
SYN6288提供一组全双工的异步串行通讯(UART接口,实现与微处理器或SYN6288利用TxD和RxD以及GND实现串口通信。
其中GND作为地信号。
持UART接口通讯方式,
RXD
—
TXD
TXD
——►
RXD
2.2通讯传输字节格式
1初始波特率:
9600bps
2、起始位:
1
3、数据位:
8
4、校验位:
无
5、停止位:
1
6、流控制:
无
起始位
DO
D1
D2
D3
D4
D5
D6
D7
停止位
与51单片机通信时,可以用单片机的串行通信方式1
3、硬件电路搭建:
3.1外接电源组接法
5V电源供电模块参考电路
备注:
SYN6288共有6组外接电源,每组电源均使用一个47uF和一个0.1uF的电容;如果用户想节省成本,用户可以在每组电源上均使用0.1uF的电容,并对VDDPP、和VDDA两组电源,各加上一47uF的电容。
3.2复位电路及状态指示电路
备注:
Ready/Busy此STATUSI脚信号为低电平时说明芯片正在等待接收数据。
在系统设计时可以将此引脚接
在MC的中断输入源上,产生一个下降沿中断请求发送数据,以示上位机MC可以向语音合成
芯片发送数据。
3.3
SYN6288的扬声器输出
3.4SYN6288外接高速晶振
-XJN||UI2
IL
O
20pF
TXC16M
I20pF
XOUT
XOUT『15
3.5SYN6288串口通信的参考电路
备注:
上位机发送数据给SYN6288时,中间须加有反向器。
在实际电路中,我们用三极管做了一个反向器,电路如下图:
VCC
TXD
该电路的原理是:
MCU的TXD输出电平为0时,NPN三极管截止,RXD收到的电平为1。
28
RXD
MCU的TXD输出电平为1时,
NPN三极管导通,
RXD收到的电平为0。
3.6Res引脚(即第5引脚)的接法
Res.
SrATUS
3.7总体电路原理图:
忙指示灯
电源指示灯
GNE-
DI
GKC-
t-SSI-OG
1
BD1CC
4
J.
]
2
4
315
<
—I—一
vcmo】
5
X-£E[01
7
:
P
BBFF
10
SFK-
)1
VSSFP
12
13
1脚00
KudyS^aty
VIO5
VSSIU]
5P0
VDDW
KfQ
VSSPP
SXC-
^c.
TXD
VWA
X0UT
KE&OCT
CVDC
ADDIOZ
JUT
CVS5
VOTO:
vs
NC
||hGKD
TXD
WDA
XDv
V3SA
KE.GOUT
CtT-D
Ill'GXD
VCC
Hl
Hsade?
-"
VCC
GKD
4、程序的编与:
4.1命令帧格式:
芯片支持以下命令帧格式:
“帧头FD+数据区长度+数据区”格式。
(最大206个字节)
轍结构
帧头
<1字节)
数据区长度
(2字节〉
数据区
f小于等于203字节}
命令字仃字节〉
命令舂数字节)
特发送文本
(小于等于2皿字节)
异或校验
(1字节)
数据
OjcFD
OjcXXOxXX
OkXX
OsH”,.
OsXX
说明
定义为卜六进制“OzFD"
高丫节在前
低字节在后
长度誉须和前面的“敌据区长度"一致
注意:
数据区(含命令字,命令参数,待发送文本,异或校验)的实际长度必须与帧头后定义的数据区长度严格一致,否则芯片会报接收失败。
4.2语音合成播放命令举例:
帧头
数据区
数据区
长度
命令字
命令参数
持发送文本
异或校螫
数据
OiFD
0x00OxOB
0x01
0x00
字音天下
0xD3OxEEOjd)2OxF-1OxOCOxECfeCF0xC2
OxCl
数据帧OxFD0x00OxOB0x010x000xD3OxEE0xD20xF4OxCCOxECOzCF0xC2OxCl
说明播放文本編码格式为“GP231挈的文本"宇音天下“,不带背荒音乐
上位机发送给SYN6288芯片的所有命令和数据都需要用“帧”的方式进行封装后传输。
其它命令请自行参考SYN628芯片手册:
4.3文本程序发送:
中文系统电脑的文本编码格式一般为:
ANSI即GB2312编码体系,这个可以
用二进制文本编辑器(如BinaryEditor)打开并对照GB231编码表察看。
参考程序:
//speaker.c
#include
#include
#include
#include"typedef.h"
#include"SPEAKER.h"
voiddelayMs(uint16xms){uint16i,j;
for(i=0;i for(j=0;j<123;j++); //语音模块初始化 voidSpeakerlnit(){ /**************口的初始^^化*****************/ TL1=0XFA; 〃在11.0592MHZ下,设置波特率 TH1=0XFA; TM0D=0X20; SCON=0X50; 〃串口工作方式1,允许接收 PCON=0X80; EA=0; REN=1; TI=0; //发生中断标志位置零 RI=0; //接收中断标志位置零 TR1=1; //定时器1用做波特率发生 9600bps,工作方式2 //语音播报程序 //定义字符串长度 //定义校验字节 uint8Speaker(char*pString){uint8headOfFrame[5];uint8length; uint8ecc=0; uint16i=0; if(pString==NULL)return-1; /***************** 发送过程 headOfFrame[0]=0XFD;head0fFrame[1]=0X00; //构造帧头FD 〃构造数据区长度的高字节 length=strlen(pString);//需要发送文本的长度 headOfFrame[2]=length+3;〃构造数据区长度的低字节headOfFrame[3]=0X01;//构造命令字: 合成播放命令headOfFrame[4]=OXOO;//构造命令参数: 编码格式为GB2312 for(i=0;i<5;i++)〃依次发送构造好的5个帧头字节 { ecc=eccA(headOfFrame[i]);//对发送的字节进行异或校验 SBUF=headOfFrame[i];while(TI==O){;}TI=O; } for(i=0;i { ecc=eccA(*pString);SBUF=(*pString);pString++; while(TI==0){;} TI=0; } SBUF=ecc;while(TI==0){;} TI=0; //等待发送中断标志置位 //发送中断标志位清零 //依次发送待合成的文本数据 return0;〃成功返回0 } //语音读整数 uint8SpeakerInt(intida){ uint8i; uint8negative=0;〃负数标志位 uint8intLen=5; charcdat[5]={0}; if(ida<0){〃若为负数取绝对值 ida=abs(ida); negative=1; } cdat[0]=(char)(ida/10000); cdat[1]=(char)((ida-(cdat[0]*10000))/1000); cdat[2]=(char)((ida-(cdat[0]*10000)-(cdat[1]*1000))/100);cdat[3]=(char)((ida-(cdat[O]*10000)-(cdat[1]*1000)-(cdat[2]*100))/10); cdat[4]=(char)((ida-(cdat[0]*10000)-(cdat[1]*1000)-(cdat[2]*100)-(cdat[3]*10))/1); for(i=0;i<5;i++){ cdat[i]=(char)(cdat[i]+48); } if(cdat[0]=='0'){ intLen=4; if(cdat[1]=='0'){ intLen=3; if(cdat[2]=='0'){ intLen=2; if(cdat[3]=='0') intLen=1; } } } if(negative==1){ Speaker(”零下");delayMs(1000); } Speaker(&cdat[5-intLen]); return0; } voidmain(){ SpeakerInit(); while (1){ Speaker("现在的室外温度是”); delayMs(3000); SpeakerInt(-37); delayMs(1500); Speaker("度"); delayMs(1000); //Speaker.h #ifndef_SPEAKER_H_ #define_SPEAKER_H_ //语音初始化程序 //语音播放程序 //语音读整数 externvoidSpeakerlnit(); externuint8Speaker(char*pString); externuint8Speakerlnt(intida); #endif //typedef.h #ifndefTYPEDEF_H_ #defineTYPEDEF_H_ typedefunsignedcharuint8; typedefunsignedintuint16; typedefunsignedlonguint32; #endif
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SYN6288 语音 播放 模块