《武汉工程大学学报》  2010年12期 98-101   出版日期:2010-12-31   ISSN:1674-2869   CN:42-1779/TQ

高性价比射频对码遥控器研究



0引言利用射频电波来替代传统的红外线进行信号发射,是现在遥控

装置发展的主流方向,它能明显的提高信号的频带宽度且功能会大

幅增加[1].作为多媒体时代的遥控技术,几个毫秒的刷新速度,友

好的用户界面,良好的互操作性,先进的导航功能,使射频技术成为

了红外线技术的接替者.但事实上射频其实并不是新技术,可是由于

红外线的简单和低廉使得它被运用了30年,但是现今电子产品的多

媒体、多菜单、多功能以无法被满足,所以射频技术开始走上遥控

舞台.本文介绍了基于AMICCOM公司的A7105芯片和SONIX公司的

SN2612单片机的RF自适应对码遥控器的实现.介绍了通过发送方和

接收端在传输数据之前的对码来实现信道的选择,且能及时调整发

送方和接收方的频道,从而实现信道的自适应.1芯片选型及相关芯

片介绍在RF对码遥控器电路设计中,起主要支撑作用的器件如表1所

示.表1电路组成结构
Table 1Structure of RC circuit
类型功能器件型号特点MCU处理器SN8P2612OTP ROM size: 2K *

16 bits;
RAM size: 64 * 8 bits;
4levels stack bufferTRANSCEIVER射频收发器M05DC用于

2.4GHz ISM无线应用POWER电源LP4054带USB的可充电方式I/O输入

输出5Button
1Lamp输出信号灯为二极管下面简要介绍涉及到的主要芯片.1)

SN8P2612单片机:SN8P2612是一个带有RISClike系统的8位单片

机如图1所示.结构包括2K*16bits的程序存储器(OTP

ROM),64*8bits的数据存储器(RAM),4个中断源

(T0,TC0,INT0,INT1),两个8位定时计数器(T0,TC0),一通道PWM输

出(PWM0),一通道BUZZER输出(BZ0)和4级堆栈缓存器(stack

buffer)等.图1SN2612单片机实体图
Fig.1Physical map of SN26122) MO5DC芯片:MO5DC是一种

集成芯片,是为了2.4GHz ISM无线应用设计的,数据的速率是

500kbps.MO5DC射频组件共有160频率渠道,这里只选择了16个不

同的频率渠道,跳频(频道切换) 20 ms执行一次.为了避免RF干扰,

射频频道的频率每20 ms在传输方和接收方都会改变.3) LP4054充

电芯片:RF对码遥控器采用的充电方式是带USB的可充电方式,而这

一方式是通过LP4054充电芯片实现的.LP4054是恒流/恒压,为单个

锂电池进行充电的,它非常适合于便携式外部组件,专门为USB设备

设计的.4) A7105射频晶片:A7105是一种低成本、用于2.4 GHz

ISM频段的无线应用的射频晶片,它是用在遥控器信号接收端,而不

是遥控器本身.A7105内含高灵敏的接收器,所以在10 m以内的应用

产品,可以大幅度下降RF的发射能量,来避免射频产品对人体造成可

能的伤害.工作频率是可以程式化设计,最高为500 Kbps,如图2所

示.图2A7105芯片实体图
Fig.2Physical map of A7105第12期郑更生,等:高性价比射频对

码遥控器研究
武汉工程大学学报第32卷
2系统设计与实现2.1通信模块设计芯片与单片机间的通信采用软件

模拟SPI来实现[24].SPI总线系统是一种同步串行外设接口[5

],它可以使单片机与各种外围设备以串行方式进行通信以交换信

息.A7105射频芯片控制寄存器的控制是由3/4线串列介面操作读出

或写入资料.主要介绍一下利用3线读/写工作时序来模拟SPI.读写

过程的实现所利用的函数为:void ByteSend(uint src)和uint

ByteRead(void).void ByteSend(uint src){uint

i;SDIOM=1;for(i=0;i<8;i++){if(src & 0x80) SDIO=1; else

SDIO=0;NOP(1);SCK=1;NOP(1);SCK=0;src=src<<1;}}uint

ByteRead(void){uint i,tmp;tmp=0;SDIOM=0;for

(i=0;i<8;i++){if (SDIO) tmp=(tmp<<1)|0x01; else

tmp=tmp<<1;SCK=1;NOP(1);SCK=0;NOP(1);}return tmp;}图3为

写操作,当SCS为低电平时芯片被激活[6],当SCK时脉位于上升沿

时,写入地址信息(address 8bit)后,当SCK再次处于上升沿时开始

写入数据.SPI写函数具体实现是依次调用ByteSend(addr)和

ByteSend(data).图3三线串口——写操作
Fig.33Wire serial interface:Write operation图4三线串

口——读操作
Fig.43Wire serial interface:Read operation图4为读操作

,当SCS为低电平时芯片被激活,在写入地址资料(address)后,当

SCK再次处于上升沿时,单片机可读取出资料,而RF芯片会在下降沿

时将地址资料(address)转换为数据资料(data).SPI读函数具体实

现是依次调用ByteSend(addr)和 ByteRead(void).RF芯片在接收

数据前要先从空中接收数据到RX FIFO后然后单片机再读取RX FIFO

中的内容[7].此过程使用的函数的为:(1)StrobeCmd

(CMD_RX);//接收数据到RX;(2)A7105_ReadFIFO();//读取数据.同

理,发送数据也是这样,单片机先将数据发送到TX FIFO中,然后再

是通过芯片将TX FIFO中的数据发送到空中.这样一个半双工的过程

,提高了发送过程中的信号质量,其转换和设置在函数中的语法格式

为SDIOM=0/12.2产生通信频道的设计与实现遥控器设计中最重要的

部分是控制端与被控制端间通信频道的建立,要确保信道的稳定与

安全.在频道选取之初先在发送端初始化ID,产生一个随机码CID,并

在固定初始频道X发出,之后将自身的频道减一,然后等待数据的回

发.随机码CID是由按键开始的时间所决定.接收端同样也初始化自

己的ID,并在初始频道X1等待数据,收到数据后进行对码,若成功

则将对码数据从频道X发送,将自身ID改为CID(发送端获取),并产生

一个实际的通信频道.对码的实现和数据回发的函数语法格式

为:uint CheckSum(void);void Send_Duima_Back(void);发送端

接收到数据后将ID改为CID,并根据接收到的数据产生同样的通信频

道.实际通信频道的产生由CID决定如BRFCH=CID3%0x10,但若此频

道无法通信时,则会自动跳到另一个频道,两个频道之间会相隔一个

区间.至此,对码与信道的产生结束.多次的对码和信道的跳转机制

使得在信道选取出错或被其他设备的信号干扰时,能有效的进行调

整,减少故障率,保证了遥控器的正常工作.在对码过程中,若遥控端

在发送了一定次数的对码信息后仍获得被控端的回应,则遥控端会

进入休眠状态.而无论是在对码还是在数据传送过程中都要保证发

送频道=接受频道+1.图5和图6分别为发送端和接收端的流程图.图5

发送端流程图
Fig.5Flow chart of the sender图6接收端流程图
Fig.6Flow chart of receiver2.3休眠节能设计休眠机制可节约

能量延长遥控器的使用寿命.休眠的做法是先指定某个接口如P0口

可以休眠,当电平有变化则可从休眠中被唤醒,开始正常工作轮询按

键.按键事件处理完毕,发出相应指令后再次进入休眠状态,并设置

断点等待下一个事件.系统中共有2个休眠器件,RF芯片A7105休眠和

单片机SN2612休眠.实现这两种休眠机制的函数为:StrobeCmd

(CMD_SLEEP)和FCPUM0=1.芯片的唤醒机制有两种,一是利用函数实

现,另一种则是在FIFO模式下将芯片唤醒.单片机则是在有按键的情

况下就会被唤醒,相关的设置在SN8P2612.H中.芯片唤醒机制的函数

为:StrobeCmd(CMD_STBY)和StrobeCmd(CMD_RX)或StrobeCmd

(CMD_TX).3结语上述设计的产品是针对某公司视频监控系统所设计

的遥控装置,现以完成并交付公司投入生产使用,市场反应良好.公

司根据系统和市场的实际情况对产品提出了一些改良建议,如若监

控系统的升级,功能有所增加,希望遥控器能相应的实现对更多功能

的控制,遥控器本身体积较小,考虑能否实现单个按钮的多功能控制

,并且进一步完善跳频机制,实现抗干扰.总体上本遥控器的设计达

到了公司的需求.