彭文家,宋 萍,楊 誠,金昊龍
(1.北京理工大學仿生機器人與系統(tǒng)教育部重點實驗室,北京 100081; 2.中國北方車輛研究所,北京 100072)
?
基于CompactRIO的車輛CAN總線傳輸策略研究*
彭文家1,宋 萍1,楊 誠1,金昊龍2
(1.北京理工大學仿生機器人與系統(tǒng)教育部重點實驗室,北京 100081; 2.中國北方車輛研究所,北京 100072)
針對裝甲車輛動態(tài)工況下的多參數(shù)測試需求和CAN總線測試網(wǎng)絡拓撲結(jié)構(gòu),提出了一種基于主、從CAN節(jié)點間應答模式的實時數(shù)據(jù)傳輸策略,開發(fā)了基于該傳輸策略的CAN總線通信協(xié)議;研究了協(xié)議中的優(yōu)先級分配、標識符劃分和CAN幀數(shù)據(jù)域定義;編寫了LabVIEW上位機界面和仿真程序;基于CompactRIO采集平臺搭建了試驗驗證平臺,進行了傳輸策略的可行性驗證;結(jié)果表明,在該CAN總線數(shù)據(jù)傳輸策略的控制下,測試系統(tǒng)能實現(xiàn)145路信號的實時采集、傳輸、存儲和顯示,滿足測試需求。
車輛;CAN總線;數(shù)據(jù)傳輸策略; CompactRIO; LabVIEW
試驗測試是裝甲車輛研發(fā)過程中必不可少的環(huán)節(jié),目前車輛的試驗測試主要采用與實車同方案的試件進行試驗室臺架試驗或?qū)m椩囼灒瑴y試結(jié)果難以如實反映裝甲車輛野外工況下的真實狀況。因此,急需開展裝甲車輛動態(tài)工況下的實時測試技術(shù)的研究,為車輛的改進設計和可靠性的提高提供有效的參考數(shù)據(jù)[1-2]。
CAN總線作為一種串行、多主的數(shù)據(jù)通信總線,因其抗干擾能力強、易擴展、傳輸效率高、集成度高的特點,已經(jīng)廣泛應用于車輛測試中[3]。當前,在基于CAN總線的車輛測試技術(shù)研究方面已取得了許多成果。文獻[4]和文獻[5]中針對裝甲車輛電氣狀態(tài)監(jiān)測的缺陷,開發(fā)了短幀實時CAN通信協(xié)議,實現(xiàn)了對電氣系統(tǒng)的實時監(jiān)測。文獻[6]中針對懸架應力測試系統(tǒng)數(shù)據(jù)傳輸量大、線路復雜的特點,提出了基于CAN總線的車輛懸架應力測試方案。文獻[7]中針對工程車輛機械電氣動力設備常發(fā)生故障的問題,提出了基于CAN總線的在線監(jiān)測系統(tǒng)。這些測試方法主要都是針對車輛的部件或分系統(tǒng)進行測試,難以全面反映出實車動態(tài)工況下的狀態(tài)。
因此,本文中針對實車動態(tài)工況下整車測試的需求,對整車多信號實時采集背景下的CAN總線傳輸策略進行了研究,并以美國NI(national instruments)公司的CompactRIO作為采集平臺,對傳輸策略進行了試驗驗證,實現(xiàn)了對車輛145路信號的實時采集、傳輸、存儲和顯示。
本文中研究的裝甲車輛測試系統(tǒng)須對總共145路信號進行測試數(shù)據(jù)的采集,根據(jù)車載信號采集節(jié)點的實際布設情況,形成了CAN1和CAN2兩個采集網(wǎng)絡,相應的CAN總線網(wǎng)絡拓撲結(jié)構(gòu)如圖1所示。其中CAN1采集節(jié)點和CAN2采集節(jié)點為主機節(jié)點位于CompactRIO采集平臺:綜合信號、動力信號、傳動信號和空濾器信號的采集節(jié)點為分布于車輛上的4個從機節(jié)點,所有采集的數(shù)據(jù)統(tǒng)一經(jīng)CompactRIO采集平臺匯總并發(fā)送至上位機進行實時顯示。
圖1 CAN總線網(wǎng)絡拓撲結(jié)構(gòu)
從圖1可知,CAN1采集網(wǎng)絡為點對點網(wǎng)絡,由CAN1采集節(jié)點和綜合信號采集節(jié)點構(gòu)成,綜合信號調(diào)理節(jié)點負責106路信號的采集調(diào)理,其中有3路50Hz的加速度信號、13路20Hz的壓力信號、90路5Hz的溫度信號。CAN2采集網(wǎng)絡為一對多網(wǎng)絡,由CAN2、傳動信號、動力信號和空濾器信號的采集節(jié)點組成,共負責39路信號的采集。其中,傳動信號采集節(jié)點負責8路100Hz轉(zhuǎn)矩信號和20路20Hz壓力信號的采集;動力信號采集節(jié)點負責1路100Hz油門開度信號和2路20Hz速度信號的采集;空濾器信號采集節(jié)點負責4路20Hz壓力信號和4路5Hz溫度信號的采集。
整個車載CAN總線采集網(wǎng)絡所需采集信號數(shù)目多達145路,不僅不同采集節(jié)點的信號數(shù)目存在差異,而且同一采集節(jié)點不同測試信號的采樣頻率也不一致,此外,測試系統(tǒng)在存儲測試數(shù)據(jù)的基礎(chǔ)上,還需滿足所有信號采樣值的上位機實時顯示要求。因此,測試數(shù)據(jù)的傳輸策略尤為重要,不僅要保證145路信號能從各個信號采集節(jié)點實時傳輸至主機采集節(jié)點,而且還必須保證各個信號采樣值在時序邏輯上的正確性。
基于上述分析,提出了一種基于主從節(jié)點應答模式的CAN總線數(shù)據(jù)傳輸策略,即主機采集節(jié)點作為測試數(shù)據(jù)傳輸流程的發(fā)起者,周期性發(fā)送時鐘數(shù)據(jù)包,各從機信號采集節(jié)點作為受控者,接收主機節(jié)點發(fā)送的時鐘數(shù)據(jù)包,并根據(jù)所接收時鐘數(shù)據(jù)包中的累積時間值與信號采樣周期之間的數(shù)值關(guān)系上傳測試數(shù)據(jù)包,各變量滿足式(1)和式(2)。
t=(n1-1)T,n1∈N+
(1)
(2)
式中:t為時鐘數(shù)據(jù)包中的累積時間值;T為時鐘數(shù)據(jù)包的發(fā)送周期;n1為時鐘數(shù)據(jù)包的發(fā)送個數(shù);f為信號的采樣頻率;n2為匹配系數(shù);N+為正整數(shù)集合。
式(1)為主機采集節(jié)點時鐘數(shù)據(jù)包中累積時間t的計算方法。T定義為整個采集網(wǎng)絡中最高采樣頻率信號的采樣周期,本文中最高信號采樣頻率為100Hz,即T值為10ms,時鐘數(shù)據(jù)包發(fā)送個數(shù)n1初值為1。由此可知,第一個時鐘數(shù)據(jù)包中t為0,隨后以10ms為基數(shù)逐次累加。式(2)為從機信號采集節(jié)點發(fā)送測試數(shù)據(jù)包的判斷關(guān)系式,其中信號采樣頻率f的倒數(shù)為該采樣頻率下信號的采樣周期,匹配系數(shù)n2初值為1。
將t為0的第一個時鐘數(shù)據(jù)包作為采集開始命令,從機信號采集節(jié)點不上傳測試數(shù)據(jù)包。隨后,從機信號采集節(jié)點每次只上傳采樣頻率滿足式(2)的采樣值。例如,100Hz信號的采樣周期是10ms,其與時鐘數(shù)據(jù)包發(fā)送周期10ms是1倍關(guān)系,因此信號采集節(jié)點每次收到時鐘數(shù)據(jù)包時均要上傳包含100Hz信號采樣值的測試數(shù)據(jù)包。同理,20Hz信號的采樣周期為50ms,其為時鐘數(shù)據(jù)包發(fā)送周期10ms的5倍,因此只有當信號采集節(jié)點收到的時鐘數(shù)據(jù)包中t值為50的正整數(shù)倍時,才上傳包含該信號采樣值的測試數(shù)據(jù)包。其他采樣頻率信號的發(fā)送規(guī)律依此類推。
基于上述說明可知,根據(jù)本文中提出的CAN總線數(shù)據(jù)傳輸策略,各個信號的最新采樣值均能由信號采集節(jié)點及時上傳至主機采集節(jié)點,并實現(xiàn)了同一信號采樣值的依次上傳,既滿足了測試系統(tǒng)對測試數(shù)據(jù)顯示的實時性要求,又保證了各個信道采樣值的時序邏輯。
CAN傳輸協(xié)議規(guī)定了CAN總線通信過程中數(shù)據(jù)的交互機制、數(shù)據(jù)表示形式和數(shù)據(jù)格式,是CAN節(jié)點之間相互溝通、共享和傳輸數(shù)據(jù)信息須共同遵守的約定[8]。綜合考慮本文中提出的測試數(shù)據(jù)傳輸策略的實時性需求和涉及CAN總線采集網(wǎng)絡拓撲結(jié)構(gòu)中的節(jié)點數(shù)目,CAN傳輸協(xié)議采用11位標識符格式。
CAN傳輸協(xié)議報文格式主要包括標識符分配和數(shù)據(jù)域定義。其中,標識符是數(shù)據(jù)幀發(fā)送和接收過程中CAN仲裁和接收濾波的主要依據(jù),CAN采用非破壞性逐位仲裁技術(shù),在總線處于繁忙狀態(tài)時,各數(shù)據(jù)幀根據(jù)標識符的仲裁結(jié)果獲取總線的使用權(quán),進行數(shù)據(jù)發(fā)送。
3.1 傳輸協(xié)議報文標識符分配
標識符的定義直接決定了對應報文的優(yōu)先級,根據(jù)本文中提出的傳輸策略,按數(shù)據(jù)包類型、數(shù)據(jù)包編號和設備號對11位標識符進行了劃分,如表1所示。
表1 標識符定義
標識符高二位ID.10-ID.9用于定義數(shù)據(jù)包類型,在滿足CAN總線數(shù)據(jù)傳輸策略要求的基礎(chǔ)上,結(jié)合測試系統(tǒng)的功能需求,共將報文所代表的數(shù)據(jù)包類型分為4類:時鐘數(shù)據(jù)包、主機指令包、從機信息包和測試數(shù)據(jù)包。其中,時鐘數(shù)據(jù)包由主機節(jié)點發(fā)出,處于最高優(yōu)先級,以廣播的形式按給定周期循環(huán)發(fā)出;主機指令包由主機節(jié)點發(fā)出,優(yōu)先級次于時鐘數(shù)據(jù)包,用于向從機發(fā)送檢測指令;從機信息包由從機節(jié)點發(fā)出,優(yōu)先級次于主機指令包,用于從機節(jié)點向主機反饋除測試數(shù)據(jù)外的信息,如節(jié)點狀態(tài)、故障和緊急報警等;測試數(shù)據(jù)包由從機節(jié)點發(fā)出,處于最低優(yōu)先級,主要用于信號采樣數(shù)據(jù)的上傳。
標識符的ID.8-ID.3用于定義測試數(shù)據(jù)包的編號,其余數(shù)據(jù)包類型的該段標識符定義為全0,6位標識符共可定義64個包編號,每個包編號與該數(shù)據(jù)包中采樣數(shù)據(jù)所屬的信號對應。根據(jù)標識符越小優(yōu)先級越高的CAN仲裁規(guī)則,對于同一信號采集節(jié)點的測試數(shù)據(jù)包而言,其存放采樣值對應信號的采樣頻率越高,包編號越小。
標識符的ID.2-ID.0用于定義設備號,用來確定發(fā)出數(shù)據(jù)包的CAN節(jié)點。其中主機采集節(jié)點的設備號為1(編號001),CAN1采集網(wǎng)絡中的綜合信號采集節(jié)點設備號為2(編號010);CAN2采集網(wǎng)絡中的傳動信號采集節(jié)點設備號為3(編號011),動力信號采集節(jié)點設備號為4(編號100),空濾器信號采集節(jié)點設備號為5(編號101)?;谏鲜稣f明11位標識符的具體分配結(jié)果如表2所示。
表2 11位標識符分配表
3.2 傳輸協(xié)議報文數(shù)據(jù)域定義
根據(jù)傳輸協(xié)議標識符定義的數(shù)據(jù)包類型對數(shù)據(jù)域DATA0-7的8個字節(jié)進行了不同的定義,如表3所示。
表3 數(shù)據(jù)域定義
時鐘數(shù)據(jù)包數(shù)據(jù)域的低4個字節(jié)DATA0-3定義為有效值,用于存放測試開始計時后的累積時間t。時鐘數(shù)據(jù)包每10ms發(fā)送一次,用DATA0-3表示的32位無符號數(shù)最大可實現(xiàn)4 294 967 290ms的連續(xù)計時,約為50天,能滿足進行全天連續(xù)測試的需求。
主機指令包和從機信息包數(shù)據(jù)域的低2個字節(jié)DATA0-1定義為有效值,用于存放主機指令代碼或從機信息的反饋代碼,代碼編號可根據(jù)實際需要進行增加定義,DATA0-1共16位可以表示65 536個不同的代碼,完全可滿足代碼的擴充需求。
測試數(shù)據(jù)包的數(shù)據(jù)域用于存放不同信號的采樣值,DATA0-7的8個字節(jié)每相鄰的兩個字節(jié)定義為一個信號采集通道并存放該信號的一個采樣值,因此一個測試數(shù)據(jù)包可存放4個信號的采樣值。根據(jù)傳輸策略可知,每一個測試數(shù)據(jù)包只存放采樣頻率相同的信號采樣數(shù)據(jù),4個通道的排列順序與標識符中包編號代表的信號通道順序一致,對于不滿4個通道的測試數(shù)據(jù)包,統(tǒng)一用無效值0填充。根據(jù)上述說明,測試數(shù)據(jù)包定義如表4所示,表中標識符為十進制數(shù)表示,數(shù)據(jù)域信息欄標注數(shù)據(jù)包中信號采樣頻率和信道個數(shù)。
表4 測試數(shù)據(jù)包定義表
4.1 試驗平臺搭建
根據(jù)實際的車載CAN總線采集網(wǎng)絡的拓撲結(jié)構(gòu),搭建了如圖2所示的試驗驗證平臺。其中CompactRIO采集平臺上插有NI 9853采集卡,包括兩個獨立的CAN口分別作為CAN1和CAN2采集網(wǎng)的主機采集節(jié)點,PXIe 1062機箱插有2塊PXI 8512采集卡,每個采集卡擁有2個獨立的CAN口,一共4個CAN口分別模擬4個從機采集節(jié)點。
圖2 試驗驗證平臺實物圖
按照制定的CAN總線通信協(xié)議分別編寫了主機和從機信號采集節(jié)點的LabVIEW程序。其中主機節(jié)點程序位于CRIO FPGA,通過while循環(huán)結(jié)構(gòu)實現(xiàn)了兩個主機CAN口時鐘數(shù)據(jù)包的發(fā)送和測試數(shù)據(jù)包的接收,其程序框圖如圖3所示。
圖3 主機CAN節(jié)點的程序框圖
4個從機信號采集節(jié)點均采用了while-case狀態(tài)機結(jié)構(gòu),其根據(jù)式(2)中時鐘數(shù)據(jù)包的累積時間值與信號采樣頻率的匹配結(jié)果可切換至不同的數(shù)據(jù)發(fā)送狀態(tài),進而發(fā)送不同采樣頻率信號對應的測試數(shù)據(jù)包,單個從機CAN節(jié)點的程序框圖見圖4。
圖4 單個從機CAN節(jié)點的程序框圖
4.2 分析與驗證
4.2.1 策略可行性驗證
在所提出的CAN總線傳輸策略中,從機節(jié)點根據(jù)時鐘數(shù)據(jù)包中的累積時間數(shù)進行測試數(shù)據(jù)包實時上傳,因此在整個數(shù)據(jù)交互的過程中必然存在一個最小公倍時間,即所有信號采樣周期的最小公倍數(shù),在該時間點CAN總線采集網(wǎng)絡中的所有采樣通道均進行采樣,產(chǎn)生的測試數(shù)據(jù)包個數(shù)也達到最大值。因此所提出的CAN總線傳輸策略的可行性,就取決于主機CAN節(jié)點在最小公倍時間后的一個時鐘數(shù)據(jù)包間隔周期內(nèi)能否接收到全部測試數(shù)據(jù)包。
根據(jù)表4可知,CAN1采集網(wǎng)絡共包括1個50Hz測試數(shù)據(jù)包、3個20Hz測試數(shù)據(jù)包和24個5Hz測試數(shù)據(jù)包;CAN2采集網(wǎng)絡共包括3個100Hz測試數(shù)據(jù)包、7個20Hz測試數(shù)據(jù)包和1個5Hz測試數(shù)據(jù)包。分析可知,CAN1采集網(wǎng)絡的最小公倍時間為200ms,最大測試數(shù)據(jù)包數(shù)量為28;CAN2采集網(wǎng)絡的最小公倍時間也為200ms,最大測試數(shù)據(jù)包數(shù)量為11。分析可知,該傳輸策略的可行性就取決于CAN1采集網(wǎng)絡的主機CAN節(jié)點能否在一個時鐘數(shù)據(jù)包間隔周期內(nèi)完成28個測試數(shù)據(jù)包的接收。
測試數(shù)據(jù)包采用標準CAN數(shù)據(jù)幀格式,單個數(shù)據(jù)幀為108bit,28個測試數(shù)據(jù)包的理論數(shù)據(jù)總量為3 024bit。所研究的裝甲車輛測試系統(tǒng)采用的CAN總線波特率為500kbps,由前文可知,時鐘數(shù)據(jù)包間隔周期為10ms,計算可得CAN總線10ms內(nèi)可傳輸數(shù)據(jù)總量為5 000bit,大于3 024bit,因此理論上滿足
測試數(shù)據(jù)包的傳輸需求。
策略可行性試驗結(jié)果如圖5所示,圖中列出了28個測試數(shù)據(jù)包的接收時間戳,計算可得,第28個測試數(shù)據(jù)包(ID為1 762)的時間戳與第1個測試數(shù)據(jù)包(ID為1 546)的時間戳之差為6.581ms,小于時鐘數(shù)據(jù)包的發(fā)送間隔周期10ms。通過上述分析可知,本文中提出的CAN總線傳輸策略能夠保證主機采集節(jié)點在任意時鐘數(shù)據(jù)包的發(fā)送間隔周期內(nèi),完成對其總線上所有從機信號采集節(jié)點發(fā)出測試數(shù)據(jù)包的接收。
圖5 策略可行性試驗結(jié)果
4.2.2 測試數(shù)據(jù)采集驗證
在搭建的試驗驗證平臺上,進行了145路信號的數(shù)據(jù)采集試驗。其中CAN1采集網(wǎng)絡與CAN2采集網(wǎng)絡中的從機采集節(jié)點均以最小公倍時間200ms為周期,循環(huán)發(fā)送給定的常量測試數(shù)據(jù)包,用于試驗驗證測試數(shù)據(jù)包的定義如表5所示,其中發(fā)送順序號為200ms內(nèi)的測試數(shù)據(jù)包發(fā)送順序。
表5 試驗驗證測試數(shù)據(jù)包定義
通過上位機界面左側(cè)的信道列表可實現(xiàn)對各信道采集數(shù)據(jù)波形的選擇性查看。試驗過程中,隨機選擇了4個信道,其中CAN1采集網(wǎng)絡選擇信道1和信道6,實時波形如圖6所示;CAN2采集網(wǎng)絡選擇信道3和信道11,實時波形如圖7所示。根據(jù)表4和表5可知,CAN1采集網(wǎng)絡信道1和信道6的信號采樣頻率分別為50和20Hz,采樣值分別為1 111 311 114和2 324的循環(huán)序列;CAN2采集網(wǎng)絡信道3和信道11的信號采樣頻率分別為100和20Hz,采樣值分別為11 112 111 121 111 211 112和2 222的循環(huán)序列。
圖6 CAN1采集網(wǎng)絡上位機顯示界面
圖7 CAN2采集網(wǎng)絡上位機顯示界面
通過對比可知,所選4個信道在上位機的實際顯示波形與信號采樣值的理論波形完全一致,能夠保證數(shù)據(jù)的可靠傳輸。
(1) 以整車的多參數(shù)測試需求為背景,制定了基于主、從CAN節(jié)點應答模式的CAN總線數(shù)據(jù)傳輸策略。
(2) 根據(jù)所提出的傳輸策略,開發(fā)了CAN總線通信協(xié)議,進行了報文標識符的劃分和數(shù)據(jù)域的定義,對各節(jié)點報文的優(yōu)先級進行了分配。
(3) 基于CompactRIO采集平臺搭建了試驗驗證平臺,利用LabVIEW編寫了主、從機CAN節(jié)點的程序和用于實時顯示的上位機界面。通過試驗驗證平臺,對制定的CAN總線數(shù)據(jù)傳輸策略進行了試驗測試,證明策略行之有效,數(shù)據(jù)傳輸可靠,能滿足車輛CAN總線測試系統(tǒng)對145路信號的實時采集、傳輸、存儲和顯示要求。
[1] 毛明,李振平,鄧高壽,等.坦克裝甲車輛對試驗測試技術(shù)的需求[J].計算機測量與控制,2016,24(3):8-10.
[2] 毛明,龐寶文.坦克裝甲車輛技術(shù)發(fā)展新動向和發(fā)展重點[J].車輛與動力技術(shù),2012(3):51-55.
[3] 黃萬友,程勇,紀少波,等.基于CAN總線的純電動汽車動力總成試驗臺測控系統(tǒng)的開發(fā)[J].汽車工程,2012,34(3):266-271.
[4] 鄒勇,宋小慶,王治國,等.基于CAN總線的裝甲車輛測控系統(tǒng)[J].裝甲兵工程學院學報,2009,23(3):50-54.
[5] 賀方君,謝永成,李光升,等.基于CAN總線的裝甲車輛電氣系統(tǒng)檢測[J].國外電子測量技術(shù),2012,31(6):43-46.
[6] 羅佳,孫運強.CAN總線技術(shù)在車輛懸架動態(tài)應力測試中的應用[J].自動化儀表,2013,34(11):80-84.
[7] 錢義偉.基于CAN總線的車載數(shù)據(jù)采集與通信裝置的設計與實現(xiàn)[D].長沙:湖南大學,2013.
[8] 韓江洪,劉征宇,崔世輝,等.混合動力汽車CAN網(wǎng)絡通信協(xié)議的應用研究[J].汽車工程,2011,33(12):1062-1066.
A Study on Vehicle CAN Bus Transmission Strategy Based on CompactRIO
Peng Wenjia1, Song Ping1, Yang Cheng1& Jin Haolong2
1.KeyLaboratoryofBiomimeticRobotsandSystem,BeijingInstituteofTechnology,Beijing100081;2.ChinaNorthVehicleResearchInstitute,Beijing100072
Aiming at the multi-parameter test requirements of armored vehicle under dynamic conditions and the topology structure of CAN bus test network, a real-time data transmission strategy based on response pattern between host and slave nodes is proposed. Based on the strategy, a CAN bus communication protocol is developed, the assignment of priority, the arrangement of identifier and the definition of CAN frame data fields in the protocol are studied, and the upper computer interface and simulation programs are developed with LabVIEW. Based on CompactRIO acquisition platform, a verification platform is constructed to verify the feasibility of the strategy. The results show that with the control of the strategy proposed, the test system can realize the real-time acquisition, transmission, storage and display of 145 signals, well meeting test requirements.
vehicle; CAN bus; data transmission strategy; CompactRIO; LabVIEW
10.19562/j.chinasae.qcgc.2017.07.016
*國防基礎(chǔ)科研重大項目(C0920110001)資助。
宋萍,教授,博士生導師,E-mail:sping2002@bit.edu.cn。
原稿收到日期為2016年8月5日。