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