北斗语音通信设计与实现*
2011-08-29徐师友
徐师友
(福建星海通信科技有限公司,福建 福州350015)
0 引 言
“北斗一号”卫星导航定位系统,简称北斗系统,是我国自行研制的第一代区域性有源三维卫星定位通信系统。北斗用户机需要在捕获卫星信号后由用户机发射定位申请指令,才能够得到由中心控制站计算得到的定位信息。北斗系统还提供了简短双向报文通信的功能,使用户机与中心站、用户机与用户机之间可进行数据通信,极大地丰富了系统功能。除此之外,北斗系统还具备定时、授时功能。
现有的北斗用户机只具备普通的报文通信、定位和导航功能。目前,北斗用户机型都是在这几种功能上扩展,实现北斗导航,北斗指挥等系统功能。但是,在抗险救灾等恶劣环境中,有时需要实时进行语音通信,这是当前的用户机所不具备的。
针对现有用户机的上述不足与缺陷,这里提出一种基于语音压缩技术,可利用北斗系统进行语音通信的新型北斗用户机设计方案。
1 系统组成及工作原理
系统主要由外设模块、语音处理模块以及北斗处理模块组成,系统组成框图如图1所示。
系统工作流程:发端用户机外设模块的话筒获取外界语音信息,语音信息在语音处理模块中经A/D转换、压缩编码后,形成的数据流通过北斗处理模块封包后,由北斗天线发送给收端用户机,收端用户机将接收数据经北斗处理模块拆包后,送声音处理模块对语音压缩码流进行解码,最后经D/A转换还原成模拟语音由听筒输出。
2 系统硬件设计
下面分模块介绍系统硬件设计。
2.1 北斗处理模块
2.1.1 基带处理单元
基带处理单元负责对接收的发射与接收。基带处理单元由接收通道和发射通道组成,卫星信号通过天线进入射频模块,采用2次变频,最后输出两路相位相反的零中频信号[1],经 A/D(芯片AD9288)采样后,FPGA(芯片EP2C50F484IN)根据信号格式对输入信号进行捕获、跟踪、解调、帧同步以及译码[2],接收通道具有30dB的自动增益控制。发射通道由FPGA对发送的数据按格式要求进行卷积编码,并扩频调制,经射频模块一次变频,并放大,由天线发射出去,最大功率输出≥10W.其FPGA接口电路连接如图2所示。
图2 FPGA接口电路连接
2.1.2 显控单元
采用TFT-LCD彩屏,按键及显示触摸屏都与ARM9连接,显控单元显示操作界面,方便人机交互。
信息处理单元主要由CPU、SDRAM以及NAND FLASH构成,负责底层数据处理,协调各个单元之间的信息交互。信息处理单元采用微处理器S3C2440A[3],是一款为手持设备设计的低功耗、高度集成的微处理器,其外围接口如图3所示。采用2片64MB的SDRAM组成128MB的内存,芯片型号为K4S511632C.采用128M字节的NAND FLASH芯片K9F1G08U08,实现开机即从NAND FLASH启动。
图3 ARM9外围接口框图
2.2 声音处理模块
语音处理模块实现模拟语音的数字化压缩。语音处理模块的 DSP 采用芯片TMS320VC5505[4],工作主频为100MHz,是 TI公司推出的极低功耗芯片,该芯片可提供高达320 KB的片上存储器以及多个集成外设,完成数字语音编、解码算法,以及完成与ARM9(S3C2440A)之间的接口功能。 A/D、D/A 采 用TMS320AIC23B芯片,该芯片具有双路可编程低功耗语音编解码功能,16bit,线性PCM。图4为语音处理模块接口电路连接图。
图4 语音处理模块接口电路连接
2.3 外设接口
外设接口主要有话筒、听筒,与语音处理模块进行连接,实现模拟语音的输入、输出。话筒模拟语音信号输入峰峰值≤1.414V,模拟语音信号输出给听筒的峰峰值≤3.0V.
3 系统软件设计
北斗数据传输有频度限制,即一次通信完成要等待一段时间才能再次通信,每次通信的字节数也有限制,而一般的语音信息都超过字节数限制。为了解决上述限制问题,并且保证每段话的连续性,系统通话采用对讲机模式,即语音输入为分段输入。每段语音在语音处理模块进行A/D转换,并对转换后的数据进行高度压缩,然后北斗处理模块将压缩后的数据存储为文件,每个文件代表一段语音信息。北斗处理模块再将文件分包发送,收端用户机接收到数据后再组包还原成文件,文件再经语音处理模块解码,D/A转化后送给外设输出。
所以,北斗语音通信软件设计的关键在于北斗语音文件传输。下面从发、收两端分别说明北斗语音通信工作流程。
3.1 发端流程
发端工作流程图如图5所示,具体实现步骤如下:
步骤1:开始传输文件时,发端先通信申请,将文件名及文件大小发给收端,然后等待收端回复的文件名确认指令以执行下一步操作。如果在一个服务频度的时间间隔内没收到确认,发端应再次发送通信申请,没收到回复指令,就不能进行下一步操作。收到文件名确认后,转步骤2执行。
步骤2:收到文件名确认后,发端将文件分包按频度间隔逐个发送。发完转步骤3执行。
步骤3:文件包都发送完毕后再次等待收端回复的文件包确认指令以执行下一步操作。如果在一个服务频度的时间间隔内没收到确认,再次发送尾包,发送次数累加,如果发送次数大于设定值n,则认为该次文件传输失败,传输停止。收到文件包确认后,转步骤4执行。
步骤4:收到文件包确认后,根据文件包确认信息查询文件是否收全,收全则给出文件传输完毕提示,未收全则将未收到的文件包再次发送,然后回到步骤3执行。
图5 发端工作流程图
3.2 收端流程
收端用户机工作流程图如图6所示,具体实现步骤如下:
步骤1:收端用户机接收到电文信息,根据电文信息头判断电文类型,根据不同电文类型转相应步骤(步骤2、步骤3、步骤4)执行。
步骤2:普通北斗电文走普通电文处理流程。
步骤3:若是文件名电文,则提醒用户有北斗语音文件申请传输,由用户操作是否同意接收。拒绝则流程结束,否则要求用户设置保存路径与文件名,确定后回复文件名确认信息。
步骤4:若是文件包电文,则先判断是否有文件在等待接收。没有就直接结束流程,有则判断该文件是否已收到过。未收过就将数据保存在缓冲区中,标记为已收,转步骤5执行;收过直接跳到步骤5执行。
图6 收端用户机工作流程图
步骤5:判断收到的文件包是否是尾包,不是则该次流程结束;是则统计接收状态,给发方回复接收状态信息,然后再根据接收状态信息判断文件是否收全,未收全则该次流程结束,收全就给出文件接收完毕提示。
4 语音通话测试结果
用2部“北斗一代”手持用户机(1#机和2#机),采用30s的频度卡进行测试试验。分开两地,核对好时间,结果如表1.
从表1可以看出,利用“北斗一代”用户机在不影响其正常的定位等功能的情况下,实现了语音通信功能。
表1 测试实验结果
5 结 论
在音频信号高质量压缩的基础上,利用北斗通信信道实现北斗用户机语音通信功能。该设计已在新型北斗用户机中实现其应用,达到了预期要求。新型北斗用户机可在包括近海渔船间,舰船间,以及陆上应急指挥等方面实现语音通信,丰富北斗用户机在各个科研领域的应用范围。随着对北斗语音通信技术研究的进一步加深,其应用将扩展到渔船通讯、舰队指挥、抗震、抗洪指挥等更加宽广的领域。
[1]李大为.Windows CE工程实践完全分析[M].北京:中国电力出版社,2008.
[2]汪 兵.Windows CE嵌入式高级编程及其实例详解[M].北京:中国水利水电出版社,2008.
[3]普罗基斯.数字通信[M].张力军,等译.4版.北京:电子工业出版社,2003.
[4]侯俊杰.深入浅出 MFC[M].2版.湖北:华中科技大学出版社,2005.
[5]希尔特.C++捷径教程[M].聂雪军译.3版.北京:清华大学出版社,2004年.
[6]普罗基斯.数字信号处理[M].方艳梅,等译.4版.北京:电子工业出版社,2003.