设为首页 收藏本站
密码:
用户名:
站内搜索: 标题 内容
基于无线数传技术的话音扰频模块设计
[作者]:佚名 [来源]:电子技术应用 [时间]:2008-6-6 10:03:47

   发送数据时,单片机输出的数据SD在ST上升沿被锁存,因此将ST与单片机的外部中断INT0相连,INT0设置为下降沿触发,单片机在中断处理程序中改变SD电平,数字信号经过内部调制后产生MSK信号输出AO,发送时序如图3所示。

 

   接收数据时,输入AI的MSK信号经过内部滤波器后可恢复为串行数据输出,同时从接收的数据中还可恢复出同步时钟RT,将RT与单片机的外部中断INT1相连,中断设置为上升沿触发,单片机在中断处理程序中读取RD电平值。接收时序如图4所示。

 

2.2.2 纠错编码的设计

   移动通信时必然要受到无线信道传输特性的不理想以及加性噪声的影响,要在这样的传播条件下保持可以接受的传输质量,就必须采取各种技术措施来抵消衰落的不利影响,信道纠错编码就是其中一种有效的抗衰落技术。

   由于扰频信令的信息非常重要,而且要求有实时性,只有检错重发并不能满足要求。针对单片机系统的特点和编解码的复杂度,纠错编码采用Golay码。 Golay码是一种特殊的非本原BCH码,属于前向纠错编码FEC(Forward Error Correction),也是目前为止发现的惟一能纠正多个错误的完备码,因其在噪声环境下具有良好的纠错性能而获得了广泛应用,尤其适合短码字长和短处理时延的应用场合。

   本方案选用的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

 


 

上一页 [1] [2] 下一页
发表评论:
标题: 50个字
*您还可以输入100个字
中通资讯网首页 | 中国对讲机市场 | 中国集群通信网 | 中国火腿网 | 中通射频网 | 中通卫星导航网 | 中通无线数传网 | 中通论坛 | ZTong English

主办单位:深圳中通信息科技发展有限公司 电话:83322680(咨询) 83327811(业务) 传真:83323192
2007 Zhongtong Information Teehnnology Development Co.,Ltd Rights Reserved
深圳市中通信息科技发展有限公司 未经同意请勿转载 粤ICP备06018845号