為了適應高速總線通信的快速發(fā)展,滿足千兆網絡的通信技術要求,介紹了在原百兆網絡終端通信板的基礎上,開發(fā)基于VxWorks操作系統(tǒng)和AMCC460GT處理器的千兆網絡通信終端板,使其數據處理能力和性能滿足規(guī)范需求,并為基于VxWorks與AMMCC460GT通信系統(tǒng)架構的設計應用開辟了成功先例。
以AMCC公司的460GT通信處理器為核心,設計了一款網絡通信系統(tǒng)平臺。這個通信系統(tǒng)主要由增強型Power PC440處理內核(32-KB的指令和數據緩存)、256-KB的L2cache、64-KB的片上內存,DDR存儲控制器(支持DDR1/DDR2)、PLB總線控制器、可編程中斷控制器、PCI控制器、PCIE控制器、DMA控制器、10/100/1000以太網控制單元、安全引擎等眾多模塊整合而成??梢蕴峁┮宦稰CI總線、兩路PCIE總線、一路USB、2個簡單串口和4個10/100/1000自適應以太網接口等,工作頻率最高可達1GHz,支持最大4G的DDR SDRAM內存,內部集成加密的模塊。此外還提供一套擴展接口,包括通用的CPU控制總線(EBC總線時序可編程),可以靈活地掛接各種CPU方式讀寫的設備,實現(xiàn)控制功能;同時,在基于通信處理器的嵌入式微處理器的應用開發(fā)中,嵌入式實時操作系統(tǒng)是構成整個嵌入式通信系統(tǒng)不可或缺的核心軟件。設計采用美國WindRiver公司的VxWorks6.7版本嵌入式實時操作系統(tǒng),研究以太網絡設備TCP/IP協(xié)議和各種硬件通信接口驅動在VxWorks下如何移植與實現(xiàn)。
AMCC460GT通信處理器
AMCC460GT硬件特性
AMCC460GT是基于440Core片上系統(tǒng)的PowerPC內核,擁有32 KB的指令和數據緩存,片上系統(tǒng)還包括DDR SDRAM存儲控制器,4個三速率的以太網控制器。AMCC460GT的高度集成極大的簡化了板級設計,圖1顯示的就是AMCC460GT單板功能框架圖,在單板上集成了千兆以太網、和PCI、PCIe通用插槽,可以作為千兆網絡系統(tǒng)使用。以下是系統(tǒng)板功能框圖:
AMCC460GT復位設計
AMCC460GT提供四類復位信號SysReset、HISRRst、PCIORest、ExtReset,其中HISRRst為輸入信號,PCIORest、ExtReset為輸出信號。這4種信號全部為低電平有效。上電復位過程如圖2所示。
AMCC460GT時鐘配置
采用66.6667MHz時鐘作為CPU的主時鐘,用一個Cypress CY22381FX可編程的始終發(fā)生器產生如下3種時鐘:11.0592 MHz時鐘供給Uart串口、48 MHz時鐘供給USB2.0,33或66 MHz時鐘供給PCI,特別注意的是時鐘發(fā)生器需要用一個22.1184MHz晶體作為時鐘輸入,才能輸出較穩(wěn)定的時鐘信號。125 MHz時鐘供給網口,460GT需要一個125M的參考時鐘用于GMAC的發(fā)送端,這個時鐘采用兼容設計,可以應用1121的125M鎖相輸出或者用獨立晶振。25 MHz時鐘供給Phy千兆以太網PHY88E1121R芯片。
芯片的Boot啟動過程
CPU在boot啟動時,通過外部引腳的配置,來獲得初始化參數,并在SysReset引腳信號由低電平恢復到高電平的時鐘上升沿,讀取參數配置,具體配置如下:
啟動模式為Bootstrap Option B,CPU工作狀態(tài)為CPU:800 MHz,DDR:400 MHz,PLB:200 MHz,OPB:100 MHz,EBC:100 MHz。所以,在系統(tǒng)板在上電之前一定要將UART0的(CTS:DCD:DSR)設計成0:0:1。否則系統(tǒng)工作不正常。
千兆以太網接口電路設計
AMCC460GT內部集成了2個處理模塊:一個高性能嵌入式PowerPC 440內核和一個通信處理模塊(MAL)。芯片內部擁有4個三速以太網控制器(Three.Speed Ethemet Con-troller,TSEC),實現(xiàn)了10 Mb/s、100 Mb/s和1 Gb/s三種不同速度的以太網協(xié)議接口控制。以下為千兆網硬件設計說明
AMCC460GT與PHY芯片的接口設計
AMCC460GT擁有4個TSEC以太網控制器,對4種不同的接口標準都提供了支持,它是完全符合8023協(xié)議規(guī)格的2.5V器件。在460GT與88E1121的連接中,GMII接口的發(fā)送接收參考時鐘GTX CLK、RX CLK都是125 MHz,收發(fā)數據位寬度TXD[0:7]、RXD[0:7]為8bitS,還有收發(fā)使能信號TX EN、RX RV和收發(fā)錯誤指示TX ER、RX ER等。此外還有2個串行管理信號GMCMDC、GMCMDIO與PHY芯片連接。管理配置接口控制PHY的特性。該接口有32個寄存器地址,每個地址16位。
對TSEC控制器的初始化
460GT對TSEC控制器的初始化過程如下。只要按照順序逐一完成相應的步驟,即可正確配置網絡接口。選擇TSECx控制器為GMII模式;設置MACCFG1寄存器,對MAC進行軟復位;清除MACCFGl寄存器的軟復位;設置MACCFG2寄存器,選擇TSEC工作模式(如全雙工或半雙工、CRC校驗是否使能等);設置MAC地址、物理地址;設置MII口的速率,使用MDIO對PHY進行初始化;清除并設置中斷相關的寄存器I.EVENT和IMASK;設置Hash表和Hash寄存器:初始化接收控制寄存器RCTRL;設置DMA控制寄存器DMATRL:設置接收緩沖區(qū)大小;設置收發(fā)緩沖描述符(Buffer Descriptor,BD):設置MACCFG1中的收發(fā)使能位,完成TSEC初始化。在初始化TSEC的過程中尤其要注意在設置寄存器后,控制器處于不穩(wěn)定狀態(tài),不能馬上執(zhí)行下一步的操作,需要作一定的延遲等待。因此,需要對嵌入式小系統(tǒng)板上的BCSR寄存器進行配置,使得網絡通信處于正常狀態(tài)。也可以使用某些操作系統(tǒng)提供的定時延遲來完成,如VxWorks中的taskDelay()。
對PHY芯片的設計與配置
為了使芯片工作在相應的物理地址、操作模式下,需要對88E1121芯片設備配置寄存器做出相應的配置,配置寄存器的各個位與芯片的配置管腳信號的對應關系如圖4所示:
PHY芯片中的部分配置管腳必須與LED輸出管腳相連,對應于各個LED輸出管腳都有相對應的編碼值,根據配置管腳對應配置寄存器的配置值要求,可以通過將相應的輸出管腳與芯片配置管腳相連,實現(xiàn)對PHY芯片配置寄存器的合理配置,具體配置如圖5所示。
Vxworks操作系統(tǒng)BSP的實現(xiàn)
在一般系統(tǒng)下使用Linux操作系統(tǒng)即可完成相關的任務功能,但針對任務實時性要求比較高的應用場景,采用了Vxworks操作系統(tǒng)來完成,本設計完成了Vxwork6.7版本在硬件平臺的移植,其中關鍵的是操作系統(tǒng)底層BSP設計,所謂BSP通常是指針對具體的硬件平臺,用戶所編寫的啟動代碼和部分設備驅動程序的集合,也就是依賴于硬件的那部分代碼的總和。他所實現(xiàn)的功能包括初始化、驅動部分設備。本系統(tǒng)研究的BSP包含了處理器復位、初始化、串口驅動程序、網口驅動程序、Flash芯片驅動程序和PCI接口驅動程序以及必要的時鐘處理。
在VxWorks系統(tǒng)中,對BSP的簡單描述為介于底層硬件環(huán)境和VxWorks之間的一個軟件接口,圖6所示的BSP在系統(tǒng)中的層次清楚地展示了BSP與上層操作系統(tǒng)、應用程序以及底層硬件之間的具體關系。它的主要功能是系統(tǒng)加電后初始化目標機硬件、初始化操作系統(tǒng)以及提供部分硬件的驅動程序,具體功能包括:
Vxworks初始化流程:
所謂初始化是指從系統(tǒng)上電復位開始直到VxWorks開始初始化用戶應用時的一段時間內系統(tǒng)所執(zhí)行的過程。這個過程主要包括3個部分的工作。
CPU初始化:初始化CPU的內部寄存器,如狀態(tài)寄存器、控制寄存器、高速緩存等。
目標機初始化:初始化控制芯片的寄存器、I/O設備寄存器,為整個軟件系統(tǒng)提供底層硬件環(huán)境的支持。
系統(tǒng)資源初始化:位操作系統(tǒng)及系統(tǒng)的正常運行做準備,進行資源初始化,如操作系統(tǒng)初始化,存儲空間分配等。
VxWorks能夠訪問的硬件驅動程序:BSP包括部分必要的設備驅動程序和相關設備的初始化操作。
BSP啟動流程
經過修改后的BSP來編譯啟動引導程序bootrom和操作系統(tǒng)VxWorks,在獲得bootrom映像后用編程器將映像燒入電路板的ROM,上電后將引導系統(tǒng)啟動,過程如下:
①目標板加點之后,程序指針指向reset中斷程序入口處,跳到rom入口地址,執(zhí)行初始化程序romInit.s,設置機器狀態(tài)字及其他硬件相關寄存器、然后禁止中斷,初始化內存,并設置堆棧指針。
②跳到C程序bootInit.C的函數romStart0入口地址,根據堆棧中的參數決定是否清零內存RAM。根據不同的bootrom文件,把ROM中數據段和文本段拷貝到RAM(如果是壓縮的,還要解壓)。
③程序跳到RAM入口地址(文件bootConfig.c中函數usrlnitO),使cache無效,并清零bss段,初始化異常處理程序,進行板級硬件初始化sysHwlnit0。
④啟動多任務內核kemellnitO。
⑤初始化串口,創(chuàng)建console終端設備,最后根據單板設計選擇不同方式加載操作系統(tǒng)映像文件,如網口、Flash、PCI等。
實驗結果
由于設備對功耗的要求,本系統(tǒng)針對不同狀態(tài)下的情景進行了詳細的功耗測試,以及針對千兆網絡傳輸速度進行了極限測試,各項功能均達到要求。具體測試結果如下2所示:
本課題主要實現(xiàn)了基于Vxworks6.7在AMCC460GT硬件平臺上的移植,并完成了千兆網絡的通信功能,相比以往百兆網絡通信,傳輸速度得到很大提升,相比之前Linux系統(tǒng)下的功能實現(xiàn),任務實時效率得到了很大提高,保證了項目運行的安全性及穩(wěn)定性。本文詳細介紹了AMCC460處理器的相關設計方法,以及Vxworks系統(tǒng)底層BSP驅動設計相關方法,并在某通信控制終端上得以應用,該系統(tǒng)具有完善的底層監(jiān)控與系統(tǒng)管理功能,并通過千兆網絡實現(xiàn)數據的傳輸功能,可以滿足多種應用領域與應用場景的需求。