一、概述
LIN总线开发流程:
图1 LIN总线开发流程图
Step 1:
用Node Capability Files通过LIN cluster design tool来生成LDF文件,由于小编在开发过程中没有用过这个文件及LIN cluster design tool,就不展开讲了;
Step 2:
用LDF进行LIN Stack配置,在开发过程中用的是Vector公司的GENy工具;
Step 3:
用GENy工具可以配置一些LIN 2.1/2.2里面TP层的时间参数,Network Management等,还可以自选需要的UDS诊断服务来生成诊断服务函数接口。到这一步LIN Stack的底层代码基本可以配置好,和应用层代码调试一下就可以用了。
其实LIN Stack的配置非常简单,读者以后要是碰到尝试一下就可以大概知道是一个怎样的配置方法。本文的目的主要是介绍配置过程中需要的核心文件LDF,做过CAN Stack配置的话,可以将LDF当成是CAN DBC即可。
注:本文中涉及到的工具均为busmaster LDF Editor,读者可以下载busmaster自己学习一下。
二、LDF文件介绍
1、LDF文件的主要内容
如上图所示,LDF主要有两个部分:
- 展示了主节点和从节点,及其各自的报文;
- 是调度表,展示了不同报文切换的顺序及时间。
在之前的文章中我们知道,LIN网络是一种主从结构,只有主节点的主任务发送了报文请求,LIN网络中才会进行报文的传输。
(1)报文传输方向
主节点发送报文传输请求后,数据就可以进行传输了,而这里的报文传输方向就是通过LDF文件来描述的,如下图所示:
图3 报文发送方向示例
Published XXX:发送方
Subscribed XXX:接收方
在LDF文件中可以逐个帧去配置它的接收及发送方向,这里这个方向是根据项目需求自定义,可以是主节点发给从节点,也可以是从节点发给主节点,还可以是从节点之间互相发送。
(2)帧或信号的定义
选中帧或者信号可以自定义长度,初始值,信号在帧中的位置等,如下图所示:
图4 帧定义
图5 信号定义
(3)调度表
调度表是由主节点运行的,一般在仿真中用CANoe即可模拟。这里举例的图2中,都是无条件帧,也就是说报文的发送不需要有条件,只要调度表激活了,这些帧就会按顺序依次发送,发送完之后再从头开始,这样一直循环直到切换到其他调度表。
Flame Slot:即一个完整的帧发送完所需的时间,一般是时间基数的整数倍。
jitter:从计时开始起到真正接收到报文的一个延时。
图6 Flame Slot示意
调度表执行:
图7 调度表执行示意
**