当前位置: 首页 > news >正文

关于手机中的红外遥控

在手机电路中,有这么不起眼的一部分,虽看似简单,但是却给我们的生活在一定程度上带来了极大的便捷-红外遥控部分。

其置于手机顶部,并在壳体处挖开一个小孔,用于红外信号对外界的传递。如果你感兴趣的话,不妨打开红外遥控功能,并用另一部手机摄像头录像观察小孔,会发现小灯在闪烁工作。

关于红外遥控的工作原理可以简单的描述为手机作为TX以一种特定的编码发送红外信号,接收方收到并识别该编码来执行相应的操作。TX信号转换:电信号→光信号。RX信号转换光信号→电信号。

电路设计

在这里插入图片描述
如上图,电路非常简单,由电源 MOS 红外LED(940nm) 阻容所组成。其中MOS的控制极接收来自平台的PWM信号,电阻决定着器件功耗与红外发射最大距离。在MTK平台电路设计中,会给出相关参考性的LED选型与MOS选择要素。在电阻选择方面,其也会提到不同的阻值与对应的红外发射距离。
在这里插入图片描述
电路虽简单,但其中却涉及了一个非常重要的协议-NEC协议。

NEC协议

NEC协议是红外通信的协议之一,采用PPM的形式进行编码,数据的每一位脉冲长度为560us,由38KHz的载波脉冲进行调制,占空比约为1/3至1/4。

单次发送由引导码+地址码+地址码反码+数据码+数据码反码+结束码,这六部分组成。其中地址码,地址反码 数据码以及数据反码为8位码(低位在前,高位在后)。
在这里插入图片描述
(上图为小白专门用示波器抓取的一次红外通信的完整波形)

关于NEC协议中的0与1,并非我们传统意义上的高低电平。
逻辑0:562.5us的有效脉冲+562.5us的空闲信号,总时长1.125ms。
逻辑1:562.5us的有效脉冲+1.6875ms的空闲信号,总时长2.25ms(为逻辑0的一倍)。
在这里插入图片描述

引导码

其由9ms载波脉冲+4.5ms空闲信号组成。
在这里插入图片描述

地址码+命令码

引导码之后会传输4个字节共32bit的数据位,分别是地址码+地址反码+命令码+命令反码。虽是四个字节,实际上只有两个字节有效,多余的2字节为冗余的反码用于校验是否出错。

在手机遥控中,有众多的RX设备,不同的RX设备存在不同的地址码。即使RX设备一样,但因为遥控中不同的按键,其也对应着不同的命令码。RX设备根据接收到的命令码信息进行解码,来判断按下的是哪个键。

结束位

结束位为末尾的562.5us的有效脉冲。
在这里插入图片描述

重复码

由9ms(0)+2.5ms(1)+0.56ms(1)+97.96ms(1)组成。
在这里插入图片描述

对遥控器连续操作一个按键长时间(一帧数据发送后)不松开就发送重复码。
在这里插入图片描述
最后关于为何要选红外信号作为遥控,一方面相比于其他射线,红外线对于人体几乎是没有伤害的,也不易受到其他光线影响。同时由于红外线波长较短,对障碍物衍射能力差,无法穿越墙壁,更适合应用在短距离直线控制的场合。除此之外,正如前面所介绍那样,其传输数据量低,功耗低还有就是成本也低。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • leetcode hot 100(1)
  • 多尺度病理图像纹理特征作为肺腺癌预后预测的新指标|文献精读·24-08-09
  • 【vue2】回车发送,Ctrl+回车换行,shift+回车换行禁用
  • 【动态规划】1、不同路径II+2、三角形最小路径和
  • sql注入靶场sqli-labs常见sql注入漏洞详解
  • overleaf上latex表格的使用,latex绘制三线表
  • 【OpenCV-Python实战项目】08-YOLO-V3实时目标检测
  • java面试题:简化URL
  • SqlServer 按时间-日期自动分表
  • 【人工智能】人工智能可解释性和透明度的详细探讨
  • C# 串口通讯怎么防止数据丢失
  • C语言:设计模式
  • 嵌入式 Linux 系统中的常用文件系统及应用场景
  • 数理基础知识
  • vue3中图片引入
  • Java,console输出实时的转向GUI textbox
  • Javascripit类型转换比较那点事儿,双等号(==)
  • java第三方包学习之lombok
  • Laravel Mix运行时关于es2015报错解决方案
  • Mysql数据库的条件查询语句
  • npx命令介绍
  • Quartz初级教程
  • ReactNativeweexDeviceOne对比
  • Sass Day-01
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • vue总结
  • web标准化(下)
  • 笨办法学C 练习34:动态数组
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 回顾 Swift 多平台移植进度 #2
  • 检测对象或数组
  • 将 Measurements 和 Units 应用到物理学
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 面试题:给你个id,去拿到name,多叉树遍历
  • 如何合理的规划jvm性能调优
  • 阿里云服务器购买完整流程
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • # centos7下FFmpeg环境部署记录
  • (7)摄像机和云台
  • (附源码)计算机毕业设计大学生兼职系统
  • (七)glDrawArry绘制
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • (转)拼包函数及网络封包的异常处理(含代码)
  • (转)原始图像数据和PDF中的图像数据
  • .NET Framework .NET Core与 .NET 的区别
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .net连接MySQL的方法
  • .Net转前端开发-启航篇,如何定制博客园主题
  • .pop ----remove 删除
  • /etc/motd and /etc/issue
  • @EnableWebMvc介绍和使用详细demo