红外通讯协议在嵌入式系统中的实现
摘要:从红外通讯协议的特点、基本原理对红外无线通信技术进行了分析,结合实际例程探讨了红外数据通信在嵌入式系统中的基本设计要点。
关键词:红外通讯协议嵌入式系统异步通信收发器状态机
红外和蓝牙协议是两种较流行的短距离无线通信协议。但目前蓝牙协议各大厂商尚未有一个统一的标准规范,加之硬件价格较为昂贵的缺点,因此市场上红外通信在手机、笔记本电脑等小型移动设备中仍然应用广泛,在嵌入式系统中的实际应用有着较高实际意义。
1红外协议背景
红外线是波长在750nm至1mm之间的电磁波,其频率高于微波而低于可见光,是一种人的眼眼看不到的光线。目前无线电波和微波已被广泛应用在长距离的无线通信中,但由于红外线的波长较短,对障碍物的衍射能力差,所以更适合应用在需要短距离无线通信场合点对点的直接线数据传输。为了使各种设备能够通过一个红外接口进行通信,红外数据协议(InfraredDataAssociation,简称IRDA)发布了一个关于红外的统一的软硬件规范,也就是红外数据通讯标准。
2红外协议基本结构
红外数据通讯标准包括基本协议和特定应用领域的协议两类。类似于TCP-IP协议,它是一个层式结构,其结构形成一个栈,如图1所示。
其中基本的协议有三个:①物理层协议(IrPHY),制定了红外通信硬件设计上的目标和要求,包括红外的光特性、数据编码、各种波特率下帧的包括格式等。为达到兼容,硬件平台以及硬件接口设计必须符合红外协议制定的规范。②连接建立协议(IrLAP)层制定了底层连接建立的过程规范,描述了建立一个基本可靠连接的过程和要求。③连接管理协议(IrLMP)层制定了在单位个IrLAP连接的基础上复用多个服务和应用的规范。在IrLMP协议上层的协议都属于特定应用领域的规范和协议。④流传输协议(TingTP)在传输数据时进行流控制。制定把数据进行拆分、重组、重传等的机制。⑤对象交换协议(IrOBEX)制定了文件和其他数据对象传输时的数据格式。⑥模拟串口层协议(IrCOMM)允许已存在的使用串口通信的应用象使用串口那样使用红外进行通信。⑦局域网访问协议(IrLAN)允许通过红外局域网络唤醒笔记本电脑等移动设备,实际远程摇控等功能。
整个红外协议栈比较庞大复杂,在嵌入式系统中,由于微处理器速度和存储器容量等限制,不可能也没必要实现整个的红外协议栈。一个典型的例子就是TinyTP协议中数据的拆分和重组。它采用了信用片(creditcard)机制,这极大地增加了代码设计的复杂性,而实际在红外通信中一般不会有太大数据量的传输,尤其在嵌入式系统中完全可以考虑将数据放入单个数据包进行传输,用超时和重发机制保证传输的可靠性。因此可以将协议栈简化,根据实际需求,有选择地实现自己需要的协议和功能即可。
3红外协议数据基本传输原理
由于硬件接口限制,嵌入式系统中红外通信的速率基本在9600bps~115.2kbps之间。这里是通过硬件电路板上的异步通信收发器(UART)进行红外数据编码和无线传输。在115.2kbps速率下红外采用RZI的编码调制方案,脉冲周期为3/16位周期。数据校验采用CRC16。其基本思想是将要发送的数据按照CRC16算法(CRC算法可以参考相关资料)进行打包校验,在接收时进行CRC解包并与常数OXF0B8比较,若匹配即数据校验无误。红外数据传输以帧为基本单位。帧是一些特定域的组合,其中红外协议底层字节包格式如图2所示。
各个域含义如下:STA为开始标志,即0x7E、ADDR为8位的地址域;DATA为数据域;FSC为16们的CRC校验码;STO标志帧结束,在接收两个连续的帧时必须至少有3个以上的1后则标志该帧有错误,设备会放弃该帧。在红外数据实际传输过程中,为了延时控制考虑,一般在数据帧头添加多个STA域,通常采用连续11个0x7E达到延时目的。在接收时,当收到多个STA域时当作一个来处理,多余的STA域被忽略。红外数据传输的状态机流程如图3所示。
下面对图2作几点说明:(1)数据传输时首先进行AddressDiscovery过程,在此过程中发广播帧,等待对方设备响应,收到响应帧后可以取得对方设备地址。(2)取得对方地址后,进行Connct过程,在此过程中将与对方设备协商传输参数,如波特率、数据包大小、轮转时间片等,之后建立连接。(3)建立完连接即进入InformationTransfer过程,进行数据校验,传输。其中按照一定算法进行时间片数据帧收发控制。(4)数据传输完毕后进入Disconnect过 《红外通讯协议在嵌入式系统中的实现》
本文链接地址:http://www.oyaya.net/fanwen/view/176696.html
关键词:红外通讯协议嵌入式系统异步通信收发器状态机
红外和蓝牙协议是两种较流行的短距离无线通信协议。但目前蓝牙协议各大厂商尚未有一个统一的标准规范,加之硬件价格较为昂贵的缺点,因此市场上红外通信在手机、笔记本电脑等小型移动设备中仍然应用广泛,在嵌入式系统中的实际应用有着较高实际意义。
1红外协议背景
红外线是波长在750nm至1mm之间的电磁波,其频率高于微波而低于可见光,是一种人的眼眼看不到的光线。目前无线电波和微波已被广泛应用在长距离的无线通信中,但由于红外线的波长较短,对障碍物的衍射能力差,所以更适合应用在需要短距离无线通信场合点对点的直接线数据传输。为了使各种设备能够通过一个红外接口进行通信,红外数据协议(InfraredDataAssociation,简称IRDA)发布了一个关于红外的统一的软硬件规范,也就是红外数据通讯标准。
2红外协议基本结构
红外数据通讯标准包括基本协议和特定应用领域的协议两类。类似于TCP-IP协议,它是一个层式结构,其结构形成一个栈,如图1所示。
其中基本的协议有三个:①物理层协议(IrPHY),制定了红外通信硬件设计上的目标和要求,包括红外的光特性、数据编码、各种波特率下帧的包括格式等。为达到兼容,硬件平台以及硬件接口设计必须符合红外协议制定的规范。②连接建立协议(IrLAP)层制定了底层连接建立的过程规范,描述了建立一个基本可靠连接的过程和要求。③连接管理协议(IrLMP)层制定了在单位个IrLAP连接的基础上复用多个服务和应用的规范。在IrLMP协议上层的协议都属于特定应用领域的规范和协议。④流传输协议(TingTP)在传输数据时进行流控制。制定把数据进行拆分、重组、重传等的机制。⑤对象交换协议(IrOBEX)制定了文件和其他数据对象传输时的数据格式。⑥模拟串口层协议(IrCOMM)允许已存在的使用串口通信的应用象使用串口那样使用红外进行通信。⑦局域网访问协议(IrLAN)允许通过红外局域网络唤醒笔记本电脑等移动设备,实际远程摇控等功能。
整个红外协议栈比较庞大复杂,在嵌入式系统中,由于微处理器速度和存储器容量等限制,不可能也没必要实现整个的红外协议栈。一个典型的例子就是TinyTP协议中数据的拆分和重组。它采用了信用片(creditcard)机制,这极大地增加了代码设计的复杂性,而实际在红外通信中一般不会有太大数据量的传输,尤其在嵌入式系统中完全可以考虑将数据放入单个数据包进行传输,用超时和重发机制保证传输的可靠性。因此可以将协议栈简化,根据实际需求,有选择地实现自己需要的协议和功能即可。
3红外协议数据基本传输原理
由于硬件接口限制,嵌入式系统中红外通信的速率基本在9600bps~115.2kbps之间。这里是通过硬件电路板上的异步通信收发器(UART)进行红外数据编码和无线传输。在115.2kbps速率下红外采用RZI的编码调制方案,脉冲周期为3/16位周期。数据校验采用CRC16。其基本思想是将要发送的数据按照CRC16算法(CRC算法可以参考相关资料)进行打包校验,在接收时进行CRC解包并与常数OXF0B8比较,若匹配即数据校验无误。红外数据传输以帧为基本单位。帧是一些特定域的组合,其中红外协议底层字节包格式如图2所示。
各个域含义如下:STA为开始标志,即0x7E、ADDR为8位的地址域;DATA为数据域;FSC为16们的CRC校验码;STO标志帧结束,在接收两个连续的帧时必须至少有3个以上的1后则标志该帧有错误,设备会放弃该帧。在红外数据实际传输过程中,为了延时控制考虑,一般在数据帧头添加多个STA域,通常采用连续11个0x7E达到延时目的。在接收时,当收到多个STA域时当作一个来处理,多余的STA域被忽略。红外数据传输的状态机流程如图3所示。
下面对图2作几点说明:(1)数据传输时首先进行AddressDiscovery过程,在此过程中发广播帧,等待对方设备响应,收到响应帧后可以取得对方设备地址。(2)取得对方地址后,进行Connct过程,在此过程中将与对方设备协商传输参数,如波特率、数据包大小、轮转时间片等,之后建立连接。(3)建立完连接即进入InformationTransfer过程,进行数据校验,传输。其中按照一定算法进行时间片数据帧收发控制。(4)数据传输完毕后进入Disconnect过 《红外通讯协议在嵌入式系统中的实现》