信息想要在CAN-BUS局域網(wǎng)內有效、快速的傳遞,就要把它轉換為適合CAN-BUS總線的傳輸格式。我們把這種信息稱之為報文,把適合CAN-BUS總線傳輸?shù)母袷椒Q之為報文格式??偩€上的信息是以不同的固定報文格式發(fā)送的,但長度受限。
報文傳輸格式有以下四種不同的幀類型所表示和控制,所謂幀就是一個計量單位,它的數(shù)據(jù)由兩部分組成:幀頭和幀數(shù)據(jù)。
數(shù)據(jù)幀:數(shù)據(jù)幀攜帶數(shù)據(jù),是數(shù)據(jù)在網(wǎng)絡上傳輸時的一個數(shù)據(jù)單元。
遠程幀:總線單元發(fā)送的遠程幀,請求發(fā)送具有統(tǒng)一識別符的數(shù)據(jù)幀。
錯誤幀:任何電控單元檢測到總線錯誤就會發(fā)出錯誤幀。
過載幀:用以在先行和后續(xù)的數(shù)據(jù)幀之間提供以附加的延時。
本次我們主要講述有關數(shù)據(jù)幀的相關內容。數(shù)據(jù)幀由7個不同的位場組成:
1.幀起始SOF(START OF FRAME)
標志數(shù)據(jù)幀和遠程幀的起始,由單個顯性位構成。只有當總線位空閑狀態(tài)時,才允許節(jié)點開始發(fā)送,所有節(jié)點必須同步于首先發(fā)送節(jié)點的幀起始引起的上升沿。
2.仲裁場AF(Arbitration Field)
在CAN2.0A中,仲裁場由11位標識符和遠程發(fā)送請求位RTR(Remote Transmission Request)組成;而在CAN2.0B中,仲裁場由29位標識符和遠程發(fā)送請求位RTR構成。也就是說CAN協(xié)議支持兩種報文格式,其唯一的區(qū)別是標識符(ID)長度的不同,標準格式為11位,擴展格式為29位。
(1)標識符ID(Identifier):標識符分為標準格式標識符和擴展格式標識符。在CAN2.0A中標準格式標識符的長度為11位,這些位以ID-10至ID-0的順序發(fā)送,最低位為ID-0,其中最高7位(ID-10到ID-4)必須不是全隱性。
(2)遠程發(fā)送請求位RTR (Remote Transmission Request):在數(shù)據(jù)幀中,遠程發(fā)送請求位必須是顯性電平,而在遠程幀中,遠程發(fā)送請求位必須是隱性電平。在擴展格式中,先發(fā)送基本標識符,其后是標識符擴展位和替代遠程請求位。擴展標識符在替代遠程請求位后發(fā)送。
(3)替代遠程請求位SRR (Substitute Remote Request): SRR位為隱性位。在擴展格式中,它在標準格式的遠程發(fā)送請求位位置上被發(fā)送,并替代標準格式中的遠程發(fā)送請求位。這樣,可以解決標準格式和擴展格式的沖突。
(4)標識符擴展位IDE (Identifier Extension Bit): IDE位對于擴展格式而言屬于仲裁場,對于標準格式來說屬于控制場。標識符擴展位在標準格式中以顯性電平發(fā)送,而在擴展格式中為隱性電平。
3.控制場CF(Control Field)
兩種格式的控制場格式不同。在標準格式中,控制場包括DLC (Data Length Code)、IDE位(顯性)和保留位0r(顯性)。在擴展格式中,包括DLC和兩個保留位1r、
2r,這兩個保留位必須發(fā)送顯性電平。DLC為4位,允許使用0到8之間的數(shù)字。
4.數(shù)據(jù)場DF(Data Field)
數(shù)據(jù)場由數(shù)據(jù)幀中被發(fā)送的數(shù)據(jù)組成,它可包括從0到8個字節(jié),每個字節(jié)8位,其中首先發(fā)送最高有效位。
5.循環(huán)冗余校驗場CRC (Cyclic Redundancy Check)
CRC場包括15位CRC序列和1位CRC界定符(隱性)。CRC生成器所使用的多項式是:X15 + X14+ X10 + X8 + X7 + X4 + X3 + 1,這個多項式除法的余數(shù)就是發(fā)送到總線上的“循環(huán)冗余校驗碼”,它只用于檢測錯誤而不能校正。
6.應答場ACK (Acknowledge)
ACK場為兩位,包括應答間隙(ACK SLOT)和應答界定符(ACK DELIMITER)。在應答場里,發(fā)送站發(fā)送兩個隱性位。當接收器接收到有效的報文時,接收器就會在應答間隙期間發(fā)送應答信號,向發(fā)送器發(fā)送一顯性位以示回答。
7.幀結束EOF (END OF FRAME)
每個數(shù)據(jù)幀和遠程幀均由一標志序列界定,也就是幀結尾,這個標志序列由7個隱性位組成。
評論