SPCE061A单片机在无线接收播放器中的应用
摘 要: 将具有语音处理功能的低成本的SPCE061A单片机作为无线语音播放器的核心器件,通过对语音资料的压缩和解压缩,采用信息容量较少的低频段数据传输,实现了非广播频段的准实时语音广播。
关键词: 单片机 无线传输 语音 目前,电子监控技术已经成功地应用于很多方面,取得了良好的效果,其推广普及的规模也在进一步扩大。但是,由于被监控点的环境及监控的目的、要求各不相同,所需要的监控技术也会有很大的差异。如一些要求保密性高、被监控范围大的场合,除了需要用视频对现场进行实时监视外,还需要能够对值班人员进行现场语音指示。为了保密和防止非工作信息的干扰,此类应用场合通常不允许如手机、收音机等常用的通讯设施介入。因此,系统除了采用成熟的视频监控技术外,还要加入具有保密功能的单向语音通话系统。本系统采用了具有语音处理功能的低成本的SPCE061A单片机芯片作为无线语音播放器的核心器件,选用信息容量较少的低频段进行无线数据传输,实现了非广播频段的准实时、一对一或一对多的语音广播。并且通过语音信息的编码、解码和加密、解密技术,消除了系统以外语音信号的干扰。它非常适合一些对音色要求不是很高(仅作为通话用),又要求低成本的场合应用。这项技术和视频监控结合使用,能够实现通过总监控室进行全局指挥的功能。
1 无线语音单向通话系统结构原理
无线语音单向通话系统结构如图1所示。在微型计算机上通过高级语言可视化编程,可以方便地实现对语音指令的采集、压缩、编码、指定位置传输等操作;通过连接在计算机串口上的无线发送模块,将压缩、加密后带有地址码的语音信息发送出去;无线接收模块将接收到的射频信号转换成数字信号发送给语音播放器,语音播放器根据接收到的属于自己的地址码进行数据解码及播放。
2 语音压缩编码和播放方式
实时语音系统要在保证所需要语音质量的前提下,尽可能地降低信息压缩、传输、解码难度。因此选择一种合适的压缩编码方式非常重要。
2.1 凌阳语音压缩编码方式
按照一定的频率和量化位数对语音信息进行采集即可得到数字音频资料,但是这样的音频资料数据量非常大,直接对其进行存储和传输在实际应用中不容易实现。所以要在满足一定音质要求的条件下对其进行压缩,实现以较少的数据量来表达实际的声音信息。SPCE061A单片机支持以下三种语音压缩编码方式:
(1)SACM-A2000属于波形编码方式,这种编码方式是将时间域信号直接变换为数字信号,解码后的语音波形和原语音信号的波形基本相同。这种方式的优点是能保持好的语音音质;缺点是只能达到8:1的压缩比,压缩后仍需要较大的数据存储空间和较高的传输速率。
(2)SACM-S240属于参数编码方式,这种编码方式是将信源信号在频率域或其他正交变换域提取特征参数,并将其变化成数字信号,主要目的是降低编码比特率。这种方式的优点是可达到80:1的压缩比,缺点是解码后的音频信号和原信号的波形会有较大差别,导致音质不高。
(3)SACM-S480属于参数编码和波形编码的混合编码,这种编码方式结合了以上两种编码方式的优点,压缩比约为80:3,保持了波形编码的高质量和参数编码的低速率。
三种编码方式中,S240的压缩比高,语音音质较差;A2000方式音质最好,但压缩比过低,压缩后数据量大;S480既能满足语音播放中的音质要求,压缩后的数据量也不太大,所以在无线语音单向通话系统中选择这种压缩编码方式。
2.2 SACM-S480方式下的语音播放步骤
SPCE061A单片机在SACM-S480方式下的语音解码、播放的步骤是:在计算机上将语音录制成wav文件,用专用压缩工具将其压缩成.48k文件;使用时,将.48k文件作为语音资源和程序一起下载到SPCE061A内置Flash存储器中进行读取和解码播放。播放流程如图2所示。
2.3 SACM-S480方式下进行语音播放需注意的问题
(1)计算机压缩生成的.48k文件与下载到SPCE061A的Flash存储器中的数据对比发现,.48k文件的前48个字节数据未被下载到Flash存储器中,说明这些字节是压缩文件的描述性字节而不是语音资源;在.48k文件的末尾是三个连续的0xFF字节,为规定的语音播放结束标志。
(2)SPCE061A是一款16位单片机,数据按字存储。两字节数据下载后拼接成一个字存储,相邻数据的顺序发生了颠倒。例如,二个字节数据00010010、00110010下载到Flash存储器中变成0011001000010010的格式。
(3)S480方式是30毫秒采样一次,采样480字节语音资料,压缩后变成18字节,形成一个语音数据包。在传输、解压和播放中,要保证一次采样、压缩形成的18字节数据包完整,否则会发生放音声音不正常等现象。
3 无线接收播放器设计
无线语音单向通话系统采用无线的数据传输方式和语音通话的实时性特点,对SPCE061A中使用SACM-S480方式播放语音的方式进行修改。
3.1 语音数据存储区域选择
语音资源通常存储在SPCE061A的片内Flash存储器中。本系统的语音资源是实时接收的,需要反复将数据写入存储器,但Flash存储器再编程次数有限[2],多次写入会影响系统使用寿命;另一方面,Flash存储器写入速度较慢,对系统实时性造成影响。针对以上问题,将接收的语音数据存储在单片机片内RAM中。因为RAM基本不受写入次数的限制,且读写速度高于Flash,其掉电易失性的缺点不会对系统造成影响。
3.2 数据缓冲区设置
单片机内的RAM空间较Flash更加紧缺,需要对空间进行循环利用,且实时语音播放的同时需要完成数据接收及校验。因此要将数据在每一步处理之后先放置在一个缓冲区内,各项工作不需要相互等待。因此,在RAM中实现两个环形数据缓冲区[3],即数据接收缓冲区和语音播放缓冲区。将通过无线接收到的数据放置在数据接收缓冲区中,当缓冲区内的数据量达到一个数据包后,将其取出进行校验。校验正确的数据放入语音播放缓冲区,在语音播放队列不满的情况下,从语音播放缓冲区中取出语音资源放入放音队列。
3.3 软件设计
无线接收播放器软件流程如图3所示,其中最为重要的工作是数据的校验。数据检测模块从数据接收缓冲区读取数据进行检查,当收到本机地址码后,将状态转为播放状态,将一个数据包的数据按照对接规则组成以字为单位的语音资源放入语音播放缓冲区。若在一个数据包的内部发现下一个数据包的包头信息,则说明发生了数据丢失,将此包数据丢弃,直到收到本机停止工作指令后,停止语音播放。
以SPCE061A单片机为核心器件设计的无线语音接收播放器与计算机、无线发送模块共同组成了无线语音单向通话系统。在不允许使用手机、无线电广播等通讯设施的保密性应用场合,有效地实现了实时语音指挥功能。无线语音接收播放器在整个系统中使用量大,它的低成本优势有利于无线语音单向通话系统的推广使用。
|