微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 硬件工程师文库 > 基于LIN2.1协议的车窗控制系统的应用

基于LIN2.1协议的车窗控制系统的应用

时间:02-23 来源:互联网 点击:

  LIN协会于1999年发布了第一版LIN协议,至今已有十几年了,在这十几年中,LIN总线不断发展,已经在以车身控制为主的许多场合得到了应用。LIN总线至今一共有7个版本,其中,LIN2.1协议于2006年11月发布,是目前较新的一个版本。它与最新的 LIN2.2协议几乎没有区别,却比它的前身LIN2.0协议有明显的改进,主要体现在加入了事件触发帧的竞争处理、完善了节点配置功能和进行了诊断分级三个方面。这些改进使用户可以更加方便和快速地组织LIN网络,可以根据自己的需求重新设置LIN网络,既保证了产品的稳定性,又满足了用户的个性化需求,是LIN总线自身发展过程中很有意义的一步。

  1 LIN2.1协议的新特点

  1.1 事件触发帧的竞争处理

  如果有多于一个的从节点在同一个帧时隙里响应帧头,就会导致竞争,竞争处理都是由主节点完成的。LIN2.0的事件触发帧竞争处理机制如图1所示。某主节点的进度表中有无条件帧A、事件触发帧和无条件帧B。当竞争发生后,主节点会继续按照之前的进度表,在接收完所有与事件触发帧相关的无条件帧后,再发送事件触发帧帧头。LIN2.1对此作出了改进,它引入了竞争处理进度表,LIN2.1的事件触发帧竞争处理机制如图2所示。每个事件触发帧都有与之相对应的竞争处理进度表,主节点在竞争处理进度表里处理完竞争后,再返回执行普通的进度表。显然,LIN2.1的竞争处理机制需要花费的时间较短。

  

  图1 LIN2.0的事件触发帧竞争处理机制  图2 LIN2.1的事件触发帧竞争处理机制

  1.2 节点配置功能的完善

  1.2.1 新增分配一系列帧ID的功能

  将配置功能分配帧ID改为分配一系列帧ID。LIN2.0和LIN2.1协议中分配帧ID的格式如图3所示。在LIN2.0中,只有NAD和 Supplier ID都匹配的情况下,分配才能成功,但每次只能分配一个帧ID。而在LIN2.1中,只需要NAD匹配就可以了,每次可以分配最多4个帧ID,而 LIN2.0中的Message ID在LIN2.1中已经被取消了。这种改进的目的是提高LIN网络配置的效率,更改后分配帧ID的速度最快可达到原来的4倍。

  

  图3 LIN2.0和LIN2.1协议中分配帧ID的格式

  1.2.2 新增保存配置的功能

  LIN2.1协议新增了保存从节点配置信息的功能,将从节点的配置信息存入到掉电不易失的存储空间中。这样,主节点对从节点的配置在复位后也不会丢失。

  1.3 诊断分级

  LIN2.1的另一大新特点是根据诊断功能将从节点分为3个级别。

  (1) 诊断一级

  诊断一级一般应用于智能传感器或执行器等一些不需要或只需要很少诊断功能的器件。诊断一级支持所有节点配置功能,并且只需要单帧传输。

  (2) 诊断二级

  与诊断一级相比,诊断二级的节点增加了节点辨识的功能。例如,用户可以获得产品的软、硬件版本号等。此外,诊断二级还支持读写软件内部的参数,比如温度、车速等。诊断二级支持多帧传输。

  (3) 诊断三级

  诊断三级的节点不仅包含了前面两级的所有功能,还支持内部Flash的擦写,用户可以通过LIN总线烧写程序。诊断三级支持多帧传输。

  2 LIN2.1协议的节点配置功能

  (1) 分配NAD

  为了避免某个NAD被重复使用,用户可能需要为从节点分配新的NAD。

  (2) 有条件分配NAD

  当用户替换或增加从节点时,可能会出现两种情况:

  ① 一种是用户不知道新增从节点的初始NAD,因此,必须以"广播"的方式寻找所有的从节点并分配有效的NAD("广播"指的是给网络中的所有从节点发送请求,它有一个专用的NAD为0x7F)。但如果直接这样做,会导致所有的从节点获得同一个NAD,这显然是不允许的。为了避免这个情况,可以加入限制条件。

  ② 另一种是用户知道新增节点的初始NAD,但其和LIN网络中已有从节点的NAD重复了。如果用户只按照原始NAD分配新的NAD,则会导致两个从节点的NAD都被修改。因此,必须加入限制条件。

  当从节点获得有条件分配NAD的请求后,将根据下面的步骤判断是否要修改NAD:

  ① 根据ID读取从节点的相关信息。

  ② 根据Byte提取相关信息中一个8位数据,例如Byte=1,则提取D1。

  ③ 与Invert进行异或运算。

  ④ 与Mask进行与运算。

  ⑤ 如果结果为0,则修改NAD。

  例如:本产品被新增到一个LIN网络中,初始NAD为0x06,但网络中已有了一个NAD为0x06的从节点。于是,用户可以利用本产品的Function ID,假设为0x0000,分配新的NAD为0x08。这里假设已存在的从节点的Function ID不为0x0000。这样,只有新增节点的NAD会被修改,而已存在从节点的NAD维持为0x06不变。

  (3) 保存配置

保存配置是LIN2.1添加的新功能,用来将从节点的当

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top