新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 用87LPC764实现遥控信号的解码

用87LPC764实现遥控信号的解码

作者:浙江大学控制系系统工程研究所 刘锴 吴明光/浙江大学机械与能源工程学院 魏欣时间:2004-09-07来源:电子设计应用收藏

电子设计应用2003年第5期

本文引用地址:http://www.eepw.com.cn/article/3224.htm

摘   要: 本文针对家电系统中使用专用解码芯片解码的方法消耗系统资源多、占用空间大、成本高等问题,提出了一种用单片机对编码芯片的信号进行解码的方法,并介绍了其硬件结构和软件实现的流程。
关键词: 

引言
在红外/无线遥控应用中,与PT2272是一对常用的编码和解码IC。使用该组芯片的典型家电遥控收发系统用PT2272来解码(图1中虚线箭头所示)。PT2272可以获得较快的解码速度,但是PT2272采用并行输出的方式,占用单片机I/O资源多,整个系统的开销和成本相对较大。如果采用单片机兼作解码器的技术(图1中粗实线箭头所示),不仅可以省去芯片PT2272,减少中间环节,增强系统的可靠性,而且仅占用了单片机上两个I/O口,充分利用了单片机资源,节省了电路板上的空间,降低了成本,具有很好的实用价值。

图1 遥控系统结构图

图2 PT2262引脚排列图


PT2262编码原理
PT2262是Princeton Technology公司的一款适用于红外和无线遥控,将载波振荡、编码、发射部分集于一身的集成电路。它具有价格低、功耗小、抗扰性好、单电阻振荡、适用电压范围宽等优点,外围电路简单,使用方便。目前被广泛应用于家电遥控、车门遥控、遥控玩具及工业遥控等领域。
PT2262芯片引脚排列如图2所示。各引脚功能如下:A0~A5为地址输入,可编制成三种状态:1、0和高阻态;A6/D0~A11/D5为地址或数据输入,取决于接收端的译码器。做地址输入时,可编制成三种状态:1、0和高阻态;做数据输入时,可编成l和0两种状态。该芯片最大编码容量为531441(312)种。为发射使能端,低电平有效。OSC1、OSC2外接振荡电阻,决定电路时钟频率。Dout为数据输出端。由地址、数据的不同状态而决定的各位编码由此脚串行输出。PT2262 的信号发送格式如图3所示。
每当按键有效时,PT2262 发送四次编码。每发送一次编码都有5ms 宽度的低电平分开,而16ms的编码是由A0~A11十二个码组成,低位在前,高位在后。
PT2262每组发送12位三态数据,要把三态码转换成二进制形式,每位数据(0,1,高阻态)由两个脉冲位组成(具体编码格式见图4),接收端的信号与发送的信号高低电平正好相反。在接收端,把负电平的脉冲作为有效信号,这样的脉冲有两种,一种为宽脉冲,长度约490μs,一种为窄脉冲,宽度约165μs。每一个数据位的宽度约为1.3ms,每组12位数据的宽度约为16ms。如果把宽脉冲看作二进制“0”,窄脉冲看作二进制“1”,那么接收到的二进制码和发送的三态码的对应关系如表1所示。这样,解码的对象实际上就是与12位三态码对应的24位的二进制码。

图3 PT2262发送格式

图4 PT2262编码格式

解码原理及硬件结构
每检测到一次有效按键,PT2262都发送四次编码,接收端收到的编码间隔是5ms的高电平。可以利用这一特点先检测有没有接收到数据。当有数据的时候,就去掉第一次编码的信号,接收到5ms的高电平的负跳变后才开始解码。解码时,使用单片机内的比较器判断信号的电平跳变,用定时器记录信号相邻下降沿和上升沿之间的时间,判断是宽脉冲(二进制1)还是窄脉冲(二进制0),将该二进制数值记录下来,就得到了与发送端相对应的编码。
本文采用的解码单片机是Philips公司的。这是一款性价比较高的80C51改进型MCU,增加了WDT、I2C、模拟比较器等功能。利用其模拟比较器的功能可以较方便的实现对PT2262信号的解码,而且仅占用单片机的2个I/O口。解码部分的硬件连接方式见图5。图中遥控接收头是一个模拟接收电路,接收发送方的物理信号,将信号传送到单片机比较器的输入脚。
内置了2个模拟信号比较器,CMP1和CMP2。每一个比较器包含一个正相输入端、一个反相输入端和一个输出端。当正相输入电压大于反相输入电压时,比较器输出逻辑“1”,反之则输出“0”。同时每一个比较器都可以成为一个中断源。
解码过程只需要一个比较器,外接一个参考电压作为判断高低电平信号的参考。当接收端信号电平发生跳变时,产生一个比较器中断,利用中断服务程序可以实现解码操作。

图5 接收头与单片机硬件连接图

图6  比较器中断程序流程图

解码软件的实现
解码程序在比较器中断服务程序中实现。第一个下降沿表明编码输出开始,这时将时间记录为last_time,当比较器输出跳变为高电平时,记录当前时间current_time,并且记录脉冲宽(current_time - last_time),判断收到的为宽脉冲还是窄脉冲,如果是窄脉冲,记录为1,宽脉冲记录为0。
图6是比较器中断程序流程图。每一组有效的编码由24个位组成,因此程序中需要有一个脉冲计数变量来记录是否有24位码,只有确认收到24位码后,才认为这次按键有效。同时需要防止将用户的一次按键解释为多次按键,需要有去抖功能。可以设一个变量来记录同一个键值的收到次数,当它的记录小于某一预定的值时,表示用户在进行同一次按键操作。完整的接收到一组编码以后,在中断程序中将键值有效标志key_flag置1,主程序循环中如果查询到key_flag为1,则保存这个键码,即完成了一次解码的操作。
 
结语
文章提出的解码方法已经成功应用于一个无线遥控浴霸产品。使用该方法,遥控模块的成本降低了15%左右,而且电路板空间节省了5%左右,硬件资源也得到了充分利用。■

参考文献
1 Princeton Technology Corp. Remote Control Encoder. 1999
2 Philips Semiconductor. 87LPC764 Data Sheet. 2001
3 李坚. PT2262-IR-PT2272芯片应用.现代通信.1997.2



评论


相关推荐

技术专区

关闭