基于LabVIEW 和J1939 協(xié)議的CAN 總線通訊平臺(tái)開發(fā)
軟件設(shè)計(jì)
本文引用地址:http://cafeforensic.com/article/144207.htm基于J1939 協(xié)議的CAN 總線報(bào)文收發(fā)多任務(wù)處理流程,如圖3 所示,采用生產(chǎn)者/消費(fèi)者循環(huán)數(shù)據(jù)結(jié)構(gòu)。生產(chǎn)者循環(huán)使用“元素入隊(duì)列”函數(shù)向報(bào)文簇隊(duì)列中添加數(shù)據(jù),消費(fèi)者循環(huán)使用“元素出隊(duì)列”函數(shù)從報(bào)文簇隊(duì)列中移出數(shù)據(jù)。循環(huán)間采用隊(duì)列的方式進(jìn)行通信,避免多任務(wù)處理競(jìng)爭(zhēng)狀態(tài),當(dāng)生產(chǎn)數(shù)據(jù)比消費(fèi)處理數(shù)據(jù)的速度快時(shí),隊(duì)列的緩沖作用保證報(bào)文數(shù)據(jù)不丟失?! ?/p>
建立接收?qǐng)?bào)文ID 解析過濾的識(shí)別方法。確定報(bào)文標(biāo)識(shí)符ID 的枚舉型狀態(tài)變量識(shí)別報(bào)文,根據(jù)狀態(tài)變量條件結(jié)構(gòu)過濾報(bào)文。
PDU1、PDU2 格式單幀報(bào)文全部入隊(duì)列,數(shù)據(jù)場(chǎng)大于8 字節(jié)的對(duì)話式、廣播式多幀報(bào)文按J1939協(xié)議多幀數(shù)據(jù)合成重組后入隊(duì)列,其它無(wú)數(shù)據(jù)場(chǎng)的報(bào)文幀舍去,處理完的接收?qǐng)?bào)文簇分解后出隊(duì)列計(jì)算、存貯和顯示。
廣播幀報(bào)文接收合成,首先進(jìn)行TP.CM-BAM 命令幀解析,提取EECU 發(fā)送報(bào)文的PGN 和幀數(shù),其次對(duì)接收的TP.DT-BAM 數(shù)據(jù)幀組報(bào)文刪除幀序號(hào),通過替換數(shù)組子集對(duì)接收?qǐng)?bào)文合成重組,還原PGN 標(biāo)識(shí)的數(shù)據(jù)長(zhǎng)度大于8 字節(jié)的廣播幀報(bào)文。
建立發(fā)送報(bào)文ID 解析封裝的識(shí)別方法。報(bào)文解析首先確定幀類型狀態(tài)變量,其次根據(jù)狀態(tài)變量的條件判斷,進(jìn)行報(bào)文格式的封裝定義。
數(shù)據(jù)場(chǎng)小于或等于8 字節(jié)的PDU1、PDU2 單幀發(fā)送報(bào)文直接入隊(duì)列,數(shù)據(jù)場(chǎng)大于8 字節(jié)的對(duì)話式、廣播式多幀報(bào)文按J1939 協(xié)議多幀數(shù)據(jù)處理打包封裝簇合成后入隊(duì)列,處理完的J1939 發(fā)送報(bào)文簇分解后出隊(duì)列并寫入CAN 口。
廣播幀報(bào)文發(fā)送封裝,ID 解析將發(fā)送報(bào)文的PGN 封裝在廣播報(bào)文命令幀標(biāo)識(shí)符ID-TP.CM 中,報(bào)文數(shù)組解析進(jìn)行字節(jié)數(shù)和幀數(shù)計(jì)算,創(chuàng)建幀序號(hào)加報(bào)文子集的8 字節(jié)多幀數(shù)組,與數(shù)據(jù)幀標(biāo)識(shí)符ID-TP.DT 打包封裝簇合成TP.DT-BAM,TP.CM-BAM 與TP.DT-BAM 組成廣播幀格式報(bào)文。
應(yīng)用效果
在整車電環(huán)境的半實(shí)物仿真報(bào)文接收測(cè)試試驗(yàn)中,應(yīng)用圖4 所示的基于LabVIEW 和J1939 協(xié)議的CAN 總線通訊平臺(tái),與Vector CANoe 模塊在同一時(shí)間段比對(duì)測(cè)試,接收的某型號(hào)發(fā)動(dòng)機(jī)穩(wěn)態(tài)工況EECU 報(bào)文如圖5 所示,一秒內(nèi)接收EECU 發(fā)出的526 幀報(bào)文,比對(duì)測(cè)試接收的報(bào)文無(wú)丟失現(xiàn)象。
發(fā)動(dòng)機(jī)燃油消耗量報(bào)文,實(shí)時(shí)反映了發(fā)動(dòng)機(jī)燃油經(jīng)濟(jì)性,在商用車J1939 協(xié)議CAN 總線網(wǎng)絡(luò)中,分別被車輛VECU 接收,作為換擋控制策略控制自動(dòng)變速箱汽車;組合儀表ECU 接收并實(shí)時(shí)顯示,提示駕駛員形成良好的駕駛習(xí)慣,操縱汽車達(dá)到最佳燃油經(jīng)濟(jì)性的路況行駛。為使發(fā)動(dòng)機(jī)獲得最佳的動(dòng)力性、經(jīng)濟(jì)性和兼顧排放達(dá)標(biāo),需要對(duì)發(fā)動(dòng)機(jī)電控單元EECU 進(jìn)行標(biāo)定匹配,獲得最佳噴油脈寬的標(biāo)定參數(shù)。標(biāo)定之后做比對(duì)試驗(yàn),驗(yàn)證EECU 的標(biāo)定效果。
發(fā)動(dòng)機(jī)穩(wěn)態(tài)工況試驗(yàn),能夠反映車輛的等速工況;而發(fā)動(dòng)機(jī)變工況瞬態(tài)試驗(yàn),能夠模擬實(shí)際道路循環(huán)中發(fā)動(dòng)機(jī)狀態(tài)。通過將實(shí)時(shí)報(bào)文油耗和實(shí)際測(cè)量瞬態(tài)油耗的對(duì)比,研究?jī)烧咧g的對(duì)應(yīng)吻合關(guān)系,判斷發(fā)動(dòng)機(jī)EECU 的控制效果?! ?/p>
某型號(hào)發(fā)動(dòng)機(jī)十工況臺(tái)架試驗(yàn)瞬態(tài)油耗比對(duì)測(cè)量曲線見圖6 所示,從J1939 協(xié)議CAN 總線接收并解析的EECU 油耗報(bào)文數(shù)據(jù),與臺(tái)架油耗儀實(shí)測(cè)數(shù)據(jù)在發(fā)動(dòng)機(jī)低負(fù)荷時(shí)存在差異,即發(fā)動(dòng)機(jī)低負(fù)荷時(shí)實(shí)際噴油量較小,設(shè)定噴油量與實(shí)際噴油量的差異值較大。這個(gè)差異是因?yàn)榘l(fā)動(dòng)機(jī)低負(fù)荷共軌軌壓波動(dòng)較大,導(dǎo)致噴油量波動(dòng)變化而客規(guī)存在。兩條曲線總體吻合一致,通過CAN 總線接收的發(fā)動(dòng)機(jī)噴油目標(biāo)值,與實(shí)際測(cè)量值接近,且變化趨勢(shì)和時(shí)序同步,反映了發(fā)動(dòng)機(jī)EECU 標(biāo)定匹配獲得了最佳噴油脈寬的目標(biāo)值。
總結(jié)
基于LabVIEW 和J1939 協(xié)議的NI PXI 模塊化系統(tǒng)架構(gòu)的CAN 總線通訊平臺(tái)的開發(fā),建立了NICAN 模塊在商用車CAN 總線通訊的應(yīng)用基礎(chǔ),項(xiàng)目具有推廣和商品應(yīng)用前景。在發(fā)動(dòng)機(jī)臺(tái)架試驗(yàn)、整車電環(huán)境半實(shí)物仿真分析中,實(shí)現(xiàn)對(duì)CAN 總線報(bào)文信息的過濾識(shí)別、合成接收、封裝發(fā)送、存貯、解析計(jì)算及實(shí)時(shí)顯示。
應(yīng)用LabVIEW 軟件平臺(tái)強(qiáng)大的數(shù)學(xué)分析運(yùn)算及隊(duì)列處理能力,以及適應(yīng)整車苛刻測(cè)試環(huán)境的NI PXI 儀器及CAN 接口模塊,滿足試驗(yàn)工況對(duì)CAN 總線報(bào)文信息解析的功能需求,同時(shí)實(shí)現(xiàn)對(duì)報(bào)文數(shù)據(jù)與NI PXI 儀器其它測(cè)量參數(shù)同步采樣,試驗(yàn)數(shù)據(jù)比對(duì)分析處理具有實(shí)時(shí)性和真實(shí)性。
評(píng)論