can總線數(shù)據(jù)鏈路層的特性是什么?
數(shù)據(jù)鏈路層是OSI參考模型中的第二層,介乎于物理層和網(wǎng)絡(luò)層之間。數(shù)據(jù)鏈路層在物理層提供的服務(wù)的基礎(chǔ)上向網(wǎng)絡(luò)層提供服務(wù),其最基本的服務(wù)是將源自網(wǎng)絡(luò)層來的數(shù)據(jù)可靠地傳輸?shù)较噜徆?jié)點的目標(biāo)機(jī)網(wǎng)絡(luò)層。為達(dá)到這一目的,數(shù)據(jù)鏈路必須具備一系列相應(yīng)的功能,主要有:如何將數(shù)據(jù)組合成數(shù)據(jù)塊,在數(shù)據(jù)鏈路層中稱這種數(shù)據(jù)塊為幀(frame),幀是數(shù)據(jù)鏈路層的傳送單位;如何控制幀在物理信道上的傳輸,包括如何處理傳輸差錯,如何調(diào)節(jié)發(fā)送速率以使與接收方相匹配;以及在兩個網(wǎng)絡(luò)實體之間提供數(shù)據(jù)鏈路通路的建立、維持和釋放的管理。
CAN總線的報文幀共分為數(shù)據(jù)幀、遠(yuǎn)程幀、錯誤幀、過載幀和幀間隔5種類型。
1、數(shù)據(jù)幀:用于發(fā)送節(jié)點向接收節(jié)點傳送數(shù)據(jù),是使用最多的幀類型。
幀起始:表示幀開始的段,只有在總線空閑的時候才會發(fā)送;
仲裁段:表示數(shù)據(jù)優(yōu)先級的段,從ID的最高位(MSB)開始判斷,若連續(xù)出現(xiàn)顯性電平(邏輯0)個數(shù)最多,優(yōu)先級越高,可以理解為ID越小優(yōu)先級越高;
控制段:表示數(shù)據(jù)幀里數(shù)據(jù)段的字節(jié)數(shù)即數(shù)據(jù)長度信息;
數(shù)據(jù)段:需要發(fā)送的數(shù)據(jù)內(nèi)容,可一次性發(fā)送0–8個字節(jié)的數(shù)據(jù);
CRC段:檢查幀傳輸錯誤的幀(檢查范圍:起始端,仲裁段,控制段,數(shù)據(jù)段)由15位的CRC順序和1位的CRC界定符構(gòu)成;
ACK 段:用來確認(rèn)是否正常接收。由ACK 槽(ACK Slot)和ACK 界定符2位構(gòu)成;
幀結(jié)束:表示該幀的結(jié)束的段,由7個隱形位(邏輯1)組成。
2、遠(yuǎn)程幀:用于接收節(jié)點向某個發(fā)送節(jié)點請求數(shù)據(jù)。
3、錯誤幀:用于當(dāng)某節(jié)點檢測出錯誤時向其他節(jié)點通知錯誤的幀。
4、過載幀:用于接收節(jié)點向發(fā)送節(jié)點通知自身接收能力的幀。
5、幀間隔:用于將數(shù)據(jù)幀或遠(yuǎn)程幀與前面的幀分離的幀。
CAN總線上節(jié)點沒有主從之分,所有節(jié)點級別都一樣,可以發(fā)送也可以接收。只要總線空閑,發(fā)送節(jié)點就可以發(fā)送數(shù)據(jù),發(fā)送節(jié)點不會指定由哪個一個節(jié)點接收,而是由接收節(jié)點自己過濾選擇是否接收含有該標(biāo)識符ID的數(shù)據(jù),就像收音機(jī)一樣,廣播臺發(fā)出信號都可以被聽眾收到,但是聽眾可以選擇自己喜歡的臺。
回讀:節(jié)點發(fā)送數(shù)據(jù)的同時,同時也再讀取數(shù)據(jù),并與自己發(fā)送數(shù)據(jù)對比。
線與:如果同時有幾個節(jié)點往CAN總線上傳遞信息,采取線與機(jī)制,也就是說除非所有的節(jié)點都發(fā)送1,總線上才會是1,只要有一個節(jié)點發(fā)送0,總線上就是0。如果一個節(jié)點A發(fā)送了1,而其他節(jié)點發(fā)送了0,那么總線上是0,節(jié)點A通過回讀就會發(fā)現(xiàn)總線上的電平與自己發(fā)送的不一致,從而采取相應(yīng)的措施(退出仲裁,報錯等)。需要注意的是1和0由CAN_H和CAN_L兩條線差分電壓得來,并不是一條線傳遞1, 另一條線傳遞0。
仲裁:總線空閑,最先開始發(fā)送消息的節(jié)點獲得發(fā)送權(quán),當(dāng)多個節(jié)點同時發(fā)送數(shù)據(jù),那么需要仲裁,通過線與和回讀功能比較數(shù)據(jù)的標(biāo)識符(從仲裁段第一位開始仲裁),標(biāo)識符小的獲得仲裁,標(biāo)識符大的推出仲裁,轉(zhuǎn)變?yōu)榻邮眨⑶也粫诳偩€再次空閑前發(fā)送報文,也就是說當(dāng)總線空閑時候,推出仲裁的幀才重新發(fā)送數(shù)據(jù)。數(shù)據(jù)幀和遠(yuǎn)程幀優(yōu)先級:假如一個發(fā)送節(jié)點發(fā)送了遠(yuǎn)程幀請求A發(fā)送數(shù)據(jù)并且同時A節(jié)點也正在發(fā)送數(shù)據(jù),那么二者標(biāo)識符相同,需要仲裁。RTR為顯性位的數(shù)據(jù)幀具有優(yōu)先權(quán),可以繼續(xù)發(fā)送。標(biāo)準(zhǔn)格式和擴(kuò)展格式優(yōu)先級:從仲裁位開始仲裁,標(biāo)準(zhǔn)格式RTR位顯性,牛逼,具有優(yōu)先權(quán)可以繼續(xù)發(fā)送。
數(shù)據(jù)鏈路層在物理層提供的服務(wù)的基礎(chǔ)上向網(wǎng)絡(luò)層提供服務(wù),其最基本的服務(wù)是將源自網(wǎng)絡(luò)層來的數(shù)據(jù)可靠地傳輸?shù)较噜徆?jié)點的目標(biāo)機(jī)網(wǎng)絡(luò)層。數(shù)據(jù)鏈路層應(yīng)具備如下功能:①鏈路連接的建立,拆除,分離。②幀定界和幀同步。鏈路層的數(shù)據(jù)傳輸單元是幀,協(xié)議不同,幀的長短和界面也有差別,但無論如何必須對幀進(jìn)行定界。③順序控制,指對幀的收發(fā)順序的控制。④差錯檢測和恢復(fù)。還有鏈路標(biāo)識,流量控制等等。差錯檢測多用方陣碼校驗和循環(huán)碼校驗來檢測信道上數(shù)據(jù)的誤碼,而幀丟失等用序號檢測。各種錯誤的恢復(fù)則??糠答佒匕l(fā)技術(shù)來完成。