曼徹斯特編碼_兩種編碼方式以及兩種幀結構

一、不歸零制編碼(Non-Return to Zero)

對于不歸零制編碼是最簡單的一種編碼方式,正電平代表1,負電平代表0。如下圖:

df0dcedcf8c53f91ad6e7d9608447282.png

其實在不歸零制編碼中有一個很明顯的缺陷,那就是它不是自同步碼。

8d85df8c460e38783f55064717718b24.png

對于上圖,你知道它傳輸的數據是什么嗎?你可以回答說是一串“1”的序列,但是你卻不知道它有多少個“1”,這就是NRZ編碼的缺陷。

所以為了知道它到底有多少個“1”,我們必須對照時鐘序列進行比對。對于計算機而言也是如此,如果采用NRZ編碼進行傳輸數據,一般情況下計算機有幾種方式進行時鐘同步。

1、增加一對線傳輸時鐘序列

這種同步方式必須保證時鐘相位(clock phase)與數據一致。但是在實際的傳輸過程中,時鐘相位可能會發生偏差,可能是由于采用了不同的線路或者是導電率不同等原因,特別的當在較長的線路以較高的傳輸速率進行傳輸時,發生時鐘偏差的概率會變大或者說偏差會更明顯。在時鐘發生偏差的情況下,計算機就會誤讀一些位。

2、通過GPS天線進行時鐘同步

優點:精確的時間 + 頻率同步

缺點:增加了額外的硬件設施

3、計算機內置原子時鐘(這種做法相當少見)

二、曼徹斯特編碼(Manchester Code)

曼徹斯特編碼用信號的變化來保持發送設備和接收設備之間的同步,也有人稱之為自同步碼( Self-Synchronizing Code)。

38a16600ab094d0fb664094e1138a300.png

關于曼徹斯特編碼有四點最基本的你需要知道:

1、每個比特(bit)的發送時間恒定(“周期”)

2、0 用低至高轉換表示,1 用高至低轉換表示(根據G.E.Thomas方式---IEEE 802.3方式與之相反)

3、表示 0 或 1 的轉化出現在周期的中點

4、周期開始的轉換不表示數據

三、HDLC(High level Data Link Control)

HDLC是計算機網絡中國常用的一種傳輸模式。在HDLC傳輸模式中它標志了一個幀定界符(一個flag),在幀開始和結束的地方都放一個幀定界符,這樣計算機就會知道哪里是幀開始以及結束的地方。

幀定界符:01111110(二進制)-> 7E(十六進制)

這是一個幀的示例:

???????01111110......(0、1代碼)......01111110

(幀定界符之間的0、1代碼包括要傳輸的數據以及一些其他信息)

零比特填充法:

那么,就會出現一個問題:如果在幀的中間(不包括幀定界符)的地方也出現了 ...01111110... 怎么辦呢?一般采用零比特填充 的方式,即如果幀中間出現了 111111(五個連續的“1”),那么就在第五個“1”后面加一個“0”,這樣在幀定界符中間就不會出現六個連續的“1”,自然也不可能出現 01111110 。

當接收端接收到比特流時,如果發現五個連續的“1”,就刪除掉后面的一個“0”,從而恢復原來的數據。

HDLC幀結構:幀標志F -> 地址A-> 控制C -> 信息Info -> 幀檢驗序列FCS -> 標志F

幀標志F(flag):即幀定界符 01111110(二進制)-> 7E(十六進制)

地址A(address):地址字段。

控制C(control):控制字段,用于構成各種命令及響應,以便對鏈路進行監視與控制。發送方主節點或組合節點利用控制字段來通知被尋址的從節點或組合節點執行約定的操作;相反,從節點用該字段作為對命令的響應,報告已經完成的操作或狀態的變化。該字段是HDLC的關鍵。由于Control字段的構成不同,可以把HDLC幀分為三種類型:信息幀、監控幀、無編號幀,分別簡稱I幀(Information)、S幀(Supervisory)、U幀(Unnumbered)。在控制字段中,第1位是“0”為I幀,第1、2 位是“1 ”為S幀,第1、2位是“11”為U幀。

信息幀(I幀):信息幀包含用戶數據、該幀的編號和捎帶的應答序列N(R)。

管理幀(S幀):管理幀負責流量控制和差錯控制,管理幀有4種,包括接收就緒(RR)、接收未就緒(RNR)、拒絕接收(REJ)和選擇性拒絕接收(SREG)。

無編號幀(U幀):U幀用于鏈路控制。

3271ddb2ec57c804191f9798f2fbcf06.png

信息Info:長度不做限定

幀檢驗序列FCS:用于對幀標志F之間的整個序列進行檢驗

四、EhternetⅡ型以太網幀結構

533c24bfec49ac7bf4fbb734a929a4bb.png

幀間間隙IFG(inter-frame gap):在互聯網幀的開頭,有一段幀間間隙IFG(inter-frame gap)或IPG(inter-packet gap)。它的特點是:這是一段沉默的時間,沒有任何數據被傳輸(電壓為0),并且任何一個網絡要求這一段時間至少是 96bit 的IFG。每發完一個幀后要等待一段時間才能再發另外一個幀,以便讓幀接收者對接收的幀作必要的處理(如調整緩存的指針、更新計數、通知對報文進行處理等等)。幀間間隙不屬于EhternetⅡ型以太網幀結構中。

前導碼(preamble):七個字節,在這一段沉默的時間結束后,以太網開始發送 前同步碼 或者叫 前導碼(preamble),前導碼用十六進制表示就是:AA AA AA AA AA AA AA。7個字節的作用是同步時鐘,和發送端保持時鐘同步。

幀開始定界符:一個字節,幀開始定界符用十六進制表示就是 AB 。幀開始定界符和前導碼從二進制來看,僅有一位不同。

AA -> 1010 1010

AB -> 1010 1011

MAC目標地址:接收方的地址

MAC源地址:發送方的地址

類型:用于標志上一層使用的是什么協議,以便把收到的幀的數據上交給上一層的這個協議

幀檢驗序列FCS:用于檢驗幀序列是否發生差錯,當傳輸媒體的誤碼率為時,MAC子層可使未檢測到的差錯小于。

部分信息摘自百度百科。

部分信息參考網名為:Ben Eater 的youtuber的講解

Ben Eater的youtube網址如下:

https://www.youtube.com/playlist?list=PLowKtXNTBypGqImE405J2565dvjafglHU

圖文:ZJL

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538860.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538860.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538860.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python用一行代碼編寫一個回聲程序_使用Python的多回聲測驗

我在寫一個程序來管理一個五問多的問題- 關于全球變暖的選擇測驗和計算數字 正確答案。 我首先創建了一本字典,比如:questions \ { "What is the global warming controversy about?": { "A": "the public debate over wheth…

iOS開發學習路線

iOS開發學習路線 前言 這里筑夢師,是一名正在努力學習的iOS開發工程師,目前致力于全棧方向的學習,希望可以和大家一起交流技術,共同進步,用簡書記錄下自己的學習歷程. 個人學習方法分享本文閱讀建議 1.一定要辯證的看待本文. 2.本文主要是本人對iOS開發經驗中總結的知識點 3.本…

Android快速開發框架XUtils

原文地址:http://blog.csdn.net/rain_butterfly/article/details/37812371 點擊閱讀原文 -------------------------------------------- https://github.com/wyouflf/xUtils https://github.com/wyouflf/xUtils3 XUtils是基于afinal開發的,比afina…

oracle查看序列數據語法,oracle查詢各種數據字典的語法

ORACLE的數據字典是數據庫的重要組成部分之一,它隨著數據庫的產生而產生, 隨著數據庫的變化而變化,體現為sys用戶下的一些表和視圖。數據字典名稱是大寫的英文字符。數據字典里存有用戶信息、用戶的權限信息、所有數據對象信息、表的約束條件、統計分析數…

如何安裝python3.8.1_python3.8.1 安裝

Loading...請注意,本文編寫于 217 天前,最后修改于 217 天前,其中某些信息可能已經過時。系統環境:centos 7 安裝依賴項 bash yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-d…

明年新iphone使用增強版5nm芯片_蘋果A15芯片或將采用臺積電5nm+工藝!性能提升極強...

今年蘋果的iPhone 12系列搭載的A14 仿生芯片是今年智能手機市場推出的第一款5nm工藝處理器,處理器的性能也是用戶有目共睹的,相較于之前的芯片性能提升了一大截,有眾多網友也表示:蘋果芯片最大的敵人就是上一代的自己。當然&#…

php中dump怎么使用,php – 如何正確使用print_r或var_dump?

我在調試時經常使用以下代碼段:echo "" . var_dump($var) . "";而且我發現我通常會得到一個很好的可讀輸出.但有時我卻不這樣做.這個例子我現在特別煩惱:$usernamexxxxxx;$passwordxxxxxx;$data_urlhttp://docs.tms.tribune.com/tec…

Spring Framework 5 中的新特性

https://www.ibm.com/developerworks/cn/java/j-whats-new-in-spring-framework-5-theedom/index.html Spring 5 于 2017 年 9 月發布了通用版本 (GA),它標志著自 2013 年 12 月以來第一個主要 Spring Framework 版本。它提供了一些人們期待已久的改進,還…

怎么計算一組數據的波動_稅控盤數據和小規模增值稅申報表計算結果不一致怎么辦...

a公司為小規模納稅人,于2020年1月申報2019年第四季度增值稅時,是按照金稅盤的數據實際銷售金額為562,563,13元,實際銷售稅額為16,876.87元填寫小規模納稅人增值稅申報表。申報成功后,稅務系統卻跳出比對異常,戶管員要求…

簡單又好看的按鈕,扁平化按鈕。

原文地址:http://blog.csdn.net/peijiangping1989/article/details/19333779 點擊閱讀原文 ----------------------------------------------------------- 今天分享一下流行的扁平化按鈕。完全不需要用到圖片哦。效果圖如下: 里面有2個按鈕都是一樣的…

python輸入三行、能出來三行數據_python 讀入多行數據的實例

一、前言本文主要使用python 的raw_input() 函數讀入多行不定長的數據,輸入結束的標志就是不輸入數字情況下直接回車,并填充特定的數作為二維矩陣二、代碼def get2dlistdata():res []inputline raw_input() #以字符串的形式讀入一行#如果不為空字符串作…

請問,現在android流行什么開源框架?

retrofit2.0RxjavagreenDao3大流行圖片庫p,g,f(Picasso,Fresco,Glide) 3分鐘全面了解Android主流圖片加載庫 http://blog.csdn.net/carson_ho/article/details/51939774 Retrofit2使用(非常簡潔易懂) ht…

matlab 銳化降噪,matlab 圖形銳化 濾波

help imreadhelp fspecial imfilt幫助穩定中有較多的示例fspecial 函數功能:產生預定義濾波器格式:Hfspecial(type)Hfspecial(gaussian,n,sigma) 高斯低通濾波器Hfspecial(sobel) Sobel 水平邊緣增強濾波器Hfspecial…

執行 link.exe 時出錯_在20多歲時應該做什么,以避免在30多歲和40多歲時后悔?...

1. 永遠不要以為自己可以,將會或曾經到達過以為是錯誤的。無論是幸福,收入還是心態。在二十多歲的關鍵時期,我有這種心態,對我自己不利。認為自己“實現”是一種靜態的世界觀,阻礙了您的成長。接受這樣的事實&#xff…

音頻自動增益 與 靜音檢測 算法 附完整C代碼

前面分享過一個算法《音頻增益響度分析 ReplayGain 附完整C代碼示例》 主要用于評估一定長度音頻的音量強度, 而分析之后,很多類似的需求,肯定是做音頻增益,提高音量諸如此類做法。 不過在項目實測的時候,其實真的很難…

python繪制餅狀圖圖例_使用matplotlib的所有餅圖的通用圖例

圖例只需調用一次,否則將顯示7個不同的圖例。我在下面展示了一個例子。請注意,您必須將自己的數據替換為ax.pie():data1 (10,90) # some data to be plotted data2 (40,50) data3 (70,30) labels [Sending Data, Not Sending Data] #lege…

Android初始化本地數據庫

原文:http://blog.csdn.net/itjavawfc/article/details/50860647 點擊閱讀原文 -------------------------------- 最近遇到一個需求,一個同學不會搭服務器,但是Android課程設計需要用到很多數據,這樣就出現了一個問題&#xff0c…

jsp springmvc 視圖解析器_springMVC配置jsp/html視圖解析器

1、maven項目引入freemark相關jar包freemaker是以個模板引擎,可以根據提供的數據和創建好的模板,去自動的創建html靜態頁面。所以在返回html視圖時可以用這個引擎結合數據生成html靜態頁面。org.springframeworkspring-context-support5.0.7.RELEASEorg.freemarkerf…

php設計模式原型模式,原型模式_設計模式_設計模式之原型模式 - Lane Blog

108Clicks: 6614 Date: 2014-04-21 21:48:35 Power By 李軒Lane原型模式提取重復功能,避免了程序員喜歡復制粘貼的壞習慣。設計模式中的原型模式就是,用原型實例指定創建對象的重力,通過拷貝這些原型來創建新的對象從一個對象再創建另外一個可…

Windows2003如何安裝IIS和ftp

【開始】----【控制面板】----【添加或刪除程序】 出現如下“添加或刪除程序”界面,點擊“添加/刪除windows組件(a) ” 出現如下“window組件向導”界面 下拉“組件”欄目條,選擇“應用程序服務器” 點擊“應用程序服務器”下的“…