1 gsm-r手持终端功能概述
铁道部已确定以gsm-r系统作为中国铁路无线通信平台,因此,以gsm-r为平台建立综合无线通信系统,为gsm-r网络的各种作业提供无线通信手段和设备已迫在眉睫。
wt588d接收端反应速度较快,整个语音信息从触发到播放并发送busy反馈信号的时间不到5ms,能在速度上很好的迎合整套系统所追求的速率。在配套软件方面,从语音编辑到下载语音工程,操作都趋向简易模式,不仅能很好的被资深设计者使用,而且也适合入门者做实验测试。
gsm-r手持终端在编组站中有着特殊的应用。编组站的作业以小组为单位,完成调车、编组工作。小组的每位成员均配备gsm-r专业手持终端,并根据职务要求的不同,具有各自的功能。本文主要介绍语音回示功能的实现方式。调车长发出的调度指令种类是有限的,因此,gsm-r手持终端可以先预存相应指令的语音信息,然后根据收到的调度指令,播放出相应的语音。这个功能是编组站手持终端必备的功能,本文采用atmega48和wt588d语音芯片完成此功能,并采用一种全新的方法高效完成atmega48与wt588d语音芯片之间的通信与控制,完全发挥了atmega48高速的特点。
2 器件简述
本文采用wt588d语音芯片与atmega48之间的spi控制接口,完成所需要的语音回示功能。
atmega48是avr单片机的一个型号,avr内核具有丰富的指令集和32个通用工作寄存器。所有的寄存器都直接与算术逻辑单元(alu)相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。它还废除了机器周期,采用精简指令集,以字作为指令长度单位,将内容丰富的操作数与操作码安排在一字之中,取指周期短,又可预取指令,实现流水作业,可高速执行指令。这种结构大大提高了代码效率,并且具有比普通的cisc微控制器最高至10倍的数据吞吐率。在软/硬件开销、速度、性能和成本诸多方面取得了优化平衡,是高性价比的单片机。
wt588d语音芯片采用语音数据直接在spi-flash存储器中存储的技术,下载速度快,并经过d/a转换后输出。因此能够非常真实、自然地再现语音、音乐、音调和效果声。功能多、音质好、应用范围广性能稳定是wt588d系列语音芯片的特长,弥补了以往各类语音芯片应用领域狭小的缺陷。能够完全取代isd1700、isd1425、isd4000、pm50等语音芯片。
wt588d系列语音芯片具有如下特点:变更语音内容简单,放音方便;高音质,声音自然;支持2m~64m的spi-flash内存,在6k采样下能达到2149s的放音;手动操作/微控制器控制兼容;放音时可用边沿触发或电平触发;可以循环放音;具有自动节电控制,节电时静态电流小于10ua;信息存储无需后背电源;最多可加载220段语音;pwm输出可直接推动0.5w/8ω扬声器;可重复擦除烧写10万次;放音可用单片机编程控制;单电源工作;模块封装(带flash存储器)为16脚、28脚嵌入式形式,芯片封装为dip18、ssop20和lqfp32形式。
wt588d voicechip 软件是根据wt588d 语音芯片特性开发出来的相对应配套软件。它很好的完成对wt588d 语音芯片各种控制模式程序的写入,当单片机口线不够可选用一线串口控制或spi串口控制,更有能够作为扩展单片机i/o口线的功能,非常适合在单片机场合下使用。软件还能完成语音的替换、组合,音频输出模式的设置等,而且操作界面简单,编辑过程方便。
3 硬件电路设计
wt588d的所有操作都由微控制器控制,操作命令可通过串行通信接口spi送入。spi 协议假定微控制器的spi移位寄存器在sclk的下降沿动作,因此对wt588d而言,在时钟上升沿锁存mosi引脚的数据。使用atmega48的spi接口直接控制wt588d,因此硬件设计相对比较简单。如图1所示。
atmega48作为spi主设备,wt588d作为spi从设备。atmega48通过/ss片选wt588d,mosi控制线向wt588d发送控制信息,播放相应的语音信息。当wt588d读到语音尾端时,会产生一个中断,atmega48接收此中断,播放下一段语音。
具体引脚连接如下:
1、atmega48的ss与wt588d的cs相连,当atmega48对wt588d进行操作时,选通此芯片。
2、atmega48的mosi与wt588d的data相连,进行数据的传输。
3、atmega48的sclk与wt588d的clk相连,提供串行数据的时钟。
4、atmega48的中断线与wt588d的busy相连,可以作为语音播放完毕的中断信号。
5、wt588d可以设置为dac(外接功放)输出或者pwm(直接驱动喇叭)输出,播放选中的语音信息。
4 软件实现
本文使用atmega48的spi接口直接控制wt588d,对其相应的地址进行读操作,完成选定语音的播放。spi收发程序往往是一段采用轮循方式完成收发的简单代码,也就是单片机通过mosi寄存器发送数据。同时根据查询mosi状态寄存器的状态来判断是否能发送下一个数据。在此过程中,单片机处于死等的状态,不能进行任何其它任务的执行。对于高速的avr来讲,采用这种方式大大降低了mcu的效率,无法发挥其高速、高效的特点。同时,由于atmega48在完成语音回示的同时,还需要完成语音通话、故障记录等功能,因此需要mcu能更高效地完成spi收发功能。
在使用atmega48时,根据芯片本身的特点(片内大容量ram,适合采用高级语言编写系统程序),使用了一种新的方法,采用接收和发送缓冲器加中断的方法,编写高效可靠的spi收发程序。
基本思路如下:
1、发送数据时,如果mosi数据寄存器为空,则直接将需要发送的数据填入mosi数据寄存器,由单片机自动完成数据的发送。
2、发送数据时,如果mosi数据寄存器不为空,也就是说有待发的数据,此时将需要发送的数据填入发送数据缓冲区(构建在atmega48的ram中)。单片机将数据置入发送缓冲区中,就算已经完成了数据的发送,可以执行别的指令,这样,充分发挥了其并行高速运行的特点。本文在中断处理程序中完成对发送缓冲区数据的处理。每次mosi数据寄存器数据发送完成,都会产生一个中断,因此当产生中断时,表明前一个数据已经发送完成,将待发的发送缓冲区数据置入mosi数据寄存器,进行数据的自动发送。
以下为spi数据发送程序和spi中断处理程序,流程分别如图2、图3所示。
图2 数据发送程序
图3 中断处理程序
采用缓冲加中断的spi发送方法,能够高效地完成数据的收发,提高mcu的效率,具有以下优点:
l、采用两个8字节的接收和发送缓冲器来提高mcu的效率,如当程序发送数据时,如果spi口不空闲,就将数据放入发送缓冲器中,mcu不必等待,可以继续执行其它工作。而spi的硬件发送完一个数据后,产生中断,由中断服务程序负责将发送缓冲器中的数据依次送出。
2、数据缓冲器结构是一个线性的循环队列,由读、写和队列计数器3个指针控制,用于判断队列是否空、溢出,以及当前数据在队列中的位置。
3、由于在数据发送程序和中断服务程序中都要对数据缓冲器的读、写和队列计数器3个指针进行判断和操作,为了防止冲突,在数据发送程序中对3个指针操作时临时将中断关闭,提高了程序的可靠性。
5 结语
整个控制系统采用缓冲加中断的spi发送方法,使用两个数据缓冲器,分别构成循环队列。这种程序设计思路,不但程序的结构性完整,同时也解决了高速mcu和低速串口之间的矛盾,实现 程序中任务的并行运行,提高了mcu的运行效率,同时这种程序设计的思路对编写uart、i2c的串行通信接口程序都是非常好的借鉴。
高精度肥料养分检测仪的特点介绍
!安立S331D S331D天馈线测试仪S331D现货 小兵
华为Mate 60 Pro需求旺盛,高端智能手机市场蓬勃发展
如何构造原型系统?八大原则不得不知
详解锂电池与燃料电池的微妙关系
新型数据通信方式GSM-R手持终端的实现
充电宝哪个牌子好,2020质量最好的充电宝
Face ID将全面取代Touch ID成为iPhone这条产品线上的当家功能之一
面对华硕手机的惨败,华硕CEO沈振来不得不请辞下台
海尔电视在会上发布了2019年度幼儿教育创新生态,掀起幼儿智教新革命
无刘海的iPhone或许会出现在今年?
一款整合了ChatGPT的源IP扫描工具
否认断供华为背后,“美帝良心想”的帽子不好摘
ZigBee的相关应用及优点分析
RS瑞森健康照明整体解决方案
TCL华星显示模组获颁TÜV莱茵“含回收材料产品”认证证书
rfid智能井盖如何协助城市管理
plc开关量、模拟量转换
土壤取样器的组成配置及其作用的简单说明
联想ThinkBook斩获全球61项大奖 新品震撼来袭