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