梦应逍遥 发表于 2024-8-10 14:18:00

CANoe入门——3、新建LIN工程及LIN DataBase(LDF文件)的创建

本篇是CANoe利用入门的第三篇,在第一篇和第二篇中我们进行了CANoe的CAN工程的创建及DBC文件制作,然而在汽车总线上,光有CAN是不可的,还需要LIN总线与之共同,本篇进行CANoe的LIN工程及LDF创建。

LDF(LIN Description File)LIN描述文件是在进行LIN总线分析,LIN总线开发和测试必备的文件,跟CAN的DBC一样,里面定义了节点,主机和从机,以及LIN帧和LIN信号,调理表等等。

目次

一、新建CANoe LIN工程
二、LDF文件的创建及制作(如已有LDF可跳至后面第5步)
三、单主单从的LIN总线LDF配置
四、单主多从的LIN 节点创建
五、导入LDF文件到CANoe的LIN工程中

一、新建CANoe LIN工程

打开CANoe,在CANoe左侧点击FIle,选择new一个工程。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvOTdjYzU0MTdhYjA4NDhkMjhhN2EyZjkxZDU1NTkxODIucG5n
将右侧的滚动条向下拉,找到LIN模板,双击打开,创建一个空的LIN总线工程。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvMzNmNTMyOGJkZWM4NDQyMzk1ZDFlY2E2MGQ0NWJlZTEucG5n

打开后的界面如图所示,与CAN工程需要导入DBC进利用用一样,LIN工程我们也需要导入一个LIN的DataBase文件(LDF)文件才能更好的对LIN报文进行分析,接下来我们去创建一个LDF文件
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvZjg1MmU0Mjk5NmRlNGU4OWI5MmNiMjY3NjkyMDhkYTAucG5n

二、LDF文件的创建及制作(如已有LDF可跳至后面第5步)


在CANoe的Tools栏目下,点击LDF Explorer打开LDF编辑器
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNTU0MWNkYjcxOGIzNGZhYThmYjgwMTc4NjRkMWRhYTIucG5n
打开后的界面如图所示,点击左上角的File按钮,新建一个LDF文件。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvZjk1MDJmOWUyZWI1NDJkZmFjNmVhYjIyMTUwOGU2NDEucG5n
点击FIle按钮下的New File,并在右侧选择LDF的版本(如今一般都是2.0以上的版本了)
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvZWIyYjVkZWFiOWQ5NGM3ZWJiY2IyZTNiMmJiYjNkMDQucG5n

在这里我选择LDF2.1,选择完毕后会弹出如下视图
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNmU5NjI1ODAyYzk5NGNiOTgxN2Y0YTZmZDZjMDcxOTIucG5n
针对一个LIN网络,比较重要的几个要素就是主从节点、LIN报文,LIN信号以及LIN的调理表。
CANoe的LDF编辑器,创建LDF文件之后就会主动天生一个主节点以及一个从节点,如果LIN上只有一主一从,我们直接利用默认的配置即可,无需再继续创建节点。

三、单主单从的LIN总线LDF配置

点击上图框中的第二个按钮,创建一个LIN帧(LIN报文)
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvMzg2NmE2NmY3YmQwNGVjYjg0Yjk5NTc1YTQ0OTU5MDkucG5n
在弹出的界面中,编辑这个LIN报文的ID,长度,以及名称。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvODZmYTU5NjRkMDQ3NDk4YTk4NjNlOGEyMWEzYjEwMzMucG5n
这里我创建一个名称为LIN_MasterFrame  ID为0x20且长度为8字节的LIN报文。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvYjVjNTExNjZjMWMzNDA2ZTkwYjVlYzFjNWNlNGY2NWIucG5n
名称和ID及长度填写完毕后,我们为这个LIN报文创建一个信号,点击上图的Create and Map Signal创建信号
在弹出的界面中,为这个LIN信号赋予名称,长度(单元Bit),初始值等信息
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNjhkMTBiMmI1YmYzNDI3YzgwZWI4ZjY4NmY2YzliMzQucG5n

以上信息键入成功后,再在下面为这条信号设置接收者发发送者。发送者我们设置为主机Master,接收者设置为从机Slave_1,并且将起始位设置为0。
点击Slave_1,再按向右的箭头,把它移动到接收者里面
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNGY1Mjc4ZWRkOThmNDkzMWI0MWFmOGUyMjY5YmViNGIucG5n
随后点击OK即可
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNDBhNDk0ODVkYjU3NDY2NDgwMGJmYmE5ZjE4Y2MxY2YucG5n
完成后界面如图,我们如法炮制再创建两个主机的信号
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvMmFlYjlhZmJjNGFkNDhjNjhlMDQzYzhjYzNmNGQ5MDUucG5n
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvYjVmNzM1OTQzMzc5NDM3NzkxMDI5OTYzYjVlNDQzNDUucG5n
随后我们可以点击红框中的按钮,切换到layout视图,看到这三个信号在这条LIN报文中的位置。

https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvYjY4YmUxNjk0MzJkNDYxMDhiNTRmZjkwMmVjYjgyMzIucG5n
可以看到,我创建的这三个信号分别放置在了Byte0(Signal1),Byte1的低四位(Signal2),Byte1的高四位以及Byte2的低四位(Signal3)。

并不是全部的LIN矩阵表都是云云标准的排列,大部分时间我们的字节排列都是有所空缺的,接下来我们修改一下这三个信号在报文中的位置。

点击红框中的按钮,切换回信号视图。然后在我们需要修改的谁人信号的StartBit处单击输入即可
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvMWZjZGVlYjNjZDE0NGMyMmFiY2JmNmQyMmNjYjUzMTUucG5n

在这里我将SIgnal2改为由14bit起始,SIgnal3改为46bit起始
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvOTllN2RkNjBkZGU3NGY3MzhjZTU5M2ZmYjRhZTY4ZDEucG5n


https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvMzk1YzU1YTRhMWJiNDAwYmJmMDFkMTQyMDc0NGQ0NTcucG5n

修改完成之后点击OK。然后我们再次切换到layout界面,即可看到信号放置的地方已经发生了改变,随后点击OK,这条0x20的LIN报文就已创建完成。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNmI3YjQzNzlmYjRmNGM4YTg1NjA4MDZmNjBkM2QxZmUucG5n

接下来,我们再如法炮制创建一条LIN报文,添加三个LIN信号,并将它的发布者设置为从节点Slave_1,接收者设置为Master。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvMGY3NjFhMjFmZTQ3NDJlOWFlZWRhYzkzOTk0NzZhMjcucG5n
然后,我们再创建一下这个从节点的错误响应信号。

错误响应:LIN的从机在LIN通讯发生错误时,该信号置位,用来表示内部LIN通讯检测到错误了。
通常,这是一个布尔范例的信号,即0和1的值。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvODY4MjNjMzMzNDdkNDVlOTgwNWM5NWU5MTg1Mzg1MzMucG5n
创建完成之后,点击OK,如图所示,再次点击OK,完成这条从节点LIN报文的创建。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNTA0ZDQxYjk4NzBhNDBkYTlkMmJlZmFkOTkyOWZiNWIucG5n

然后,我们可以看到,左上角已经出现了我们刚刚创建的报文。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvN2I5YjgzZWUwMjcwNDgzYWE3NWM3OTc4OTkxM2Y5MzEucG5n

如今,LIN信号和报文都有了,节点也有了,我们还需要创建一下LIN的调理表
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvYmE4ZTgyMjUwMmM0NDk0NTlhNGI0MWY5YThhYTJmNWIucG5n
点击红框中的图标创建一个应用调理表,并为这个调理表取一个名字,随后点击OK
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvMGVhMDFiM2Q0MjI4NGRlNGI4ZTUxOWFjOGIzZDQ3OWUucG5n
如今,我们就已经有了一个调理表了,但是这个表里还没有需要调理的LIN帧,我们需要把LIN帧添加进去。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvZTA3YWYwNjc1MzhmNGE1YjgwOGJjOGQ1NmJjNTEyZWQucG5n

鼠标按住左边的0x20和0x25两条LIN报文,然后将其拖沓到这个表下面即可。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNmMxNzVlMWZiNWQ3NDAyNDgzOGFhYmI3ZGIwYzJhMTUucG5n

这样,我们就得到了一个调理表,这个调理表会按照规定的周期调理LIN帧。
我们再创建一个用于LIN诊断的调理表,用来调理LIN诊断帧3C和3D
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNWQzYTkxZWExMmJmNDA1ZGE1NWRkMGRlMTNlOTc0ZTIucG5n

把LIN诊断帧0x3C和3D再拖进这个诊断调理表即可。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvZDE1OTNiOTNlNDdiNDRlZDlhYzEyNzIyZWIxZjg4NTgucG5n

最后,我们需要把刚刚添加的从节点错误响应信号,绑定给从节点,并且修改节点地址
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNzVmN2U3YzY0YzJiNDViMDkzMTAwMjczMjZhMWFlYTcucG5n
点击红框中的按钮,切换到节点视图。
可以看到,这个从节点的ID默认是0xFF,我们需要把他修改为一个大于0且小于7F的值。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNDU0NzczN2EzYTg2NDUwMDhlOWNhYzhiODA3YmQ0NjcucG5n
如果客户有规定,那么按照客户给的定义编写即可。

客户没有规定的话,我一般选择自己定义。如今我定义它的节点ID为0x1
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvODliZGZmNjUxZjJjNDk3NGIyZDc2NGUyOTg2M2NjMDMucG5n

最后,我们再给这个节点配置上错误响应就可以了
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvMTlhZjZiYWZkMzY2NDJkZWE0M2Q3ZWJlMzJiNDQ5M2UucG5n
在红框处点击下拉框,把刚刚创建的错误响应信号配置给它
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvMTQ4NDE1MDY2MzI5NGIxZWEzNDNmMGUzMDBkOGUzZjkucG5n
选择完毕之后,点击保存即可,LDF文件制作完成。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNTk3MGI3M2M4ZTk5NGQ0NmE2NmRjNjgzZWQxYjYzOWYucG5n
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNTkwYmMwNjcwYWQwNDg5Yzg4MDhkYmQ2ZDAyYWQ0MmMucG5n
四、单主多从的LIN 节点创建

LIN总线上很少会出现单主单从的状态,往往都是有多个从节点,有时间我们还需要创建其他的从节点并为之配置报文。
点击图中的按钮,可以创建一个从节点。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvMGMzMzRmNTI5N2E1NDJiYjg2OTgyYmYyYTM2YWZjNjEucG5n

在弹出的窗口中,为我们新建的从节点命名,随后点击OK
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvYzNhMDgyYTFhNDNlNGIwOGI5NjdmMTYxOTE5ZDQ2OTEucG5n

可以看到,左侧已经出现了我们刚刚创建的从节点。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvZDM1MmNkZGNmYWVmNDg5ZWEyNzc5NjRkOWI1YzhlYWMucG5n
后面,只需要再次创建这个从节点的报文和LIN信号,并为其配置发布者和接收者,修改节点ID和配置错误响应即可。
由于与第三步的步调几乎雷同,我这里快进一下。
只需要注意配置好报文的发送者和接收者就好。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNDBhNTE0MTFmMjczNDc5YWI2MTA5NGIzMDljOWI4MjMucG5n
如图....创建了四个信号给这条报文,最后再点击OK
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvZjZiYzAzMmVkN2MyNDU4Y2FkMjQ3ZjE1ZTgyN2JmMjIucG5n

最后,修改一下这个节点的ID和绑定错误响应。并配置它的错误响应就好了。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvYThjZDkzMWMzM2EwNDYzZThmMDgzNThiNWY4YjJkMDIucG5n

https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvYTM0YzdhYjY1ZGRhNDIyZmEzZTdhZTUxNzE5ZjQxNzEucG5n

五、导入LDF文件到CANoe的LIN工程中


在右侧的DataBase处右击鼠标,选择Import Wizard进行LDF的导入。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvYzgwMTcyNGMzNDViNDM1NDgzN2Y5Mzk3YmU3ZDczNDMucG5n
点击Select选择目标LDF文件
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvNjRlY2Y3NTJiOTBiNGE1ODhjMTJiMzQzNDNjYTI3MjIucG5n

选择完毕后,选择节点后利用右移符号>>将节点添加至右侧即可
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvYTgwMDNmMWQwMzJkNDgzYWFkNTdkOTczMjc2MDMzNWIucG5n
点击下一页,随后点击完成。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvN2FiMzk3YmMyMzA5NDllNjg2NDAxOWUxMDgwYjQ3YmYucG5n
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvZTcyMWYxMGJjZDE4NDBmOWJhMmNmM2ZjYzI4YjgwOWEucG5n
完成后的界面如下图所示。如今我们就可以启动这个LIN工程了。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvMGIwMGVkZDc5Nzc4NDNiYWFkMDIxOTVkZWRmMGM2OGQucG5n

启动后,即可看到LIN报文在按照LDF调理进行收发了。
https://dis.qidao123.com/imgproxy/aHR0cHM6Ly9pLWJsb2cuY3NkbmltZy5jbi9kaXJlY3QvMjk3YjU4NGY0YTM4NGUwZmFhNzJkZWJjZTlkODAwOGEucG5n

如果需要较为方便的修改某信号的值,可以新建一个Panel面板,并将对应的信号与控件进行关联,随后在Panel面板上改变控件的值即可改变对应的LIN信号。(详细可以检察CANoe入门系列的第一篇文章:创建自己的第一个CANoe测试工程   的第四部分)。


页: [1]
查看完整版本: CANoe入门——3、新建LIN工程及LIN DataBase(LDF文件)的创建