楊法松
CAN 是 Controller Area Network 的縮寫(以下稱為CAN),是ISO國(guó)際標(biāo)準(zhǔn)化的串行通信協(xié)議。在汽車產(chǎn)業(yè)中,出于對(duì)安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統(tǒng)被開發(fā)了出來。由于這些系統(tǒng)之間通信所用的數(shù)據(jù)類型及對(duì)可靠性的要求不盡相同,由多條總線構(gòu)成的情況很多,線束的數(shù)量也隨之增加。為適應(yīng)“減少線束的數(shù)量”、“通過多個(gè)LAN,進(jìn)行大量數(shù)據(jù)的高速通信”的需要,1986 年德國(guó)電氣商博世公司開發(fā)出面向汽車的CAN 通信協(xié)議。此后,CAN 通過ISO11898 及ISO11519 進(jìn)行了標(biāo)準(zhǔn)化,在歐洲已是汽車網(wǎng)絡(luò)的標(biāo)準(zhǔn)協(xié)議。
CAN總線是德國(guó)BOSCH公司從80年代初為解決現(xiàn)代汽車中眾多的控制與測(cè)試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議,它是一種多主總線,通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維。通信速率最高可達(dá)1Mbps。
CAN總線通信接口中集成了CAN協(xié)議的物理層和數(shù)據(jù)鏈路層功能,可完成對(duì)通信數(shù)據(jù)的成幀處理,包括位填充、數(shù)據(jù)塊編碼、循環(huán)冗余檢驗(yàn)、優(yōu)先級(jí)判別等項(xiàng)工作。
CAN協(xié)議的一個(gè)最大特點(diǎn)是廢除了傳統(tǒng)的站地址編碼,而代之以對(duì)通信數(shù)據(jù)塊進(jìn)行編碼。采用這種方法的優(yōu)點(diǎn)可使網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)個(gè)數(shù)在理論上不受限制,數(shù)據(jù)塊的標(biāo)識(shí)符可由11位或29位二進(jìn)制數(shù)組成,因此可以定義2或2個(gè)以上不同的數(shù)據(jù)塊,這種按數(shù)據(jù)塊編碼的方式,還可使不同的節(jié)點(diǎn)同時(shí)接收到相同的數(shù)據(jù),這一點(diǎn)在分布式控制系統(tǒng)中非常有用。數(shù)據(jù)段長(zhǎng)度最多為8個(gè)字節(jié),可滿足通常工業(yè)領(lǐng)域中控制命令、工作狀態(tài)及測(cè)試數(shù)據(jù)的一般要求。同時(shí),8個(gè)字節(jié)不會(huì)占用總線時(shí)間過長(zhǎng),從而保證了通信的實(shí)時(shí)性。CAN協(xié)議采用CRC檢驗(yàn)并可提供相應(yīng)的錯(cuò)誤處理功能,保證了數(shù)據(jù)通信的可靠性。CAN卓越的特性、極高的可靠性和獨(dú)特的設(shè)計(jì),特別適合工業(yè)過程監(jiān)控設(shè)備的互連,因此,越來越受到工業(yè)界的重視,并已公認(rèn)為最有前途的現(xiàn)場(chǎng)總線之一。
CAN總線信號(hào)實(shí)質(zhì)上就是電平信號(hào),電平信號(hào)的好壞決定著CAN總線信號(hào)的穩(wěn)定性和抗干擾能力。因此針對(duì)CAN總線的物理層即電平信號(hào)特性進(jìn)行測(cè)試;需要測(cè)試電平信號(hào)的顯隱性電平的電壓、電平信號(hào)上升下降的斜率、電平信號(hào)的位時(shí)間等進(jìn)行測(cè)試。作為 CAN總線信號(hào)的發(fā)送和接收者電控單元也需要對(duì)其進(jìn)行物理層的測(cè)試驗(yàn)證。因?yàn)殡娍貑卧囊恍﹥?nèi)部特性決定他發(fā)出的信號(hào)的電平特性和抗干擾能力;所以要測(cè)試電控單元的終端電阻、電控單元的耐高低壓測(cè)試、CAN總線故障測(cè)試和抗發(fā)動(dòng)機(jī)啟動(dòng)電壓波動(dòng)測(cè)試。
電控單元的功能實(shí)現(xiàn),需要 CAN總線數(shù)據(jù)的交互;因此需要對(duì) CAN總線信號(hào)傳輸?shù)耐ㄐ艑雍蛿?shù)據(jù)鏈路層進(jìn)行測(cè)試。在通信層和數(shù)據(jù)鏈路層測(cè)試中,主要關(guān)注信號(hào)的采樣點(diǎn)測(cè)試、報(bào)文長(zhǎng)度、報(bào)文周期、總線負(fù)載率和非預(yù)期幀接收的測(cè)試。這些測(cè)試可以保證電控單元數(shù)據(jù)發(fā)送和接收準(zhǔn)確性。
CAN總線物理層測(cè)試項(xiàng)如表1所示。
CANoe:用來模擬除DUT外其它節(jié)點(diǎn)發(fā)送和接收?qǐng)?bào)文;記錄監(jiān)測(cè)總線報(bào)文;對(duì)DUT進(jìn)行ACK應(yīng)答。
CAN示波器:具有CAN/LIN譯碼功能;CAN_H/CAN_L單通道輸入或者 CAN_H/CAN_L采用差分探頭差分輸入;KL15/IGN接入單通道輸入。
注:本文所提到示波器推薦采用 CANscope,也可采用外置示波器。
Powersupply:程控電源,通過PC可控模擬不同供電電壓。
表1
根據(jù)CAN總線物理層測(cè)試項(xiàng)的需求,測(cè)試連接圖如圖1:
R1R2:選配型終端電阻 120Ω。對(duì)于終端型 DUT,需選配R1或R2;對(duì)于非終端型DUT,需同時(shí)配置R1與R2。
測(cè)試評(píng)判標(biāo)準(zhǔn)如表2所示:
表2
CAN數(shù)據(jù)鏈路層和通信層項(xiàng)如表3所示:
表3
根據(jù)CAN總線物理層測(cè)試項(xiàng)的需求,測(cè)試連接圖如圖2:
CANoe:用來模擬除DUT外其它節(jié)點(diǎn)發(fā)送和接收?qǐng)?bào)文;記錄監(jiān)測(cè)總線報(bào)文;對(duì)DUT進(jìn)行ACK應(yīng)答。
CAN Stress(DR):模擬總線物理干擾。
CAN示波器:具有CAN/LIN譯碼功能;CAN_H/CAN_L單通道輸入或者 CAN_H/CAN_L采用差分探頭差分輸入;KL15/IGN接入單通道輸入。
Powersupply:程控電源,通過PC可控模擬不同供電電壓。
R1R2:選配型終端電阻 120Ω。對(duì)于終端型 DUT,需選配R1或R2;對(duì)于非終端型DUT,需同時(shí)配置R1與R2。
測(cè)試評(píng)判標(biāo)準(zhǔn)如表4所示:
表4
CAN總線測(cè)試自動(dòng)化的實(shí)現(xiàn),需要搭建自動(dòng)化測(cè)試機(jī)柜;機(jī)柜設(shè)計(jì)包括機(jī)柜的結(jié)構(gòu)布置設(shè)計(jì)和內(nèi)部走線設(shè)計(jì),具體設(shè)計(jì)需求如下:
機(jī)柜具有空氣開關(guān),緊急制動(dòng)開關(guān)等安全操控按鈕;
分層安裝電源控制模塊、顯示器、程控電源、高精度網(wǎng)絡(luò)示波器、CANstressDR、CAN-LIN外圍電路模擬模塊、抽屜、程控萬用表、工控機(jī);
電源管理模塊
用于控制測(cè)試系統(tǒng)的整體供電,可以控制電源的通斷,同時(shí)具備短路保護(hù)和緊急制動(dòng)功能。PDU電源模塊有防止突然斷電或短路等而損壞設(shè)備的自我保護(hù)能力;有獨(dú)立開關(guān)實(shí)現(xiàn)啟動(dòng)和關(guān)閉。
電源管理模塊輸入為220V標(biāo)準(zhǔn)電壓,內(nèi)部集成了12V電壓轉(zhuǎn)換模塊,直接給 CAN-LIN外圍電路模擬模塊供電,另再分出一路電源,給程控電源供電。
網(wǎng)絡(luò)測(cè)試系統(tǒng)內(nèi)部電源走線設(shè)計(jì)的示意圖如如下:
程控電源
程控電源可以通過GPIB 接口與測(cè)試主機(jī)相連,由軟件程序直接控制其輸出,給被測(cè)節(jié)點(diǎn)供電和給測(cè)試臺(tái)架系統(tǒng)提供電源輸入,參數(shù)如下:
輸出電壓:0~80V;
輸出電流:0~100A;
尺寸為標(biāo)準(zhǔn)19寸/1U上架形式,無需設(shè)計(jì)面板和插箱;
電源輸出電壓可通過功能測(cè)試系統(tǒng)自動(dòng)進(jìn)行控制,也可手動(dòng)實(shí)現(xiàn)電壓調(diào)節(jié);
具備USB程控接口;
型號(hào):Agilent6700B(基礎(chǔ)模塊)+N6752A(電壓模塊)
該型號(hào)程控電源的優(yōu)勢(shì)為多模塊電源,最多支持4模塊輸出,且恒流源與電壓源之間可以任意切換,以實(shí)現(xiàn)11898-2中的測(cè)試項(xiàng)。程控電源示意如下圖所示:
電源控制原理示意圖如下圖所示:
高精網(wǎng)絡(luò)示波器
主要實(shí)現(xiàn)對(duì) CAN信號(hào)輸出特性的精確捕捉、測(cè)量及分析,控制主機(jī)可通過示波器程控接口支持 CAN網(wǎng)絡(luò)的物理層測(cè)試。功能要求:
差分探頭,具有常規(guī)示波器的功能;
頻帶寬度:100MHZ;
采樣率:4GSa/S;
具備CAN/LIN信號(hào)采集分析能力;
可同時(shí)測(cè)量?jī)陕凡煌俾实腃AN信號(hào);
測(cè)量時(shí)自動(dòng)獲取波特率;
具備4個(gè)測(cè)量通道;
具備USB程控接口;
型號(hào):Agilent MSO-X 3014A。
CANstress DR
CANstress DR主要實(shí)現(xiàn)對(duì)CAN網(wǎng)絡(luò)的物理屬性和邏輯電位進(jìn)行干擾,將其直接串連到CAN 網(wǎng)絡(luò)中,通過CANoe編程實(shí)現(xiàn)各種觸發(fā)條件與干擾邏輯控制,包括:
線間短路,線/電源(地)短路,斷路;
位錯(cuò)誤的模擬;
通過破壞 CAN報(bào)文特定的位域,對(duì)節(jié)點(diǎn)有目的施加干擾;
VN1640(CANoe)
VN1600產(chǎn)品系列是Vector公司最新CAN/LIN總線測(cè)試產(chǎn)品。其中本項(xiàng)目中使用的VN1640帶有4路CAN/LIN接口,且CAN/LIN接口可隨意配置。CANoe軟件具有以下實(shí)用測(cè)試功能:
支持 dbc/ldf等文件格式的網(wǎng)絡(luò)數(shù)據(jù)文件;
支持節(jié)點(diǎn)的仿真;
支持CAN、LIN 各類數(shù)據(jù)格式(如:.asc)的回放功能,在Configuration Setting界面中修改Animation Factor可以改變回放速度;
回放數(shù)據(jù)最大可達(dá)10G;
當(dāng)存儲(chǔ)數(shù)據(jù)量大于2G時(shí),CANoe會(huì)將此log文件另存;
支持回放快、慢的自由設(shè)置功能;
測(cè)試用例運(yùn)行過程中,測(cè)試可暫停;在取消暫停功能后,測(cè)試能繼續(xù)運(yùn)行;
接口面板
測(cè)試臺(tái)架線束與功能測(cè)試系統(tǒng)機(jī)柜的接口端子,覆蓋各被測(cè)ECU的I/O、總線以及電源引腳,不同ECU的線束通過不同的接口連接,方便靈活測(cè)試。
工控機(jī)
工控機(jī)用于運(yùn)行軟件環(huán)境,開發(fā)和管理整個(gè)測(cè)試項(xiàng)目。工控機(jī)相關(guān)參數(shù)如下:
4U高度,能夠安裝于標(biāo)準(zhǔn)19寸機(jī)柜;
可鎖前門,防止未經(jīng)許可的訪問;
雙核2.8G/內(nèi)存2G/硬盤500G;
具備至少8個(gè)USB2.0接口,1個(gè)COM接口以及TCP/IP接口、5個(gè)PIC接口;
針對(duì)以上技術(shù)要求,選用研華(Advantech) 4U 上架式機(jī)箱,如下圖10所示:
走線設(shè)計(jì)
機(jī)柜內(nèi)部走線指機(jī)柜各層之間信號(hào)交聯(lián)。
對(duì)于機(jī)柜內(nèi)部走線采用端子排和連接器配合導(dǎo)軌及線槽實(shí)現(xiàn)暗藏式走線,其示意圖如下:
自動(dòng)測(cè)試板卡
測(cè)試插箱的內(nèi)部為5塊控制板卡及1塊預(yù)留的16通道I/O板卡組成(均為Hirain根據(jù)11898協(xié)議要求研發(fā),并已在其他項(xiàng)目中驗(yàn)證應(yīng)用),各個(gè)板卡的功能是采用NI-6509來實(shí)現(xiàn)的。控制板卡提供如下功能:
控制:控制板整體控制整個(gè)機(jī)柜的電源及控制信號(hào),通過對(duì)繼電器矩陣的控制實(shí)現(xiàn)對(duì)3路CAN通道,2路LIN通道,實(shí)現(xiàn) CANH(LIN)、CANL、GND、Power Supply 、 WakeUp Line等的控制;
故障注入:可實(shí)現(xiàn)CAN_H/CAN_L對(duì)Vbat/GND的短路,CAN_H對(duì)CAN_L斷路,CAN_H/CAN_L斷路等網(wǎng)絡(luò)故障注入功能;
預(yù)留IO輸入輸出控制端口:共12路可靈活配置的IO端口,例如:可靈活配置3.3V、5V、12V、24 V輸出;
數(shù)字萬用表
數(shù)字萬用表用于測(cè)試過程中測(cè)試電壓、電阻及電流等值。萬用表相關(guān)參數(shù)如下:
7.5 位分辨率可進(jìn)行高靈敏度的 DCV 和電阻測(cè)量:100 pV 和 100 n
內(nèi)置低噪聲雙通道掃描儀;
采用 SPRT 探頭進(jìn)行溫度測(cè)量,精度高達(dá) 0.003 ℃;
數(shù)字萬用表示意圖如下所示:
根據(jù)硬件構(gòu)成搭建的測(cè)試機(jī)柜如下圖15所示:
根據(jù)CAN總線測(cè)試需求,程控電源、CANoe、示波器、數(shù)字萬用表、CAN外圍板卡和CANStress有效的集成在測(cè)試機(jī)柜中。示波器用來測(cè)試監(jiān)控電控單元電平信號(hào)的顯隱性電壓,電平信號(hào)跳變的上升下降斜率和信號(hào)位時(shí)間。程控電源用來控制電控單元的供電,可以實(shí)現(xiàn)高低壓通信的測(cè)試,并且配合CAN外圍板卡,實(shí)現(xiàn)CAN總線故障測(cè)試。數(shù)字萬用表用來測(cè)試電控單元的終端電阻。CANStress是總線干擾儀,實(shí)現(xiàn)對(duì)CAN總線的干擾busoff測(cè)試,并測(cè)試CAN總線的采樣點(diǎn)。CANoe是CAN總線的監(jiān)測(cè)、仿真、測(cè)試工具;對(duì)總線報(bào)文時(shí)間周期、報(bào)文長(zhǎng)度等測(cè)試;仿真總線報(bào)文對(duì)電控單元測(cè)試非預(yù)期幀和預(yù)期幀的反饋。
程控電源、示波器、數(shù)字萬用表、CAN外圍板卡和CANStress可以開放外圍調(diào)用程序;CANoe具有調(diào)用其他端口和設(shè)備的功能,在CANoe自帶的編程軟件CAPL中將這些設(shè)備的調(diào)用庫(kù)函數(shù)進(jìn)行聲明;就可以進(jìn)行調(diào)用。用 CAPL編寫測(cè)試評(píng)判標(biāo)準(zhǔn),然后采集這些設(shè)備測(cè)試數(shù)據(jù),進(jìn)行測(cè)試驗(yàn)證。
將程控電源、示波器、數(shù)字萬用表等設(shè)備的調(diào)用函數(shù)生成為CANoe識(shí)別的.cin文件,在測(cè)試主程序當(dāng)中對(duì)設(shè)備庫(kù)函數(shù)進(jìn)行聲明。函數(shù)聲明如圖16:
先將采集標(biāo)志位清零,然后接收程控電源、示波器、數(shù)字萬用表等設(shè)備的測(cè)試數(shù)據(jù)。上升斜率數(shù)據(jù)采集如圖17:
將測(cè)試數(shù)據(jù)與評(píng)判標(biāo)準(zhǔn)進(jìn)行對(duì)比,如果符合就輸出通過,并上傳通過數(shù)據(jù);如果失敗就輸出錯(cuò)誤,上傳錯(cuò)誤數(shù)據(jù);在測(cè)試報(bào)告中打印這些結(jié)果和測(cè)試數(shù)據(jù);最后將測(cè)試數(shù)據(jù)和測(cè)試條件等標(biāo)志位清空。上升斜率測(cè)試數(shù)據(jù)評(píng)判如圖18:
將 CANoe CAPL軟件上傳的測(cè)試結(jié)果和測(cè)試數(shù)據(jù)添加到測(cè)試報(bào)告中,形成物理層測(cè)試報(bào)告。其中的一部分測(cè)試數(shù)據(jù)如表五,其中顯性電壓測(cè)試截圖如圖19:
表5
表6
數(shù)據(jù)鏈路層和通信層測(cè)試項(xiàng)主要通過 CANoe測(cè)試完成的,CANoe直接把采集到得數(shù)據(jù)記錄下來,并填寫到測(cè)試報(bào)告中。其中的一部分測(cè)試報(bào)告如表6。
本論文通過對(duì)CAN總線的介紹,引入對(duì)CAN總線測(cè)試方法和測(cè)試標(biāo)準(zhǔn)的介紹。結(jié)合測(cè)試方法和用到的測(cè)試工具;本文詳細(xì)闡述了一種通過CANoe測(cè)試工具,對(duì)其他CAN總線測(cè)試工具的調(diào)用和管理,達(dá)到測(cè)試數(shù)據(jù)的采集和評(píng)判;實(shí)現(xiàn) CAN總線物理層、數(shù)據(jù)鏈路層和通信層自動(dòng)化測(cè)試的方法。
本文介紹的這種 CAN總線自動(dòng)化測(cè)試方法,實(shí)現(xiàn)了總線測(cè)試的平臺(tái)化;大大節(jié)省了總線測(cè)試時(shí)間,縮短了總線開發(fā)周期;有效的推進(jìn)了整車項(xiàng)目進(jìn)度。
[1] 王立萍.CAN網(wǎng)絡(luò)在汽車控制方法的應(yīng)用[J].工業(yè)儀表與 自動(dòng)化裝置,2009(5):77—79.
[2] 梁銳.NI軟硬件平臺(tái)在汽車 ECU開發(fā)和測(cè)試中的應(yīng)用[J].世界 電子元器件,2007(12):61—63.
[3] ISO 11898-1, Road vehicles - Controller area network (CAN) - Part 1: Data link layer and physical signaling.
[4] ISO 11898-2, Road vehicles - Controller area network(CAN) - Part 2:High-speed medium access unit.
[5] ISO 15765-1, Road vehicles - Diagnostics on Controller Area Networks (CAN) - Part 1: General information.