CAN/CANFD
CCP/UDS
Bootloader/OTA
ECU/VCU/FCU
Simulink/ECUCoder
Ethernet
Hardware
Download
上一篇
下一篇
LDF文件介绍
一.LDF文件简介
二.LDF文件制作示例
-2.1.LDF Edit:LDF文件编辑软件
-2.2.示例总线信息
-2.3.通用信息设置
-2.4.添加节点
-2.5.添加信号
-2.6.添加帧
-2.7.添加进度表
-2.8.添加信号编码
三.使用LDF文件
-3.1.发送LDF数据
-3.2.接收LDF数据
-3.3.收发LDF数据示例模型
五.LDF文件小结
回到顶部
LDF文件介绍
一.LDF文件简介
二.LDF文件制作示例
-2.1.LDF Edit:LDF文件编辑软件
-2.2.示例总线信息
-2.3.通用信息设置
-2.4.添加节点
-2.5.添加信号
-2.6.添加帧
-2.7.添加进度表
-2.8.添加信号编码
三.使用LDF文件
-3.1.发送LDF数据
-3.2.接收LDF数据
-3.3.收发LDF数据示例模型
五.LDF文件小结
回到顶部
# LDF文件介绍 ## 一.LDF文件简介
LDF,LIN description file,LIN总线描述性文件。LDF文件是承载LIN总线信息的重要文件,当项目中使用到LIN通信时,人们总是使用LDF文件来传递LIN总线信息。比如汽车行业的主机厂与供应商之间使用LDF文件来同步LIN总线通信需求。 LDF包含了整个子网的信息,包括所有的信号和帧的声明,以及进度表等信息。LDF文件还可以作为调试时总线分析仪和仿真器的输入。LIN子网生成工具根据LDF生成各种通信驱动,可以建立起通信子网,也可以将具备节点性能文件的现成节点加入到已经建立好的通信子网中,并在网络进入运行前排除掉可能产生的冲突。 LDF文件对整个LIN网络进行了描述,也包含了要监测LIN网络所必需的信息,包含LIN网络内所有节点、帧和信号的信息以及进度表等内容,如下表所示。  注意: 1.
蓝色
笔标出的部分为可选项,
红色
笔标出的部分为选择其中的一项或几项。 2. “节点组合定义”表示当一个主机ECU与多个LIN通信子网相连时,会包含多个LDF文件,为了避免命名冲突,规定LDF文件中的所有对象必须使用通道后缀名称。 3. “节点组合定义”表示当存在从机物理节点对应多个逻辑节点时,可以让主节点用同一软件无需作任何改变就可处理多个从节点的配置。 4. “信号组”只应用于依据LIN1.3版本设计的节点。 ## 二.LDF文件制作示例
### 2.1.LDF Edit:LDF文件编辑软件
LDF Edit是LINWorks免费提供的LDF文件编辑软件,可以查看、编辑、新建LIN总线LDF文件,支持各种版本的LIN规范。LDF Edit软件[下载地址](https://www.canfd.net/download.html)。 关于LDF Edit的使用说明,可以查看[LINWorks软件使用手册](https://wenku.baidu.com/view/aff38f1cb62acfc789eb172ded630b1c59ee9b01.html?_wkts_=1688871630553&bdQuery=LINWorks)。 在取得LIN通信总线信息之后,使用LDF Edit软件制作LDF文件的基本步骤分为6步: 1. 通用信息设置,主要包括LIN协议版本号、总线波特率的设置。 2. 添加节点,包括1个主机节点与若干个从机节点。 3. 添加信号,包括主机与从机之间交互的所有信号。 4. 添加帧,包括无条件帧、偶发帧、事件触发帧、诊断帧等。 5. 添加进度表,可以添加1个或者多个进度表。 6. 添加信号编码,所有信号均必须要有明确的信号编码类型。 ### 2.2.示例总线信息
本示例假设LIN协议版本为2.1,LIN总线上挂接了一个主机节点与一个从机节点,其它总线信息如下: - 总线波特率为19200bps。 - 交互的信号包括目标转速与实际转速两个信号,其中目标转速是主机向从机发布的命令信息,实际转速是从机向主机汇报的反馈信息。 - 主机发送1帧报文,ID为0x05,主机发送目标转速信号,发送周期50ms。从机接收该报文后控制转速并将实际转速通过ID=0x06的报文汇报给主机。 - 主机接收1帧报文,ID为0x06,接收实际转速信号,接收周期50ms。 - 转速信号为双字节,信号范围0~65000rpm,分辨率1rpm/位,偏移0。 ### 2.3.通用信息设置
新建1个LDF文件,保存名称为DemoLDF.ldf,设置LIN协议版本号为2.1、总线波特率为19.2kbps,如下图所示。  ### 2.4.添加节点
添加1个主机节点(名称为M_ECU),设置时基5ms,抖动0.1ms,如下图所示。  添加1个从机节点(名称为S_ECU),并勾选从机节点Attributes选项卡中的Add Node attributes选项,如下图所示。  ### 2.5.添加信号
添加多个信号: (1)目标转速Target_Speed:16位,信号由M_ECU发布,由S_ECU订阅。  (2)实际转速Actual_Speed:16位,信号由S_ECU发布,由M_ECU订阅。  ### 2.6.添加帧
添加帧,此处添加无条件帧: (1)命令帧CMD_Frame,ID为0x05,由M_ECU发布,帧的尺寸为2个字节,帧包含的信号为Target_Speed。  (2)反馈帧Feedback_Frame,ID为0x06,由S_ECU发布,帧的尺寸为2个字节,帧包含的信号为Actual_Speed。  ### 2.7.添加进度表
添加进度表Schedule_Table1,调度两个无条件帧CMD_Frame与Feedback_Frame,两帧的调度周期均为10个时基,10*5=50ms,如下图所示。  ### 2.8.添加信号编码
添加信号编码Speed_Encoding,用于信号Target_Speed与Actual_Speed,转速信号为双字节,信号范围0~65000rpm,分辨率1rpm/位,偏移0,单位RPM,如下图所示。  需要注意的是,示例使用的LDF Edit软件版本不支持负值偏移。完成以上所有步骤之后,保存DemoLDF.ldf文件。 ## 三.使用LDF文件
LDF文件有多种用途,比如用户可以使用LDF Edit一类的软件打开LDF文件以获取LIN总线信息。MATLAB/Simulink提供了LIN Pack模块与LIN Unpack模块(位于Simulink Real-Time库中),可以用于LDF文件的自动解析与自动代码生成,因此LDF文件的另一个重要用途是用于控制器收发LDF数据。 ### 3.1.发送LDF数据
ECUCoder的LINTransmit模块与LINPack工具模块配合使用方法如下图所示,需要正确设置LINTransmit 模块中的LIN ID、Data Length等参数,然后连线即可使用。  ### 3.2.接收LDF数据
ECUCoder的LINReceive模块与LINUnpack模块配合使用方法如下图所示,需要正确设置LINReceive模块中的LIN ID、Data Length等参数,然后连线即可使用。   需要注意的是,由于LINReceive模块OK端口输出数据类型是uint8,而LINUnpack模块Msg Update端口输入数据类型是boolean,因此两个端口中间需要添加一个Data Type Conversion数据类型转换模块。 ### 3.3.收发LDF数据示例模型
本站提供了收发LDF数据示例模型:《[使用控制器收发LDF数据](./demo44.html)》。 ## 四.LDF文件小结
在几乎所有用到LIN总线的电控系统开发项目中都需要使用到LDF文件,学习理解与使用LDF文件是电控软件工程师的基础技能之一。LDF Edit可以用来查看、编辑、新建LDF文件,是最常用的LDF文件编辑软件工具。Simulink/ECUCoder可以自动导入LDF文件,是控制器收发LDF数据最常用的软件工具。