LabVIEW開(kāi)發(fā)CAN 總線(xiàn)通訊平臺(tái)LabVIEW開(kāi)發(fā)CAN 總線(xiàn)通訊平臺(tái)
進(jìn)入21 世紀(jì)以來(lái),商用車(chē)CAN 總線(xiàn)網(wǎng)絡(luò)的應(yīng)用得到了異常迅猛的發(fā)展?;贚abVIEW 和J1939 協(xié)議的CAN 總線(xiàn)通訊技術(shù)方法,在國(guó)內(nèi)汽車(chē)行業(yè)PXI 測(cè)控裝置的應(yīng)用屬于空白。本文針對(duì)商用車(chē)CAN 總線(xiàn)通訊網(wǎng)絡(luò)的特點(diǎn),構(gòu)建基于LabVIEW 和J1939 協(xié)議的CAN 總線(xiàn)通訊平臺(tái),嵌入在NI PXI 模塊化接口的測(cè)控裝置中,用于發(fā)動(dòng)機(jī)臺(tái)架試驗(yàn)、整車(chē)電環(huán)境半實(shí)物仿真測(cè)試。
J1939 協(xié)議
J1939 協(xié)議以CAN2.0B 規(guī)范為基礎(chǔ)制定,對(duì)CAN2.0B 擴(kuò)展幀29 位標(biāo)識(shí)符ID 定義形成J1939 的編碼系統(tǒng),包括優(yōu)先級(jí)P、預(yù)留位R、數(shù)據(jù)頁(yè)DP、協(xié)議數(shù)據(jù)單元PF、擴(kuò)展單元PS、源地址SA 和數(shù)據(jù)字節(jié)Data,如圖1 所示。這七部分在開(kāi)放式系統(tǒng)互聯(lián)參考模型(OSI)應(yīng)用層,通過(guò)協(xié)議數(shù)據(jù)單元PDU(Protocal Data Unit)被封裝成一個(gè)或多個(gè)CAN 數(shù)據(jù)幀,通過(guò)物理層發(fā)送給總線(xiàn)網(wǎng)絡(luò)其它設(shè)備節(jié)點(diǎn)。
圖1 J1939 數(shù)據(jù)幀格式
PDU 定義了數(shù)據(jù)幀中與J1939 協(xié)議相關(guān)的信息,由標(biāo)識(shí)符ID 和數(shù)據(jù)場(chǎng)組成。
PDU1 格式報(bào)文PF 在0~239 之間,報(bào)文為點(diǎn)對(duì)點(diǎn)向目標(biāo)地址發(fā)送,PS:報(bào)文接收的目標(biāo)地址,SA:報(bào)文發(fā)送的源地址,在目標(biāo)地址中填入255,為全局地址發(fā)送。
PDU2 格式報(bào)文PF 在240~255 之間,報(bào)文向全局地址發(fā)送,PS:參數(shù)組擴(kuò)展值,J1939 協(xié)議大部分報(bào)文為PDU2 格式。
PDU 數(shù)據(jù)場(chǎng)包含參數(shù)組中數(shù)據(jù)內(nèi)容,參數(shù)組編號(hào)PGN(Parameter Group Number)用于*標(biāo)識(shí)參數(shù)組的號(hào)碼,由一個(gè)或幾個(gè)參數(shù)構(gòu)成一幀或多幀報(bào)文,而參數(shù)組是應(yīng)用層中定義的與某個(gè)ECU相關(guān)的若干參數(shù)(例如發(fā)動(dòng)機(jī)水溫、燃油溫度等)的組合。
J1939 協(xié)議與CAN2.0B 標(biāo)準(zhǔn)區(qū)別
標(biāo)識(shí)符ID:CAN2.0B 不同功能的報(bào)文信息可以使用相同的ID,根據(jù)制造商特定的協(xié)議使用CAN設(shè)備,在集成時(shí)會(huì)產(chǎn)生ID 不能識(shí)別或識(shí)別不*問(wèn)題。J1939 每幀報(bào)文的標(biāo)識(shí)符*,且每幀報(bào)文都有自己的PGN,為每個(gè)節(jié)點(diǎn)規(guī)定*的源地址,并將源地址映射到CAN 標(biāo)識(shí)符中,避免多個(gè)節(jié)點(diǎn)使用相同的標(biāo)識(shí)符,例如ID:0CF00400 代表發(fā)動(dòng)機(jī)轉(zhuǎn)速、扭矩報(bào)文。
OSI 模型:CAN2.0 規(guī)范定義了七層OSI 參考模型的物理層和數(shù)據(jù)鏈路層,是底層標(biāo)準(zhǔn),如圖2所示, CAN 總線(xiàn)產(chǎn)品的兼容性、互換性和可集成性差。J1939 是面向OSI 參考模型應(yīng)用層的高層協(xié)議,在應(yīng)用層定義了針對(duì)車(chē)輛應(yīng)用的信號(hào)(參數(shù))和報(bào)文(參數(shù)組)。通過(guò)參數(shù)描述信號(hào),并給每個(gè)參數(shù)分配了一個(gè)編號(hào)SPN(Suspect Parameter Number),參數(shù)定義了PDU 數(shù)據(jù)場(chǎng)中字節(jié)的物理意義,例如SPN190 代表發(fā)動(dòng)機(jī)轉(zhuǎn)速。一個(gè)PGN 中可能有幾個(gè)SPN,PGN61444 包含了SPN190 發(fā)動(dòng)機(jī)轉(zhuǎn)速和SPN513 發(fā)動(dòng)機(jī)扭矩等參數(shù)。
多幀報(bào)文:CAN2.0B 規(guī)范定義只能使用單幀報(bào)文傳輸,J1939 協(xié)議除單幀報(bào)文傳輸外,還使用對(duì)話(huà)式、廣播式多幀報(bào)文傳輸,并按多幀數(shù)據(jù)傳輸協(xié)議進(jìn)行打包封裝發(fā)送和接收合成重組處理,其中對(duì)話(huà)式多幀報(bào)文發(fā)送接收節(jié)點(diǎn)需要握手協(xié)議,廣播式多幀報(bào)文面向全局地址發(fā)送。
圖2 開(kāi)放式系統(tǒng)互聯(lián)參考模型(OSI)
模塊接口
PXI-8464/2 雙通道CAN2.0B 通訊接口模塊,內(nèi)含SJA1000T CAN 控制器和TJA1041T 高速CAN收發(fā)器及TJA1054AT 低速CAN 收發(fā)器。J1939 數(shù)據(jù)鏈路層通過(guò)PDU 格式實(shí)現(xiàn)報(bào)文的打包封裝,通過(guò)CAN 控制器發(fā)送CAN 數(shù)據(jù)幀必須具有的同步、順序控制、錯(cuò)誤控制和流控制,自動(dòng)產(chǎn)生CRC 校驗(yàn)位和ACK 應(yīng)答位插入數(shù)據(jù)幀中。
J1939 物理層協(xié)議規(guī)定了每個(gè)網(wǎng)段zui多30 個(gè)ECU,CAN 總線(xiàn)通訊速率250 kBits/s,總線(xiàn)電平顯性、隱性,差分電壓3.5V/1.5V,差分傳輸雙絞線(xiàn)線(xiàn)纜顏色CAN-H 黃色、CAN-L 綠色,CAN 收發(fā)器完成MCU 至CAN 總線(xiàn)之間收發(fā)電平的匹配轉(zhuǎn)換。
軟件設(shè)計(jì)
基于J1939 協(xié)議的CAN 總線(xiàn)報(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ù)不丟失。
圖3 基于LabVIEW 和J1939 協(xié)議的CAN 總線(xiàn)通訊報(bào)文收發(fā)多任務(wù)處理
建立接收?qǐng)?bào)文ID 解析過(guò)濾的識(shí)別方法。確定報(bào)文標(biāo)識(shí)符ID 的枚舉型狀態(tài)變量識(shí)別報(bào)文,根據(jù)狀態(tài)變量條件結(jié)構(gòu)過(guò)濾報(bào)文。
PDU1、PDU2 格式單幀報(bào)文全部入隊(duì)列,數(shù)據(jù)場(chǎng)大于8 字節(jié)的對(duì)話(huà)式、廣播式多幀報(bào)文按J1939協(xié)議多幀數(shù)據(jù)合成重組后入隊(duì)列,其它無(wú)數(shù)據(jù)場(chǎng)的報(bào)文幀舍去,處理完的接收?qǐng)?bào)文簇分解后出隊(duì)列計(jì)算、存貯和顯示。
廣播幀報(bào)文接收合成,首*行TP.CM-BAM 命令幀解析,提取EECU 發(fā)送報(bào)文的PGN 和幀數(shù),其次對(duì)接收的TP.DT-BAM 數(shù)據(jù)幀組報(bào)文刪除幀序號(hào),通過(guò)替換數(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)文解析首先確定幀類(lèi)型狀態(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ì)話(huà)式、廣播式多幀報(bào)文按J1939 協(xié)議多幀數(shù)據(jù)處理打包封裝簇合成后入隊(duì)列,處理完的J1939 發(fā)送報(bào)文簇分解后出隊(duì)列并寫(xiě)入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)用效果
在整車(chē)電環(huán)境的半實(shí)物仿真報(bào)文接收測(cè)試試驗(yàn)中,應(yīng)用圖4 所示的基于LabVIEW 和J1939 協(xié)議的CAN 總線(xiàn)通訊平臺(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ì)性,在商用車(chē)J1939 協(xié)議CAN 總線(xiàn)網(wǎng)絡(luò)中,分別被車(chē)輛VECU 接收,作為換擋控制策略控制自動(dòng)變速箱汽車(chē);組合儀表ECU 接收并實(shí)時(shí)顯示,提示駕駛員形成良好的駕駛習(xí)慣,操縱汽車(chē)達(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),能夠反映車(chē)輛的等速工況;而發(fā)動(dòng)機(jī)變工況瞬態(tài)試驗(yàn),能夠模擬實(shí)際道路循環(huán)中發(fā)動(dòng)機(jī)狀態(tài)。通過(guò)將實(shí)時(shí)報(bào)文油耗和實(shí)際測(cè)量瞬態(tài)油耗的對(duì)比,研究?jī)烧咧g的對(duì)應(yīng)吻合關(guān)系,判斷發(fā)動(dòng)機(jī)EECU 的控制效果。
(a)整車(chē)電環(huán)境的半實(shí)物仿真 (b)發(fā)動(dòng)機(jī)臺(tái)架試驗(yàn)
圖4 基于LabVIEW 和J1939 協(xié)議的CAN 總線(xiàn)通訊平臺(tái)應(yīng)用
注:一秒內(nèi)接收?qǐng)?bào)文 39736 – 39210 = 526
圖5 發(fā)動(dòng)機(jī)穩(wěn)態(tài)工況EECU 報(bào)文
圖6 發(fā)動(dòng)機(jī)變工況臺(tái)架試驗(yàn)油耗比對(duì)測(cè)量
某型號(hào)發(fā)動(dòng)機(jī)十工況臺(tái)架試驗(yàn)瞬態(tài)油耗比對(duì)測(cè)量曲線(xiàn)見(jiàn)圖6 所示,從J1939 協(xié)議CAN 總線(xiàn)接收并解析的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ī)存在。兩條曲線(xiàn)總體吻合*,通過(guò)CAN 總線(xiàn)接收的發(fā)動(dòng)機(jī)噴油目標(biāo)值,與實(shí)際測(cè)量值接近,且變化趨勢(shì)和時(shí)序同步,反映了發(fā)動(dòng)機(jī)EECU 標(biāo)定匹配獲得了噴油脈寬的目標(biāo)值。
總結(jié)
基于J1939 協(xié)議和NI PXI 平臺(tái)的CAN 總線(xiàn)通訊平臺(tái)的開(kāi)發(fā),建立了NI CAN 模塊在商用車(chē)CAN 總線(xiàn)通訊的應(yīng)用基礎(chǔ),項(xiàng)目具有推廣和商品應(yīng)用前景。在發(fā)動(dòng)機(jī)臺(tái)架試驗(yàn)、整車(chē)電環(huán)境半實(shí)物仿真分析中,實(shí)現(xiàn)對(duì)CAN 總線(xiàn)報(bào)文信息的過(guò)濾識(shí)別、合成接收、封裝發(fā)送、存貯、解析計(jì)算及實(shí)時(shí)顯示。
應(yīng)用LabVIEW 軟件平臺(tái)強(qiáng)大的數(shù)學(xué)分析運(yùn)算及隊(duì)列處理能力,以及適應(yīng)整車(chē)苛刻測(cè)試環(huán)境的NI PXI 儀器及CAN 接口模塊,滿(mǎn)足試驗(yàn)工況對(duì)CAN 總線(xiàn)報(bào)文信息解析的功能需求,同時(shí)實(shí)現(xiàn)對(duì)報(bào)文數(shù)據(jù)與NI PXI 儀器其它測(cè)量參數(shù)同步采樣,試驗(yàn)數(shù)據(jù)比對(duì)分析處理具有實(shí)時(shí)性和真實(shí)性。
我們開(kāi)業(yè)語(yǔ)言以LabVIEW為主,在硬件選型方面也積累了豐富的經(jīng)驗(yàn),同時(shí)我們也具備獨(dú)立的硬件開(kāi)發(fā)及機(jī)械設(shè)計(jì)與加工能力,可以制作、加工非標(biāo)設(shè)備,滿(mǎn)足個(gè)性化的需求。"術(shù)業(yè)有專(zhuān)攻",每個(gè)人都有自己zui擅長(zhǎng)的領(lǐng)域。把這些工作交給我們,使您有精力做科研,這應(yīng)該是一個(gè)雙贏的局面。
服務(wù)領(lǐng)域涵蓋:
LabVIEW 編程 開(kāi)發(fā)
LabVIEW作為圖形化編程語(yǔ)言,近幾年發(fā)展迅速,它具備開(kāi)發(fā)快、可靠性高等特點(diǎn),非常適合測(cè)控領(lǐng)域的應(yīng)用。在該領(lǐng)域我們已經(jīng)有十年的開(kāi)發(fā)經(jīng)驗(yàn),合作用戶(hù)涉及科研、國(guó)防、外企、大中小型各類(lèi)企業(yè)。服務(wù)領(lǐng)域遍布自動(dòng)測(cè)控系統(tǒng)眾多領(lǐng)域,包括航空航天、汽車(chē)產(chǎn)品測(cè)試、工業(yè)自動(dòng)化、故障診斷、圖像處理等。
非標(biāo)設(shè)備研制
在系統(tǒng)開(kāi)發(fā)過(guò)程中,購(gòu)買(mǎi)不到的配件、電路板等產(chǎn)品,我們也可以進(jìn)行研制開(kāi)發(fā),為您提供一站式的服務(wù)。
系統(tǒng)集成
為自動(dòng)化測(cè)試提供完整的解決方案。我們從設(shè)備選擇、采購(gòu)、安裝、調(diào)試、控制、到配套產(chǎn)品的研制,涵蓋您科研生產(chǎn)的全過(guò)程。讓您全身心的投入到核心工作中來(lái),減輕您的工作壓力,提升工作效率。
產(chǎn)品合作開(kāi)發(fā)
如果您那有具有市場(chǎng)潛力的好產(chǎn)品、好創(chuàng)意,我們也愿意與您一起合作開(kāi)發(fā)。在這方面我們也具備了一定的基礎(chǔ),例如工業(yè)*/呼吸模擬器/人工肺,勞保測(cè)試產(chǎn)品"防塵測(cè)試儀"已經(jīng)成功推向了市場(chǎng)。成熟的技術(shù)+有潛力的市場(chǎng),一直是我們追求的目標(biāo)。如果您有好的創(chuàng)意,或者現(xiàn)有的產(chǎn)品需要升級(jí)推廣,也歡迎與我們。
王