先看看工作原理
當(dāng) CAN 總線(xiàn)上的一個(gè)節(jié)點(diǎn)(站)發(fā)送數(shù)據(jù)時(shí),它以報(bào)文的形式廣播給網(wǎng)絡(luò)中所有節(jié)點(diǎn),對(duì)每個(gè)節(jié)點(diǎn)來(lái)說(shuō),,無(wú)論數(shù)據(jù)是否是發(fā)給自己的,都對(duì)其接收,。
每組報(bào)文開(kāi)頭的 11 位字符為標(biāo)識(shí)符,定義了報(bào)文的優(yōu)先級(jí),,這種報(bào)文格式成為面向內(nèi)容的編制方案,。同一系統(tǒng)中標(biāo)識(shí)符是唯一的,不可能有兩個(gè)站發(fā)送具有相同標(biāo)識(shí)符的報(bào)文,,當(dāng)幾個(gè)站同時(shí)競(jìng)爭(zhēng)總線(xiàn)讀取時(shí),,這種配置十分重要,。
大體的工作原理我們搞清了,,但是根本的協(xié)議我們還要花一番功夫。下面介紹一個(gè)重要的名詞,,“顯性”和“隱性”:
在我看到的很多文章里,,有很多顯性和隱性的地方,為此我頭痛不已,,最終我把它們徹底弄明白了,。
首先 CAN 數(shù)據(jù)總線(xiàn)有兩條導(dǎo)線(xiàn),一條是黃色的,,一條是綠色的 ------ 分別是 CAN_High 線(xiàn)和 CAN_Low 線(xiàn),,當(dāng)靜止?fàn)顟B(tài)時(shí),,這兩條導(dǎo)線(xiàn)上的電平一樣,這個(gè)電平稱(chēng)為靜電平,,大約為 2.5 伏,。
這個(gè)靜電平狀態(tài)就是隱形狀態(tài),也稱(chēng)隱性電平,,也就是沒(méi)有任何干擾的時(shí)候的狀態(tài)稱(chēng)為隱性狀態(tài),。當(dāng)有信號(hào)修改時(shí),CAN_High 線(xiàn)上的電壓值變高了,,一般來(lái)說(shuō)會(huì)升高至少 1V,;而 CAN_Low 線(xiàn)上的電壓值會(huì)降低一個(gè)同樣值,也是 1v,。
那么這時(shí)候,,CAN_High 就是 2.5v+1v=3.5v,它就處于激活狀態(tài)了,。而 CAN_Low 降為 2.5v-1v=1.5v,。可以看看這個(gè)圖
由此我們得到
在隱性狀態(tài)下,,CAN_High 線(xiàn)與 CAN_Low 沒(méi)有電壓差,,這樣我們看到?jīng)]有任何變化也就檢測(cè)不到信號(hào)。但是在顯性狀態(tài)時(shí),,改值最低為 2V,,我們就可以利用這種變化才傳輸數(shù)據(jù)了。所以出現(xiàn)了那些幀,,那些幀中的場(chǎng),,那些場(chǎng)中的位,云云,。
在總線(xiàn)上通常邏輯 1 表示隱性,。而 0 表示顯性。這些 1 啊,,0 啊,,就可以利用起來(lái)為我們傳數(shù)據(jù)了。利用這種電壓差,,我們可以接收信號(hào),。
一般來(lái)說(shuō),控制單元通過(guò)收發(fā)器連接到 CAN 驅(qū)動(dòng)總線(xiàn)上,,這個(gè)收發(fā)器(顧名思義,,可發(fā)送,可接收)內(nèi)有一個(gè)接收器,,該接收器是安裝在接收一側(cè)的差動(dòng)信號(hào)放大器,。然后,,這個(gè)放大器很自然地就放大了 CAN_High 和 CAN_Low 線(xiàn)的電平差,然后傳到接收區(qū),。如下圖
由上圖可知,,當(dāng)有電壓差,差動(dòng)信號(hào)放大器放大傳輸,,將相應(yīng)的數(shù)據(jù)位轉(zhuǎn)化為 0,。
下面我們進(jìn)入重點(diǎn)難點(diǎn) ----- 報(bào)文
所謂報(bào)文,就是 CAN 總線(xiàn)上要傳輸?shù)臄?shù)據(jù)報(bào),,為了安全,,我們要給我們傳輸?shù)臄?shù)據(jù)報(bào)編碼定一下協(xié)議,這樣才能不容易出錯(cuò),,所以出現(xiàn)了很多的幀,,以及仲裁啊,CRC 效驗(yàn),。這些都是難點(diǎn),。
識(shí)別符的概念
識(shí)別符顧名思義,就是為了區(qū)分不同報(bào)文的可以鑒別的好多字符位,。有標(biāo)準(zhǔn)的,,和擴(kuò)展的。標(biāo)準(zhǔn)的是 11 位,,擴(kuò)展的是 29 位,。他有一個(gè)功能就是可以提供優(yōu)先級(jí),也就是決定哪個(gè)報(bào)文優(yōu)先被傳輸,,報(bào)文標(biāo)識(shí)符的值越小,,報(bào)文具有越高的優(yōu)先權(quán)。
CAN 的報(bào)文格式有兩種,,不同之處其實(shí)就是識(shí)別符長(zhǎng)度不同,,具有 11 位識(shí)別符的幀稱(chēng)為標(biāo)準(zhǔn)幀,而還有 29 位識(shí)別符的幀為擴(kuò)展幀,,CAN 報(bào)文有以下 4 個(gè)不同的幀類(lèi)型,。分別是:
(1) 數(shù)據(jù)幀:數(shù)據(jù)幀將數(shù)據(jù)從發(fā)送器傳輸?shù)浇邮掌鳎?/p>
(2) 遠(yuǎn)程幀:總線(xiàn)節(jié)點(diǎn)發(fā)出遠(yuǎn)程幀,請(qǐng)求發(fā)送具有同一標(biāo)識(shí)符的數(shù)據(jù)幀,;
(3) 錯(cuò)誤幀:任何節(jié)點(diǎn)檢測(cè)到總線(xiàn)錯(cuò)誤就發(fā)出錯(cuò)誤幀,;
(4) 過(guò)載幀:過(guò)載幀用已在先行的后續(xù)的數(shù)據(jù)幀(或遠(yuǎn)程幀)之間提供一附加的延時(shí)。
我們先研究數(shù)據(jù)幀吧,。
一,數(shù)據(jù)幀由 7 個(gè)不同位場(chǎng)組成(幀起始,、仲裁場(chǎng),、控制場(chǎng),、數(shù)據(jù)場(chǎng)、CRC 場(chǎng),、應(yīng)答場(chǎng),、幀結(jié)尾)。
這里的位場(chǎng),,就是不同位的組合,,這名字起的很爛,讓人看了感覺(jué)很抽象,。我們來(lái)看看這些個(gè)不同的位場(chǎng)吧,。一開(kāi)始是一位幀起始,也叫 SOF,。它用顯性位表示,,也就是 0;它告訴我們,,兩個(gè)線(xiàn)上有電壓差了,,也就是有數(shù)據(jù)了。
這個(gè)幀起始看起來(lái)只有一位,,其實(shí)不簡(jiǎn)單了,。為了讓所有的分站都同步于發(fā)送報(bào)文的發(fā)送站,好接收數(shù)據(jù),,有很多要考慮的地方,。
報(bào)文的數(shù)據(jù)幀結(jié)構(gòu)
然后下一個(gè)場(chǎng)是仲裁場(chǎng)。這個(gè)仲裁很抽象,,其實(shí)在這里就是為了解決一個(gè)問(wèn)題,。如果 2 個(gè)或 2 個(gè)以上的單元同時(shí)開(kāi)始傳送報(bào)文,那么就會(huì)有總線(xiàn)訪問(wèn)沖突,,那么仲裁機(jī)制就是用來(lái)根據(jù)標(biāo)識(shí)符優(yōu)先級(jí)來(lái)一個(gè)一個(gè)的去掉低級(jí)別的數(shù)據(jù),。我們可以詳細(xì)的描述這場(chǎng)生動(dòng)的爭(zhēng)搶總線(xiàn)的戰(zhàn)斗。
當(dāng)總線(xiàn)處于空閑狀態(tài)時(shí)呈隱性電平,,此時(shí)任何節(jié)點(diǎn)都可以向總線(xiàn)發(fā)送顯性電平作為幀的開(kāi)始,。2 個(gè)或 2 個(gè)以上的節(jié)點(diǎn)同時(shí)發(fā)送開(kāi)始爭(zhēng)搶總線(xiàn),但是總線(xiàn)只能被一個(gè)人搶走,。這時(shí)候到底怎么決定誰(shuí)留下,,誰(shuí)滾蛋呢。我們開(kāi)始思索,,我們以前定義了標(biāo)識(shí)符,,標(biāo)識(shí)符有優(yōu)先級(jí),它越小,,它優(yōu)先級(jí)越高,。那么怎么實(shí)現(xiàn)的呢,。看下面圖:
首先搞明白兩點(diǎn),,
一,、下圖中, 低波形代表 0(顯性),,高波形代表 1(隱性),;
二、當(dāng)隱性碰到顯性,,就變?yōu)轱@性,。
如圖所示,節(jié)點(diǎn) A 和節(jié)點(diǎn) B 的標(biāo)識(shí)符的第 10,、9,、8 位電平相同,因此兩個(gè)節(jié)點(diǎn)偵聽(tīng)到的信息和它們發(fā)出的信息相同,。第 7 位節(jié)點(diǎn) B 發(fā)出一個(gè)“1”,,但從節(jié)點(diǎn)上接收到的消息卻是“0”。
為什么呢,,因?yàn)?A 節(jié)點(diǎn)同時(shí)發(fā)出顯性位,,讓總線(xiàn)也變成
顯性了,也就是 0,。節(jié)點(diǎn) B 會(huì)退出發(fā)送處于單純監(jiān)聽(tīng)方式而不發(fā)送數(shù)據(jù),;節(jié)點(diǎn) A 成功發(fā)送仲裁位從而獲得總線(xiàn)的控制權(quán),繼而發(fā)送全部消息,。
總線(xiàn)中的信號(hào)持續(xù)跟蹤最后獲得總線(xiàn)控制權(quán)發(fā)出的報(bào)文,,本例中節(jié)點(diǎn) A 的報(bào)文將被跟蹤。這種非破壞性位仲裁方法的優(yōu)點(diǎn)在于,,在網(wǎng)絡(luò)最終確定哪個(gè)節(jié)點(diǎn)被傳送前,,報(bào)文的起始部分已經(jīng)在網(wǎng)絡(luò)中傳輸了,因此具有高優(yōu)先級(jí)的節(jié)點(diǎn)的數(shù)據(jù)傳輸沒(méi)有任何延時(shí),。
在獲得總線(xiàn)控制權(quán)的節(jié)點(diǎn)發(fā)送數(shù)據(jù)過(guò)程中,,其他節(jié)點(diǎn)成為報(bào)文的接收節(jié)點(diǎn),并且不會(huì)在總線(xiàn)再次空閑之前發(fā)送報(bào)文,,在這逐位的比較中,,最終節(jié)點(diǎn) B 因?yàn)榈谄呶坏钠顏G掉了總線(xiàn)。從此單純監(jiān)聽(tīng),,江山就拱手讓給了節(jié)點(diǎn) A 了,。這就是仲裁機(jī)制。
上面我們說(shuō)過(guò),報(bào)文有兩種格式,,標(biāo)準(zhǔn)和擴(kuò)展,。這里,,不同的格式仲裁場(chǎng)是不一樣的,。標(biāo)準(zhǔn)格式下,仲裁場(chǎng)由 11 位識(shí)別符和 RTR 位組成,。
但在擴(kuò)展格式里,,包括 29 位識(shí)別符、SRR 位,、IDE 位,、RTR 位。
RTR 位,,Remote Tranmission Request BIT 全稱(chēng)為遠(yuǎn)程發(fā)送請(qǐng)求位,。它在數(shù)據(jù)幀里必須為顯性 0 ,但在遠(yuǎn)程幀里為隱性 1,。
我暈,,為什么這么搞呢,不急,,先留著這個(gè)問(wèn)題,。
SRR 位,替代遠(yuǎn)程請(qǐng)求位,,SRR 是一隱性位,,也就是 1,它在擴(kuò)展格式的標(biāo)準(zhǔn)幀 RTR 位位置,,那么標(biāo)準(zhǔn)幀怪不得優(yōu)先于擴(kuò)展幀了,,因?yàn)樵趥鬏斖?11 位標(biāo)識(shí)符之后(擴(kuò)展幀的后 18 位在最后發(fā)送,先發(fā)送 11 位標(biāo)識(shí)符),,輪到標(biāo)準(zhǔn)幀的 RTR 位和擴(kuò)展幀的 SRR 位了,。
這時(shí)候,標(biāo)準(zhǔn)幀的 RTR 為顯性,,而擴(kuò)展幀 SRR 為隱性,,這樣,總線(xiàn)自然就被標(biāo)準(zhǔn)幀占據(jù),。
同時(shí)上面那個(gè)問(wèn)題,,也一目了然了,CAN 總線(xiàn)協(xié)議設(shè)計(jì)者,,肯定是設(shè)計(jì)了數(shù)據(jù)幀優(yōu)先于遠(yuǎn)程幀,。所以 IDE(Identifier Extension Bit),全稱(chēng)識(shí)別符擴(kuò)展位,它屬于擴(kuò)展格式的仲裁場(chǎng),。
對(duì)于擴(kuò)展格式,,IDE 位屬于仲裁場(chǎng);對(duì)于標(biāo)準(zhǔn)格式,,IDE 位屬于控制場(chǎng),。標(biāo)準(zhǔn)格式的 IDE 位為“顯性”,而擴(kuò)展格式的 IDE 位為“隱性”,。
標(biāo)準(zhǔn)格式中的數(shù)據(jù)幀
拓展格式中的數(shù)據(jù)幀
控制場(chǎng)
控制場(chǎng)由 6 個(gè)位組成,,標(biāo)準(zhǔn)格式和擴(kuò)展格式的控制場(chǎng)格式不同。標(biāo)準(zhǔn)格式里的幀包括數(shù)據(jù)長(zhǎng)度代碼,、IDE 位(為顯性位)及保留位 r0,。擴(kuò)展格式里的幀包括數(shù)據(jù)長(zhǎng)度代碼和兩個(gè)保留位:r1 和 r0。其保留位必須發(fā)送為顯性,,但是接收器認(rèn)可“顯性”和“隱性”位的任何組合,。其結(jié)構(gòu)如圖所示:
控制場(chǎng)結(jié)構(gòu)
數(shù)據(jù)長(zhǎng)度代碼(標(biāo)準(zhǔn)格式以及擴(kuò)展格式)DLC,如下表所示
數(shù)據(jù)幀長(zhǎng)度代碼 DLC
數(shù)據(jù)長(zhǎng)度代碼指示了數(shù)據(jù)場(chǎng)里的字節(jié)數(shù)量,。其中:d—“顯性”,, r—“隱性”,數(shù)據(jù)幀允許的數(shù)據(jù)字節(jié)數(shù)為{0,,1,,...,7,,8},。其他的數(shù)值不允許使用。
數(shù)據(jù)場(chǎng)
數(shù)據(jù)場(chǎng)由數(shù)據(jù)幀里的發(fā)送數(shù)據(jù)組成,。它可以為 0~8 個(gè)字節(jié),,每字節(jié)包含了 8 個(gè)位,首先發(fā)送最高有效位(MSB),。
循環(huán)冗余碼 CRC 場(chǎng)是數(shù)據(jù)通信領(lǐng)域中最常用的一種差錯(cuò)校驗(yàn)碼,,其特征是信息字段和校驗(yàn)字段的長(zhǎng)度可以任意選定。
CRC 場(chǎng)包括 CRC 序列(CRC Sequence),,其后是 CRC 界定符(CRC Delimiter),,結(jié)構(gòu)如圖:
生成 CRC 碼的基本原理:
任意一個(gè)由二進(jìn)制位串組成的代碼都可以和一個(gè)系數(shù)僅為‘0’和‘1’取值的多項(xiàng)式一一對(duì)應(yīng)。例如:代碼 1010111 對(duì)應(yīng)的多項(xiàng)式為 x6+x4+x2+x+1,,而多項(xiàng)式為 x5+x3+x2+x+1 對(duì)應(yīng)的代碼 101111,。
參考一下下面的例題,自已再領(lǐng)悟一下吧,!已知信息位為 1101,,生成多項(xiàng)式 G(x)= x3+x+1,求 CRC 碼。
要傳輸?shù)男畔⑿蛄袨?1101,,在末尾添加所給多項(xiàng)式的最高次階個(gè) 0,,如本題為 x^3,則添加 3 個(gè) 0,變?yōu)椋?101000,;
由多項(xiàng)式 G(X)=X3+X+1,,得其階數(shù)為 1 的二進(jìn)制編碼為:1011;1101000 對(duì) 1011 進(jìn)行模二除法,,所得到的余數(shù)即為校驗(yàn)碼,,把校驗(yàn)碼添加在原數(shù)據(jù)尾部即為所求的編碼,則實(shí)際發(fā)送的數(shù)據(jù)序列為 1101001,。校驗(yàn)碼計(jì)算過(guò)程如圖所示:
模二除法
應(yīng)答場(chǎng)(ACK Field)
應(yīng)答場(chǎng)長(zhǎng)度為 2 個(gè)位,,包含應(yīng)答間隙(ACK Slot)和應(yīng)答界定符(ACK Delimiter),如圖所示,。在 ACK 場(chǎng)(應(yīng)答場(chǎng))里,,發(fā)送節(jié)點(diǎn)發(fā)送兩個(gè)“隱性”位。
當(dāng)接收器正確地接收到有效的報(bào)文,,接收器就會(huì)在應(yīng)答間隙(ACK Slot)期間向發(fā)送器發(fā)送一“顯性”位以示應(yīng)答,。
幀結(jié)尾
每一個(gè)數(shù)據(jù)幀和遠(yuǎn)程幀均由一標(biāo)志序列界定。這個(gè)標(biāo)志序列由 7 個(gè)“隱性”位組成,。
二,、遠(yuǎn)程幀
通過(guò)發(fā)送遠(yuǎn)程幀,總線(xiàn)的節(jié)點(diǎn)發(fā)出遠(yuǎn)程幀,,請(qǐng)求以前發(fā)送給它數(shù)據(jù)幀的節(jié)點(diǎn)再發(fā)送一遍,。具體發(fā)送哪個(gè)數(shù)據(jù)幀,由遠(yuǎn)程幀的標(biāo)識(shí)符決定,。
與數(shù)據(jù)幀類(lèi)似,,遠(yuǎn)程幀也有標(biāo)準(zhǔn)格式和擴(kuò)展格式,而且都由 6 個(gè)不同的位場(chǎng)組成:幀起始,、仲裁場(chǎng),、控制場(chǎng)、CRC 場(chǎng),、應(yīng)答場(chǎng),、幀結(jié)尾。
與數(shù)據(jù)幀相反,,遠(yuǎn)程幀的 RTR 位是“隱性”的,。它沒(méi)有數(shù)據(jù)場(chǎng),數(shù)據(jù)長(zhǎng)度代碼 DLC 的數(shù)值是不受制約的(可以標(biāo)注為容許范圍0~8 里的任何數(shù)值),,此數(shù)值是相應(yīng)于數(shù)據(jù)幀的數(shù)據(jù)長(zhǎng)度代碼,。遠(yuǎn)程幀結(jié)構(gòu)如圖所示:
遠(yuǎn)程幀結(jié)構(gòu)
三、錯(cuò)誤幀
錯(cuò)誤幀由兩個(gè)不同的場(chǎng)組成,第一個(gè)場(chǎng)是不同節(jié)點(diǎn)提供的錯(cuò)誤標(biāo)志(Error Flag)的疊加,,第二個(gè)場(chǎng)是錯(cuò)誤界定符,。
為了能正確地終止錯(cuò)誤幀,“錯(cuò)誤認(rèn)可”的節(jié)點(diǎn)要求總線(xiàn)至少有長(zhǎng)度為 3 個(gè)位時(shí)間的總線(xiàn)空閑,。因此,,總線(xiàn)的載荷不應(yīng)為 100%。錯(cuò)誤幀結(jié)構(gòu)如圖:
錯(cuò)誤幀結(jié)構(gòu)(圖中統(tǒng)一起見(jiàn)出錯(cuò)幀改為錯(cuò)誤幀)
(1) 錯(cuò)誤標(biāo)志,,有兩種形式的錯(cuò)誤標(biāo)志:激活錯(cuò)誤標(biāo)志 和 認(rèn)可錯(cuò)誤標(biāo)志
“激活錯(cuò)誤”標(biāo)志由 6 個(gè)連續(xù)的“顯性”位組成,;“認(rèn)可錯(cuò)誤”標(biāo)志由 6 個(gè)連續(xù)的“隱性”的位組成,除非被其他節(jié)點(diǎn)的“顯性”位重寫(xiě),。
(2) 錯(cuò)誤界定符,,錯(cuò)誤界定符包括 8 個(gè)“隱性”的位。
錯(cuò)誤標(biāo)志傳送了以后,,每一個(gè)節(jié)點(diǎn)就發(fā)送一個(gè)“隱性”的位,,并一直監(jiān)視總線(xiàn)直到檢測(cè)出一個(gè)“隱性”的位為止,然后就開(kāi)始發(fā)送其余 7 個(gè)“隱性”位,。
四,、過(guò)載幀
過(guò)載幀(Overload Frame)包括兩個(gè)位場(chǎng):過(guò)載標(biāo)志 和 過(guò)載界定符,其結(jié)構(gòu)如圖:
過(guò)載幀結(jié)構(gòu)圖
有三種過(guò)載的情況會(huì)引發(fā)過(guò)載標(biāo)志的傳送:接收器的內(nèi)部情況,,需要延遲下一個(gè)數(shù)據(jù)幀和遠(yuǎn)程幀,。
在間歇(Intermission)的第 1 和第 2 字節(jié)檢測(cè)到一個(gè)“顯性”位。這里有個(gè)間歇的概念,。我們可以講講,。間歇屬于幀間空間的一部分。它包含三個(gè)隱性位,。間歇期間,,所有的站不允許傳送數(shù)據(jù)幀或遠(yuǎn)程幀。它唯一要做的就是標(biāo)示一個(gè)過(guò)載條件,。
如果 CAN 節(jié)點(diǎn)在錯(cuò)誤界定符或過(guò)載界定符的第 8 位(最后一位)采樣到一個(gè)顯性位,,節(jié)點(diǎn)會(huì)發(fā)送一個(gè)過(guò)載幀。該幀不是錯(cuò)誤幀,,錯(cuò)誤計(jì)數(shù)器不會(huì)增加,。
(1)過(guò)載標(biāo)志(Overload Flag)
過(guò)載標(biāo)志由 6 個(gè)“顯性”的位組成。過(guò)載標(biāo)志的所有形式和“激活錯(cuò)誤”標(biāo)志的一樣,。
(2)過(guò)載界定符(Overload Delimiter)
過(guò)載界定符包括 8 個(gè)“隱性”的位,。
五、幀間空間
數(shù)據(jù)幀(或遠(yuǎn)程幀)與先行幀的隔離是通過(guò)幀間空間實(shí)現(xiàn)的,,無(wú)論此先行幀類(lèi)型如何(數(shù)據(jù)幀,、遠(yuǎn)程幀,、錯(cuò)誤幀、過(guò)載幀),。
幀間空間包括間歇,、總線(xiàn)空閑的位場(chǎng)。如果“錯(cuò)誤認(rèn)可”的節(jié)點(diǎn)已作為前一報(bào)文的發(fā)送器,,則其幀間空間除了間歇,、總線(xiàn)空閑外,還包括稱(chēng)作“掛起傳送”(暫停發(fā)送)(Suspend Transmission)的位場(chǎng),。
對(duì)于不是“錯(cuò)誤認(rèn)可”的節(jié)點(diǎn),,或作為前一報(bào)文的接收器的節(jié)點(diǎn),其幀間空間如圖:
非 “錯(cuò)誤認(rèn)可”幀間空間
對(duì)于作為前一報(bào)文發(fā)送器的“錯(cuò)誤認(rèn)可”的節(jié)點(diǎn),,其幀間空間如圖:
“錯(cuò)誤激活”幀間空間
(1)總線(xiàn)空閑(Bus Idle)
總線(xiàn)空閑的時(shí)間是任意的,。只要總線(xiàn)被認(rèn)定為空閑,任何等待發(fā)送報(bào)文的節(jié)點(diǎn)就會(huì)訪問(wèn)總線(xiàn),。在發(fā)送其他報(bào)文期間,,有報(bào)文被掛起,對(duì)于這樣的報(bào)文,,其傳送起始于間歇之后的第一個(gè)位??偩€(xiàn)上檢測(cè)到的“顯性”的位可被解釋為幀的起始,。
(2)掛起傳送(Suspend Transmission)
“錯(cuò)誤認(rèn)可”的節(jié)點(diǎn)發(fā)送報(bào)文后,節(jié)點(diǎn)就在下一報(bào)文開(kāi)始傳送之前或總線(xiàn)空閑之前發(fā)出 8 個(gè)“隱性”的位跟隨在間歇的后面,。如果與此同時(shí)另一節(jié)點(diǎn)開(kāi)始發(fā)送報(bào)文(由另一節(jié)點(diǎn)引起),,則此節(jié)點(diǎn)就作為這個(gè)報(bào)文的接收器。
最后用腦圖總結(jié):
再來(lái)幾張實(shí)物圖:
CAN 總線(xiàn)接收芯片
CAN 總線(xiàn)控制器芯片
標(biāo)準(zhǔn)數(shù)據(jù)幀波形捕獲
擴(kuò)展數(shù)據(jù)幀波形捕獲