如图3和图4所示,编码器输出帧和解码器输入帧的结构类似,包含帧头Header和ID值(共占1个B)及24 B的压缩语音数据,不同的是输出帧包含4 B状态位,输入帧包含4 B控制位,微处理器可根据输出帧状态位对语音数据进行处理,该状态位也可直接作为输入帧的控制位输入至解码器。为便于和8 bit MCU接口通信,AMBE的信道接口采用被动并行模式。
2 数话同传技术的实现
2.1 MCU程序设计
实现车外控制器数话同传功能的关键点之一是微处理器程序的设计。
MCU的程序流程图如图5所示。AMBE1000为主机端提供了编码包准备好信号EPR和解码包空信号DPE,在设计上将这两个信号分别输入到C8051F022的外部中断INT0和INT1端口,以中断方式读取和写入语音数据;与方舱语音采集器的数据通信通过C8051F022内部UART0功能模块实现。中断优先级设定的先后顺序为INT0→INT1→UART0。
微处理器的主程序在完成初始化中断设置和优先级后,读取C8051F022内部Flash的比例指令零点偏移(范围为0~255,标准零点为127,实际中零点常发生偏移,可利用按键调准)后,循环采集按键和进行LCD显示刷新。为便于进程间通信,程序定义了两个bool型变量用作发送标志和接收标志,3个语音数组分别用于存储从编码缓冲区读出的数据(语音数组1)、待写入解码缓冲区的数据(语音数组2)和存储静音数据的数组(静音数组)。
由EPR信号触发的外部中断0处理程序首先读取AMBE1000编码器缓冲区至语音数组1,组成遥控/语音帧,设置发送标志并启动UART0发送中断。进入串口中断0后,首先判断中断类型为发送中断还是接收中断,若为发送中断则启动发送进程,将遥控/语音帧发送至车内采集盒,之后取消发送标志;若为接收中断,则启动串口接收进程,接收方舱语音采集盒发来的语音数据,更新语音数组2,设置接收标志。由DPE信号触发的外部中断1处理程序首先判断接收标志是否有效,若无效则写静音数组至AMBE1000编码缓冲区,若有效则写语音数组2至AMBE1000编码缓冲区,之后取消接收标志,退出中断程序。
2.2 数字语音和遥控数据复用
由上述介绍可知,遥控/语音帧的发送周期是由AMBE1000的DPE信号触发的,DPE信号的产生周期为20 ms,而方舱语音采集盒为异步接收,对遥控/语音帧的到达周期没有严格要求,因此20 ms的发送周期满足系统设计要求[4]。
在遥控/语音帧的设计中,数字语音和遥控数据的复用成为实现数话同传技术的关键点,这里遥控/语音帧在设计上采用40 B/帧,帧结构如图6所示。
帧结构在设计上包含2 B帧头,1 B帧标识,10 B的遥控数据,1 B语音状态字,24 B的语音数据和2 B帧尾。
串口0采用波特率为38 400 b/s,发送单帧遥控/语音帧占用的时间为:(40×8)÷38400≈8.33 ms,满足20 ms/帧的发送周期。
3 车外控制器的测试与应用
在实验室阶段,车外控制器通过RS232接口发送至上位机调试,经串口调试助手实时记录的数据见图7。其中EB90为帧头,EE16为帧尾,带下划线的数据为帧头、语音状态字和语音数据。
在实际应用中,基于数话同传技术的车外控制器已参加过数次重大科研项目的飞行实验。经实际检验,语音通话质量良好,数据传输稳定可靠,验证了其设计的合理性,为数话同传技术拓展了应用范围。
参考文献
[1] 刘春辉,熊小军,冯莹.无人机遥控方式的智能管理策略[J].航空兵器,2010(4):3-7.
[2] 田峰,杜洪根.无人机地面站控制系统设计[J].军事测控技术,2005,13(11).
[3] 马连川,高倍力.铁路无线列调中数话兼容的实现[J].北方交通大学学报,2003,6(27):6-10.
[4] 刘春辉,张晓林.无人直升机双模式地面操控系统设计[J].航空兵器,2009,4:24-28.