1 IrDA及其通信协议
IrDA即红外数据协会,全称The Infrared Data Association,是1993年6月成立的一个国际性组织,专司制订和推进能共同使用的低成本红外数据互连标准,支持点对点的工作模式。由于标准的统一和应用的广泛,更多的公司开始开发和生产IrDA模块,技术的进步也使得IrDA模块的集成越来越高,体积也越来越小。IrDA1.0可支持最高115.2kbps的通信速率,而IrDA1.1可以支持的通信速率达到4Mbps。
IrDA(红外数据协会)的宗旨是制订以合理的代价实现的标准和协议,以推动红外通信技术的发展。
IrDA数据通信按发送速率分为三大类:SIR、MIR和FIR。串行红外(SIR)的速率覆盖了RS-232端口通常支持的速率(9600b/s~115.2kb/s)。MIR可支持0.576Mb/s和1.152Mb/s的速率;高速红外(FIR)通常用于4Mb/s的速率,有时也可用于高于S1R的所有速率。
在IrDA中,物理层、链路接入协议(Irlan)和链路管理协议(IrLMP)是必需的三个协议层。除此之外,还有一些适用于特殊应用模式的可选层。
在基本的IrDA应用模式中,设备分为主设备和从设备。主设备用于探测它的可视范围,寻找从设备,然后从那响应它的设备中选择一个并试图建立连接。在建立连接的过程中,两个设备彼引协调,按照它们共同的最高通信能力确定最后的通信速率。以上的“寻找”和“协调”过程都是在9.6kb/s的波特下进行的。
IrDA数据通信工作在半双工模式,因为在发射时,接收器会被发射的光芒所屏蔽。这样,通信的两个设备将通过快速转和链路来模拟全双工通信,并由主设备负责控制链路的时序。
IrDA协议按层安排,应用程序的数据逐层下传,最终以光脉冲的形式发出。IrLAJ和lrLMP是协议中牧师层之外所需的两个软件层。在物理层上的第一层是链路接入协议(IrLAP),它是HDLC(高级数据链路控制)协议的改编,以适应红外传输的要求。IrLAP层的工进行链路初始化、设备地址寻找和解决冲突、启动连接、数据交换、断开连接和链路关闭等。IrLAP用于指定红外数据包的帧和字节结构,以及红外通信的错误检测方法。IrLAP之上的一层是链路管理协议,即IrLMP,主要用于管理IrLAP所提供的链路连接中的链路功能和应用程序以及评估设备上的服务,并管理如数据速率、BOF的数量(帧的开始)及连接换向时间等参数的协调,以及数据的纠错传输等。
IrDA物理层协议提出了对工作距离、工作角度(视角)、光功率、数据速率不同品牌设备互联时抗干扰能力的建议。当前红外通讯距离最长为3米,接收角度为30度。
2 空调检测线IrDA设计与实现
2.1 物理层协议的实现
IrDA物理层协议的设计保证了0~1米范围内0°~15°的轴线偏离角的无错通信。其中包括了调制、视角、光功率、数据速率和噪声去除的规范,以保证检测线上随行数据采集装置和固定数据管理计算机的设备之间的物理互连性。协议也考虑了周围的光照或其他噪声源的存在以及参与IR通信的一些检测设备间的干扰。协议要求合理选择发射器的光强度和接收器的灵敏度,以保证链路能在0~1米的距离内工作。
图1给出了IrDA物理层的方框图。数据速率小于4Mb/s时,使用RZI(归零反转)调制,最大脉冲宽度是位周期的3/16;而在4Mb/s的数据速率时,使用4PPM(脉冲位置)调制。IrDA要求的RZI(反相归零)调制的编码效果如图2中的IR帧数据所示。4PPM调制如图3所示。两个数据位组合在一起可组成一个500ns 的“数据码元组”。这一码元组可分为四个125ns的时隙。并可根据码元组的状态在不同的时隙放置单脉冲。解调器在将输入位流的相位锁定后,即可根据脉冲在500ns周期中的位置来解出数据。这一方案需要的编码/解码器可以集成在1/0芯片中,也可作为一个独立元件。空调器检测线采用安捷伦红外通信器件,此产品在耗电、体积、和价格方面都有很大优势,在小型移动电话、传呼机,笔记本电脑、台式PC机、视窗CE掌上产品、个人数字助理(PDA)和数字影象产品中广泛采用。
2.2 硬件电路的设计
空调器检测线随行数据采集装置的核心MCU可选用ATMEL公司的RISC单片机90S2313,它的串口能够支持与IrDA兼容的LED收发器,并且可以直接与之相连。
红外收发器选用AGILENT公司的HDSL-3201和HDSL-3600。2.5毫米高的HDSL-3201的代电电压范围为2.7V到3.6V,但LED驱动电流应从内部补偿恒定32mA,以保证符合IrDAr DATA1.2(低功耗)物理层协议指标的要求。该产品的传输距离一般为30厘米,可支持9.6kb/s~115.2kb/s的数据传输速率。4毫米高的HDSL-3600的典型链路传输距离可大于1.5米,通过管脚FIP-SEL能选择可以接收的数据速率。当FIR-SEL 设为低电平时,最高速率为115.2kb/s;设为高电平时,最高速率可达4Mb/s。同时,还有两个管脚MDO和MD1用来选择发光功率。用户可以根据自己的需要来设定,以达到在短距离通信情况下省电的目的。图4给出了HSDL-3600的管脚说明及典型外围电路。
2.3 IrDA红外通信的数据流
空调器检测装置工作在SIR模式下,所有在TXD/RXD管脚和90S2313的UART之间传送的串行数据都是根据SIR IrDA标准来调制/解调。逻辑0由一个3/16位宽或1.6μs宽的光脉冲代表(1.6μs是最高位速率115.2kbps的位宽的3/16)。0位的开始对应脉冲的上升沿。逻辑1由无光脉冲代表。字节首先从LSB开始发送。每帧由起始位、8位数据、停止位组成,无奇偶校验。
由于空调器检测装置的通信数据量不大,因此,采用SIR模式即可满足要求。而在FIR模式下,通信过程就复杂多了,所有在TXD/RXD管脚和微处理器的HSSP(高速串行/并行)接口之间传送的串行数据都是根据4PPM IrDA标准来调制/解制的。编码时,把一个字节分为四个单独的码元组(2位一对),最低的码元组首先传送,但每个码元组不重新排序。这样,一个字节就被分成了四个“片”(每片500ns),每个“片”分为四个时隙(每个时隙125ns)。
可用微处理器中的高速串行/并行(HSSP)接口来实现特殊的4Mb/s协议。其串行帧格式为:
引导标志用来接收同步。接收开始时,使用串行移位寄存器从RxD2管脚接收四个4PPM片,然后一次锁存并解码这些片。如果这些片不能解码为正确的引导标志,则时隙计数将延迟1,并重复以上过程,直到辨认出引志标志并使标志时隙计数器同步为止。引导标志最少重复16次。由于空闲时(无发送数据)的不断重复,因此在16个引导标志传送完成后的任何时候都可能收到起始标志。
当接收到8片长的起始标志后,系统将它与标准编码进行比较。如果起始标志的任一部分和标准编码不一样,则告知一个帧错误,并且再一次开始寻找帧引导标志。一旦正确的起始标志被验证,接下来的每组4片就被解码为一个数据字节,并放入5字节的临时FIFO寄存器中。当临时FIFO被填满后,数据值便被一个接一个地推入到接收FIFO。