女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

新功能發布 | TSMaster如何實現J1939多幀報文收發

上海同星智能科技有限公司 ? 2022-09-06 10:01 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

眾所周知,J1939協議是由美國汽車工程師協會(SAE)定義的一組標準。J1939標準用于卡車、公共汽車和移動液壓等重型車輛。如今大多數車輛都通過CAN進行ECU通信。但是CAN總線僅僅是提供了通信的基礎(就像是電話),但是沒有提供對話的“語言”來進行更復雜的操作。所以在大多數大型車輛中,這個“語言”就是SAE定義的J1939標準。

今天我們繼續來介紹TSMaster新功能—J1939多幀報文收發。這個功能屬于J1939的高級功能,需要license的授權,具體操作需求可以聯系我們。

J1939功能使用

Use of J1939 functionality/

我們假設已經擁有了帶license的硬件,以TC1005為例,選擇硬件通道后連接應用程序,隨后打開about窗口,就可以看到擁有license的列表。其中有一個J1939的option,接下來介紹這個功能的使用。

fde64bf8-2af9-11ed-9ade-dac502259ad0.pngfe14fade-2af9-11ed-9ade-dac502259ad0.pngfe2b3b64-2af9-11ed-9ade-dac502259ad0.png

> 首先打開TSMaster的安裝目錄,進入demo文件夾,找到示例數據庫J1939ILDemo的數據庫文件。我們將其拖入TSMaster中,這個拖入的過程需要在程序斷開連接的時候來完成,可以看到,這個數據庫里面有四幀報文,它的PGN分別為EF00,EF00,FF02和FF01。

fde64bf8-2af9-11ed-9ade-dac502259ad0.pngfe6f0f4c-2af9-11ed-9ade-dac502259ad0.pngfe2b3b64-2af9-11ed-9ade-dac502259ad0.png

> 其中前兩幀為點對點的多幀,分別是節點2往1發,1往2發;后兩個是廣播,分別是地址2的廣播和地址1的廣播。以第一幀為例,他的DLC=35個字節,這意味著這個信號可以在這35乘以8,也就是280個位置里面任意排布。那么報文中的sgn1~4就是模擬了這種情況。如果希望發送這些報文,我們可以直接使用發送窗口,我們打開CAN Transmit窗口,點擊左上角的來自數據庫的按鈕,選擇剛才看到的四幀報文,然后再將視圖切換成J1939,這樣協議相關的信息就一覽無余了。

fde64bf8-2af9-11ed-9ade-dac502259ad0.pngfed61642-2af9-11ed-9ade-dac502259ad0.pngfe2b3b64-2af9-11ed-9ade-dac502259ad0.png

前兩個是點對點,后兩個是廣播,可以從目的地址看出來,對于廣播報文來講,發送節點只要自顧自的發送就可以了。而對于前兩個點對點的發送過程,不但需要發送節點,還需要接收節點在過程中進行應答,才能完成整個發送過程。所以我們還需要激活TSMaster內置的J1939的仿真節點。

> 接下來我們來到仿真,J1939的仿真配置對話框里面,可以看到節點1和2,分別被標注為Node1和Node2,所有的節點都勾選了仿真發送功能,但是仿真接收功能默認是沒有勾選的。我們可以通過激活rbs的方法來自動激活這兩個接收的功能,同時呢也可以手動勾上,在此我們就手動勾選,并且點擊應用設置來關閉對話框。

fde64bf8-2af9-11ed-9ade-dac502259ad0.pngff302e70-2af9-11ed-9ade-dac502259ad0.pngfe2b3b64-2af9-11ed-9ade-dac502259ad0.png

> 這個時候就可以啟動仿真了,我們按下F5,然后打開trace窗口,隨后呢我們激活這4個節點的這4個報文的發送,就依次點擊發送就可以了。于是在右側的trace窗口中間就可以看到這4個多幀報文的接收情況。他們的DLC分別是右邊的35,36,13和33,然后右邊顯示的就是他們的默認的數據段默認都是0。

fde64bf8-2af9-11ed-9ade-dac502259ad0.pngff9635ee-2af9-11ed-9ade-dac502259ad0.pngfe2b3b64-2af9-11ed-9ade-dac502259ad0.png

>我們當然可以修改他們的數據字節來任意的修改他們的數據,那這里就可以看到這是我們剛才修改的結果,我們當然還可以通過信號生成器的方式來改,比如說我們選中第一幀報文,在這個sgn1 a2上面選擇正弦,然后點擊配置,我們可以把峰值改的稍微大一點,然后點擊應用、點擊啟動,這個時候就可以看到這個sgn1 a2就在發生變化。

fde64bf8-2af9-11ed-9ade-dac502259ad0.pngfff0efc0-2af9-11ed-9ade-dac502259ad0.pngfe2b3b64-2af9-11ed-9ade-dac502259ad0.png

> 接下來可以打開圖形窗口,將這個信號拖進來,就可以看到正弦波,當然這個正弦波的頻率比較低,這是因為它是多幀,它發一幀需要200毫秒,所以一秒只有5個點,我們還可以通過其他的窗口來進行觀察,比如說數值顯示。

fde64bf8-2af9-11ed-9ade-dac502259ad0.png00498662-2afa-11ed-9ade-dac502259ad0.pngfe2b3b64-2af9-11ed-9ade-dac502259ad0.png

> 最后我們打開數值顯示,點擊這里的添加按鈕,可以選擇我們的信號,當然我們也可以通過拖動的方式將信號拖進去,之后可以調整窗口的大小,使得信號值可以在上面顯示。我們還可以通過面板的方式添加,當然面板需要設計,所以首先需要停止仿真,停止仿真之后我們可以將信號拖入面板,再啟動仿真,然后再啟動報文的發送,這樣就可以看到這些信號都可以在測量窗口里面正確的顯示。

J1939一系列API函數

J1939 A series of API functions/

J1939有一套API的函數,通過這一套API就可以實現J1939的信號讀寫、報文發送等等一系列功能。

> 我們打開一個自動化模塊,然后選中入口點,按回車增加一系列的動作。我們選第一個動作,然后設置他為API函數調用,在過濾器里面敲入1939,就可以看到1939的一系列API。這其中有1939的標識符的get和set方法以及下面的多幀報文的發送方法。關于標識符的get和set方法在此就不展開描述,大家完全可以查看c代碼編輯器里面的小程序的幫助文檔,里面有詳細的介紹,在右側也可以看到示例代碼。那么這次我們著重介紹一下1939的多幀發送的API。

fde64bf8-2af9-11ed-9ade-dac502259ad0.png00ae3922-2afa-11ed-9ade-dac502259ad0.pngfe2b3b64-2af9-11ed-9ade-dac502259ad0.png

> 首先我們可以選中1939異步發送API,那么發送分為同步和異步兩種,同步意味著發完之后程序才會往下走,異步則意味著只要將數據推入發送緩存,程序就可以繼續往下,那么不管是同步還是異步,還分了兩種類型。一種是不帶字符串的發送,一種是基于字符串的發送。那么基于字符串方式的發送,他的數據是以逗號來進行分隔,那么這兩種方式自動化模塊都是支持的。因為在自動化模塊里面,數組均以逗號分隔的字符串表達,那么我們可以選擇一個異步發送,函數就可以看到這個函數有7個輸入的參數。

fde64bf8-2af9-11ed-9ade-dac502259ad0.png0112fd44-2afa-11ed-9ade-dac502259ad0.pngfe2b3b64-2af9-11ed-9ade-dac502259ad0.png

>那么第一個參數是通道號,我們可以選擇常量,比如說,channel1然后PGN,在此我們就可以輸入。比如說我們可以選廣播,就是剛才看到的OxFF01,然后優先級是6,默認源地址是2,目的地址是1,然后PDU的數據我們可以隨意填寫。比如說Ox11,然后我們可以將這個復制多份,密貼多份,這里長度是可以很長。他的實際長度是被最后一個參數限制,那么在此我們可以保持跟dbc的一致,也就是35,然后我們就可以啟動,按F9啟動發送或者點擊發送按鈕,那么就可以發送成功。

fde64bf8-2af9-11ed-9ade-dac502259ad0.png01614b48-2afa-11ed-9ade-dac502259ad0.pngfe2b3b64-2af9-11ed-9ade-dac502259ad0.png

> 我們就可以看到trace窗口里面顯示的發送的信號內容跟我們的設置是一模一樣,最后如果說數據不夠,就會以0來補充。那么我們可以把數據填多一點,再啟動發送,這樣的話,數據長度就會正好達到我們的所需要的長度。

fde64bf8-2af9-11ed-9ade-dac502259ad0.png01ac4fbc-2afa-11ed-9ade-dac502259ad0.pngfe2b3b64-2af9-11ed-9ade-dac502259ad0.png

那這是原始報文的發送方法,倘若需要修改報文里面的信號的值,就需要rbs的仿真引擎來支持,那我們可以點擊CAN總線仿真窗口來模擬節點的行為,我們激活這兩個節點,然后將總線仿真設置為自動啟動,這個時候可以看到rbs已經在工作了,并且得到了我們通過發送窗口一樣的結果。

> 當然發送窗口這個時候是不應該啟動發送,回到自動化模塊里面,刪除我們的原始的報文發送的動作,設置一個新的動作衍生函數調用,在此我們搜索set Signal by address,通過這個函數就可以實現rbs里面信號的任意修改。那這里有兩個參數,分別是信號地址和值,那么信號地址就是我們所需要發送的信號的數據庫地址,我們可以隨便選一個比如說A_Node1 signal 1_a1,我們可以點擊復制數據庫地址,然后到這里粘貼即可,然后他的值我們可以隨意修改,然后我們可以點擊啟動,那么這樣就實現了這個信號的修改,可以看到A_Node1里面的這個信號已經變成1111,就是我們所設置的值,那么這就是信號的發送。

fde64bf8-2af9-11ed-9ade-dac502259ad0.png0200123c-2afa-11ed-9ade-dac502259ad0.pngfe2b3b64-2af9-11ed-9ade-dac502259ad0.png

如果是希望接收一個信號的值,該怎么做呢?

我們可以用到signal server的方法:還是來到函數調用,刪除我們剛才的發送,然后再多加幾個動作。我們首先將它改為函數調用,然后輸入SGN SRV,這就是signal server的系列函數。

> 那這里需要一個流程,首先需要注冊我們關心的信號,需要用到register_can_signal_by_message ID或者是name,我們在這里選擇message ID,那么我們就需要到rbs里面去copy這個報文的ID,copy過來的時候需要把后面的x刪掉,讓這個字符串是一個有效的16進制值,通道還是可以用之前的通道1,然后信號名稱就是我們關心的信號。

fde64bf8-2af9-11ed-9ade-dac502259ad0.png02552524-2afa-11ed-9ade-dac502259ad0.pngfe2b3b64-2af9-11ed-9ade-dac502259ad0.png

> 比如說sgn1_a1,我們自己直接輸入sgn1_a1,client ID是這個函數注冊成功之后給到我們程序的一個handle,我們可以新建個變量來存儲它,就命名ID就行。這個時候直接已經可以點擊本地變量關聯我們的ID,然后我們可以等一會再讀取信號的值,那這個時候可以調用wait函數,比如說等個3秒,然后接下去就是一個讀取過程,同樣用到了Signal server sgnsrv get_can_signal物理值。最后通過這個方法去取得,得到的信號的物理值,那么在這里可以同樣選擇channel1 client ID就填我們剛才所得到的變量ID,然后這里就是輸出的值,我們同樣可以用一個變量來裝,這里需要添加的就是個double型的變量,value寫個v就行,然后在這個地方選擇v,然后同時還會返回最后的時間戳,如果不需要的話,我們這里默認填個0就行或者不填。

fde64bf8-2af9-11ed-9ade-dac502259ad0.png02afb2aa-2afa-11ed-9ade-dac502259ad0.pngfe2b3b64-2af9-11ed-9ade-dac502259ad0.png

> 然后這個時候我們可以將我們讀到的值打印出來,這時候就需要用到log函數字符串,我們可以寫我們的變量v的值作為字符串,那么log level,可以用一種顏色,比如說綠色,然后我們點擊啟動,這個時候首先獲取ID等待,然后最后獲取值結束,那么我們會看一下每一步驟的運行結果。在這里都有反饋,這里是實際傳入的參數值,wait然后讀到的參數值然后我們可以看一下打印出來值就是111,就是我們之前設定的值,那么我們完全可以改一下這個值,比如說改成12345,這個值最大就是2047,我們就設它為2047,這個時候我們只要再啟動一下程序,我們打開log,就可以看到我們獲取的值跟我們設定值是一樣。這就是1939系列API的用法。

fde64bf8-2af9-11ed-9ade-dac502259ad0.png02f8562c-2afa-11ed-9ade-dac502259ad0.pngfe2b3b64-2af9-11ed-9ade-dac502259ad0.png

以上就是我們本期介紹的TSMaster新功能之J1939多幀報文的收發,我們下期再見?。ň唧w操作解說可以觀看我們B站視頻哦)

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 汽車
    +關注

    關注

    15

    文章

    3856

    瀏覽量

    39532
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    從手寫代碼到AUTOSAR工具鏈:J1939Tp應用篇

    J1939Tp是我學習AUTOSAR CP諸多BSW模塊的起點,其分層架構完美體現了AUTOSAR規范的精髓,掌握J1939Tp有助于深入理解通信(COM)相關模塊的程序執行過程。
    的頭像 發表于 07-10 16:37 ?952次閱讀
    從手寫代碼到AUTOSAR工具鏈:<b class='flag-5'>J1939</b>Tp應用篇

    盟通方案|如何集成J1939協議

    SAEJ1939是美國汽車工程師協會開發的商用車行業標準通信協議,基于CAN總線技術構建,專為重型車輛(卡車、客車)及工業設備設計,實現ECU間實時數據交換與控制。J1939采用CAN29位擴展
    的頭像 發表于 06-13 11:35 ?258次閱讀
    盟通方案|如何集成<b class='flag-5'>J1939</b>協議

    STM32已經用標準庫寫好的代碼,怎么導入RT THREAD?

    之前已經在裸機上實現了SAE J1939協議,因為要添加IOT 功能,現在想添加RT THREAD.因為之前寫裸機程序的時候用的是標準庫。而RT THREAD STUDIO自動生成的是HAL庫,請問有什么好方法在我原來的代碼上添
    發表于 05-27 06:01

    軟件更新 | TSMaster 202504 版本已上線!三大功能讓車載測試更智能

    車載測試的智能化時代正在加速到來!TSMaster202504版本正式發布,本次更新聚焦以太網通信與數據高效處理,帶來三大核心功能升級—以太網報文信息過濾、XCPonEthernet支
    的頭像 發表于 05-23 20:05 ?327次閱讀
    軟件更新 | <b class='flag-5'>TSMaster</b> 202504 版本已上線!三大<b class='flag-5'>功能</b>讓車載測試更智能

    軟件更新 | 以太網通信仿真功能已上線!TSMaster 202503 版本更新速覽

    。立即升級TSMaster202503最新版本,解鎖更強大的仿真功能吧!1.仿真模塊【以太網通信仿真】→【仿真】-【以太網通信仿真】更新功能:以太網通信仿真模塊模
    的頭像 發表于 04-12 20:03 ?450次閱讀
    軟件更新 | 以太網通信仿真<b class='flag-5'>功能</b>已上線!<b class='flag-5'>TSMaster</b> 202503 版本更新速覽

    干貨分享 | TSMaster用戶必看:以太網通信仿真用戶手冊

    TSMaster的以太網通信配置、報文收發、協議仿真及自動化測試技巧,助您快速上手并提升開發效率。本文關鍵詞:TSMaster,以太網通信仿真目錄Catalog1.符號說
    的頭像 發表于 03-28 20:04 ?327次閱讀
    干貨分享 | <b class='flag-5'>TSMaster</b>用戶必看:以太網通信仿真用戶手冊

    解鎖TSMaster fifo函數:報文讀取的高效方法

    前言:TSMaster目前有兩種讀取報文的模式:回調函數模式和fifo模式。fifo函數是TSMaster近期新增的函數,本文將重點介紹fifo模塊。關于回調函數的使用方法可以參考幫助模塊的《快速
    的頭像 發表于 03-14 20:04 ?459次閱讀
    解鎖<b class='flag-5'>TSMaster</b> fifo函數:<b class='flag-5'>報文</b>讀取的高效方法

    軟件更新 | 你期待的新功能來了!TSMaster 202502 新版本亮點搶先看!

    備受期待的TSMaster202502最新版終于來了!在本月更新中,我們為用戶帶來了超新功能,旨在進一步提升軟件的性能、靈活性與用戶體驗。接下來,我們將為您詳細介紹本次更新的亮點內容,幫助
    的頭像 發表于 03-07 20:03 ?605次閱讀
    軟件更新 | 你期待的<b class='flag-5'>新功能</b>來了!<b class='flag-5'>TSMaster</b> 202502 新版本亮點搶先看!

    Amazon Q Business新功能發布,助力企業提效

    近日,在備受矚目的2024年亞馬遜云科技re:Invent全球大會上,一款旨在提升企業內部工作效率的強大工具——Amazon Q Business,迎來了全新功能發布。 Amazon Q
    的頭像 發表于 12-24 10:42 ?497次閱讀

    帶您了解SIMULIA CST 電磁仿真軟件 2025新功能 微辰三維

    SIMULIA CST 2025新功能上線,帶您“零起手”電磁仿真.
    的頭像 發表于 12-19 22:13 ?1178次閱讀

    深入解析J1939-73:車輛診斷通信的標準與應用

    和設備之間的實時數據交換。J1939基于CAN(ControllerAreaNetwork)總線技術,使用29bit的擴展標識符和擴展數據,CAN通信速率為250K
    的頭像 發表于 12-11 10:01 ?1603次閱讀
    深入解析<b class='flag-5'>J1939</b>-73:車輛診斷通信的標準與應用

    SAE J1939中英文資料

    最全的J1939中英文協議資料
    發表于 11-26 15:06 ?2次下載

    同星設備間的時間戳同步機制TSync功能與使用

    隨著汽車網絡測試的通道數量不斷增加,時常需要多個同星設備同時連接在同一臺電腦的同一個TSMaster應用程序,并進行設備同時執行CAN報文收發和記錄等
    的頭像 發表于 10-12 08:05 ?3374次閱讀
    同星<b class='flag-5'>多</b>設備間的時間戳同步機制TSync<b class='flag-5'>功能</b>與使用

    干貨分享 | TSMaster軟件指南

    TSMaster是同星智能開發的一款國產汽車總線工具鏈軟件平臺,是全方位汽車總線設計、仿真、分析、診斷和標定的專業工具,支持從需求分析到系統實現的整個系統開發過程。TSMaster軟件可連接、配置并
    的頭像 發表于 09-15 08:08 ?3133次閱讀
    干貨分享 | <b class='flag-5'>TSMaster</b>軟件指南

    基于VB6.0 實現 CAN信號收發 Demo

    本文主要講的是,基于TSMaster實現TOSUN系列CAN/CANFD,LIN設備的操作。主要給大家介紹在TSMaster軟件里如何實現CAN信號
    的頭像 發表于 07-27 08:21 ?1341次閱讀
    基于VB6.0 <b class='flag-5'>實現</b> CAN信號<b class='flag-5'>收發</b> Demo