




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精品好資料學習推薦目錄內容摘要1關 鍵 詞1Abstract1 Key Words 11緒論 21.1研究的意義 21.2本設計的主要功能 22HDLC協議綜述 32.1 HDLC協議的產生背景 32.2 HDLC協議的幀結構 42.3 HDLC協議的規程分析 73HDLC協議控制器的設計 83.1 HDLC協議控制器設計方案選擇83.2 FPGA的設計原則 93.3 HDLC協議控制器總框架103.4 HDLC幀發送器的設計113.5 HDLC幀接收器的設計15參考文獻 18致 謝19說明:在本頁中,“目錄”二字居中,宋體小二號,加黑,其它統一由宋體小四號,不加黑排版打印、行間距為1.521
2、 / 23內容摘要: HDLC(高級數據鏈路控制)協議是一種面向比特的鏈路控制規程,廣泛的用作數據鏈路層的控制協議。論文在分析和研究HDLC協議的基礎上,提出了一種基于FPGA(現場可編程門陣列)的HDLC協議控制器的設計。對HDLC協議控制器的功能進行劃分,分別設計了標志位的檢測和生成、插零和刪零、FCS的校驗等控制模塊。采用VHDL硬件描述語言在FPGA內部實現HDLC協議的各功能模塊,本設計使用Quartus II 9.1平臺實現代碼編寫、綜合、編譯、仿真。對HDLC鏈路控制規程功能,幀控制和FCS校驗功能進行了仿真實現。關 鍵 詞:HDLC;FPGA;幀收發器;Abstract:(宋體
3、,小四號,加黑)。(宋體,小四號,不加黑)Key words:(宋體,小四號,加黑) (宋體,小四號,不加黑)1 緒論1.1 研究的意義HDLC是一個在同步網上傳輸數據、面向位的數據鏈路層協議,它是由國際標準化組織(ISO)制訂的。該協議被廣泛的用作數據鏈路層的控制協議,HDLC控制器在網絡設備中得到大量的使用,如列車通信網絡技術、綜合業務數字網ISDN、X.25分組交換網以及幀中繼網等。怎樣在產品中設計與實現HDLC網絡協議也是一個技術研究的熱點。HDLC的一般實現方法為采用 ASIC 器件和軟件編程等。ASIC的芯片有Motorola公司的MC92460,ST公司的MK5025等。應用這些
4、 ASIC 器件時設計簡單,功能針對性強,性能可靠,適用于特定用途的大批量產品中。但是這類ASIC芯片存在開發時間長,一旦芯片固有缺陷就不容易解決等問題,而且HDLC標準的文本較多,ASIC芯片出于專用性的目的難以通用于不同版本,缺乏靈活性。HDLC的軟件編程方法靈活,通過修改程序就可適用于不同的HDLC應用,但程序運行占用處理器資源多,執行速度慢,實時性不易預測。FPGA(Field Programmable Gate Array, 現場可編程門陣列)器件采用硬件處理信號,可以反復編程,能夠兼顧速度和靈活性,并能多路并行處理。在中小批量通信產品的設計中,FPGA 是取代 ASIC 實現 HD
5、LC 功能的一種合適選擇。1.2 本設計的主要功能本文實現了一種采用FPGA的HDLC協議控制器的設計和功能仿真。首先綜述了HDLC協議的產生背景和幀結構,提出了基于FPGA設計模式的控制器。以HDLC協議幀的接收和發送為主體,在明確FPGA的設計原則的基礎上,對幀收發器進行分功能模塊設計,編寫代碼,時序分析。以發送器為例,其中包括了標志位的生成,插零,FCS校驗等模塊的設計。接收器跟發送器設計思想類似。在完成各個模塊的設計后,使用了Quartus II 9.1自帶仿真器對各個模塊的功能一一進行了仿真,并對HDLC協議及其規程進行了驗證和分析。2 HDLC協議綜述2.1 HDLC 協議的產生背
6、景計算機通信的早期,人們發現對于經常發生誤碼的實際鏈路,只要加上了合適的控制規程,就可以是通信變得比較可靠。這些規程都是數據鏈路層的協議,都是面向字符的。所謂面向字符,就是說在鏈路上所傳送的數據都是由規定的字符集中的字符所組成的。而且,鏈路上傳送的控制信息也必須由同一個字符集中的若干指定的控制字符構成。面向字符的鏈路控制規程曾在計算機網絡的發展過程中起了重要的作用,但隨著發展,這種規程就逐漸暴露出其弱點。其主要限制是:1通信線路的利用率低,因為它采用的是停止等待協議,收發雙方交替地工作。2所有通信設備必須使用同樣字符的代碼,而不同版本的規程要求使用不同的代碼。3.只對數據部分進行差錯控制,若控
7、制部分出錯就無法控制,因而可靠性差。4.不易擴展,每增加一種功能就需要設定一個新的控制字符。1974 年,IBM 公司推出了著名的體系結構 SNA。在 SNA 的數據鏈路層規程上采用了面向比特的規程 SDLC(Synchronous Data Link Control)。后來 IBM 將此規程提交美國國家標準協會 ANSI 和國際標準化組織 ISO,建議成為國家和國際標準。ANSI 把 SDLC 修改為 ADCCP(Advanced Data Communication ControlProcedure)作為美國國家標準,而 ISO 把 SDLC 修改后稱為 HDLC(High-level D
8、ataLink Control),并作為國際標準 ISO3309。HDLC協議有兩種鏈路配置和三種數據傳送方式:1. 非平衡模式:a. 正常響應方式NRM(Nomal Response Mode)b. 異步響應方式ARM(Asynchronous Response Mode)2. 平衡模式:c. 異步平衡方式ABM (Asynchronous Balanced Mode)2.2 HDLC 協議的幀結構HDLC的幀格式由六個字段組成,這六個字段可以分為五種類型,即標志序列(F)、地址字段(A)、控制字段(C)、信息字段(I)、幀校驗字段(FCS)。在幀結構中允許不包含信息字段I。標志地址控制信息
9、幀校驗序列標志FACIFCSF0111111016/8位16/8位N位16/32位01111110圖1 HDLC幀結構l 標志序列(F)HDLC指定采用01111110為標志序列,稱為F標志。要求所有的幀必須以F標志開始和結束。接收設備不斷地搜尋F標志,以實現幀同步,從而保證接收部分對后續字段的正確識別。另外,在幀與幀的空載期間,可以連續發送F,用來作時間填充。在一串數據比特中,有可能產生與標志字段的碼型相同的比特組合。為了防止這種情況產生,保證對數據的透明傳輸,采取了比特填充技術。當采用比特填充技術時,在信碼中連續5個“1”以后插入一個“0”;而在接收端,則去除5個“1”以后的“0”,恢復原
10、來的數據序列,如圖4所示。比特填充技術的采用排除了在信息流中出現的標志字段的可能性,保證了對數據信息的透明傳輸。數據中某一段比特組合恰好 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0 出現和F字段一樣的情況 會誤認為是F字段 發送端在5個連1之后 0 0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0 填入0比特再發送出去 填入0比特在接收端將5個連1之后 0 0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0圖2 比特填充當連續傳輸兩幀時,前一個幀的結束標志字段F可以兼作后一個幀的起始標志字段。當暫時沒有信息傳送時,可以連續發送標
11、志字段,使接收端可以一直保持與發送端同步。l 地址字段(A)地址字段表示鏈路上站的地址。使用平衡方式(采用ABM),地址字段寫入應答站的地址。HDLC協議沒有給出地址字段的具體格式,只對其擴充方法及全站地址、無站地址給出了定義。考慮到實際的需要與實現上的方便,定義地址字面結構如下:0 12345671C/RXXXXXXX 未使用Bit0 置“1”,表示地址字段只有一個字節C/R 置“1”表示命令幀,置“0”表示響應幀圖3 地址字段定義地址字段的長度采用8bit時,最多可以表示64個站的地址。地址字段bit2bit7為“111111”時,定義為全站地址,即通知所有的接收站接收有關的命令幀并按其動
12、作;bit2bit7為全“0”比特為無站地址,用于測試數據鏈路的狀態。因此有效地址共有62個。l 控制字段(C)控制字段用來表示幀類型、幀編號以及命令、響應等。由于C字段的構成不同,可以把HDLC幀分為三種類型:信息幀、監控幀、無編號幀,分別簡稱I幀(Information)、S幀(Supervisory)、U幀(Unnumbered)。在控制字段中,第1位是“0”為I幀,第1、2位是“10”為S幀,第1、2位是“11”為U幀。比特12345678I幀0N(S)P/FN(R)S幀10S1S2P/FXXXU幀11M1M2P/FM3M4M5圖4 基本模式控制字段比特1234567891011121
13、3141516I幀0N(S)P/FN(R)S幀10S1S2XXXXP/FN(R)U幀11M1M2UM3M4M5P/FXXXXXXX注:X-未使用,置0U-未定義,置1。圖5 擴充模式控制字段l 信息字段(I)信息字段內包含了用戶的數據信息和來自上層的各種控制信息。長度小于58Bytes。l 幀校驗序列字段(FCS)幀校驗序列用于對幀進行循環冗余校驗,其校驗范圍從地址字段的第1比特到信息字段的最后一比特的序列,并且規定為了透明傳輸而插入的“0”不在校驗范圍內,長度定義由于單板中有部分HDLC鏈路采用HDLC控制器實現,而HDLC控制器只能支持16bits的CRC 2.3 HDLC協議的規程分析1
14、使用統一的幀格式:實現數據、命令和響應的傳輸,實施起來方便;2采用0位插入法:使得規程可以支持任意的位流傳輸,保證了信息傳輸的透明性;3采用窗口機制和捎帶應答機制:全雙工工作方式,允許在未收到確認的情況下,連續發送多個幀,提高了信息傳輸的效率;4采用幀校驗序列,并設置窗口序號,可以提高信息傳輸的正確性和可靠性。總之,面向二進制位的控制規程比面向字符型的控制規程具有較高的優越性。3 HDLC協議控制器的設計3.1 HDLC協議控制器設計方案選擇HDLC協議控制器實現方法有三種:ASIC器件、軟件編程以及FPGA器件。實現HDLC協議的ASIC芯片有Motorola 公司的 MC92460、ZIL
15、OG 公司的Z80230/85230、ST 公司的 MK5025等。這些集成電路使用簡易,功能針對性強,適用于特定用途的大批量產品中。但HDLC標準的文本較多,ASIC芯片出于專用性的目的難于通用于不同版本,缺乏靈活性。而且,專用于 HDLC 的 ASIC 芯片其片內數據存儲器容量有限,通常只有不多字節的 FIFO(先進先出存儲器)可用,存儲深度較淺,對于某些應用來說,當需要擴大數據緩存的容量時,只能對 ASIC 芯片再外接存儲器或其它電路,這樣,ASIC 芯片在使用中就會有一定的限制。HDLC的軟件編程實現,包括PC機和單片機,方法靈活,具有成本低、硬件結構簡單、軟件編程容易等特點。通過修改
16、程序就可以適用于不同的HDLC協議要求的應用。但是程序運行占用處理器資源多,執行速度慢,對信號的時延和同步性不易預測。使用FPGA(Field Programmable GateArray,現場可編程門陣列),能夠有效的綜合前兩種方法的優點。FPGA采用硬件技術處理信號,可以通過軟件反復編程使用,能兼顧速度和靈活性,可以實時預測和仿真。VHDL語言設計靈活,可以用模擬器來驗證程序的功能和時序的正確;不要求設計者非常熟悉器件的內部結構,使得設計者可以集中精力從事設計構思,可以在各EDA平臺上運行。在中小批量通信產品的設計生產中,用FPGA實現HDLC功能是一種較好的實現途徑。3.2 FPGA的設
17、計原則完整的FPGA設計流程分為電路設計與輸入、功能仿真、綜合、綜合后仿真、實現、布局布線后仿真、配置下載與調試等主要步驟。在設計FPGA系統時,主要考慮以下幾個原則:面積和速度的平衡原則與互換原則、硬件原則、系統原則和同步設計原則。1)面積和速度的平衡原則與互換原則:這里的“面積”是指一個設計所消耗的FPGA的邏輯資源數量。“速度”是指設計在芯片上穩定運行時所能夠達到的最高頻率,與設計時眾多時序特征量密切相關。一般來說,速度的優先級要高于資源耗費。當兩者沖突時,采用速度優先的準則。2)硬件原則對HDL代碼編寫而言,它的本質作用在于描述硬件。所以評判一段HDL代碼的優劣的最終標準是其描述并實現
18、的硬件電路的性能(包括速度和面積兩個方面的指標)。3)系統原則系統原要求設計者能夠通過全局、整體上把握設計,從而提高設計質量,優化設計效果。4)同步設計原則同步時序設計是FPGA設計的最重要原則之一。異步電路容易產生毛刺和競爭冒險;同步時序電路主要信號和輸出信號都由時鐘驅動觸發器產生,能夠避免毛刺,信號穩定。從資源使用方面考慮,在FPGA中,同步設計并不比異步設計浪費資源。特別需要注意的是,不同的時鐘域的接口需要進行同步。還要考慮全局時鐘布線資源的利用。全局時鐘資源由特殊的工藝實現,具有很高的扇出性能,且到達芯片內部的所有可配置單元、FO單元和選擇性塊RAM的時延和抖動都為最小。邏輯設計中使用
19、非常頻繁的時鐘信號、預設置信號、復位信號和使能信號均應從全局腳引入。3.3 HDLC協議控制器總框架幀發送器幀接收器 總控制端local if由結構圖可以看出,HDLC協議控制器分為總控制模塊、幀發送器、幀接收器,按具體功能模塊劃分,每個幀控制器又劃分為控制、數據緩沖、插零、刪零、標志位等模塊。各個模塊之間的連接時依靠控制信號和寄存器的配置實現的,通過配置好總控制模塊的各個控制信號,從而組成整體的HDLC幀的收發功能。具體電路如下圖所示:3.4 HDLC幀發送器的設計幀發送器是將信息按照HDLC協議的格式封裝成幀并發送出去,其中包括了幀頭幀尾標志位的插入、插零、FCS校驗和發送模塊。通過配置功
20、能選擇寄存器addr選擇發送功能,并設置好時鐘、復位等控制信號即可實現幀發送器的功能。3.4 .1 幀發送器的主要功能1)插零發送器接收到數據時,首先檢測是否數據中有5個連續的1,如若有就在其后面插入一個0。2)標志位生成當接收到信號開始發送數據時,將“7E”加在幀頭和幀尾,并發送出去。3)CRC校驗幀校驗序列用于對幀進行循環冗余校驗,其校驗范圍從地址字段的第1比特到信息字段的最后一比特的序列,并且規定為了透明傳輸而插入的“0”不在校驗范圍內。4)數據緩沖3.4 .2 幀發送器的組成 控制模塊txbuff txsynchtxchannel txfcs 幀發送器功能組成模塊 數據緩沖模塊( tx
21、buff):數據緩沖模塊負責將接收到的數據緩存起來,然后供后續模塊調用數據。其端口定義如下圖:數據緩沖模塊管腳定義圖 初始化之后,當控制端收到發送數據的信號時,將txenable和wr端口置1,數據由txdatainbuff輸入,txbuff開始緩沖數據,當數據緩沖滿了將full置1或達到了預定的數值時會將txdone置1。數據緩沖完后,txdataavail置1表示此時緩沖器內數據可以供調用,數據由txdataoutbuff輸出。txbuff模塊對幀的數據量根據存儲模塊的大小和后面數據處理能力來決定,模塊輸出的8比特并行數據。 CRC校驗模塊(txfcs):在通信系統中傳輸數據的可靠性即誤碼
22、率是非常重要的,因此在傳輸的數據中需要插入一定的校驗信息。根據HDLC協議的要求,數據發送前要對幀內所有的數據進行CRC多項式的計算,并將結果一起發送出去,CRC校驗的模塊引腳圖如下圖: 發送器CRC校驗模塊系統初始處于idle_st狀態,當收到讀數據信號時(rdy置1),進入read_st狀態,如果txdataavail有效txfcs將rdbuff置“1”開始從txbuff中讀取數據,然后將數據一一進行CRC多項式運算,并將數據一起封裝在幀里面發送出去。 txsynch模塊:txsynch模塊的功能是將總控制模塊、txbuff模塊、txfcs模塊和txchannel模塊連接,模塊引腳圖如下:
23、 txsynch模塊引腳圖 txchannel模塊:txchannel模塊又由zeroins、txcont、flag_ins3個模塊構成,分別負責標志位的生成和插零功能的實現,其模塊引腳圖如下: txchannel模塊引腳圖1)標志位生成模塊flag_ins:標志位生成模塊負責對待發送的數據進行幀頭尾的添加,其端口定義圖如下圖:flag_ins模塊引腳圖當該模塊接收到控制使能信號時(TXEN置”1”),串行數據由TXD端口輸入,TX端口輸出已加好標志位的串行數據流。標志位的仿真時序圖如下圖: 發送端標志位仿真時序圖設定發送數據為“10101010”,由圖可知數據流中已加入“0x7E”的標志位,
24、這是構建HDLC幀的第一步。2)插零模塊zeroins:為了保證數據鏈路的透明傳輸(即可以傳輸任意組合的比特流),HDLC發送器在遇到5個連“1”的情況下,為了防止接收端誤判幀頭或幀尾,必須在其后填充一個“0”比特。其模塊引腳圖如下:當data7.0端口接收到數據時,在時鐘上升沿來到時利用移位寄存器,進行8位數據并串轉換,在模塊內定義一個5位的寄存器,對轉換后的連續的5比特數據進行求與運算,若是連續的5個“1”比特,則在后面插入一個“0”比特。插零功能仿真時序圖如下:發送端插零模塊仿真時序圖由圖可以看出,輸入數據值為“11111000”時,由于數據的高5位均為“1”,根據每逢5個連續的“1”插
25、一個“0”,所以輸出的數據流中變成了“111110000”3.5 HDLC幀接收器設計幀接收器設計的模塊與幀發送器的設計過程類似,接收器負責標志位檢測、CRC生成、刪零模塊,基本與幀發送器相逆。同樣幀接收器的數據緩沖模塊也與幀發送器的設計過程相似。通過配置addr寄存器即可實現HDLC幀接收器的整體功能。3.5 .1 幀發送器的主要功能1)標志檢測:此模塊檢測比特流中的“7E”,作為數據幀開始和結束的標志。2)刪零:接收數據時,每遇到連續的5個“1”,就將其后面的一個“0”刪掉。3)CRC檢測:采用CRC-12,也可以不進行檢測。3.5 .2 幀發送器的組成 控制模塊rxbuff rxsync
26、hrxchannel rxfcs 數據緩沖模塊( rxbuff):幀接收器的數據緩沖模塊,跟發送器的緩沖模塊功能相似,但是邏輯相逆。這里是將從txchannel中收到的數據緩存起來,等到緩沖滿了,供用戶調用數據。數據緩沖模塊引腳圖如下: rxchannel模塊:rxchannel也包含了rxcont、flagdetect、zerodetect這3個模塊。Rxchannel模塊引腳圖如下:Rxchannel模塊引腳圖1)標志位檢測功能模塊引腳圖: 接收器標志位檢測引腳圖標志位檢測的主要功能是檢測接收到數據流的幀頭,確定幀的邊界。幀頭判別式如下:FlagVar := not ShiftReg(0)
27、 and ShiftReg(1) and ShiftReg(2) and ShiftReg(3) and ShiftReg(4) and ShiftReg(5) and ShiftReg(6) and not ShiftReg(7);FlagDetect = FlagVar;如果檢測到FlagDetect其值為高,則表明檢測到幀頭的出現,這樣就可將為下個模塊提高控制信號,提示可以開始接收數據。若為零,則表示幀頭還未到來。標志位檢測功能模塊仿真時序圖如下:標志位檢測功能模塊仿真時序圖1由圖可知,輸入標志位“0x7E”之后緊跟著的是“1111000000001111”數據流。輸出數據data如下圖所示:標志位檢測功能模塊仿真時序圖2這是輸出的8比特并行數據,兩組數據分別是“11110000”和“00001111”,可見幀接收器正確的接收到了發出的數據。2)零檢測功能模塊引腳圖: 零檢測功能模塊引腳圖零檢測功能模塊是檢測比特流中連續“1”的個數,向后面的提供控制信號,以完成刪零判斷,檢測幀結束標志的功能。模塊內設置一個計數器,用來計算連續“1”的個數。若是計數值為6且下一接收比特為“0”,表明檢測到結束標志。當計數器值為5且下一比特為“0”,則表明該“0”比特應該刪去。零檢測功能模塊仿真時序圖如下:由圖可知,輸入的 數據流是“111110001100111
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學校資助辦管理制度
- 學生借閱卡管理制度
- 安全及安全管理制度
- 安息堂物業管理制度
- 完善公物倉管理制度
- 定額員日常管理制度
- 實訓室規范管理制度
- 客戶退貨處管理制度
- 客運部安全管理制度
- 家族接待部管理制度
- 西南聯大課件
- 導游基礎知識(中職)全套PPT教學課件
- 魅力臺州優質獲獎課件
- ZZ028 中職法律實務賽項賽題-2023年全國職業院校技能大賽擬設賽項賽題完整版(10套)
- 電動剪刀式升降車作業風險辨識及控制措施清單
- 巨力索具(河南)有限公司年生產10萬噸鋼絲及5萬噸鋼絲繩項目環境影響報告
- 提高患者自備口服藥物正確堅持服用落實率
- 三段式電流保護的整定與接線課件
- GB/T 709-2006熱軋鋼板和鋼帶的尺寸、外形、重量及允許偏差
- GB/T 5463.3-1986非金屬礦產品名詞術語石膏、硬石膏
- GB/T 32301-2015航天器包裝、運輸通用要求
評論
0/150
提交評論