0.0基础知识
LIN的全称为Local Interconnect Network。LIN主要功能是为CAN总线网络提供辅助功能,应用场合有智能传感节点、自动车窗节点等。
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网络中的节点任务分为主机任务和从机任务两类。其中,主机任务只在主机节点上运行,而从机任务在主机节点和从机节点上均可运行。也就是说,主机节点可以实现主机任务和从机任务。
A.主机任务主要执行以下功能:
- 1.定义总线上的 通信速率 。
- 2.发送 报文帧头 ,包含同步间隔场、同步场和标识符场三个部分。
- 3.监控总线通信,通过 校验和确定数据正确性与否 。
- 使从机进入唤醒或睡眠状态 ,并响应从机的唤醒要求。
B.从机任务既可运行于主机又可运行于从机,它主要完成以下功能:
- 1.等待主机任务发送的同步间隔,使从机与主机于同步场中获得同步。
- 2.分析标识符场,若与自己相关,则接收或发送数据,若与自己无关则什么都不做。
- 3.检查和发送校验和。
- 4.接受主机任务的唤醒和睡眠请求。
2.0软件
2.1显隐性
LIN 总线上具有“显性”和“隐性”两种互补的逻辑电平。
其中,显性电平(参考地电压)是逻辑 0,隐性电平(电源电压)是逻辑1。
2.2LIN报文的帧结构
LIN总线的一帧主要由两部分组成,即 报文头(Header)和报文响应(Response) 。
报文头是由一个主机节点的主机任务发出的,而 报文响应(以下简称响应) 是由一个主机节点或从机节点的从机任务发出的。
其中报文头由 同步间隔场 (最小13个显性位)、 同步场 (1个字节,数据不变,0x55)、和 标识符PID场 (1个字节)三部分组成;
报文响应由2/4/8个字节的 数据场 、 校验和场 (1个字节)所组成。
报文头和响应之间有一个 帧内空间分隔 ,最小空间为0。
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奇偶校验位。
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。
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层上面在支持个诊断功能,能做些其他事情了
- . 各版本兼容性怎么样,主设备版本高,就能管理协调好
- 反之,从设备版本高,有些浪费
-
CAN总线
+关注
关注
145文章
1946浏览量
130725 -
接口
+关注
关注
33文章
8573浏览量
151007 -
LIN总线
+关注
关注
19文章
109浏览量
27474 -
uart
+关注
关注
22文章
1235浏览量
101350
发布评论请先 登录
相关推荐
评论