红外遥控与NEC协议详解

在这里插入图片描述

文章目录

  • 红外遥控的基本原理
    • 发射装置
    • 红外接收器
  • NEC协议的基础知识
    • 编码格式
    • 什么是“连发码”?
    • NEC协议中的连发码
    • 连发码的工作原理

红外遥控的基本原理

红外遥控器通过发射红外光来传输信息,这种光线在肉眼不可见,但可以被接收设备上的红外接收器(通常是一个光电二极管)检测到。当用户按下遥控器上的某个按键时,遥控器会以特定的编码格式发出红外光信号,从而控制相应的设备(如电视、空调等)。

红外遥控通信系统通常由两部分组成:发射装置和接收设备。

发射装置

发射装置通常是用户操作的遥控器,负责生成并发送红外信号。其主要功能和组件包括:

  • 按键矩阵:用户按下不同的按键,选择不同的命令。
  • 微控制器(MCU):处理按键输入并生成对应的红外信号。
  • 红外发射管(LED):将生成的信号转换为红外光,并通过红外LED发射出去。信号通常是以一定的载波频率(如38kHz)调制的红外光。
  • 电源:通常使用电池供电,为发射装置提供所需的电力。

在这里插入图片描述

红外接收器

红外接收器是接收红外信号的设备,通常位于被控制的设备(如电视、空调等)上。其主要组成部分有:

  • 红外接收头:也叫红外接收管或光电二极管,它能接收到遥控器发出的红外光信号,并将其转换为电信号。
  • 滤波电路:用于过滤掉不必要的光信号干扰,确保接收到的是有效的38kHz调制信号。
  • 解码电路或模块:将接收到的红外信号解码为相应的控制命令。解码后的信号通常会传递给设备的微控制器进行进一步处理。

红外接收的主要作用是接收来自遥控器发射的红外信号,并将其转换为可供设备处理的电信号。红外接收头通常有三个引脚:VCC(正电源)、GND(接地)和OUT(信号输出引脚),分别用于供电、接地和输出解码后的信号。

红外遥控是一种常见的无线控制技术,广泛应用于家电、玩具等设备中。NEC协议是其中一种常见的红外遥控协议。

NEC协议的基础知识

NEC协议由NEC公司设计,是一种广泛应用于家电设备(如电视、音响等)的红外遥控通信协议。该协议通过脉冲编码传递数据,以确保信号的可靠性和兼容性。

NEC码的位定义:一个脉冲对应560us的连续载波,一个逻辑1传输需要2.25ms(560us脉冲+1680us低电平),一个逻辑0的传输需要1.125ms(560us脉冲+560低电平)。

在这里插入图片描述
接收到的数据脉冲变成低电平,低电平变成高电平。

编码格式

在NEC协议中,编码格式分为五个关键部分:引导码、地址码、地址反码、控制码和控制反码。每个部分在信号传输中都起着至关重要的作用。

  1. 引导码(Leader Code):引导码是NEC协议信号的开头部分,主要用于标识一个新的数据帧的开始,并帮助接收设备同步信号。
    • 组成:9ms的高电平(载波信号) + 4.5ms的低电平(无载波信号)
    • 作用:引导码的功能是告诉接收设备接下来要接收一条新的命令信号,帮助接收器与发射器同步。
  2. 地址码(Address Code):地址码用于标识被控制的设备。例如,不同的家电(如电视、空调)会有不同的地址码,接收设备通过识别该码来确认这是发送给它的命令。
    • 长度:8位
    • 内容:地址码用来表示设备的地址,每个家电设备通常分配一个唯一的地址码。
  3. 地址反码(Address Inverted Code):地址反码是地址码的每一位取反后的结果,用来校验地址码的正确性。
    • 长度:8位,与地址码一一对应。
    • 作用:接收设备通过对比地址码和地址反码,判断是否出现了传输错误。如果两者不匹配,接收器会忽略该信号。
  4. 控制码(Data Code 或 Control Code):控制码指定了要执行的具体命令,比如开/关、音量增加、频道切换等操作。
    • 长度:8位,最多可表示256种命令。
    • 功能:每个控制码对应一个特定的操作命令,如音量加、音量减等。
  5. 控制反码(Data Inverted Code 或 Control Inverted Code):控制反码是控制码的每一位取反后的结果,用于校验控制码的正确性。
    • 长度:8位,与控制码对应。
    • 作用:控制反码的存在确保了控制码在传输过程中没有出错。接收设备通过对比控制码和控制反码,确认命令的正确性。如果两者不匹配,接收器会忽略该信号。

发送顺序是按照从低位到高位,反码是为了增加传输的可靠性。

什么是“连发码”?

在红外遥控通信中,连发码(Repeat Code)是用于处理长按按键时的特殊信号。通常情况下,当用户按下遥控器上的某个按键,遥控器会发送一个完整的指令数据帧。然而,如果用户长时间按住按键,比如长按“音量加”按钮以连续增加音量,此时重复发送完整的数据帧不仅会浪费电量,还可能造成信号冲突。因此,连发码被设计用于这种场景,以更高效的方式传达用户的意图。

NEC协议中的连发码

在NEC协议中,连发码是一个简化的信号帧,主要由引导码的简化版本组成,不包含完整的地址码、控制码等信息。它的存在使得在长按按键时,遥控器不需要重复发送完整的数据帧,而是通过连发码告知接收设备“保持执行上一个命令”。

连发码的结构

  • 引导码:9ms的高电平(载波信号) + 2.25ms的低电平(无载波信号)。
  • 高电平脉冲:560μs,表示这个信号是连发码。
  • 低电平结束:低电平持续时间会保持到下一个连发码或者新的按键被释放。

连发码的工作原理

  1. 初始按键按下:当用户首次按下遥控器上的按键,遥控器会发送一个完整的数据帧,其中包含引导码、地址码、控制码等信息。

  2. 长按按键:如果用户继续按住按键不松开,遥控器将周期性地发送连发码,而不是重新发送完整的数据帧。这样做的好处是大大减少了重复发送的数据量,降低了电池消耗。

  3. 按键释放:一旦用户松开按键,连发码停止发送,接收设备就会停止执行之前的命令。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/397365.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 下的进程状态

文章目录 一、运行状态运行队列运行状态和运行队列 二、睡眠状态S状态D状态D状态产生的原因 三、暂停状态T状态t 状态 四、僵尸状态为什么有僵尸状态孤儿进程 一、运行状态 R状态:进程已经准备好随时被调度了。 运行队列 每个 CPU 都会维护一个自己的运行队列&am…

【鸿蒙开发基础学习】组件导航 (Navigation)

组件导航 (Navigation) Navigation 是路由容器组件,一般作为首页的根容器,包括单栏(Stack)、分栏(Split)和自适应(Auto)三种显示模式。Navigation 组件适用于模块内和跨模块的路由切换,一次开发,多端部署场景。通过组件级路由能力…

[CSCCTF 2019 Qual]FlaskLight (jinja2模版注入)

两种方法: 1.工具法 进来看见flask到处飘,估计就是ssti ctrlU打开发现两行注释提示GET方式传递参数search 这种有参数的我先直接丢fengjing扫了一下,结果还真搞出来,这工具还是挺牛的,就是没参数的时候搞不了 fengj…

牛客周赛 Round 55 解题报告 | 珂学家

前言 题解 补题这场比赛,好像还是难。 A. 小红的字符串 签到题 枚举最终的字符,求最小的修改 这个方法更有通用性 s input()from math import inf import stringans inf for c in string.ascii_letters:ans min(ans, sum([1 for z in s if z ! c…

【Datawhale X 魔搭 】AI夏令营第四期大模型方向,Task1:智能编程助手(持续更新)

在一个数据驱动的世界里,人工智能的未来应由每一个愿意学习和探索的人共同塑造和掌握。希望这里是你实现AI梦想的起点。 大模型小白入门:https://linklearner.com/activity/14/11/25 大模型开发工程师能力测试:https://linklearner.com/activ…

【前端可视化】 大屏可视化项目二 scale适配方案 g6流程图 更复杂的图表

项目介绍 第二个大屏可视化,整个项目利用scale进行按比例适配。 图表更加复杂,涉及到图表的叠加,mark,地图,g6流程图的能等 始终保持比例适配(本项目方案),始终满屏适配(项目一). echarts绘制较为复杂图表&#xff0…

mysql导入jdbc

每次创建项目都要导入jar包 版本对应 mysql是5xxjdbc也用5xx 下载jdbc.jar包 maven仓库搜索mysql:maven官网 导入jar包 创建lib目录,复制jar包,粘贴到lib当中 导入成功

Android Basis - 密钥和ID认证

书读百遍其义自现,知识点多复习,看到的越多,理解的也越是深刻。也许此时我看到的点是点,十天半个月之后回头看时可能就是新的点或者线了,写博客也是,越写越深刻。 遇到KeyAttestation在gms中的错误 在cts…

Nest.js 实战 (八):基于 JWT 的路由身份认证鉴权

身份验证 身份认证是大多数应用程序的重要组成部分,有很多不同的方法和策略来处理身份认证。 当前比较流程的是JWT 认证,也叫令牌认证,今天我们探讨一下在 Nest.js 中如何实现。 认证流程 客户端将首先使用用户名和密码进行身份认证认证成…

Sql与Rce注入相关漏洞复现

目录 sqli-labs注入第38,48关 第38关(单引号闭合) ​编辑 第48关 (GET请求-基于错误-盲注-数字型-order by 排序 ​编辑 贷齐乐系统多处Sql注入漏洞 环境搭建 将贷齐乐源码放入phpstudy中的www目录下 在phpstudy上创建网站&#xff1…

ESP8266与阿里云物联网平台连接

前言 最近折腾项目,需要用到ESP8266模块对接阿里云物联网平台,网上感觉十分完善的教程少了一点点,比较折腾我哈哈哈,所以打算自己写一篇。 材料准备 1、ESP8266 WiFi模块 数据线 网上随便买一个就好,十块钱左右一个…

C# winform 三层架构增删改查,(删除篇)

一.留言 C# wnform 三层架构增删改查,本篇是增删改查是删除篇,也就增删改查外加一个登录更新完,后续考虑出一个增删改查就是不用三层架构,在uI里面 直接写完,并且放一个帮助类,基本十分钟可以写完一套增删…

数据保存--总结

目录 Excel Excel--openpyxl mysql Excel Excel--openpyxl ... mysql

快速幂、矩阵快速幂

乘法快速幂: P1226 【模板】快速幂 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import ja…

【C#】一个项目移动了位置,或者换到其他电脑上,编译报错 Files 的值“IGEF,解决方法

文章目录 1 问题分析2 本文解决方法 一个项目可以正常运行编译的项目,所有路径均为相对路径。 移动了位置,或者换到其他电脑上,编译报错 Files 的值“IGEF, 1 问题分析 这个错误信息表明在处理文件时,Files 的值出…

(限时免费)震惊!流落人间的haproxy宝典被找到了!一切玄妙尽在此处!

目录 haproxy七层代理详解一、负载均衡1.1 什么是负载均衡1.2 为什么使用负载均衡1.3 负载均衡类型1.3.1 硬件负载1.3.2 四层负载1.3.3 七层负载1.3.4 四层与七层的区别 二、haproxy介绍2.1 haproxy简介2.2 haproxy特性 三、haproxy详细部署3.1 实验所用的环境3.2 软件安装3.3 …

C语言 | Leetcode C语言题解之第330题按要求补齐数组

题目&#xff1a; 题解&#xff1a; int minPatches(int* nums, int numsSize, int n) {int patches 0;long long x 1;int index 0;while (x < n) {if (index < numsSize && nums[index] < x) {x nums[index];index;} else {x << 1;patches;}}retu…

【HarmonyOS NEXT星河版开发学习】小型测试案例06-小红书卡片

个人主页→VON 收录专栏→鸿蒙开发小型案例总结​​​​​ 基础语法部分会发布于github 和 gitee上面&#xff08;暂未发布&#xff09; 前言 在鸿蒙&#xff08;HarmonyOS&#xff09;开发中&#xff0c;自适应伸缩是指应用程序能够根据不同设备的屏幕尺寸、分辨率和形态&…

气象大数据案例项目(求各气象站的平均气温)

气象大数据案例项目&#xff08;求各气象站的平均气温&#xff09; 一、项目需求二、数据格式三、项目开发3.1 在windows 进行开发3.2 运行结果3.3 对项目打包 一、项目需求 现在有一份来自美国国家海洋和大气管理局的数据集&#xff0c;里面包含近30年每个气象站、每小时的天…

WSL2 最新最全帮助小白一步步详细安装教程

文章目录 一、前言1.1、什么是 WSL &#xff1f;1.2、WSL2 相比传统虚拟机的优势1.3、微软官方 二、安装步骤*2.1、启用 WSL 功能2.2、重启电脑2.3、dos命令自动安装 (一行命令搞定&#xff0c;非常方便)2.3.1、通过 cmd 打开 dos 命令行 或者 WIN键 R&#xff1a;2.3.2、输入…