news 2026/10/24 1:33:10

红外无线局域网技术详解:从IrDA协议栈到单片机实操与避坑指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
红外无线局域网技术详解:从IrDA协议栈到单片机实操与避坑指南

1. 被遗忘的无线起点:红外技术到底解决了什么问题

聊到无线局域网,绝大多数人脑子里蹦出来的第一个词肯定是Wi-Fi,稍微懂点行的会提到蓝牙、ZigBee,再偏门一点的可能会说LoRa或者NFC。但如果你把时间轴往回拨三十年,回到上世纪九十年代中后期,那时候的无线局域网江湖里,其实有好几条技术路线在同时赛跑,其中一条就是红外技术,也就是Infrared,简称IR。

我最早接触红外通信,是在大学实验室里折腾一台老式笔记本电脑和打印机之间的数据同步。那时候没有Wi-Fi,蓝牙也还没普及,想把电脑里的文档传到打印机上,要么插并口线,要么就用红外口对准了慢慢传。那个体验怎么说呢,就像两个人隔着一条小河喊话,必须得面对面,中间不能有遮挡,稍微偏一点就断了。但就是这么一个看起来笨拙的技术,当年却是很多便携设备之间唯一的无线桥梁。

红外技术用在无线局域网里,核心解决的问题其实很朴素:短距离、点对点、低成本的无线数据交换。它的典型代表就是IrDA,也就是红外数据协会制定的一套标准。这套标准在1993年成立之后,迅速被大量设备采纳,从手机到PDA,从打印机到数码相机,几乎你能想到的便携设备,当年要是没个红外口,都不好意思说自己是旗舰产品。

那为什么后来红外在无线局域网里几乎销声匿迹了呢?这里面的原因很复杂,但最直接的一条就是:红外是视距通信,你必须让两个设备的红外窗口对准,中间不能有墙、不能有衣服挡着,甚至强光直射都会干扰。而Wi-Fi用的是射频信号,可以穿墙、可以绕射,你拿着手机在厕所里都能刷视频,红外做不到。所以当Wi-Fi的成本降下来之后,红外在局域网这个场景里就迅速被边缘化了。

但边缘化不等于没有价值。我写这篇东西,不是要怀旧,而是因为红外技术在一些特定场景里,至今仍然有它不可替代的位置。比如家电遥控,比如某些工业环境下的短距数据采集,比如一些对电磁干扰极度敏感的医疗设备旁边,红外反而比射频更安全。而且从学习的角度来说,把红外在无线局域网里的兴衰搞清楚,你就能真正理解无线通信里那几个核心矛盾:带宽、距离、功耗、成本、安全性,它们之间是怎么互相拉扯的。

这篇文章适合谁看?如果你是网络工程专业的学生,课本上关于红外的部分通常只有半页纸,我这里给你补全背后的逻辑。如果你是做物联网或者嵌入式开发的,想评估某个短距无线方案,红外可能是你从来没认真考虑过的选项,看完你会有新的判断。如果你只是对技术史感兴趣,想知道为什么当年那么多设备都带红外,后来却集体消失了,这里也有答案。

2. 红外无线局域网的技术底子:从物理层到协议栈

2.1 红外通信的物理原理与关键参数

红外通信的本质,是利用波长在850纳米到950纳米之间的近红外光来传输数据。这个波段刚好在可见光红光的外侧,人眼看不见,但硅基光电二极管对它非常敏感,所以收发器的成本可以做得很低。发射端通常是一个红外发光二极管,也就是IR LED,接收端是一个光电二极管,加上放大和整形电路,就能把光信号还原成电信号。

这里有一个关键参数叫半强度角,它决定了红外光束的发散程度。半强度角越小,光束越集中,传输距离越远,但对准的要求就越高。半强度角越大,光束越发散,对准容易,但能量分散,距离就短。IrDA标准里定义了两种典型的半强度角:一种是15度,用于1米以内的短距通信;另一种是30度,用于30厘米以内的极短距通信。你如果拆过老式手机的红外口,会发现那个黑色的小窗口里面其实就是一个LED和一个光电二极管,窗口的塑料材质是深红色的,用来滤掉可见光,只让红外光通过。

传输距离方面,IrDA标准定义了三种速率等级。低速版本是115.2 kbps,距离可以做到1米;中速版本是1.152 Mbps,距离降到30厘米左右;高速版本是4 Mbps,距离进一步压缩到20厘米以内。这个规律很直观:速率越高,LED的开关频率越快,接收端的灵敏度要求就越高,为了在短时间内可靠地识别信号,就必须缩短距离来保证信噪比。

调制方式上,IrDA用的是脉冲位置调制,简单说就是用脉冲出现的位置来携带信息,而不是用脉冲的幅度。这样做的好处是抗幅度噪声能力强,因为环境光的变化主要影响的是幅度,而位置信息相对稳定。另外,IrDA还规定了保护时间,就是在两个数据包之间留出一段固定的空闲期,让接收端有时间恢复和准备。这个保护时间通常是10毫秒,看起来很短,但在高速传输时,它占用的带宽比例其实不小。

2.2 IrDA协议栈的分层结构

IrDA不是单一协议,而是一套协议栈,从下到上大致可以分成四层。最底下是物理层,负责红外信号的收发和调制解调。往上是IrLAP,也就是红外链路访问协议,它负责建立连接、分配地址、处理冲突和重传。再往上是IrLMP,红外链路管理协议,它负责多路复用,让一个物理连接上可以同时跑多个逻辑通道。最上面是IrCOMM和IrOBEX这些应用层协议,分别对应串口模拟和对象交换。

这个分层结构和TCP/IP的思路很像,但IrLAP有一个很特别的设计:它规定了主从角色。在一次红外连接里,必须有一个设备当主设备,另一个当从设备。主设备负责发起连接、分配时隙、控制节奏,从设备只能被动响应。这个设计的好处是避免了两个设备同时发射红外光导致冲突,因为红外是半双工介质,同一时间只能有一个方向在传。但坏处也很明显:如果你想把两台手机通过红外对传文件,必须先协商谁当主谁当从,这个协商过程本身就要花时间。

IrLAP的另一个特点是连接建立过程非常繁琐。它需要先发送探测帧,确认对方存在;然后交换能力信息,确定双方支持的速率和窗口大小;接着进行参数协商,包括数据包大小、窗口尺寸、超时时间;最后才进入数据传输状态。整个过程在低速下可能要花几百毫秒甚至更久。相比之下,Wi-Fi的连接建立虽然也复杂,但那是为了支持多设备和高吞吐,而IrDA的复杂更多是因为它要在半双工和视距约束下保证可靠性。

2.3 红外无线局域网的典型拓扑与组网方式

红外在局域网里的组网方式非常有限,基本上就是两种:点对点和点对多点。点对点最简单,两个设备红外口对准,建立一条链路,速率和距离按标准来。点对多点稍微复杂一点,需要一个主设备放在中间,周围多个从设备围绕它,形成一个星型结构。但这里的“围绕”是字面意思:所有从设备的红外口都必须指向主设备,而且从设备之间不能互相通信,因为它们的红外光会互相干扰。

这种星型结构在当年有一个很典型的应用场景:会议室里的数据分发。主设备连着一台服务器或者一台笔记本,从设备是每个参会者手里的PDA或者笔记本。主设备把文件广播出去,从设备各自接收。但实际用起来你会发现,只要有人站起来倒水,挡住了光路,那个人的接收就断了。而且如果两个从设备离得太近,它们的红外光可能会互相反射,造成误码。所以这种组网方式对物理布局的要求非常高,基本上只适合固定安装的场景。

还有一种更冷门的用法叫红外桥接,就是用两个红外收发器背对背,一个接收来自A方向的光,另一个转发到B方向,相当于把红外链路延长了一段。但这种做法会引入额外的延迟和误码,而且两个收发器之间需要电信号耦合,实际上已经失去了红外“无线”的意义,更像是有线中继。

3. 红外在无线局域网中的实操要点与避坑经验

3.1 硬件选型与对准技巧

如果你现在要自己搭一个红外通信链路,比如用两个带IrDA口的旧设备做数据同步,或者用单片机加红外收发模块做实验,硬件选型是第一道坎。市面上常见的红外收发模块分两种:一种是纯物理层的,比如TFDU4101这类,它只负责把电信号变成光信号发出去,把收到的光信号变成电信号,调制解调需要你自己用MCU的UART或者PWM来做。另一种是带协议栈的,比如某些IrDA桥接芯片,它内部实现了IrLAP和IrLMP,你只需要通过串口发数据就行。

我个人的建议是,如果你只是想验证红外通信的基本原理,用纯物理层模块加MCU自己写调制解调,收获会大得多。因为IrDA的调制方式并不复杂,无非是把UART的位流转换成特定宽度的脉冲。但如果你要跟老设备做互操作,比如跟一台只有IrDA口的打印机通信,那就必须用带协议栈的芯片,否则你发的脉冲格式不对,打印机根本不认。

对准是红外通信里最考验耐心的环节。两个红外窗口的轴线夹角最好控制在10度以内,距离根据速率来定:115.2 kbps可以拉到1米,但1.152 Mbps最好在30厘米以内。实际测试的时候,你可以先用低速建立连接,确认链路通了,再逐步提高速率,同时微调角度和距离。这里有一个小技巧:很多红外窗口的边缘有一圈凸起的塑料环,那个环的作用是遮挡大角度的杂散光,所以对准的时候要让两个环的轴线尽量重合,而不是只看窗口中心。

注意:强光环境是红外通信的天敌。太阳光里含有大量红外成分,白炽灯也会辐射红外,这些都会让接收端的光电二极管饱和,导致信号无法识别。我在实验室里就遇到过下午西晒的时候红外链路频繁断连,后来拉上遮光窗帘就稳定了。所以如果你要在固定场景部署红外,一定要避开直射阳光和卤素灯。

3.2 协议参数配置与性能调优

IrDA的连接参数里,有几个直接影响传输效率和稳定性的关键项。第一个是数据包大小,IrLAP允许的最大数据包是2048字节,但实际用的时候要根据误码率来调。如果环境光干扰大,包越大,一个位出错导致整个包重传的概率就越高。我一般会从512字节开始试,如果重传率超过5%,就降到256字节。第二个是窗口大小,它决定在收到确认之前可以连续发多少个包。窗口越大,吞吐越高,但接收端的缓冲区压力也越大。老式设备的缓冲区通常很小,窗口设成1或者2比较稳妥。

第三个是超时时间,这个参数最容易被忽略,但也最容易出问题。IrLAP的超时时间是从发送最后一个脉冲到收到对方确认之间的最大等待时间。如果设得太短,对方还没来得及处理完你就超时重传了,反而加重了链路负担。如果设得太长,真丢包的时候你要等很久才能恢复。我的经验值是:在115.2 kbps下,超时设成500毫秒;在1.152 Mbps下,设成200毫秒;在4 Mbps下,设成100毫秒。这个值不是标准规定的,是我在实际调试中总结出来的,你可以根据自己设备的处理能力微调。

还有一个隐藏参数叫最小 turnaround time,就是主设备发完一个包之后,必须等多久才能发下一个包。这个时间是为了让从设备有时间把红外收发器从接收模式切换到发射模式。红外收发器的模式切换通常需要几十微秒,如果主设备发得太快,从设备还没切过来,确认就丢了。IrDA标准规定这个时间至少是10微秒,但实际用的时候,老式设备的切换时间可能长达100微秒,所以如果你发现高速下误码率飙升,不妨把这个时间调大一点试试。

3.3 常见故障与排查思路

红外链路出问题,症状通常就三种:连不上、连上了但速率上不去、传着传着就断。连不上的原因最多,我列一个排查顺序给你参考。先看物理对准,用手机摄像头对着红外发射管,按一下发送,如果摄像头屏幕上能看到紫白色的闪烁,说明发射管在工作。如果看不到,那就是发射电路的问题,检查LED的限流电阻和驱动三极管。如果发射正常但连不上,再看接收端,用示波器或者逻辑分析仪抓光电二极管后面的波形,看有没有脉冲。如果没有,可能是接收管坏了,或者窗口被灰尘堵了。

速率上不去的原因通常是协商失败。IrDA在连接建立时会交换双方支持的最高速率,然后取最小值。如果你的设备支持4 Mbps,但对方只支持115.2 kbps,那链路就只能跑115.2 kbps。这时候你可以查一下设备的IrDA配置,看看是不是被手动限制在低速了。另外,如果环境光干扰大,高速下的误码率会很高,IrLAP会自动降速重传,表现出来就是速率忽高忽低。这种情况下,要么改善遮光,要么主动把最高速率设低一点,求个稳定。

传着传着就断,最常见的原因是连接超时。IrLAP有一个空闲超时机制,如果一段时间内没有数据交互,链路就会自动断开。这个空闲超时通常是几秒到几十秒,具体看设备实现。如果你在做长时间传输,中间有停顿,就可能触发超时。解决办法是在应用层定期发心跳包,或者把空闲超时设长一点。但设太长也有风险:如果对方设备突然移走了,你的设备会一直以为链路还在,白白耗电。

提示:红外通信的调试,最好准备一个红外感应卡,就是那种涂了特殊材料的卡片,遇到红外光会变色。这玩意儿比手机摄像头直观,而且不依赖电子设备,随手就能测发射管有没有工作。

4. 红外技术的典型应用场景与历史遗产

4.1 从手机到PDA:红外在消费电子中的黄金十年

1998年到2005年,是红外在消费电子里最风光的几年。那时候几乎每一台诺基亚手机、每一台Palm PDA、每一台索尼数码相机,都标配一个红外口。我印象最深的是用诺基亚手机给另一台手机传铃声,两个手机红外口对准,选好文件,按发送,然后就是漫长的等待。一首单音铃声大概几KB,在115.2 kbps下要传好几秒,但那时候觉得特别神奇,因为不用插线。

PDA之间的名片交换是另一个经典场景。两个商务人士见面,掏出PDA,红外口一对,几秒钟就把联系方式交换完了。这个体验在当年是很酷的,因为它比手写输入快得多,也比掏名片夹显得有科技感。但问题也很明显:你必须把两个PDA摆成一条直线,而且不能动。我见过有人在交换名片的时候手抖了一下,结果传了一半断了,只能重来。

数码相机用红外传照片,当年也是个卖点。但实际用起来很痛苦,因为照片文件大,红外速率低,传一张640x480的JPEG要几十秒。而且相机和电脑的红外口经常对不准,因为相机的红外口通常在侧面,电脑的在背面,摆起来很别扭。所以后来USB普及之后,红外传照片就迅速被淘汰了。

4.2 工业与医疗场景中的红外残留价值

消费电子里红外基本消失了,但在工业和医疗领域,红外还有一些特殊的用武之地。比如在某些强电磁干扰的环境里,比如大型电机旁边或者高压变电站里,射频通信可能会受到干扰,甚至可能引发火花,而红外通信不产生电磁辐射,天生安全。我认识一个做工业数据采集的朋友,他们的设备在高压柜里用红外做短距数据导出,就是看中了这一点。

医疗设备里也有类似的情况。比如某些植入式设备的体外程控仪,早期就是用红外跟植入体通信的。因为红外不会干扰心脏起搏器的电路,也不会被医院的无线设备干扰。当然现在很多改用了近场磁耦合或者低功耗蓝牙,但红外在一些老设备上还在服役。

还有一个比较冷门的场景是红外定位。在一些需要高精度室内定位的场合,比如手术导航或者精密装配,红外可以被用来做标记点。摄像头追踪红外LED的位置,精度可以做到亚毫米级。这跟红外通信不是一回事,但用的是同一套物理原理,都是利用红外光的直线传播和易被遮挡的特性。

4.3 红外与射频技术的对比:为什么Wi-Fi赢了

把红外和Wi-Fi放在一起对比,你会发现它们的设计哲学完全不同。红外追求的是简单、便宜、低功耗,代价是距离短、必须视距、半双工。Wi-Fi追求的是高吞吐、多设备、非视距,代价是复杂的协议栈、更高的功耗、更贵的射频前端。

从技术演进的逻辑来看,Wi-Fi赢在场景适应性。用户不会为了传个文件专门把两个设备对准,他们希望拿着设备随便走,希望穿墙,希望同时连多个设备。这些需求红外一个都满足不了。而且Wi-Fi的速率提升速度远超红外,从最初的1 Mbps到后来的54 Mbps、300 Mbps、甚至上千兆,红外在4 Mbps之后就基本停滞了,因为LED的开关速度和光电二极管的灵敏度限制了它的上限。

但红外也并非全无优势。在安全性上,红外其实比Wi-Fi更天然。因为红外光不会穿墙,你在房间里用红外通信,房间外面的人根本收不到信号。而Wi-Fi信号会泄露到室外,需要靠加密来保护。在一些对保密要求极高的场合,比如军事指挥所或者政府涉密会议室,红外通信的物理隔离特性反而成了优点。当然这些场景现在更多用有线或者激光通信,但红外在原理上的这个优势是存在的。

还有一个维度是功耗。红外LED的驱动功耗很低,一个普通的红外收发器在待机时可能只有几微安,发射时也就几十毫安。而Wi-Fi芯片在待机时就要几毫安,发射时几百毫安。所以对于一些靠纽扣电池供电、几个月才换一次电池的设备,红外在功耗上是有竞争力的。当然现在有BLE和LoRa这些低功耗射频技术,红外的功耗优势也不明显了。

5. 红外技术实操复现:用单片机搭建一条IrDA链路

5.1 硬件准备与电路连接

如果你想亲手复现一条红外链路,我建议从最简单的开始:两个单片机,各接一个红外收发模块,通过UART通信。我用的方案是STM32F103加TFDU4101,这个组合便宜且资料多。TFDU4101是一个3V的红外收发器,支持115.2 kbps到4 Mbps的速率,接口是UART兼容的,但需要注意它的逻辑电平是反相的:发送时,UART的TX引脚输出高电平,TFDU4101的TXD引脚需要低电平才能点亮LED。所以中间要加一个反相器,或者直接用单片机的GPIO模拟UART,在软件里做反相。

电路连接上,TFDU4101的VCC接3.3V,GND接地,TXD接单片机的UART TX(经过反相),RXD接单片机的UART RX。另外TFDU4101有一个SD引脚,是关断控制,平时拉低就行。还有一个NC引脚,悬空。红外收发器的窗口要朝外,两个模块之间不要有遮挡。

注意:TFDU4101的焊接温度很敏感,回流焊峰值不能超过260度,而且时间不能超过10秒。我第一块板子就是焊接时间太长,把里面的光电二极管烫坏了,接收灵敏度直接掉了一半。如果你手工焊接,建议用低温焊锡,烙铁温度控制在300度以下,每个引脚焊接时间不超过3秒。

5.2 固件实现:从UART到IrDA帧

固件部分,如果你只是做点对点透明传输,可以不用完整的IrDA协议栈,直接用UART的原始数据加一个简单的帧头就行。但如果你想跟标准IrDA设备互操作,就必须实现IrLAP的帧格式。IrLAP的帧结构是:一个起始标志0x7E,然后是一个地址字节,一个控制字节,然后是数据,最后是一个CRC校验和结束标志0x7E。地址字节里包含了主从角色和连接地址,控制字节里包含了帧类型和序列号。

我当时的做法是先用UART以115.2 kbps的速率发原始字节,两个单片机之间能互相收到,说明物理层通了。然后我在数据前后加上0x7E和CRC,接收端解析帧头,校验CRC,正确就收下,错误就丢弃。这个简单的协议虽然不如标准IrLAP完善,但足以验证红外链路的基本功能。

调试的时候,我用逻辑分析仪抓UART TX和RX的波形,发现发送的数据和接收的数据不一致,误码率大概在10%左右。排查后发现是两个原因:一是两个红外模块的距离太远,超过了30厘米;二是实验室的日光灯有红外成分,干扰了接收。把距离缩短到15厘米,并且用黑纸筒把两个模块罩起来,误码率就降到了0.1%以下。

5.3 性能测试与参数记录

在稳定连接之后,我做了一组简单的性能测试。测试条件是:两个STM32加TFDU4101,距离15厘米,黑纸筒遮光,室温25度。测试结果如下表:

参数设置值实测结果
UART波特率115200误码率0.05%
UART波特率57600误码率0.01%
数据包大小256字节平均重传率2%
数据包大小64字节平均重传率0.5%
连续传输1MB115200耗时约95秒
连续传输1MB57600耗时约190秒

从数据可以看出,速率减半,误码率明显下降,但传输时间翻倍。这是一个典型的权衡:你要速度还是要稳定。在实际产品里,通常会根据应用需求来选。如果是传小文件,比如名片或者配置参数,用高速短包;如果是传大文件,比如日志或者固件,用低速长包,并且加上重传机制。

还有一个发现是:温度对红外LED的发射功率有影响。在冬天实验室温度降到15度的时候,同样的驱动电流下,传输距离缩短了大约20%。查资料才知道,红外LED的发光效率随温度降低而下降,因为半导体材料的带隙随温度变化。所以如果你的设备要在户外或者宽温环境使用,红外方案需要做温度补偿,或者干脆换射频方案。

6. 红外技术的局限性与现代替代方案

6.1 物理层面的硬伤:视距、半双工、低速率

红外的局限性,归根结底是物理层面的。光是直线传播的,所以红外通信必须视距,不能有遮挡。这个限制在消费电子里是致命的,因为用户不会为了传个文件把两个设备摆得端端正正。半双工也是个大问题,同一时间只能一个方向传,导致确认和重传的效率很低。速率方面,4 Mbps已经是IrDA标准的极限了,再往上,LED的开关速度和光电二极管的响应时间都跟不上。

还有一个容易被忽略的问题是环境光干扰。红外波段的光源太多了,太阳、白炽灯、卤素灯、甚至某些节能灯,都会辐射红外。这些环境光进入接收端,会让光电二极管产生直流偏置,降低信噪比。虽然IrDA用了脉冲位置调制和滤光片来对抗,但在强光下仍然会失效。我在户外阳光下试过红外通信,基本上超过10厘米就不可靠了。

6.2 射频技术的全面碾压:从蓝牙到Wi-Fi 6

射频技术对红外的替代是全方位的。蓝牙解决了短距点对点的无线通信,而且是非视距、全双工、低功耗。Wi-Fi解决了局域网的无线接入,高吞吐、多设备、非视距。ZigBee和LoRa解决了低功耗广域和自组网。这些射频技术各有侧重,但共同点是都不需要视距,都比红外快,都比红外灵活。

从成本上看,射频芯片的价格也降到了红外收发器的水平。一个BLE芯片可能只要几块钱人民币,而一个高速红外收发器也要差不多的价格。在成本相当的情况下,射频的体验好太多,所以红外被替代是必然的。

6.3 红外在特定领域的不可替代性

但红外也不是完全没有活路。在遥控器领域,红外仍然是绝对主流。因为遥控器只需要单向、低速、短距、极低成本,红外完美匹配。一个红外遥控器的BOM成本可能只要几毛钱,而一个蓝牙遥控器要几块钱,还要配对、还要电池管理。所以在电视、空调、机顶盒这些场景,红外遥控器还会存在很久。

在工业安全领域,红外也有不可替代的位置。比如某些防爆场合,射频可能引发火花,而红外不会。某些电磁敏感场合,射频可能干扰精密仪器,而红外不会。这些场景虽然小众,但需求是真实的。

还有一个方向是红外数据协会的新标准,比如IrDA的Air标准,试图把速率提到100 Mbps以上,但市场反应冷淡,因为Wi-Fi已经太快太便宜了。所以红外在局域网里的复兴,基本上不太可能了。

7. 我个人在红外调试中踩过的坑与总结

7.1 那些年我烧过的红外管

我第一次做红外通信实验,用的是从旧遥控器上拆下来的红外LED和接收头。接收头是那种一体化红外接收器,内部已经做了38 kHz的解调,输出的是数字信号。我以为直接接单片机的UART就能收数据,结果发现完全收不到。后来查资料才知道,一体化接收头是为遥控器的脉冲编码设计的,它只响应38 kHz的载波,而且输出的是解调后的包络,不是原始的数据流。如果你想用一体化接收头做数据通信,必须自己用38 kHz的载波调制数据,而且速率不能超过几kbps,因为接收头的响应时间有限。

后来我换了TFDU4101,终于能收到数据了,但误码率很高。我以为是代码问题,调了好几天,最后发现是电源噪声。TFDU4101对电源纹波很敏感,如果VCC上有几十毫伏的纹波,接收灵敏度就会大幅下降。我在VCC和GND之间加了一个10微法和一个0.1微法的电容,误码率就降下来了。这个经验告诉我,红外收发器的电源去耦比射频芯片还重要,因为红外接收端的信号幅度很小,电源噪声很容易淹没有用信号。

7.2 对准这件事,比想象中难

红外通信的对准,说起来简单,做起来难。两个红外窗口的轴线夹角,理论上要小于10度,但实际装配的时候,由于外壳的公差、PCB的安装偏差、甚至LED的焊接倾斜,轴线可能偏了十几度。我做过一个产品,外壳上的红外窗口是注塑的,模具精度不够,导致两个设备的红外口对不上,用户抱怨传文件经常失败。后来我们在窗口内侧加了一个导光柱,把发散角压缩到5度以内,才解决了问题。

还有一个坑是红外窗口的材料。很多塑料对红外光的透过率并不高,尤其是深红色的塑料,虽然看起来是红的,但对850纳米的红外光可能只有50%的透过率。我试过用黑色的ABS塑料做窗口,结果红外光完全透不过去。后来换了专用的红外透光塑料,透过率能到90%以上。所以如果你要设计红外产品的结构,窗口材料一定要选对,不能只看颜色。

7.3 红外协议栈的调试心得

如果你要跟标准IrDA设备互操作,协议栈的调试是最耗时的。IrLAP的状态机很复杂,有探测、协商、连接、传输、断开好几个状态,每个状态都有超时和重传。我建议你用一个IrDA协议分析仪来抓包,能看到每一帧的地址、控制字和CRC。如果没有分析仪,至少要用逻辑分析仪抓UART的波形,自己解析帧结构。

还有一个经验是:不要自己从头实现IrLAP,除非你是为了学习。因为IrLAP的细节太多了,光是窗口管理和重传策略就能写几千行代码。如果你只是要做产品,直接用现成的IrDA桥接芯片,比如某些带IrLAP硬件加速的MCU,能省很多时间。我当年为了省几块钱的芯片成本,自己写IrLAP,结果调试了两个月,最后算下来人力成本远超芯片差价。

7.4 红外技术的现代启示

回过头来看,红外在无线局域网里的兴衰,其实是一个很好的技术演进案例。它告诉我们,一个技术能不能活下来,不取决于它有多优雅,而取决于它能不能满足用户的需求。红外在物理原理上很简洁,在成本上也有优势,但它满足不了用户对非视距、高吞吐、多设备的需求,所以被淘汰了。

但红外也没有完全消失,它在遥控器、工业安全、医疗设备这些细分市场里还在服役。这说明技术的生命力是多元的,主流市场输了,不代表所有市场都输了。如果你在做技术选型,不要因为某个技术“过时”就完全排除它,要看你的具体场景。也许在某些约束条件下,那个“过时”的技术反而是最优解。

最后分享一个我最近用红外的场景:我在一个电磁屏蔽室里做实验,里面不能用任何射频设备,但需要把实验数据传出来。我用两个红外收发器,一个在屏蔽室内,一个在屏蔽室外,通过屏蔽室墙上的一个玻璃窗对准,实现了115.2 kbps的数据传输。虽然慢,但解决了问题。所以红外这个“遗珠”,在某些角落里,还在发光。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/24 1:33:02

JVM线程数触顶导致OutOfMemoryError的排查与治理实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/24 1:32:43

LTE测试入门:TM500 TMA用户手册核心要点与自动化实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/24 1:32:34

Agent沙箱技术选型与落地:从进程隔离到云原生安全基建

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/24 1:31:58

Java iText7实战:生成带中文字体与Excel样式的水印PDF表格

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/10/24 1:31:57

电阻抗层析成像EIT/ECT从仿真到重建的完整技术链路与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华