MSP430单片机与多功能电话留言系统设计
扫描二维码
随时随地手机看文章
前言
MSP430是最近被中国引进的微处理器。它在超低功耗方面有突出的表现,被业界称为绿色MCU。同时它内部有丰富的片内外围模块,是一个典型的片上系统(SOC)。又是16位的精简指令结构,功能相当强大,被广泛应用于嵌入式系统和智能设备。
一、MSP430系列单片机介绍
TI公司设计的MSP430系列单片机是一种超低功耗的混合信号微控制器。这些微控制器通过16位RISC结构、CPU中的16个寄存器和常数发生器使 MSP430微控制器能达到最高的代码效率;灵活的时钟源可以使器件达到最低的功率消耗;数字控制的振荡器(DCO)可使器件从低功耗模式迅速唤醒,在少于6us的时间内激活到活跃的工作方式。MSP430的16位定时器经常被应用于工业控制中如:纹波计数器、数字化电机控制电表和手持式仪表等的理想配置,它的硬件乘法器大大加强了其功能并提供了软硬件相兼容的范围,提高了数据处理的能力。MSP430Fx1x 系列具有FLASH 存储器,不同型号单片机的存储器容量和外围模块各不相同,使用者可以根据需要具体选择。MSP430系列器件均是工业级的,运行环境温度为 -40~+85℃。
MSP430系列单片机具有以下一些共同的特点。
1. 低电压、超低功耗
MSP430系列单片机,在1.8~3.6V电压、1MHz的时钟条件下运行,耗电电流在0.1~400uA之间;具有16个中断源,并且可以任意嵌套,使用灵活方便;用中断请求将CPU唤醒只需6us,可以编制出实时性特别高的源代码;可将CPU置于省电模式,以用中断方式唤醒程序。
2.强大的处理能力
MSP430系列单片机,为16位RISC结构,具有丰富的寻址方式(7种源操作数寻址、4种目的操作数寻址)、简洁的27条内核指令以及大量的模拟指令;大量的寄存器以及片内数据存储器都可以参加多种运算;高效的查表处理方法;有较高的处理速度,在8MHz晶体振荡器驱动下,指令周期为125us。这些特点保证了可编制出高效率的源程序。
3.系统工作稳定
上电复位后,首先由DCOCLK启动CPU,以保证程序从正确的位置开始执行,保证晶体振荡器有足够的启动和稳定时间。然后可以用软件设置最后的系统时钟频率。如果晶体振荡器在用作CPU时钟发生故障,DCO会自动启动,以保证系统正常工作;如果程序跑飞,可用看门狗将其复位。
4.丰富的片内外设
MSP430系列单片机的各成员都集成了较丰富的片内外设。例如:使程序迅速复位的看门狗、可以用来对模拟电压进行比较的比较器、有高达200kbps的12/14位硬件A/D转换器、能直接驱动液晶多达120段。
5.保密性好
熔丝保密功能和256 位密码相结合几乎没有解密的可能,可以充分保证用户程序的安全性。
二、ISD4004 单片语音录放电路介绍
ISD4004系列芯片的工作电压为3V,单片录放时间为8~16分钟,音质好,适用于移动电话及其他便捷式电子产品中。芯片采用CMOS技术,内含振荡器、防混叠滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存储阵列。芯片设计是基于所有操作必须由微控制器控制,操作指令通过串行通信接口 (SPI)送入。芯片采用多电平直接模拟量存储技术,每个采样值直接存储在片内闪烁存储器中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和“金属声”。芯片的采样频率可以为4kHz, 5.3kHz, 6.4kHz和8kHz,采样频率越低,录音时间越长,但是音质将有所下降。采样的信息在断电的情况下能长期保存在闪烁存储器当中,同时芯片可以反复录音 10万次之多。
图一 ISD4004管脚图
同相模拟输入(ANA IN+) 这是录音信号的同相输入端。输入放大器可用单端或差分驱动。单端输入时,信号由耦合电容输入,最大幅度为峰峰值32mV,耦合电容和此端的3KΩ 电阻输入阻抗决定了芯片频带的低端截止频率。差分驱动时,信号最大幅度为峰峰值16mV。
反相模拟输入(ANA IN-) 差分驱动时,这是录音信号的反相输入端。信号通过耦合电容输入,最大幅度为峰峰值16 mV。
音频输出(AUD OUT) 提供音频输出,可驱动5KΩ 的负载。
片选(/SS) 此端为低,即向该ISD4004 芯片发送指令,两条指令之间为高电平。
串行输入(MOSI) 此端为串行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到此端,供ISD 输入。
串行输出(MISO) ISD 的串行输出端。ISD 未选中时,此端为高阻态。
串行时钟(SCLK) ISD 的时钟输入端,由主控制器产生,用于同步MOSE 和MISO 的数据传输。数据在SCLK 上升沿锁存到ISD,在下降沿移出ISD。
中断(/INT) 此端为漏极开路输出。ISD 在任何操作(包括快进)中检测到EOM 或OVF时,此端变低并保持。中断状态在下一个SPI 周期开始时清除。中断状态也可用RINT指令读取。OVF 标志----指示ISD 的录、放操作已达到存储器的末尾。EOM 标志——只在放音中检测到内部的EOM 标志时,EOM状态位才置1。
行地址时钟(RAC) 漏极开路输出。每个RAC 周期表示ISD 存储器的操作进行了一行(ISE4004 系列中存贮器共2400 行)。该信号保持高电平175ms,低电平25ms。快进模式下,RAC 的218.75µs 是高电平,31.25µs 为低电平。该端可用于存储管理技术 。
外部时钟(XCLK) 此端内部有下拉元件。芯片内部的采样时钟在出厂前已调校,误差在+1%内。商业级芯片在整个温度和电压范围内,频率变化在+2.25%内。工业级芯片在整个温度和电压范围内,频率变化在-6/+4%内,此时建议使用稳压电源。若要求更高精度,可从此端输入外部时钟。由于内部的防混淆及平滑滤波器已设定,故上述推荐的时钟频率不应改变。输入时钟的占空比无关紧要,因为内部已进行了分频。在不外接地时钟时,此端必须接地。
自动静噪(AMCAP) 当录音信号电平下降到内部设的某一阈值以下时,自动静噪功能使信号衰弱,这样有助于降低无信号(静音)时的噪声。通常此端对地接1µF 的电容,构成内部信号电平峰值检测电路的一部分。检出的峰值电平与内部定的阈值作比较,决定自动静噪功能的翻转点。大信号时,自动静噪电路不衰减,静音时衰减6dB。1mF的电容也影响自动静噪电路对信号幅度的响应速度。此端接VCCA 则禁止自动静噪。
2.ISD4004的指令表(表一)和串行外设接口(SPI)
表一 ISD4004 指令表
ISD4004工作于SPI串行接口。SPI协议是一个同步穿行数据传输协议,协议假定微控制器的SPI移位寄存器在SCLK的下降沿工作,因此对ISD4004而言,在时钟上升沿锁存MOSI引脚的数据,下降沿到来时将数据送至MISO引脚。协议具体内容如下:
所用串行数据传输开始于SS下降沿。
SS在传输期间必须保持为低电平,在两条指令之间则保持为高电平。
数据在时钟上升沿移入,在下降沿移出。
SS变低,输入指令和地址后,ISD才能开始录放操作。
指令格式为8位控制码外加16位地址码。
ISD的任何操作如果遇到EOM或OVF,则产生一个中断,该终端状态在下一个SPI周期开始时被清除。
使用读指令使中断状态位移出ISD的MISO引脚时,控制及地址数据也应同步从MOSI端移入。
所有操作在运行位(RUN)置1时开始,置零时结束。
所有指令都在SS端为上升沿开始运行。
三、多功能电话留言系统的电路设计
本系统由于需要较多的端口,所以选择MSP430F133作为主控制器。MSP430F133拥有6个8位的并行端口,且2个8位端口有中断能力,同时它具有FLASH存储器,方便开发和调试,而且便于扩展,能满足大多数有关微处理器开发和应用。
多功能电话系统的原理图如图二所示,其模拟部分基本上援用普通电话的电路(在此不作介绍)。它主要是由MSP430F133和ISD4004及其外围设备和接口组成。主要电路有:键盘控制电路,LCD显示电路,语音IC电路,放大电路和对模拟电话部分的控制电路。
图二 多功能电话系统的电路框图
键盘控制电路(图三):我们采用4X4键盘,通过74922键盘扫描集成电路编码,只要键盘编码器 IC74922的第12脚(DA)为高电平,便是有按键按下,此时主控制器就可以读取74922的14-17脚的按键值,此时程序就可以判断哪个键按下,并对其进行相应的操作,只要按键持续进行,第12脚(DA)就将持续为高电平,一直到按键放开,才为低电平。
LCD显示电路:我们使用 16X2 两行英文字形的LCD,要LCD显示字型必须先设定LCD初值,同时控制LCD的三条控制线和8条数据线,三条控制线分别为暂存器选择线(RS)、读/写控制线(R/W)和使能控制端(E)。LCD内部有一块存储字型的ROM,里面存储着192个5X7点阵型的字型,这些字型由存放在LCD内部的DD RAM里的8位元码(与ASCII码相同)调出来显示,所以我们只要输入ASCII码,它就可查出各个字形的显示码,它也可以由使用者自行设计显示字型,LCD的使能端是高电平,可以直接接在主控制器上,也可以接在74LS139上(如果接多片语音芯片ISD4004,可以一起对使能端进行编码)。
语音IC ISD4004电路(图四):它的控制脚有4个,这就是所谓的SPI串行传输端口,分别为 /SS、SCLK、MOSI、MISO四个管脚,其中/SS是语音IC的使能管脚,它的使能是通过74LS139 2X4 解码器的选择来做多功能的使能控制,这样就可以减少主控制器的端口使用,一片74LS139最多可以接4个端口的使能。因为该译码器的输出为低电平,所以我们所接的都是低电平使能的引脚。要送数据给语音IC时,/SS必须为低电平,而在每个指令传输完后,/SS必须要维持为高电平,当/SS为低电平时,才可以传输数据,而SCLK是语音IC的工作时钟,只要在上升沿之前,将数据送到MOSI上,上升沿到来后,数据就会被读入语音IC内,因为语音IC的控制方法是串行的方式,所以所送的数据都必须以单个比特的方式读进去。在录音或放音时,每经过400ms,RAC脚都会产生一个低脉冲,因为语音IC内共有 2400个行,每个行录音结束时,就会输出一个低脉冲,此引脚可用来判断录音路到哪里并用于位置的记录控制,而/INT引脚则是在放音时,用于放音结束与否的判断,当放音结束后,这个引脚就会输出低电平,控制程序就可知放音已经结束了。
放大电路部分: 语音放大电路(本系统采用差分驱动放大器)是对语音输入信号进行放大处理,以达到ISD4004输入信号的要求,使用功率放大器(图五)来驱动扬声器,通过放大滤波可以使扬声器发出清晰而且响亮的语音信号。
对模拟电话部分的控制电路:对模拟电话部分的控制信号有:振铃信号、免提信号、接受语音信号、发送语音信号和远程按键信号。由于MSP430单片机可以用中断使其从低功耗迅速唤醒,所以在正常没有电话或者没有对电话进行操作时,MSP430处于节能方式下,当振铃工作或者对电话操作时,通过振铃信号或者按键使MSP430激活处于正常工作状况下。来电话时对振铃进行计数,如果超出设定的振铃数(可以自行设定)后无人应答,就根据语言提示进行下一步操作,如果选择1#,就准备启动留言系统,如果选择2#,并且输入的密码(可以自行设定和远程修改)校验正确,就准备启动查看留言系统。
结束语
本文介绍了一种新型的低功耗微处理器MSP430的特性及其外围设备的设计,MSP430系列单片机以其优越的性能已经被广泛应用在各种中小型嵌入式系统中,如手持式设备、微通信系统和电机控制等。
参考文献
1 《单片机与嵌入式系统应用》2001(1-6)合订本 北京
2 魏小龙 《MSP430系列单片机接口技术及系统设计实例》2002 北京 北航出版社
3 胡大可 《MSP430系列单片机C语言程序设计与开发》2002 北京 北航出版社
4 柳何 《移动电子解说器》2002 Internet
5 张世昌等 《随身解说器》Internet