PowerPC嵌入式系統中的以太網(wǎng)接口設計
5 網(wǎng)口部分設計
網(wǎng)口部分的設計基于芯片組Tsil07控制的PCI總線(xiàn),基本框圖如圖2。
網(wǎng)口部分主要由Intel 82559,網(wǎng)絡(luò )隔離變壓器和RJ45接口3部分組成。82559是一個(gè)高集成度、高性能、低功耗的10/100 Mb/s快速以太網(wǎng)控制器,符合LON設計規范。物理尺寸只有15 mm×15 mm,是一款高性?xún)r(jià)比芯片。82559有完整的PCI接口,既可作主設備又可作從設備,在系統上電對其進(jìn)行配置時(shí)只能作為從設備,正常工作后可作為主設備。32位的PCI控制器使82559在PCI總線(xiàn)上執行高速的數據傳輸。并且PCI控制器可處理通信任務(wù),因而減輕CPU的負擔。82559包含一個(gè)傳輸FIFO和一個(gè)接收FIFO,大小各為3 kB,在等待總線(xiàn)傳輸時(shí)可防止數據的流失。這將使82559利用最小的幀間距傳送數據。82559可工作在全雙工和半雙工模式。82559連接一個(gè)E2PROM,E2PROM為硬件和軟件提供上電初始化。在82559芯片上集成了MAC(介質(zhì)訪(fǎng)問(wèn)子層)和PHY(物理層)的功能,通過(guò)片上的命令和狀態(tài)寄存器經(jīng)由PCI總線(xiàn)和PowerPC通信。H1102是一個(gè)網(wǎng)絡(luò )隔離變壓器,82559通過(guò)網(wǎng)絡(luò )隔離變壓器驅動(dòng)剛45網(wǎng)線(xiàn)接口,用來(lái)支持10/100BASE―T,實(shí)現與外界通信。
6 以太網(wǎng)的VxWorks BSP的開(kāi)發(fā)
BSP即Board Support Package,板級支持包,是對目標系統的底層支持軟件。對于具體的硬件平臺,與硬件相關(guān)的代碼都被封裝在BSP中,由BSP向上提供虛擬的硬件平臺,BSP與操作系統通過(guò)定義好的接口進(jìn)行交互。BSP是所有與硬件相關(guān)的代碼體的集合,是介于底層硬件和上層操作系統之間的一層,主要目的是為了支持操作系統,使之能夠更好地運行于硬件系統。以下介紹了網(wǎng)口的VxWorks BSP的開(kāi)發(fā)方法。
6.1 Tsil07的PCI接口的寄存器初始化
對Tsil07的PCI接口的寄存器初始化主要是對PCI命令寄存器,PCI狀態(tài)寄存器,PCI仲裁控制寄存器等和PCI相關(guān)的寄存器設置。因用戶(hù)手冊上對各寄存器的參數進(jìn)行了詳細的說(shuō)明,在此將不再贅述。
Tsil07中的32位配置寄存器地址是0x8000_00nn,nn是寄存器的相對偏移地址。對配置寄存器的訪(fǎng)問(wèn)采用間接方式,將配置寄存器的地址寫(xiě)到CONFIG_ADDR端口,則配置寄存器的內容將在CONFIG_DATA端口獲得。CONFIG_ADDR端口的地址為:OxFEC0_0000~OXFEDF_FFFC,CONFIG_DATA端口的地址為0xFEE0_0000~0xFEEF_FFFF。
6.2 82559的PCI接口的寄存器初始化
對Tsil07的PCI接口的寄存器初始化包括對PCI命令寄存器,PCI狀態(tài)寄存器,Cache行大小(CLS)寄存器等寄存器的設置,以便能夠找到PCI設備82559,使Power―PC能夠對該設備進(jìn)行訪(fǎng)問(wèn)。
PCI定義了3個(gè)地址空間:PCI memory空間,PCII/O空間和PCI配置空間。PCI memory空間,PCI I/O空間采用直接訪(fǎng)問(wèn)。PCI支持2種類(lèi)型的配置訪(fǎng)問(wèn),typeO和type 1。AD[31:O]信號表示地址時(shí)根據配置訪(fǎng)問(wèn)的類(lèi)型使用不同的形式,地址的低兩位表明配置訪(fǎng)問(wèn)的類(lèi)型――type O(AD[1:O]=ObOO)或type 1(AD[1:O]=Ob01)。2種地址形式都表明了一個(gè)具體的設備和該設備的一個(gè)具體的配置寄存器。typel 0用于在本地PCI總線(xiàn)上選擇一個(gè)設備,type 1通過(guò)一個(gè)PCI―to―PCI橋傳遞配置請求到另一個(gè)PCI總線(xiàn)。系統采用type O配置,如圖3所示。
為訪(fǎng)問(wèn)配置空間,必須向CONFIG_ADDR寄存器寫(xiě)入一個(gè)32位的值,用于定義目標PCI總線(xiàn)、該總線(xiàn)上的目標設備和設備中要訪(fǎng)問(wèn)的配置寄存器。對CONFIG_DATA寄存器的一個(gè)讀或寫(xiě)操作將使主橋將該訪(fǎng)問(wèn)轉化為一個(gè)PCI配置周期(CONFIG_ADDR中的使能位被設置并且設備編號不是0b1_1111)。
對于map B,處理器可在地址空間0xFEC0_0000~0xFEDF_FFFF中使用任何地址訪(fǎng)問(wèn)CONFIG_ADDR寄存器。盡管系統可以使用0xFEC0_0000~OxFEDF_FFFF中的任何地址,但一般使用地址0xFEC0_0CF8。為簡(jiǎn)化CONFIG_ADDR的地址通常被稱(chēng)為CF8。處理器可在地址空間0xFEE0_0000~0xFEEF_FFFF中的任何地址訪(fǎng)問(wèn)CONFIG_DATA寄存器。最常用的地址為0xFEE0_OCFC~0xFEE0_0CFF。為簡(jiǎn)化起見(jiàn),一般指為CFC。
對于type O配置,Tsi107把CONFIG_ADDR寄存器的設備編號轉化為惟一的IDSEL信號,它們之間有一一對應的關(guān)系。功能編號和寄存器編號將不加改變的復制到AD[10:2],AD[1:O]在type O配置時(shí)為0b00。
6.3 中斷的實(shí)現
Tsil07的EPIC(可編程中斷控制單元)支持5個(gè)外部中斷。IRQ[O:4]信號代表了外部中斷,它們被5個(gè)IRQ向量/優(yōu)先級寄存器(IVPRO―IVPR4)控制和初始化。外部中斷可被設置為電平或邊沿觸發(fā)。軟件通過(guò)對向量/優(yōu)先級寄存器的寫(xiě)操作為每一個(gè)中斷源設置優(yōu)先級,優(yōu)先級的值在O~15之間,15最高。EPIC單元通過(guò)麗向處理器核申請中斷。當處理器通過(guò)對EPIC單元中的中斷響應寄存器(IACK)進(jìn)行讀操作以響應中斷請求時(shí),EPIC返回一個(gè)8位的中斷向量到處理器,然后處理器處理該中斷。處理器對EPIC單元的結束中斷(EOI)寄存器進(jìn)行寫(xiě)操作時(shí),中斷處理完成。
對EPIC的初始化主要是設置各中斷源的優(yōu)先級和中斷向量的設置。包括對特征報告寄存器(FRR)、全局配置寄存器(GCR)、偽向量寄存器(SVR)、外部和內部中斷寄存器等的設置。
7 結 語(yǔ)
搭建以MPC7410為核心處理器的嵌入式系統硬件平臺,闡述以太網(wǎng)接口硬件設計和VxWorks BSP的設計方法,使以太網(wǎng)接口在系統中能正常通信。
評論