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