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