当前位置:首页 > 单片机 > 单片机
[导读]话音和数据同传有多种方案,这些方案大都先将话音信号数字化,经过压缩后与外部数据一起打包传输。主要区别在于发送一包话音数据与外部数据的占用时间,以及话音数据与外部数据在包内的分割时长。常见的有两种方案[1

话音和数据同传有多种方案,这些方案大都先将话音信号数字化,经过压缩后与外部数据一起打包传输。主要区别在于发送一包话音数据与外部数据的占用时间,以及话音数据与外部数据在包内的分割时长。常见的有两种方案[1]。一是日本救护车所用的数话同传方案,可将病人的身体状况的检测数据与话音同传。在这一方案中,以625ms为一个话音压缩周期,其中187.5ms用于传送数据,437.5ms用于传送话音,外部数据时隙占整个信道时间的30%,数话同传时话音延迟约为200ms。另一种是UIC建议的数话同传方案。这个方案以1040ms为一个周期,其中260ms用于传输数据,780ms用于传输压缩话音,数据时隙占整个信道的时间为25%。这一方案由于数据占用的时间较短,因此可以提供较好的通话质量,但话音延迟260ms,在双工通话时会使人感到不适,数据传输量也不高。
  上述两种方案的话音延迟都较长,同时外部数据时隙占信道的时间比较短,发送数据量受到一定的限制,主要用于传送话音信号。本文在保证传送话音质量的基础上,尽量减小话音延迟,提高外部数据分割时长,同时根据AMBE话音Codec和GMSK Modem的特点,提出了如图1 所示的数话同传方案。

 AMBE话音Codec[2]采用基于MBE(多带话音激励)模型的压缩技术,已被证明优于CELP、MP-MLQ、LPC-10以及其它的压缩技术,MOS分达到3.5分,能够在低至2.0kbps的压缩速率下保持高质量的话音。所以本系统采用2.4kbps的话音压缩速率时仍然有很好的自然度和可懂性。当单片机查询到有话音数据时,不中断数据的传输,而是延迟60ms,单片机再将AMBE话音Codec传过来的话音数据处理后与外部数据一起打包发给Modem,实现数话同传。从上述方案中可以看出,话音信号的延迟不会超过120ms,优于前两种方案,能够很好地满足实时性的要求;外部数据时隙占整个信道时间约为46%,分割时长也比前两种方案高,此时外部数据传输率约为4800bps。没有话音数据传输时,单片机直接对外部数据进行打包传送,数据传输率为GMSK Modem的传输率,即为9600bps。
1 系统的硬件组成及工作原理
1.1系统的硬件结构
  整个系统的硬件结构框如图2所示。
  系统以Atmel公司的单片机AT89S52和Altera公司的EPLD芯片EPM7128为主控芯片。AT89S52是一款低功耗、高性能的8位微处理器,负责整个系统的绝大多数工作,内部带有8KB可编程的FLASH存储器,无需扩展ROM,自带ISP口,可灵活地进行在系统可编程,可以通过全双工的标准串口与外部计算机或PLC交换数据。EPM7128[3]是Altera公司的MAX7000系列中的一款,具有高阻抗、电可擦写等特点,可用门单元为2500个,管脚间最大延时为5ns,主要用来实现话音压缩和解压缩所需的时序及逻辑控制。话音预处理和ADC-DAC单元采用MC145480[4],其内集成了300Hz~3400Hz的带通滤波器、AD和DA转换器,采样频率为8kHz,每个采样值采用8比特(256个量化级)编码,可输出A 律和μ律可选的64kbps的PCM 信号。话音压缩和解压缩通过AMBE1000[2]完成,压缩速率从2.4kbps~9.6kbps,A/μ律可选,具有语音检测、回声抑制和休眠等功能[2]。数据调制解调部分的核心器件是无线单片收发芯片FX909[5]。此芯片采用GMSK调制解调方式,频带利用率非常高,特别适合在窄带的数传系统中,内部硬件实现FEC和CRC算法,同时兼容Mobitex无线广域网空中接口标准。模拟调频电台将从Modem输出的GMSK信号经过二次调制到数传信道上传输,带宽一般为25kHz,新西兰大吉公司、美国的MDS公司、日本的建武的模拟台都可实现此功能。
1.2 系统工作原理
  在无话音数据传输时,AT89S52将从串口接收的数据打包处理后发送给Modem,Modem对传过来的数据增加前向纠错(FEC)、循环冗余校验(CRC)位后,按Mobitex标准的数据格式进行交织和扰码处理,再附上比特同步和帧同步字节后,对数据包进行GMSK调制,输出音频的GMSK信号,再由电台将其调制到模拟调频话音信道上传送出去。当有话音数据传输时,模拟话音输入MC145480,经过8kHz 的A律编码输出64kbps的PCM信号。经过AMBE1000压缩后,输出2.4kbps的压缩话音数据,这些话音数据经单片机AT89S52除包延时处理后与串口接收的外部数据一起打包送到调制解调模块,实现数据和话音的同时传输。
  数据接收时,Modem从模拟调频电台读入音频信号进行GMSK解调,经检错和撤包处理后,将数据传送给AT89S52。单片机经过判断处理后,如果是外部的数据,则直接通过串口输出;如果是话音数据,则经过处理后送给AMBE1000解压缩,输出的PCM信号经过A律解码和DAC,还原成模拟话音信号输出。
2 软件设计及实现
  整个系统的软件主要包括三大部分:MC145480和AMBE1000的接口时序的实现、语音压缩数据的处理、数据的调制和解调。
2.1 接口时序的实现
  AMBE1000话音Codec与MC145480的接口关系[2]如图3所示。

图3中CLK_2048K为2048kHz的时钟信号,CLK1_8K和CLK2_8K均为8kHz的时钟信号。可以看出,分立元器件较多,时钟源之间的干扰比较大,电路运行不太稳定。本系统中用一片EPM7128实现,用VHDL语言编写时序发生器,大大简化了电路,提高了系统的稳定性。图4是在MAXPLUSII上仿真MC145480从AMBE1000话音Codec读取数据的波形。
  从仿真波形上可以看出,在MC145480的接收帧同步信号FSR的下降沿到来时,开始在接收位时钟信号BCLKR的作用下采样从AMBE1000话音Codec传过来的数据(AMBE1000的tx_do端)。在采样一个字节后停止采样,余下的FSR为低电平的时间(一个FSR的周期内)用来给MC45480的DA转换提供缓冲时间。在下一个FSR的下降沿到来时又周而复始地重复上述操作。
2.2 话音压缩数据的处理
  AMBE1000话音Codec输出数据是以帧为单位[2],每20ms输出一帧,每帧的大小为34bytes,其中帧头为10bytes,压缩语音数据24bytes。数据格式如表1所示。

如果按全帧发送,1s内必须传送的数据位数为:
  34bytes × 8bit/bytes × 50 = 13600bit
  而Modem 的最大传输速率为9600bps,根本无法进行传输,更谈不上实现数据和语音同传了;另一方面,本系统没有必要将压缩语音数据按全帧发送,只需传送有效语音数据。压缩速率为2400bps 时,每帧输出的有效语音数据为:
  2400bps / (50 × 8bit) = 6 bytes
  这样在帧尾会有18bytes(24bytes-6bytes=18bytes)的无效0数据,全帧传输时这些无用的0也参与了传输。从节省带宽方面考虑,必须进行帧头和帧尾的处理,并重组数据帧。为此,在程序中做了如下处理: 当检测到有话音数据时,单片机每20ms对AMBE1000话音Codec进行一次读写操作,将接收到的一帧数据存入一个缓冲区,去掉不必要的帧头和帧尾无效的0,得到纯语音数据(每帧6字节)。每隔60ms即连续等待三次AMBE话音Codec中断处理后(共18字节的有效语音数据),将有效的语音数据与外部接收的数据一起打包发给Modem。接收端反之,单片机将Modem解调出来的语音数据,按每6个字节,先进行必要的帧头设置,再添加上帧尾的0,恢复一帧完整的数据传给AMBE1000话音Codec进行解压缩。这样充分利用了信道资源,并且语音延迟比较小,外部数据传输率也比较高。
2.3 数据的调制和解调
  外部输入的数据和来自AMBE1000话音Codec的数据被单片机打包成如表2所示的数据格式。

6 字节的帧头包括两字节的位同步、两字节的帧同步以及两个自定义的控制字节。这两个控制字节可用于区分语音数据和外部数据,以及在半包发送时指示数据块中实际数据的多少。每18个字节作为一个小数据包,数话同传时,语音数据和外部数据各占一小包。一个字节的帧尾标志一般为0x33。这样的一帧数据传给FX909,带上FEC和CRC位后,最大数据量为:(6+1+30+30+1)×8bit=544bit。在60ms的时间内,Modem有能力完成一帧数据的发送(60ms×9600bps=576bit>544bit)。这从一个侧面证明了本系统采用的数话同传方案的可行性。FX909工作在任务方式下,单片机通过写任务到FX909的命令寄存器去指示Modem的工作,当FX909完成工作后以中断的形式通知单片机当前操作已经完成。软件实现发送和接收数据的过程如下[5]:发送数据时,设置FX909的工作模式为发送状态,写帧头数据,设置任务=T7H,发7个字节帧头(FX909内部帧头带一个字节的FEC和CRC);然后往FX909 数据缓冲区中写入18 个字节的数据,设置任务=TDB,发送数据块;若本帧未结束,继续发送数据块,发送结束后再发一个字节的帧结束标志;如此反复直到所有的数据发送结束为止。接收数据时,先设置FX909 的工作模式为接收状态,检测到载波信号后,写帧同步字节至数据缓冲区,设置任务=LFSB,进行比特同步;然后设置任务=SFH,查找帧头,读出帧头控制字节后设置任务=RDB,读出18个字节的数据;若本帧未结束,继续读数据块,否则查找下一个帧头;如此反复,直至接收完所有的数据。同时还可以读出CRC和FEC标志位信息,进行相应的处理。
  本文实现的数话同传控制器具有话音延迟短、数据传输量大的特点,有效地解决了语音信号延迟比较大和外部数据传输量受限问题,能够满足绝大多数场合下话音通信和数据传输的要求,有着广泛的应用前景。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭