本文主要介紹了CAN總線遠程幀和錯誤幀,首先我們先來了解了解一下通訊時使用的幀類型有哪些,他們的作用又是什么,具體的跟隨小編一起來了解一下吧。
通訊時使用下面5個類型的幀
1、數據幀
2、遙控幀
3、錯誤幀
4、過載幀
5、幀間空隙
在所有這些幀中,數據幀和遙控幀由用戶設置,而其它幀則由CAN硬件設置。 數據和遙控幀有兩種格式:標準和擴展格式。標準格式有11bit的ID,而擴展格式則是29bit的ID。以下是各個幀的作用。
CAN總線遠程幀和錯誤幀
一、遠程幀
通常,數據傳輸是由數據源節點(例如,傳感器發出數據幀)自主完成的。但也可能存在目標節點向源節點請求發送數據的情況。要做到這一點,目標節點需發送一個遠程幀,其中的標識符應與所需數據幀的標識符相匹配。隨后,相應的數據源節點會發送一個數據幀以響應遠程幀請求。遠程幀與數據幀存在兩點不同:
1)遠程幀的RTR 位為隱性狀態;
2)遠程幀沒有數據字段。
當帶有相同標識符的數據幀和遠程幀同時發出時,數據幀將贏得仲裁,因為其標識符后面的RTR 位為顯性。這樣,可使發送遠程幀的節點立即收到所需數據。
二、錯誤幀
這個幀用來通知在傳輸期間發生了一個錯誤,錯誤幀由一個錯誤標志和一個錯誤定界符組成,錯誤幀由CAN的硬件來發送。圖24顯示了錯誤幀的結構。
(1) 錯誤標志:有2種錯誤標志類型:主動錯誤和被動錯誤標志
a)主動錯誤標志:6個顯性位
b) 被動錯誤標志:6個隱性位
(2) 錯誤定界符:由8個隱性位組成。
注1:錯誤標志重疊:取決于連接到總線上的各單元檢測出錯誤的時間,錯誤標志可能一個重疊在另一個上,總共可達12bit長度。
注2:主動錯誤標志:處于主動錯誤狀態的單元檢測出錯誤時輸出的錯誤標志。
注3:被動錯誤標志:處于被動錯誤狀態的單元檢測出錯誤時輸出的錯誤標志。
主動錯誤
當錯誤主動節點檢測到一個總線錯誤時,這個節點將產生一個主動錯誤標志來中斷當前的報文發送。主動錯誤標志由6 個連續的顯性位構成。這種位序列主動打破了位填充規則。所有其他節點在識別到所生成的位填充錯誤后,會自行產生錯誤幀,稱為錯誤反射標志。錯誤標志字段因此包含6 到12 個連續顯性位(由1 個或多個節點產生)。錯誤定界字段(8 個隱性位)為錯誤幀劃上句號。在錯誤幀發送完畢后,總線主動恢復正常狀態,被中斷的節點會嘗試重新發送被中止的報文。
被動錯誤
當錯誤被動節點檢測到一個總線錯誤時,該節點將發送一個被動錯誤標志,并緊接著發送錯誤定界字段。錯誤被動標志由6 個連續的隱性位構成,而錯誤被動節點發出的錯誤幀包含14 個隱性位。由此可知,除非總線錯誤被錯誤主動節點或正在發送報文的節點檢測到,否則由于錯誤被動標志不會影響總線運行,將繼續發送報文。如果發送節點產生一個錯誤被動標志,那么,由于位填充規則被打破,將導致其他節點產生錯誤幀。錯誤幀發送完畢后,錯誤被動節點必須等待總線上出現6 個連續隱性位后,才能嘗試重新參與總線通訊。錯誤定界符由8 個隱性位組成,允許總線節點在錯誤發生后重新啟動總線通訊。
錯誤幀的輸出時序
檢測到發生錯誤的單元輸出一個錯誤標志,以通知其它單元。
處于主動錯誤狀態的單元輸出的錯誤標志為主動錯誤標志;處于被動錯誤狀態的單元輸出的錯誤標志為被動錯誤標志。
發送單元發送完錯誤幀之后,將再次發送數據幀或遙控幀。
錯誤標志輸出時序如表9:
-
CAN總線
+關注
關注
145文章
1951瀏覽量
130753
發布評論請先 登錄
相關推薦
評論