WTV080芯片在以太网维文信息家电控制平台中的应
随着计算机网络技术的飞速发展,一个以网络为核心的信息时代已悄然到来。虽然网络带来的方便与快捷是大家有目共睹的,但是人们对生活环境提出的要求也在不断提升,这就使得“智能住宅”、“家庭自动化”等技术越来越受到人们的关注[1]。在以太网维文信息家电控制平台设计中加入语音播报的功能,能够让使用者体验到家电控制的智能化与实用性,增强交互体验[2]。
1 WTV080芯片介绍
1.1 芯片特点
WTV080芯片是可编程的一次性烧录(OTP)语音芯片,根据芯片型号,语音长度可分别达到10 s,20 s,40 s,80 s,170 s,340 s。由于该芯片内置16 b DAC数字/仿真转换器、PSG语音合成器和音质优化算法器,具有PWM和DAC两种音频输出方式,所以能够表现出较高质量的音频。可任意插入静音,相同的语音可重复调用,且不占用语音空间。
芯片具有多种工作模式,包括按键控制模式、按键组合控制模式、并口控制模式和串口控制模式等。播放语音时,BUSY脚可根据需要,设定输出高电平或低电平。它内置0.5 W喇叭直推线路,不需要外加器件,音质与音量比传统“Cout+三枀管”更佳,且更省电节能。工作电压范围为2.5~3.6 V。当处于省电模式时,耗电量仅为 2 μA,芯片上电后1 s或者语音停止播放后1 s自动休眠。具有强大的可编程能力,可以根据需要定制各种复杂的功能[3]。
1.2 芯片封装与引脚定义
WTV080 SOP16封装示意图如图1所示,各引脚功能如表1所示。
2 WTV080三线串口控制时序和控制命令
2.1 三线串口控制时序
三线串口控制模式[4]是由片选CS、时钟CLK和数据DATA进行控制操作的,并且时序仿照标准SPI通信方式。具体的时序图如图2所示。
从图2中可以看出:在发送数据前,复位信号RESET先置低5 ms,对WTV080芯片进行初始化,然后在8 ms后片选信号CS,CLK再置低5 ms以唤醒WTV语音芯片。WTV080在时钟(时钟周期介于200 μs~2 ms之间,推荐使用300 μs)的上升沿接收数据,先接收低位数据,然后是高位数据。数据成功接收后,语音播放忙信号 BUSY做出响应。同样,向外发送数据时先发送低位数据,再发送高位数据。在发送数据时,无需先发送命令码再发送指令。
2.2 控制命令
图2中数据线上的D0~D7表示一个地址或者命令数据。E0H~FEH的功能如表2所示。
3 WTV080播报语音控制
WTV080在正确的控制下,才能正常播报语音,本设计采用的控制芯片为STM32F103VE。
3.1 STM32F103VE简介
STM32F103VE增强型使用高性能的ARM? CortexTM?M3 32位的RISC内核。
3.2 STM32F103VE和WTV080的接口
因WTV080采用三线串口模式,所以将STM32F103VE的PE10,PE11,PE13,PE9作为普通I/O口线,PE12作为输入I/O口线。按照WTV080操作时序,通过CS,CLK,DATA对WTV080进行控制语音播报。接收到相应的指令,调用相应的语音进行播放。其语音芯片电路如图3所示。
4 语音系统的设计流程
语音系统的设计流程主要包括4个步骤:硬件设计、制作语音文件、烧写语音文件和软件处理。
4.1 硬件设计
WTV080语音芯片采用三线串口模式,通过STM32F103VE的三个通用I/O口分别连接到WTV080芯片的CS,CLK,DATA,再找两个通用I/O口分别连接RESET(复位)管脚与BUSY忙信号管脚,设置连接WTV080芯片的CS,CLK,DATA,RESET(复位)管脚状态为输出,连接WTV080芯片的BUSY忙信号管脚状态为输入。
4.2 语音文件的建立
在Interphonic.5.0语音合成系统。导入语音文件,通过单击菜单栏“WavOperation”项下面的Load Wav…,弹出对话框选择加载的录音文件(WAV格式)。
4.3 烧写语音
连接好烧写语音芯片的设备,单击菜单栏“Tools”项Com Download下载框,选择相应的bin文件,选择使用的串口,单击Download即可下载语音文件到设备,通过操作设备再把语音烧写到语音芯片。
4.4 软件处理
通过控制三线串口模式的时序,将相应的语音地址发送到WTV080的语音芯片,芯片就会调用相对应的语音文件进行播放,播放完一段语音,BUSY忙信号就会输出低电平,当STM32F103VE检测到BUSY输出的低电平后,认为一段语音播放完毕,就可以调用下一段语音进行播放了。
5 语音控制程序
5.1 STM32F103VE驱动程序简介
STM32F103VE驱动程序接收以太网协议数据并分析,调用相应的语音进行语音播放。WTV080语音芯片程序流程如图4所示。
5.2 三线串口控制程序
数据发送程序如下:
void audioPlay(unsigned char AudioData)
{
unsigned char TxData=0;
YY_NSS_LOW();
delay_ms(5);
for(TxData=0;TxData<8;TxData++)
{
YY_SCK_LOW();
if(AudioData & 0x01)
{
YY_MOSI_HIGH();
}
else
{
YY_MOSI_LOW();
}
AudioData>>=1;
delay_us(200);
YY_SCK_HIGH();
delay_us(200);
}
YY_NSS_HIGH();
}
6 结 论
从初期控制板的设计和后期模型的制作,到对整个模型系统的测试,结果表明,使用STM32F103VE控制WTV080语言芯片成功地实现了语音播报的功能,并且性能稳定,音质良好。
参考文献
[1] 玉海超,王红蕾.基于ARM的智能网络家居系统的设计与实现[J].信息技术,2012(4):162?165.
[2] 司德花.英汉智能语音芯片应用于旅游业的研究[J].经济研究导刊,2014(18):250?251.
.电子制作,2008(6):16?17.
[4] 韩德红,张显才,李向东.基于FPGA的串口控制器设计与实现[J].空军雷达学院学报,2008(2):113?116.
[5] 张庆辉,马延立.STM32F103VET6和ENC28J60的嵌入式以太网接口设计[J].单片机与嵌入式系统应用,2012(9):23?25.
[6] 于春雪.STM32F103的高速以太网接口设计[J].单片机与嵌入式系统应用,2011(9):43?45.
[7] 佚名.科大讯飞新一代语音合成系统Interphonic 5.0强势登陆语音市场[J].通讯世界,2006(7):84?85.