你的位置:
首页
>
IT圈
>
20100702024802_Sony红外遥控协议的解码方法
2024年2月19日发(作者:邬白玉)
Sony 红外遥控解码方法
Combi 红外遥控解码的硬件架构如上图所示:红外遥控解码的硬件架构如上图所示:
1) IR Receiver
的OUT脚(数据输出脚)接在MA83P07的K01 Port,K01为 Interruption Input
Port,可以设置为Falling edge interrupt和Rising edge interrupt。
注:使用 Interruption Input Port可以及时的侦测到 IR Receiver OUTpin的电平变化。
2) MA83P07中有一个定时器T1(时钟源为外部32.768KHz晶振),用于测量IR Receiver
Output Wave的脉宽。
注:使用32.768KHz晶振作为T1的时钟源可以保证脉宽测量的准确性。
Sony红外遥控 Logical“1” 和Logical“0”的定义
Sony 红外遥控Start信号的定义
1
红外解码过程:红外解码过程:
假设 IR Receiver OUT Pin输出波形如上图所示:
由于 IR Receiver OUT pin在没有数据输出是为High,所以红外解码过程如下:
Step1:将K01初始化为 Falling edge interrupt input,Interrupt Enable,关闭T1。
Step2:当IR Receiver OUT Pin变Low时,开启T1开始计时,并将K01设置为Rising edge
interrupt input,Interrupt Enable。
Step3:当IR Receiver OUT Pin变High时,停止T1计时,并读出T1计时值T1,并将K01
设置为Falling edge interrupt input,Interrupt Enable,开启T1开始计时。
Step4:当IR Receiver OUT Pin变Low时,停止T1计时,并读出T1计时值T2,并将K01
设置为Rising edge interrupt input,Interrupt Enable,开启T1开始计时。
Step5:判断 T1和T2是否符合下面条件:
2.4mS×90%< T1<2.4mS×110%
0.6mS×90%< T2<0.6mS×110%
如果符合则确认 Start信号收到,进入Step6开始接收数据。
如果不符合条件,说明收到的为干扰信号,回到Step1。
Step6:当IR Receiver OUT Pin变High时,停止T1计时,并读出T1计时值T3,并将K01
设置为Falling edge interrupt input,Interrupt Enable,开启T1开始计时。
Step7:当IR Receiver OUT Pin变Low时,停止T1计时,并读出T1计时值T4,并将K01
设置为Rising edge interrupt input,Interrupt Enable,开启T1开始计时。
Step8:判断 T3和T4如果符合:
1.2mS×90%< T3<1.2mS×110%
0.6mS×90%< T4<0.6mS×110%
则收到的数据为Logical “1”
如果T3和T4如果符合:
0.6mS×90%< T3<0.6mS×110%
0.6mS×90%< T4<0.6mS×110%
2
则收到的数据为Logical “0”
Step9:判断协议规定的数据位数是否接收完,如果没有收完,跳回Step6接收下一个数
据。如果收完,进入Step10。
Step10:根据协议规定,判断Address和Command,如果Address与约定的相同,则Command
为有效Command。同时进入Step1准备下一次红外遥控命令的接收。
3
2024年2月19日发(作者:邬白玉)
Sony 红外遥控解码方法
Combi 红外遥控解码的硬件架构如上图所示:红外遥控解码的硬件架构如上图所示:
1) IR Receiver
的OUT脚(数据输出脚)接在MA83P07的K01 Port,K01为 Interruption Input
Port,可以设置为Falling edge interrupt和Rising edge interrupt。
注:使用 Interruption Input Port可以及时的侦测到 IR Receiver OUTpin的电平变化。
2) MA83P07中有一个定时器T1(时钟源为外部32.768KHz晶振),用于测量IR Receiver
Output Wave的脉宽。
注:使用32.768KHz晶振作为T1的时钟源可以保证脉宽测量的准确性。
Sony红外遥控 Logical“1” 和Logical“0”的定义
Sony 红外遥控Start信号的定义
1
红外解码过程:红外解码过程:
假设 IR Receiver OUT Pin输出波形如上图所示:
由于 IR Receiver OUT pin在没有数据输出是为High,所以红外解码过程如下:
Step1:将K01初始化为 Falling edge interrupt input,Interrupt Enable,关闭T1。
Step2:当IR Receiver OUT Pin变Low时,开启T1开始计时,并将K01设置为Rising edge
interrupt input,Interrupt Enable。
Step3:当IR Receiver OUT Pin变High时,停止T1计时,并读出T1计时值T1,并将K01
设置为Falling edge interrupt input,Interrupt Enable,开启T1开始计时。
Step4:当IR Receiver OUT Pin变Low时,停止T1计时,并读出T1计时值T2,并将K01
设置为Rising edge interrupt input,Interrupt Enable,开启T1开始计时。
Step5:判断 T1和T2是否符合下面条件:
2.4mS×90%< T1<2.4mS×110%
0.6mS×90%< T2<0.6mS×110%
如果符合则确认 Start信号收到,进入Step6开始接收数据。
如果不符合条件,说明收到的为干扰信号,回到Step1。
Step6:当IR Receiver OUT Pin变High时,停止T1计时,并读出T1计时值T3,并将K01
设置为Falling edge interrupt input,Interrupt Enable,开启T1开始计时。
Step7:当IR Receiver OUT Pin变Low时,停止T1计时,并读出T1计时值T4,并将K01
设置为Rising edge interrupt input,Interrupt Enable,开启T1开始计时。
Step8:判断 T3和T4如果符合:
1.2mS×90%< T3<1.2mS×110%
0.6mS×90%< T4<0.6mS×110%
则收到的数据为Logical “1”
如果T3和T4如果符合:
0.6mS×90%< T3<0.6mS×110%
0.6mS×90%< T4<0.6mS×110%
2
则收到的数据为Logical “0”
Step9:判断协议规定的数据位数是否接收完,如果没有收完,跳回Step6接收下一个数
据。如果收完,进入Step10。
Step10:根据协议规定,判断Address和Command,如果Address与约定的相同,则Command
为有效Command。同时进入Step1准备下一次红外遥控命令的接收。
3