CAN總線是可以掛載多個控制單元,每個單元均可以發送和接收數據,為了避免發生沖突,協議規定只有等信道空閑時刻優先級高的單元才能占有總線并發送數據,那么CAN單元是如何判斷優先級的呢?CAN仲裁的實現方式每一個CAN報文的CANID有唯一標識的11bit/29bit構成,以標準CAN幀為例,11bitCANID在CAN幀中的位置如圖1所示。SOF之后是Identifier,各個節點要外發的CANID通過CANID仲裁,優先級高的報文被優先發送。同時,對應節點優先獲得CAN總線的使用權,而仲裁失敗的節點則停止數據的發送,轉而進行數據的接收,只能等待下一個SOF時刻再去仲裁。圖1標準CAN數據幀格式
2. CAN總線仲裁機制的實現
那么CANID的優先等級是如何判斷的呢?其實CAN總線ID仲裁方式相當于一個“線與”的結構,顯性(邏輯0)與隱形(邏輯1)相與變為顯性即0&1=0,硬件電路簡圖可參考圖2。標準CAN幀格式的總線仲裁方式如圖3所示。因為高位在前,低位在后,故CAN標識符組成的數值越小優先級越高。圖3總線仲裁方式圖
CANID沖突發生的條件及現象本文以我司協議轉換模塊CSM300為例進行介紹,CSM300是集成微處理器、CAN-bus控制器、CAN-bus收發器、DC-DC轉換、高速數字隔離于一體的嵌入式CAN與UART/SPI雙向轉換模塊。如果我們將兩個ID均為00000000的CSM300模塊組成一個CAN總線網絡系統,當這兩個ID相同的模塊同時往CAN總線端發送數據時將會造成仲裁失敗。
2. CANID沖突的現象
以CSM300為例進行說明,電路硬件簡易連接圖如圖4所示,用兩個上位機通過兩路串口同時給兩個相同配置的模塊發送一組數據,此時兩模塊會同時將RXD腳接收到的數據轉換至CAN總線端。因為兩個CAN節點的ID一樣,CAN總線仲裁失敗,兩發送節點收不到反饋信號,將一直發送最后一幀數據,此時CAN總線端的波形如圖5所示。圖5CAN總線波形圖
CSM系列如何避免CANID沖突為滿足不同環境的應用,CSM300系列和CSM100系列均有透明轉換、透明帶標識轉換、自定義協議轉換三種轉換方式供用戶選配,如圖6所示。圖6轉換方式選配圖
透明轉換方式下用戶可通過MCU或上位機將模塊配置為不同的ID避免發生仲裁失敗的情況,透明轉換方式下,模塊無需對數據進行額外處理,最大限度地提高了數據轉換速度,也提高了緩沖區的利用率。不過此模式下每個模塊的CANID在配置完成后不能更改除非用戶再次配置,此外該模式下可能將兩組時間間隔接近的UART幀識別為一組數據進行轉換,造成數據轉換錯誤。透明帶標識轉換方式下,用戶可以在配置時固定CANID在串行幀的位置和長度如圖7所示,通過改變串行幀數據來控制所發數據的CAN幀ID,方便用戶在同一節點發送不同ID的CAN數據。但是此模式下需要確保串行幀的時間間隔足夠大,避免模塊不能正確識別每組串行幀的結束造成數據轉換錯誤。透明帶標識模式下串行幀最小間隔具體要求可參考CSM100和CSM300的用戶手冊。
圖7透明帶標識轉換配置圖
有效的自定義協議轉換串行幀包括了幀頭、幀尾、幀ID和幀長度等,用戶可通過改變串行幀數據來控制CAN幀ID,方便用戶在同一節點發送不同ID的CAN數據。同時用戶將在配置時固定幀頭和幀尾如圖8所示,此模式下用戶通過串行幀數據告知模塊串行幀的幀頭、幀尾和數據長度,故此轉換方式下可有效避免因串行幀間隔時間短造成的數據轉換錯誤的情況。
原文標題:【技術分享】不懂CAN協議?如何避免總線仲裁失???
文章出處:【微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
原文標題:【技術分享】不懂CAN協議?如何避免總線仲裁失???
文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。
相關推薦
的通信協議,它允許多個節點共享同一通信介質(如雙絞線)。CAN總線的主要特點包括: 多主控制 :任何節點都可以在任何時間發送消息,無需中央控制。 差分信號傳輸 :提高信號的抗干擾能力。 非破壞性
發表于 12-23 09:04
?295次閱讀
CAN(Controller Area Network)總線是一種用于車輛內部網絡的串行通信協議,由Bosch公司在1986年開發。它以其高可靠性、實時性和靈活性而聞名,廣泛應用于汽車電子、工業控制
發表于 11-21 10:15
?460次閱讀
隨著汽車電子系統的復雜性增加,車輛內部通信的需求也在不斷增長。CAN總線和LIN總線作為兩種主要的車載通信協議,各自扮演著重要的角色。 1. 設計原理
發表于 11-12 10:13
?1652次閱讀
隨著汽車電子系統的日益復雜化,對通信網絡的需求也在不斷增長。CAN總線作為一種成熟的通信協議,已經在汽車行業中得到了廣泛的應用。 一、CAN總線
發表于 11-12 10:10
?1048次閱讀
的主要特點 多主控制 :任何節點都可以在任何時候發送信息,無需請求許可。 非破壞性總線仲裁 :當兩個或多個節點同時發送信息時,優先級較低的消息會被自動停止發送,以避免數據沖突。 錯誤檢測與處理 :
發表于 11-12 09:46
?1002次閱讀
自動化系統中各種設備的優選方案。本文將詳細介紹CAN總線的基本特性,以及它在工業自動化中的應用。 2. CAN總線的基本原理 CAN
發表于 11-12 09:45
?692次閱讀
提及總線,總是讓人聯想到那些交錯在一起的計算機電線。那么這些電線如何發揮功效呢?這還得配合總線協議的管理來使用。那么今天我們介紹的就是CAN總線
發表于 10-15 08:05
?1500次閱讀
電子發燒友網站提供《使用CAN仲裁進行電氣層測試.pdf》資料免費下載
發表于 09-30 14:49
?0次下載
CAN(Controller Area Network)總線協議的數據鏈路層是CAN通信中至關重要的一部分,它負責在物理層之上實現數據的可靠傳輸。數據鏈路層不僅管理著幀的同步、差錯控制
發表于 09-03 14:14
?631次閱讀
電子發燒友網報道(文/吳子鵬)在軟件定義汽車逐漸成為主流的當下,數據傳輸的速度和效率成為打造智能汽車的瓶頸,在這種大背景下,傳統CAN總線應對一些需求已經相當吃力,因此CAN FD和CAN
發表于 08-12 01:12
?4445次閱讀
CAN總線(Controller Area Network)是一種用于汽車和工業自動化領域的局域網技術,具有實時性、可靠性、靈活性和成本效益等優點。本文將詳細介紹CAN
發表于 06-16 10:19
?3731次閱讀
CAN總線協議(Controller Area Network,簡稱CAN),是一種在汽車和工業自動化領域廣泛應用的串行通信協議。自1986
發表于 05-27 16:32
?1355次閱讀
CAN總線調試過程中出現報文發送失敗。很多工程師都對此只知其一不知其二,今天我們就以CAN報文發送失敗的問題來做一次探討。在了解
發表于 04-12 08:25
?2152次閱讀
總線的特性。 首先,高速CAN總線是指數據傳輸速率較高的CAN總線,其中包括CAN 2.0A和
發表于 01-31 14:09
?2805次閱讀
CAN總線協議是一種串行通訊協議,主要用于汽車和工業自動化領域,實現了實時應用的需求。 首先,CAN總線
發表于 01-19 17:47
?1132次閱讀
評論