差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
ir_remote [2022/02/07 14:32]
gongyusu
ir_remote [2022/02/07 16:46] (当前版本)
gongyusu [4. Verilog编程]
行 1: 行 1:
 ## 红外遥控原理及实现 ## 红外遥控原理及实现
-红外线是在可见范围内远程控制设备最便宜的方法,我们生活中几乎所有的音频和视频设备都可以通过这种方式进行控制,由于红外遥控的广泛使用,相应的元器件也就相当便宜和容易获得,从而被广大的电子产品的业余爱好者、创客用来控制自己的项目,在嵌入式系统的学习和实战项目中也被广泛采用。+红外线是在可见范围内远程控制设备最便宜的方法,具有抗干扰能力强、电路简单、容易编码/​解码、功耗小、成本低等特点,我们生活中几乎所有的音频和视频等家电设备都可以通过这种方式进行控制,由于红外遥控的广泛使用,相应的元器件也就相当便宜和容易获得,从而被广大的电子产品的业余爱好者、创客用来控制自己的项目,在嵌入式系统的学习和实战项目中也被广泛采用。 
 +{{ :389-04.jpg |}}<WRAP centeralign>​ 红外遥控器 </​WRAP>​ 
 +{{ :157-00.jpg |}}<WRAP centeralign>​ 红外接收头 </​WRAP>​ 
  
 ### 1. 工作原理 ### 1. 工作原理
行 49: 行 52:
 在实际的产品中,所有这些功能模块都集成到一个单一的电子元件中。市场上有许多不同的制造商生产这些元件,而且大多数设备都有几个版本,每个版本都被调到一个特定的载波频率。 在实际的产品中,所有这些功能模块都集成到一个单一的电子元件中。市场上有许多不同的制造商生产这些元件,而且大多数设备都有几个版本,每个版本都被调到一个特定的载波频率。
  
-请注意放大器的增益被设置为很高,系统很容易振荡。放置一个至少22μF的大电容接近接收器的电源连接是强制性的以解耦电源线。一些数据手册建议330欧姆的电阻与电源串联,以进一步将电源与电路的其部分解耦。 +请注意放大器的增益被设置为很高,系统很容易振荡。一定要在接收器的电源管脚放置一个至少22μF的大电容进行去耦,一些器件的数据手册建议使用330欧姆的电阻与电源串联,以进一步将电源与电路的其部分解耦。
-市场上有几家IR接收器制造商。西门子、Vishay和Telefunken是欧洲的主要供应商。西门子有其SFH506-xx系列,其中xx表示载频为30、33、36、38、40或56kHz。Telefunken有其TFMS5xx0和TK18xx系列,其中xx再次表示设备调谐到的载波频率。看来这些部分现在已经过时了。它们被Vishay的TSOP12xx、TSOP48xx和TSOP62xx产品系列所取代+
  
-夏普、厦门华联、日本电气是亚洲三家红外接收机生产企业。夏普设备非常神秘的ID名称,如:​GP1UD26xK,​ GP1UD27xK和GP1UD28xK,其中x与率相关。华联HRMxx00系列,如HRM3700HRM3800。日本电气公司(Japanese Electric)有一系列设备在部件ID不包括载频。PIC-12042LM调谐到36.7kHz,​ PIC12043LM调谐到37.9kHz+市场上有几家红外接收器制造商 - 西门子、Vishay和Telefunken是欧洲主要供应商,西门子其SFH506-xx系列,其中xx表示载频为30、33、36、38、40或56kHz;Telefunken其TFMS5xx0TK18xx系列,xx表示现在常用的是Vishay的TSOP12xx、TSOP48xx和TSOP62xx产品系列
  
-这总结了用于消费子产品的红外遥控系统的操作原理我知道还有其他实现IR控制方法,但我将仅限于上述描述。这里没涉及问题之一是安全性。果我想控制我的录像机或电视机安全就不重要了但当它打开车门或汽车时它就变成了个“关键”功能!也许我以后会讨论这个问题但不是现在。+在亚洲夏普、厦门华联和日本气是三家有名的红外接收器生产企业夏普设备非常神秘ID名称,:GP1UD26xK, GP1UD27xK和GP1UD28xK其中x与载波频率相关华联有HRMxx00系列如HRM3700和HRM3800。日本电气公司(Japanese Electric)有系列设备,在元器件的ID中不包括载频。PIC-12042LM调谐到36.7kHz,​ PIC12043LM调谐到37.9kHz
  
-我也意识到我小清单上的制造商还远远不够完整。这里几乎不可能列出所有制造商。如果您有其他协议细节您可以给我发子邮件,您认为应该添加到我页面。+### 2. 电路连接 
 +在硬禾学堂开发的基于RP2040嵌入式系统学习平台,使用了Vishay公司940nm波长高速红外发射管 VSMB10940以及台湾亿光(Ever bright)公司一体化贴边红外接收头IRM-H638T,电连接如下图: 
 +{{ :​gamekitir.jpg |}}<WRAP centeralign>​基于RP2040的嵌入式系统学习平台上的红外收/​发电路</​WRAP>​
  
-本章仅介绍了红外遥控操作的基本原理。它没有描述在发射器和接收器之间的通信所涉及的协议。许多协议由不同的制造商设计。您可以使用页面右上角的工具在本章的其他页面中找到一些制造商的协议。+{{ :​irwaveform.jpg |}}<WRAP centeralign>​IRM-H638T/​解调波形图</​WRAP>​
  
 +参考技术资料:
 +  * [[https://​www.vishay.com/​docs/​84170/​vsmb10940.pdf|vsmb10940数据手册]]
 +  * [[https://​atta.szlcsc.com/​upload/​public/​pdf/​source/​20161219/​1482143954829.pdf|IRM-H638T数据手册]]
  
-红外遥控概述:+另外在Github上有小哥 - Harish Kumar使用RP2040的PIO实现了红外接收解码,并支持HID,从而实现了一个IR键盘功能: 
 +[[https://​github.com/​gharishkumar/​pico-ir-keyboard|pico-ir-keyboard]],​ 可以通过PIO解码任何NEC协议的红外发射脉冲信号,并支持USB键盘功能(HID).
  
-红外线的光谱位于红色光之外, 波长是0.76~1.5μm,比红光的波长长。红外遥控是利用红外线进行传递一种控制方式,红外遥控具有抗干扰,电路简单,容易编码和解码,耗小成本低的优点。红外遥控几乎适用所家电控制+有一个项目用树莓派Pico实现了遥控信号接收和发射的功能:[[https://​github.com/​etfovac/​rpi_ir|RPi & IR]]详细过程描述
  
-一、红外遥控系统结构 
-红外遥控系统的主要部分为调制、发射和接收,如图1 所示: 
  
  
 +### 3. MicroPython编程
 +Peter Hinch提供了基于ESP32、ESP8266以及树莓派Pico的MicroPython设备驱动程序:[[https://​github.com/​peterhinch/​micropython_ir|Device drivers for IR (infra red) remote controls]],其中
 +  * 红外发射文档:[[https://​github.com/​peterhinch/​micropython_ir/​blob/​master/​TRANSMITTER.md|IR Transmitter]]
 +  * 红外接收部分:[[https://​github.com/​peterhinch/​micropython_ir/​blob/​master/​RECEIVER.md|IR Receiver]]
  
-图1 红外遥控系统 
  
-1.调制+### 4Verilog编程 
 +{{ :​infrar1.gif |}}<WRAP centeralign>​ 红外遥控信号编码 </​WRAP>​
  
-红外遥控是以调制的方式发射数据,就是把数据和一定频率的载波进行“与”操作,这样既可以提高发射效率又可以降低电源 +{{ :​infrar1.gif |}}<WRAP centeralign> ​红外遥控信号解码逻辑构成 </​WRAP>​
-功耗。+
  
-调制载波频率一般在30khz到60khz之间,大多数使用的是38kHz,占空比1/​3方波,如2所示,这是由发射端所使用的 +{{ :​irtxandrxblockdiagram.png |}}<WRAP centeralign>​使用LatticeICE40 FPGA实现红外收发功能框图 </​WRAP>​
-455kHz晶振决定的。在发射端要对晶振进行整数分频,分频系数一般取12,所以455kHz÷12≈37.9 kHz≈38kHz。+
  
 +  * [[https://​www.latticesemi.com/​products/​designsoftwareandip/​intellectualproperty/​referencedesigns/​referencedesigns02/​ir|Lattice使用ICE40 FPGA做红外接收和发射的参考设计资源页面]]
 +  * [[https://​www.latticesemi.com/​view_document?​document_id=50709|iCE40 Ultra Self-Learning IR Remote User’s Guide]] ​
  
-图2 载波波形 +{{ :fpgairstep.jpg |}}
- +
-1.发射系统 +
- +
-目前有很多种芯片可以实现红外发射,可以根据选择发出不同种类的编码。由于发射系统一般用电池供电,这就要求芯片 +
-的功耗要很低,芯片大多都设计成可以处于休眠状态,当有按键按下时才工作,这样可以降低功耗芯片所用的晶振应该有 +
-足够的耐物理撞击能力,不能选用普通的石英晶体,一般是选用陶瓷共鸣器,陶瓷共鸣器准确性没有石英晶体高,但通常 +
-一点误差可以忽略不计。 +
- +
-红外线通过红外发光二极管(LED)发射出去,红外发光二极管(红外发射管)内部构造与普通的发光二极管基本相同,材料和普通发光二极管不同,在红外发射管两端施加一定电压时,它发出的是红外线而不是可见光。 +
- +
- +
- +
- +
-图3a 简单驱动电路 ​                       图3b 射击输出驱动电路 +
- +
-如图3a和图3b是LED的驱动电路,图3a是最简单电路, 选用元件时要注意三极管的开关速度要快,还要考虑到LED的正向 +
-电流和反向漏电流,一般流过LED的最大正向电流为100mA,电流越大,其发射的波形强度越大。 +
- +
-图3a电路有一点缺陷,当电池电压下降时,流过LED的电流会降低,发射波形强度降低,遥控距离就会变小。图3b所示的 +
-射极输出电路可以解决这个问题,两个二极管把三级管基极电压钳位在1.2V左右,因此三级管发射极电压固定在0.6V左右, +
-发射极电流IE基本不变,根据IE≈IC,​所以流过LED的电流也基本不变,这样保证了当电池电压降低时还可以保证一定的遥 +
-控距离。 +
- +
-1.一体化红外接收头 +
- +
-红外信号收发系统的典型电路如图1所示,红外接收电路通常被厂家集成在一个元件中,成为一体化红外接收头。 +
-内部电路包括红外监测二极管,放大器,限副器,带通滤波器,积分电路,比较器等。红外监测二极管监测到红外信号, +
-然后把信号送到放大器和限幅器,限幅器把脉冲幅度控制在一定的水平,而不论红外发射器和接收器的距离远近。交流 +
-信号进入带通滤波器,带通滤波器可以通过30khz到60khz的负载波,通过解调电路和积分电路进入比较器,比较器输出 +
-高低电平,还原出发射端的信号波形。注意输出的高低电平和发射端是反相的,这样的目的是为了提高接收的灵敏度。 +
- +
- +
-红外接收头的种类很多,引脚定义也不相同,一般都有三个引脚,包括供电脚,接地和信号输出脚。根据发射端调制 +
-载波的不同应选用相应解调频率的接收头。 +
- +
-红外接收头内部放大器的增益很大,很容易引起干扰,因此在接收头的供电脚上须加上滤波电容,一般在22uf以上。 +
-有的厂家建议在供电脚和电源之间接入330欧电阻,进一步降低电源干扰。 +
- +
-红外发射器可从遥控器厂家定制,也可以自己用单片机的PWM产生,家庭遥控推荐使用红外发射管(L5IR4-45)的可产生37.91KHz的PWM,​ PWM占空比设置为1/​3,​ 通过简单的定时中断开关PWM,​ 即可产生发射波形。 +
- +
-光电一体化红外接收头的典型电路 +
-因为一体化红外接收头已经将低噪音放大器,​限幅器,​带通滤波器,​解调器,​以及整形驱动电路等集成在一起.所以电路做起来也非常简单,下面介绍一下万州光电红外一体化接收头的典型电路供参考: +
- +
- +
- +
-### 2. 电路连接 +
- +
-### 3. MicroPython编程 +
- +
-### 4. Verilog编程+