曼彻斯特编码_两种编码方式以及两种帧结构
一、不歸零制編碼(Non-Return to Zero)
對(duì)于不歸零制編碼是最簡(jiǎn)單的一種編碼方式,正電平代表1,負(fù)電平代表0。如下圖:
其實(shí)在不歸零制編碼中有一個(gè)很明顯的缺陷,那就是它不是自同步碼。
對(duì)于上圖,你知道它傳輸?shù)臄?shù)據(jù)是什么嗎?你可以回答說是一串“1”的序列,但是你卻不知道它有多少個(gè)“1”,這就是NRZ編碼的缺陷。
所以為了知道它到底有多少個(gè)“1”,我們必須對(duì)照時(shí)鐘序列進(jìn)行比對(duì)。對(duì)于計(jì)算機(jī)而言也是如此,如果采用NRZ編碼進(jìn)行傳輸數(shù)據(jù),一般情況下計(jì)算機(jī)有幾種方式進(jìn)行時(shí)鐘同步。
1、增加一對(duì)線傳輸時(shí)鐘序列
這種同步方式必須保證時(shí)鐘相位(clock phase)與數(shù)據(jù)一致。但是在實(shí)際的傳輸過程中,時(shí)鐘相位可能會(huì)發(fā)生偏差,可能是由于采用了不同的線路或者是導(dǎo)電率不同等原因,特別的當(dāng)在較長(zhǎng)的線路以較高的傳輸速率進(jìn)行傳輸時(shí),發(fā)生時(shí)鐘偏差的概率會(huì)變大或者說偏差會(huì)更明顯。在時(shí)鐘發(fā)生偏差的情況下,計(jì)算機(jī)就會(huì)誤讀一些位。
2、通過GPS天線進(jìn)行時(shí)鐘同步
優(yōu)點(diǎn):精確的時(shí)間 + 頻率同步
缺點(diǎn):增加了額外的硬件設(shè)施
3、計(jì)算機(jī)內(nèi)置原子時(shí)鐘(這種做法相當(dāng)少見)
二、曼徹斯特編碼(Manchester Code)
曼徹斯特編碼用信號(hào)的變化來保持發(fā)送設(shè)備和接收設(shè)備之間的同步,也有人稱之為自同步碼( Self-Synchronizing Code)。
關(guān)于曼徹斯特編碼有四點(diǎn)最基本的你需要知道:
1、每個(gè)比特(bit)的發(fā)送時(shí)間恒定(“周期”)
2、0 用低至高轉(zhuǎn)換表示,1 用高至低轉(zhuǎn)換表示(根據(jù)G.E.Thomas方式---IEEE 802.3方式與之相反)
3、表示 0 或 1 的轉(zhuǎn)化出現(xiàn)在周期的中點(diǎn)
4、周期開始的轉(zhuǎn)換不表示數(shù)據(jù)
三、HDLC(High level Data Link Control)
HDLC是計(jì)算機(jī)網(wǎng)絡(luò)中國(guó)常用的一種傳輸模式。在HDLC傳輸模式中它標(biāo)志了一個(gè)幀定界符(一個(gè)flag),在幀開始和結(jié)束的地方都放一個(gè)幀定界符,這樣計(jì)算機(jī)就會(huì)知道哪里是幀開始以及結(jié)束的地方。
幀定界符:01111110(二進(jìn)制)-> 7E(十六進(jìn)制)
這是一個(gè)幀的示例:
???????01111110......(0、1代碼)......01111110
(幀定界符之間的0、1代碼包括要傳輸?shù)臄?shù)據(jù)以及一些其他信息)
零比特填充法:
那么,就會(huì)出現(xiàn)一個(gè)問題:如果在幀的中間(不包括幀定界符)的地方也出現(xiàn)了 ...01111110... 怎么辦呢?一般采用零比特填充 的方式,即如果幀中間出現(xiàn)了 111111(五個(gè)連續(xù)的“1”),那么就在第五個(gè)“1”后面加一個(gè)“0”,這樣在幀定界符中間就不會(huì)出現(xiàn)六個(gè)連續(xù)的“1”,自然也不可能出現(xiàn) 01111110 。
當(dāng)接收端接收到比特流時(shí),如果發(fā)現(xiàn)五個(gè)連續(xù)的“1”,就刪除掉后面的一個(gè)“0”,從而恢復(fù)原來的數(shù)據(jù)。
HDLC幀結(jié)構(gòu):幀標(biāo)志F -> 地址A-> 控制C -> 信息Info -> 幀檢驗(yàn)序列FCS -> 標(biāo)志F
幀標(biāo)志F(flag):即幀定界符 01111110(二進(jìn)制)-> 7E(十六進(jìn)制)
地址A(address):地址字段。
控制C(control):控制字段,用于構(gòu)成各種命令及響應(yīng),以便對(duì)鏈路進(jìn)行監(jiān)視與控制。發(fā)送方主節(jié)點(diǎn)或組合節(jié)點(diǎn)利用控制字段來通知被尋址的從節(jié)點(diǎn)或組合節(jié)點(diǎn)執(zhí)行約定的操作;相反,從節(jié)點(diǎn)用該字段作為對(duì)命令的響應(yīng),報(bào)告已經(jīng)完成的操作或狀態(tài)的變化。該字段是HDLC的關(guān)鍵。由于Control字段的構(gòu)成不同,可以把HDLC幀分為三種類型:信息幀、監(jiān)控幀、無編號(hào)幀,分別簡(jiǎn)稱I幀(Information)、S幀(Supervisory)、U幀(Unnumbered)。在控制字段中,第1位是“0”為I幀,第1、2 位是“1 ”為S幀,第1、2位是“11”為U幀。
信息幀(I幀):信息幀包含用戶數(shù)據(jù)、該幀的編號(hào)和捎帶的應(yīng)答序列N(R)。
管理幀(S幀):管理幀負(fù)責(zé)流量控制和差錯(cuò)控制,管理幀有4種,包括接收就緒(RR)、接收未就緒(RNR)、拒絕接收(REJ)和選擇性拒絕接收(SREG)。
無編號(hào)幀(U幀):U幀用于鏈路控制。
信息Info:長(zhǎng)度不做限定
幀檢驗(yàn)序列FCS:用于對(duì)幀標(biāo)志F之間的整個(gè)序列進(jìn)行檢驗(yàn)
四、EhternetⅡ型以太網(wǎng)幀結(jié)構(gòu)
幀間間隙IFG(inter-frame gap):在互聯(lián)網(wǎng)幀的開頭,有一段幀間間隙IFG(inter-frame gap)或IPG(inter-packet gap)。它的特點(diǎn)是:這是一段沉默的時(shí)間,沒有任何數(shù)據(jù)被傳輸(電壓為0),并且任何一個(gè)網(wǎng)絡(luò)要求這一段時(shí)間至少是 96bit 的IFG。每發(fā)完一個(gè)幀后要等待一段時(shí)間才能再發(fā)另外一個(gè)幀,以便讓幀接收者對(duì)接收的幀作必要的處理(如調(diào)整緩存的指針、更新計(jì)數(shù)、通知對(duì)報(bào)文進(jìn)行處理等等)。幀間間隙不屬于EhternetⅡ型以太網(wǎng)幀結(jié)構(gòu)中。
前導(dǎo)碼(preamble):七個(gè)字節(jié),在這一段沉默的時(shí)間結(jié)束后,以太網(wǎng)開始發(fā)送 前同步碼 或者叫 前導(dǎo)碼(preamble),前導(dǎo)碼用十六進(jìn)制表示就是:AA AA AA AA AA AA AA。7個(gè)字節(jié)的作用是同步時(shí)鐘,和發(fā)送端保持時(shí)鐘同步。
幀開始定界符:一個(gè)字節(jié),幀開始定界符用十六進(jìn)制表示就是 AB 。幀開始定界符和前導(dǎo)碼從二進(jìn)制來看,僅有一位不同。
AA -> 1010 1010
AB -> 1010 1011
MAC目標(biāo)地址:接收方的地址
MAC源地址:發(fā)送方的地址
類型:用于標(biāo)志上一層使用的是什么協(xié)議,以便把收到的幀的數(shù)據(jù)上交給上一層的這個(gè)協(xié)議
幀檢驗(yàn)序列FCS:用于檢驗(yàn)幀序列是否發(fā)生差錯(cuò),當(dāng)傳輸媒體的誤碼率為時(shí),MAC子層可使未檢測(cè)到的差錯(cuò)小于。
部分信息摘自百度百科。
部分信息參考網(wǎng)名為:Ben Eater 的youtuber的講解
Ben Eater的youtube網(wǎng)址如下:
https://www.youtube.com/playlist?list=PLowKtXNTBypGqImE405J2565dvjafglHU
圖文:ZJL
總結(jié)
以上是生活随笔為你收集整理的曼彻斯特编码_两种编码方式以及两种帧结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php怎么使得字体滚动,滚动文字+字体特
- 下一篇: tkmybatis 子查询_真假童子命符