阅读 7

无法导入vcf文件,s32ds报错

前言1.LIN版本更新2.1 LIN2.1版本LDF2.1.1全局定义2.1.2节点定义2.1.3.3信号定义2.1.3.1标准信号定义2.1.3.2诊断信号定义(可选) 2.1.3.2 定义)可选)2.1.5节点属性定义2.1.6调度表2.2 J2602版LDF2.3 LIN2.2/2.2A版LDF 3. LIN Stack介绍3.1 S08/S12/KEA的LIN Stack3.2 S32K1xx的Lin stack 3.3 Lin stack配置工具冲突4 .常见导入错误类型4.1缺失参数4.2参数格式错误5 .参考资料

前言

目前,在汽车尾灯上使用LIN总线已是司空见惯,有些预算较高的还会乘坐CAN总线。 但是,赖特客户的一些电子工程师对LIN总线并不深入了解。 在实际进行项目时,如果遇到与LIN相关的问题,可能会感到困惑。 建议阅读瑞萨的《LIN总线入门.pdf》或笔者以前整理的《LIN总线介绍PPT》

目前,笔者支持的灯光客户最多的是与LDF文件相关的问题。 当工厂发送LDF文件时,客户使用开发工具导入LDF时会出现许多错误。 由于不熟悉LDF文件,无法确定问题出在哪里,阻碍了开发的进行。

本节介绍不同版本的LDF文件以及如何解决常见的LDF文件导入错误。

1.LIN版本更替lin的版本更迭如下图:

发行说明LIN1.01999-07-01LIN规范的初始版本LIN1.12000-03-06添加了协议规范,配置了语言规范和API规范Lin 1.22000-11-17l in 1.32002-12-13 增加诊断规范、明确节点性能文件Lin2.12006-11-24Lin2.0、增加节点配置规范、弱化传输层和诊断独立章节LIN2.22010-12-31位采样规范、起始位采样工作第2.6.2章中的唤醒信号定义2.LDF概述从LIN2.0版本中修复了节点性能文件规范。 从LIN规范工作流程(如下图所示)中可以看到,LIN子网设计工具收集节点性能文件信息,并自动创建LIN描述文件或LDF

的常用LDF编辑显示工具可从五个版本中选择,如下所示:

虽然Lin 1.3 Lin 2.0 j2602 Lin2.1 Lin 2.2/Lin 2.2 aldf的版本很多,但是用于调用ldf配置的Lin协议栈的API有两个版本,Lin 2.1的API和j 2602的API。

目前,国内汽车厂多使用LIN2.1和LIN2.2版本的LDF,北美汽车厂多使用J2602版本的LDF。 介绍这三个版本的LDF。

2.1 LIN2.1版LDF LIN2.1的出现主要是为了澄清LIN2.0,同时增加了节点配置规范、传输层和诊断独立的章节。

LIN2.1规范中对LDF的定义如下:

下面针对上图划分的六部分结合示例进行说明。

示例LDF选择安装在d驱动器上的S32DS for ARM2.2附带的LIN例程中使用的LDF。 地址如下。

d :\nxp\s32ds _ arm _ v 2.2\s32ds\software\s32 SDK _ s32 k1 xx _ RTM _3.0.0\ examples s32k 144

2.1.1全局定义

如上图所示,在此段落中,首先将文件定义为LDF,然后选择LIN协议版本和语言版本,最后确定LIN波特率。

注意:通道名称是可选的。 如果多个LIN群集连接到同一主节点,即使用多个LDF,请将通道名称区分为后缀。 不能在普通情况下使用。

2.1.2节点定义

如上图所示,该段分别定义主节点和从节点。

主站节点:名称、时基、抖动从站:各从站节点的名称2.1.3信号定义信号原本有3种:标准信号、诊断信号、信号组,但信号组仅限于LIN1.3

2.1.3.1标准信号定义标准信号的编码类型有两种,一种是标量信号(scalar signal ),长度范围为1bit~16bit; 一个是数组信号(array signal ),长度为8bit的倍数,最大为64bit。

如上所述,该段用于创建标准信号,包括信号名称、长度、初始值、分发节点和收听节点,阵列信号的初始值由数组表示,数组的元素数N=Size/8bit。

具体而言,各子站节点中必须定义长度为1bit的响应错误信号。 这是节点属性定义所必需的

2.1.3.2诊断信号的定义(可选)

如上图所示,诊断信号不需要定义始发者和接收者,因此必须与标准信号分开定义。

2.

1.4 帧定义

帧一共有五类,分为无条件帧,事件触发帧,零星帧,诊断帧和保留帧。保留帧(帧ID为0x3E和0x3F)在LIN2.x版本不使用。

2.1.4.1 无条件帧定义

无条件帧是具有单一发布节点,无论信号是否发生变化,帧头都被无条件应答的帧。无条件帧的帧ID范围为0~0x3B。

如上图所示,这一段主要定义了帧名称,帧ID,发布节点,数据段字节数以及包含的信号名称和偏移量。

2.1.4.2 事件触发帧定义(可选)

事件触发帧是主机节点在一个帧时隙中查询各从机节点的信号是否发生变化时使用的帧,当存在多个发布节点时,通过冲突解决进度表来解决冲突。帧ID范围同上。

如上图所示(由于示例LDF没有定义这部分,截取的LIN2.1规范的例程),主要包含了帧名称,冲突解决进度表,帧ID,关联的无条件帧。

2.1.4.3 零星帧定义(可选)

零星帧帧是主机节点在同一帧时隙中当自身信号发生变化时向总线启动发送的帧。当存在多个关联的应答信号变化时,通过事先设定的优先级来仲裁。帧ID范围同上。

如上图所示,这一段主要定义帧名称以及选择关联的无条件帧,关联的无条件帧的发布节点必须是主节点。

2.1.4.4 诊断帧定义(可选)

诊断帧包括主机请求帧和从机应答帧,主要用于配置、识别和诊断用。

如上图所示,这一段用于配置主机请求帧(帧ID为0x3C)和从机应答帧(帧ID为0x3D),数据段规定为8个字节,一律采用标准型校验和。

2.1.5 节点属性定义


这一段主要定义从节点的属性,包含从节点名称,LIN协议版本,NAD配置值,NAD初始值,产品ID(供应商ID,功能ID,变量),选择响应错误信号,P2_min,ST_min,N_As_timeout,,N_Cr_timout,可配置的帧列表。

2.1.6 调度表

调度表的功能有很多,包含调度帧,分配NAD,保存配置等。这个例程只使用了调度帧的功能。

最后一段进行调度表的定义,包含调度表名称,帧名称,帧时隙。

2.2 J2602版本LDF

SAE J2602的目标是通过解决LIN2.0的模糊、矛盾或可选的要求来提高网络中不同LIN设备之间的可互操作性和可交互能力。
LIN2602的LDF和LIN2.1的LDF主要区别如下:
【全局定义部分】:

波特率固定在10.417Kbps。

【帧定义部分】:

从节点发布的帧消息第一个字节必须是状态字节,由5bit的应用信息字段(低5位)和3bit的错误字段(高3位)组成。如下图所示:

不允许使用事件触发帧 。

【节点属性定义部分】:

节点属性不需要N_As_timeout和N_Cr_timeout;NAD的值范围为96到110;错误响应(Response error)为3bit。 2.3 LIN2.2/2.2A版本LDF


上图是S32K1xx的LIN协议栈的介绍,结合LIN2.2A规范的变更介绍可知(1.1.7.6章节),LIN2.2/2.2A只是在LIN2.1的基础上进行了一些拼写修正和澄清。LIN2.2/2.2A版本的LDF文件相比LIN2.1版本的LDF并没有什么区别。

3. LIN Stack介绍

目前笔者用过的LIN Stack就两种,一个是S32DS自带的S32K1xx_LIN_Stack,一个NXP官网推荐的S12_LIN_Stack。两个LIN Stack对比情况如下:

LIN StackS32K1xx_LIN_StackS12_LIN_Stack支持的版本LIN1.3,LIN2.0,J2602,LIN2.1,LIN2.2、2.2ALIN2.0,J2602,LIN2.1LDF源文件不支持高亮显示和编辑支持高亮显示,可以编辑LDF图形配置查错效果更好,但是编辑功能体验较差支持查错和编辑协议栈源码开放开放

查看LDF文件是否有格式错误时,建议使用Processor Expert的LIN组件;如果需要编辑LDF,建议使用S12_LIN_Stack自带的NCF Tools。主要原因是Processor Expert的LIN组件修改LDF的参数时经常卡死,使用体验较差。

3.1 S08/S12/KEA的LIN Stack

S12_LIN_Stack支持S08/S12/KEA三个平台,详细介绍参考文章《如何使用S32DS开发KEA系列的LIN功能(一)》

3.2 S32K1xx的LIN Stack

S32K1xx的开发环境自带LIN Stack,Processor Expert中有配套的LIN组件(如下图),和S12_LIN_Stack自带的NCF Tool差不多,参考NCF Tool即可。

3.3 两个LIN stack配置工具的冲突

在使用上述两款工具时,发现两款工具对LDF文件某些参数的处理有些冲突,下面简单介绍下笔者已经发现的冲突。为了描述方便,Processor Expert中配套的LIN组件简称LIN组件,S12_LIN_Stack自带的NCF Tool简称NCF工具

Message ID:
LIN组件加载J2602版本的LDF时,会要求加上message ID,NCF工具不需要添加。奇怪的是LIN组件在Message ID文字下面显示“只有LIN2.0支持Message ID”,查阅J2602-1规范中文版,里面又有信息标识符的描述,但是没有LIN2.0描述清晰。状态字节:
LIN组件会检查J2602版本LDF的无条件帧(从节点发布)的第一个字节是否是状态字节,但是NCF工具不会进行检查。查阅J2602-1规范中文版,5.8.6章节描述的要求和LIN工具一致。个人建议编写J2620的LDF时遵循规范。产品ID:
LIN工具对Product ID中的Supplier ID和Function ID的范围定义分别为0 ~ 0x7FFE和0 ~ 0xFFFE,但是LIN工具对其定义的范围都是0 ~ 0xFFFF。查阅LIN2.0规范中文版,2.2.2章节描述的要求和LIN工具一致;查阅LIN2.1和LIN2.2A规范,4.2.1.1章节给出的通配符值分别为0x7FFF和0xFFFF。位宽和容忍度:
LIN工具在J2602版本LDF的主节点定义部分,不需要定义Bit length和Tolerant,但是NCF工具需要定义。查阅J2602-1规范中文版,没有找到这两个参数的定义。 4.常见导入错误类型

下面简单介绍一些在支持客户时常见的问题。

4.1 缺少参数

1.需要使用NCF工具加载J2602的LDF,但是没有添加Bit length和Tolerant:

2.节点定义部分没有进行可配置的帧的定义:

3.LDF更改导致原来的主节点变成从节点,忘记加上响应错误信号:

4.2 参数格式错误

1.使用J2602版本的LDF时,状态字节的格式错误:

5.参考资料 LIN规范包 版本2.0;SAE J2602-1 2005年9月修订;SAE J2602-2 Issued SEP2005;瑞萨的《LIN总线入门.pdf》;LIN Specification Package Revision 2.1;LIN Specification Package Revision 2.2A;


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐