• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    電動汽車BMS測試系統(tǒng)的數(shù)據(jù)通信

    2014-12-12 03:50:38楊劉倩詹昌輝
    計算機與現(xiàn)代化 2014年2期
    關(guān)鍵詞:通信協(xié)議報文總線

    楊劉倩,詹昌輝

    (合肥國軒高科動力能源股份公司工程研究院,安徽 合肥 230011)

    0 引言

    電動汽車行業(yè)的發(fā)展,對各電動汽車組成部分性能要求不斷提升[1]。因此,開發(fā)了BMS(Battery Management System,電池管理系統(tǒng))測試系統(tǒng),對BMS信息的采集精度、數(shù)據(jù)傳輸速率、準確性進行測試分析。

    在BMS系統(tǒng)開發(fā)過程中,BMS測試系統(tǒng)對BMS的流程控制及其故障響應(yīng)進行驗證;BMS生產(chǎn)過程中,BMS測試系統(tǒng)對BMS進行進一步測試[2],保障系統(tǒng)功能完善;BMS售后階段,BMS測試系統(tǒng)可對BMS進行故障診斷和排查。

    目前,電動汽車領(lǐng)域多采用CAN總線實現(xiàn)各控制單元之間的通信[3]。BMS測試系統(tǒng)亦通過 CAN通信實現(xiàn)與BMS的信息交互,即可實現(xiàn)對BMS系統(tǒng)的測試、狀態(tài)監(jiān)控及數(shù)據(jù)分析等功能。

    1 CAN通信原理及通信協(xié)議

    1.1 CAN通信介紹

    CAN(Controller Area Network,控制局域網(wǎng)絡(luò))屬于現(xiàn)場總線的范疇,現(xiàn)場總線被譽為自動化領(lǐng)域的計算機局域網(wǎng)[4]。CAN為分布式控制系統(tǒng)實現(xiàn)各節(jié)點之間實時、可靠的數(shù)據(jù)通信提供了強有力的技術(shù)支持,應(yīng)用于工業(yè)自動化設(shè)備、船舶、醫(yī)療設(shè)備等領(lǐng)域。

    CAN總線是德國Bosch公司從20世紀80年代初為解決現(xiàn)代汽車中眾多的控制與測試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,它是一種多主總線,通信介質(zhì)可以是雙絞線、同軸電纜或光導纖維,通信速率可達1 Mbps。當信號傳輸距離達10 km時,CAN仍可提供高達50 kbps的數(shù)據(jù)傳輸速率[5]。CAN總線通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對通信數(shù)據(jù)的成幀處理。

    在CAN總線中有4種不同的幀類型[6]:

    (1)數(shù)據(jù)幀(Data Frame):數(shù)據(jù)幀帶有應(yīng)用數(shù)據(jù)。

    (2)遠程幀(Remote Frame):通過發(fā)送遠程幀可以向網(wǎng)絡(luò)請求數(shù)據(jù),啟動其他資源節(jié)點傳送它們各自的數(shù)據(jù)。遠程幀包含6個不同的位域:幀起始、仲裁域、控制域、CRC域、應(yīng)答域、幀結(jié)尾。仲裁域中的RTR位的隱極性表示為遠程幀。

    (3)錯誤幀(Error Frame):能夠報告每個節(jié)點的出錯,由2個不同的域組成。第一個域是不同站提供的錯誤標志的疊加,第二個域是錯誤界定符。

    (4)過載幀(Overload Frame):如果節(jié)點的接收尚未準備好就會傳送過載幀,由2個不同的域組成。第一個域是過載標志,第二個域是過載界定符。

    1.2 電池管理系統(tǒng)的CAN通信協(xié)議

    CAN協(xié)議是建立在OSI的7層開放互連參考模型基礎(chǔ)之上的。但CAN協(xié)議只定義了模型的最下面2層:數(shù)據(jù)鏈路層和物理層,僅保證了節(jié)點間無差錯的數(shù)據(jù)傳輸。CAN的應(yīng)用層協(xié)議必須由CAN用戶自行定義,或采用一些國際組織制訂的標準協(xié)議。

    BMS所采用的CAN通信協(xié)議中數(shù)據(jù)鏈路層的規(guī)定主要參考 CAN2.0B和 SAE J1939的相關(guān)規(guī)定。CAN擴展幀有29位標識符,可自行規(guī)定其含義,定義29位ID,如圖1所示。

    圖1 擴展幀ID定義

    (1)優(yōu)先級Priority為3位,可以有8個優(yōu)先級;保留位(Reserved)值一般固定為0;數(shù)據(jù)頁(Data Page)值現(xiàn)固定為0;8位的PDU Format為報文的代碼;8位的PDU Specific為目標地址或組擴展;8位的Source Address為發(fā)送此報文的源地址。

    (2)接入網(wǎng)絡(luò)的每一個節(jié)點都有名稱和地址,名稱用于識別節(jié)點的功能和進行地址仲裁,地址用于節(jié)點的數(shù)據(jù)通信;每個節(jié)點至少有一種功能,可能會有多個節(jié)點具有相同的功能,也可能一個節(jié)點具有多個功能。

    2 BMS測試系統(tǒng)的CAN通信結(jié)構(gòu)及原理

    2.1 測試系統(tǒng)與BMS的連接結(jié)構(gòu)

    BMS測試系統(tǒng)上位機與BMS的CAN通信硬件連接示意圖如圖2所示:BMS測試系統(tǒng)上位機應(yīng)用軟件以PC機為載體,在Windows XP操作系統(tǒng)下開發(fā)的應(yīng)用軟件生成的EXE文件運行在PC上[7],形成一個上位機結(jié)構(gòu),該上位機可進行CAN通信,上位機通過USB接口與CAN通信傳輸模塊連接,CAN通信傳輸模塊通過CAN_H、CAN_L連接電池管理系統(tǒng)的CAN通信接口。

    圖2 BMS測試系統(tǒng)與BMS的CAN通信連接示意圖

    2.2 測試系統(tǒng)與BMS的CAN通信實現(xiàn)原理

    測試系統(tǒng)應(yīng)用程序在電腦上運行,電腦USB接口連接CAN通信數(shù)據(jù)傳輸模塊,調(diào)用CAN通信的接口函數(shù)實現(xiàn)與下位機BMS的CAN通信連接,連接通信成功后,該應(yīng)用程序可實現(xiàn)CAN報文的發(fā)送及接收功能。CAN通信通過電平變化體現(xiàn)傳輸內(nèi)容,CAN通信傳輸模塊將模擬信號轉(zhuǎn)化成數(shù)字信號傳遞給BMS測試系統(tǒng)應(yīng)用軟件,軟件接收信息后根據(jù)CAN通信協(xié)議解讀、處理,用曲線圖、圖像、數(shù)字的形式將數(shù)據(jù)信息體現(xiàn)出來。

    3 BMS測試系統(tǒng)的軟件流程及CAN通信實現(xiàn)

    采用Borland公司開發(fā)的Delphi7作為BMS測試系統(tǒng)應(yīng)用軟件開發(fā)工具,完成軟件界面設(shè)計與底層驅(qū)動的設(shè)計[8],添加兼容CAN通信傳輸模塊的CAN接口函數(shù)庫,設(shè)計并開發(fā)具有CAN通信報文收發(fā)功能、解讀CAN通信協(xié)議并對通信數(shù)據(jù)進行處理分析功能的應(yīng)用軟件[9]。一方面,該應(yīng)用軟件將CAN報文信息轉(zhuǎn)化成直觀信息數(shù)據(jù)或圖表在軟件界面上顯示,為單片機系統(tǒng)調(diào)試、測試工作提供便捷的途徑。另一方面,BMS測試系統(tǒng)的上位機應(yīng)用軟件可發(fā)送請求幀報文,BMS接收到請求報文后回復所請求的數(shù)據(jù)或狀態(tài)信息,實現(xiàn)信息交互。

    3.1 通信流程的實現(xiàn)

    首先設(shè)置好通信參數(shù),根據(jù)下位機控制器CAN總線實際通信需要,將CAN總線通信速率設(shè)定為250 kbps。將通信連接請求通過CAN數(shù)據(jù)傳輸模塊傳輸至BMS,通信連接成功后,向BMS發(fā)送相關(guān)測試信息請求報文或者直接接收來自BMS的廣播信息報文,然后BMS測試系統(tǒng)應(yīng)用程序?qū)AN報文接收緩存中的報文進行分析處理,將數(shù)據(jù)或狀態(tài)信息顯示或存儲;對BMS系統(tǒng)信息進行實時監(jiān)測時,CAN通信是個循環(huán)過程,將循環(huán)發(fā)送請求或接收廣播報文,當監(jiān)測結(jié)束條件達到,退出該循環(huán)。最后完成BMS系統(tǒng)測試操作后關(guān)閉CAN通信連接[10]。詳細流程如圖3所示。

    圖3 CAN通信實現(xiàn)流程

    3.2 CAN通信主要流程及示例程序

    3.2.1 設(shè)定CAN通信傳輸參數(shù),建立CAN通信連接

    CAN通信硬件連接如圖2所示,采用CAN通信數(shù)據(jù)傳輸模塊連接BMS測試系統(tǒng)和BMS,CAN通信協(xié)議采用SAE J1939,建立BMS測試系統(tǒng)工程,首先設(shè)計圖4所示窗體及底層驅(qū)動[11-12],用來輸入?yún)?shù),建立通信連接。定義CAN通信時所需用到的結(jié)構(gòu)體及函數(shù)體,在Delphi7建立的應(yīng)用軟件工程中調(diào)用該相關(guān)函數(shù)來實現(xiàn)串口通信。

    圖4 BMS測試系統(tǒng)中CAN通信連接窗體

    CAN通信數(shù)據(jù)模塊通信連接結(jié)構(gòu)體定義如下:

    本文的CAN通信連接實現(xiàn)調(diào)用了CAN數(shù)據(jù)傳輸模塊的接口函數(shù)庫中函數(shù)FD_StartCAN,如:

    function FD_StartCAN(DevType:dword;DevIndex:dword;CANindex:dword):dword;stdcall;

    3.2.2 發(fā)送遠程幀請求信息報文

    (1)在Delphi工程中定義一個幀結(jié)構(gòu)體,用來傳輸CAN信息幀,如:

    (2)定義一個過程arrary,用來初始化即將要發(fā)送的幀結(jié)構(gòu)體,它的形參只有報文的ID,其他信息都賦給默認值。這樣,在需要通過讀取某一個報文信息時,只需傳遞相應(yīng)的ID,發(fā)送一個遠程幀,請求相應(yīng)的報文信息,如:

    (3)調(diào)用函數(shù)FD_Transmit:

    Function FD_Transmit(DevType:dword;DevIndex:dword;CANindex:dword;psend:pVCI_CAN_OBJ;len:integer):integer;stdcall;

    DevType是設(shè)備類型,DevIndex是設(shè)備索引號,CANindex表示第幾路CAN,psend是要發(fā)送數(shù)據(jù)幀數(shù)組的首指針,len是要發(fā)送的數(shù)據(jù)幀數(shù)組的長度。

    3.2.3 接收數(shù)據(jù)幀報文

    調(diào)用函數(shù)FD_Receive接收單片機控制器發(fā)過來的信息報文:

    function FD_Receive(DevType:dword;DevIndex:dword;CANindex:dword;preceive:pVCI_CAN_OBJ;len:integer;wait-time:integer):integer;stdcall;

    DevType是設(shè)備類型,DevIndex是設(shè)備索引號,CANindex表示第幾路CAN,preceive是要接收的數(shù)據(jù)幀數(shù)組的首指針,len是要發(fā)送的數(shù)據(jù)幀數(shù)組的長度,waittime是等待時間。

    另外,需定義一個動態(tài)數(shù)組list,將接收到的數(shù)據(jù)放到動態(tài)數(shù)組里。

    3.2.4 對接收到報文信息分析處理

    在實際工程中,上位機應(yīng)用軟件通過CAN數(shù)據(jù)模塊對接收的報文信息分析處理后顯示在界面上,或?qū)⑿畔⒋鏅n。

    (1)接收的一條數(shù)據(jù)幀報文信息存入數(shù)組list中,每個數(shù)據(jù)幀可傳輸8字節(jié)數(shù)據(jù),list[0]用來存放報文的 ID,list[1]至 list[8]存放數(shù)據(jù)內(nèi)容。通過判斷l(xiāng)ist[0]的內(nèi)容,對應(yīng)通信協(xié)議分辨出該報文用來傳輸?shù)臄?shù)據(jù)代表信息內(nèi)容。

    (2)對數(shù)組中數(shù)據(jù)進行轉(zhuǎn)換,得到具體參數(shù)值或系統(tǒng)狀態(tài)。

    (3)通過顯示控件在軟件界面上顯示出BMS的信息參數(shù)或狀態(tài)。

    3.3 CAN通信數(shù)據(jù)實時數(shù)據(jù)處理

    (1)通信數(shù)據(jù)存儲和讀出。

    利用控件OpenDialog和SaveDialog實現(xiàn)文件打開、保存功能,對應(yīng)用軟件底層驅(qū)動代碼編寫實現(xiàn)BMS測試系統(tǒng)讀取的通信信息的存儲和讀出[13]。保存信息操作代碼如下:

    (2)實時繪制參數(shù)動態(tài)曲線圖[14]。

    在窗體中加入控件chart及Timer,通過Timer控件設(shè)定定時間隔觸發(fā),每間隔500 ms更新數(shù)據(jù)繪制到chart。以時間為橫軸,參數(shù)值為縱坐標。其中,坐標點繪制采用函數(shù)Addxy(X,Y)。

    通過CAN通信,上位機與下位機單片機控制系統(tǒng)進行信息交互,得到下位機中系統(tǒng)參數(shù)后,立即對實時數(shù)據(jù)進行直觀顯示,并體現(xiàn)出數(shù)據(jù)變化趨勢,因此選用chart控件繪圖。

    4 實驗結(jié)果與分析

    BMS測試系統(tǒng)可監(jiān)控BMS各種數(shù)據(jù)信息,觀測BMS是否正常運行,如監(jiān)控電池組總電壓及電池組總電流數(shù)據(jù)信息。BMS測試系統(tǒng)以讀取的總電壓或總電流數(shù)值為縱坐標,間隔500 ms繪制一個坐標點。隨著監(jiān)控時間、電壓值及電流值的變化,曲線動態(tài)地變化,如圖5所示。

    圖5 CAN通信實時數(shù)據(jù)曲線圖

    監(jiān)控信息用來分析BMS運行狀態(tài),為系統(tǒng)反饋提供依據(jù)。圖5(b)中電池組電流值為負,相應(yīng)圖5(a)中電池組電壓值處于增大趨勢,表示BMS處于充電控制狀態(tài),BMS測試系統(tǒng)給出電池組充電狀態(tài)的指示。

    5 結(jié)束語

    本文描述用Delphi7開發(fā)設(shè)計BMS測試系統(tǒng)上位機應(yīng)用軟件,實現(xiàn)與電動汽車的BMS系統(tǒng)的CAN通信的功能,通過CAN通信完成對BMS的測試、監(jiān)控,并對參數(shù)及狀態(tài)做出分析、信息存儲等。這一功能的實現(xiàn),為工控生產(chǎn)、售后服務(wù)提供一個跳過通信協(xié)議分析過程的智能測試、監(jiān)控的工具。另外,本BMS測試系統(tǒng)上位機應(yīng)用軟件界面友好,易操作,可移植,具有很好的實用性。

    [1] 袁方偉,陳思忠.電動汽車電池管理系統(tǒng)的研究[J].汽車研究與開發(fā),2003(3):41-44.

    [2] 張美云,潘玲.國內(nèi)外電動汽車的發(fā)展概況和趨勢[J].廣西機械,1997(3):19-22,13.

    [3] 曾光群.基于無線通信技術(shù)的鋰電池監(jiān)測系統(tǒng)的設(shè)計與仿真研究[D].重慶:重慶大學,2007.

    [4] 吳慧英.基于CAN總線的工業(yè)測控系統(tǒng)的應(yīng)用研究[D].北京:北京航空航天大學,1996.

    [5] 羅峰,孫澤昌.汽車CAN總線系統(tǒng)原理、設(shè)計與應(yīng)用[M].北京:電子工業(yè)出版社,2010:31-35.

    [6] 鄔寬明.CAN總線原理和應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學出版社,1996:20-23.

    [7] 黃芳.Delphi7存取配置文件實現(xiàn)與SQL Sever數(shù)據(jù)庫連接[J].電腦編程技巧與維護,2012(10):44-45,77.

    [8] 趙晨,吳錘紅.Delphi高級通信調(diào)試助手軟件的設(shè)計[J].福建農(nóng)機,2007(3):33-39.

    [9] 孔令彬,葉敦范,付闖.微機控制蓄電池監(jiān)測系統(tǒng)[J].微電子技術(shù),2001,29(6):35-38.

    [10]張敬華.Delphi5開發(fā)與應(yīng)用[M].北京:北京航空航天大學出版社,2000.

    [11]徐謖,張雷,徐立,等.Delphi應(yīng)用與開發(fā)案例教程[M].北京:清華大學出版社,2005:57-67.

    [12]明日科技,梁水,李方超,等.Delphi開發(fā)技術(shù)大全[M].北京:人民郵電出版社,2007:539-545.

    [13][美]Marco Cantu,等.Delphi7從入門到精通[M].羅征,等譯.北京:電子工業(yè)出版社,2003:39-63.

    [14]高德欣,尚繼良,王景景,等.Delphi編程中的串口通訊技術(shù)[J].青島科技大學學報:自然科學版,2003,24(z1):125-127.

    猜你喜歡
    通信協(xié)議報文總線
    基于J1939 協(xié)議多包報文的時序研究及應(yīng)用
    汽車電器(2022年9期)2022-11-07 02:16:24
    CTCS-2級報文數(shù)據(jù)管理需求分析和實現(xiàn)
    淺析反駁類報文要點
    中國外匯(2019年11期)2019-08-27 02:06:30
    基于PCI Express總線的xHC與FPGA的直接通信
    機載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計
    基于Z-Stack通信協(xié)議棧的紅外地溫采集電路設(shè)計
    ATS與列車通信報文分析
    基于DMX512通信協(xié)議的多路轉(zhuǎn)發(fā)器設(shè)計與研究
    基于NS-3的PLC多頻通信協(xié)議仿真平臺設(shè)計與實現(xiàn)
    電測與儀表(2016年2期)2016-04-12 00:24:52
    多通道ARINC429總線檢查儀
    东台市| 宝应县| 泰和县| 连江县| 海城市| 平凉市| 平度市| 隆尧县| 海伦市| 泰顺县| 广饶县| 盐边县| 柏乡县| 陇西县| 吴江市| 云安县| 合山市| 云阳县| 抚宁县| 宁安市| 惠来县| 竹溪县| 元江| 西吉县| 汉寿县| 泰和县| 栾城县| 江油市| 永德县| 佛教| 焉耆| 巴南区| 五指山市| 旺苍县| 莱阳市| 高台县| 栾城县| 兴义市| 都昌县| 焦作市| 浮梁县|