基于TMS320F28027的语言录放
模块的设计
文章介绍了这次活动中的关键
模块(语音录放
模块)的基本设计思路和整个系统的构架,通过一些实际参量的分析,计算,提高整个系统前期设计的可实现性,虽然这个模型还没有经过实际验证,相关的参考实例也比较少,但他经过了实际的计算,以及参考了一些实际的数据,同时考虑了较多的实际设计中会出现的问题,所以有一定参考意义.
系统模型:
系统由主控CPU(这里主要指我们手上的TMS320F2807的最小系统,包括
电源电路)和四个必要的外围
模块组成,语音信号调理电路用来采集语音信号并且放大,滤波,经
DSP内部自带的AD转换后存储到串行的FLASH,flash的写入速度要比普通的EEPROM快多了,一般可以满足使用,TMS320F28027带有一个串行通讯口,可配置成SPI口,FLASH通过SPI口与
DSP接口,放音的时候
DSP读取FLASH里面的数据,并转换成PWM
脉冲输出,经过语音滤波,放大后
驱动喇叭发出声音,按键用来
控制录音和放音.
下面要确定两个关键的参数
1. AD采样的频率多高,这个参数是个非常关键的参数,决定了设计是否可行,是否最优,采样率高了可能会出现存储速度来不及或者占用了很大的FLASH空间,缩短了录音时间,采样速度慢了会出现声音失真,同时播放的速度也要和采样的速度谐调,不然会造成放音速度过快或过慢的现象,都无法正常使用.参考了几种型号的语音
芯片,其内部采样率在3K/s到10K/s之间,使用中发现一般7K的采样率就可以使采集的语音信号正常被还原.为了使声音圆滑,减少失真,同时满足存储,放音速度,可以采用20K/s的采样率,该速度对于
DSP的自动AD来说可以轻松实现,且为12BIT,AD采样结果以16BIT形式存储.
2. flash的大小,由于flash的集成度高,所以容量一般做得比较大,为了延长录音时间,使系统具有更广泛的
应用范围,可以使用SST25VF016B,该flash
芯片具有2Mbyte的存储空间,当系统采样速率为20K/s时(16BIT存储),可以连续录音50S左右的时间.
模块电路设计:
1. 语音信号调理电路
这是我以前做的一个东西上的电路,电路中的运放可以改成LM358,很容易购买。麦克风的语音信号被放大50倍左右,电路具有一定的滤波作用。
2. 串行FLASH接口电路
这个就按
芯片手册上提供的典型接法连接
3. 语音滤波
驱动电路
LM386是专门的语音
功率放大
芯片,使用该
芯片可以使设计简化,减少连线。前面的阻容滤波器用来滤除PWM波中的高频成分。
制作中需要注意的是,放音的PWM信号要和采样频率相同,这样才能正常还原.至于AD,SPI,PWM的使用方法可以参照TI的2807的例程进行修改,然后根据自己所需要的功能编写
软件,比如需要分段录音,可以用一段专门的FLASH空间来记录各个段的起始地址,然后根据按键选择的语音段找到其对应的起始地址,读对应地址的数据播放语音。
备注:由于时间仓促,先写这么多,给大家提提意见和建议(特别是需要改进的地方),给参加活动的朋友提供设计的参考。以后有空再往上加,感谢一下EEWORLD开展了这次对我们非常有意义的活动,感谢合众达提供了这次活动的
开发工具。文中的一些内容参考了网上的设计,所以也要感谢原作者,谢谢。
[
本帖最后由 莫恩 于 2009-3-26 09:05 编辑 ]