夏 辉
(中国人民解放军92728部队,上海200436)
“北斗”是我国自主研制、独立运行的卫星导航定位系统,其目的在于为全球带来便利,同时也为保障国防安全。80年代,我国就开始研制自己的北斗导航定位系统,经过近20年的发展,北斗卫星导航系统愈发成熟,为我国带来了巨大的经济效益。“北斗”卫星导航定位系统,简称北斗系统,是我国自行研制的区域性无源卫星定位系统和有源三维卫星定位系统。北斗系统还提供了简短双向报文通信的功能,使用户机与中心站、用户机与用户机之间可进行数据通信,极大地丰富了系统功能。除此之外,北斗系统还具备定时、授时功能。现有的北斗用户机只具备普通的报文通信、定位和导航功能。但是,在抗险救灾等恶劣环境中,有时需要实时进行语音通信,这是当前的用户机所不具备的[1-3]。针对现有用户机的上述不足与缺陷,在前人基础之上提出一种基于北斗通信的虚拟多SIM卡语音通信传输技术[4-7]。
系统由硬件和软件2部分组成。硬件部分包括外设模块、语音处理模块以及北斗处理模块。软件部分包括DSP信息处理软件。系统组成框图如图1所示。
系统工作流程:语音发送端北斗用户机外设模块的话筒获取外界语音信息发送给语音处理模块,语音处理模块把语音信息压缩编码后形成的数据流通过MCU接口模块发送给北斗处理模块,北斗处理模块封包成短报文后由北斗天线发送给语音接收端北斗用户机,语音接收端北斗用户机将接收数据经北斗处理模块拆包后发送给语音处理模块,语音处理模块通过MCU接口模块接收语音数据流并对语音压缩码流进解码,还原成模拟语音由外设模块听筒输出。
图1 系统组成
北斗处理模块包含基带处理单元和信息处理单元2部分。基带处理单元负责语音信号的发射与接收;信息处理单元负责语音数据的拆包、封包、语音数据的实时发送、虚拟多卡的管理以及丢包重发的处理。
基带处理单元由接收通道和发射通道组成,卫星信号通过天线进入射频模块,采用2次变频,最后输出2路相位相反的零中频信号,经A/D 芯片(AD9288)采样后,FPGA(芯片EP3C120F484)根据信号格式对输入信号进行捕获、跟踪、解调、帧同步以及译码。发射通道由FPGA对发送的数据按格式要求进行卷积编码,并扩频调制,经射频模块一次变频并放大,由天线发射出去。
信息处理单元CPU由TMS320C6747DZKBA3,工作主频300 MHz,是TI公司推出的极低功耗DSP芯片、SPI FLASH、SDRAM以及外围电路组成。卫星信号经过FPGA译码后,通过EMIF总线送DSP处理解析出语音数据并封包发送给语音处理模块播放语音。
语音处理模块采用深圳市迈可为科技有限公司自主研发的一款多码率语音编解码芯片MA24126-P1[8-9]。该语音处理算法结合了二元激励、码激励和多带激励的优点,将短时语音划分为若干子带,在每个子带中分别进行清浊音判决。在合成端,采用周期性脉冲和随机噪声的混合序列去激励语音合成滤波器,能在较低的码率下(小于2 400 bps)得到较高质量的再生语音。MA24126-P1 支持600,1 200,2 400 bps 三种编码速率,速率的选择可由芯片外部管脚或软件命令进行控制。包含语音接口模块、语音算法模块、MCU接口模块和语音配置模块4部分。
算法模块:实现与语音编解码算法相关的功能,是语音处理模块的核心模块。
语音接口模块:与外设模块相连,用于传输语音数据。
MCU接口模块:与北斗处理模块相连,用于传输编解码数据及配置数据。
语音配置模块:根据配置引脚状态或外部配置数据来对语音处理模块功能进行配置。
处理模块包含话筒和听筒,与语音处理模块进行连接,实现模拟语音的输入和输出。
系统软件部分由DSP信息处理软件完成。
北斗数据传输有频度限制,即一次通信完成需要等待一段时间才能再次通信,每次通信的字节数也有限制,而语音信息数据量都相对普通短报文通信较大,单张卡不能保证语音的实时性且完成一次语音通信的耗时相对较长。
为了解决频度和字节数限制,本系统采用虚拟多SIM卡实现并合理规划SIM卡张数、发射频度、通信等级和语音模块编码之间的关系;为了解决语音的实时性和完成一次语音通信的耗时较长问题,本系统采用接收语音数据和发射北斗报文同时进行的设计策略。
下面从虚拟多SIM卡实现、语音通信的传输协议、SIM卡和语音模块编码速率选择、语音发送和接收两端分别说明北斗语音通信工作流程。
3.2.1 多SIM卡信息存储
由于体积限制,本系统北斗处理模块硬件上只保留一个SIM卡槽,卡槽用于北斗处理模块读取SIM卡信息。SIM卡信息被读取后存入DSP的SPI FLASH中。多SIM卡信息存储流程图如图2所示[16-18]。
图2 多SIM卡信息存储流程
3.2.2 多SIM卡接收和发射管理
在所有读取的多个SIM卡中,设置一个主卡用于接收语音通信和请求发送方重发语音信息。
语音发送时语音数据优先级最高,需要对多SIM卡合理管理才能更高效更充分地利用北斗资源和更合理地使用SIM卡。多SIM卡发射管理流程图如图3所示。
图3 多SIM卡发射管理流程
发送端北斗处理模块接收语音处理模块发来的语音数据,当接收的语音数据满足当前IC卡允许发射的最大数据,马上发射语音通信数据给接收端北斗用户机,此时完成一次语音通信的用时最短。
在既要保证用时最短又要保证语音通信成功率的前提下,制定语音通信数据帧格式如表1所示,N为一次语音通信的总帧数,M为IC卡允许一次发送的最大字节数。
表1 语音通信数据帧格式
在语音发送过程中无法获取本次语音通信的总帧数,除最后一帧外总帧数字段都填0,最后一帧填写总帧数,用于本次语音通信接收端用户机判断是否成本次语音通信和保证语音通信成功率向发送端用户机申请重发未收到的数据帧。
在实际申请北斗SIM卡时,运营部门对高频度SIM卡管理比较严格,本系统采用60 s最低频度北斗SIM卡。对语音处理模块在600、1 200,2 400 bps三种不同编码速率下进行通话质量测试,语音清晰,语音质量没有明显差别都满足设计要求。
下面对语音处理模块选择不同编码速率和SIM卡选择不同通信等级,实现语音通信时间不受频度限制所使用的SIM卡张数进行比较分析,发射1 s语音SIM卡使用张数如表2所示。
表2 语音时间不受限SIM卡使用张数
由表2可知,选择速率600 bps和通信等级4级时SIM卡使用张数最少,42张就能保证语音通信时间可以不受SIM卡频度限制一直发射语音通信。考虑到高通信等级北斗SIM卡在申请流程上受限本系统使用通信等级为3级的北斗SIM卡。
综合考虑,本系统使用60 s频度通信等级为3级的北斗SIM卡,语音处理模块编码速率使用600 bps来实现语音通信功能。
发射端北斗处理模块工作的关键在于语音信息的发射流程和虚拟多SIM卡发射的配合使用管理,其中关键问题有,语音重发判断、语音结束判断,语音重发优先级最高,保证当前语音完毕后才能进行下一次语音通信,在没有重发的语音数据时才进行正常的语音发射流程,语音说完或者达到限定的最大长度字节限制都可以结束发端语音通信流程。
发端工作流程如图4所示,具体实现步骤如下[10-12]:
① 判断是否需要重发语音数据,如果不需要,转步骤2执行。
② 接收语音处理模块发来的语音数据并存储,同时判断是否到达最大语音时间限制。如果没有,转步骤③执行;如果达到,转步骤⑤执行。
③ 判断接收的语音数据是否达到当前SIM的发送最大字节限制,如果是转步骤④执行,如果没有回到步骤②执行。
④ 发送非尾包数据,判断本次语音是否完毕,如果完毕转步骤⑤执行,如果没有回到步骤②执行。
⑤ 发送尾包数据,本次语音通信完毕。
图4 发端工作流程
接收端北斗处理模块工作的关键在于本次语音通信结束的判断和超时请求重发的判断,由于语音实时传输,只有尾包中包含总包数,收到总包数后才能判断语音数据丢包情况,所以如果在没收到尾包是定时器超时,一直请求重发尾包,知道收到然后统计接收情况,请求重发直至语音通信完成。
发端工作流程如图5所示,具体实现步骤如下[13-15]:
① 接收端用户机接收到电文信息,根据电文信息头判断电文类型,根据不同电文类型转相应步骤(步骤②、步骤③)执行。
② 普通北斗电文走普通北斗电文处理流程。
③ 如果是语音电文首先存储然后判断是否为尾包或者重发数据包(尾包和重发包中带有本次语音通信的总包数),如果是转步骤④执行,如果不是转步骤⑤执行。
④ 统计电文语音电文接收状态判断电文是否收齐,如果是转步骤⑧执行,如果没有转步骤⑦执行。
⑤ 打开动态超时定时器(根据包号的不同超时时间也不同,包号越小超时时间越长)判断是否超时,如果是转步骤⑥执行,如果没有回到步骤①执行。
⑥ 请求发送方重发尾包数据。
⑦ 请求发送方重发相应数据包。
⑧ 语音数据发送语音处理模块解码,本次语音通信完毕。
图5 收端工作流程
使用2台新型车载“北斗”用户机(CZ1机和CZ2机),每台车载机采用北斗SIM卡57张,发射频度60 s,通信等级3级(最多发射长度78.5 Bytes)。分别读取57张SIM卡信息存储到车载用户机中,语音模块采用600 bps(每秒语音模块编解码75 Bytes)编解码速率的配置进行测试试验。分开两地,核对好时间,语音通信实验结果如表3所示。
从表3可以看出,利用“北斗”车载用户机在不影响其定位位置报告等功能的情况下,实现了语音通信传输功能,语音被叫方播放语音清晰,语音模块采用600 bps编解码速率语音通话质量较好,但发送语音较长时有重发的情况。
在第1,2,4,5次没有重发的情况下,主叫方语音说完2 s(车载机处理时延)后被叫方开始播放语音。
第3次测试时,有重发的情况,重发1包语音数据,主叫方15 s语音说完4 s(车载机处理时延2 s,请求重发和重发时延2 s)后,被叫方开始播放语音。
本次测试发送语音数据共94 s,发射语音通信共96次(语音数据94次、被叫方CZ2请求重发1次和主叫方CZ1重发1次)。
表3 语音通信实验结果
在音频信号高质量压缩的基础上,利用北斗通信信道和虚拟多SIM卡技术实现北斗用户机语音通信功能。该设计已在新型车载“北斗”用户机中实现其应用,达到了预期要求。丰富了“北斗”用户机在各个科研领域的应用范围。随着对北斗语音通信技术研究的进一步加深,其应用将扩展到渔船通讯、舰队指挥、抗震和抗洪指挥等更加宽广的领域。