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