CAN總線接□模塊工作原理
發布時間:2008/11/25 0:00:00 訪問次數:2287
1.can模塊簡介
控制器局域網(can)模塊是用于與其他外圍設備或單片機進行通信的模塊,這種接口協議能在較大的噪聲 環境中進行通信,具有良好的擾干擾性能。
can模塊是一個通信控制器,執行的是bosch公司的can2.0a/b協議。它能支持can1.2、can 2.0a、can 2.ob 協議的舊版本和can2.ob現行版本,此控制器模塊包含完整的can系統。
can模塊由協議驅動和信息緩沖及控制組成,can協議驅動can總線上接收和發送信息的所有功能。信息裝載 到某個相應的數據寄存器后再發送,通過讀相應的寄存器可檢查狀態與錯誤信息。在can總線上檢測到的任 何信息都要進行錯誤檢查,然后與過濾器進行比較,判斷是否被接收和存儲到兩個接收寄存器之一。
2.can模塊支持的幀類型
can模塊支持以下幀類型:標準數據幀、擴展數據幀、遠程幀、出錯幀、過載幀和空閑幀。
(1)數據幀。
用于各節點之間傳送數據消息,由7個不同的位場組成:幀起始、仲裁場、控制場、數據場、crc場、應答 場和幀結束。數據幀結構如圖1所示。
圖1 數據幀組成
(2)遠程幀。
當can網絡上一個節點需要其他節點所擁有的數據信息時,可以通過發送遠程幀來請求另一節點發送。該 遠程幀的標識符標識了所需數據的類型,因此,被送回的數據信息的標識符和遠程幀的標識符完全一致。數 據源節點在接收到遠程幀后,根據遠程幀的標識符判斷所需數據信`患類型,并在總線空閑時將相應數據送 出。遠程幀由6個位場組成:幀起始、仲裁場、控制場、crc場、應答場和幀結束。除了沒有數據場和rtr為 隱性外,遠程幀結構和數據幀完全相同,遠程幀結構如圖2所示。
圖2 遠程幀結構
(3)錯誤幀。
為進行錯誤界定,每個can控制器均設有兩個錯誤計數器:發送錯誤計數器(tec)和接收錯誤計數器 (rec)。can總線上的所有節點按其錯誤計數器數值情況可分為3個狀態:錯誤活動狀態、錯誤認可狀態和 總線關閉狀態。節點狀態轉換如圖3所示。
圖3 節點狀態轉換
上電復位后,兩個錯誤計數器的數值都為0,節點處于錯誤活動狀態,可正常參與總線通信,檢測到錯誤時 ,發送活動錯誤標志。當錯誤計數器任一數值超過127時,節點進入錯誤認可狀態。處于錯誤狀態的節點可 參與總線通信,但出錯后,發送認可錯誤標志,并在開始進一步發送數據之前等待一段附加時間(暫停發送 場)。
當發送錯誤計數器和接收計數器均小于或等于127時,節點從錯誤認可狀態再次變為錯誤活動狀態。若發送 錯誤計數器數值超過255后,節點進入總線關閉狀態,既不能向總線發送數據,也不能從總線接收數據。當 軟件執行操作模式請求命令,并等待128次總線釋放(busˉfree)序列(11位連續隱性位)后,節點從總線 脫離狀態重新回到錯誤活動狀態。
錯誤幀由兩個不同的位場組成,第一個場由來自不同的節點的錯誤標志疊加而成,第二個場為錯誤界定符 ,錯誤幀結構如圖4所示。
圖4 錯誤幀結構
(4)過載幀。
超載幀由超載標志和超載界定符組成。超載標志由6個顯性位組成,其格式與活動錯誤標志相同。超載界 定符由8個隱性位組成,其格式與錯誤界定符相同。導致發送超載幀的兩個條件為:
①一個接收節點內部接收條件未準備好,要求延遲下一個數據幀或遠程幀發送;
②在間歇場(3位)檢測到顯性位。
當超載標志發出后,每個節點監視總線狀態,直至檢測到從顯性至隱性位的跳變,此時,所有的節點均己 完成了超載標志的發送,隨后所有節點開始發送8個隱性位組成的超載界定符,超載幀結構如圖5所示。
圖5 超載幀結構
(5)空閑幀。
數據幀及遠程幀與前幀消息之間的間隔被稱為幀間空間的場隔開,如圖6所示,幀間
圖6 不包含暫停發送場的幀間空間
空間由間歇場和總線空閑場組成,前面已經發送過報文的錯誤節點還包括暫停發送場。間歇場由3個隱性位 組成,在此期間,can節點不進行幀發送。間歇場的存在使can控制器在下次消息發送前有時間進行內部處理 操作。
總線空閑場可以為任意長度,此時總線處于空閑狀態,允許任何節點開始報文發送。等待報文發送的節點 緊隨間歇場后啟動報文發送,即在空閑場第一位期間就啟動
1.can模塊簡介
控制器局域網(can)模塊是用于與其他外圍設備或單片機進行通信的模塊,這種接口協議能在較大的噪聲 環境中進行通信,具有良好的擾干擾性能。
can模塊是一個通信控制器,執行的是bosch公司的can2.0a/b協議。它能支持can1.2、can 2.0a、can 2.ob 協議的舊版本和can2.ob現行版本,此控制器模塊包含完整的can系統。
can模塊由協議驅動和信息緩沖及控制組成,can協議驅動can總線上接收和發送信息的所有功能。信息裝載 到某個相應的數據寄存器后再發送,通過讀相應的寄存器可檢查狀態與錯誤信息。在can總線上檢測到的任 何信息都要進行錯誤檢查,然后與過濾器進行比較,判斷是否被接收和存儲到兩個接收寄存器之一。
2.can模塊支持的幀類型
can模塊支持以下幀類型:標準數據幀、擴展數據幀、遠程幀、出錯幀、過載幀和空閑幀。
(1)數據幀。
用于各節點之間傳送數據消息,由7個不同的位場組成:幀起始、仲裁場、控制場、數據場、crc場、應答 場和幀結束。數據幀結構如圖1所示。
圖1 數據幀組成
(2)遠程幀。
當can網絡上一個節點需要其他節點所擁有的數據信息時,可以通過發送遠程幀來請求另一節點發送。該 遠程幀的標識符標識了所需數據的類型,因此,被送回的數據信息的標識符和遠程幀的標識符完全一致。數 據源節點在接收到遠程幀后,根據遠程幀的標識符判斷所需數據信`患類型,并在總線空閑時將相應數據送 出。遠程幀由6個位場組成:幀起始、仲裁場、控制場、crc場、應答場和幀結束。除了沒有數據場和rtr為 隱性外,遠程幀結構和數據幀完全相同,遠程幀結構如圖2所示。
圖2 遠程幀結構
(3)錯誤幀。
為進行錯誤界定,每個can控制器均設有兩個錯誤計數器:發送錯誤計數器(tec)和接收錯誤計數器 (rec)。can總線上的所有節點按其錯誤計數器數值情況可分為3個狀態:錯誤活動狀態、錯誤認可狀態和 總線關閉狀態。節點狀態轉換如圖3所示。
圖3 節點狀態轉換
上電復位后,兩個錯誤計數器的數值都為0,節點處于錯誤活動狀態,可正常參與總線通信,檢測到錯誤時 ,發送活動錯誤標志。當錯誤計數器任一數值超過127時,節點進入錯誤認可狀態。處于錯誤狀態的節點可 參與總線通信,但出錯后,發送認可錯誤標志,并在開始進一步發送數據之前等待一段附加時間(暫停發送 場)。
當發送錯誤計數器和接收計數器均小于或等于127時,節點從錯誤認可狀態再次變為錯誤活動狀態。若發送 錯誤計數器數值超過255后,節點進入總線關閉狀態,既不能向總線發送數據,也不能從總線接收數據。當 軟件執行操作模式請求命令,并等待128次總線釋放(busˉfree)序列(11位連續隱性位)后,節點從總線 脫離狀態重新回到錯誤活動狀態。
錯誤幀由兩個不同的位場組成,第一個場由來自不同的節點的錯誤標志疊加而成,第二個場為錯誤界定符 ,錯誤幀結構如圖4所示。
圖4 錯誤幀結構
(4)過載幀。
超載幀由超載標志和超載界定符組成。超載標志由6個顯性位組成,其格式與活動錯誤標志相同。超載界 定符由8個隱性位組成,其格式與錯誤界定符相同。導致發送超載幀的兩個條件為:
①一個接收節點內部接收條件未準備好,要求延遲下一個數據幀或遠程幀發送;
②在間歇場(3位)檢測到顯性位。
當超載標志發出后,每個節點監視總線狀態,直至檢測到從顯性至隱性位的跳變,此時,所有的節點均己 完成了超載標志的發送,隨后所有節點開始發送8個隱性位組成的超載界定符,超載幀結構如圖5所示。
圖5 超載幀結構
(5)空閑幀。
數據幀及遠程幀與前幀消息之間的間隔被稱為幀間空間的場隔開,如圖6所示,幀間
圖6 不包含暫停發送場的幀間空間
空間由間歇場和總線空閑場組成,前面已經發送過報文的錯誤節點還包括暫停發送場。間歇場由3個隱性位 組成,在此期間,can節點不進行幀發送。間歇場的存在使can控制器在下次消息發送前有時間進行內部處理 操作。
總線空閑場可以為任意長度,此時總線處于空閑狀態,允許任何節點開始報文發送。等待報文發送的節點 緊隨間歇場后啟動報文發送,即在空閑場第一位期間就啟動
上一篇:CAN總線接□模塊的元器件選型
上一篇:雙機通信接□模塊的程序設計