接口/总线/驱动
来源:晓超说
--lIN物理层--
大家好,本文章向大家介绍LIN总线的物理层。
LIN相对于CAN是一种低成本的通信总线。
出于成本原因与CAN相比,LIN通信线路为一根线。
另外,LIN通信可以不需要通信控制器,它的物理通信可以通过UART接口也称为SCI接口实现。
这种接口几乎集成在所有的微控制器中,所以LIN是基于UART帧结构的通信。
通过右图我们可以看到真实LIN报纹与UART帧的对应关系。
图片源VECTOR
我们可以看到UART帧包括8个数据位加一个起始位和一个停止位。
起始位是一个固定的逻辑0,停止位是一个固定的逻辑1。
那么在LIN总线中,逻辑0与逻辑1和物理电瓶如何对应呢?
我们继续学习LIN的信号规范。
在LIN规范中,规定显信位是一个逻辑0。
对于发送节点,总线物理电瓶小于20%VSUP时即为0。
对于接收节点,总线物理电瓶小于40%VSUP时为0。
隐性位是一个逻辑1。
对于发送节点,总线物理电瓶大于80%VSUP时为1。
对于接收节点,总线物理电瓶大于60%VSUP时即为1。
以上规定了接收节点和发送节点的信号特征。
在数据传输过程中,发送节点和接收节点还需要进行同步,来保证数据传输的准确性。
下面我们介绍Lin总线的同步。
在LIN总线中,有初始同步和重同步两种同步方式。
首先我们介绍初始同步。
LIN主节点/重节点在每次报文传输开始时需要建立同步。
为了降低成本,LIN总线没有时钟线。
重节点一般采用低成本的RC振荡器,并允许最大14%的时钟偏差。
当总线处于空闲时,总线状态为逻辑1。
数据开始传输时,由LIN的主节点实现初始同步。
主节点会向总线发送同步间隔场和同步场数据。
同步间隔场至少由13个位的显信位和1个位的隐信位组成。
同步场数据为LIN(x)55。
当重节点接收到主节点发送的同步场数据后,
重节点测量同步场第一个和最后一个下降严之间的时间,并将此时间除以8。
由此计算出主节点的位时间。
同时,根据计算结果调整自身的位速率,从而使主节点和重节点的位速率一致。
初始同步实现了所有重节点时钟和主节点时钟同步。
但是,在实际应用中,各节点时钟精度是存在差异的。
在数据传输的过程中,由于这种时钟精度的差异可能会造成未传输的偏差。
在LIN总线中还有一种同步方式,为重同步。
LIN帧格式是基于UART的通行格式。
发送节点和接收节点可利用UART帧其实位的下降严进行同步。
尽量避免因时钟精度的差异而导致的传输偏差。
这个阶段的同步称之为重同步。
以上内容就是关于LIN总线物理层的介绍。
--LIN通信原理及帧结构--
接下来向大家介绍LIN总线的通信原理以及LIN报文帧结构。
首先是LIN总先通信原理。
LIN网络采用的是主从结构。在这种主从结构中,有一个主节点和多个从节点。主节点包含主任务和从任务,从节点只包含从任务。
主任务根据在LIN调度表中确定的时间,负责向总先发送Header也称为"报头"。网络中的节点接收到Header后,从任务负责发送Response或接收Response或不发送也不接收。Response也称为"响应"。
Header和Response就组成了LIN报文。
我们这里可以看一个例子,来理解LIN总线的通信原理。
在这个例子中,网络有一个主节点和三个从节点。在LIN的调度表中定义了LIN报文的发送时间。
在T0发送Header1,在T1发送Header2,在T2发送Header3。那么,LIN的主节点就会按照定义好的时间去发送Header。
主节点在T0发送了Header1,接着从节点1发送了Response,从节点3接收了Response,从节点2不发送也不接收。
接着,主节点根据调度表发送了Header2、Header3,完成一个通信循环。由此我们可以看到,LIN报文的发送和接收时间都是预先确定并且可以预测的。
经过上面的介绍,我们了解到LIN报文是由Header和Response组成的。下面我们具体看一下LIN报文的帧结构。
首先是Header。Header是由主节点发送的。
header由sync break field的及同步间隔场、sync field的同步场和Protected Identifier及PID组成。同步间隔场由同步间隔和间隔界定符组成。同步间隔为至少持续13个位的显信位。
由于总线处于空闲时为隐信位,并且报文中除同步间隔场外的任何其他字段均符和UART真格式,也就不会发出大于9个位的显信位。
所以,同步间隔可以表示一帧报文的其实。间隔接订符至少包含一个隐信位。同步场为固定格式,数据为LINx55,用于初始同步。下面我们来详细看一下header中的PID。
PID由6位ID和P0,P1两位奇偶校验位组成。由于LIN的ID有6位,所以它的范围为0-63。在这些ID中,60和61及LINx3C和LINx3D用于诊断报文。
62和63为保留。P0,P1两位奇偶校验位组成,P0是ID0、ID1、ID2、ID4进行异或运算的结果。P1是ID1、ID3、ID4、ID5进行异或运算后取非的结果。
由此我们可以看出ID与PID是有一个确定的对应关系的。
我们接着看Response。
Response包含数据场和校验场。数据场长度为1-8个字节。校验场能够起到校验和保护传输内容的作用。我们具体来看一下。在另总线中有两种校验模型,分别是经典校验和增强校验。
那么它们有什么区别呢?经典校验范围为数据场内容,增强校验范围为PID和数据场内容。
在LIN规范1.1、1.2、1.3版本中没有增强校验。这里需要注意的是,对于ID为LINx3c和LINx3d的报纹,也就是整段报文,在所有版本的LIN规范中使用的都是经典校验。
全部0条评论
快来发表一下你的评论吧 !