基于SOPC技術的以太網遠程網橋的設計與實現
原創性聲明
聲明:本文的核心思想及方案設計實現均為本文作者原創,除了文中特別加以標注的地方外,論文中不包含其他人已經發表和撰寫過的研究成果。
設計題目:基于SOPC技術的以太網遠程網橋的設計與實現
作者簽名: 吳昆
日期: 二OO六年六月二十日
Design and implementation of the E1-Ethernet adapter based on SOPC
摘要:本文主要介紹在以太網遠程網橋中多路E1信號輸入情況下的數據緩存、時鐘恢復、信號編碼轉換以及NIOS處理器平臺的設計,并用 Altera 的 Cyclone 器件實現的整個過程。包括簡單介紹以太網網橋的原理,SOPC技術在系統中的作用和地位,并詳細介紹了此系統用fpga 設計實現的過程。
Abstract:This paper introduce the design and implementation of the E1-Ethernet adapter based on SOPC platform, and it is implemented by Altera Cyclone series product. The introduction of this paper includes the function module such as E1 data buffer,E1 line clock recovery, frame synchronization,E1 frame organize, HDB3 code and decode, interface to NIOS processor in the whole system, and the details of the design and implementation by FPGA.
1. 概述
在傳統的電信網中,采用SDH為主的網絡架構,以TDM方式向用戶提供語音和窄帶數據業務。SDH網建設成本高、帶寬利用率低,而且難以提供多種業務。隨著數據業務的快速增長以及IP網絡技術的進步,IP技術日益成為新一代傳輸網絡的主導。與此同時,傳統的話音業務和其它基于電路交換的業務如何被IP網絡支持成為眾多電信運營商所面臨的一大難題,雖然目前已經出現了VoIP技術,但是其應用僅局限于話音業務,且通話質量不高,還需要擴展的PBX。為此,TDMoverIP技術應運而生,即在IP網上透明地傳輸TDM業務。我們在這里稱之為以太網遠程網橋,以基本原理是將以太網數據不做解釋和處理,直接封裝為以太網數據包,然后通過基于分組交換的以太網傳送到目的端,目的端再將收到的數據包打開,并恢復出原始的TDM數據流。如圖1所示。對用戶而言,不需要考慮中間的傳輸媒介,相當于為用戶提供一條透明的通道。
圖1 TDMoverIP
2001年,城域以太網論壇(MEF)就開始了有關運營商級以太網架構的研究,并達成共識。隨著以太網業務的不斷發展,以太網正在向城域網甚至廣域網邁進。另外,現在E1/T1以及SDH/SONET等專線業務很普遍,為了使以太網也能夠提供這些基于電路交換的業務,以太網論壇于2002年開始定義了在城域以太網上提供電路仿真業務的需求。電路仿真即通過異步網絡傳送同步電路(如E1/T1),最初是用在ATM上仿真,現在可擴展到IP/以太網。這里,將以太網電路仿真技術統稱為TDMoverIP。
TDMoverIP相對于VoIP,其優越性是十分明顯的,它主要有以下特點:
1)對于協議和信令是透明的
2)實現比較簡單且價格不貴
3)提供低延遲的高質量語音,通過可配置的包的大小將時延和開銷降至最低
4)保留了現有PBX系統的特性和功能
5)以各種速率支持modem、傳真和圖像服務
6)保持了E1幀的完整性,支持各種協議,包括幀中繼、ATM、ISDN等
本設計所采用的硬件平臺,是基于Altera公司的大容量、高密度的FPGA器件。FPGA(Field Programmed Gray Array)是一種大規模的可編程邏輯器件(Programmed Logic Device)。在二十世紀九十年代末,FPGA器件的復雜度已經能夠在芯片內實現整個系統,完整的片上系統(System On Chip)的概念是指在一個芯片中實現用戶定義的系統。在一個SOC設計中,將涵蓋到包括微處理器、DSP芯片、存儲器件、I/O、控制邏輯、混合信號模塊(Mixed-Signal Blocks )等在內的許多部分。
在系統設計復雜度不斷的提高及新產品市場周期不斷縮短的壓力下,把FPGA及微處理器的核心內嵌在同一芯片上,構建成為一個可編程的SOC系統體系框架結構,即所謂的可編程芯片系統SOPC(System on a Programmable Chip),從而為系統設計者提供了又一靈活快捷的設計方法與途徑。{{分頁}}
2. 系統實現方案
2.1 硬件組成
本系統在功能實現上可以分為三個子模塊,以下將分別介紹。
NIOS系統平臺:這部分構成了系統的核心,它包括NIOS軟核處理器、MAC控制器、SDRAM控制器、FLASH控制器以及系統調試所需的JTAG、URAT等外設接口。NIOS處理器與外設間,均通過其自定義的Avalon總線連接,達到數據快速交換的目的。
E1接口模塊:這部分實現與交換機的底層接口功能,包含E1幀的產生,線路信號特定波形的產生與轉換,2.048MHz線路時鐘的恢復,E1物理線路的阻抗匹配和過流過壓保護。為了減輕CPU的負擔,系統的物理層和數據鏈路層的大部分工作由FPGA內部邏輯來完成。包括鏈路的同步建立與管理,數據的CRC校驗,數據塊的組織等。
以太網接口模塊:這部分主要完成系統以太網側的功能,包括IP數據包的封裝與拆封,以及MAC層數據處理,由片上的MAC控制器通過MII接口與物理層控制器連接。
另外,外掛的FLASH用以裝載ucLinux操作系統及應用程序,SDRAM用于程序運行中數據的緩存。電源和時鐘模塊為系統提供所需的各種電源與時鐘。
本系統的硬件結構如圖2所示。
圖2 系統硬件結構圖
2.2 軟件架構
本文的以太網遠程網橋采用了ucLinux作為嵌入式操作系統,ucLinux是一免費的且源代碼公開的操作系統,它具備現代的UNIX系統所具有的大部分特征,其中包括真正的多任務、虛擬內存、共享庫、需求裝載、優秀的內存管理以及TCP/IP網絡支持等。ucLinux是一種嵌入操作系統,它通過裁減標準的Linux,體積更小、功能更強、快速穩定,更具有針對性。再在裁減內核的基礎上編寫設備驅動程序,為用戶程序中的系統調用提供接口。本設計為對等模式下的UDP通信,其模型如圖3所示。
它的通信步驟如下:
1)建立一個數據報方式的套接字;
2)綁定地址,系統調用bind();
3)進行數據傳輸,使用系統調用sendto()和recevfrom()分別用于發送和接收數據報
系統所需的兩個最基本進程分別用于從以太網上讀取數據交給TDM幀處理模塊以及接收TDM幀處理模塊傳來的數據按照一定的規則打包交給以太網發送。這兩個進程在系統中處于相等的位置,并發運行。
圖3 對等模式的UDP通信 {{分頁}}
3. 課題涉及關鍵技術介紹
3.1 TDMoIP的關鍵問題
1)服務質量
TDMoverIP并未提供機制保證實時交互或提供其它服務質量保證,因此,它需要底層服務去實現;鏈路層通過采用VLAN優先權域賦予TDMoIP信息流優先權;網絡層通過采用經過可控路由的第三層交換機和路由器進行設置,必須考慮這些優先權,這樣給TDMoIP數據的傳送提供了一個相對良好的網絡環境。在這意味著網絡具有優先權分級、有效帶寬。有效帶寬可由許可權控制和話務量工程保證低誤碼率、較低的包倒序率或低丟包率。
2)時鐘恢復
當在以太網上實現TDM流傳輸時,必須實現時鐘的同步傳輸,但是基于時間統計復用以太網,并不能傳輸時鐘信息。廣義上有兩種方法可以克服這個困難,一是通過某種不依賴于以太網本身的手段提供時鐘信息,二是在以太網上傳輸所需定時信息。最好的方法就是從TDMoIP數據流中提取恢復時鐘,這種機制利用了源端產生數據流的速率恒定的特點,雖然這些數據流是通過時延隨機變化的數據包傳輸到目的端的,但經過緩沖處理可以消除這種影響。為理解這種機制,首先假設目的端取出的時鐘,頻率低于源端的參考頻率,緩沖區中數據寫入的速率將高于讀取的速率。這樣,緩沖區填充級別會不斷提高,目的端根據填充級別的提高趨勢相應提高本地時鐘頻率,這樣兩端的頻率最終將會一致。該方法只能用在被仿真數據流的速率是恒定的情況下,且系統時鐘頻率鎖定的時間比較長。。通過使用更復雜的時鐘恢復算法,可以更精確地跟蹤系統時鐘變化,同時獲得最佳的反應時間。
3)抖動和丟包
以太網絡中的數據包到達目的地時的延遲具有隨機性,這種延遲的變化被稱為抖動。為補償在任一以太網絡中都存在的包延遲,必須在復用器中采用抖動緩沖器。這個緩沖器的長度應該是可以設置和動態調整的,也就是說根據延遲變化的統計數據增大或減少緩沖器的長度。盡管有各種流量保證機制,數據包經常以錯誤的順序到達,甚至根本不會到達。為了處理丟包和錯序,應該采用包的順序合成機制和丟包隱藏機制。這種機制應該能在抖動緩沖器中跟蹤包的序列號,當檢測到丟包時,應插入包以保持定時時序。當包的序列號或是其它可檢測到的頭部出錯時,可將該包丟棄。當包的到達順序不對時,應進行交換,可能情況下,插入的包應確保正確的同步比特發到TDM網絡。對于TDMoIP,常在接收下一個信息包后被告知丟包。因此,在丟失的信息包前后的樣本都是可用的,這時可以通過插補來估計丟失的樣本值。對于語音業務,數據包的丟失會導致出現短暫的背景噪音,采用適當機制能有效降低數據包丟失的影響。
3.2 SOC系統平臺的構建
3.2.1 NIOS軟核處理器的實現
NIOS軟核RISC處理器,是Altera Excalibur嵌入處理器計劃中第一個產品,它成為業界第一款為可編程邏輯優化的可配置處理器,支持16位/32位精簡指令集。
NIOS具有以下特點:
1) 較高的性能。全功能的Nios處理器性能超過200 DMIPS,而且輕易地實現任何數量的處理器或將不同的處理器核組合在一起。
2) 較低的系統成本。通過將處理器、外設、存儲器和I/O接口集成到一個單一的FPGA中,從而降低了系統成本、復雜性和功耗。
3) 設計的靈活性更強。Nios基于可編程器件,易于修改與更新。從而使基于Nios II處理器的產品避免了處理器的更新換代而帶來的損失, 延長了產品的生命周期。
在設計中,Altera把可編程邏輯的固有的優勢集成到嵌入處理器的開發流程中,一旦定義了處理器之后,設計者就“具備”了體系結構,可以馬上開始設計軟件原型。CPU 周邊的專用硬件邏輯可以慢慢地集成進去,在每個階段軟件都能夠進行測試,解決遇到的問題。另外,軟件組可以對結構方面提出一些建議,改善代碼效率和處理器性能,這些軟件/硬件權衡可以在硬件設計過程中間完成。
3.2.2 各種外設接口的實現
系統所需的多種外設,如以太網接口、FLASH、SDRAM、UART等接口,都可以方便地應用Altera及其合作伙伴提供的IPcore來實現。借助Altera提供的系統級設計工具SOPC Builder,大大減輕了設計的難度。它包括兩方面的內容:第一,直觀的圖形用戶接口(GUI),便于設計者準確地添加和配置系統所需的外設(包括存儲器,定制外設和 IP 模塊)。第二,它會自動完成系統集成工作,這樣設計者不必拘泥于定義存儲器映射,中斷控制和總線控制這樣的工作。
3.3.4 片內異步fifo的實現
當今集成電路設計的主導思想之一就是設計同步化,但在實際的應用系統中,實現完全同步化的設計非常困難,很多情況下不可避免地要完成數據在不同時鐘域間的傳遞(如高速模塊和低速模塊之間的數據交換)。這時,如何保持系統的穩定,順利完成數據的傳輸就成為一個重要的問題,這也是異步電路設計中最為棘手的問題。
通常的做法是采用對每位信號加同步器或增加握手信號來解決這一問題,但這樣會增加系統的復雜度且影響傳輸速度。本文的做法是在兩個時鐘域的交界處設計一個異步FIFO,通過它來實現數據流的傳輸。由發送時鐘域將數據寫入,接收時鐘域將數據取出,在數據傳輸的同時實現了數據的緩存,因此是一種較理想的方法。
不同時鐘域間數據傳遞的最重要問題就是亞穩態問題。亞穩態是在兩時鐘敏感沿靠得很近、第二級時鐘敏感沿到來時其輸入數據不穩時發生,可將其視為僅僅是第二級觸發器輸入信號不穩定所導致的結果。只要使輸入信號穩定,就能解決亞穩態問題。
針對如上所述亞穩態的特點,可設計一個同步器來保證數據的穩定傳輸以解決這個問題。其原理在于使信號在新的時鐘域中先穩定下來再進入相關的邏輯,以保證信號與新的時鐘同步。本設計在時鐘域的接口處就采用此法。
在本系統中,采用了Cyclone系列FPGA內部的RAM塊組成了雙口RAM實現了異步fifo,實現了在不同時鐘域中數據傳遞。
3.3 E1幀的產生和數字傳輸碼
3.3.1 E1同步機制的處理
E1鏈路由成幀,成復幀,不成幀三種傳輸模式,在成幀和成復幀模式下0時隙都是用來傳基本幀同步碼,復幀模式下每一復幀的第一子復幀第16時隙的傳復幀同步碼。本設備能實現基本幀同步和復幀同步,支持成幀和成復幀的E1鏈路數據接口。
根據CCITT相關要求,E1接收幀同步機構應遵守下列規定:
1)同步捕獲:在系統處于‘捕獲’狀態下,
把檢測到的幀同步碼型作為‘捕獲’對象。若在隔一幀的同一位置檢測到同步碼,則立即進入‘同步’狀態。
2)失步條件:在系統處于‘同步’的狀態下,若
。在一個偶幀內的TS0的b0位置沒檢測到同步碼;
。在第二偶幀內的同一位置也沒檢測到同步碼;
。在第三偶幀內的同一位置還沒檢測到同步碼
則立即進入失步狀態,開始同步捕獲。
3)在‘失步’捕捉狀態下,它把檢測到的第一個同步碼作為捕獲對象,若在同一位置沒有檢測到同步碼,則立即‘重新捕獲’,即把其后檢測到的同步碼作為捕獲對象重新捕獲操作,直到進入‘同步’狀態為止。
參考以上規定的本設備采用基本幀同步狀態轉換圖如下圖4所示。
圖4 E1 幀同步狀態機原理圖 {{分頁}}
復幀失步采用以下規則判斷:在8ms內(含四組復幀定位信號)三次或三次以上沒有捕捉到正確的復幀定位信號。另外,當系統處于偽幀同步態時,將導致一秒內出現915個以上CRC塊錯誤,也將引起復幀失步。LOS告警和AIS告警也會使系統處于幀失步狀態。
復幀定位系統重新進入同步態的判斷依據為:在8ms內至少收到兩組復幀定位信號,且這兩組定位信號的間隔為2ms(或2ms的整數倍)。
3.3.2 HDB3編解碼的實現
在數字通信系統中,為了使信息適合于在信道上傳輸,由終端機發出的數字信息必須編成合適的傳輸碼序列。在電纜中傳輸的應是雙極性碼,如AMI碼、HDB3碼等。AMI碼曾被CCITT推薦為傳輸型之一,但由于這種編碼方式有可能存在對定時提取有影響的長連零,而HDB3碼很好地克服了這個缺點,所以現在E1線路中多采用HDB3碼。
HDB3碼是AMI(Alternate Mark Inversion)碼的改進型。AMI碼是用交替極性的脈沖表示碼元“1”,用無脈沖表示碼元“0”。為了防止電路長時間出現無脈沖狀態,HDB3碼的編碼規則是:
1) 碼流中連“0”碼個數不超過3個時,其編碼規則與AMI碼相同:碼元“0”用0電平表示;碼元“1”交替用50%占空正或者負矩形脈沖表示。
2) 當出現四個連零用取代節取代。取代節有兩種,分別是“BOOV”和“OOOV”。這里的B和V均為傳號脈沖。
3) 當相鄰破壞點V中間有奇數個原始傳號(不包括B碼)時,用“OOOV"取代。
4) 當相鄰破壞點V中間有偶數個原始傳號時,用“BOOV"取代。
5) 用“BOOV”取代時,B碼和V碼與它們前面一個原始傳號極性相反。
6) 用“OOOV”取代時,V碼與它們前面一個原始傳號極性相同。
根據上述HDB3編碼原則,可得到HDB3編碼的原理框圖,圖5所示:
圖5 HDB3編碼原理框圖
HDB3譯碼電路完成編碼的逆過程。由于HDB3碼中的V碼破壞了極性交替原則,因此,在接收端很容易找到它。在譯碼時,將破壞點V檢出,包括它前面的三位碼還原為“0”碼,就完成了HDB3的譯碼工作。關鍵之處是檢出破壞點、取消“取代節”。HDB3解碼原理框圖如圖6所示:
圖6 HDB3解碼原理框圖
4. 總結
SOPC 是一種新的系統設計技術,也是一種新的軟硬件綜合設計技術。與傳統的FPGA+CPU構架相比,它可以很快地將硬件系統(包括微處理器,存儲器,外設以及用戶邏輯電路等)和軟件設計都放在單個可編程的芯片中,以達到系統級的設計。這種設計方式,具有開發周期短以及系統可修改等優點,CPU 本身是以軟核的方式實現,其功能可根據需要進行定制。設計完成的 SOPC 可以通過 HARDCOPY轉為 ASIC 芯片,從而可以實現快速量產。SOPC Builder 不但在硬件設計上提供了支持,在軟件上也為設計者提供了較好的支持,方便驅動程序和上層應用軟件的編寫。本設計實現的以太網網橋,充分發揮了SOPC平臺的優越性,具有功能可擴展、系統升級簡便、低成本等一系列優點,也顯示了SOPC技術在未來網絡設備領域的巨大優勢。
5. 參考文獻
【1】 ATM Forum:atm-vtoa-0078.Circuit Emulation Service Interoperability Specification,
【2】 Stein Y(J),Shashoua,Insler ,et al, draft-anavi-tdmoip-06,IETF,April200
【3】 Stallings,W. Data and Computer Communications,5th Ed.Macmillan,1997
【4】 Altera Corporation :Nios Software Development Reference Manual
【5】 Altera Corporation : Nios II Processor Reference Handbook
【6】 Altera Corporation : cyclone_device_handbook
【7】 謝希仁. 計算機網絡. 北京:電子工業出版社.2004
【8】 樊昌信,詹道庸,徐炳祥,吳成柯. 通信原理. 北京:國防工業出版社.2003
【9】 林建中,王纓,郭世滿. 數字傳輸技術基礎. 北京:北京郵電大學出版社.2003
【10】 楊世平,張引發,鄧大鵬,何淵. SDH光同步數字傳輸設備與工程應用.北京:人民郵電出版社.2001
【11】 潘松,黃偉業,曾毓. SOPC技術實用教程. 北京:清華大學出版社. 2005
【12】 唐思章,黃勇.SoPC與嵌入式系統軟硬件協同設計.單片機與嵌入式系統應用.2004
【13】 俞道法,李喜民,李世東,裴濟杰. 在IP網上實現TDM業務的傳輸. 電信網技術. vol 8,2005.8
【14】 溫兆泉, 郭樹旭.IP網絡傳輸話音和TDM業務的新技術—TDMoIP. 信息技術 VOL.28 NO.4 Apr.2004
作者簡介
吳昆,男 ,華中科技大學在讀碩士研究生,從事FPGA與嵌入式系統方面的研究與開發。
聯系地址:湖北武漢華中科技大學主校區 西七舍140室 430074
E-mail: rickywu1024@126.com
電話:13971495114
評論