遠程幀
通常,數據傳輸是由數據源節點(例如,傳感器發出數據幀)自主完成的。但也可能存在目標節點向源節點請求發送數據的情況。要做到這一點,目標節點需發送一個遠程幀,其中的標識符應與所需數據幀的標識符相匹配。隨后,相應的數據源節點會發送一個數據幀以響應遠程幀請求。遠程幀與數據幀存在兩點不同:
1)遠程幀的RTR 位為隱性狀態;
2)遠程幀沒有數據字段。
當帶有相同標識符的數據幀和遠程幀同時發出時,數據幀將贏得仲裁,因為其標識符后面的RTR 位為顯性。這樣,可使發送遠程幀的節點立即收到所需數據。
錯誤幀
錯誤幀是由檢測到總線錯誤的任一節點產生。錯誤幀包含兩個字段:錯誤標志字段及緊隨其后的錯誤定界字段。錯誤標志字段有兩種類型。節點發送哪種類型的錯誤標志字段,取決于檢測到錯誤并產生錯誤標志字段的節點的錯誤狀態。
主動錯誤
當錯誤主動節點檢測到一個總線錯誤時,這個節點將產生一個主動錯誤標志來中斷當前的報文發送。主動錯誤標志由6 個連續的顯性位構成。這種位序列主動打破了位填充規則。所有其他節點在識別到所生成的位填充錯誤后,會自行產生錯誤幀,稱為錯誤反射標志。錯誤標志字段因此包含6 到12 個連續顯性位(由1 個或多個節點產生)。錯誤定界字段(8 個隱性位)為錯誤幀劃上句號。在錯誤幀發送完畢后,總線主動恢復正常狀態,被中斷的節點會嘗試重新發送被中止的報文。
被動錯誤
當錯誤被動節點檢測到一個總線錯誤時,該節點將發送一個被動錯誤標志,并緊接著發送錯誤定界字段。錯誤被動標志由6 個連續的隱性位構成,而錯誤被動節點發出的錯誤幀包含14 個隱性位。由此可知,除非總線錯誤被錯誤主動節點或正在發送報文的節點檢測到,否則由于錯誤被動標志不會影響總線運行,將繼續發送報文。如果發送節點產生一個錯誤被動標志,那么,由于位填充規則被打破,將導致其他節點產生錯誤幀。錯誤幀發送完畢后,錯誤被動節點必須等待總線上出現6 個連續隱性位后,才能嘗試重新參與總線通訊。錯誤定界符由8 個隱性位組成,允許總線節點在錯誤發生后重新啟動總線通訊。
-
數據源
+關注
關注
1文章
63瀏覽量
9729 -
數據幀
+關注
關注
0文章
47瀏覽量
6804
原文標題:CAN總線遠程幀和錯誤幀
文章出處:【微信號:ALIFPGA,微信公眾號:FPGA極客空間】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論