基于无线数传技术的话音扰频模块设计
由于扰频信令的信息非常重要,而且要求有实时性,只有检错重发并不能满足要求。针对单片机系统的特点和编解码的复杂度,纠错编码采用Golay码。 Golay码是一种特殊的非本原BCH码,属于前向纠错编码FEC(Forward Error Correction),也是目前为止发现的惟一能纠正多个错误的完备码,因其在噪声环境下具有良好的纠错性能而获得了广泛应用,尤其适合短码字长和短处理时延的应用场合。
本文引用地址:https://www.eepw.com.cn/article/83748.htm本方案选用的Golay(24,12)码最小距离为8,能纠正3个随机错误同时检测4个错误。针对8位单片机的特点,将信息位缩短为8bit,并在最后添加0101进行帧同步码的提取,最终构成3个字节的完整结构,提高了单片机编码的效率。编解码的程序全部用C语言实现,程序复杂度适中,Atmega8单片机的运算能力完全可以胜任。Golay码结构如表2所示。
2.2.3 数据帧结构的设计
MSM6882接收的数据是与时钟同步的比特流,为了从所接收的数据中提取时钟信号,首先发送6字节即48bit“1”和“0”交替出现的位同步码。为了按字节接收数据,确定每一帧的起始位,需要在比特流中添加帧同步信息,以避免帧同步图案与数据中内容相同而导致的误判。根据所选用的纠错编码特点,每组Golay码三个字节的最后4个 bit为0101,即不会出现三个字节以上的连续0或者连续1,所以帧起始码选用31bit1和1bit0,帧结束码采用32bit连0。在接收中断处理程序中,检测到31bit1和1bit0就开始按字节接收数据,此后每3个字节一组进行纠错解码,同时开始对接收到的连续0进行计数,超过32个就认为一帧接收完毕。帧结构如表3所示。
2.2.4 数传模块程序的设计
数传程序主要实现编码和发送数据、接收数据和解码的功能。发送时,Golay编码由一个字节变为三个字节,把待发送数组先全部编码再进行发送;接收时,先将三个字节一组的字节流存储为数组,再进行Golay解码,这样,将占用大量RAM空间和时间。为了节省单片机资源,提高程序执行效率,把编码与发送数据、接收数据与解码结合起来同时进行。
首先,定义全局变量作为接收发送的计数器和状态标志位,主函数中循环查询系统工作状态确定是否进行编码或者解码和启动发送字节的子函数;在中断处理函数中每接收和发送完一个字节,就改变相应的计数器和状态标志位,供主函数查询。这样把编解码与收发结合起来,提高了程序的执行效率,缩短了程序运行的时间。
其次,接收和发送都设置双缓冲区,结构定义代码如下:
typedef struct
{
unsigned char rc; /*信息字节*/
unsigned int r1; /*校验字*/
}Golay;
Golay RecvBuffer[2];
Golay SendBuffer[2];
在中断处理函数中发送一个缓冲区数据的同时,在主函数里编码填充另一缓冲区;在中断处理函数中接收数据、填充一个缓冲区时,在主函数里对另一个缓冲区中接收的上一组数据进行解码。在中断处理函数中改变全局的状态标志位,在主函数里进行缓冲区间的切换。通过设置双缓冲区,收发分别只需占用两组编码空间,节省了单片机的RAM资源。
2.3 扰频信令的设计
每次通话之前,即按下PTT之后,首先延时一段时间,这个时间由中继台的最大延时决定;再发送扰频信令,确定此次通话是否扰频以及扰频的次序和时间间隔,为了与未加扰频模块的手持台通信,需要保留不扰频的功能,即CMX264在Clear模式下工作;同时增加地址选项,通过地址进行分组,可以实现组呼和单呼;通话完毕时发送结束帧,使手持台恢复到Clear 模式。根据上述要求,设计扰频信令格式如表4所示。
结构定义代码如下:
typedef struct
{
unsigned char ScrambleFrameType; /*帧类型*/
unsigned char RecvAddress[2]; /*接收地址*/
unsigned char ScrambleSeq[4]; /*扰频次序*/
unsigned char HopCyc; /*时间间隔*/
}Scramble;
本文介绍的方案主要针对使用模拟集群的专用网络,调度通话内容需要保密以避免窃听和干扰。本方案通过电台的话音信道进行无线数据传输,对传统扰频方式进行了改进,提高了系统的安全性和应用范围。
参考文献
1 MORELOS-ZARAGOZA R.H. The art of error correcting coding. Wiley, 2002
2 OKI Semiconductor. MSM6882 MSK Modem User's Manual.
3 CML Microcircuits.Wireless Modem Troubleshooting Guide
4 CML Microcircuits.CMX264 Frequency Domain Split Band Scrambler datasheet.
5 Atmel Corporation. ATmega8 AVR 8-bit microcontroller datasheet.
6 张宗橙.纠错编码原理和应用.北京:电子工业出版社,2003
评论