LIN总线的基础知识

描述

0.0基础知识

LIN的全称为Local Interconnect Network。LIN主要功能是为CAN总线网络提供辅助功能,应用场合有智能传感节点、自动车窗节点等。

LIN总线

1.0硬件

1.1特点

1.采用单主多从的组网方式,无CAN总线那样的仲裁机制,最多可连接16个节点(1主15从)。

2.对硬件要求简单,仅需UART/SCI 接口,辅以简单驱动程序便可实现 LIN 协议。故几乎所有的MCU均支持LIN。

3.不需要单独的晶振,便能完成主、从节点的同步,硬件成本大幅降低。

4.仅使用一根信号线便可完成信息的传输,即所谓的 单总线设备

5.传输速率最高可达20Kbps,符合A类网络标准,满足车身控制需要。

6.LIN 网络中新节点的加入,对网络中其他原有节点的软硬件设计不会造成影响。

1.2LIN网络主从节点的功能

LIN网络中的节点任务分为主机任务和从机任务两类。其中,主机任务只在主机节点上运行,而从机任务在主机节点和从机节点上均可运行。也就是说,主机节点可以实现主机任务和从机任务。

LIN总线

A.主机任务主要执行以下功能:

  • 1.定义总线上的 通信速率
  • 2.发送 报文帧头 ,包含同步间隔场、同步场和标识符场三个部分。
  • 3.监控总线通信,通过 校验和确定数据正确性与否
    1. 使从机进入唤醒或睡眠状态 ,并响应从机的唤醒要求。

B.从机任务既可运行于主机又可运行于从机,它主要完成以下功能:

  • 1.等待主机任务发送的同步间隔,使从机与主机于同步场中获得同步。
  • 2.分析标识符场,若与自己相关,则接收或发送数据,若与自己无关则什么都不做。
  • 3.检查和发送校验和。
  • 4.接受主机任务的唤醒和睡眠请求。

2.0软件

2.1显隐性

LIN 总线上具有“显性”和“隐性”两种互补的逻辑电平。

其中,显性电平(参考地电压)是逻辑 0,隐性电平(电源电压)是逻辑1。

2.2LIN报文的帧结构

LIN总线的一帧主要由两部分组成,即 报文头(Header)和报文响应(Response)

LIN总线

报文头是由一个主机节点的主机任务发出的,而 报文响应(以下简称响应) 是由一个主机节点或从机节点的从机任务发出的。

其中报文头由 同步间隔场 (最小13个显性位)、 同步场 (1个字节,数据不变,0x55)、和 标识符PID场 (1个字节)三部分组成;

报文响应由2/4/8个字节的 数据场校验和场 (1个字节)所组成。

报文头和响应之间有一个 帧内空间分隔 ,最小空间为0。

LIN总线

LIN总线

2.3字符场格式

LIN 的字节场格式就是通常的“ SCI ”或“ UART ”串行数据格式(N81编码)。即每个字节场的长度是10个位定时(BIT TIME): 1bit起始位+8bits数据位+1bit停止位

起始位(START BIT) 是一个“显性”位,它标志着字节场的开始。

接着是8个数据位,首先发送最低位。

停止位(STOP BIT) 是一个“隐性”位,它标志着字节场的结束。LIN报文帧中的同步场、标识符场、数据场、校验和场的格式都符合上述字节场的格式。

2.4间隔场

间隔场是唯一一个不符合字节场格式的场。 从节点需要检测到至少连续11个显性位才认为是间隔信号。

2.5同步场

一个字节,即0x55。

2.6LIN的被保护标识符场(PID场)

PID场定义了 报文的内容和长度

如图,PID场分为6个标识符位和2个ID奇偶校验位。

LIN总线

6个标识符位我们称之为ID 。如果加上2个奇偶校验位就变成PID了,即Protected ID。

6个标识符位中,标识符后两位为 数据长度控制位

总的来看,ID的范围是0-0x3F。

注意是ID,不是PID,要区分开。

上图中的ID4和ID5为数据长度控制位(ID4是低位)。

  • 值为00或10时,数据长度为2个字节。
  • 值为01时,数据长度为4个字节。
  • 值为11时,数据长度为8个字节。

P0和P1为奇偶校验位。

2.7数据场

数据场主要需注意每个字节先传输的是最低位。即如果某一信号长度超过1个字节,采用低位在前的方式发送(小端)。

2.8校验和场(checksum)

校验和场 是数据场所有字节的和的反码 。所有 数据字节的和的补码,与校验和字节相加所得的和必须是0xFF

下图是一些LIN总线数据,以最后一组为例,2个0xFF之和为0x1FE,处理后仍然为0xFF。故8个0xFF加和之后仍为0xFF,取反码为0x00。

LIN总线

3.0形象理解

总线原理:

物理上就一根线,关联节点都接上,有且仅有一个主设备,N多从设备,每个节点要通信的内容都事先编号号。

这就好比大家开晚会,话筒就一个,主持人一个,N个嘉宾,每人的话题都有一个编号。

表达顺序是这样的,

晚会开始前,大家睡觉的睡觉,闲的闲

1 主持人,把话筒对着大鼓,敲-停-, 敲-停-, … 敲-停-

这样大家都被吵醒了,晚会开始了

晚会都是谈话内容,都是下面步骤的重复

  • t1 主持人把话筒同音闭了一会,--LIN总线的Break
  • t2 主持人试了试话题,呼呼呼呼--LIN总线的同期
  • t3 主持人说,下面是由 PID编号的人讲话--LIN总线的PID
  • t4 有PID的人,就开始说了 D0,D1,D2,D3,D4,D5,D6,D7 --LIN总线的数据
  • t5 有PID的人,接着说了就这样了--LIN总线的 CRC

就这样重复了多次之后,主持人

  • e1 主持人把话筒同音闭了一会,--LIN总线的Break
  • e2 主持人试了试话题,呼呼呼呼--LIN总线的同期
  • e3 主持人说,下面是由 PID编号是睡眠的人讲话(就他自己)--LIN总线的PID
  • e4 有PID的人,就开始说了 Go to sleep --LIN总线的数据,最多8个Byte
  • e5 有PID的人,接着说了就这样了--LIN总线的 CRC

就这样,晚会结束了,大家睡觉的睡觉 休息的休息

搞笑的结束了,稍微来点关键词

  • . 物理上就一根线,多节点送信,又没有冲突检测,怎么办,主设备调度啊
  • . 速度怎么样,和CAN相比,十几kbps不算高,不过连接上的设备就那么大信息量,正好啦
  • . 价额怎么样,便宜啊,一个物理tranceiver,一个带UART的CPU,再来的点软件,搞定了
  • . 安全系数怎么样,PID带校验,数据带CRC校验,能发现错误,报告
  • . 扩展性怎么样,用两个特定的PID,做数据链路层,创送上层的大包TP层,
  • TP层上面在支持个诊断功能,能做些其他事情了
  • . 各版本兼容性怎么样,主设备版本高,就能管理协调好
  • 反之,从设备版本高,有些浪费
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分