语音回示在GSM-R手持终端中的实现

2007-03-09 19:03:27来源: 互联网
摘 要:本文介绍了GSM-R手持终端语音回示功能的实现。采用Atmega128与ISD4003之间的SPI控制接口,完成所需要的功能,给出了相应的硬件设计及软件实现,使用了一种全新的数据通信方式,采用缓冲加中断的方法,解决了高速MCU和低速串口之间的矛盾。 关键词: 语音回示;GSM-R;ISD4003;串行通信 [b]GSM-R手持终端功能概述 [/b] 铁道部已确定以GSM-R系统作为中国铁路无线通信平台,因此,以GSM-R为平台建立综合无线通信系统,为GSM-R网络的各种作业提供无线通信手段和设备已迫在眉睫。 GSM-R手持终端在编组站中有着特殊的应用。编组站的作业以小组为单位,完成调车、编组工作。小组的每位成员均配备GSM-R专业手持终端,并根据职务要求的不同,具有各自的功能。本文主要介绍语音回示功能的实现方式。调车长发出的调度指令种类是有限的,因此,GSM-R手持终端可以先预存相应指令的语音信息,然后根据收到的调度指令,播放出相应的语音。这个功能是编组站手持终端必备的功能,本文采用Atmega128和ISD4003完成此功能,并采用一种全新的方法高效完成Atmega128与ISD4003之间的通信与控制,完全发挥了Atmega128高速的特点。 [b]硬件电路设计 [/b]器件简述 本文采用Atmega128与ISD4003之间的SPI控制接口,完成所需要的语音回示功能。 Atmega128是AVR单片机的一个型号,其废除了机器周期,采用精简指令集,以字作为指令长度单位,将内容丰富的操作数与操作码安排在一字之中,取指周期短,又可预取指令,实现流水作业,可高速执行指令,在软/硬件开销、速度、性能和成本诸多方面取得了优化平衡,是高性价比的单片机。 ISD4003系列语音芯片的工作电压为3V,单片录放时间为4~8分钟,音质好,芯片采用CMOS技术,内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存储阵列。芯片采用多电平直接模拟量存储技术, 每个采样值直接存储在片内Flash中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和"金属声"。采样频率可为 4.0、5.3、6.4或8.0kHz,频率越低,录放时间越长,而音质则有所下降。 硬件电路设计 图 1 硬件电路图 ISD4003的所有操作必须由微控制器控制,操作命令可通过串行通信接口(SPI或Microwire)送入。SPI 协议假定微控制器的SPI移位寄存器在SCLK的下降沿动作,因此对ISD4003而言,在时钟上升沿锁存MOSI引脚的数据,在下降沿将数据送至MISO引脚。使用Atmega128的SPI接口直接控制ISD4003,因此硬件设计相对比较简单。如图1所示。 Atmega128作为SPI主设备,ISD4003作为SPI从设备。Atmega128通过/SS片选ISD4003,MOSI控制线向ISD4003发送控制信息,播放相应的语音信息。当ISD4003读到语音尾端时,会产生一个中断,Atmega128接收此中断,播放下一段语音。 具体引脚连接如下: 1、 Atmega128的SS的CS与ISD4003相连,当Atmega128对ISD4003进行操作时,选通此芯片。 2、 Atmega128的MOSI/MISO与ISD4003的MOSI/MISO相连,进行数据的输入/输出。 3、 Atmega128的SCLK与ISD4003的SCLK相连,提供串行数据的时钟。 4、 INT接Atmega128的中断线,作为语音播放完毕的中断信号。 5、 ISD4003的AUD_OUT引脚接功放或者喇叭,播放选中的语音信息。 [b]软件实现 [/b] 本文使用Atmega128的SPI接口直接控制ISD4003,对其相应的地址进行读操作,完成选定语音的播放。 SPI收发程序往往是一段采用轮循(Polling)方式完成收发的简单代码,也就是单片机通过MOSI寄存器发送数据。同时根据查询MOSI状态寄存器的状态来判断是否能发送下一个数据。在此过程中,单片机处于死等的状态,不能进行任何其它任务的执行。对于高速的AVR来讲,采用这种方式大大降低了MCU的效率,无法发挥其高速、高效的特点。同时,由于Atmga128在完成语音回示的同时,还需要完成语音通话、故障记录等功能,因此需要MCU能更高效地完成SPI收发功能。 图 2 数据发送程序 在使用Atmega128时,根据芯片本身的特点(片内大容量RAM,适合采用高级语言编写系统程序),使用了一种新的方法,采用接收和发送缓冲器加中断的方法,编写高效可靠的SPI收发程序。 基本思路如下: 1、发送数据时,如果MOSI数据寄存器为空,则直接将需要发送的数据填入MOSI数据寄存器,由单片机自动完成数据的发送。 2、发送数据时,如果MOSI数据寄存器不为空,也就是说有待发的数据,此时将需要发送的数据填入发送数据缓冲区(构建在Atmega128的RAM中)。单片机将数据置入发送缓冲区中,就算已经完成了数据的发送,可以执行别的指令,这样,充分发挥了其并行高速运行的特点。本文在中断处理程序中完成对发送缓冲区数据的处理。每次MOSI数据寄存器数据发送完成,都会产生一个中断,因此当产生中断时,表明前一个数据已经发送完成,将待发的发送缓冲区数据置入MOSI数据寄存器,进行数据的自动发送。 以下为SPI数据发送程序和SPI中断处理程序,流程分别如图2、图3所示。 图3 中断处理程序 void SPISend(unsigned char SPIDATA) { while (SPI_Rx_Count == SPI_BUFFER_SIZE)//发送缓冲区满,清空 { SPI_Rx_Count=0; SPI_Rd_Count=0; } _CLI(); if (SPI_Rx_Count||(SPI_OK==0)) file://发送缓冲区有待发数据或SPI正在发送数据时 {SPI_TX_BUFF[SPI_Wr_Count] = SPIDATA; file://将数据放入发送缓冲区排队 if (++SPI_Wr_Count == SPI_BUFFER_SIZE) SPI_Wr_Count = 0; file://调整指针 ++SPI_Rx_Count; } else { SPDR =SPIDATA; file://发送缓冲区中空且SPI口空闲,放入SPDR发送 SPI_OK = 0; } _SEI(); } #pragma vector=SPI_STC_vect // SPI中断 __interrupt void SPI_STC_vect_interrupt() { SPI_OK = 1; // SPI 空闲 if (SPI_Rx_Count) file://如果发送缓冲区中有待发的数据 { 裇PI_Rx_Count; SPDR = SPI_TX_BUFF[SPI_Rd_Count]; file://发送字节数据,并调整指针 if (++SPI_Rd_Count == SPI_BUFFER_SIZE) SPI_Rd_Count = 0; SPI_OK = 0; // SPI 发送中 } } 采用缓冲加中断的SPI发送方法,能够高效地完成数据的收发,提高MCU的效率,具有以下优点: l、采用两个8字节的接收和发送缓冲器来提高MCU的效率,如当程序发送数据时,如果SPI口不空闲,就将数据放入发送缓冲器中,MCU不必等待,可以继续执行其它工作。而SPI的硬件发送完一个数据后,产生中断,由中断服务程序负责将发送缓冲器中的数据依次送出。 2、数据缓冲器结构是一个线性的循环队列,由读、写和队列计数器3个指针控制,用于判断队列是否空、溢出,以及当前数据在队列中的位置。 3、由于在数据发送程序和中断服务程序中都要对数据缓冲器的读、写和队列计数器3个指针进行判断和操作,为了防止冲突,在数据发送程序中对3个指针操作时临时将中断关闭,提高了程序的可靠性。 [b]结语 [/b] 采用缓冲加中断的SPI发送方法,使用两个数据缓冲器,分别构成循环队列。这种程序设计思路,不但程序的结构性完整,同时也解决了高速MCU和低速串口之间的矛盾,实现程序中任务的并行运行,提高了MCU的运行效率,同时,这种程序设计的思路对编写UART、I2C的串行通信接口程序都是非常好的借鉴。 参考文献 1、 Atmegal128 DATA SHEET 2、 ISD4003 Series DATA SHEET 3、 基于GSM-R编组站综合无线通信解决方案. 铁道科学研究院

关键字:语音  手持  手持终端  终端

编辑: 引用地址:http://www.eeworld.com.cn/wltx/RFID/200703/2162.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
语音
手持
手持终端
终端

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved