基于SPI总线的PIC与ISD4003语音接口电路
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于SPI总线的PIC与ISD4003语音接口电路
刘永平 王威 江豪 郭小波
(河南工业大学 河南郑州 450052 )
摘要:利用SPI总线实现MCU与ISD4003语音芯片的串行通信,PIC单片机与ISD4003的连接及控制,外围电路的设计。
语音分段录放以及随即组合放音。
关键词: SPI串口通信协议;PIC单片机;ISD语音芯片;微控制器;
中图分类号:TP273 文献标识号:B
PIC-ISD4003 voice system electric circuit based on the SPI bus LIU Yong-Ping WANG Wei JIANG Hao GUO Xiao-Bo
(Henan University of Technology, Zhengzhou, Henan, 450052, China)
Abstract:Making use of SPI bus carrys out the PIC16F877 and the ISD4003 chip going serial correspondence and the design of the outer circle electric circuit.The voice is recorded and playbacked through dividing segements,and combined the playback immediately。
Key words:SPI serial protocol; PIC micro-controller ;
ISD voice record and playback device;MCU;
1 引言
串行外围设备接口SPI(serial peripheral interface)总线技术是Motorola公司推出的一种同步串行接口,其硬件功能很强,使MCU有更多的时间处理其他事务。
ISD4003语音芯片采用CMOS技术,内含晶体振荡器、防混叠滤波器、平滑滤波器、自动静噪、音频功率放大器及高密度多电平闪烁存储阵列等,因此只需很少的外围器件就可构成一个完整的声音录放系统。
ISD4003芯片设计基于所有操作必须由微控制器控制,操作命令可通过串行通信接口送入。
PIC单片机的SPI模式允许8位数据同步发送和接收,支持SPI的所有四种方式。
2 SPI的工作原理
2.1 采用SPI实现PIC16F877与ISD4003之间的通信
单片机与外围设备的通信方式可分为并行通信和串行通信,相应的通信总线被称为并行总线和串行总线。
并行通信速度快,实时性好,但由于占用单片机的口线多(即使地址和数据线可部分复用),不适合作为小型化产品和分布式、远程测控系统的数据通信方式。
串行通信只需一根和几根数据传输线,不仅降低硬件成本,也有利于系统的扩展设计,所以串行总线广泛应用于单片机测控中。
SPI是一种申行总线,两台设备在同一个时钟下工作,因此,SPI需要3根引脚线(发送、接收和时钟)。
由于SPI是同步方式工作,它的传输速率远远高于高达几十Mbps。
PIC16F877单片机集成SPI串行外围接口,具有与SPI相关的三个管脚SDO、 SDI 、SCK 以及相关的寄存器,如图1。
ISD4003芯片设计基于所有操作必须由微控制器控制,操作命令通过串行通信接口由MCU向ISD4003发送,ISD4003通过串行总线接受到指令后开始相应的工作并通过串行总线西向MCU反馈.
2.2 SPI的传输原理
SPI的传输相当于两个八位移位寄存器首位相连。
每个时钟周期,数据从一个设备的移位寄存器移出,同时移入了另一个寄存器。
八位数据全部移出时,两个寄存器就实现了一次数据交换。
因此,SPI的发送和接收是同时进行的。
PIC单片机的SPI控制寄存器SSPCON的使能位SSPEN置1,SPI串行端口开始工作,引脚SDI 、SDO 、SCK 、SS为SPI接口的专用引脚。
SPI接口的器件,分为主设备(Master)和从设备(Slave)。
主控方式控制SCK信号。
PIC16F877通过“SPI串口通信协议”控制ISD4003何时发送数据。
以主控方式工作时,数据一旦写入缓冲器SSPBUF就开始读取或发送数据,当接受完一个字节后,中断标志位和缓存器满标志位相应置1。
从动方式下外部时钟由SCK引脚送来的外部时钟源提供,当接受数据的最后一位被锁定,或发送数据的最后一位被移出后,中断标志位SSPIF置1,发出中断请求。
同时,ISD4003接受数据完毕,语音芯片按照接受到的指令开始工作。
3、ISD4003与PIC16F877的硬件电路
PIC单片机与ISD4003的电源电压不同,所以应考虑电平转换问题。
把单片机的5V输出信号接至ISD4003的输入引脚不需要电平转换。
1SD4003的所有输出引脚都是集电极开路输出的。
所以当把RAC、INT接至5V电源的单片机时只要将这些引脚上拉到单片机的+5V电源。
但是1SD4003的M1S0引脚,其内部是P沟道驱动的,在+3V电源下输出高电平仅为2.6V,而5V电源器件的输入高电平应达到+4V,所以在1SD4003的M1S0与PIC16F877的SD1引脚间加一个电平转换电路,如图3。
4、软件设计
4.1 ISD4003简介
ISD4003可以进行多段录语音放操作,每一段称为一个信息段,一个信息段由起始地址(在每次操作开始之前由信息起始指针(MSP)指定)、记录数据和信息结束标志(EOM)组成。
一个信息段占用一行或多行存储空间,可以包含多个地址单元;一个地址单元最多只能作为一个独立的段。
因此1SD4003最多可以分为1200段。
ISD4003存储阵列中的每一行都可以独立寻址。
录放操作都是从任一行的行首开始.可以一直持续到行尾,内部的行地址计数器加1指向下一行的起点。
录音时语音每一段结束后芯片自动设有段结束标志(EOM),芯片录满后设有溢出标志(OVF)。
按某一段的起始地址进行放音操作,遇到段结束标志(EOM)即自动停止放音,单片机收到段结束标志(EOM)就开始触发下一段语音的起始地址,如此控制,就可以将很多、不同段的语音组合在一起成一句话放音出来,实现语音的自动组合。
4.2 程序实现
不同设备之间要实现相互通信,设备之间必须有“握手”信号。
一般来说,主机发送命令和配置信息给从机,从机则向主机发送反馈信息。
ISD4003工作于SPI串行接口,SPI协议要求数据在时钟上升沿移入、在下降沿移出、即在时钟上升沿锁存MOSI引脚的数据,写入命令字,在下降沿将数据送至MISO引脚,读端口的状态字和命令字。
命令字的高5位为操作码,低11位为操作地址,状态字的最高2位分别是溢出标志OVF和信息段末尾标志EOM,紧跟其后的是行地址计数器的值。
SPI 串行接口子程序流程图如图5,ISD4003的录音流程图如图6所示。
4.3 软件程序
/*SPI初始化子程序*/
void SPIINIT()
{
PIR1=0;
SSPCON=0x30;
SSPSTAT=0xC0;
TRISC=0x00;
}
/*SPI发送子程序*/
void SPISED(int data) {
SSPBUF=data;
do
{
;
}
While(SSPIF==0);
SSPIF=0;
}
……
图6 ISD4003录音流程图
5.结论
ISD4000系列语音芯片是当今最新的语音芯片,4003是此系列中的一种。
对于传统的不带SPI 串行总线接口的51系列单片机控制ISD4003就要模拟SPI接口,PIC16F877集成SPI串行总线接口,这样不仅电路简单并且程序编写方便。
在试验过程中,有时候系统会出现不稳定的现象,表现出来就是系统受外界干扰很强以及类似接触不良的现象。
这是由于芯片的模拟电源和数字电源外围电路太近,把两个电源引脚分别接到电源端并在这两个电源端口添加一个去耦电容,这种现象就没有了,语音电路去耦特别重要。
此语音开发系统可用于实现语音实时录放和地址的精确定位以及语音内容复制。
此系统应用在智能护理床上,用作语音提示及实时报警,整个系统效果良好。
参考文献:
[1]李学海编著.PIC单片机实用教程[M]; 北京:航空航天大学出版社;2003
[2]施庆隆编著.PIC16F87X单片机原理与专题应用[M];北京:电子工业出版社;2003.1
[3]赫宁生.一种基于PIC16C73单片机的电机测控系统[J];北京:微计算机信息2002(8)52-53
基金项目:河南省科技厅科技攻关项目(0224370)
作者简介:刘永平(1977-),女,硕士研究生. 研究领域:多自由度机器人控制。
王威(1957-),男,教授,硕士生导师. 研究领域:工业控制
Author brief introduction: LIU Yong-Ping, female, born in 1977,bachelor degree ,majored in robot control; WANG Wei(1957-)male,Professor,major in industrial control. (450052 河南郑州 河南工业大学机电工程学院) 刘永平 王 威 江 豪 郭小波
(School of Mechanical and Electrical Engineering of Henan University Of Technology, Zhengzhou,Henan,450052,China)LIU Yong-Ping WANG Wei JIANG Hao GUO Xiao-Bo
通讯地址:
(450052 河南省郑州市嵩山南路140号82#河南工业大学机电一体化研究所) 刘永平 E-mail: **********************.cn。