xmldocument如何创建一个不带结尾的节点_LDF文件是个啥?如何创建一个LDF文件
之前的一篇文章中介绍了LIN通讯,对LIN通讯的通讯机理进行了说明,那么在定义LIN通讯的时候需要使用什么样的文件进行描述呢?直观的来说就是LIN的描述文件,其实翻译成英文就是LIN Description File,那么简称就是LDF,今天我们就说说LDF文件是什么样的!
首先,从意义来说,根据名字我们应该就有所理解,就是为了描述LIN通讯,那么需要描述的内容包含哪些方面呢,大体上来说,会分为以下几个方面:
节点的定义,哪个是主节点哪个是从节点;
节点所包含信号的定义,每个节点包含多少信号,每个信号是如何定义的,这里指信号测长度和信号的位置;
节点的属性,主要包含节点的地址,功能ID、供应商ID以及变种ID等信息;
LIN总线调度表,因为LIN是基于调度的,没有调度是无法通讯的;
下面我们就通过新建一个LDF文件把以上涉及的信息进行说明
使用的工具:vector公司的LDF Explorer
同类型的工具也可以使用Babylin的LDFEdit
第一步:首先打开LDF Explorer编辑软件,空白界面如下
第二步:主菜单file->new file,在new file的右侧需要选择建立LDF文件使用的通讯标准,如下所示
目前LIN的协议包含1.3、2.0、2.1、2.2等等,具体的差异不在本文的讨论范围,暂时不做展开,现在使用基本都是2.0以上,而且2.0/2.1/2.2在不涉及诊断的单纯的通讯方面是完全可以兼容的。
我们这里选择基于LDF2.1,会进入如下界面;
这里我们红色圈出的部分,都是编辑软件自动生成的,把这个LDF需要的主要元素的框架显示在了左侧的列表中,后续编辑的时候只要在对应的部分添加相应的内容就可以了。
这里注意,左侧是有两个列表的,一个是“Frames/Commands”,一个是“Nodes/Frames”,这是两种不同的模式,随着我们的编辑会很容易理解它们的不同。
第三步:先把LIN总线的名称做一下修改,点击下图左侧红色圈出的选项,在右侧红色圈出的部分进行名称修改,这里我们把名称更改为“LIN_LDF_Test”
更改完成之后,我们可以看到总线的名称相比之前发生了变化
第四步:因为在一条LIN总线里面只能有一个主节点,模板中已经把主节点创建完成,所以在节点创建的时候是不能创建主节点的,只能创建从节点,但是可以对主节点的信号进行编辑的,这一步我们就来编辑主节点的信号,首先更改一下主节点的名称,把主节点名称更改为“LIN_ECU”,更改方法:切换到如下界面,按照红色圈出的部分依次选择,在最右侧的红色圈出位置进行更改
更改完成之后如下
然后,给主节点增加两个发送信号,我们可以看到每个节点有两类信号,一类是发出的,发出是给从节点,那么这个主节点发出的信号就是从节点的接收信号,一般是多个从节点的接收信号;一类是接收的,那么这个主节点的接收信号就是从节点的发送信号,也一般是多个从节点的发出的。
这里我们新建两个主节点的发送信号,分别发给两个从节点,这一步先把两个信号创建好,至于发给哪个节点,等后边创建了从节点之后再分配。因为所有的信号都是依托于信号帧的,所以创建的时候我们只能创建信号帧。
创建信号帧的时候有三种不同的类型:无条件信号帧、事件触发信号帧以及零星信号帧。一般使用的都是无条件信号帧,这里我们就以创建无条件信号帧为例,通过下面的方式创建
点击之后,会进入如下界面
这里首先需要定义帧的名称、帧的长度、帧的ID
帧的名称,可以随便定义,只要符合命名规则即可,一般是字母、数字和下划线组成;
帧的长度,LIN2.0以上的通讯协议要求,长度可以是2、4、6、8的任何一个,其它的数值不可以;
帧ID,这个的取值范围是0-63,任意一个都是可以的
这里我们配置如下:
Publisher就是指谁发出的这个帧,我们定义的是主节点的帧,当然是由主节点ECU发出
Subscriber就是指谁接收这个帧,这里我们先不设置,因为还没有定义从节点,定义了从节点之后再进行设置
接着创建这个帧的信号,点击“Create and Map Signal”,进入如下界面
在这里需要对信号的属性进行设置
信号名称,还是一样可以随便设置
初始值,根据需求设置
信号类型,类似于数据的类型选择
信号长度,根据信号的定义,长度是可以自定义的,不跨字节低于8位或者跨字节超过8位都是可以的;
编码类型,这个代表的就是信号需要如何解析,你定义的信号在总线上就是0和1的数值,组合起来代表的是物理值,物理值的意义就需要这里的定义去解析;
信号的发送和接受节点,这个是继承的帧的设置,帧的设置好之后就可以了;
信号在帧上的位置,假
设如我们定义一个帧的长度是8个字节,那么就是代表的64位,假设你定义的信号长度是10位,需要在这里确定好信号在64位的哪个位置,是第0位还是第n位;
这里我们设置如下:
点击ok,新建的信号就会显示在帧定义的界面
同样的方法,我们再建第二个信号
信号解析可以借用第一个的方式
但是信号位置一定不能重叠,所以这个最少要在第十位之后
创建完两个信号如下:
最右侧有两个红色标记是因为没有定义从节点,下一步来定义从节点。
第五步:创建两个从节点
在生成的模板中自带了一个从节点,我们直接把这个从节点的名字做一下修改,作为其中的一个节点,参数设置如下:
需要注意,从节点创建时需要设置节点地址,就是这里的NAD,这个参数是在诊断中会使用到的;
然后,在创建一个节点,通过如下方式创建
设置名称如下:
节点地址设置如下:
创建完之后,左侧界面如下
第六步:把刚才的主节点的两个信号信息完善
信号1完善信息如下:
信号2完善信息如下:
这样我们就可以通过左侧的导航栏看出信号在各个节点的关系了
Master_frame_Signal1是主节点的发送帧信号,是从节点1的接收帧信号
Master_frame_Signal2是主节点的发送帧信号,是从节点2的接收帧信号
第七步:以同样的方式,每个从节点创建一个发送信号
从节点1的发送信号设置如下
从节点2的发送信号设置如下:
最终形成的链接关系如下
第八步:创建调度表
我们前面说了,LIN的通讯时基于调度的,如果没有调度就无法通讯,所以这里要创建调度表,通过如下入口
命名如下:
然后中间的schedule tables会发生变化
然后把需要调度的信号帧拖入到这个表格就可以了,结果如下
这个调度的周期时可以更改的,在右侧有编辑的位置
根据需要设置就可以了!
到此,一个基本的LDF文件就完成了,把文件保存一下就可以了!
这里我们保存为LIN_LDF_Test.ldf,供以后使用!
END
Tesla自动驾驶体验
法拉利工厂探秘
为了分享资料方便小编也是拼了,强烈推荐查看本文
福耀玻璃汽车前挡玻璃“前装RFID解决方案”和“前装ETC解决方案”首发
《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读总结
以上是生活随笔为你收集整理的xmldocument如何创建一个不带结尾的节点_LDF文件是个啥?如何创建一个LDF文件的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 在docker上调用宿主机硬件_Dock
- 下一篇: 围成一圈的排列组合问题_约瑟夫问题