新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > EPON系統中ONU的設計

        EPON系統中ONU的設計

        ——
        作者:華中科技大學 光電子工程系 胡元兵 劉海 劉德明 時間:2007-01-26 來源:《電子設計應用》 收藏

        引言

        千兆以太網無源光網絡(EPON)是一種點到多點拓撲結構的光接入網技術、采用無源光器件連接局端和遠端設備,實現以太網業務的透明傳輸,并能在同一架構中實現語音、視頻等綜合業務的接入。EPON作為新興接入網技術的突出優勢在于低成本、易維護和擴展性好。EPON系統由OLT與ONU構成。

        本文引用地址:http://www.104case.com/article/20860.htm

        ONU硬件系統設計

        系統硬件由嵌入式控制模塊和網絡交換模塊兩部分構成。嵌入式控制模塊是ONU的控制和管理核心,它為嵌入式Linux操作系統的運行提供硬件平臺,通過它來實現對網絡交換模塊的控制與配置,實現網絡交換模塊的正常運行。網絡交換模塊提供以太幀的交換與轉發功能,嵌入式控制模塊通過PCI總線與網絡交換模塊進行通信,訪問網絡交換模塊內部各芯片的寄存器,對各芯片進行配置并獲取各個芯片的狀態信息。網絡交換模塊內部的交換芯片BCM5615將嵌入式控制模塊對它的訪問,轉換為自己對網絡交換模塊內部各芯片的訪問,這樣就實現了嵌入式控制模塊對網絡交換模塊內部各芯片的管理。

        嵌入式控制模塊接口設計

        嵌入式處理器MPC8245簡介

        MPC8245由一個外設邏輯塊和一個32位超標量體系結構PowerPC處理器內核構成。在外設邏輯塊中集成了一個PCI橋、DUART、內存控制器、DMA控制器、EPIC中斷控制器、一個消息單元和一個I2C控制器。處理器內核支持浮點運算和內存管理,具有16KB指令高速緩存(cache),16KB數據cache和電源管理特性,MPC8245內含一個外設邏輯總線,用于連接處理器內核和外設邏輯塊。處理器內核可在多種不同的頻率下工作。MPC8245既可以用作PCI host,也可用作PCI代理控制器。支持多達2GB的SDRAM;支持1-8組的4MB、16MB、64MB,128MB,或256MB存儲器。

        時鐘電路

        MTC8245輸入時鐘由33MHz的晶振通過零延時緩沖器產生四路時鐘信號,一路作為MPC8245的PCI總線時鐘和內核的輸入時鐘,系統時鐘信號OSC_IN未用,需要接地。MPC8245的引腳PLL_CFG[0:4]用于配置倍頻因子,經過內部倍頻器,產生SDRAM時鐘和166MHz的CPU內核時鐘。一路作為BTL8139的PCI總線時鐘,一路作為BCM5615的PCI總線時鐘。

        PCI總線接口

        PCI總線工作在33MHz,設計中保證PCI時鐘的時鐘相位偏移小于2ns,否則,系統可能無法正常工作。MPC8245作為PCI主處理器,RTL8139和BCM5615的REQ#、GNT#分別連到MPC8245的REQ[0:1]#、GNT[0:1]#,由MPC8245來實現總線的仲裁。利用地址線AD31、AD30來決定RTL8139、BCM5615的IDSEL,實現PCI總線配置訪問時對RTL8139、BCM5615的片選。這種方法會使AD31,AD30線上增加一個負載,因此將它們的IDSEL通過1KΩ電阻耦合到AD31、AD30上來解決負載加重的問題。PCI總線的控制信號都要求有上拉電阻,保證它們在沒有驅動設備驅動總線的情況下仍然具有穩定的值。因而FRAME#、TRDY#、IRDY#、DEVSEL#、STOP#、SERR#和PERR#這些信號使用10KΩ電阻上拉。

        Flash

        在MPC8245中,ROM/Flash被分為2個BANK,BANK0的地址為0xFF800000-0xFFFFFFFF,片選為/RCS0,RCS0接存儲代碼的存儲器片選;BANK1的地址為0xFF000000-0xFF7FFFFF,片選為/RCS1。ROM/Flash/SRAM工作在不同的數據寬度(8位,16位,32位,64位)地址總線下,復位時,MPC8245的引腳MDL0、FOE決定啟動數據位寬度;復位后,硬件復位配置字決定數據的寬度。

        本設計中選擇512KB的Flash作為Bootloader代碼存儲器,系統工作在8位模式。對應的地址為0xFF800000-0xFF87FFFF。選用兩片AM29LV320B分別作為Bootloader/Linux內核和文件存儲器,AM29LV320B是32Mb、單3.3V電源供電的閃存,編程和擦寫電壓由內部產生,與JEDEC單電源閃存標準兼容;可組成4M×8Bit或2M×16Bit的存儲器。可用標準EPROM編程器進行編程;存取時間最短為70ns;獨立的片選(CE#)、寫使能(WE#)和輸出使能(OE#)控制,可減小對總線的壓力。片選RCS1、RCS2分別選擇兩片Flash,RCS1選中的Flash對應的地址為0xFF000000-0xFF3FFFFF,RCS2選中的Flash地址由編程決定。

        跳線J1用來將RCS0接到Flash1,RCS1接到Flash0,這樣在Bootloader代碼運行后,將Bootloader代碼、Linux內核代碼都燒到Flash1,節約一片512KB的Flash,同時留下RCS2、RCS3片選信號,留作以后擴展Flash用。

        SDRAM

        32MB的SDRAM由兩片HY57V283220T組成。MPC8245的SDRAM接口使用一個片選信號CS1,同時作為兩片HY57V283220T的片選,構成64位數據的SDRAM。HY57V283220T是4 Bank×1M×32Bit的CMOS SDRAM,單3.3±0.3V電源供電,所有引腳與LVTTL接口兼容,所有輸入和輸出都以系統時鐘的上升沿為參考。

        CONSOLE和EMS接口電路

        串行通信通過MAX232芯片實現,工作在3.3V工作電壓,它的體積比較小,工作穩定。通過串口可實現對ONU的網絡管理。使用常用的PHY芯片RTL8139擴展一個10Mbps網口,使得在Bootloader代碼引導系統后,通過該網口下載Linux內核代碼,系統運行后通過該網口對ONU進行WEB管理。

        交換模塊接口設計

        以太網交換模塊由1個BCM5615交換芯片,3個BCM5228B PHY芯片,1個BCM5221PHY芯片、1個HDMP-1636A千兆SERDES和SDRAM芯片組成。該模塊提供1個千兆光口(1000BASE- LX),25個百兆光口(100BASE-FX),是實現ONU功能的核心部分。一個千兆口作為PON的接受端口,接收OLT廣播發送的數據包;另一個千兆口連接成百兆口,作為PON的發送端口,向OLT發送數據,該端口發射的是特殊波長的光,通過特殊的交換機制來實現ONU與OLT的連接。

        BCM5615芯片簡介

        BCM5615是集成多層交換芯片,是以太網交換模塊的核心。它具有24個10/100Mbps和2個10/100/1000Mps以太網口,具有2層和3層交換和2-7層過濾功能;可實現全線速交換,交換速率達670萬包/秒;支持IEEE 802.1Q.D;具有256KB的內部數據包存儲器,可以用SDRAM擴展64MB外部數據包存儲器。

        本設計選用3片BCM228B來提供24個PHY端口。BCM5228B是物理層器件,單片內包含8個獨立的PHY(端口)。BCM5615通過串行MII管理接口管理3個BCM5228B芯片的24個PHY端口,系統對BCM5228B的訪問就是通過轉化為BCM5615的串行MII管理接口上的操作來實現的。BCM5228B每個PHY端口的管理地址由PHYADD[4::0]引腳設置,若BCM5228B的PHYADD[4::0]為PHYAD,則每片8個端口對應的管理地址分別為ADDR=PHYAD+PORTX,PORTX為每個PHY端口的編號。

        時鐘電路

        BCM5615的芯核時鐘由133MHz的晶振產生,設計PCB時,應盡量靠近BCM5615的時鐘輸入引腳,BCM5615的GMII時鐘與MII時鐘均為125MHz,由125MHz的晶振通過74LCX245緩沖后產生四路125MHz的時鐘源,輸入到BCM5615的GMII_CLKIN引腳和3片BCM5228的REF_CLK引腳。注意連接到BCM5228B的時鐘線應該等長,不管千兆口是否使用,GMII_CLKIN的時鐘都必須提供。

        系統復位電路

        系統復位電路采用IMP811復位芯片,通過74LCX245緩沖后產生多路復位信號,分別接到各個芯片的復位引腳。為了可靠復位,要求復位信號的上升沿不能有振蕩現象發生。

        系統軟件設計

        本文選擇Linux作為操作系統,使用Broadcom公司提供的軟件開發包SDK開發BCM5615的驅動程序。PPCBOOT是獨立于其他軟件的,它只負責初始化并配置有關硬件,然后調用Linux內核映像引導操作系統運行,其他軟件分為用戶空間程序和內核空間程序兩大部分。在內核空間運行嵌入式Linux操作系統、BCM5615驅動程序、RTL8139網口驅動程序,實現STP的STP內核模塊、為方便整個軟件系統設計和實現而采用的虛擬設備VND和VCD。它們之間的接口關系是:Linux提供內核API給BCM5615驅動和其他Linux可動態加載內核模塊,如STP、VND、VCD、RTL8139網卡驅動等。

        ASIC驅動

        ASIC驅動主要是完成對BCM5615的初始化和配置工作,并為上層服務提供接口。其中SAL層的目的就是把操作系統所提供的各種服務映射為驅動程序本身的API。第二層即中間層,也可說是整個驅動程序的核心層,它建立在SAL之上,其設計目標主要是提供底層寄存器和存儲器的訪問,PCI總線操作,DMA操作以及中斷處理函數等,驅動程序的頂層是API層,它建立在DRV層之上,是對DRV有關部分的封裝,從而為上層的其他軟件模塊提供各種服務,其他模塊通過調用這一層的函數來訪問和控制ASIC。ASIC驅動提供的API對用戶進程來說是無法直接調用的,因此本文設計了一個虛擬的字符設備(TTY),并編寫其驅動程序、同時在/dev目錄下用mknod命令建立相對應的字符設備文件。

        對操作系統來說,BCM5615的26個端口對應于一個物理PCI設備,即ASIC,它們共享一個PCI通道和地址空間,這給那些與網絡設備緊密相關的軟件帶來不少麻煩,因而可以把26個端口設計成26個虛擬網絡設備(VND)并編寫其驅動程序。因此,SNMPD和生成樹協議軟件所看到的是26個虛擬網卡,和普通的網卡并無區別。

        結語

        本文采用波分多址(WDMA)實現的EPON系統,與同類產品相比較,有實現簡單、性能好、易于升級、系統造價低的優勢,已經在寬帶接入網中獲得重要應用。



        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 丰台区| 邮箱| 东山县| 视频| 孟津县| 平利县| 格尔木市| 浏阳市| 诏安县| 昌邑市| 赣榆县| 麻江县| 南宁市| 庆安县| 轮台县| 张家界市| 淮阳县| 神木县| 荆州市| 古浪县| 宜都市| 琼中| 建瓯市| 揭阳市| 油尖旺区| 临泉县| 自贡市| 湟中县| 报价| 台州市| 长沙县| 黎平县| 修文县| 桑日县| 巴中市| 遵义县| 闽清县| 乌海市| 吴忠市| 清镇市| 延吉市|