原创 无线遥控发射与接收的原理与实现

2010-5-31 14:28 7339 7 12 分类: MCU/ 嵌入式

无线遥控发射与接收的原理与实现<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


无线遥控是指实现对被控目标的非接触(即无线)远程控制,再引申一点就可以实现“遥测”了,这种控制技术在工业控制、航空航天、家电领域等应用很广泛。遥控系统一般由发射器电路和接收器电路两部分组成。发射器电路一般由指令键、指令编码电路、调制电路、驱动电路、发射电路等几部分组成;接收器电路一般由接收电路、放大电路、解调电路、指令译码电路和执行电路等几部分组成。


无线遥控的实现通常会用到PT2262PT2272这两个芯片,它们是台湾普城公司生产的一种CMOS工艺的低功耗通用编、解码芯片。图解如下:



点击看大图点击看大图


解析:发射芯片PT2262将载波振荡器、编码器和发射单元集成于一“芯”,使发射电路变得非常简洁。最多可有12位(A0~A11)三态地址端管脚,任意组合的话可以有312=531441个地址码,且最多有6位(D0~D5)个数据端管脚,设定的地址码和数据码从17脚串行输出,用于无线遥控发射信号,发出的编码信号由:地址码、数据码、同步码组成的一个完整的码字。当PT2262芯片正常工作时,其第17脚输出经过内部硬件自动调制的串行数据信号:


(1)当第17脚为高电平时,芯片内部的高频发射电路起振,并发射等幅高频信号;


(2)当第17脚为低电平时,芯片内部的高频发射电路停止振荡,即不发射高频信号。


So,也就说明高频发射电路完全受控于PT2262的第17脚输出的数字信号,从而对高频发射电路完成幅度键控。




点击看大图点击看大图


解析:解码芯片PT2272接收到信号后,其地址码经过两次比较核对后,VT脚才输出高电平,与此同时相对应的数据脚也输出高电平,说明已经正确接收到高频信号。PT2272解码芯片出厂时会有不同的后缀,数据输出具有暂存锁存两种方式,方便用户使用。L4/M4/L6/M6之分,其中:


(1)L表示锁存输出,数据只要成功接收就能一直保持对应的电平状态,直到下次遥控数据发生变化时才改变;


(2)M表示非锁存输出,数据脚输出的电平是瞬时的,接收数据后不会保持相对应的电平状态;


(3)4表示当采用4路并行数据时,对应的地址编码就应该是4位;


(4)6表示当采用6路的并行数据时,对应的地址编码就应该是6位。


为了能正确解调出调制的编码信号,接收端需加一级前置放大级,以确保输入PT2272的信号幅度足够大。将这些解调信号再放大的话,就可以驱动RelayBJT等进行对负载的状态进行“遥控”了。需要注意的一个问题就是:只有发射端PT2262的接收端PT2272的地址编码完全相同时,才能配对使用,否则就无所谓遥控了。


下面是我修改好的代码,虽然这次调试的硬件比较复杂,但是驱动代码却很简单明了,以前听说过这回事,这次小有体会:做硬件电路厉害的才真正算高手!(嘿嘿,有不同意者请保留意见,言论自由,哈哈)


 


#include <reg52.h>



#define uchar unsigned char 


#define uint  unsigned int 



uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};


uchar temp;


sbit P2_7=P2^7;


//************************************************


void main(void)


{


    P2_7=0; //一个数码管的位选


    P0=table[0];  //初始时数码管显示数字0



    while(1)


    {


        P1=0xff; //P1口设置为输入状态时,要先全部置为1,这是由内部硬件决定的 


        temp="P1";


        temp="temp"&0x0f; //只需要P1口的高四位,以此读取无线遥控码



        switch(temp)


        {


            case(0x01):P0=table[1];break;//在数码管上显示"1"


            case(0x02):P0=table[2];break;//在数码管上显示"2"


            case(0x04):P0=table[3];break;//在数码管上显示"3"


            case(0x08):P0=table[4];break;//在数码管上显示"4"


        }


    }


}




 

 
PARTNER CONTENT

文章评论5条评论)

登录后参与讨论

用户1528479 2010-5-31 14:29

好的,已经补上了,,

shenzhenghao1984_379129130 2010-5-31 14:19

图看不着,希望把图能补下

用户1547209 2010-5-27 22:06

henhao

用户1528479 2010-5-25 23:08

to hlxldb:我手里用的是在淘宝上买的现成的模块,很便宜,不超过30块钱,买的时候他没给电路图,不过我调程序时大概看了一下电路的元器件布局,觉得他应该是按照datasheet里的典型电路设计的,另外模块中多加了一个放大电路,所以你如果参考一下datasheet里的图进行设计的话,应该问题不大的,,

用户1483310 2010-5-25 22:32

能不能把电路图发上来看看哈
相关推荐阅读
用户1528479 2011-04-12 21:50
设计第一个六层板所得到的一个深刻体会
        今天中午,由于确实有点困,于是乎仰躺在座椅上眯了半个小时的眼,睡眼朦胧中,好消息随即到来——我的第一个六层板从深圳寄到长沙了!而且元器件都已经由深圳那边的人焊接好了,拆开包装袋一看,简...
用户1528479 2011-03-25 15:28
DDR2 SDRAM×32布局、布线经验谈
最近忙于一块以CycloneIII为核心主控芯片的六层板设计,开发环境是Capture+Allegro+CAM350,从原理图修改到PCB的布局、布线这整个过程中我遇到了相当多的问题,值得庆幸的是...
用户1528479 2011-03-25 13:30
DDR2 SDRAM×32布局、布线经验谈
DDR2 SDRAM×32布局、布线经验谈最近忙于一块以CycloneIII为核心主控芯片的六层板设计,开发环境是Capture+Allegro+CAM350,从原理图修改到PCB的布局、布线这整个过...
用户1528479 2011-02-27 19:48
使用Cadence16.2过程中遇到的一些问题(附解惑方法)
使用Cadence16.2过程中遇到的一些问题(附解惑方法) 很久没有写博文了!确实有点过意不去。最近两个多月以来,由于公司的需要,我不得不学习Cadence16.2的使用方法——用它来画高速板子...
用户1528479 2011-02-27 19:46
使用Cadence16.2过程中遇到的一些问题(附解惑方法)
使用Cadence16.2过程中遇到的一些问题(附解惑方法)很久没有写博文了!确实有点过意不去(呵呵,这意味着自己最近懈怠了)。最近两个多月以来,由于公司的需要,我不得不学习Cadence16.2的使...
用户1528479 2011-02-12 09:15
数字旋转编码开关的原理及使用方法
在电子产品设计中,经常会用到旋转编码开关,比如数码电位器等,它的英文名翻译过来就是Rotary Encoder Switch。在写这个元件的驱动程序之前,我google、baidu了一些它的使用说明资...
EE直播间
更多
我要评论
5
7
关闭 站长推荐上一条 /3 下一条