(2)仲裁域,這個域表示數(shù)據(jù)的優(yōu)先級別。這個域的結(jié)構(gòu),對標(biāo)準(zhǔn)和擴(kuò)展的格式是有差別的。
![](http://editerupload.eepw.com.cn/fetch/20161101/330336_2_0.jpg)
注1:關(guān)于ID:
標(biāo)準(zhǔn)格式的ID有11bit,從ID28到ID18被依次發(fā)送,禁止高7位全為隱性。(禁止設(shè)定:ID=1111111xxxx)。這樣總共有(2048-16)個ID能被使用。
擴(kuò)展格式的ID有29個bit。基本ID從ID28到ID18,擴(kuò)展ID由ID17到ID0表示,基本ID和標(biāo)準(zhǔn)格式ID相同,禁止高7bit全都為隱性,(禁止設(shè)定:基本ID=1111111xxxx)。這樣總共有(2048-16)個ID能被使用。
在任何情況下,總線上不可能有多個設(shè)備在同一時刻使用同一個ID傳輸數(shù)據(jù)幀。
(3)控制域,占6個bit,指示要傳輸信息的數(shù)據(jù)字節(jié)數(shù),這個域的結(jié)構(gòu),對標(biāo)準(zhǔn)和擴(kuò)展的格式是有差別的。如圖18所示
![](http://editerupload.eepw.com.cn/fetch/20161101/330336_2_1.jpg)
注1:保留位(r0,r1),保留位必須以顯性電平傳送,然而,在接收側(cè)可以接收顯性、隱性集任意組合的電平。
注2:數(shù)據(jù)長度碼(DLC),數(shù)據(jù)長度碼與數(shù)據(jù)的字節(jié)對應(yīng)關(guān)系見表7所示。數(shù)據(jù)的字節(jié)數(shù)必須是0-8個字節(jié),但接收方對DLC=9-15的情況并不視為錯誤。
![](http://editerupload.eepw.com.cn/fetch/20161101/330336_2_2.jpg)
(4)數(shù)據(jù)域,對標(biāo)準(zhǔn)的或擴(kuò)展的格式都是一樣的。這個域是傳輸?shù)臄?shù)據(jù),可以是0到8個字節(jié),字節(jié)數(shù)載控制域中指明。數(shù)據(jù)輸出開始于MSB。如圖19所示:
![](http://editerupload.eepw.com.cn/fetch/20161101/330336_2_3.jpg)
(5)CRC域,對標(biāo)準(zhǔn)的或擴(kuò)展的格式都是一樣的。這個域用來檢查幀是否有傳輸錯誤,它由15bit CRC碼和一個bitCRC定界符(delimiter)(separating bit分隔bit)
![](http://editerupload.eepw.com.cn/fetch/20161101/330336_2_4.jpg)
CRC的產(chǎn)生方法是采用下面的多項式:,CRC的計算范圍是SOF、仲裁域、控制域、數(shù)據(jù)域。在接收側(cè),會對接收到的數(shù)據(jù)幀的這些域進(jìn)行CRC計算,如果計算結(jié)果與收到的CRC不一致,則表明存在傳輸錯誤。
(6)ACK域,是對一幀已被正常接收的一個確認(rèn)信號,由2個bit組成,一個是ACK的slot,一個是ACK的定界符(delimiter),如圖21所示:
![](http://editerupload.eepw.com.cn/fetch/20161101/330336_2_5.jpg)
注1:發(fā)送單元的ACK域,發(fā)送單元以隱性bit發(fā)送ACK slot和ACK 的delimiter。
注2:接收單元的ACK域,正確接收到信息的接收單元在接收幀的ACK slot里發(fā)送一個顯性bit,以通知發(fā)送單元其已經(jīng)正確接收完畢,這又稱“sending ACK”或“returning ACK”。
“Returning an ACK”:
所有接收單元只要不是處于bus-off或休眠狀態(tài),只有正確接收信息的單元才能發(fā)送ACK。發(fā)送單元并不發(fā)送ACK。如果總線上除了發(fā)送單元,沒有其它單元能接收信息,則No ACK被返回。為了通訊的建立,除了發(fā)送單元外,至少需要有一個單元能夠接收信息。如果總線上有2個或更多個單元能接收到信息,如果它們中任意一個正常接收到信息,則會有ACK被返回。
(7)幀結(jié)束,指示一幀結(jié)束,由7個隱性位組成。如圖22
![](http://editerupload.eepw.com.cn/fetch/20161101/330336_2_6.jpg)
1.3 遙控幀
遙控幀是接收單元請求發(fā)送單元發(fā)送一個信息,遙控幀有6個域組成。如圖23顯示的那樣,除了沒有數(shù)據(jù)域外其它與數(shù)據(jù)幀的結(jié)構(gòu)是一樣的。
(1) 幀開始(SOF):這個域表示數(shù)據(jù)幀的開始。
(2) 競爭域:這個域表示數(shù)據(jù)的優(yōu)先級,具有同樣ID的數(shù)據(jù)幀被請求。
(3) 控制域:這個域表示保留位和數(shù)據(jù)字節(jié)數(shù)
(4) CRC域:這個域用于檢查幀的傳輸錯誤。
(5) ACK域:是對幀已經(jīng)被正常接收的一個證實。
(6) 幀結(jié)束:指示遙控幀的結(jié)束
![](http://editerupload.eepw.com.cn/fetch/20161101/330336_2_7.jpg)
遙控幀和數(shù)據(jù)幀:
- 遙控幀沒有數(shù)據(jù)域,在仲裁域里的RTR位是隱性電平,而數(shù)據(jù)幀RTR則為顯性的。
- 沒有數(shù)據(jù)的數(shù)據(jù)幀與遙控幀可以通過RTR為來區(qū)分
- 遙控幀沒有數(shù)據(jù)域,其數(shù)據(jù)長度碼用來干什么?
- 遙控幀的數(shù)據(jù)長度碼的值表示對應(yīng)請求的數(shù)據(jù)幀的數(shù)據(jù)長度碼。
- 沒有數(shù)據(jù)域的數(shù)據(jù)幀用來干什么?
- 例如,數(shù)據(jù)幀可以被各單元用來作為周期連接確認(rèn)/應(yīng)答,或者仲裁域本身帶有實質(zhì)性信息。
1.4 錯誤幀
這個幀用來通知在傳輸期間發(fā)生了一個錯誤,錯誤幀由一個錯誤標(biāo)志和一個錯誤定界符組成,錯誤幀由CAN的硬件來發(fā)送。圖24顯示了錯誤幀的結(jié)構(gòu)。
(1) 錯誤標(biāo)志:有2種錯誤標(biāo)志類型:主動錯誤和被動錯誤標(biāo)志
a)主動錯誤標(biāo)志:6個顯性位
b) 被動錯誤標(biāo)志:6個隱性位
(2) 錯誤定界符:由8個隱性位組成。
![](http://editerupload.eepw.com.cn/fetch/20161101/330336_2_8.jpg)
注1:錯誤標(biāo)志重疊:取決于連接到總線上的各單元檢測出錯誤的時間,錯誤標(biāo)志可能一個重疊在另一個上,總共可達(dá)12bit長度。
注2:主動錯誤標(biāo)志:處于主動錯誤狀態(tài)的單元檢測出錯誤時輸出的錯誤標(biāo)志。
注3:被動錯誤標(biāo)志:處于被動錯誤狀態(tài)的單元檢測出錯誤時輸出的錯誤標(biāo)志。
1.5 過載幀
這個幀被接收單元用來通知還沒有準(zhǔn)備好接收幀。它由一個過載標(biāo)志和一個過載定界符組成。圖25顯示了錯誤幀的結(jié)構(gòu)。
![](http://editerupload.eepw.com.cn/fetch/20161101/330336_2_9.jpg)
(1) 過載標(biāo)志:由6個顯性位組成,過載標(biāo)志與錯誤幀的主動錯誤標(biāo)志具有相同的結(jié)構(gòu)。
(2) 過載定界符:由8個隱性位組成,過載定界符與錯誤幀的錯誤定界符具有相同的結(jié)構(gòu)。
注1:錯誤標(biāo)志重疊:向錯誤標(biāo)志一樣,取決于時間,過載標(biāo)志可能一個重疊在另一個上,總共可達(dá)12bit長度。
1.6 幀間間隔
這個幀用來隔開數(shù)據(jù)幀和遙控幀。數(shù)據(jù)和遙控幀可通過插入幀間間隔與前面?zhèn)鬏數(shù)娜魏螏〝?shù)據(jù)幀、遙控幀、錯誤幀、過載幀)分開。
過載幀和錯誤幀前不能插入幀間間隔。如圖26所示。
![](http://editerupload.eepw.com.cn/fetch/20161101/330336_2_10.jpg)
(1)間隔:由3個隱性位組成。在間隔期間如果檢測到顯性電平,則必須發(fā)送過載幀,然而,如果間隔的第3bit是顯性電平,間隔被認(rèn)為是SOF
(2)總線空閑:是隱性電平,長度沒有限制(它可以是0bit長)。當(dāng)總線處于這種狀態(tài)的時候,總線被認(rèn)為是自由空閑的,任何單元都可以啟動發(fā)送信息。
(3)暫停傳輸(傳輸暫停期):有8個隱性位組成。只在處于被動錯誤狀態(tài)的單元剛發(fā)送一個消息后的幀間隔中包含的段。
評論