嵌入式系统与单片机|技术阅读
登录|注册

您现在的位置是:嵌入式系统与单片机 > 技术阅读 > UART和IrDA、LIN的关系

UART和IrDA、LIN的关系

有不少的MCU设备的USART的介绍那里写的支持IrDA和LIN的相关功能。那他们是什么关系。

IrDA

IrDA是国际红外数据协会的英文缩写,IrDA相继制定了很多红外通信协议。

IrDA1.0协议基于异步收发器UART,最高通信速率在115.2kbps,简称SIR(Serial Infrared,串行红外协议),采用3/16 ENDEC编/解码机制。

IrDA1.1协议提高通信速率到4Mbps,简称FIR(Fast Infrared,快速红外协议),采用4PPM (Pulse Position Modulation,脉冲相位调制)编译码机制,同时在低速时保留1.0协议规定。

之后,IrDA又推出了最高通信速率在16Mbps的协议,简称VFIR(Very Fast Infrared,特速红外协议)。

以STM32F7举例,只能支持IrDA1.0协议。控制器做的就是波形转换。如下图:

通过串口发送数据,控制器转换成IrDA相应的波形,再通过外接的驱动器、LED发射出去。接收也一样。接收信号,解码接收。

可以看出:IrDA1.0协议使用的就是UART这个接口发出的一种波形(如上图的波形),链路层使用的是UART。

LIN

LIN(Local Interconnect Network)总线是基于UART/SCI(通用异步收发器/串行接口)的低成本串行通讯协议。

这是一个一主多从的协议;采用的是单线传输形式,总线电平一般为12V,传输速率最高限制为20kbps。由于物理层的限制,一个LIN网络最多可以连接16个节点。

最终发出的波形如下

可以看出在不考虑具体传输数据协议的时候,与普通的串口区别在于帧头(同步间隔、同步段、PID段)的不同。这个就是MCU控制器主要去做的。

可以看出:LIN协议使用的就是UART这个接口发出的一种波形(如上图的波形),链路层使用的是UART。

区别和联系

IrDA1.0和LIN都会使用UART发出一种波形,这两种波形的链路层相同(物理层和其余上层协议不同),使用的UART。