摘要:全数字化语音系统的设计。该系统用DSP芯片TMS320F206对MSM6588语音芯片进行录音、放音控制,用FLASH存储器AM29F040B进行语音数据存储,用差分线驱动器和接收器SN75LBC180在RS-485总线网络上传输语音数据。该语音系统结构简单、功能可靠,从而满足了全数字化语言教学实验室对学生机单元提出的要求。 关键词:DSP 语音录放 FLASH存储器 RS-485总线 由于语言教学实验室对语言教学产生着十分重大的影响和作用,是外语教学改革和提高外语教学质量的制高点和突破口,因而语音教学实验室得到了空间的发展和利用。我国现有的语言教学实验室产品大都属于模拟型语言教学实验室,然而面对信息时代的到来,高新技术的发展,语言教学实验室了适应未来教育的需要,必须寻求新的发展。而要解决传统语音教学实验室面临的问题必须引入数字化的设计,这主要包括以下四方面的内容:一是学生机中微控制器选择;二是语音信号的采集和播放;三是语音信号的存储,也就是数字录音机的功能实现;四是语音信号的网络化传播。 TMS320F206是美国TI(德州仪器)公司继TMS320C2X和TMS320C5X之后推出的一种低价格、高性能的16位定点运算DSP,其CPU接近于TMS320C25,但时钟速率提高、指令集更加丰富和优化、片内外设向TMS320C5X靠拢[1]。TMS320F206(以下简称F206)的性价比较高,目前已成为高档单片机理想替代品,在通信、语音/语言、军事、仪器仪表、图像处理、工业控制等领域得到了广泛应用。本文就是用F206对MSM6588语音芯片进行录音、放间控制,用FLASH存储器AM29F040B进行语音数据存储,用差分线驱动器和接收器SN75LBC180在RS-485总线网络上传输语音数据,从而满足全数字化语言教学实验室对学生机提出的上述要求的。图1示出了该语音系统的结构简图。
1 语音录放电路 语音芯片MSM6588是日本OKI公司的产品,内含话简放大器、低通滤波器(LPF)、12位A/D和D/A转换器,语音数据的处理采用ADPCM(自适应差分脉冲编码模式)方式[2]。语音芯片主时钟频率确定后,可用DSP通过软件输入控制字来设定采样频率。采样频率设定越高,放间的品质越好,录间的时间就越短。表1给出了MSM6588语音芯片的常用控制命令。
表1 MSM6588的控制命令表 命 令 第1个4位命令
D3 D2 D1 D0 第二个4位命令
D3 D2 D1 D0 命令的功能 NOP 0 0 0 0 - 1个4位命令,空操作 SAMP 0 1 1 0 - - A1 A0 2个4位命令,A1、A0可设定4种采样频率 VDS 1 1 0 0 - B - - 2个4位命令,B=0表示3位ADPCM,B1表示4位ADPCM PLAY 0 0 1 0 - 1个4位命令,播放 REC 0 0 1 1 - 1个4位命令,记录 STOP 0 1 0 1 - 1个4位命令,停止记录/播放 PAUSE 0 0 0 1 - 1个4位命令,暂时停止记录/播放 EXT 1 0 1 1 - 1个4位命令,启动记录/播放 F206和MSM6588的引脚说明见参考文献[1]和[2]。U3是总线收发器,用来隔离和驱动DSP的数据线。MSM6588左边的模拟电路用来放大从麦克风给拾取的微弱电信号,左边的模拟电路是功率放大部分,U5即TPA302是音频功率放大器,可驱动32Ω耳机。 2 语音存储电路 由于语音芯片内无存储器,必须外挂存储器。可采用的存储器很多,如SRAM、PSRAM、DRAM、SDRAM、FLASH等。本方案采用的是AMD公司生产的AM29F040B,它的存储容量为512KB,使用单5V电源进行按扇区的擦除和按字节的写放操作。AM29F040B的非易失性可使语音数据在掉电后不会丢失,它的闪速存储器能可提高语音数据的采样频率,从而提高放间的品质。当采样频率设定为5.86kHz时,录音/放音时间为174.744s。AM29F040B的引脚输出与工业标准的EPROM、E2PROM完全兼容,在电路设计时非常方便。图3示出F206与AM29F040B的接口电路。AM29F040B地址线有19根,设计F206与其接口的关键是将AM29F040B的高位地址线(图3中为A14、A15、A16、A17和A18,可根据分页的多少和页面大小而定)通过八D锁存器74HC574的输出保持,其余地址线直接连到F206的地址总线上。该接口电路将512KB的数据空间分成32页,每页16KB。这16KB的空间被定位在F206数据空间的哪一个范围则由信号线/CSFLASH决定。在对FLASH操作时,先要通过74HC574选择页面,然后便可对当前页面的16KB数据空间读写。
与静态RAM不同,对FLASH的操作是通过一系列命令来实现的。表2给出不AM29F040B的主要命令定义(其中XXX表示任意地址。RA表示要读的存储地址,RD表示要读的数据;PA表示编程地址,PD表示编程数据;SA表示扇区地址A18~A16)。从表2可以看出,读FLASH只需要1个时钟周期,而写入一个字节则需要4个时钟周期,因此FLASH的读写速度比SRAM慢。但FLASH比相同容量的SRAM便宜得多,工作可靠性高,因而FLASH非常适用于需要大容量、非易失性、重复编程存储的场合。
表2 AM29F040B的主要命令 命令描述 时钟周期 总线周期 1 2 3 4 5 6 地址 数据 地址 数据 地址 数据 地址 数据 地址 数据 地址 数据 读 1 RA RD 复位 1 XXX F0 编程 4 555 AA 2AA 55 555 A0 PA PD 片擦除 6 555 AA 2AA 55 555 80 555 AA 2AA 55 555 10 扇区擦除 6 555 AA 2AA 55 555 80 555 AA 2AA 55 SA 30 3 语音传输网络 由于F206的片内异步串口(ASP)可以以高达2.5Mbit/s的传送速率进行全双工发送和接收操作,而且在所有方式下发送和接收数据都为双缓冲,故可利用ASP外接差分线驱动器和接收器SN75LBC180构成RS-485总线网络,将所有的学生机节点和教师机连成主从式网络结构。图4给出不F206与SN75LBC180的接口电路。SN75LBC180与F206接口的4根信号线是RX、TX、IO0及IO1,由于在图2中已给出不F206的所有管脚,这里就不再画出DSP不。其中IO0连接到SN75LBC180的接收数据控制引脚/RE,IO1接到SN75LBC180的发送数据控制引脚DE,数据的接收和发送就是靠IO0和IO1的电平高低来控制的。SN75LBC180的总线互连部分只画出不差分接收的电路,差分发送电路与接收电路相同,故没有在电路中示出。由于RS-485的通信载体是双绞线,它的特性阻抗是120Ω,所以在RS-485的网络传输线的始端和末端各接1只120Ω的匹配电阻R3,以减少线路上传输信号的反射。SN75LBC180的A、B输入端接上拉、下拉电阻R1、R2是为不防止F206被误中断而收到乱字符;R4、R5可使本机的硬件故障不影响整个总线的通信;稳压管D1、D2组成吸收回路以抵抗传输线上的各种干扰,用来保护RS-485总线。
4 软件设计简述 该语音教学系统中的学生机单元的软件框架见图5。软件设计的核心是协调各中断(从主机来的串口接收中断、从语音芯片MSM6588来的采样中断和播放中断以及从键盘来的中断)之间的逻辑关系。学生机的主要任务是:在播放的时候,既要保证接收数据完整,又要保证语音播放不间断;在寻间的时候,既要保证采样连续,又要保证完整地发送数据包。本程序采用双缓冲技术来解决这些剖,即在播放时,接收一个数据包到一个缓存区,同时播放另一个缓存区中的数据包;录音时,采样一个缓存区,同时发送另一个缓存区中的数据包。
文章评论(0条评论)
登录后参与讨论