语音报站系统的整体方案设计Word文件下载.docx
《语音报站系统的整体方案设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《语音报站系统的整体方案设计Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
–32x8通用工作寄存器+外设控制寄存器
–全静态工作
–工作于16MHz时性能高达16MIPS
–只需两个时钟周期的硬件乘法器
(3)非易失性的程序和数据存储器
–128K字节的系统内可编程Flash
寿命:
10,000次写/擦除周期
–具有独立锁定位、可选择的启动代码区
通过片内的启动程序实现系统内编程
真正的读-修改-写操作
–4K字节的EEPROM
100,000次写/擦除周期
–4K字节的内部SRAM
–多达64K字节的优化的外部存储器空间
–可以对锁定位进行编程以实现软件加密
–可以通过SPI实现系统内编程
(5)JTAG接口(与IEEE1149.1标准兼容)
–遵循JTAG标准的边界扫描功能
–支持扩展的片内调试
–通过JTAG接口实现对Flash,EEPROM,熔丝位和锁定位的编程
(6)外设特点
–两个具有独立的预分频器和比较器功能的8位定时器/计数器
–两个具有预分频器、比较功能和捕捉功能的16位定时器/计数器
–具有独立预分频器的实时时钟计数器
–两路8位PWM
–6路分辨率可编程(2到16位)的PWM
–输出比较调制器
–8路10位ADC
8个单端通道
7个差分通道
2个具有可编程增益(1x,10x,或200x)的差分通道
–面向字节的两线接口
–两个可编程的串行USART
–可工作于主机/从机模式的SPI串行接口
–具有独立片内振荡器的可编程看门狗定时器
–片内模拟比较器
(7)特殊的处理器特点
–上电复位以及可编程的掉电检测
–片内经过标定的RC振荡器
–片内/片外中断源
–6种睡眠模式:
空闲模式、ADC噪声抑制模式、省电模式、掉电模式、Standby模式以及
扩展的Standby模式
–可以通过软件进行选择的时钟频率
–通过熔丝位可以选择ATmega103兼容模式
–全局上拉禁止功能
(9)I/O
53个可编程I/O口线
(10)工作电压
2.7-5.5VATmega128L
4.5-5.5VATmega128
(11)速度等级
0-16MHzATmega128
8位微处理器,具有
128K字节的系统
内可编程Flash
ATmega128为基于AVRRISC结构的8位低功耗CMOS微处理器。
由于其先进的指令集以及单周期指令执行时间,ATmega128的数据吞吐率高达1MIPS/MHz,从而可以缓减系统在功耗和处理速度之间的矛盾。
AVR内核具有丰富的指令集和32个通用工作寄存器。
所有的寄存器都直接与算术逻辑运算单元(ALU)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。
这种结构大大提高了代码效率,并且具有比普通的复杂指令集微处理器高10倍的数据吞吐率。
ATmega128具有如下特点:
128K字节的系统内可编程Flash(具有在写的过程中还可以读的能力,即RWW)、4K字节的EEPROM、4K字节的SRAM、53个通用I/O口线、32个通用工作寄存器、实时时钟RTC、4个灵活的具有比较模式和PWM功能的定时器/计数器(T/C)、两个USART、面向字节的两线接口TWI、8通道10位ADC(具有可选的可编程增益)、具有片内振荡器的可编程看门狗定时器、SPI串行端口、与IEEE1149.1规范兼容的JTAG测试接口(此接口同时还可以用于片上调试),以及六种可以通过软件选择的省电模式。
空闲模式时CPU停止工作,而SRAM、T/C、SPI端口以及中断系统继续工作;
掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作,寄存器的内容则一直保持;
省电模式时异步定时器继续运行,以允许用户维持时间基准,器件的其他部分则处于睡眠状态;
ADC噪声抑制模式时CPU和所有的I/O模块停止运行,而异步定时器和ADC继续工作,以减少ADC转换时的开关噪声;
Standby模式时振荡器工作而其他部分睡眠,使得器件只消耗极少的电流,同时具有快速启动能力;
扩展Standby模式则允许振荡器和异步定时器继续工作。
器件是以Atmel的高密度非易失性内存技术生产的。
片内ISPFlash可以通过SPI接口、通用编程器或引导程序多次编程。
引导程序可以使用任何接口来下载应用程序到应用Flash存储器。
在更新应用Flash存储器时引导Flash区的程序继续运行,实现RWW操作。
通过将8位RISCCPU与系统内可编程的Flash集成在一个芯片内,ATmega128为许多嵌入式控制应用提供了灵活而低成本的方案。
2ATmega128引脚说明
ATmega128芯片引脚图如图(2.2.1)所示。
图(2.2.1)ATmega128芯片引脚图
1.VCC:
数字电路的电源。
2.GND:
地。
3.端口A(PA7..PA0):
端口A为8位双向I/O口,并具有可编程的内部上拉电阻。
其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。
作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。
复位发生时端口A为三态。
端口A也可以用做其他不同的特殊功能。
4.端口B(PB7..PB0):
端口B为8位双向I/O口,并具有可编程的内部上拉电阻。
复位发生时端口B为三态。
端口B也可以用做其他不同的特殊功能。
5.端口C(PC7..PC0):
端口C为8位双向I/O口,并具有可编程的内部上拉电阻。
复位发生时端口C为三态。
端口C也可以用做其他不同的特殊功能。
6.端口D(PD7..PD0):
端口D为8位双向I/O口,并具有可编程的内部上拉电阻。
复位发生时端口D为三态。
端口D也可以用做其他不同的特殊功能。
7.端口E(PE7..PE0):
端口E为8位双向I/O口,并具有可编程的内部上拉电阻。
复位发生时端口E为三态。
端口E也可以用做其他不同的特殊功能。
8.端口F(PF7..PF0):
端口F为ADC的模拟输入引脚。
如果不作为ADC的模拟输入,端口F可以作为8位双向I/O口,并具有可编程的内部上拉电阻。
复位发生时端口F为三态。
如果使能了JTAG接口,则复位发生时引脚PF7(TDI)、PF5(TMS)和PF4(TCK)的上拉电阻使能。
端口F也可以作为JTAG接口。
9.端口G(PG4..PG0):
端口G为5位双向I/O口,并具有可编程的内部上拉电阻。
复位发生时端口G为三态。
10.RESET:
复位输入引脚超过最小门限时间的低电平将引起系统复位。
低于最小门限时间的脉冲不能保证可靠复位。
11.XTAL1:
反向振荡器放大器及片内时钟操作电路的输入。
12.XTAL2:
反向振荡器放大器的输出。
13.AVCC:
AVCC为端口F以及ADC转换器的电源,需要与VCC相连接,即使没有使用ADC也应该如此。
使用ADC时应该通过一个低通滤波器与VCC连接。
14.AREF:
AREF为ADC的模拟基准输入引脚。
15.PEN:
PEN是SPI串行下载的使能引脚。
在上电复位时保持PEN为低电平将使器件进入SPI串行下载模式。
在正常工作过程中PEN引脚没有其他功能。
2.2.2语音模块的选择
1PM50S50语音芯片的选择及特点
这个系统使用的是PM50S50芯片,PM50系列智能语音芯片既是语音播放电路,也是智能单片机,其音质水平、价格都要略优于著名的ISD电路,同时也有21KHz高保真音质。
而其开发设计简单度、智能控制的简单度、整体性价比等指标要远胜过ISD。
PM50系列智能语音芯片,其特点如下:
(1)可存储声音长度:
13秒-100秒
(2)宽范围工作电压:
DC3-6V
(3)工作电流50mA,静太电流1uA
(4)直接驱动8欧姆0.5瓦的喇叭,PWM和DAC两种音频输出模式
(5)宽范围采样频率:
4.8K-21KHz
(6)录制的语音可分并行1-8段或串行128段
(7)自带8个输入端口,9个输出端口,功能均可由用户自定义
(8)FLASHRAM存储器集合构成,可反复擦写录入,寿命在1万次以上
(9)两种封装形式:
COB28和COB16
(10)开发用的电脑软件系超智能傻瓜图形设计,外行也能使用
(11)配合编程软件可以开发出并行、串行、智能型等多种控制模式
(12)最小系统的外围电路只需一只震荡电阻、一只电源滤波电容
(13)它既有13秒到100秒的多段语音播放功能,也有单片机可编程的智能特性
(14)完成开发和试验生产后,直接用源文件投产掩模,音质效果、功能性能不变
2PM50S50语音芯片引脚图如图(2.2.2)所示:
图(2.2.2)PM50S50芯片引脚图
3PM50S50芯片管脚定义:
PM50SS50(COB28)管脚定义表
脚号
名称
用途
1
GND
电源地端
28
FM
编程端
2
FC
27
FD
3
FA
26
FK
4
K1
输入
25
RET
复位端
5
K2
24
OUT1
输出1
6
K3
23
OUT2
输出2
7
K4
22
OUT3(LED2)
输出3
8
K5
21
OUT4
输出4
9
K6
20
OUT5
输出5
10
K7
19
OUT6
输出6
11
K8
18
OUT7
输出7
12
ROSC
振荡电阻
17
OUT8
输出8
13
SP1/DAC
喇叭端1
16
LED1
输入3
14
SP2
喇叭端2
15
VDD
正电源端
2.2.3触摸屏模块的选择
这个系统使用的是创意电子TFT220*176触摸液晶屏,它在系统中的主要作用是作触摸键盘控制输入,它的优点是可以随时增加或减少控制输入点、还能显示图案等等,触摸式键盘不紧使用方便,而且灵活可靠。
液晶触摸屏如图(2.2.3)所示:
TFT220*176
图(2.2.3)液晶触摸屏
3硬件系统电路设计
3.1报站系统控制模块设计
本模块是语音报站系统的核心部分,首先由液晶触摸键盘输入信息给单片机处理后输出指令,给到语音模块及液晶屏键盘显示模块,来实现语音报站。
从方便实用的角度着手,实现了比较完善的操作功能,使得操作更加灵活,维护也很方便。
单片机的I/O资源分配如下:
触摸屏键盘DATABUS:
PA.0-PA.7----------->
LCM11-18
LCMCONTROL:
PD.0------------>
LCMRESET
PD.1------------>
LCMBL_EN
PD.2------------>
LCMCS
PD.3------------>
LCMWR
PD.4------------>
LCMRD
PD.5------------>
LCMRS
TPCONTROL:
PE.0------------>
TP_CS
PE.1------------>
TP_DCLK
PE.2------------>
TP_DIN
PE.3------------>
TP_BUSY
PE.4------------>
TP_DOUT
PE.7------------>
TP_INT
语音芯片PM50S50CONTROL:
PB.2----tx_pinK1
PB.1----clk_pinK2
PB.0----OUT1
3.1.1单片机在报站系统中的应用
在这里单片机所起到的主要作用是,将液晶屏触摸键盘发送过来的控制信号进行读取,然后经单片机处理后发出相应的信号给PM50S50智能语音芯片,使它能按照人所操作命令进行智能语音报站,其次是,当语音报站系统开机时触摸液晶屏上会显示出开机图案。
单片机主控模块硬件设计电路如图(3.1.1)所示:
图(3.1.1)单片机硬件设计电路
3.1.2系统液晶屏触摸键盘设计
在单片机系统中,按键和键盘是一种基本和常用的接口,它是构成人机对话通道的一种常用方式。
按键和键盘能实现向系统输入数据、传输命令等功能,是人工干预、设置和控制系统运行的主要手段。
这个系统中采用的是液晶屏触摸键盘,首先由单片机对液晶屏进行初始化,当键盘按下时经过A/D转换输入给单片机,由单片机处理后,根据当前输入的按键编码及标志,把控制直接分支到处理子程序,然后输出从而获得响应。
在简单的控制系统中,一个键代表一个命令或一个数字,结构和处理程序简单,扩展方便。
触摸屏键盘电路如图1(3.1.2.)所示及触摸键盘模型如图2(3.1.2)所示:
图1(3.1.2)触摸屏键盘电路
图2(3.1.2)触摸键盘模型
3.2语音模块电路设计
大多数的语音电路都能完成语音的录与放功能,根据此设计的实际应用场合,我们只要求它的录音通过手动来完成而放音是通过单片机来控制。
整个电路模块是以PM50S50智能语音芯片为核心和一些外围的保护电路所组成。
PM50S50硬件设计电路如图(3.2)所示。
图(3.2)PM50S50硬件设计电路
3.2.1PM50S50语音芯片工作原理
1PM50的标准串行控制方式
须由外部单片机接口,发串行指令控制放音的段号,段数最大128段,专用于语音组合用。
如报数、报温度、语音辞典用等。
在该串行模式下最大可分128段,K1为数据端,K2为时钟端,O1为忙信号端。
时钟上升沿时数据端有效。
语音段的地址为80H-FFH,第一段的地址是80H,按顺序排列,最多128段语音。
外部单片机直接送入要放音的段号数据,播放,结束时PM50的忙信号拉低,在判断一段语音结束时,外部单片机再送下一段语音的段号。
2PM50的串行智能控制方式
越来越多的语音产品智能化日渐增高,即使玩具产品也有很高的智能性,光靠上述手动按键控制的智能编辑模式也不能适应一些高端产品的设计需要。
例如有些小家电产品、高档智能玩具产品,既需要复杂的用户手动按键功能,又需要播报温度、数字、金额等不确定的语音组合,这样就需要将上述的单片机串行控制与智能编辑模式结合起来。
本模式就是这样设计的。
本系统中,用户利用的是串行控制的128个地址,从80H-FFH,每个地址下都能放很多个声音文件的固定组合,还可以定义LED1、O2-O4、O5-O8这八个输出端的输出状态:
高电平、低电平、闪烁;
还可以定义这八个输出状态的时间。
这样就充分利用了PM50的内部智能控制器的全部资源,使用户的外围电路设计和产品开发的软件设计成本都降到最低点。
单片机控制时序图(3.2.1)所示,K2时钟为10HZ-100KHZ内均可。
图(3.2.1)单片机控制时序
4语音报站系统程序设计
4.1系统主程序设计
系统主程序主要完成系统各部分的初始化操作,此外,在系统开机运行时液晶屏上显示出开机图片。
流程图如图(4.1)所示:
图(4.1)主程序流程图
4.2液晶屏初始化与触摸键盘程序设计
当语音报站系统开机时,液晶屏初始化屏幕显示出一张开机图案,接着触摸液晶屏进入触摸键盘待命状态。
程序流程图如
图(4.2)所示:
图(4.2)报站流程图
4.3语音中断处理程序设计
在系统中语音的处理程序设置为单片机外部中断INT1的中断处理程序,每当播放一段语音信息检测到EOM信号时便执行该程序,使语音芯片地址指针复位,并设置EOM标志位为0,开始下一段语音信息的搜索和播放。
语音中断处理程序的路程图如图(4.3)所示:
图(4.3)语音中断处理程序流程图
5系统调试
单片机应用系统的软件调试和硬件调试是分不开的,许多硬件故障是在调试软件时才发现的。
但通常是先排除系统中明显的硬件故障后才和软件结合起来调试。
5.1软件与硬件调试
首先进行脱机调试,在系统加电之前,先用万用表等工具,根据硬件电气原理图和装配图仔细检查线路的正确性,并核对元器件的型号、规格和安装是否符合要求。
应特别注意电源的走线,防止电源之间的短路和极性错误。
通过脱机调试可排除一些明显的硬件故障。
有些硬件故障还是要通过联机调试才能发现和排除。
联机前先断电,检查各部分电源、接地是否良好。
一切正常,即可打开电源。
通电后按由主机到外围器件进行调试,可用示波器观察波形(如输出波形、读写控制信号、地址数据波形以及有关控制电平)。
通过对波形的观察分析,寻找故障原因,并进一步排除故障。
最后再进行软件调试,按程序模块一个一个的进行调试,正常后再进行连续调试通过以上的工作,系统基本上能达到设计要求。
5.2常见故障
(1)器件失效
元器件失效的原因有几个方面:
一是器件本身已损坏或性能不符合要求;
二是由于组装错误造成的元器件失效,如电解电容、二极管的极性错误,集成块安装方向错误;
三是环境太恶劣造成器件容易老化等。
(2)可靠性差
引起系统不可靠的因素很多,如金属化孔、接插件接触不良会造成系统时好时坏;
内部和外部的干扰、电源纹波系数过大、器件负载过大等造成逻辑电平不稳定;
另外,走线和布局的不合理等也会引起系统可靠性差。
附录1:
语音报站程序
//****************************语音报站系统主程序***********************//
#include<
iom128v.h>
D:
\AVR.H>
#include"
lcd.h"
TouchPad.h"
voidport_init(void)
{
PORTA=0x00;
DDRA=0xff;
PORTB=0x00;
DDRB=0x00;
PORTC=0x00;
//m103outputonly
DDRC=0x00;
PORTD=0xFF;
DDRD=0xff;
PORTE=0x0F;
DDRE=0x07;
PORTF=0x00;
DDRF=0x00;
PORTG=0x00;
DDRG=0x00;
}
#pragmainterrupt_handlerint7_isr:
iv_INT7
voidint7_isr(void)
CLI();
bTP_INT=TRUE;
TestTP();
SEI();
//externalinteruptonINT7
//callthisroutinetoinitializeallperipherals
voidinit_devices(void)
//stoperrantinterruptsuntilsetup
//disableal