亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        純電動客車CAN通信上位機的設(shè)計與應(yīng)用

        2021-06-25 06:36:32戈小中童曉輝
        客車技術(shù)與研究 2021年3期
        關(guān)鍵詞:前面板字節(jié)中斷

        徐 希, 戈小中, 童曉輝, 劉 俊

        (東風(fēng)襄陽旅行車有限公司, 湖北 襄陽 441004)

        CAN總線是汽車領(lǐng)域目前應(yīng)用最廣泛的現(xiàn)場總線之一[1],也是純電動客車各電氣件最主要的通信方式。其通信協(xié)議是連接CAN報文與各電氣件物理參數(shù)的紐帶,一般由各車廠根據(jù)實際需求制定。人工直接解析CAN報文是一項費事又耗力的工作,而通過上位機軟件解析則極大程度上解決了此問題,提高了工作效率,縮短了工程時間?;诖?,本文采用一種根據(jù)CAN協(xié)議自動解析報文并保存數(shù)據(jù)的方法,為純電動客車開發(fā)上位機軟件[2-3]。

        1 上位機解析CAN報文的設(shè)計方法

        1.1 軟件程序的設(shè)計流程

        本上位機設(shè)計是基于Qt Creator 4.3.1的接口庫函數(shù)ControlCAN.lib和NI LabVIEW2018的接口庫函數(shù)ControlCAN.dll二次開發(fā)而成[4-5]。接口庫函數(shù)的基本處理流程如圖1所示,該處理流程的底層函數(shù)結(jié)構(gòu)如圖2所示。

        圖1 接口庫函數(shù)的基本處理流程圖

        圖2 處理流程的底層函數(shù)結(jié)構(gòu)

        軟件設(shè)計過程中的基本處理流程應(yīng)依次為打開設(shè)備→檢測有無設(shè)備打開信息異?!蹇站彌_區(qū)→復(fù)位CAN→讀取CAN緩沖區(qū)幀數(shù)→讀取CAN內(nèi)容→關(guān)閉設(shè)備[6]。在軟件系統(tǒng)內(nèi),根據(jù)接口庫函數(shù)二次開發(fā)的設(shè)計要求,結(jié)合純電動客車CAN總線數(shù)據(jù)量大的特點,為了盡可能不使上位機丟幀,程序內(nèi)部應(yīng)將讀取CAN報文程序[7]設(shè)為中斷程序,即當收到CAN報文后,程序立即響應(yīng)中斷,讀取CAN報文并呈遞給程序設(shè)定參數(shù),然后將報文解析出來,這樣才能最大幾率保證接收的CAN報文不丟失[8]。

        1.2 對報文自動解析的邏輯設(shè)計方法

        報文的自動解析過程是程序設(shè)計最重要的一環(huán)。根據(jù)CAN報文SAE J1939的規(guī)定[9],在純電動客車上,從CAN總線接收到的報文數(shù)據(jù)幀為8個字節(jié),分別記為BYTE1……BYTE7、BYTE8,該數(shù)據(jù)均為十六進制數(shù)。根據(jù)CAN通信協(xié)議[10],找到相應(yīng)ID的報文,然后由協(xié)議中的比例和偏置解析出相應(yīng)的物理數(shù)據(jù)。本上位機的數(shù)據(jù)解析設(shè)計使用以下幾種方式。

        1.2.1 對報文的直接處理

        協(xié)議規(guī)定,需要解析的字節(jié)BYTE。若比例為x、偏置為y,則解析出的結(jié)果z為

        z=BYTE×x+y

        (1)

        假設(shè)上位機收到BMS的報文[11]數(shù)據(jù)為{01,02,03,04,05,06,07,08},協(xié)議約定第2個字節(jié)為駕駛員制動踏板值,比例為0.4%,偏置為0,則當前駕駛員制動踏板值解析為

        (0x02)×0.4%+0=0.8%

        (2)

        1.2.2 高低字節(jié)并行處理

        某ID的報文BYTE2和BYTE1對應(yīng)電機控制器直流電壓的高字節(jié)與低字節(jié),且比例都為x、偏置為y,則在程序中電機控制器直流電壓解析的公式為

        z=(BYTE2×16×16+BYTE1)×x+y

        (3)

        假如此ID接收到的數(shù)據(jù)為{01,3F,03,04,05,06,07,08},協(xié)議約定BYTE1為低字節(jié),BYTE2為高字節(jié),比例為0.1 V/bit,偏置為-1 000 V,則電機控制器直流側(cè)電壓值通過十六進制轉(zhuǎn)換解析為

        (0x3F×16×16+0x01)×0.1-1 000=612.9 V

        (4)

        1.2.3 單個位判斷處理

        根據(jù)通信協(xié)議,對報文的解析并不都是對數(shù)據(jù)的處理,還有對報文某位的判斷。例如報文中某字節(jié)的某位為1代表純電動客車后艙門打開,為0代表后艙門關(guān)閉,則此時需要先采用布爾運算,然后再判斷。

        對某字節(jié)中單個位的判斷邏輯:將某字節(jié)與需要判斷的位為1、其他位為0的單字節(jié)數(shù)進行與運算。若與運算后的數(shù)據(jù)與該單字節(jié)數(shù)相同,則表示該位為1,反之為0。

        設(shè)某報文為{x1,x2,x3,x4,x5,x6,x7,x8},假設(shè)需要將報文BYTE8轉(zhuǎn)換為二進制數(shù)后的最高位(第7位)進行判斷。根據(jù)上段判斷規(guī)則,應(yīng)在程序設(shè)計中首先應(yīng)該將BYTE8與0x80(第7位為1的二進制 1 000 000 的十六進制)進行與運算,如果運算結(jié)果為0x80,則說明BYTE8最高位bit7為1;反之為0,偽代碼如式(5)所示:

        if((x8&0x80)==0x80)
        {BYTE8最高位為1;}
        else if((x8&0x80)==0x00)
        {BYTE8最高位為0;}

        (5)

        例如,某字節(jié)的BYTE3 bit0位代表車輛當前狀態(tài)為前進擋,1有效,0無效。若收到該幀報文為{01,02,03,04,05,06,07,08},首先應(yīng)將BYTE3與0x01作與運算,判斷bit0位,(0x03)&(0x01)=0x01,此時可以得出BYTE3的bit0為1,所以應(yīng)將車輛前進擋的狀態(tài)發(fā)送給上位機,偽代碼如式(6)所示:

        if((BYTE3&0x01)==0x01)
        {上位機顯示車輛為前進擋;}
        else if((BYTE3&0x01)==0x00)
        {上位機顯示車輛為非前進擋;}

        (6)

        綜上所述,對字節(jié)中單個位的判斷即與所對應(yīng)字節(jié)的位置1的字節(jié)數(shù)相與,當?shù)玫较嗤氖M制數(shù),即可說明當前位為1,反之為0,然后在程序中使用判斷語句達到相應(yīng)的效果。

        1.2.4 對多個位判斷處理

        多個位聯(lián)合判斷的處理方式與單個位處理方式類似,但多了對多位進行與運算的處理。

        例如某ID的BYTE5,bit7~4表示整車高壓電池電芯類型,0001表示磷酸鐵鋰電芯,0010表示錳酸鋰電芯,0011表示鈷酸鋰電池,1111表示其他。由于是對bit7~4位的邏輯判斷,則應(yīng)當對相應(yīng)位作邏輯與運算處理,偽代碼如式(7)所示:

        (7)

        2 上位機物理數(shù)據(jù)顯示的設(shè)計

        在CAN通信上位機中對數(shù)據(jù)邏輯解析后,再將數(shù)據(jù)顯示到前面板上同樣也是一項重要的工作[12]。工程應(yīng)用中,由于需要處理的CAN報文數(shù)據(jù)量巨大,純電動客車CAN總線在波特率為250 kbps的情況下,一般能達到200~600幀/s的數(shù)據(jù)量。因此,如果處理不好前面板顯示任務(wù),會由于數(shù)據(jù)量過大,造成數(shù)據(jù)擁堵、程序卡死、崩潰等情況。本上位機采用兩種方法處理物理數(shù)據(jù)的顯示,分別稱為中斷法顯示和多任務(wù)處理顯示。

        2.1 中斷法顯示物理數(shù)據(jù)

        中斷法[13]顯示的程序處理流程如圖3所示。當主程序處理其他程序接收到CAN報文觸發(fā)程序中斷后,在中斷中將會發(fā)生4個步驟,先將接收到的CAN報文提取出來,然后使用邏輯算法將報文自動解析成各物理值,最后將物理值傳遞給前面板,最終前面板將數(shù)據(jù)顯示在軟件界面上。

        圖3 中斷法處理流程示意圖

        中斷法顯示物理數(shù)據(jù)的優(yōu)點是能夠第一時間使接收到的CAN報文得到處理,不會因為其他原因而使數(shù)據(jù)的處理延遲,數(shù)據(jù)處理的實時性較高;缺點為對處理器的運算速度要求較高。若上位機需要導(dǎo)出EXCEL數(shù)據(jù),則可能會出現(xiàn)周期小的報文的物理數(shù)據(jù)量多于周期大的報文的物理數(shù)據(jù)量。因此,中斷法適用于需要實時顯示車輛狀態(tài)的上位機軟件,不適合需要導(dǎo)入物理數(shù)據(jù)到圖表類的數(shù)據(jù)顯示軟件。

        2.2 多任務(wù)法顯示物理數(shù)據(jù)

        多任務(wù)處理顯示的流程圖如圖4所示。主程序1處理初始化程序和其他類型程序,而CAN總線有報文發(fā)送后觸發(fā)中斷響應(yīng),中斷子程序接收CAN報文并自動解析出來,然后將各物理數(shù)據(jù)呈遞給全局變量;主程序2負責(zé)顯示全局變量,并呈遞給軟件前面板顯示。

        圖4 多任務(wù)處理流程示意圖

        多任務(wù)處理的優(yōu)點是能夠大大減少中斷程序處理數(shù)據(jù)的時間,主程序2按一定的周期循環(huán)執(zhí)行,從而使得顯示數(shù)據(jù)與自動解析報文分離,互不干擾,也大大保證了數(shù)據(jù)的穩(wěn)定性,尤其適合需要用EXCEL圖表類顯示數(shù)據(jù)的CAN上位機軟件;其缺點是顯示的數(shù)據(jù)有一定的延遲。由于接收到CAN報文后才能更新全局變量,因此,如果不觸發(fā)中斷,那么全局變量便得不到更新,有一定的延遲性。

        因此,在實際應(yīng)用中,如果需要將CAN報文物理數(shù)據(jù)呈遞給EXCEL顯示,則使用多任務(wù)處理顯示的方式;如果是需要實時顯示純電動客車各項參數(shù),更適合使用中斷法顯示。

        3 CAN上位機的應(yīng)用

        本上位機是根據(jù)某公司純電動城市客車整車CAN網(wǎng)絡(luò)通訊協(xié)議V3.1.2版本開發(fā)而成,主要用于通過整車CAN網(wǎng)絡(luò)讀取純電動城市客車的相關(guān)信息。由于是需要實時快速顯示整車各項狀態(tài),所以前面板采用中斷法顯示物理數(shù)據(jù),上位機截圖如圖5所示。

        圖5 CAN上位機截圖

        用于記錄數(shù)據(jù)的上位機,由于需要將數(shù)據(jù)呈遞給EXCEL,所以采用多任務(wù)處理模式,其上位機截圖如圖6所示。

        圖6 記錄數(shù)據(jù)的CAN上位機截圖

        上位機記錄數(shù)據(jù)有兩個任務(wù):一個是負責(zé)處理初始化程序和解析數(shù)據(jù);另一個是以周期為50 ms循環(huán)顯示全局變量。截取的EXCEL如圖7所示。

        圖7 導(dǎo)入到EXCEL中的物理數(shù)據(jù)示意

        可以看出,雖然各物理數(shù)據(jù)來自于不同周期的報文,但是依然能夠以每秒20幀的速度顯示出完整的數(shù)據(jù)表格。這是由于顯示程序是一個周期為50 ms的循環(huán)子程序,所以如果對應(yīng)物理值的全局變量沒有得到更新,那么下一時刻的EXCEL數(shù)據(jù)記錄將會繼續(xù)繼承上一時刻全局變量的數(shù)據(jù)。

        4 結(jié)束語

        本文介紹了一種可行性高的CAN上位機軟件制作方法,著重論述了將原始報文轉(zhuǎn)換成物理數(shù)據(jù)的處理方法。對于上位機前面板處理數(shù)據(jù)的顯示方式,可根據(jù)實際情況采用多任務(wù)法和中斷法兩種不同的處理方式。有針對性地處理,不僅能夠提高變成效率,而且還能使上位機運行穩(wěn)定。

        猜你喜歡
        前面板字節(jié)中斷
        No.8 字節(jié)跳動將推出獨立出口電商APP
        顏值高和散熱強可以并存3款高品質(zhì)機箱推薦
        電腦報(2021年21期)2021-08-19 17:22:40
        電競潮牌范 航嘉GX520S機箱評測
        電腦報(2019年29期)2019-09-10 07:22:44
        No.10 “字節(jié)跳動手機”要來了?
        簡談MC7字節(jié)碼
        跟蹤導(dǎo)練(二)(5)
        千里移防,衛(wèi)勤保障不中斷
        解放軍健康(2017年5期)2017-08-01 06:27:44
        剛撓印制板在機載設(shè)備電子機箱中的結(jié)合與應(yīng)用
        AT89C51與中斷有關(guān)的寄存器功能表解
        FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
        微處理機(2012年4期)2012-06-13 11:32:24
        综合久久一区二区三区| 国产精品va在线观看无码| 在线a免费观看| 国产精品一区成人亚洲| 蜜桃噜噜一区二区三区| 一本久道综合色婷婷五月| 永久免费av无码网站yy| 日本激情网址| 美女性色av一区二区三区| 日韩av无码中文字幕| 300部国产真实乱| 国产精品久久久一本精品| 性感的小蜜桃在线观看| 国产av无码专区亚洲版综合| 亚洲男人第一无码av网站| 亚洲va无码手机在线电影| 国产精品jizz观看| 青青草国内视频在线观看| 精品国产亚洲av高清大片| 风韵多水的老熟妇| AV无码一区二区三区国产| 日韩精品自拍一区二区| 日韩精品人妻中文字幕有码| а√天堂资源8在线官网在线| 大伊香蕉精品视频一区| 日韩精品一区二区三区人妻在线| 国产精品vⅰdeoxxxx国产| 亚洲成a人片在线观看久| 亚洲综合天堂一二三区| 无人区乱码一区二区三区| 少妇特黄a一区二区三区| 精品久久久久久久久免费午夜福利| 亚洲女同一区二区久久| 国产av精品麻豆网址| 欧美成人免费全部| 亚洲是图一区二区视频| 亚洲国产精品日韩av专区| 制服丝袜中文字幕在线| 亚洲色婷婷免费视频高清在线观看| 久久精品亚洲乱码伦伦中文| 色窝窝无码一区二区三区|