通過(guò)系統級測試來(lái)避免 CAN 收發(fā)器的數據傳輸問(wèn)題

發(fā)布時(shí)間:2023-11-6 09:57    發(fā)布者:eechina
關(guān)鍵詞: CAN , 收發(fā)器 , 數據傳輸
來(lái)源:DigiKey
作者:Steven Keeping

控制器局域網(wǎng) (CAN) 是一種成熟穩健的通信標準,廣泛應用于工業(yè)自動(dòng)化和汽車(chē)等領(lǐng)域。該技術(shù)有兩個(gè)版本:CAN2.0 和最新版本 CAN-Flexible Data (FD)。傳統的 CAN2.0 系統可通過(guò)添加 CAN-FD 節點(diǎn)來(lái)實(shí)現增強,CAN-FD 節點(diǎn)可提供更高的有效載荷吞吐量,以支持關(guān)鍵通信事件。

這兩種技術(shù)通常是相互兼容的,但隨著(zhù)系統復雜性和總線(xiàn)長(cháng)度的增加,混合系統中 CAN-FD 的較高速度會(huì )造成同步問(wèn)題,從而造成傳輸失敗。

對于簡(jiǎn)單的系統來(lái)說(shuō),CAN 系統測試中包含連接兩個(gè)控制器/收發(fā)器對的單一短總線(xiàn)可能會(huì )令人滿(mǎn)意。然而,對于更復雜的且組合了 CAN2.0 和 CAN-FD 器件的多節點(diǎn)系統,這種測試往往無(wú)法檢測出其中可能出現的問(wèn)題。使用生產(chǎn)系統的孿生系統對所有潛在的使用案例進(jìn)行專(zhuān)門(mén)測試,可以發(fā)現現場(chǎng)可能出現的所有問(wèn)題。

本文將簡(jiǎn)要介紹 CAN2.0 和 CAN-FD,并解釋傳輸方面的挑戰。然后介紹測試技術(shù),以確保使用這些網(wǎng)絡(luò )的系統盡量減少現場(chǎng)故障。本文將以 Analog Devices 包含故障檢測和報告功能的器件為例,并展示使用此類(lèi)器件如何加快已部署系統的測試階段和故障排除。此外,還將重點(diǎn)介紹了相關(guān)的評估板。

什么是 CAN2.0 和 CAN-FD?

CAN 是一種內置了故障處理功能的分布式通信標準。ISO-118981 標準規定了物理層 (PHY) 和數據鏈路層 (DLL)。

CAN 的功能包括:

· 允許總線(xiàn)上有多個(gè)主機
· 信息的固有優(yōu)先級
· 按報文優(yōu)先級進(jìn)行總線(xiàn)仲裁
· 多級錯誤檢測和恢復
· 在具有獨立時(shí)鐘源的節點(diǎn)間同步數據計時(shí)

CAN 采用差分電壓數據傳輸方案,具有兩種總線(xiàn)電壓狀態(tài):“隱性”狀態(tài)(驅動(dòng)器輸出為高阻抗)和“顯性”狀態(tài),閾值如表 1 所示。


表 1:與 RS-485 相比,CAN 的隱性和顯性電壓電平。請注意,顯性(較高)電壓的對應邏輯“0”。(圖片來(lái)源:Analog Devices)

節點(diǎn)傳輸邏輯“0”的顯性狀態(tài)(在此狀態(tài)下,一條總線(xiàn) (CANH) 為高電平,另一條 (CANL) 為低電平)和邏輯“1”的隱性狀態(tài)。通過(guò)在標準幀或錯誤幀結束后檢測到多個(gè)隱性位,可將空閑 CAN 總線(xiàn)與處于隱性位傳輸模式的 CAN 總線(xiàn)區分開(kāi)來(lái)(圖 1)。


圖 1:CAN 傳輸方案?臻e模式由多個(gè)隱性位標識。(圖片來(lái)源:Analog Devices)

CAN 收發(fā)器在 DLL、CAN 控制器(通常嵌入在微控制器等其他器件中)和 CAN 總線(xiàn)的物理布線(xiàn)之間提供差分 PHY 接口。圖 2 所示為實(shí)施 CAN 應用所需的各種元件,以及它們與開(kāi)放系統互連 (OSI) 層的關(guān)系和由每個(gè)項目實(shí)現的功能。


圖 2:CAN 收發(fā)器構成 CAN 控制器和 CAN 總線(xiàn)之間的差分 PHY 接口。(圖片來(lái)源:Analog Devices)

CAN2.0 于 1991 年推出,標稱(chēng)吞吐量為 500 Kbits/s。由于這種數據傳輸速率有時(shí)無(wú)法滿(mǎn)足關(guān)鍵通信事件的需要,因此在 2012 年推出了 CAN-FD。CAN-FD 在正常工作條件下的標稱(chēng)吞吐量高達 2 Mbits/s,而在用于診斷或編程時(shí)則高達 5 Mbits/s。請注意,較高的通信速度只適用于報文有效載荷;如 11 位標識符、循環(huán)冗余校驗 (CRC) 和確認 (ACK) 等報文的其他元素都以 500 Kbits/s 的 CAN2.0 速率發(fā)送。

CAN2.0 和 CAN-FD 的另一個(gè)區別在于標準數據幀有效載荷,CAN2.0 的有效載荷為 8 B,而 CAN-FD 的有效載荷則達到 64 B。有效載荷的增加提高了開(kāi)銷(xiāo)/數據比,從而使 CAN-FD 通信更加高效。此外,以前由于 CAN2.0 的 8 B 有效載荷限制而不得不拆分的報文,現在可以通過(guò) CAN-FD 合并為一條報文。而且,由于 CAN-FD 報文的數據傳輸率更高,有效載荷更大,因此可以通過(guò)加密來(lái)提高安全性。

由于 CAN-FD 控制器同時(shí)支持 CAN2.0 和 CAN-FD 協(xié)議,因此在同一網(wǎng)絡(luò )中混合使用 CAN2.0 和 CAN-FD 節點(diǎn)是很常見(jiàn)的;旌瞎濣c(diǎn)之所以流行,是因為它允許傳統網(wǎng)絡(luò )在較長(cháng)時(shí)間內遷移到速度更快的協(xié)議;旌舷到y的一個(gè)缺點(diǎn)是增加了成本和復雜性,這是因為收發(fā)器必須能夠支持 CAN2.0 節點(diǎn)上的 CAN-FD 濾波方法,以確保在 CAN-FD 通信過(guò)程中不會(huì )產(chǎn)生錯誤幀。

CAN 的仲裁和錯誤機制

任何已連接的 CAN 節點(diǎn)都可以向總線(xiàn)傳輸數據。為避免通信沖突,節點(diǎn)會(huì )對總線(xiàn)的使用進(jìn)行仲裁,以便根據優(yōu)先級逐條傳輸報文。CAN 采用無(wú)損和透明的仲裁方式;仲裁成功的節點(diǎn)會(huì )繼續傳輸其優(yōu)先級更高的報文,而其他節點(diǎn)不會(huì )干擾或破壞報文。這種仲裁是可能的,因為顯性位傳輸會(huì )覆蓋隱性總線(xiàn)狀態(tài)。

標準數據幀包括一個(gè)報文標識符和多個(gè)標志位。這些信息被稱(chēng)為“仲裁字段”。這決定了仲裁,因此也決定了報文優(yōu)先級。ID 值較低的報文(較多的初始“0”)具有較高優(yōu)先級(圖 3)。


圖 3:CAN 標準數據幀包括報文標識符以及 RTR 和 IDE 標志位。該仲裁字段規定了仲裁和報文優(yōu)先級。(圖片來(lái)源:Analog Devices)

即使有仲裁計劃,也可能出錯。為了解決這些問(wèn)題,CAN 協(xié)議具有支持錯誤校驗和處理的機制。這些機制包括:

· 傳輸位驗證
· CRC 校驗
· 固定格式位域校驗
· 強制報文 ACK

錯誤會(huì )通過(guò)以下機制進(jìn)行處理:

· 錯誤幀
· 錯誤計數器
· 節點(diǎn)錯誤狀態(tài)

任何 CAN 控制器都能檢測錯誤,并通過(guò)觸發(fā)錯誤幀和錯誤節點(diǎn)計數器做出反應。錯誤幀通過(guò)使用六個(gè)連續的顯性或隱性位來(lái)區分。這種序列與正常傳輸規則不符,因此會(huì )被其他節點(diǎn)檢測到。發(fā)送錯誤幀的節點(diǎn)隨后會(huì )發(fā)送隱性位,直到檢測到總線(xiàn)處于隱性狀態(tài)。再傳輸 7 個(gè)隱性位后,節點(diǎn)就可以嘗試傳輸常規的 CAN 幀(圖 4)。


圖 4:在這一錯誤傳輸示例中(由于額外位 [1]導致 CRC 位錯誤),最右邊顯示的是六個(gè)連續的位錯誤幀。(圖片來(lái)源:Analog Devices)

除了錯誤幀傳輸外,每個(gè) CAN 節點(diǎn)都發(fā)送和接收錯誤計數器。錯誤增加時(shí),計數器會(huì )增加一個(gè),而成功發(fā)送或接收信息時(shí),計數器會(huì )減少一個(gè)。根據錯誤計數器,節點(diǎn)可能處于“主動(dòng)錯誤”、“被動(dòng)錯誤”或“總線(xiàn)切斷”狀態(tài)。在主動(dòng)錯誤狀態(tài)下,節點(diǎn)可以在總線(xiàn)上通信,并在檢測到錯誤時(shí)發(fā)送主動(dòng)錯誤標志。當計數器超過(guò) 127 時(shí),即進(jìn)入被動(dòng)錯誤狀態(tài);在此狀態(tài)下,節點(diǎn)只能發(fā)送被動(dòng)錯誤標志。一旦計數器低于 127,節點(diǎn)就會(huì )重新變?yōu)橹鲃?dòng)錯誤狀態(tài)。如果計數器超過(guò) 256,節點(diǎn)將進(jìn)入總線(xiàn)切斷狀態(tài),進(jìn)而無(wú)法在總線(xiàn)上通信。節點(diǎn)計數器在接收到 128 個(gè)具有 11 個(gè)連續隱位的序列后,可重置為 0。

全面檢測的重要性

CAN 的仲裁和錯誤機制有助于在發(fā)生故障時(shí)保持系統的現場(chǎng)運行。不過(guò),通過(guò)設計限制發(fā)射和接收故障的系統,就能達到更高的運行效率。在幾種運行情況下測試擬議系統,是在部署前發(fā)現和校正缺陷的一種方法。

一種常見(jiàn)的技術(shù)是使用函數發(fā)生器向收發(fā)器的 TxD 引腳傳輸典型的運行標準數據幀,以檢驗所選的 CAN 收發(fā)器是否發(fā)生錯誤。雖然這是對單節點(diǎn)的合理測試,但并不能很好地反映具有長(cháng)總線(xiàn)的多節點(diǎn)系統在現場(chǎng)的性能。例如,復雜系統可能出現的問(wèn)題包括高頻運行時(shí)電路存根產(chǎn)生的反射和其他偽影。這些都會(huì )帶來(lái)位之間的相移。

CAN 的仲裁機制只有在位同步的情況下才能工作。如果位與位之間的相移超過(guò)單個(gè)位傳輸時(shí)間的二分之一,則同步失敗,無(wú)法進(jìn)行仲裁。

在以 500 Kbits/s 至 1 Mbit/s 速率運行的 CAN2.0 傳統系統中,單個(gè)位傳輸時(shí)間足夠長(cháng),因此很少會(huì )誘發(fā)相移問(wèn)題。然而,由于 CAN-FD 具有更高的吞吐速度,因此位傳輸時(shí)間縮短,相位偏移很快就會(huì )變得很大。

要克服這些挑戰,就不能僅僅測試單個(gè)節點(diǎn),而是要通過(guò)復制完整的終端系統并在各種不同的工作條件下進(jìn)行測試來(lái)驗證設計。雖然這比基本測試更費時(shí)費力,但比處理現場(chǎng)故障和客戶(hù)不滿(mǎn)要節省得多。

實(shí)例

要了解相移測試在實(shí)際中的工作原理,可以考慮使用入圍供應商提供的 CAN 收發(fā)器和 CAN 控制器設計一個(gè)系統。該節點(diǎn)與一條 20 m 總線(xiàn)連接,該總線(xiàn)還支持許多其他節點(diǎn),包括 CAN2.0 和 CAN-FD 組件。為了便于測試,節點(diǎn)的傳輸速率為 13.3 Mbits/s,相當于 75 ns 的位寬。出于同步和仲裁目的,控制器以 80% 的 TxD 位寬進(jìn)行采樣,因此它需要的最小 RxD 位寬為 0.8 x 75 = 60 ns,其中包含上升時(shí)間、下降時(shí)間和環(huán)路延遲。測試組件產(chǎn)生的 TxD 位寬為 48 ns,從而導致系統失效。

對 Analog Devices 的 MAX33012EASA+ CAN 收發(fā)器進(jìn)行了同樣的測試。在該測試中,測得 TxD 的位寬為 75 ns,RxD 的位寬為 72 ns。72 ns 的位寬超過(guò)了 60 ns 的 80% 采樣時(shí)間要求,因此系統同步和仲裁運行是令人滿(mǎn)意的。13.3 Mbits/s 的吞吐量比系統在目標應用中使用時(shí)的速度還要快,這表明它足以在所有預期運行條件下正常運行(圖 5)。


圖 5:在 20 米總線(xiàn)上以 13.3 Mbits/s 的速度(75 ns TxD 位寬)運行 MAX33012EASA+ CAN 收發(fā)器的測試結果。RxD 位寬為 72 ns,足以確保滿(mǎn)足控制器 80% 的采樣時(shí)間 (60 ns) 并實(shí)現同步。(圖片來(lái)源:Analog Devices)

內置故障排除功能

通過(guò)使用包含故障檢測和報告功能的組件,可以使測試過(guò)程更輕松,成本更低。MAX33012EASA+ CAN 收發(fā)器等器件不僅能快速發(fā)現原型和試生產(chǎn) CAN 電路中存在的問(wèn)題,還能用于對實(shí)時(shí)控制系統部署來(lái)說(shuō),快速故障排除是重要功能的應用。

MAX33012EASA+ 是一款 +5 V CAN 收發(fā)器,可解決過(guò)流、過(guò)壓和傳輸故障等常見(jiàn)故障。該器件的故障保護電壓高達 ±65 V,適合需要過(guò)壓保護的應用。共模電壓范圍為 ±25 V,可在如重型機械等嘈雜環(huán)境中進(jìn)行通信。CANH 和 CANL 輸出具有短路限流功能,并通過(guò)熱關(guān)斷電路防止功率耗散過(guò)大,這種電路將驅動(dòng)器輸出置于高阻抗狀態(tài)。

MAX33012EASA+ 的工作頻率高達 5 Mbits/s,并具有將壓擺率減慢至 8 V/μs 的選項,從而最大限度地減少電磁干擾 (EMI) 并允許使用非屏蔽雙絞線(xiàn)或并行電纜(圖 6)。


圖 6:所示為多模系統中的 MAX33012EASA+ 應用電路。在本例中,微控制器包括一個(gè)嵌入式 CAN 控制器。(圖片來(lái)源:Analog Devices)

CAN 收發(fā)器的故障檢測在上電時(shí)通過(guò) 100 次 TxD 低電平到高電平的轉換來(lái)啟用(通常是一個(gè)或兩個(gè)標準數據幀,具體取決于所使用的協(xié)議)。故障檢測啟用后,如果檢測到故障,則需要在 TxD 上再進(jìn)行 16 次低電平到高電平的轉換,以傳輸故障代碼。最后,還需要 10 個(gè)脈沖才能清除故障。

啟用故障檢測后,如果 RxD 上的信號連續 10 個(gè)周期與 TxD 不匹配,就會(huì )觸發(fā)傳輸故障檢測功能。例如,當兩個(gè)終端電阻都缺失,或者 CANH 與地或 CANL 與 VDD 之間存在短路而導致差分信號不符合規范時(shí),就會(huì )出現這種情況。

Analog Devices 提供的 CANbus 接口 Arduino 平臺 評估板 MAX33012E 可用于演示 MAX33012E 的功能。雖然該器件采用 Arduino 盾板外形,但也能單獨用作評估板。

結語(yǔ)

為確保多模 CAN2.0 和 CAN-FD 混合系統在現場(chǎng)可靠運行,必須對整個(gè)設計進(jìn)行全面測試。然而,簡(jiǎn)單的單節點(diǎn)測試不足以檢測出故障。然后,由于同步問(wèn)題可能會(huì )破壞該技術(shù)的仲裁機制,這些未檢測出的故障又會(huì )導致現場(chǎng)故障。通過(guò)選擇具有內置故障檢測和報告功能的 CAN 收發(fā)器,可以簡(jiǎn)化混合多節點(diǎn) CAN 系統的初始測試和后期現場(chǎng)故障排除工作。
本文地址:http://selenalain.com/thread-845212-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页