红外线是波长在750nm至1mm之间的电磁波,它的频率高于微波而低于可见光,是一种人的眼睛看不到的光线。红外通信一般采用红外波段内的近红外线,波长在0.75um至25um之间。红外数据协会(IRDA)成立后,为了保证不同厂商的红外产品能够获得最佳的通信效果,红外通信协议将红外数据通信所采用的光波波长的范围限定在850至900nm之内。
IRDA标准包括三个基本的规范和协议:物理层规范(Physical Layer Link Specification)、链接建立协议(Link Access Protocol:IrLAP)和链接管理协议(Link Management Protocol:IrLMP)。物理层规范制定了红外通信硬件设计上的目标和要求,IrLAP和IrLMP为两个软件层,负责对链接进行设置、管理和维护。在IrLAP和IrLMP基础上,针对一些特定的红外通信应用领域,IRDA还陆续发布了一些更高级别的红外协议,如TinyTP、IrOBEX、 IrCOMM、IrLAN、IrTran-P和IrBus等等(见图1)。
图1 IrBus红外线通信协议层
红外线是波长在750nm至1mm之间的电磁波,其频率高于微波而低于可见光,是一种人的眼眼看不到的光线。目前无线电波和微波已被广泛应用在长距离的无线通信中,但由于红外线的波长较短,对障碍物的衍射能力差,所以更适合应用在需要短距离无线通信场合点
对点的直接线数据传输。为了使各种设备能够通过一个红外接口进行通信,红外数据协议(InfraredDataAssociation,简称IRDA)发布了一个关于红外的统一的软硬件规范,也就是红外数据通讯标准
红外数据通讯标准包括基本协议和特定应用领域的协议两类。类似于TCP-IP协议,它是一个层式结构,其结构形成一个栈,如图1所示。
其中基本的协议有三个:①物理层协议(IrPHY),制定了红外通信硬件设计上的目标和要求,包括红外的光特性、数据编码、各种波特率下帧的包括格式等。为达到兼容,硬件平台以及硬件接口设计必须符合红外协议制定的规范。②连接建立协议(IrLAP)层制定了底层连接建立的过程规范,描述了建立一个基本可靠连接的过程和要求。③连接管理协议(IrLMP)层制定了在单位个IrLAP连接的基础上复用多个服务和应用的规范。在IrLMP协议上层的协议都属于特定应用领域的规范和协议。④流传输协议(TingTP)在传输数据时进行流控制。制定把数据进行拆分、重组、重传等的机制。⑤对象交换协议(IrOBEX)制定了文件和其他数据对象传输时的数据格式。⑥模拟串口层协议(IrCOMM)允许已存在的使用串口通信的应用象使用串口那样使用红外进行通信。⑦局域网访问协议(IrLAN)允许通过红外局域网络唤醒笔记本电脑等移动设备,实际远程摇控等功能。
整个红外协议栈比较庞大复杂,在嵌入式系统中,由于微处理器速度和存储器容量等限制,不可能也没必要实现整个的红外协议栈。一个典型的例子就是 TinyTP 协议中数据的拆分和重组。它采用了信用片(creditcard)机制,这极大地增加了代码设计的复杂性,而实际在红外通信中一般不会有太大数据量的传输,尤其在嵌入式系统中完全可以考虑将数据放入单个数据包进行传输,用超时和重发机制保证传输的可靠性。因此可以将协议栈简化,根据实际需求,有选择地实现自己需要的协议和功能即可。
包括三个基本的规范和协议:
物理层规范(PhysicalLayerLinkSpecification)、链接建立协议(LinkAccessProtocol:IrLAP)和链接管理协议
(LinkManagementProtocol:IrLMP)。
物理层规范制定了红外通信硬件设计上的目标和要求,IrLAP和IrLMP为两个软件层,负责对链接进行设置、管理和维护。在IrLAP和 IrLMP基础上,针对一些特定的红外通信应用领域,IRDA还陆续发布了一些更高级别的红外协议,如TinyTP、IrOBEX、IrCOMM、 IrLAN、IrTran-P和IrBus等等
红外通信是利用950nm近红外波段的红外线作为传递信息的媒体,即通信信道。发送端采用脉时调制(PPM)方式,将二进制数字信号调制成某一频率的脉冲序列,并驱动红外发射管以光脉冲的形式发送出去;接收端将接收到的光脉转换成电信号,再经过放大、滤波等处理后送给解调电路进行解调,还原为二进制数字信号后输出。
简而言之,红外通信的实质就是对二进制数字信号进行调制与解调,以便利用红外信道进行传输;红外通信接口就是针对红外信道的调制解调器。
单片机本身并不具备红外通信接口,但可以利用单片机的串行接口与片外的红外发射和接收电路,组成一个应用于单片机系统的红外串行通信接口,如图1所示。
红外发送器电路包括脉冲振荡器、驱动管T1和T2、红外发射管D1和D2等部分。其中脉冲振荡器由NE555定时器、电阻(R1、R2)和电容(C1、 C2)组成,用以产生38kHz的脉冲序列作为载波信号;红外发射管D1和D2选用Vishay公司生产的TSAL6238,用来向外发射950nm的红外光束。
红外发送器的工作原理为:串行数据由单片机的串行输出端TXD送出并驱动T1管,数位“0”使T1管导通,通过T2管调制成38kHz的载波信号,并利用两个红外发射管D1和D2以光脉冲的形式向外发送。数位“1”使T1管截止,红外发射管D1和D2不发射红外光。若传送的波特率设为 1200bps,则每个数位“0”对应32个载波脉冲调制信号的时序,如图2所
红外接收电路选用Vishay公司生产的专用红外接收模块TSOP1738。该接收模块是一个三端元件,使用单电源+5V电源,具有功耗低、抗干扰能力强、输入灵敏度高、对其它波长(950nm 以外)的红外光不敏感的特点,其内部结构框图如图3所示。
通信方式
考虑到红外光反射的原因,在全双工方式下发送的信号也可能会被本身接收,因此红外通信需采用异步半双工方式,即通信的某一方发送和接收是交替进行的。