常见红外协议整理
引导码(Leader Code):引导码用来告诉接收器一个新数据帧的开始。9ms的脉冲burst + 4.5ms的空闲。用户代码(Custom Code):用户代码用于标识设备,可以用来区分不同品牌。16位(两个字节),高8字节有效,低8字节是高八字节的反码,用于错误检测数据码(Data Code):数据码包含具体的按键值,16位(两个字节),高8字节有效,低8字节是高八字节的反码,用于错误检测。
1.NEC
1.1 信号编码
-
载波频率:38kHz载波,载波占空比建议位1/3或1/4。
-
逻辑"0":562.5μs的脉冲burst(约21个周期) + 562.5μs的空闲,总时长1.125ms
-
逻辑"1":562.5μs的脉冲burst(约21个周期) + 1.6875ms的空闲,总时长2.25ms
-
引导码:引导码用来告诉接收器一个新数据帧的开始。9ms的脉冲burst + 4.5ms的空闲。
-
重复码:9ms脉冲burst + 2.25ms空闲 + 562.5μs脉冲burst
1.2 协议介绍
NEC红外协议(NEC Infrared Protocol)是一种广泛应用于遥控器中的通信协议, NEC红外协议的数据帧由以下几个部分组成:
-
引导码(Leader Code):引导码用来告诉接收器一个新数据帧的开始。9ms的脉冲burst + 4.5ms的空闲。
-
用户代码(Custom Code):用户代码用于标识设备,可以用来区分不同品牌。16位(两个字节),高8字节有效,低8字节是高八字节的反码,用于错误检测
-
数据码(Data Code):数据码包含具体的按键值,16位(两个字节),高8字节有效,低8字节是高八字节的反码,用于错误检测。
-
停止位(Stop Bit):一个562.5微秒(约21个周期)的低电平脉冲,表示数据帧的结束。
1.3 重复码
-
按键持续按下时,每108ms发送一次重复码
-
重复码格式:9ms脉冲burst + 2.25ms空闲 + 562.5μs脉冲burst
2. NEC-16
-
取消了地址码的反码,地址变为16位,其余与NEC一样
3. Philips RC-5
3.1 信号编码
Philips RC-5(Remote Control 5)是由飞利浦公司开发的一种红外遥控协议
-
载波频率:RC-5协议的载波频率为36kHz。建议占空比为1/3或1/4。
-
编码方式:RC-5协议采用曼彻斯特编码(Manchester Coding),一个比特周期为1.778ms,每个比特由一个高电平和一个低电平组成。逻辑"1"表示比特周期中间的从低到高的变化,逻辑"0"表示比特周期中间的从高到低的变化。
3.2 协议介绍
假设我们要发送一个数据帧,其地址为0x1F
,命令为0x3A
,发送顺序如下:
-
开始位:两个连续的逻辑"1"(表示两个比特周期,每个周期1.778ms)。
-
控制位:一个逻辑"0"或"1",用于区分按键是否被连续按下。
-
地址位:5位地址码(如
11111
)。 -
命令位:6位命令码(如
111010
)。
3.3 重复码
-
没有专门的重复码
-
只要遥控器按键一直按下,相同的信息会以114ms的周期时间重复发送
4. Philips RC-6
4.1 信号编码
-
载波频率:RC-6协议的载波频率为36kHz。建议占空比为1/3或1/4。
-
编码方式:RC-6协议采用曼彻斯特编码(Manchester Coding)。
-
本时间单位(1t):等于16个载波周期,即444微秒。
-
**Leader Bit:**标记时间为6t (2.666ms),间隔时间为2t (0.889ms)
-
Normal bits:标记时间为1t(0.444毫秒),空间时间为1t(0.444毫秒),RC-6 与 RC5 Logic"0" 和 Logic"1" 表示方法正好相反
-
**Toggle Bit:**标记时间为2t(0.889毫秒),空间时间为2t(0.889毫秒),RC-6 与 RC5 Logic"0" 和 Logic"1" 表示方法正好相反
4.2 协议介绍
RC-6协议的数据格式比RC-5更复杂,通常包括以下部分:
-
Leader Symbol (LS) :用于同步接收器,1 Leader Bit
-
Start Bit (SB): 起始位,1 Normal bits,固定为Logic"1"
-
模式位(Mode):指示不同的操作模式,3 Normal bits
-
控制位(TR):用于区分连续按键和单次按键, 1 Trailer bits。
-
地址位(Address):8 Normal bits
-
命令位(Command):8 Normal bits
4.3重复码
-
没有专门的重复码
-
只要遥控器按键一直按下,相同的信息会以83ms的周期时间重复发送(TR位用来区分按键是否被重复按下)
5. JVC
5.1 信号编码
-
载波频率:38kHz载波,载波占空比建议位1/3或1/4。
-
引导码: 8.4ms的脉冲burst + 4.2ms的空闲
-
逻辑"0":1.05ms传输时间(526μs脉冲burst + 526μs空闲)
-
逻辑"1":2.10ms传输时间(526μs脉冲burst + 1.576ms空闲)
5.2 协议介绍
5.3重复码
- 重复传输:如果按键持续按下,消息会每50~60ms重复传输一次
- 重复帧只包含地址码和命令码,不再包含引导码
- 这种方式允许接收器判断按键是否持续按下
6. Sharp
6.1 信号编码
-
载波频率:38kHz载波,载波占空比建议位1/3或1/4。
-
逻辑"0":320μs的脉冲burst(约21个周期) + 680μs的空闲,总时长1ms
-
逻辑"1":320μs的脉冲burst(约21个周期) + 1.680ms的空闲,总时长2ms
6.2 协议介绍
-
一个完整的命令由两个数据包组成,个完整的Sharp红外数据包包含以下几个部分:
-
地址位(ADDR):5位,用作地址字节,最低位优先发送。
-
命令位(CMD):8位,用作命令字节,最低位优先发送。
-
扩展位(Exp):1位,固定为"1",校验包内为"0"。
-
校验位(CHK):1位,固定为"0",校验包内为"1"。
-
尾脉冲:1位,正脉冲,持续320μs。
-
- 一个完整的命令由两个数据包组成,第一个数据包按上述格式发送,延时40ms后发送第二个数据包,第二个数据包中,地址位(ADDR)保持不变,其他位(CMD、Exp、CHK)取反。
7. Sony SIRC
7.1 信号编码
-
载波频率:40kHz, 载波占空比建议位1/3或1/4。
-
逻辑"0":600μs的脉冲burst + 600μs的空闲,总时长1ms
-
逻辑"1":12000μs的脉冲burst + 600us的空闲,总时长2ms
7.2 协议介绍
Sony SIRC 帧结构有3个版本 12位版本, 15位版本, 20位版本, 三个版本 Start 和 Command 都是一样的,区别在于 Address 不同。
- Start: 2.4ms的脉冲burst + 0.6ms的空闲,总时长3ms
- Command: 7bit。
- Address:
- 12位版本-5bit Address。
- 15位版本-8bit Address。
- 20位版本-5bit Address + 8bit extended bits
7.3 重复码
-
没有专门的重复码
-
只要遥控器按键一直按下,相同的信息会以45ms的周期时间重复发送
8. X-Sat / Mitsubishi
8.1 信号编码
-
载波频率:38kHz, 载波占空比建议位1/3或1/4。
-
逻辑"0":526μs的脉冲burst + 474μs的空闲,总时长1ms
-
逻辑"1":526μs的脉冲burst + 1474us的空闲,总时长2ms
8.2 协议介绍
8.3 重复码
-
没有专门的重复码
-
只要遥控器按键一直按下,相同的信息会以60ms的周期时间重复发送
9 Nokia NRC17
9.1 信号编码
- 载波频率:38kHz, 载波占空比建议位1/3或1/4。
9.2 协议介绍
-
预脉冲:消息以预脉冲开始,包括一个500us的脉冲和一个2.5us的空闲,总计3毫秒。
-
起始位:起始位总是 Logic"1" ,用于在接收端校准位时间。
-
数据位:数据位按以下顺序传输:
- 8位命令
- 4位地址
- 4位子码
9.3 发送流程
NRC17协议遥控器的传输流程。具体如下:
- 起始消息:当按下遥控器上的按钮时,遥控器首先发送一个起始消息。这个消息包含一个特殊的命令(0FEH)和一个特殊的代码(0FFH),其中代码由Address + Sub Code组成。
- 正确按钮消息:在起始消息发送后40毫秒,遥控器开始发送实际的按钮消息,即用户按下的具体按钮对应的命令。这条消息会每100毫秒重复发送一次,只要按钮保持按下状态。
- 停止消息:当用户松开按钮时,遥控器会在下一次重复消息发送之前发送一个停止消息。这个停止消息也包含0FEH命令和0FFH代码,用于标识按钮已被释放。
- 传输序列:每个传输序列都包含起始消息和停止消息。这些消息可以帮助接收器判断按钮是被连续按下还是只是由于机械反弹引起的误触发。
- 避免误判:由于0FEH命令和0FFH代码在起始和停止消息中具有特殊意义(用于标识按钮按下和释放状态),因此在遥控器设计中不应使用这些特定的命令和代码,以避免接收器误判按钮状态。
10. RCA
10.1 信号编码
- 载波频率:56kHz, 载波占空比建议位1/3或1/4。
10.2 协议介绍
10.3 重复码
-
没有专门的重复码
-
只要遥控器按键一直按下,相同的信息会以64ms的周期时间重复发送
11. Philips RECS-80
11.1 信号编码
载波频率:38kHz, 载波占空比建议位1/3或1/4。
11.2 协议介绍
-
Normal Protocol
-
参考脉冲(T1): 通常第一个脉冲为参考脉冲,值为 “1”,接收器可使用此脉冲确定确切的位长度。
-
切换位(T0): 其值在每次按键释放时切换,用于区分新的按键按下和按键重复。
-
子系统地址位: 包含 3 位(S2 到 S0),表示子系统地址,最高有效位(MSB)优先发送。
-
命令位: 包含 6 位(F 到 A),表示命令,最高有效位(MSB)优先发送。
整个命令在按键按下期间会重复发送,重复率为 121.5ms。
-
-
Extended Protocol
-
起始位: 扩展协议包含两个位,总长度等于一个逻辑 “1” 的周期。
-
切换位: 其值在每次按键释放时切换,用于区分新的按键按下和按键重复。
-
子系统地址位: 扩展协议包含 4 位(S3 到 S0),表示子系统地址,最高有效位(MSB)优先发送。
-
命令位: 包含 6 位(F 到 A),表示命令,最高有效位(MSB)优先发送。
-
11.3 重复码
-
没有专门的重复码
-
只要遥控器按键一直按下,相同的信息会以121.5ms的周期时间重复发送
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)