CAN總線網(wǎng)絡(luò)測試研究
現(xiàn)場總線技術(shù)已成為當(dāng)今工業(yè)自動化技術(shù)發(fā)展的熱點。CAN(Controller Area Network)即控制器局域網(wǎng),是國際上應(yīng)用最廣泛的現(xiàn)場總線之一。1991年9月,Philips Semiconductors公司制訂并發(fā)布了CAN技術(shù)規(guī)范(V2.0),該規(guī)范包括A、B兩部分。此后,1993年11月,ISO正式頒布了道路交通運(yùn)載工具——數(shù)字信息交換——高速通信控制器局域網(wǎng)(CAN)國際標(biāo)準(zhǔn)ISO 11898。CAN是一種多主從方式的串行數(shù)據(jù)通信總線,傳輸速率高,抗電磁干擾性強(qiáng),能檢測通信錯誤。作為一種技術(shù)先進(jìn)、可靠性高、功能完善、成本合理的網(wǎng)絡(luò)通信控制方式已被廣泛應(yīng)用到各個自動化領(lǐng)域,如汽車工業(yè)、工程機(jī)械、航空工業(yè),被公認(rèn)為幾種最有前途的現(xiàn)場總線之一[1]。
本文引用地址:http://butianyuan.cn/article/194067.htmCAN總線網(wǎng)絡(luò)系統(tǒng)的開發(fā)是在網(wǎng)絡(luò)協(xié)議定義的框架下,對總線涉及的多個節(jié)點設(shè)備之間的數(shù)據(jù)交換的過程進(jìn)行控制,涉及各個設(shè)備本身對數(shù)據(jù)交換的需求和響應(yīng),系統(tǒng)復(fù)雜,按照其功能可以劃分為:總體設(shè)計、節(jié)點設(shè)計和測試驗收。總體設(shè)計主要負(fù)責(zé)整個網(wǎng)絡(luò)功能定義,傳輸協(xié)議的設(shè)計、仿真,系統(tǒng)節(jié)點模型的建立和仿真,提出各節(jié)點的功能描述,包括節(jié)點電氣特性和功能特性,并交付各節(jié)點設(shè)計人員實現(xiàn);節(jié)點設(shè)計則根據(jù)提出的節(jié)點功能描述進(jìn)行網(wǎng)絡(luò)節(jié)點設(shè)備的開發(fā),包括硬件設(shè)計和軟件開發(fā),并協(xié)助其他開發(fā)人員完成對本節(jié)點設(shè)備的調(diào)試和測試。測試驗收根據(jù)網(wǎng)絡(luò)功能定義描述,制定網(wǎng)絡(luò)功能測試流程,建立網(wǎng)絡(luò)測試平臺,對各節(jié)點進(jìn)行測試驗收和全網(wǎng)絡(luò)系統(tǒng)平臺實驗。
統(tǒng)一的開放式平臺使得CAN網(wǎng)絡(luò)設(shè)計人員和其他開發(fā)人員(如軟件工程師,測試工程師等)共享成果,減少了重復(fù)工作,加快了開發(fā)進(jìn)度。此外,在節(jié)點設(shè)計之前,對整個網(wǎng)絡(luò)的協(xié)議和各節(jié)點功能進(jìn)行全網(wǎng)絡(luò)仿真,可以在設(shè)計的最初階段發(fā)現(xiàn)和糾正設(shè)計中的錯誤或者疏漏;在硬件平臺搭建之前進(jìn)行功能仿真,減少了節(jié)點設(shè)備開發(fā)階段由于軟件設(shè)計缺陷帶來的時間和資源的浪費(fèi);軟件仿真階段的成果可以直接用于對節(jié)點設(shè)備的測試檢查。在整個網(wǎng)絡(luò)系統(tǒng)實體構(gòu)建完成前,通過CAN總線接口設(shè)備和殘余總線技術(shù),對已經(jīng)實現(xiàn)的節(jié)點進(jìn)行實物仿真。
1 CAN總線節(jié)點組成和功能
CAN總線節(jié)點位于傳感器和執(zhí)行機(jī)構(gòu)所在的工業(yè)現(xiàn)場,完成現(xiàn)場數(shù)據(jù)采集、控制和通信功能。典型CAN節(jié)點一般包括總線收發(fā)器和協(xié)議控制器、主控制器,以及傳感器和執(zhí)行器,如圖1所示。CAN協(xié)議通信由總線收發(fā)器和總線控制器完成,協(xié)議控制器完成CAN協(xié)議數(shù)據(jù)鏈路層(MAC)的報文分幀、仲裁應(yīng)答、錯誤檢測和標(biāo)定,以及邏輯鏈路控制子層(LLC)的報文過濾、過載通知、恢復(fù)管理等具體服務(wù);總線收發(fā)器完成CAN協(xié)議物理層功能,是CAN控制器和物理傳輸線路之間的接口。許多CAN節(jié)點采用了總線收發(fā)器(PCA82C250)、協(xié)議控制器(SJA1000)和主控制器(51系列單片機(jī))方案,也有不少節(jié)點采用了內(nèi)嵌協(xié)議控制器的微處理器(P8XC592/ARM)和數(shù)字信號處理器(TMS320F2407F)方案。
2 CAN總線測試平臺的組成
本文采用了Vector公司出品的CAN總線開發(fā)測試集成環(huán)境和工具構(gòu)建了開放式開發(fā)測試平臺,對由3個節(jié)點組成的CAN總線通信網(wǎng)絡(luò)進(jìn)行測試,優(yōu)化總線參數(shù),提高了CAN通信抗干擾能力。CAN總線測試網(wǎng)絡(luò)由執(zhí)行機(jī)構(gòu)節(jié)點、遠(yuǎn)程傳輸節(jié)點、狀態(tài)監(jiān)測節(jié)點組成。執(zhí)行機(jī)構(gòu)節(jié)點控制器采用TMS320F2407(內(nèi)嵌CAN控制器),驅(qū)動執(zhí)行機(jī)構(gòu)完成相應(yīng)功能,發(fā)送電機(jī)轉(zhuǎn)角編碼和瞬時轉(zhuǎn)矩電流信息報文;遠(yuǎn)程傳輸節(jié)點是一個CAN/GPRS的網(wǎng)關(guān),功能是將報文信息轉(zhuǎn)發(fā)至遠(yuǎn)程節(jié)點。狀態(tài)監(jiān)測節(jié)點則是一個基于PC和虛擬儀器(LabVIEW)的操作面板,轉(zhuǎn)換并顯示報文的物理量信息,同時控制執(zhí)行機(jī)構(gòu)的運(yùn)行。
CAN總線測試環(huán)境和工具包括總線記錄儀、總線干擾儀和開發(fā)測試仿真環(huán)境[2-4]??偩€記錄儀和總線干擾儀作為節(jié)點接入測試總線,如圖2所示。其中總線記錄儀(Vector CANcaseXL)接收、錄制、存儲和評估不同的CAN總線網(wǎng)絡(luò)信號和報文,記錄其工作狀態(tài)和故障情況,便于在隨后的回放中分析故障原因,提出優(yōu)化改進(jìn)的方法和措施;總線干擾儀(Vector CANStressDR)生成總線信號、總線物理屬性和邏輯電位的各種干擾,在實驗室環(huán)境下模擬實際工況中可能出現(xiàn)的斷路、短路,模擬不同長度的傳輸電纜,也可對報文特定位進(jìn)行干擾以檢查總線的抗干擾能力;開發(fā)測試仿真環(huán)境(Vector CANoe)集成了總線開發(fā)和測試,通過定義報文數(shù)據(jù)庫,觀測報文數(shù)據(jù)并換算為相應(yīng)的物理量顯示。通過仿真總線和實際總線的切換,不僅可以測試現(xiàn)場信號,還可對錄制的信號進(jìn)行回放分析,分析查找故障原因。
3 CAN總線位定時參數(shù)的計算
在CAN通信協(xié)議中,波特率、每個位周期的采樣位置和個數(shù)都可以自行設(shè)定,CAN總線上不同節(jié)點之間通過約定的通信速率進(jìn)行通信,通過調(diào)整位定時參數(shù)可以優(yōu)化網(wǎng)絡(luò)通信性能,例如,位周期內(nèi)的采樣位置偏后,能容忍較大的信號傳輸延遲,即總線傳輸距離可以延長;取樣位置接近中間,則可以容忍CAN總線上節(jié)點間參考時鐘的誤差,顯然兩者是矛盾的,為了協(xié)調(diào)這種矛盾,必須對位定時參數(shù)進(jìn)行優(yōu)化設(shè)置。常用的通信速率有100 kb/s、125 kb/s、250 kb/s、500 kb/s和1 Mb/s等,對于常用的波特率,在一些CAN總線通信測試軟件中可以通過列表框進(jìn)行選擇,對一些特殊的波特率,如本實測網(wǎng)絡(luò)采用了66.7 kb/s的通信速率,又或雖然是常用的波特率,但出于優(yōu)化網(wǎng)絡(luò)通信性能的需要,選擇特定的位定時參數(shù)時,就要計算并通過總線時序寄存器設(shè)置位定時參數(shù)。
總線時序寄存器BTR0和BTR1定義如表1、表2所示。
位定時參數(shù)按式(1)計算[5-6]:
4 CAN總線網(wǎng)絡(luò)測試
首先利用開發(fā)測試仿真環(huán)境(CANoe)定義CAN總線測試網(wǎng)絡(luò),如圖3所示,其中Door Controller表示執(zhí)行機(jī)構(gòu)節(jié)點,Performance Meter代表狀態(tài)監(jiān)測節(jié)點,Remote Gateway代表遠(yuǎn)程傳輸節(jié)點;系統(tǒng)則自動生成Basic CAN代表總線,以及Bus Scope總線記錄儀和Replay Block總線回放“虛擬”節(jié)點。采用CANcaseXL記錄運(yùn)轉(zhuǎn)過程中總線上的報文信息和總線負(fù)載,并在CANoe環(huán)境下進(jìn)行回放、分析,如圖4所示。
CAN總線在不同的應(yīng)用場合,其總線長度、總線負(fù)載、終端電阻、環(huán)境各不相同,導(dǎo)致無法針對實際工況進(jìn)行優(yōu)化,提高數(shù)據(jù)通信的可靠性。利用本文所述的測試工具和平臺,可以對現(xiàn)場工況進(jìn)行記錄回放,或在實驗室進(jìn)行模擬測試,幫助開發(fā)人員和測試人員盡可能準(zhǔn)確地定位故障,從而提高開發(fā)的效率。本文的模擬測試結(jié)果表明,電氣和參數(shù)對CAN總線上通信性能影響較大,通過測試工具模擬發(fā)現(xiàn),終端電阻對提高通信質(zhì)量,降低報文差錯影響較大。通過測試工具分別模擬了CAN總線短路、75 Ω、120 Ω、開路等終端電阻,通信過程中正確幀和錯誤幀速率測試數(shù)據(jù)如表3所示,可以看出終端電阻為120 Ω時通信差錯率最小。
參考文獻(xiàn)
[1] 鄔寬明.CAN總線原理和應(yīng)用系統(tǒng)設(shè)計[M]. 北京: 北京航空航天大學(xué)出版社,1996.
[2] Vector Informatic GmbH.CANoe User manual, Version 4.1[S].
[3] Vector Informatic GmbH.CANcaseXL/log, Version 3.0[S], User Manual.
[4] Vector Informatic GmbH. CANStress Manual, Version 2.1[S].
[5] PHILIPS.Determination of bit timing parameters for the CAN Controller SJA1000[S], 1997.
[6] 吳永.CAN總線位定時參數(shù)的確定[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2003(10):19-22.
評論