999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Python的汽車CAN總線報文格式轉換系統的設計與實現

2021-07-05 05:04:00劉淞銘馬洪彥王貴山佟新禹張成慶王家雁
汽車電器 2021年6期
關鍵詞:界面功能系統

劉淞銘,馬洪彥,王貴山,佟新禹,張成慶,王家雁

(東風汽車股份有限公司商品研發院,湖北 武漢 430000)

1 引言

近年來,汽車電子系統的功能越來越強大,其電子控制單元(Electronic control unit,ECU)越來越多,各ECU之間的信息交換主要依賴于車載網絡技術,而控制器局域網絡(Controller area network,CAN)總線作為車載網絡系統的重要組成部分,在汽車電子系統的網絡通信與控制中得到廣泛應用[1-2]。

在汽車行業中,CAN總線報文的分析貫穿于汽車電子系統開發的全過程,從前期的系統開發,到中期的系統標定,再到后期的系統維護,都依賴于CAN總線報文的分析,CAN總線報文是汽車開發、調試、維護過程中分析解決問題的“第一手數據”。然而,目前市面上的CAN總線報文采集與錄制工具種類繁多,不同工具錄制的報文格式往往不同,具體體現在報文文件類型不同或報文信息排列方式不同,因此,報文文件往往只能通過錄制報文時所采用的上位機工具或其同一公司的分析工具進行解析。在實際開發過程中,開發人員經常要解析不同公司錄制的報文,如主機廠解析供應商錄制的報文,如果沒有相應的報文解析工具,報文分析過程將會異常繁瑣甚至無法進行。

現目前,應用比較廣泛的CAN總線報文格式轉換工具為德國PEAK-System公司提供的PEAK-Converter軟件,此軟件實現了部分報文格式的轉換,但此軟件只支持目前國際上應用比較廣泛的報文格式,對于國內開發的CAN卡錄制的報文格式以及一些小眾的報文格式則無法提供很好的支持。一些國內的CAN卡廠家也開發了面向自家產品的報文格式轉換工具,但其一般只支持自家產品錄制報文的格式轉換,且大多并未得到廣泛的應用。綜上所述,現目前國內亟須開發一種低成本、通用性強、二次開發方便的CAN總線報文格式轉換系統。

本文旨在開發一種CAN總線報文格式轉換系統,實現CAN總線報文文件格式轉換的功能,進而解決汽車電子系統開發過程中因CAN總線報文文件格式的多樣性給報文分析帶來的諸多困難,提高開發效率。

2 系統架構

本系統面向的報文錄制軟件為目前現場應用比較廣泛的CAN Test和ECAN Tools軟件,具體包括5種格式的報文:由CAN Test錄制的*.txt格式報文、*.csv格式報文以及由ECAN Tools錄制的*.txt格式報文、*.csv格式報文、*.can格式報文。

本系統面向的報文分析軟件為德國Vector公司開發的CAN open environment(CANoe)軟件,即將上述5種格式的報文轉換為CANoe軟件能夠直接解析的*.asc格式報文。

本系統基于Python語言實現CAN總線報文格式轉換功能,從整體架構上分為3個層次:工具層、應用層和人機交互層,如圖1所示。

圖1 系統整體架構圖

工具層是一系列通用方法的集合,按原始報文錄制工具分類,定義了報文處理過程中的通用方法,供應用層中的報文類繼承。應用層是報文屬性與非通用方法的集合,按報文格式分類,分別定義了不同格式報文具有的不同屬性及處理不同格式報文過程中用到的個性方法,并繼承了工具層中定義的通用方法,負責實際的報文格式轉換過程。目標格式報文類定義了目標報文的屬性,并提供了生成及儲存目標格式報文的方法。同時,目標格式報文類提供了與原始報文類之間的通用化接口,只需在二次開發接口中添加相應的屬性和方法,便可實現系統的功能拓展。人機交互層提供了用戶的操作界面以及系統狀態的指示界面,是用戶與系統之間溝通的橋梁。

本系統主要由3個功能模塊組成,分別為:人機交互、數據處理、目標格式報文生成。系統整體流程如圖2所示。人機交互主要包括原始報文路徑的選擇、目標報文路徑的選擇、原始報文錄制工具的選擇、原始報文錄制格式的選擇、系統工作狀態的提示等,并實現將原始報文中包含的信息和數據傳遞給系統應用層的功能。數據處理包括數據的提取、Time轉換、Channel轉換、ID轉換、Dir轉換、Message轉換等,實現將原始報文中的信息和數據按一定的規則存儲在原始報文對象的屬性中,并通過通用化接口將這些屬性傳遞給目標格式報文對象。目標格式報文生成包括數據重組、數據寫入、目標格式報文文件生成等,實現將接收到的報文對象屬性按一定的規則重組為CANoe能夠直接解析的格式,并生成新的報文文件。

圖2 系統整體流程圖

3 系統功能

Python是一種面向對象的、交互式的、解釋型的計算機編程語言,具有實用性強、功能全面、性能高的特點,擁有豐富的標準庫和第三方庫[3]。本系統基于Python3平臺,通過面向對象開發方式進行軟件開發。

3.1 人機交互功能

本系統的人機交互功能基于Qt的Python庫——PySide2實現,PySide2提供了Python與Qt之間的接口,通過調用PySide2中的API,便可以快速完成GUI應用程序的創建。

系統主界面包括:原始報文路徑和目標報文路徑的選擇和顯示、原始報文錄制工具和格式的選擇、開始轉換按鈕。對于原始報文路徑和目標報文路徑的選擇和顯示,通過QPushButton類和QLineEdit類創建對象push_button_om(原始報文選擇按鈕)、line_edit_om(原始報文路徑顯示框)、push_button_tm(目標報文選擇按鈕)、line_edit_tm(目標報文路徑顯示框),通過QFileDialog類中的getOpenFileName方法和getSaveFileName方法實現文件的選擇和文件路徑的獲取,并將返回的文件路徑分別傳遞到UI界面的報文路徑顯示框和系統的應用層中。對于原始報文錄制工具和格式的選擇通過QComboBox類創建對象combo_box_tool(工具選擇框)和combo_box_format(格式選擇框),并通過currentText方法獲取用戶當前選項并傳遞到系統的應用層中。系統主界面效果如圖3a所示。

狀態提示界面包括轉換進度條界面和轉換完成提示界面。其中轉換進度條界面通過QProgressBar類創建進度條對象并調用相關方法來實現,轉換進度條界面和轉換完成提示界面如圖3b、圖3c所示。

圖3 人機交互界面效果展示

使用時,用戶分別在主窗口選擇“原始報文路徑”、“目標報文路徑”、“錄制工具”及“報文格式”后,點擊“轉換”按鈕,系統將開始報文格式轉換并彈出轉換進度條界面,提示用戶轉換進度,轉換完成后,系統將彈出轉換完成提示界面,提示用戶轉換完成。

3.2 數據處理功能

3.2.1 原始報文格式分析要實現信息提取的功能,首先要了解原始報文的記錄規則。本文以ECAN Tools軟件錄制的*.can格式報文為例進行分析,圖4是一段ECANTools_*.can格式的報文范例。

圖4 ECANTools_*.can報文范例

ECAN Tools軟件的用戶手冊中對*.can格式的報文進行了介紹,每條報文中包含的數據可以分為5組。第1組表示幀時間間隔,記錄格式為:s.ms.μs;第2組表示此條報文為標準幀還是擴展幀,標準幀為0,擴展幀為1;第3組表示此條報文為數據幀還是遠程幀,數據幀為0,遠程幀為1;第4組和第5組分別用于記錄幀ID和幀數據,具體如圖5所示。

圖5 ECANTools_*.can報文格式

3.2.2 模塊功能

數據處理功能是本系統的核心功能。此模塊的代碼主要包括通用方法類和原始報文類,通用方法類為原始報文類提供一系列方法,原始報文類則執行具體任務。數據處理功能的實現主要分為兩個部分:第1部分,系統分別將原始報文以參數的形式逐條傳遞給原始報文類,原始報文類分別為每條原始報文創建一個通用化報文對象,通用化報文對象調用原始報文類中的方法將原始報文中的信息提取出來并轉換為通用化的格式(符合目標格式報文類通用化接口規定的格式)存儲在對象的屬性中;第2部分,系統分別將通用化報文對象以參數形式逐條傳入目標格式報文類,提供給目標格式報文生成模塊使用。數據處理模塊的工作流程如圖6所示。

圖6 數據處理流程圖

3.3 目標格式報文生成功能

3.3.1 目標報文格式分析

CANoe軟件的說明文檔《CAN_LOG_TRIGGER_ASC_Format》中規定了*.asc格式報文的記錄方式。文件的開頭需要聲明報文記錄的開始時間、信息記錄方式和時間戳格式,文檔中規定信息記錄方式可以為十六進制(“base hex”)或十進制(“base dec”),時間戳可以為絕對時間戳(“timestamps absolute”)或相對時間戳(“timestamps relative”)。本文選用十六進制和絕對時間戳的記錄方式。

文檔中規定的報文記錄的內容包括:時間、通道序號、報文ID、報文傳輸方向、信息長度、信息、特殊消息標志,具體如圖7所示。

圖7 *.asc報文格式

報文文件以“End TriggerBlock”結束,因此,完成數據錄入后,需要在文件結尾輸入“End TriggerBlock”,表示記錄結束。

3.3.2 模塊功能

此模塊的功能主要包括數據重組、數據寫入、文件生成。系統將數據處理模塊創建的通用化報文對象以參數形式傳遞給目標格式報文類,目標格式報文類創建目標報文對象接收通用化報文對象中包含的數據,并按照規定的格式進行組合,組合完成后,系統將重組后的數據寫入文件中。本模塊的部分實現代碼請詳見附錄1。

3.4 多線程工作模式

上述功能如果均在系統主線程中執行,會導致本系統無法同時進行多個報文格式轉換任務,此外,在報文格式轉換任務進行的過程中,系統的主界面也將無法操作。為了進一步優化系統性能,實現多任務同時處理的功能,本系統采用多線程工作模式。

本功能通過Python3的標準庫threading實現。本系統的人機交互模塊在系統主線程中執行,系統中的數據處理模塊和目標格式報文生成模塊則封裝到子線程調用函數中,當用戶發起“轉換”指令后,系統將為此任務創建一個子線程,并在子線程中執行數據處理和目標格式報文生成的工作。系統會為每項“轉換”任務分別創建一個子線程,并在任務結束后關閉對應的子線程。

4 實驗測試

4.1 實驗搭建

本文中報文采集的硬件工具為:德國Vector公司的VN1630A和國產的CAN總線分析儀USBCAN-ⅡC,報文錄制的軟件工具為:CANoe 11.0 SP3、CAN Test 2.70、ECAN Tools 5.99,報文分析軟件工具為:CANoe 11.0 SP3。IDE環境為PyCharm。報文采集硬件工具如圖8所示,其中圖8a為VN1630A,圖8b為USBCAN-ⅡC。

圖8 報文采集硬件工具

4.2 實驗結果分析

將USBCAN-Ⅱ C與Vector VN1630A同時接入某新能源純電動汽車的同一路CAN總線中,分別通過CAN Test2.70、ECAN Tools 5.99軟件錄制CANTest_*.txt、CANTest_*.csv、 ECANTools_*.txt、ECANTools_*.csv、ECANTools_*.can格式的報文作為原始報文,通過CANoe 11.0 SP3軟件錄制*.asc格式的報文作為參照報文,分別通過本文中開發的系統將上述5種格式的原始報文轉換為*.asc格式,并將轉換完成后的報文與參照報文分別導入CANoe 11.0 SP3軟件中進行數據分析,由于汽車CAN總線報文中包含大量的信息,本文選取整車絕緣電阻值作為分析對象,具體分析結果如圖9所示,其中每組圖像上部分為參照報文的分析圖像,下部分為本系統轉換得到的報文的分析圖像,兩者在時間軸上的偏差為報文錄制開始時間不同步導致。

圖9 測試數據分析圖像

通過對以上5組數據的對比分析可知,本系統能夠將上述5種格式的報文轉換為*.asc格式的報文供CANoe軟件進行分析,本系統對CAN Test和ECAN Tools這兩款軟件錄制的報文均具有較好的兼容性,且轉換過程不會導致信息丟失或改變,符合設計要求。

5 結語

本文利用Python語言實現了一種汽車CAN總線報文格式轉換系統,本系統具有性價比高、通用性強的特點,并針對小眾報文格式提供了靈活的二次開發接口,增強了系統的兼容性,同時其多線程工作模式保證了系統的工作效率。經實驗測試,本系統能夠高效、準確地實現報文格式的轉換功能,給汽車電子電器工程師的開發工作提供便利。

附錄1

目標格式報文生成模塊部分代碼如下:

猜你喜歡
界面功能系統
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
國企黨委前置研究的“四個界面”
當代陜西(2020年13期)2020-08-24 08:22:02
基于FANUC PICTURE的虛擬軸坐標顯示界面開發方法研究
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關于非首都功能疏解的幾點思考
人機交互界面發展趨勢研究
手機界面中圖形符號的發展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
主站蜘蛛池模板: 99久久精品久久久久久婷婷| 亚洲精品片911| 国产亚洲精品97AA片在线播放| 国产精品第页| AV无码无在线观看免费| 日韩小视频在线观看| 久久中文字幕不卡一二区| 国产精品人莉莉成在线播放| 91免费国产高清观看| 国产免费福利网站| 国产91成人| 色网在线视频| 国产在线精品香蕉麻豆| 国产一区成人| 国产激情无码一区二区免费| 国产视频你懂得| av性天堂网| 国产精品视频导航| 欧美怡红院视频一区二区三区| 男人天堂伊人网| 毛片大全免费观看| 亚洲精品综合一二三区在线| 在线观看免费国产| 国产精品青青| 色综合中文| 欧美一级在线| 无码啪啪精品天堂浪潮av| 亚洲成A人V欧美综合| 欧美自拍另类欧美综合图区| 香蕉视频在线观看www| 97成人在线视频| 国产白浆视频| 精品无码国产自产野外拍在线| 精品自拍视频在线观看| 91在线一9|永久视频在线| 国产成人一级| 国产对白刺激真实精品91| 国产精品福利导航| 国产亚洲精品自在线| 在线观看国产精品日本不卡网| 国产最新无码专区在线| 国产精品精品视频| 亚洲第一黄色网| 国产精品性| 欧美亚洲国产精品第一页| 澳门av无码| 影音先锋亚洲无码| 婷婷丁香色| 中文字幕在线日韩91| 国产麻豆福利av在线播放| 色亚洲成人| 国产成人久久777777| 亚洲精品无码日韩国产不卡| 伊人91视频| 国产精品页| 国产亚洲高清视频| 无码粉嫩虎白一线天在线观看| 亚洲天堂精品视频| 久久久久国产精品熟女影院| 欧美国产成人在线| 久久国产乱子伦视频无卡顿| 欧美在线观看不卡| 国产成人综合在线视频| 国产午夜不卡| 久久免费视频6| 亚洲视频无码| 欧美人在线一区二区三区| 亚州AV秘 一区二区三区| 这里只有精品在线| 国内精品久久人妻无码大片高| 日韩天堂视频| 亚洲AV电影不卡在线观看| 一本久道久久综合多人 | 男女猛烈无遮挡午夜视频| 美女扒开下面流白浆在线试听| 国产第四页| 日本黄网在线观看| 97视频在线精品国自产拍| 亚洲 欧美 日韩综合一区| 中文字幕在线观看日本| 国产久操视频| 久久久成年黄色视频|