基于51单片机的无线信号编解码技术研究
2.2 软件解码原理及程序流程
解码是用特定方法把数码还原成它所代表的内容,或将电脉冲信号转换成它所代表的信息、数据等过程。本文采用定时器与外部中断相结合的方法对接收到的脉冲信号进行解码,并利用接收到的校验和进行校验。
将单片机的模式控制寄存器TMOD的门控位GATE置1,当TR1=1时,外部中断INT1直接控制定时器1的启动、停止,即INT1由0变为1电平时,启动计数;当INT1由1变为0电平时,停止计数。这种情况常用来测量在INT1引脚上出现的正脉冲的宽度[5]。无线接收电路如图4所示,无线接收模块将接收到的信号进行解调、放大和整形,恢复出基带信号,由引脚2输出到单片机的INT1引脚上。设置外部中断1为下降沿触发方式,定时器/计数器1为16位定时器工作方式。当INT1引脚上出现由高到低的负跳变时触发中断,定时器1停止计数[6],读取计数寄存器TL1和TH1中的值来判断脉冲宽度,从而解码接收到的数据信号。
由于在发送过程中重装计数初值、接收数据以及中断的响应都需要时间,所以接收到的实际脉冲宽度大于发送的脉冲宽度。因此,如果接收到的高电平脉冲宽度大于300T则表示接收到同步位;若大于200T则表示接收到数据位“0”;否则表示接收到数据位“1”。软件解码流程图如图5所示,在接收到同步位后,开始接收数据,直到再次接收到同步位的时候暂停接收。利用接收到的数据以及校验和进行校验,如果接收到的数据正确,则停止接收;如果不正确,则将之前接收到的数据全部丢弃,再重新开始接收。
实验证明,通过该方法进行软件编码和解码时,可以根据不同的需要使用软件编程来设置地址,接收端与发送端可以进行多对多的无线数据通信,而不需要配对使用;改变定时器的计数寄存器初值就可以改变编码的脉冲宽度,从而改变传输速率;解码准确快捷,占用CPU资源相对较少,便于操作;校验方式可选,数据帧格式灵活多变。
本实验中采用的是晶振频率为12 MHz的石英晶体,以及具有CISC结构的8位单片机,它的一个机器周期要占用12个振荡周期,执行一条指令最少要一个机器周期,处理速度较慢,在一定程度上影响了无线传输速率。可以通过提高晶振频率或者选择速度较快的单片机作为控制芯片的方式来提高无线数据传输速率。如选择具有流水线结构的C8051F系列单片机,或者是具有预取指令功能的AVR系列单片机,它们可以在一个时钟周期内完成一条指令。也可以采用具有DW8051_core核的单片机,它采用4个时钟周期为1个指令周期的模式,在时钟周期相同的情况下,处理能力是标准8051的3倍。采用这些高速度的单片机可以减少程序执行所产生的延迟时间,从而缩短数据位编码脉冲宽度,提高无线数据传输速率。
参考文献
[1] 黎国锋,冯永振,卢广文.近距离无线加密传输韦根信号的实现[J].无线通信技术,2009(1):31-36.
[2] 赵秋.利用编解码芯片的无线收发电路[J].信息化研究,2009,35(9):35-38.
[3] 邵平凡,陈华斌.基于Atmega8无线信号软件编解码的实现方法及性能分析[J].福建电脑,2009(8):115-116.
[4] 康东,石喜勤,李勇鹏,等.射频识别(RFID)核心技术与典型应用开发案例[M].北京:人民邮电出版社,2008.
[5] 梅丽凤,王艳秋,汪毓铎,等.单片机原理及接口技术[M].北京:清华大学出版社,2004.
[6] 马忠梅,籍顺心,张凯,等.单片机的C语言应用程序设计(第4版)[M].北京:北京航空航天大学出版社,2007.
51单片机相关文章:51单片机教程
脉冲点火器相关文章:脉冲点火器原理
评论