本文介紹了評估"控制器局域網(wǎng)"(CAN)收發(fā)器的正確系統(tǒng)級測試方法。通過展示在多CAN節(jié)點(diǎn)系統(tǒng)中執(zhí)行不同CAN節(jié)點(diǎn)之間的數(shù)據(jù)傳輸時(shí)如何避免實(shí)際數(shù)據(jù)傳輸問題,解釋了此種測試方法的優(yōu)越之處。
CAN是一種穩(wěn)健的通信標(biāo)準(zhǔn),用于支持不同的傳感器、機(jī)器或控制器進(jìn)行相互通信。相比于一般接口,CAN接口更穩(wěn)定可靠,能夠有效處理總線爭用,因此被廣泛應(yīng)用于工業(yè)自動化、家庭自動化和汽車應(yīng)用中。
舊版CAN2.0提供8字節(jié)有效載荷,最多支持2 Mbps的數(shù)據(jù)速率。有些情況下,2 Mbps的數(shù)據(jù)速率不足以應(yīng)對危急通信事件,因此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)級操作優(yōu)勢。
CAN通信—基礎(chǔ)知識
CAN通信包括兩個(gè)主要組件:(a) CAN控制器和(b) CAN收發(fā)器,如圖1所示。
CAN控制器處理CAN通信的數(shù)據(jù)鏈路層,而CAN收發(fā)器則處理物理層。我們來簡要介紹一下CAN收發(fā)器的物理層。
在CAN協(xié)議中,邏輯0被稱為顯性位,邏輯1被稱為隱性位。由于CAN是一種差分協(xié)議,CANH和CANL之間的電壓差決定了發(fā)射和接收信號的邏輯電平。如果CANH-CANL電壓大于1.5 V,則CAN接收器將該位識別為邏輯0。而如果CANH-CANL電壓小于200 mV,則CAN接收器將該位識別為邏輯1。圖2所示為CAN收發(fā)器TXD引腳上數(shù)字邏輯1和邏輯0位的連續(xù)傳輸,以及CANH和CANL引腳上的等效CAN總線電平。根據(jù)CANH和CANL電壓之間的差異,接收器在RXD引腳上回送信號。
圖2. CAN協(xié)議物理層。
現(xiàn)在我們來看看CAN數(shù)據(jù)鏈路層,它制定了數(shù)據(jù)幀以便進(jìn)行比特流的受控傳輸,而且有助于解決錯(cuò)誤檢測和總線爭用問題。圖3所示為標(biāo)準(zhǔn)的CAN幀格式。
每個(gè)節(jié)點(diǎn)以幀起始符(SOF)開始數(shù)據(jù)幀,SOF是第一個(gè)顯性位。11位標(biāo)識符是每個(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ā)送比特流,以此來評估CAN收發(fā)器。盡管這種方法非常適合用于評估單節(jié)點(diǎn)CAN,但在開發(fā)多節(jié)點(diǎn)、遠(yuǎn)距離CAN系統(tǒng)時(shí)似乎存在缺陷。因此,要為系統(tǒng)選擇合適的CAN收發(fā)器,必須采用新的CAN控制器和收發(fā)器測試方法。使用這種方法背后的原因是什么?
仲裁方法
使用這種系統(tǒng)級測試方法的主要原因是CAN協(xié)議的仲裁特性。如果兩個(gè)節(jié)點(diǎn)試圖同時(shí)占用總線,則使用非破壞性逐位仲裁來進(jìn)行訪問。將第一個(gè)標(biāo)識符位作為0(顯性)發(fā)送的節(jié)點(diǎn)將保留對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信號對于兩個(gè)節(jié)點(diǎn)是共用的。TXD1和RXD1是用于節(jié)點(diǎn)1的信號,而TXD2和RXD2是用于節(jié)點(diǎn)2的信號??梢钥吹剑?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)識符ID。因此,這個(gè)11位的標(biāo)識符ID被用于仲裁過程。這些比特將由控制器讀回,以識別消息傳輸?shù)膬?yōu)先級。在CAN-FD中,仲裁位速率可以與數(shù)據(jù)位速率相同或不同。在CAN2.0中,仲裁位速率和數(shù)據(jù)位速率相同。
在舊版CAN2.0系統(tǒng)中,有時(shí)位速率會較標(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)識符和SOF位的仲裁階段,每個(gè)傳輸?shù)奈欢急蛔x回以進(jìn)行同步。
CAN節(jié)點(diǎn)在CAN總線邊緣上同步,但總線上的信號傳輸時(shí)間會在節(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í)間對稱性和傳輸延遲可能會對允許的數(shù)據(jù)通信上限造成限制。
CAN收發(fā)器需要系統(tǒng)級測試
以CAN收發(fā)器MAX33012E為例,該收發(fā)器已經(jīng)過20米線纜測試,速率最高可達(dá)13.3 Mbps??梢钥吹?,在圖5中,TXD2位寬為75 ns(對應(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控制器不會檢測到任何錯(cuò)誤,并且會繼續(xù)執(zhí)行數(shù)據(jù)通信。
圖5. MAX33012E CAN數(shù)據(jù)傳輸。
圖6所示為同樣在13.3 Mbps速度下進(jìn)行測試的競品的范圍。對于該部分,傳輸位寬為75 ns(對應(yīng)于13.3 Mbps),并且接收位寬小于傳輸位寬(48 ns)的80%。因此,仲裁階段位傳輸失敗,導(dǎo)致通信錯(cuò)誤,最終系統(tǒng)停止工作。
圖6. 競品的CAN數(shù)據(jù)傳輸。
這些類型的數(shù)據(jù)傳輸錯(cuò)誤只能通過執(zhí)行完整的系統(tǒng)級測試來發(fā)現(xiàn),其中包括多個(gè)CAN控制器、CAN收發(fā)器和一根長線纜。
結(jié)論
對CAN收發(fā)器進(jìn)行系統(tǒng)級測試有助于揭示系統(tǒng)中未來可能出現(xiàn)的數(shù)據(jù)傳輸問題。可使用滿足所需時(shí)序和電壓規(guī)格的CAN控制器和線纜來評估CAN收發(fā)器,從而避免這些問題。CAN系統(tǒng)的穩(wěn)健性取決于CAN系統(tǒng)中每個(gè)組件性能的累積結(jié)果。僅評估一個(gè)組件或CAN收發(fā)器并不能準(zhǔn)確測量系統(tǒng)功能。對系統(tǒng)進(jìn)行預(yù)先驗(yàn)證比等到發(fā)生故障后才更換系統(tǒng)更加經(jīng)濟(jì)高效。因此,我們強(qiáng)烈建議在選擇CAN控制器之前進(jìn)行系統(tǒng)級測試。