摘要
本文介紹了評(píng)估“控制器局域網(wǎng)”(CAN)收發(fā)器的正確系統(tǒng)級(jí)測試方法,。通過展示在多CAN節(jié)點(diǎn)系統(tǒng)中執(zhí)行不同CAN節(jié)點(diǎn)之間的數(shù)據(jù)傳輸時(shí)如何避免實(shí)際數(shù)據(jù)傳輸問題,解釋了此種測試方法的優(yōu)越之處。閱讀本文后,,讀者將對(duì)CAN系統(tǒng)有更好的了解,,并能夠?yàn)樘囟ǖ亩喙?jié)點(diǎn)CAN系統(tǒng)選擇合適的CAN收發(fā)器。
引言
CAN是一種穩(wěn)健的通信標(biāo)準(zhǔn),用于支持不同的傳感器,、機(jī)器或控制器進(jìn)行相互通信。相比于一般接口,,CAN接口更穩(wěn)定可靠,,能夠有效處理總線爭用,因此被廣泛應(yīng)用于工業(yè)自動(dòng)化,、家庭自動(dòng)化和汽車應(yīng)用中,。
舊版CAN2.0提供8字節(jié)有效載荷,最多支持2 Mbps的數(shù)據(jù)速率,。有些情況下,,2 Mbps的數(shù)據(jù)速率不足以應(yīng)對(duì)危急通信事件,因此CAN.org提出了新的通信協(xié)議CAN-FD,,支持?jǐn)?shù)據(jù)速率高達(dá)10 Mbps的通信,。
CAN-FD靈活的數(shù)據(jù)速率
舊版CAN和CAN-FD之間的主要區(qū)別在于靈活的數(shù)據(jù)速率(FD)。在CAN-FD中,,數(shù)據(jù)速率(即每秒傳輸?shù)奈粩?shù))比經(jīng)典CAN(10 Mbps僅用于數(shù)據(jù)有效載荷,;為了兼容,仲裁位速率仍限制在1 Mbps)快5倍,。CAN-FD中的消息有效載荷大小從舊版CAN的8字節(jié)增加到64字節(jié),。
使用CAN-FD時(shí),傳感器可以改變數(shù)據(jù)速率,,并增加或減少有效載荷,。與如今工廠中的舊版CAN相比,更快的數(shù)據(jù)速度和更大的有效載荷容量帶來了許多系統(tǒng)級(jí)操作優(yōu)勢,。
CAN通信——基礎(chǔ)知識(shí)
CAN通信包括兩個(gè)主要組件:(a)CAN控制器和(b)CAN收發(fā)器,,如圖1所示。
圖1.單一CAN節(jié)點(diǎn),。
CAN控制器處理CAN通信的數(shù)據(jù)鏈路層,,而CAN收發(fā)器則處理物理層。我們來簡要介紹一下CAN收發(fā)器的物理層,。
在CAN協(xié)議中,,邏輯0被稱為顯性位,邏輯1被稱為隱性位,。由于CAN是一種差分協(xié)議,,CANH和CANL之間的電壓差決定了發(fā)射和接收信號(hào)的邏輯電平,。如果CANH-CANL電壓大于1.5 V,,則CAN接收器將該位識(shí)別為邏輯0。而如果CANH-CANL電壓小于200 mV,,則CAN接收器將該位識(shí)別為邏輯1,。圖2所示為CAN收發(fā)器TXD引腳上數(shù)字邏輯1和邏輯0位的連續(xù)傳輸,,以及CANH和CANL引腳上的等效CAN總線電平。根據(jù)CANH和CANL電壓之間的差異,,接收器在RXD引腳上回送信號(hào),。
圖2.CAN協(xié)議物理層。
現(xiàn)在我們來看看CAN數(shù)據(jù)鏈路層,,它制定了數(shù)據(jù)幀以便進(jìn)行比特流的受控傳輸,,而且有助于解決錯(cuò)誤檢測和總線爭用問題。圖3所示為標(biāo)準(zhǔn)的CAN幀格式,。
圖3.CAN協(xié)議數(shù)據(jù)鏈路層,。
每個(gè)節(jié)點(diǎn)以幀起始符(SOF)開始數(shù)據(jù)幀,SOF是第一個(gè)顯性位,。11位標(biāo)識(shí)符是每個(gè)節(jié)點(diǎn)的唯一地址,。IDE表示幀格式。該位域中的邏輯0表示標(biāo)準(zhǔn)的CAN格式,,而邏輯1表示擴(kuò)展的CAN格式,。r0是一個(gè)保留位。DLC字段表示要傳輸?shù)臄?shù)據(jù)字節(jié)數(shù),。在標(biāo)準(zhǔn)CAN2.0幀中,,最多可以傳輸8個(gè)字節(jié)。接收節(jié)點(diǎn)通過在總線上發(fā)送顯性位來確認(rèn)該數(shù)據(jù)幀,。最后,,幀結(jié)束符(EOF)是一個(gè)隱性位,標(biāo)志著一個(gè)數(shù)據(jù)幀的結(jié)束,。
大多數(shù)情況下,,在選擇CAN收發(fā)器時(shí),客戶通過函數(shù)生成器在CAN收發(fā)器的TXD引腳上發(fā)送比特流,,以此來評(píng)估CAN收發(fā)器,。盡管這種方法非常適合用于評(píng)估單節(jié)點(diǎn)CAN,但在開發(fā)多節(jié)點(diǎn),、遠(yuǎn)距離CAN系統(tǒng)時(shí)似乎存在缺陷,。因此,要為系統(tǒng)選擇合適的CAN收發(fā)器,,必須采用新的CAN控制器和收發(fā)器測試方法,。使用這種方法背后的原因是什么?
仲裁方法
使用這種系統(tǒng)級(jí)測試方法的主要原因是CAN協(xié)議的仲裁特性,。如果兩個(gè)節(jié)點(diǎn)試圖同時(shí)占用總線,,則使用非破壞性逐位仲裁來進(jìn)行訪問。將第一個(gè)標(biāo)識(shí)符位作為0(顯性)發(fā)送的節(jié)點(diǎn)將保留對(duì)CAN總線的控制, 并繼續(xù)完成其消息傳送,, 而其他節(jié)點(diǎn)發(fā)送的是1(隱性),。圖4所示為兩個(gè)節(jié)點(diǎn)之間的仲裁方案。
圖4.雙節(jié)點(diǎn)系統(tǒng)中的CAN仲裁,。
在此圖中,,節(jié)點(diǎn)1和節(jié)點(diǎn)2通過CAN總線相互連接。因此,,CANH和CANL信號(hào)對(duì)于兩個(gè)節(jié)點(diǎn)是共用的,。TXD1和RXD1是用于節(jié)點(diǎn)1的信號(hào),而TXD2和RXD2是用于節(jié)點(diǎn)2的信號(hào),??梢钥吹剑?jié)點(diǎn)1和節(jié)點(diǎn)2的前三位是相同的:分別為1,、0,、1。節(jié)點(diǎn)2的第四位是1,,而節(jié)點(diǎn)1是0,。由于節(jié)點(diǎn)1有一個(gè)顯性位,因此贏得了仲裁并繼續(xù)發(fā)送完整的消息,。此消息由節(jié)點(diǎn)2確認(rèn),。一旦節(jié)點(diǎn)1完成傳輸,節(jié)點(diǎn)2就開始發(fā)送消息,。節(jié)點(diǎn)1確認(rèn)此消息,。
每個(gè)節(jié)點(diǎn)都有唯一的標(biāo)識(shí)符ID。因此,,這個(gè)11位的標(biāo)識(shí)符ID被用于仲裁過程,。這些比特將由控制器讀回,以識(shí)別消息傳輸?shù)膬?yōu)先級(jí),。在CAN-FD中,,仲裁位速率可以與數(shù)據(jù)位速率相同或不同。在CAN2.0中,,仲裁位速率和數(shù)據(jù)位速率相同,。
在舊版CAN2.0系統(tǒng)中,有時(shí)位速率會(huì)較標(biāo)準(zhǔn)CAN2.0推薦的1 Mbps有所增加,,以加快數(shù)據(jù)傳輸,。在CAN-FD系統(tǒng)中,仲裁位速率被限制為1 Mbps的數(shù)據(jù)速率,,而數(shù)據(jù)位速率可高達(dá)10 Mbps,。在包括11位標(biāo)識(shí)符和SOF位的仲裁階段,,每個(gè)傳輸?shù)奈欢急蛔x回以進(jìn)行同步。
CAN節(jié)點(diǎn)在CAN總線邊緣上同步,,但總線上的信號(hào)傳輸時(shí)間會(huì)在節(jié)點(diǎn)之間引入相位差,。CAN的非破壞性仲裁機(jī)制要求任意兩個(gè)節(jié)點(diǎn)之間的相位差小于半個(gè)比特時(shí)間,。該標(biāo)準(zhǔn)比特時(shí)間的下限定義了標(biāo)稱位速率以及總線長度的上限,。因此,RXD的上升時(shí)間和下降時(shí)間,、CAN收發(fā)器的環(huán)路延遲以及電纜都需要考慮在內(nèi),。在更高的位速率下(例如10 Mbps),傳輸延遲和上升時(shí)間/下降時(shí)間需要小于50 ns,。
因此,,CAN-FD中的仲裁位速率被限制為1 Mbps,允許更高的余量用于同步多個(gè)可能的節(jié)點(diǎn),。然而,,CAN-FD是一個(gè)新協(xié)議,尚未應(yīng)用于所有CAN系統(tǒng),。在某些情況下,,CAN-FD控制器不可用或者被認(rèn)為是代價(jià)高昂的附加組件,因此客戶繼續(xù)使用標(biāo)準(zhǔn)CAN控制器,。在這些系統(tǒng)中,,由于涉及關(guān)鍵傳感器信息且節(jié)點(diǎn)之間的線纜長度可能更短,CAN節(jié)點(diǎn)需要以更高的位速率(>2 Mbps)進(jìn)行通信,。在這種情況下,,收發(fā)器的上升時(shí)間/下降時(shí)間對(duì)稱性和傳輸延遲可能會(huì)對(duì)允許的數(shù)據(jù)通信上限造成限制。
CAN收發(fā)器需要系統(tǒng)級(jí)測試
以CAN收發(fā)器MAX33012E為例,,該收發(fā)器已經(jīng)過20米線纜測試,,速率最高可達(dá)13.3 Mbps??梢钥吹?,在圖5中,TXD2位寬為75 ns(對(duì)應(yīng)于13.3 Mbps),,RXD2位寬為72 ns,。當(dāng)控制器以80%的TXD位寬進(jìn)行采樣時(shí),包括所需RXD的上升時(shí)間/下降時(shí)間和環(huán)路延遲在內(nèi)的最小RXD位寬為60 ns,。在圖5中,,可以看到接收到的位寬為72 ns。因此,,MAX33012E滿足條件,,并且足夠穩(wěn)健,,能夠在更高的位速率下工作。在這種情況下,,CAN控制器不會(huì)檢測到任何錯(cuò)誤,,并且會(huì)繼續(xù)執(zhí)行數(shù)據(jù)通信。
圖5.MAX33012E CAN數(shù)據(jù)傳輸,。
圖6所示為同樣在13.3 Mbps速度下進(jìn)行測試的競品的范圍,。對(duì)于該部分,傳輸位寬為75 ns(對(duì)應(yīng)于13.3 Mbps),,并且接收位寬小于傳輸位寬(48 ns)的80%,。因此,仲裁階段位傳輸失敗,,導(dǎo)致通信錯(cuò)誤,,最終系統(tǒng)停止工作。
圖6.競品的CAN數(shù)據(jù)傳輸,。
這些類型的數(shù)據(jù)傳輸錯(cuò)誤只能通過執(zhí)行完整的系統(tǒng)級(jí)測試來發(fā)現(xiàn),,其中包括多個(gè)CAN控制器、CAN收發(fā)器和一根長線纜,。
結(jié)論
對(duì)CAN收發(fā)器進(jìn)行系統(tǒng)級(jí)測試有助于揭示系統(tǒng)中未來可能出現(xiàn)的數(shù)據(jù)傳輸問題,。可使用滿足所需時(shí)序和電壓規(guī)格的CAN控制器和線纜來評(píng)估CAN收發(fā)器,,從而避免這些問題,。CAN系統(tǒng)的穩(wěn)健性取決于CAN系統(tǒng)中每個(gè)組件性能的累積結(jié)果。僅評(píng)估一個(gè)組件或CAN收發(fā)器并不能準(zhǔn)確測量系統(tǒng)功能,。對(duì)系統(tǒng)進(jìn)行預(yù)先驗(yàn)證比等到發(fā)生故障后才更換系統(tǒng)更加經(jīng)濟(jì)高效,。因此,我們強(qiáng)烈建議在選擇CAN控制器之前進(jìn)行系統(tǒng)級(jí)測試,。
更多精彩內(nèi)容歡迎點(diǎn)擊==>>電子技術(shù)應(yīng)用-AET<<