xmldocument如何创建一个不带结尾的节点_LDF文件是个啥?如何创建一个LDF文件
之前的一篇文章中介紹了LIN通訊,對LIN通訊的通訊機理進行了說明,那么在定義LIN通訊的時候需要使用什么樣的文件進行描述呢?直觀的來說就是LIN的描述文件,其實翻譯成英文就是LIN Description File,那么簡稱就是LDF,今天我們就說說LDF文件是什么樣的!
首先,從意義來說,根據(jù)名字我們應(yīng)該就有所理解,就是為了描述LIN通訊,那么需要描述的內(nèi)容包含哪些方面呢,大體上來說,會分為以下幾個方面:
節(jié)點的定義,哪個是主節(jié)點哪個是從節(jié)點;
節(jié)點所包含信號的定義,每個節(jié)點包含多少信號,每個信號是如何定義的,這里指信號測長度和信號的位置;
節(jié)點的屬性,主要包含節(jié)點的地址,功能ID、供應(yīng)商ID以及變種ID等信息;
LIN總線調(diào)度表,因為LIN是基于調(diào)度的,沒有調(diào)度是無法通訊的;
下面我們就通過新建一個LDF文件把以上涉及的信息進行說明
使用的工具:vector公司的LDF Explorer
同類型的工具也可以使用Babylin的LDFEdit
第一步:首先打開LDF Explorer編輯軟件,空白界面如下
第二步:主菜單file->new file,在new file的右側(cè)需要選擇建立LDF文件使用的通訊標準,如下所示
目前LIN的協(xié)議包含1.3、2.0、2.1、2.2等等,具體的差異不在本文的討論范圍,暫時不做展開,現(xiàn)在使用基本都是2.0以上,而且2.0/2.1/2.2在不涉及診斷的單純的通訊方面是完全可以兼容的。
我們這里選擇基于LDF2.1,會進入如下界面;
這里我們紅色圈出的部分,都是編輯軟件自動生成的,把這個LDF需要的主要元素的框架顯示在了左側(cè)的列表中,后續(xù)編輯的時候只要在對應(yīng)的部分添加相應(yīng)的內(nèi)容就可以了。
這里注意,左側(cè)是有兩個列表的,一個是“Frames/Commands”,一個是“Nodes/Frames”,這是兩種不同的模式,隨著我們的編輯會很容易理解它們的不同。
第三步:先把LIN總線的名稱做一下修改,點擊下圖左側(cè)紅色圈出的選項,在右側(cè)紅色圈出的部分進行名稱修改,這里我們把名稱更改為“LIN_LDF_Test”
更改完成之后,我們可以看到總線的名稱相比之前發(fā)生了變化
第四步:因為在一條LIN總線里面只能有一個主節(jié)點,模板中已經(jīng)把主節(jié)點創(chuàng)建完成,所以在節(jié)點創(chuàng)建的時候是不能創(chuàng)建主節(jié)點的,只能創(chuàng)建從節(jié)點,但是可以對主節(jié)點的信號進行編輯的,這一步我們就來編輯主節(jié)點的信號,首先更改一下主節(jié)點的名稱,把主節(jié)點名稱更改為“LIN_ECU”,更改方法:切換到如下界面,按照紅色圈出的部分依次選擇,在最右側(cè)的紅色圈出位置進行更改
更改完成之后如下
然后,給主節(jié)點增加兩個發(fā)送信號,我們可以看到每個節(jié)點有兩類信號,一類是發(fā)出的,發(fā)出是給從節(jié)點,那么這個主節(jié)點發(fā)出的信號就是從節(jié)點的接收信號,一般是多個從節(jié)點的接收信號;一類是接收的,那么這個主節(jié)點的接收信號就是從節(jié)點的發(fā)送信號,也一般是多個從節(jié)點的發(fā)出的。
這里我們新建兩個主節(jié)點的發(fā)送信號,分別發(fā)給兩個從節(jié)點,這一步先把兩個信號創(chuàng)建好,至于發(fā)給哪個節(jié)點,等后邊創(chuàng)建了從節(jié)點之后再分配。因為所有的信號都是依托于信號幀的,所以創(chuàng)建的時候我們只能創(chuàng)建信號幀。
創(chuàng)建信號幀的時候有三種不同的類型:無條件信號幀、事件觸發(fā)信號幀以及零星信號幀。一般使用的都是無條件信號幀,這里我們就以創(chuàng)建無條件信號幀為例,通過下面的方式創(chuàng)建
點擊之后,會進入如下界面
這里首先需要定義幀的名稱、幀的長度、幀的ID
幀的名稱,可以隨便定義,只要符合命名規(guī)則即可,一般是字母、數(shù)字和下劃線組成;
幀的長度,LIN2.0以上的通訊協(xié)議要求,長度可以是2、4、6、8的任何一個,其它的數(shù)值不可以;
幀ID,這個的取值范圍是0-63,任意一個都是可以的
這里我們配置如下:
Publisher就是指誰發(fā)出的這個幀,我們定義的是主節(jié)點的幀,當然是由主節(jié)點ECU發(fā)出
Subscriber就是指誰接收這個幀,這里我們先不設(shè)置,因為還沒有定義從節(jié)點,定義了從節(jié)點之后再進行設(shè)置
接著創(chuàng)建這個幀的信號,點擊“Create and Map Signal”,進入如下界面
在這里需要對信號的屬性進行設(shè)置
信號名稱,還是一樣可以隨便設(shè)置
初始值,根據(jù)需求設(shè)置
信號類型,類似于數(shù)據(jù)的類型選擇
信號長度,根據(jù)信號的定義,長度是可以自定義的,不跨字節(jié)低于8位或者跨字節(jié)超過8位都是可以的;
編碼類型,這個代表的就是信號需要如何解析,你定義的信號在總線上就是0和1的數(shù)值,組合起來代表的是物理值,物理值的意義就需要這里的定義去解析;
信號的發(fā)送和接受節(jié)點,這個是繼承的幀的設(shè)置,幀的設(shè)置好之后就可以了;
信號在幀上的位置,假
設(shè)如我們定義一個幀的長度是8個字節(jié),那么就是代表的64位,假設(shè)你定義的信號長度是10位,需要在這里確定好信號在64位的哪個位置,是第0位還是第n位;
這里我們設(shè)置如下:
點擊ok,新建的信號就會顯示在幀定義的界面
同樣的方法,我們再建第二個信號
信號解析可以借用第一個的方式
但是信號位置一定不能重疊,所以這個最少要在第十位之后
創(chuàng)建完兩個信號如下:
最右側(cè)有兩個紅色標記是因為沒有定義從節(jié)點,下一步來定義從節(jié)點。
第五步:創(chuàng)建兩個從節(jié)點
在生成的模板中自帶了一個從節(jié)點,我們直接把這個從節(jié)點的名字做一下修改,作為其中的一個節(jié)點,參數(shù)設(shè)置如下:
需要注意,從節(jié)點創(chuàng)建時需要設(shè)置節(jié)點地址,就是這里的NAD,這個參數(shù)是在診斷中會使用到的;
然后,在創(chuàng)建一個節(jié)點,通過如下方式創(chuàng)建
設(shè)置名稱如下:
節(jié)點地址設(shè)置如下:
創(chuàng)建完之后,左側(cè)界面如下
第六步:把剛才的主節(jié)點的兩個信號信息完善
信號1完善信息如下:
信號2完善信息如下:
這樣我們就可以通過左側(cè)的導航欄看出信號在各個節(jié)點的關(guān)系了
Master_frame_Signal1是主節(jié)點的發(fā)送幀信號,是從節(jié)點1的接收幀信號
Master_frame_Signal2是主節(jié)點的發(fā)送幀信號,是從節(jié)點2的接收幀信號
第七步:以同樣的方式,每個從節(jié)點創(chuàng)建一個發(fā)送信號
從節(jié)點1的發(fā)送信號設(shè)置如下
從節(jié)點2的發(fā)送信號設(shè)置如下:
最終形成的鏈接關(guān)系如下
第八步:創(chuàng)建調(diào)度表
我們前面說了,LIN的通訊時基于調(diào)度的,如果沒有調(diào)度就無法通訊,所以這里要創(chuàng)建調(diào)度表,通過如下入口
命名如下:
然后中間的schedule tables會發(fā)生變化
然后把需要調(diào)度的信號幀拖入到這個表格就可以了,結(jié)果如下
這個調(diào)度的周期時可以更改的,在右側(cè)有編輯的位置
根據(jù)需要設(shè)置就可以了!
到此,一個基本的LDF文件就完成了,把文件保存一下就可以了!
這里我們保存為LIN_LDF_Test.ldf,供以后使用!
???
END
Tesla自動駕駛體驗
法拉利工廠探秘
為了分享資料方便小編也是拼了,強烈推薦查看本文
福耀玻璃汽車前擋玻璃“前裝RFID解決方案”和“前裝ETC解決方案”首發(fā)
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的xmldocument如何创建一个不带结尾的节点_LDF文件是个啥?如何创建一个LDF文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在docker上调用宿主机硬件_Dock
- 下一篇: 从零开始学python人工智能课程_从零