汪丹丹 贾临生 杨大光
(海军航空兵学院 葫芦岛 125001)
基于AMBE-2000和单片机的潜水员水下通信系统的设计*
汪丹丹 贾临生 杨大光
(海军航空兵学院 葫芦岛 125001)
设计了一种基于AMBE-2000和单片机的潜水员水下语音数字通信系统,给出了它的硬件原理图和软件程序框图。硬件部分采用ATMEL公司的AT89S52作为主控芯片,实现对AMBE-2000和AD73311的控制。系统利用水下电流场,完成了潜水员间的水下近距离通信。
AMBE-2000; AD73311; 单片机; 语音数字通信; 电流场
Class Number TP274
进入21世纪以后,对海洋资源的研究和开发已经越来越引起人们的关注,水下通信系统也就越来越显出其重要性,尤其是水下无线通信系统的研究已经引起世界各国的广泛重视。众所周知,海水是导电媒质,对电磁波具有极强的衰减,这也是电磁波很难用于水下无线通信的原因。但是,我们却可以充分利用海水的导电性,使用电流场的方式达成通信,并且水下电流场通信系统是低噪声系统,实现近距离的水下无线通信是完全可行的。根据有关资料显示,现在实用的潜水员水下无线通信系统主要是水声通信,但由于海洋环境极其复杂,而且在浅海海域海水介质分层明显,当两潜水员位于不同的声速层时往往难以实现超声波通信,或者干扰很大,通信质量很差,因此本文考虑采用水下电流场实现水下的近距离无线通信。
海水中电流场的频率特性在音频段是接近平坦的,因此在设计通信系统的时候,信号的载波频率最好采用甚低频,从而通信带宽变得比较窄,而要保证水下通话的语音质量,就要在对语音进行A/D变换时尽量的提高采样的数据量,如此一来,较高的语音采样和有限的带宽就成一对矛盾。为了解决以上问题,本系统考虑使用声码器芯片对采样后的语音数据进行进一步的压缩编码,减小信息的冗余度。
声码器芯片选用美国DVSI公司生产的AMBE-2000,该芯片具有适应性强、高性能、低功耗的优势。它可以在2.0kbps~9.6kbps的范围内对语音信号实现压缩编码,且编码质量较高,能够满足本设计的要求。
整个电路的原理图如图1所示,通过AD73311将输入的模拟话音进行采样量化,然后输入到AMBE-2000进行压缩编码,编码后的数据送给单片机进行处理,然后调制成模拟信号经电极对天线发送出去;同时,电极对天线将接收到的信号经检波整形后送给单片机,经过相应处理以后再送给AMBE-2000进行解码,再通过AD73311转化为模拟信号输出。
图1 系统的硬件原理框图
3.1 AMBE-2000的接口设计
AMBE-2000可以被视为两个独立的部分即编码器和解码器。编码器接收8kHz话音数据流(16位线性、8位A率、8位μ率)并以所希望的码率输出数据流到传输信道上,相反,解码器接收从传输信道上传送的数据流合成出8kHz话音数据流。其编码器与解码器的接口时序是完全异步的。AMBE-2000有两种工作模式,即主动工作模式和被动工作模式。本设计选择在主动工作模式下,数据选通信号由声码器自己提供,也就是说,数据读写进程完全由声码器自身控制。
典型的语音接口是外围的A/D和D/A,该接口芯片对模拟话音进行采样,然后输入到AMBE-2000的ENCODER中编码。信道接口则用来对信道数据进行分析,监测和功能设定,通常选用8位或16位的微处理器电路。信道数据经过DECODER合成语音数据,再经D/A变换输出到听筒。输入与输出语音数据是可以结合的,也就是说两者必须具有相同的形式(16位线性,8位A律或8位μ律);芯片的可选功能,如回声消除、声音激活/探测、功率模式控制、数据/FEC速率选择等可以通过硬件控制引脚或解码器命令接口进行控制。
3.2 AMBE-2000和AD73311的接口设计
AD73311用起来非常灵活,内部共有五个控制寄器组[3](CRA、CRB、CRC、CRD、CRE),CRA用以设置AD73311的工作模式(五种),芯片级连个数(1~8个)和软件重置RESET;CRB用以设置主时钟分频因子和串行时钟分频因子;CRC用以设置内部参考电压的电源管理;CRD用以设置输入输出可编程放大器的增益;CRE用以设置D/A转换通道的群延时。如果AMBE-2000的CODEC-SEL[1-0]被设置为01B时,声码器芯片送控制字到AD73311的控制寄存器。
图2 AMBE-2000与AD73311的接口设计
硬件电路采用如图2所示的连接方式。AD73311的采样速率可以达到32kHz、16位采样数据,且具有较好的声音质量,因而可以配合AMBE-2000使用,在实际应用中取得了良好的效果。本设计中,AMBE-2000选择的管脚接法将压缩率定义为2kbps,AMBE-2000和AD73311的外部时钟频率都是16.384MHz,AD73311的采样频率是32KHz,帧同步时钟和位同步时钟均由AD73311产生,并提供给AMBE-2000。语音信号经过A/D转换后的数据和控制信息以串行的方式送到声码器。在20ms之内,声码器将A/D转换器送来的数字化语音压缩,按其帧格式打包后送至编码器输出缓冲器,并将解码器输入缓冲器的数据包解压还原送向D/A转换器,从而完成对数字语音的编、解码。
3.3 单片机与AMBE-2000的接口设计
声码器与主机接口的数据格式分为两种:有格式和无格式。在本系统中,设置声码器芯片处理的数据为有格式,主要目的是为了在数据编码时提供一定的校正信息。
在有格式下,AMBE-2000输出的一帧数据[1]由24个格式字组成,每个格式字包含16bits,总共384bits。在这24个格式字中,前12个字为帧头信息,后12个字为数据。帧头信息包括ID、状态位、控制位等信息,对AMBE-2000初始化就是设置这些帧头信息。这里需要注意的是,这些帧头信息只有当AMBE-2000工作在9600bps时(9600bps÷50帧/s=192bits/帧),才和语音数据完全结合在一起。当速率低于9600bps时,编码语音将从最高有效位(MSB)开始填充,并将后面不用的位清零。但是,不管AMBE-2000工作在何种速率下,编码器输出的数据和解码器接收到的数据都是完整的384bits。
在硬件电路连接上,声码器芯片信道数据口的收、发和单片机的发(P1.3)、收(P1.4)相连;声码器芯片信道数据口的工作时钟和单片机的时钟(P2.0)相连;声码器芯片信道数据口的帧同步脉冲和单片机的帧同步(P1.2)相连;同样,两个串口的位同步脉冲也连接在一起。主机接收、发送时钟由单片机产生,AMBE-2000压缩编码后的数据包送到单片机。在20ms之内,单片机将AMBE-2000送来的数据包处理后以串行的方式发送出去,并将单片机送来的数据包解压还原送向D/A转换器,从而完成对数字语音的控制。采用这种连接方式可以进行全双工通信。
图3 AMBE-2000与AT89S52的接口设计
4.1 AMBE-2000与AD73311的初始化
AMBE-2000芯片的复位、初始化是通过接收各种控制信号完成的,主要进行数据格式、波特率、编解码速率、语音激活检测、回波抵消等的初始设置。AMBE-2000的复位时间为50μs,复位信号的恢复时间为95ms。也就是说,声码器芯片在复位信号开始95ms之后的上升沿才会开始处理数据。
AD芯片的初始化工作是在上电后,由AMBE-2000向其发送控制字完成的。当然,如果想让声码器上电后自动初始化AD芯片,AMBE-2000的CODEC_SEL0和CODEC_SEL1两个引脚应配置为10B,采用硬件配置,无需进行软件操作。本系统中AMBE-2000向AD芯片发送的初始化控制字如表1所示。
AMBE-2000和AD73311的复位都是低有效,前者的复位信号要求维持95ms,后者要求15ms。如果两个芯片都采用加电自动复位,那么在复位后,AD73311输出的数据对AMBE-2000的复位会造成影响,所以在没有任何数据输入的情况下,在解码端输出无效数据,从而对通话质量产生了明显影响。而将两个芯片的复位电路分开后,先对AMBE-2000复位,然后对AD73311复位。
表1 AMBE-2000向AD73311发送的控制字
4.2 系统主程序的设计
系统加电正常工作后,单片机、声码器自动复位,复位使能AD73311,主程序对单片机进行初始化。软件编程的重点就是对单片机进行编程。
单片机程序的流程图如图4所示:单片机根据AMBE-2000的编码包就绪标志(EPR)给AMBE-2000发送时钟(若不向AMBE-2000发送时钟,AMBE-2000不会输出STRB指示),并且不断监测STRB,直到管脚出现上升沿,单片机准备第一次收发数据。单片机将AMBE-2000发送的16位数据分成高8位和低8位,分别送到串行口输出,同时,将串行口接收到的两个相邻的8位数据组合成16位数据,送到AMBE-2000进行解码,直到完成1帧数据的收、发,继续等待下一个编码包就绪标志的到来,重复上面的步骤处理数据。
AMBE-2000每20ms完成1帧语音数据的编、解码运算,并与单片机以串行方式交换一次数据。AT89S52将编码后的语音输出,同时将得到的数据送到AMBE-2000进行解码,处理1帧数据的时间必须在20ms内完成,以免引起数据传输的冲突。
图4 主程序流程图
本文对潜水员水下通信进行了研究,实现水下近距离通信。该方案的硬件系统以单片机AT89S52作为主控芯片,实现对AMBE-2000和AD73311的控制,实现了潜水员间的水下近距离通信,具有一定的实用参考价值。
[1] AMBE-2000TM Vocoder Chip User’s Manual Ver2 sion 4.8[Z].Digital Voice Systems,Inc.,2007.
[2] J.Joe,S.H.Toh.Digital Underwater Communication Using Electric Current Method[J].OCEANS 2007-Europe Volume,Issue,18-21 June 2007Page(s):1-4.
[3] AD73311 Data Sheet[Z].Analog Devices,Inc.,2000.
[4] 雷晓平,李晓东,罗天海.单片机原理及应用[M].北京:机械工业出版社,2006.
[5] 王为青,程国钢.单片机Keil Cx51应用开发技术[M].北京:人民邮电出版社,2007.
[6] 徐东镪,肖沙里,蓝玉侦,等.AMBE-2000在紫外光语音系统中的应用[J].电子设计应用,2007:122-124.
[7] 魏柠柠,金向东.多速率语音芯片AMBE-2000的开发和应用[J].电声技术,2005:34-36.
[8] 杜军,高俊.基于AMBE-2000和DSP的多速率数字语音保密通信系统研究[D].武汉:海军工程大学,2007.
[9] 刘立康,蔡明.用单片机实现语音信号的数字复接[J].电子技术应用,1999:24-25.
[10] 刘庆丰,周正欧.AMBE-2000TM语音压缩电路的性能及应用[J].电子元器件应用,2004:11-15.
Design of Underwater Wireless Communication System for Diver Based on AMBE-2000 and AT89C52
WANG Dandan JIA Linsheng YANG Daguang
(Naval Aviation Academy,Huludao 125001)
A underwater wireless voice communication system for diver is designed based on ambe-2000 and MCU.The blockdiagram of hardware and program flow chart are given.AT89S52 of ATMEL company is utilized as the main control MCU,which contrals AMBE-2000 and AD73311.The system realized the underwater close range wireless communication for diver with electric current.
AMBE-2000,AD73311,MCU,voice digital communication,electric current
2014年8月9日,
2014年9月18日
汪丹丹,女,硕士,助教,研究方向:无线通信。贾临生,男,硕士,助教,研究方向:飞机特种设备。杨大光,男,硕士,讲师,研究方向:飞机特种设备。
TP274
10.3969/j.issn1672-9730.2015.02.022