摘 要: 針對(duì)我國(guó)現(xiàn)階段星載計(jì)算機(jī)通用性較差和無(wú)法“即插即用”的問(wèn)題,以及對(duì)數(shù)據(jù)傳輸速率的高要求,設(shè)計(jì)了新型即插即用星載計(jì)算機(jī)千兆以太網(wǎng)數(shù)據(jù)傳輸系統(tǒng),重點(diǎn)研究了星載計(jì)算機(jī)的總體結(jié)構(gòu)設(shè)計(jì)和千兆以太網(wǎng)的實(shí)現(xiàn)。該系統(tǒng)以國(guó)產(chǎn)BM3803為處理器,采用緊湊型外圍組件互聯(lián)cPCI總線為內(nèi)總線與系統(tǒng)各功能模塊互連,實(shí)現(xiàn)即插即用和通用化功能。千兆以太網(wǎng)平臺(tái)采用MAC+PHY方式,MAC采用FPGA內(nèi)嵌的IP核實(shí)現(xiàn),PHY采用Marvell公司的88E1111芯片實(shí)現(xiàn)。對(duì)比國(guó)產(chǎn)星載計(jì)算機(jī)在以太網(wǎng)方面的現(xiàn)狀,分析表明,該系統(tǒng)通用性更好,數(shù)據(jù)處理性能更高,數(shù)據(jù)傳輸速率最高可達(dá)1 Gb/s。以FPGA方式實(shí)現(xiàn)千兆以太網(wǎng)設(shè)計(jì),有效提高了系統(tǒng)的可靠性和集成度,能夠滿足未來(lái)較長(zhǎng)時(shí)間國(guó)內(nèi)星載計(jì)算機(jī)系統(tǒng)在千兆以太網(wǎng)方面的實(shí)際應(yīng)用需求。
關(guān)鍵詞: BM3803處理器;Virtex-4 FPGA;星載計(jì)算機(jī);千兆以太網(wǎng);cPCI總線
0 引言
隨著信息技術(shù)的飛速發(fā)展,嵌入式以太網(wǎng)設(shè)備的應(yīng)用越來(lái)越廣泛。千兆以太網(wǎng)作為一種高速局域網(wǎng)標(biāo)準(zhǔn),具有傳輸速度快、距離遠(yuǎn)、穩(wěn)定可靠等優(yōu)點(diǎn),將其用在星載計(jì)算機(jī)數(shù)據(jù)傳輸系統(tǒng)中,不僅可以向系統(tǒng)提供高速數(shù)據(jù)傳輸通道,還可向其提供網(wǎng)絡(luò)化接口,實(shí)現(xiàn)與載荷網(wǎng)及遠(yuǎn)端處理平臺(tái)高速通信。
同時(shí),通過(guò)對(duì)國(guó)外衛(wèi)星發(fā)射的大量成功案列調(diào)研可知,衛(wèi)星從組裝建造到發(fā)射的時(shí)間已從傳統(tǒng)模式的數(shù)月縮短至以小時(shí)為單位,并且隨著空間技術(shù)的提高和應(yīng)用需求的擴(kuò)展,對(duì)衛(wèi)星進(jìn)行在軌維修、硬件更換、功能升級(jí)等在軌服務(wù)的需求越來(lái)越急迫[1]。而上述星載計(jì)算機(jī)在軌服務(wù)的關(guān)鍵是實(shí)現(xiàn)設(shè)備模塊的通用化和產(chǎn)品化,而模塊化設(shè)計(jì)的核心體現(xiàn)在接口設(shè)計(jì)上[2]。我國(guó)星載計(jì)算機(jī)的各模塊接口都是進(jìn)行專門設(shè)計(jì),導(dǎo)致適應(yīng)性差,難以持續(xù)維護(hù)。內(nèi)外接口標(biāo)準(zhǔn)不一,無(wú)法重復(fù)利用,造成開(kāi)發(fā)效率低、周期長(zhǎng)、資源浪費(fèi)等問(wèn)題。
針對(duì)上述兩方面的應(yīng)用需求,結(jié)合現(xiàn)場(chǎng)可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)和千兆以太網(wǎng)的優(yōu)點(diǎn),本文設(shè)計(jì)了一種新型即插即用星載計(jì)算機(jī)千兆以太網(wǎng)數(shù)據(jù)傳輸系統(tǒng)。該系統(tǒng)以國(guó)產(chǎn)處理器BM3803作為中央處理單元(Central Processing Unit,CPU),采用CPU+FPGA的數(shù)據(jù)處理體系結(jié)構(gòu),各設(shè)備模塊均遵循標(biāo)準(zhǔn)緊湊型外圍組件互聯(lián)(compact Peripheral Component Interconnect,cPCI)內(nèi)部總線實(shí)現(xiàn)即插即用和通用化,千兆以太網(wǎng)平臺(tái)采用媒體訪問(wèn)控制器(MAC)+物理接口收發(fā)器(PHY)方式。MAC采用FPGA內(nèi)嵌的以太網(wǎng)知識(shí)產(chǎn)權(quán)(IP)核實(shí)現(xiàn),PHY采用Marvell公司的88E1111芯片實(shí)現(xiàn),兩者均支持吉比特介質(zhì)無(wú)關(guān)接口(GMII),部分上層協(xié)議在FPGA內(nèi)部使用硬件描述語(yǔ)言Verilog實(shí)現(xiàn)。
1 BM3803簡(jiǎn)介
BM3803是基于可擴(kuò)展處理器體系結(jié)構(gòu)(Scalable Processor Architecture,SPARC)即V8體系結(jié)構(gòu)的32位精簡(jiǎn)指令集計(jì)算機(jī)(Reduced Instruction Set Computer,RISC)嵌入式處理器,可用于板上嵌入式實(shí)時(shí)計(jì)算機(jī)系統(tǒng),能夠滿足各種航天應(yīng)用的功能以及性能指標(biāo)要求,只要加上存儲(chǔ)器和與應(yīng)用相關(guān)的外圍電路,就可以構(gòu)成完整的單板計(jì)算機(jī)系統(tǒng)。
BM3803處理器總體結(jié)構(gòu)框圖如圖1所示,其內(nèi)部包含整數(shù)處理單元,浮點(diǎn)處理單元,獨(dú)立的指令和數(shù)據(jù)緩存Cache,硬件乘法器和除法器,中斷控制器,帶有跟蹤緩沖器的硬件調(diào)試單元(DSU),兩個(gè)24位定時(shí)器,通用I/O接口,看門狗;能夠支持可編程的只讀存儲(chǔ)器(PROM)、靜態(tài)存儲(chǔ)器(SRAM)、動(dòng)態(tài)存儲(chǔ)器(SDRAM)和I/O映射空間訪問(wèn)的存儲(chǔ)器控制器;具有軟件可以控制的省電工作模式;具有可實(shí)現(xiàn)PCI主機(jī)橋和從屬橋功能的PCI控制器;符合PCI2.3規(guī)范的33 MHz PCI接口;采用三模冗余、錯(cuò)誤檢錯(cuò)與糾錯(cuò)(EDAC)和奇偶校驗(yàn)的容錯(cuò)設(shè)計(jì)[3]。
2 系統(tǒng)總體設(shè)計(jì)
星載計(jì)算機(jī)作為航天器綜合電子系統(tǒng)的數(shù)據(jù)管理及控制中心,承擔(dān)著衛(wèi)星姿態(tài)與軌道控制、星務(wù)管理、有效載荷數(shù)據(jù)管理與處理等任務(wù)[4]。根據(jù)任務(wù)和功能需求,同時(shí)兼顧系統(tǒng)標(biāo)準(zhǔn)通用化,本文將星載計(jì)算機(jī)數(shù)傳系統(tǒng)劃分為電源管理模塊、大容量存儲(chǔ)模塊、CPU控制模塊、千兆以太網(wǎng)模塊、模擬量采集模塊以及總線通信模塊等。根據(jù)BM3803處理器手冊(cè)和PCI規(guī)范,一級(jí)PCI總線上最多可支持7個(gè)PCI設(shè)備模塊。CPU控制模塊為PCI總線的主控模塊,其他模塊為從屬模塊,每個(gè)模塊上含有一個(gè)PCI橋芯片以支持PCI協(xié)議規(guī)范。各功能模塊在電氣和邏輯上通過(guò)標(biāo)準(zhǔn)6U cPCI底板總線實(shí)現(xiàn)互連。星載計(jì)算機(jī)系統(tǒng)硬件結(jié)構(gòu)框圖如2所示。
以下對(duì)每個(gè)模塊的功能和組成進(jìn)行說(shuō)明。
?。?)CPU控制模塊
該模塊是星載計(jì)算機(jī)數(shù)據(jù)傳輸系統(tǒng)的核心模塊,包括BM3803處理器、SDRAM數(shù)據(jù)存儲(chǔ)器和外圍電路。其PCI接口配置為主機(jī)橋模式,結(jié)合軟件可以訪問(wèn)和配置cPCI總線上的其余設(shè)備模塊,同時(shí)為這些設(shè)備提供總線仲裁。
(2)大容量存儲(chǔ)模塊
該模塊主要對(duì)內(nèi)總線上高速數(shù)據(jù)進(jìn)行存儲(chǔ)和備份,主要由cPCI接口電路、DDR2和E2PROM緩存電路、存儲(chǔ)控制電路組成。
BM3803主控板提供25 MHz的有源晶振,F(xiàn)PGA上電復(fù)位及啟動(dòng)配置后,F(xiàn)PGA與CPU通過(guò)cPCI內(nèi)總線進(jìn)行數(shù)據(jù)和地址互連,CPU發(fā)送讀寫(xiě)指令,由FPGA實(shí)現(xiàn)對(duì)指令的譯碼。根據(jù)譯出的指令,發(fā)送片選讀寫(xiě)信號(hào),實(shí)現(xiàn)對(duì)外擴(kuò)大容量存儲(chǔ)模塊的控制。
(3)總線通信模塊
該模塊包括多個(gè)1553B總線芯片,以1553B總線控制器或遠(yuǎn)程終端的方式進(jìn)行通信連接。總線通信模塊的PCI接口配置為從機(jī)橋模式??紤]到該系統(tǒng)CPU中的PCI中斷源數(shù)量有限,當(dāng)有多個(gè)總線芯片工作時(shí),采用分立元件對(duì)多路1553B總線中斷源進(jìn)行判別與合并,同時(shí)可分別清除每個(gè)中斷源狀態(tài)信息[5]。
?。?)模擬量采集模塊
該模塊是將采集到的模擬信號(hào)、雙電平信號(hào)和溫度信號(hào),轉(zhuǎn)換成數(shù)字信號(hào)并通過(guò)內(nèi)總線cPCI送至CPU主控模塊處理。主要由差分放大器、多路選擇器、電平比較器和模數(shù)轉(zhuǎn)換器組成。利用多路選擇器將多路模擬信號(hào)進(jìn)行分時(shí)選通,經(jīng)信號(hào)放大及模數(shù)轉(zhuǎn)換實(shí)現(xiàn)高速數(shù)據(jù)采集[6]。
?。?)電源管理模塊
由于系統(tǒng)自帶的開(kāi)關(guān)電源(DC/DC)模塊可變換為 +5 V的二次電源,進(jìn)入到各設(shè)備模塊,會(huì)產(chǎn)生其余各檔二次電源,如3.3 V,2.5 V,1.8 V,1.2 V,1 V,以此來(lái)滿足各電路芯片要求的電源電壓。電源管理模塊就是將+5 V電源,借助三端穩(wěn)壓器轉(zhuǎn)換成各模塊所需的電源電壓。
(6)千兆以太網(wǎng)模塊
根據(jù)計(jì)算機(jī)網(wǎng)絡(luò)基本模型,實(shí)現(xiàn)以太網(wǎng)數(shù)據(jù)傳輸?shù)年P(guān)鍵在于實(shí)現(xiàn)數(shù)據(jù)鏈路層協(xié)議和物理層協(xié)議,即MAC控制器和以太網(wǎng)接口,本文采用FPGA方式實(shí)現(xiàn)。
千兆以太網(wǎng)通信接口功能,通過(guò)調(diào)用IP核在FPGA上搭建三態(tài)以太網(wǎng)MAC,在片外配置三態(tài)以太網(wǎng)物理層芯片PHY,配合對(duì)傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議棧(TCP/IP)移植以及基于用戶數(shù)據(jù)報(bào)(UDP)協(xié)議編程,實(shí)現(xiàn)以太網(wǎng)應(yīng)用。
3 千兆以太網(wǎng)設(shè)計(jì)
3.1 物理層芯片
本文中物理層PHY芯片選用Marvell公司生產(chǎn)的88E1111千兆網(wǎng)絡(luò)物理層設(shè)備,該芯片具有以下功能[7]:
?。?)能夠支持1000BASE-T、100BASE-TX和10BASE-T的應(yīng)用;
?。?)支持MAC通信的吉比特介質(zhì)無(wú)關(guān)(GMII)、RGMII、串行GMII等接口;
?。?)支持10 Mb/s,100 Mb/s,1 000 Mb/s的以太網(wǎng)傳輸;
?。?)提供IEEE 802.3u標(biāo)準(zhǔn)下的自動(dòng)協(xié)商機(jī)制,能夠?qū)崿F(xiàn)兩個(gè)網(wǎng)絡(luò)接口間對(duì)通信速度的自動(dòng)協(xié)商;
?。?)提供標(biāo)準(zhǔn)的TWSI和MDC/MDIO接口,控制和查看網(wǎng)絡(luò)芯片的狀態(tài);
?。?)采用了先進(jìn)的混合信號(hào)進(jìn)程實(shí)現(xiàn)均衡執(zhí)行、消除回聲和傳音、數(shù)據(jù)恢復(fù)和錯(cuò)誤校正;
?。?)采用0.13 m CMOS工藝,支持2.5 V、1.2 V低電壓供電,最大功耗為0.75 W,且支持自動(dòng)降功耗功能。
3.2 硬件設(shè)計(jì)
通過(guò)調(diào)用FPGA內(nèi)部IP核實(shí)現(xiàn)MAC功能,由88E1111芯片內(nèi)部的時(shí)鐘電路產(chǎn)生125 MHz時(shí)鐘提供給GMII接口,其與PHY連接后,轉(zhuǎn)接到RJ45物理接口實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)傳輸。千兆以太網(wǎng)硬件設(shè)計(jì)框圖如圖3所示。
PHY芯片88E1111提供了GMII接口,MDIO控制PHY芯片的接口形式,MDC控制MDIO方向,GTX_CLK向88E1111提供125 MHz的外部輸入時(shí)鐘。發(fā)送端GTX_CLK是MAC的發(fā)送時(shí)鐘,供TXEN、TXER和TXD[7:0]使用。TXEN為發(fā)送使能信號(hào),TXER為發(fā)送錯(cuò)誤標(biāo)志,TXD[7:0]為發(fā)送的數(shù)據(jù)。
接收端RX_CLK是MAC的接收時(shí)鐘信號(hào),供RXEN、RXER和RXD[7:0]使用。RXEN為接收使能信號(hào),RXER為接收錯(cuò)誤標(biāo)志,RXD[7:0]為接收的數(shù)據(jù)。
3.3 軟件設(shè)計(jì)
嵌入式以太網(wǎng)通信接口的總體軟件結(jié)構(gòu),主要包括應(yīng)用程序、Socket API函數(shù)、TCP/IP協(xié)議棧、底層驅(qū)動(dòng)、嵌入式操作系統(tǒng)、底層硬件等部分,框圖如圖4所示。
以太網(wǎng)的底層驅(qū)動(dòng)程序是實(shí)現(xiàn)TCP/IP協(xié)議棧的必要前提條件,以太網(wǎng)驅(qū)動(dòng)程序封裝了底層硬件的細(xì)節(jié),使得TCP/IP協(xié)議不用直接與硬件交互,通過(guò)調(diào)用以太網(wǎng)驅(qū)動(dòng)程序即可實(shí)現(xiàn)數(shù)據(jù)的收發(fā)。
TCP/IP協(xié)議棧是整個(gè)軟件設(shè)計(jì)的核心,而Socket API函數(shù)是TCP/IP協(xié)議棧與應(yīng)用程序的接口,應(yīng)用程序調(diào)用這些函數(shù)即可實(shí)現(xiàn)TCP/IP功能。嵌入式操作系統(tǒng)BIOS主要負(fù)責(zé)軟件的任務(wù)調(diào)度、存儲(chǔ)管理等。
在一個(gè)網(wǎng)絡(luò)程序執(zhí)行之前,TCP/IP協(xié)議棧必須正確配置并初始化。網(wǎng)絡(luò)控制模塊(netctrl.lib)是協(xié)議棧的配置、初始化和事件調(diào)度的核心。幾乎所有網(wǎng)絡(luò)控制活動(dòng)都發(fā)生在netctrl任務(wù)線程(也稱為“調(diào)度線程”)中。該線程通過(guò)BIOS配置工具或者通過(guò)BIOS API函數(shù)來(lái)創(chuàng)建。該線程是程序的入口,并最后演變成“調(diào)度線程”直到程序結(jié)束該線程才返回。網(wǎng)絡(luò)初始化過(guò)程所用函數(shù)及順序如圖5所示。
網(wǎng)絡(luò)配置完成之后,需要?jiǎng)?chuàng)建網(wǎng)絡(luò)任務(wù)進(jìn)行網(wǎng)絡(luò)的傳輸,本文網(wǎng)絡(luò)發(fā)送以及接收采用面向連接的套接字(Socket)編程。網(wǎng)絡(luò)協(xié)議處理軟件主要實(shí)現(xiàn)接收和發(fā)送千兆網(wǎng)絡(luò)數(shù)據(jù)功能;對(duì)接收的以太網(wǎng)數(shù)據(jù)進(jìn)行TCP/IP網(wǎng)絡(luò)解析,并緩存和轉(zhuǎn)發(fā)有效載荷;接收來(lái)自外圍接口數(shù)據(jù),進(jìn)行TCP/IP網(wǎng)絡(luò)組幀,完成千兆網(wǎng)絡(luò)的發(fā)送。網(wǎng)絡(luò)協(xié)議處理流程圖如圖6所示。
本文硬件設(shè)計(jì)中,F(xiàn)PGA芯片的MAC通過(guò)MDC/MDIO接口控制88E1111,再經(jīng)MDI[3:0]±管腳與RJ45連接器相連實(shí)現(xiàn)高速網(wǎng)絡(luò)數(shù)據(jù)傳輸。同時(shí)在兩者之間添加濾波電路,防止直流串?dāng)_、噪聲和靜電干擾,從而提升網(wǎng)絡(luò)通信質(zhì)量。該以太網(wǎng)數(shù)據(jù)傳輸系統(tǒng)實(shí)行單路收發(fā),全雙工通信。在單板測(cè)試時(shí),系統(tǒng)數(shù)據(jù)傳輸穩(wěn)定可靠,物理速率理論最高可達(dá)1 Gb/s,實(shí)際有效速率可達(dá)800 Mb/s。
4 總結(jié)
本文創(chuàng)新性地結(jié)合星載計(jì)算機(jī)功能模塊間的即插即用性和千兆以太網(wǎng)兩方面的應(yīng)用需求,設(shè)計(jì)了新型即插即用星載計(jì)算機(jī)千兆以太網(wǎng)數(shù)據(jù)傳輸系統(tǒng)。其各功能模塊遵循標(biāo)準(zhǔn)cPCI內(nèi)總線,實(shí)現(xiàn)計(jì)算機(jī)硬件模塊化、標(biāo)準(zhǔn)化。千兆以太網(wǎng)以MAC+PHY為核心,通過(guò)軟硬件設(shè)計(jì)完成網(wǎng)絡(luò)協(xié)議棧移植和網(wǎng)絡(luò)傳輸數(shù)據(jù)處理,最終實(shí)現(xiàn)實(shí)測(cè)有效數(shù)據(jù)傳輸速率約為800 Mb/s。利用千兆以太網(wǎng)數(shù)據(jù)傳輸系統(tǒng)將處理的高速信號(hào)從網(wǎng)口發(fā)送給遠(yuǎn)端處理計(jì)算平臺(tái),可節(jié)省功率放大器和高頻電纜等物理設(shè)備,減少資本投入,加強(qiáng)系統(tǒng)的集成性和可靠性。該星載計(jì)算機(jī)系統(tǒng)接口更具通用性和可擴(kuò)展性,在未來(lái)較長(zhǎng)時(shí)間內(nèi)都將滿足星載計(jì)算機(jī)等航天設(shè)備在千兆以太網(wǎng)方面的應(yīng)用需求。
參考文獻(xiàn)
[1] SHOEMAKER J, WRIGHT M. Orbital express space operations architecture program[C]. International Society for Optical Engineering E, Orlando: The International Commission for Optics, 2003:1-9.
[2] 楊希祥,張為華.衛(wèi)星公用艙模塊化及其即插即用技術(shù)研究[C].2008年全國(guó)博士生學(xué)術(shù)論壇.北京:國(guó)務(wù)院學(xué)位辦公室,2008.
[3] 北京微電子技術(shù)研究所.BM3803MG32位空間處理器用戶手冊(cè),Ver2.4.2[Z].北京:北京微電子技術(shù)研究所,2010.
[4] 郭碧洲.基于軟件表決的三模冗余星載計(jì)算機(jī)體系結(jié)構(gòu)研究與設(shè)計(jì)[D].上海:上海交通大學(xué),2011.
[5] 詹盼盼,郭廷源,高建軍,等.基于BM3803處理器的即插即用星載計(jì)算機(jī)系統(tǒng)設(shè)計(jì)[J].航天器工程,2013,22(6):92-96.
[6] 李偉,劉麗紅,牟文秀,等.基于BM3803的星載計(jì)算機(jī)標(biāo)準(zhǔn)化設(shè)計(jì)與實(shí)現(xiàn)[J].航天器工程,2012,21(2):68-72.
[7] Marvell Corporation. 88E1111 datasheet integrated 10/100/1000 ultra gigabit Ethernet transceiver[R]. US: Marvell Corporation, 2004.