基于BCM5615和BCM5615的EPON系統(tǒng)ONU設(shè)計(jì)
系統(tǒng)硬件由嵌入式控制模塊和網(wǎng)絡(luò)交換模塊兩部分構(gòu)成。嵌入式控制模塊是ONU的控制和管理核心,它為嵌入式Linux操作系統(tǒng)的運(yùn)行提供硬件平臺,通過它來實(shí)現(xiàn)對網(wǎng)絡(luò)交換模塊的控制與配置,實(shí)現(xiàn)網(wǎng)絡(luò)交換模塊的正常運(yùn)行。網(wǎng)絡(luò)交換模塊提供以太幀的交換與轉(zhuǎn)發(fā)功能,嵌入式控制模塊通過PCI總線與網(wǎng)絡(luò)交換模塊進(jìn)行通信,訪問網(wǎng)絡(luò)交換模塊內(nèi)部各芯片的寄存器,對各芯片進(jìn)行配置并獲取各個芯片的狀態(tài)信息。網(wǎng)絡(luò)交換模塊內(nèi)部的交換芯片BCM5615將嵌入式控制模塊對它的訪問,轉(zhuǎn)換為自己對網(wǎng)絡(luò)交換模塊內(nèi)部各芯片的訪問,這樣就實(shí)現(xiàn)了嵌入式控制模塊對網(wǎng)絡(luò)交換模塊內(nèi)部各芯片的管理。
嵌入式控制模塊接口設(shè)計(jì)
嵌入式處理器MPC8245簡介
MPC8245由一個外設(shè)邏輯塊和一個32位超標(biāo)量體系結(jié)構(gòu)PowerPC處理器內(nèi)核構(gòu)成。在外設(shè)邏輯塊中集成了一個PCI橋、DUART、內(nèi)存控制器、DMA控制器、EPIC中斷控制器、一個消息單元和一個I2C控制器。處理器內(nèi)核支持浮點(diǎn)運(yùn)算和內(nèi)存管理,具有16KB指令高速緩存(cache), 16KB數(shù)據(jù)cache和電源管理特性。MPC8245內(nèi)含一外設(shè)邏輯總線,用于連接處理器內(nèi)核和外設(shè)邏輯塊。處理器內(nèi)核可在多種不同的頻率下工作。MPC8245既可用作 PCI host,也可用作PCI代理控制器。支持多達(dá)2GB的SDRAM;支持18 組的4MB, 16MB, 64MB, 128MB, 或256MB存儲器。
時鐘電路
MPC8245輸入時鐘由33MHz的的晶振通過零延時緩沖器產(chǎn)生四路時鐘信號,一路作為MPC8245的PCI總線時鐘和內(nèi)核的輸入時鐘,系統(tǒng)時鐘信號OSC_IN未用,需要接地。MPC8245的引腳PLL_CFG[0:4]用于配置倍頻因子,經(jīng)過內(nèi)部倍頻器,產(chǎn)生SDRAM時鐘和166MHz的CPU內(nèi)核時鐘。一路作為RTL8139的PCI總線時鐘,一路作為BCM5615的PCI總線時鐘。
PCI總線接口
PCI總線工作在33MHz,設(shè)計(jì)中要保證PCI時鐘的時鐘相位偏移小于2ns,否則,系統(tǒng)可能無法正常工作。MPC8245作為PCI 主處理器,RTL8139和BCM5615的REQ#、GNT#分別連到MPC8245的REQ[0:1]#、GNT[0::1]#,由MPC8245來實(shí)現(xiàn)總線的仲裁。利用地址線AD31,AD30來決定RTL8139、BCM5615的IDSEL, 實(shí)現(xiàn)PCI總線配置訪問時對RTL8139、BCM5615的片選。這種方法會使AD31,AD30線上增加一個負(fù)載,因此將它們的IDSEL通過1K?電阻耦合到AD31、AD30上來解決負(fù)載加重的問題。PCI總線的控制信號都要求有上拉電阻,保證它們在沒有驅(qū)動設(shè)備驅(qū)動總線的情況下仍然具有穩(wěn)定的值,因而 FRAME#、TRDY#、IRDY#、DEVSEL#、STOP#、SERR#和PERR#這些信號使用10K?電阻上拉。
Flash
在MPC8245 中,ROM/Flash被分為2 個BANK ,BANK0 的地址為0xFF8000000xFFFFFFFF ,片選為/RCS0, RCS0接存儲代碼的存儲器片選;BANK1 的地址為0xFF0000000xFF7FFFFF,片選為/RCS1。 ROM/Flash/SRAM 工作在不同的數(shù)據(jù)寬度(8位,16位,32位,64位)地址總線下,復(fù)位時,MPC8245的引腳MDL0、/FOE決定啟動數(shù)據(jù)位寬度;復(fù)位后,硬件復(fù)位配置字決定數(shù)據(jù)的寬度。
本設(shè)計(jì)中選擇512KB的Flash作為Bootloader代碼存儲器,系統(tǒng)工作在8位模式,對應(yīng)的地址為0xFF8000000xFF87FFFF。選用兩片AM29LV320B分別作為Bootloader/Linux內(nèi)核和文件存儲器,AM29LV320B是32 Mb、單3.3V電源供電的閃存,編程和擦寫電壓由內(nèi)部產(chǎn)生,與JEDEC單電源閃存標(biāo)準(zhǔn)兼容;可組成4M×8Bit或2M×16Bit的存儲器??捎脴?biāo)準(zhǔn)EPROM編程器進(jìn)行編程;存取時間最短為70ns;獨(dú)立的片選(CE#)、寫使能(WE#) 和輸出使能(OE#)控制,可減小對總線的壓力。片選RCS1、RCS2分別選擇兩片F(xiàn)lash,RCS1選中的Flash對應(yīng)的地址為0xFF0000000xFF3FFFFF,RCS2選中的Flash地址由編程決定。
跳線J1用來將RCS0接到Flash1,RCS1接到Flash0,這樣在Bootloader代碼運(yùn)行后,將Bootloader代碼、Linux內(nèi)核代碼都燒到Flash1,節(jié)約一片512KB的Flash,同時留下RCS2、RCS3片選信號,留作以后擴(kuò)展Flash用。
SDRAM
32MB的SDRAM由兩片HY57V283220T組成。MPC8245的SDRAM接口 使用一個片選信號CS1,同時作為兩片HY57V 283220T的片選,構(gòu)成64位數(shù)據(jù)的SDRAM。 HY57V283220T是4 Bank×1M×32Bit的CMOS SDRAM,單3.3±0.3V電源供電,所有引腳與LVTTL接口兼容,所有輸入和輸出都以系統(tǒng)時鐘的上升沿為參考。
評論