色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

在LabVIEW開發平臺上構建J1939協議CAN通信平臺

電子設計 ? 作者:電子設計 ? 2018-11-16 11:25 ? 次閱讀

引言

隨著近年來電動汽車行業如火如荼的發展,電動汽車技術相關的各種標準也相繼推出,其中包括了《電動汽車非車載傳導式充電機與電池管理系統之間的通信協議》(GB/T 27930-2011)。該協議是基于CAN應用層協議SAE J1939,J1939 是目前在國內汽車行業中應用廣泛的CAN總線應用層協議。只有電池管理系統與充電機之間的正常數據交互才能保證電動汽車進行高效、安全的充電。因此,電池管理系統與充電機通信協議測試是電池管理系統測試的一個必不可少的項目。

本課題于北方車輛研究所電池管理系統測試平臺項目。美國國家儀器NI PXI CAN采集卡以及LabVIEW模擬充電機與BMS通信提供了良好的軟硬件環境。

LabVIEW是美國國家儀器推出的一種程序開發環境,圖形化語言使其與其他的代碼類型語言相比之下更為方便直觀。以計算機作為運行環境的LabVIEW,充分利用了計算機無可比擬的硬件優勢,具有強大的數據處理能力。開發者可以很容易實現多線程編程,極大降低了軟件開發的難度。LabVIEW的前面板提供了豐富的類似傳統儀器的控件,開發者可以很方便的創建用戶界面。

本文重點在于如何用LabVIEW實現SAE J1939多幀傳輸機制,完成超過8 B 報文的接收重組、拆分發送。以及如何實時判斷通信過程出現的錯誤、指出錯誤類型、定位錯誤發生的階段。

1 SAE J1939 協議

J1939 協議是基于CAN 2.0B 制定的,協議對物理層、數據鏈路層、網路層以及應用層都進行了相關的規定。本文針對數據鏈路層的規定進行簡單介紹。

1.1 協議數據單元(PDU)

J1939 將CAN 2.0B 的29 位標識符ID 劃分為六部分,每部分都代表不同的含義,包括優先級(P)、保留位(R)、數據頁(DP)、PDU格式(PF)、特定PDU(PS)、源地址(SA),見表1.

在LabVIEW開發平臺上構建J1939協議CAN通信平臺

根據CAN 2.0 總線的仲裁機制,標識符值越小,CAN幀優先級越高,J1939把這一權利賦予了標識符最高三位(P)。R、DP通常為0.SA代表了該幀數據的發送節點的地址,CAN 網絡中每個設備都分配了惟一的SA.在介紹PF 與PS之前有必要先介紹下參數組編號(PGN)的概念。每個PGN代表著惟一的參數組(可以包含一個或多個參數),當參數組的數據域大于8 B時,需要遵循J1939的多幀傳輸機制。PGN 由R、DP、PF 以及PS 組成,見表2.從表2 中可以看出PDU2 格式報文沒有目標地址,此類報文只能發送給全局地址。由于PS作為PDU2 格式參數組編號的一部分,因此PDU2 比PDU1能定義更多的參數組編號。

在LabVIEW開發平臺上構建J1939協議CAN通信平臺

1.2 多幀傳輸機制

CAN 2.0B 數據域最多有8 B,而在J1939協議中當一個參數組編號(PGN)所對應的數據超過8 B時,規定了一種多幀傳輸機制,發送者按此機制拆分發送,接收者按此機制接收重組,因此一個參數組編號所對應的數據最多可以為1 785 B.點對點未發生錯誤的多幀傳輸機制如圖1 所示,J1939 對傳輸過程出現錯誤的情況也規定了相應的處理機制,在此不作介紹。

TP.CM_RTS、TP.CM_CTS、TP.DT、TP.EndofMsgACK均為J1939特定功能報文,其參數組編號也由J1939規定,因此這些參數組編號不能再被用戶定義。TP.CM_RTS為消息發送者發送的請求發送幀,由此開始建立多幀傳輸鏈接,其數據域包括了此次發送的消息全部字節數、全部數據包數(TP.DT 幀數)以及該消息的參數組編號等信息。接收者根據自己的接收能力,發送準備發送幀TP.CM_CTS,通知發送者下次可發送的數據包數、下一個要發送的數據包編號以及消息的參數組編號。發送者根據接收者的要求開始發送數據包TP.DT,數據包的數據域第一字節代表了該包號,因此一個數據包最多包含消息的7 B.

在LabVIEW開發平臺上構建J1939協議CAN通信平臺

這個過程循環進行,直至接收者接收到全部數據包后發送消息結束應答幀TP.EndofMsgACK代表著這次多幀傳輸的結束。若發送的消息是全局消息,則所有接收者不應有任何應答,整個傳輸過程如圖2所示。

在LabVIEW開發平臺上構建J1939協議CAN通信平臺

2 基于LabVIEW實現J1939 協議平臺

2.1 硬件接口

利用NI PXI-8513 CAN 接口板卡實現該系統的硬件接口。NI已為開發者提供了該板卡的底層驅動,可以很方便對CAN節點參數進行配置以及接收和發送符合CAN 2.0的消息幀,然而對于多幀傳輸機制還需開發者自行設計。由于J1939 協議涉及發送者與接收者的應答,因此在基于LabVIEW開發J1939同時也利用C語言開發基于飛思卡爾單片機的電池管理系統中使用的J1939 協議,兩者相輔相成,并且利用VECTOR CANoe軟件監視總線,以保證程序開發的順利進行。

2.2 軟件實現

利用LabVIEW多線程編程以及生產者消費者結構實現J1939協議。分別為未拆分的發送報文、已拆分發送報文、未重組的接收報文、已重組的接收報文建立隊列。創建已重組報文讀取線程,已重組報文出隊列用于應用層協議。創建接收報文處理線程,用于按多幀傳輸機制處理接收到的CAN 2.0數據幀,程序流程圖如圖3所示,經過目的地址過濾報文后,利用條件結構按照報文參數組編號進行分類處理,在計算參數組編號時要注意PDU1與PDU2格式的區別,主要分為以下幾種情況:

數據小于7 B的正常數據報文:直接入已處理接收報文隊列供應用層使用;請求發送幀TP.CM_RTS:由于兩個節點之間同一時間最多只能有一個發送和一個接收的多幀傳輸鏈接,若這時已有一個接收鏈接,則需要發送放棄鏈接幀TP.ABORT告知發送者,若無接收鏈接,創建新的接收狀態機并插入接收狀態機數組。接收狀態機為一個數據簇,包含了參數組編號、下一個接收數據包編號、數據包總數、當前已接收字節數、字節總數、以及已接收字節數組。之后應發送準備發送幀TP.CM_CTS 通知發送者發送數據包,同時應開始計時,若發送者響應時間超過規定時間,應發送放棄幀TP.ABORT;準備發送幀TP.CM_CTS:此報文為接收者對發送報文的應答,此次發送狀態機已建立,搜索相應狀態機,根據準備發送幀要求拆分數據創建數據包TP.DT;數據包TP.DT:搜索相應的接收狀態機并核對是否與目前狀態機相符,如果相符則對數據進行重組存入狀態機的接收字節數組,若不符則發送該參數組編號的放棄鏈接幀,最后判斷多幀傳輸是否結束,并根據是否為全局報文決定是否發送完成鏈接幀;完成鏈接幀TP.EndofMsgACK:表示相應的多幀發送鏈接已完成,刪除相應的發送狀態機。廣播公告消息TP.

CM_BAM:收到全局消息的請求鏈接幀,只需建立相應的接收狀態機,等待接收數據包,而不需要任何的應答。

在LabVIEW開發平臺上構建J1939協議CAN通信平臺

發送報文均先入未拆分發送報文隊列;創建未拆分發送報文處理線程,用于按多幀傳輸機制處理發送報文,程序流程圖如圖4所示,若發送報文數據超過8 B則需要通過多幀傳輸機制拆分發送。

在LabVIEW開發平臺上構建J1939協議CAN通信平臺

2.3 J1939平臺應用效果

定義電池管理系統BMS和LabVIEW的J1939協議地址分別為244和86.首先由BMS發送PGN為256的9 B報文給LabVIEW,CANoe監視到總線時序如圖5所示。

在LabVIEW開發平臺上構建J1939協議CAN通信平臺

由第一幀ID可以看出源地址為0xF4(244),目的地址為0×56(86),PGN為0xEC00,因此該幀為鏈接管理幀TP.CM,并且Data 域控制字節(第1 字節)為0×10,綜上該幀為BMS 發送給LabVIEW 的請求發送幀,并由Data域可以看出此次報文共有0×09字節(第2,3字節),數據包共有0×02 包(第4 字節),PGN 為0×0100(第6,7,8 字節)。同理第二幀為LabVIEW發送的準備發送幀,通知BMS 從第0×01 包(第3 字節)開始發送0×02(第2 字節)包數據包。待接收到BMS發送的兩幀TP.DT,LabVIEW發送TP.EndofMsgACK 代表此次多幀傳輸完成。Lab-VIEW接收重組后的數據如圖6所示。

在LabVIEW開發平臺上構建J1939協議CAN通信平臺

同理分析LabVIEW 作為發送節點的情況,總線時序圖如圖7所示,LabVIEW拆分前的發送數據如圖8所示。綜上分析,利用LabVIEW 開發平臺很好地實現了J1939協議。

在LabVIEW開發平臺上構建J1939協議CAN通信平臺

3 通信協議測試軟件的開發

通信協議將整個通信分為多個階段:充電握手階段、充電參數配置階段、充電階段、充電結束階段。每個通信階段均涉及充電機與BMS 的信息交互,每次信息交互均有超時限制。為了實現對通信協議進行測試,不僅要模擬充電機與BMS 進行通信,還要實時監測通信的狀態,判斷通信過程是否出錯并解析BMS 發送的信息。測試軟件主要測試通信階段出現的時序錯亂以及信息交互超時這兩種錯誤。

在已開發J1939協議基礎上進行測試軟件的開發,J1939協議提供了兩個接口:需要發送報文直接入未處理發送報文隊列、已處理接收報文出隊列供應用層使用。通信階段改變利用LabVIEW 狀態機結構來實現。

創建充電機接收狀態、充電機發送狀態兩個數據簇,記錄接收報文是否已被接收、發送報文是否已被發送以及發送的時間。利用單獨程序線程通過這兩個數據簇實時判斷是否有錯誤發生。

應用效果如圖9所示,為了試驗是否能準確測試出錯誤類型,有意將BMS 程序設置為不發送電池充電需求報文,測試軟件指示超時類型代碼為5,即電池充電需求報文超時,接收錯誤類型主要為通信順序出錯。通過對每個接收超時類型以及順序出錯類型進行測試,結果表明能很好地實現對通信協議進行測試。

在LabVIEW開發平臺上構建J1939協議CAN通信平臺

4 結語

在LabVIEW開發平臺上,利用其強大的數據處理能力以及豐富實用的程序結構實現了J1939協議,在此基礎上開發電動汽車非車載傳導式充電機與電池管理系統之間的通信協議測試軟件,不僅可以輔助BMS的程序開發,還可以作為BMS測試平臺的部分功能評價BMS合格與否。通過與BMS進行通信,并利用CANoe對總線進行監視,試驗結果表明該測試軟件可以實現J1939協議,能完成多幀傳輸機制,并且可以測試出通信協議中出現的通信流程錯亂以及通信超時錯誤,可以滿足要求。

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

    關注

    156

    文章

    12131

    瀏覽量

    231628
  • LabVIEW
    +關注

    關注

    1974

    文章

    3656

    瀏覽量

    324360
  • 電池
    +關注

    關注

    84

    文章

    10627

    瀏覽量

    130272
收藏 人收藏

    評論

    相關推薦

    基于J1939協議的組合儀表的設計與實現

    為基礎的能夠使汽車中各個電控單元間實現自由通信的網絡控制系統,并制定了J1939 協議。2CAN 總線及J1939
    發表于 05-17 11:45

    DSP28335實現J1939協議???

    請問DSP28335自帶CAN模塊能否用來實現J1939協議通信
    發表于 09-10 20:38

    CAN總線通訊平臺開發

    協議CAN 總線通訊技術方法,國內汽車行業PXI 測控裝置的應用屬于空白,難點是如何將LabVIEW 軟件開發
    發表于 04-08 09:42

    J1939基礎入門知識分享

    通信J1939描述了CAN總線的一種網絡應用,包括CAN網絡物理層定義、數據鏈路層定義、應用層定義、網絡層定義、故障診斷、和網絡管理。S
    發表于 04-11 07:00

    基于LabVIEWJ1939協議CAN總線通訊平臺構建

    最近在公司搭建J1939協議CAN通訊,查了資料,非常不錯,可以學習一下
    發表于 04-24 09:58

    基于J1939協議的組合儀表的設計與實現

    摘要:本文首先介紹了CAN 總線和J1939 協議,然后重點介紹了基于J1939 協議應用AT90CAN
    發表于 05-16 18:55 ?36次下載

    基于J1939的汽車CAN總線教學實驗系統

    針對J1939協議培訓要求,構建了一個基于J1939協議的汽車總線培訓實驗系統。系統硬件由計算機、Kvaser
    發表于 08-06 10:25 ?50次下載

    SAE J1939協議分析指南

    SAE J1939協議是由汽車工程協會(SAE)定義的,SAE J1939協議商用車輛、艦船、軌道機車、農業機械和大型發動機中是應用最廣泛
    發表于 03-13 13:50 ?189次下載

    基于SAE J1939協議的車輛網絡通信

    目前,車輛的ECU產品大都帶有SAE J1939 CAN接口。針對具有SAE J1939 CAN接口的ECU產品(如發動機、變速器及其緩速器和ABS等ECU),自定義若干ECU,集成實
    發表于 09-24 00:49 ?5748次閱讀
    基于SAE <b class='flag-5'>J1939</b><b class='flag-5'>協議</b>的車輛網絡<b class='flag-5'>通信</b>

    基于LabVIEWJ1939協議CAN總線通訊平臺開發

    基于J1939 協議的商用車CAN總線,針對單片機微控制器MCU 節點的MCU + CAN 控制器 + CAN 收發器的
    發表于 04-15 16:59 ?5319次閱讀
    基于<b class='flag-5'>LabVIEW</b>和<b class='flag-5'>J1939</b><b class='flag-5'>協議</b>的<b class='flag-5'>CAN</b>總線通訊<b class='flag-5'>平臺</b><b class='flag-5'>開發</b>

    CAN高層協議J1939的基礎和應用以及開發介紹

    CAN做為應用比較廣泛的通信總線,受到了越來越多的客戶喜歡和青睞,廣泛應用于工業和汽車,常見的高層協議有CANopen,J1939,DeviceNet等,
    的頭像 發表于 04-02 10:45 ?4808次閱讀
    <b class='flag-5'>CAN</b>高層<b class='flag-5'>協議</b><b class='flag-5'>J1939</b>的基礎和應用以及<b class='flag-5'>開發</b>介紹

    關于CAN的高層協議J1939的基礎和應用以及開發詳解

    CAN做為應用比較廣泛的通信總線,受到了越來越多的客戶喜歡和青睞,廣泛應用于工業和汽車,常見的高層協議有CANopen,J1939,DeviceNet等,
    的頭像 發表于 04-19 10:17 ?7094次閱讀
    關于<b class='flag-5'>CAN</b>的高層<b class='flag-5'>協議</b><b class='flag-5'>J1939</b>的基礎和應用以及<b class='flag-5'>開發</b>詳解

    J1939協議理解

    J1939協議基礎知識講解。
    發表于 05-06 15:34 ?13次下載

    基于恩智浦MPC5744P的SAE J1939協議開發

    摘要 本篇筆記主要記錄基于恩智浦MPC5744P的SAE J1939協議開發,接口設計,以之前總結的CAN驅動設計為基礎。 準備工作 準備一個CA
    的頭像 發表于 09-24 16:15 ?8228次閱讀
    基于恩智浦MPC5744P的SAE <b class='flag-5'>J1939</b><b class='flag-5'>協議</b>棧<b class='flag-5'>開發</b>

    SAE J1939協議解讀

    乘用車領域比較熟知的是CAN(FD)、LIN、FlexRay、Ethernet等通信協議,但對于J1939往往所知甚少。其實在CAN總線
    的頭像 發表于 11-09 08:25 ?2089次閱讀
    SAE <b class='flag-5'>J1939</b><b class='flag-5'>協議</b>解讀
    主站蜘蛛池模板: 边摸边吃奶边做下面视频| 欧美亚洲国产手机在线有码| 天天躁人人躁人人躁狂躁| 国产精品高清视亚洲一区二区| 久久高清免费视频| 台湾果冻传媒在线观看| 国产亚洲精品看片在线观看| 玉林天天论坛| 久久国产香蕉| JIZJIZJIZ 日本老师水多| 名女躁b久久天天躁| 在线视频网站www色| 国语自产一区视频| 在线亚洲黄色| 神马伦理不卡午夜电影| 精品欧美18videosex欧美| oldgrand欧洲老妇人| 人人听力网mp3下载| xxxxhd17欧美老师| 亚洲蜜桃AV色情精品成人| 男人插曲视频大全免费网站| beeg日本老师| 亚洲欧美高清在线精品一区| 欧美高跟镣铐bdsm视频| 国产人A片777777久久| 亚洲另类欧美综合在线| 女人精69xxxxx舒心| 国内精品视频在线播放一区| pkf女尸studiosxnxx| 亚洲视频免费| 美女张开让男生桶| jealousvue成熟40岁| 亚洲欧美高清在线| 三级叫床震大尺度视频| 国产婷婷综合在线视频中文| 99爱在线观看| 无套内射在线观看THEPORN| 乱奷XXXXXHD| 父亲在线日本综艺免费观看全集| 在线观看亚洲免费视频| 玄幻全黄h全肉后宫|