关键词: 遥控;PT2262;单片机解码;87LPC764
在红外/无线遥控应用中,PT2262与PT2272是一对常用的编码和解码IC。使用该组芯片的典型家电遥控收发系统用PT2272来解码。PT2272可以获得较快的解码速度,但是PT2272采用并行输出的方式,占用单片机I/O资源多,整个系统的开销和成本相对较大。如果采用单片机兼作解码器的技术,不仅可以省去芯片PT2272,减少中间环节,增强系统的可靠性,而且仅占用了单片机上两个I/O口,充分利用了单片机资源,节省了电路板上的空间,降低了成本,具有很好的实用价值。
PT2262是Princeton Technology公司的一款适用于红外和无线遥控,将载波振荡、编码、发射部分集于一身的集成电路。它具有价格低、功耗小、抗扰性好、单电阻振荡、适用电压范围宽等优点,外围电路简单,使用方便。目前被广泛应用于家电遥控、车门遥控、遥控玩具及工业遥控等领域。
PT2262芯片引脚排列。各引脚功能如下:A0~A5为地址输入,可编制成三种状态:1、0和高阻态;A6/D0~A11/D5为地址或数据输入,取决于接收端的译码器。做地址输入时,可编制成三种状态:1、0和高阻态;做数据输入时,可编成l和0两种状态。该芯片编码容量为531441(312)种。为发射使能端,低电平有效。OSC1、OSC2外接振荡电阻,决定电路时钟频率。Dout为数据输出端。由地址、数据的不同状态而决定的各位编码由此脚串行输出。PT2262 的信号发送格式。
每当按键有效时,PT2262 发送四次编码。每发送编码都有5ms 宽度的低电平分开,而16ms的编码是由A0~A11十二个码组成,低位在前,高位在后。
PT2262每组发送12位三态数据,要把三态码转换成二进制形式,每位数据(0,1,高阻态)由两个脉冲位组成,接收端的信号与发送的信号高低电平正好相反。在接收端,把负电平的脉冲作为有效信号,这样的脉冲有两种,一种为宽脉冲,长度约490μs,一种为窄脉冲,宽度约165μs。每一个数据位的宽度约为1.3ms,每组12位数据的宽度约为16ms。如果把宽脉冲看作二进制“0”,窄脉冲看作二进制“1”,那么接收到的二进制码和发送的三态码的对应关系如表1所示。这样,解码的对象实际上就是与12位三态码对应的24位的二进制码。
每检测到有效按键,PT2262都发送四次编码,接收端收到的编码间隔是5ms的高电平。可以利用这一特点先检测有没有接收到数据。当有数据的时候,就去掉次编码的信号,接收到5ms的高电平的负跳变后才开始解码。解码时,使用单片机内的比较器判断信号的电平跳变,用定时器记录信号相邻下降沿和上升沿之间的时间,判断是宽脉冲(二进制1)还是窄脉冲(二进制0),将该二进制数值记录下来,就得到了与发送端相对应的编码。
本文采用的解码单片机是Philips公司的87LPC764。这是一款性价比较高的80C51改进型MCU,增加了WDT、I2C、模拟比较器等功能。利用其模拟比较器的功能可以较方便的实现对PT2262信号的解码,而且仅占用单片机的2个I/O口。解码部分的硬件连接方式。遥控接收头是一个模拟接收电路,接收发送方的物理信号,将信号传送到单片机比较器的输入脚。
87LPC764内置了2个模拟信号比较器,CMP1和CMP2。每一个比较器包含一个正相输入端、一个反相输入端和一个输出端。当正相输入电压大于反相输入电压时,比较器输出逻辑“1”,反之则输出“0”。同时每一个比较器都可以成为一个中断源。
解码过程只需要一个比较器,外接一个参考电压作为判断高低电平信号的参考。当接收端信号电平发生跳变时,产生一个比较器中断,利用中断服务程序可以实现解码操作。
解码程序在比较器中断服务程序中实现。个下降沿表明编码输出开始,这时将时间记录为last_time,当比较器输出跳变为高电平时,记录当前时间current_time,并且记录脉冲宽(current_time - last_time),判断收到的为宽脉冲还是窄脉冲,如果是窄脉冲,记录为1,宽脉冲记录为0。
每一组有效的编码由24个位组成,因此程序中需要有一个脉冲计数变量来记录是否有24位码,只有确认收到24位码后,才认为这次按键有效。同时需要防止将用户的按键解释为多次按键,需要有去抖功能。可以设一个变量来记录同一个键值的收到次数,当它的记录小于某一预定的值时,表示用户在进行同按键操作。完整的接收到一组编码以后,在中断程序中将键值有效标志key_flag置1,主程序循环中如果查询到key_flag为1,则保存这个键码,即完成了解码的操作。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。