李靜
(陜西省建筑職工大學(xué)公共基礎(chǔ)教學(xué)科,陜西西安 710068)
不斷發(fā)展的網(wǎng)絡(luò)計算機(jī)與微電子等現(xiàn)代技術(shù)促使通信系統(tǒng)得到快速發(fā)展,而隨著通信系統(tǒng)規(guī)模的持續(xù)擴(kuò)大,系統(tǒng)中使用到的設(shè)備與涉及到的通信業(yè)務(wù)呈現(xiàn)出明顯的多樣化、復(fù)雜化及多元化特點,對通信系統(tǒng)的高速化與實時化要求不斷提高,促使具備軟硬件優(yōu)勢的嵌入式系統(tǒng)在通信領(lǐng)域深入發(fā)展與應(yīng)用。嵌入式高速通信系統(tǒng)以電信號或光信號作為傳輸信號,通常具有特定的功能,能夠高速傳輸大量數(shù)據(jù)信息,多個設(shè)備可通過系統(tǒng)提供的交換功能實現(xiàn)通信傳輸與信息交換過程。目前,嵌入式高速通信系統(tǒng)已應(yīng)用到眾多領(lǐng)域(包括通信、工業(yè)自動化等),該系統(tǒng)通過使用相應(yīng)功能接口可顯著提升計算處理能力及通信性能等[1]。
高性能多處理器架構(gòu)是文中設(shè)計與實現(xiàn)高速通信系統(tǒng)的關(guān)鍵所在,該架構(gòu)是一種主流處理器系統(tǒng)結(jié)構(gòu),主要通過在計算機(jī)系統(tǒng)進(jìn)行高性能處理器集成,實現(xiàn)多個進(jìn)程的同時執(zhí)行,進(jìn)而使計算性能得到明顯提高;同時,簡化設(shè)計過程并有效降低系統(tǒng)功耗,但在網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計、總線管理維護(hù)、多任務(wù)管理調(diào)度、功耗等方面仍有待進(jìn)一步改進(jìn)[1]。文中在繼承現(xiàn)有架構(gòu)性能優(yōu)勢的基礎(chǔ)上,基于ASAAC、SEM-D等標(biāo)準(zhǔn),采用T2080(NXP 公司,PowerPC QorIQ 系列)對多處理器架構(gòu)進(jìn)行了優(yōu)化設(shè)計,并結(jié)合運用MPC8548 處理器實現(xiàn)了對系統(tǒng)內(nèi)高速通信網(wǎng)絡(luò)的維護(hù)與管理[1-2]。
系統(tǒng)總體架構(gòu)如圖1 所示,系統(tǒng)的核心處理芯片選用了兩顆高性能處理器T2080和兩片PowerPC處理器,提供4 個e6500 內(nèi)核的T2080 處理器,通信速率可達(dá)1 866 MT/s,并可提供高達(dá)1.8 GHz 的主頻。T2080 包 含16 個SerDes 端 口、72 位 的DDR3 控制接口和2 MB 二級緩存,支持多種協(xié)議(包括RapidIO、SATA、XFI、PCIE、Aurora 等),可使高速通信系統(tǒng)的接口需求得以有效滿足。T2080 處理器在系統(tǒng)中的并行處理功能通過RapidIO 與網(wǎng)絡(luò)交換實現(xiàn)[3-4]。
圖1 嵌入式高速通信系統(tǒng)架構(gòu)圖
核心處理電路的主要構(gòu)成為兩片T2080(支持DDR3、DDR3L 接口)及相應(yīng)周邊存儲器。文中選用了低電壓的工作頻率為800 MHz 的DDR3L 接口,訪問速率為1 600 MT/s,以有效降低系統(tǒng)運行的功耗。兩片T2080 均包含256 MB 大小的NOR FLASH 存儲器,主要用于完成操作系統(tǒng)程序的啟動及應(yīng)用的存放。此外,各處理器均配置一片256 MB容量的FLASH芯片,用于存儲系統(tǒng)軟件版本等信息,以供上電后的操作系統(tǒng)自動讀取使用,F(xiàn)LASH 空間支持文件系統(tǒng)。為及時保存掉電情況下的重要數(shù)據(jù),將1 MB的NVSRAM 存儲器分別配置到各T2080 上。各處理器分別配置了DDR3L(72 位,包含8 位的ECC 校驗位),采用4 片SDRAM 芯片,用戶具有超過3 GB 的可使用空間,處理器和RapidIO 接口均具有訪問存儲器的權(quán)限,可根據(jù)實際需要對FLASH 進(jìn)行編程,具體由各處理器通過調(diào)試以太網(wǎng)實現(xiàn)[5-6]。
管理維護(hù)模塊的維護(hù)處理器選用了MPC8548處理器(NXP 公司),該處理器具有千兆以太網(wǎng)接口和高速通信接口,主要負(fù)責(zé)管理和維護(hù)系統(tǒng)中網(wǎng)絡(luò)及RapidIO 的交換,內(nèi)嵌e500v2 核心的MPC8548 主頻可達(dá)1.33 GHz,MPC8548E 能夠通過外部IO 配置成均為x4 的RapidIO 和PCIE 模式各一個,支持PCIE和RapidIO 接口,可通PCIE 接口,采用外部處理器借助PCIE 來實現(xiàn)網(wǎng)絡(luò)接口的管理以及自身配置的設(shè)置。系統(tǒng)中RapidIO 交換的自身端口模式及速率的配置可通過外部處理器采用RapidIO 接口實現(xiàn)。實現(xiàn)系統(tǒng)管理維護(hù)工作的MPC8548E 功能設(shè)計具體包括:①配置x4 的PCIE 接口和RapidIO 接口,分別用于實現(xiàn)與以太網(wǎng)交換芯片及RapidIO 交換芯片間的互聯(lián);②單線傳輸速率均為2.5 Gbps,在此基礎(chǔ)上實現(xiàn)對以太網(wǎng)和RapidIO 兩種交換芯片的上電配置加載、端口模式與端口速率配置等的控制,網(wǎng)絡(luò)交換的端口及網(wǎng)絡(luò)模式等可采用相應(yīng)軟件完成設(shè)置過程;③配置了以太網(wǎng)交換芯片作為調(diào)試網(wǎng)絡(luò)使用的GMII 接口[7-8]。
系統(tǒng)RapidIO 交換網(wǎng)絡(luò)負(fù)責(zé)實現(xiàn)內(nèi)外部的RapidIO 高速數(shù)據(jù)傳輸,主要由RapidIO 交換芯片構(gòu)成,分別同T2080、MPC8548E 及外部端節(jié)點相連,通過底板連接器實現(xiàn)了4x 的RapidIO(共4 個)同1x 端口(共6 個)間的互連以及各端口的對外輸出。配置和管理RapidIO 交換網(wǎng)絡(luò)的實現(xiàn)方式包括兩種:1)將I2C PROM(一種獨立的引導(dǎo))配置于交換芯片上,用于完成初始化配置信息的存儲,系統(tǒng)開始運行時會對其中的配置信息進(jìn)行自動加載,據(jù)此完成交換網(wǎng)絡(luò)的初始化處理。2)配置過程可以通過實時管理來實現(xiàn),系統(tǒng)的Host主節(jié)點和Agent 節(jié)點具有一定的輔助作用,在系統(tǒng)實現(xiàn)過程中,由Host實現(xiàn)RapidIO網(wǎng)絡(luò)的動態(tài)配置與實時監(jiān)管過程,并為擴(kuò)展、重構(gòu)等功能提供技術(shù)支撐[9-10]。RapidIO 網(wǎng)絡(luò)設(shè)計如圖2 所示。
圖2 系統(tǒng)RapidIO網(wǎng)路交換設(shè)計
嵌入式通信系統(tǒng)的靈活性及統(tǒng)一性在不斷提升,所以要求總線網(wǎng)絡(luò)具有較高的數(shù)據(jù)傳輸能力,支持多種上層協(xié)議的光纖通道(FC)在傳輸距離、帶寬、延遲、拓?fù)潇`活性等方面具有明顯的優(yōu)勢,可有效滿足高性能數(shù)據(jù)傳輸需求。各T2080 均配置一路雙余度FC 接口,實現(xiàn)了兩個相同的FC 節(jié)點,接口與T2080 間的通信過程使用PCIE 總線實現(xiàn),節(jié)點通過4xPCIE 總線連接T2080,傳輸速率為5 Gbps,兩路FC電路實現(xiàn)了FC 協(xié)議處理。各T2080 均包含2 路SGMII,系統(tǒng)的以太網(wǎng)交換通過交換芯片完成,千兆網(wǎng)的端口數(shù)量可根據(jù)實際需要進(jìn)行靈活配置(最多為24 個,支持SGMII 接口),T2080 和網(wǎng)絡(luò)交換芯片使用SGMII 接口連接;MPC8548 通過其所配置的一路GMII接口實現(xiàn)與網(wǎng)絡(luò)交換芯片間的互連,提供2路可通過PHY 轉(zhuǎn)換SGMII 得到的Base-T 網(wǎng)絡(luò)接口[11]。
分別將一個64 GB 的電子盤配置到各T2080(僅支持SATA2.0)上,以保證系統(tǒng)具有大容量存儲功能,采用SATA 接口的電子盤僅能在SATA2.0 上工作,電子盤的實測寫速度和讀速度分別可達(dá)160 MB/s和240 MB/s 以上??紤]到系統(tǒng)內(nèi)元器件涉及到多種工作電壓,而系統(tǒng)外部輸入電壓為直流28 V,因此使用電源轉(zhuǎn)換電路完成輸入電壓到各元器件所需電壓的轉(zhuǎn)換,28 V 輸入到5 V 輸出的轉(zhuǎn)換需要通過DCDC 轉(zhuǎn)換器來完成。以各電壓所需的不同電流為依據(jù),結(jié)合運用不同型號的DC-DC 轉(zhuǎn)換器(Linear 公司),實現(xiàn)其他規(guī)格電壓的轉(zhuǎn)換[12]。
整體系統(tǒng)軟件主要由分別負(fù)責(zé)啟動、BSP 驅(qū)動、IO 驅(qū)動功能的3 個軟件配置項構(gòu)成,啟動軟件中包含CPU 初始化、啟動模式選擇、對模塊參數(shù)進(jìn)行設(shè)置、在線編輯等功能。BSP 驅(qū)動軟件能夠完成中斷控制器的驅(qū)動、系統(tǒng)時鐘驅(qū)動、以太網(wǎng)驅(qū)動、Flash 驅(qū)動等。IO 驅(qū)動軟件可以實現(xiàn)外部中斷驅(qū)動、定時器驅(qū)動、PCIE 總線驅(qū)動、看門狗驅(qū)動等。系統(tǒng)軟件如圖3 所示。系統(tǒng)軟件還包括網(wǎng)絡(luò)交換軟件(具體由以太網(wǎng)和FC 網(wǎng)絡(luò)的通訊程序構(gòu)成)、操作系統(tǒng)軟件(配置了多核操作系統(tǒng)VxWorks)和應(yīng)用軟件。系統(tǒng)加電后,操作系統(tǒng)開始運行并調(diào)用相關(guān)應(yīng)用軟件。文中系統(tǒng)具有運行和維護(hù)兩種狀態(tài):①運行狀態(tài)指在任務(wù)正常執(zhí)行過程中的狀態(tài),在系統(tǒng)接通電源之后,會自行進(jìn)行操作并且完成相關(guān)應(yīng)用軟件的啟動;②維護(hù)狀態(tài)指工作人員對軟件進(jìn)行開發(fā)或調(diào)試時的狀態(tài)。通過離散量開關(guān)完成對系統(tǒng)狀態(tài)的識別,當(dāng)對系統(tǒng)進(jìn)行調(diào)試或維護(hù)時,會自動進(jìn)入到維護(hù)菜單,實現(xiàn)參數(shù)的設(shè)置、模式的選擇等操作[13]。
圖3 系統(tǒng)軟件構(gòu)成
為了有效簡化系統(tǒng)的連接與操作過程,將硬件設(shè)備轉(zhuǎn)換為相應(yīng)的設(shè)備文件,具體通過設(shè)置設(shè)備驅(qū)動程序?qū)崿F(xiàn)操作系統(tǒng)內(nèi)核同相應(yīng)硬件的有效連接,通過設(shè)備驅(qū)動程序的使用免去了系統(tǒng)掌握硬件細(xì)節(jié)的流程。
對于系統(tǒng)存儲器和外設(shè)部分,文中主要將其分為字符、塊和網(wǎng)絡(luò)3 類設(shè)備,字符設(shè)備采用HPI,根據(jù)字符設(shè)備驅(qū)動在嵌入式系統(tǒng)中的實現(xiàn)流程,驅(qū)動HPI 接口的主要步驟如下。
1)獲取設(shè)備文件和設(shè)備號:通過動態(tài)分配方式獲取主設(shè)備號,具體申請時以設(shè)備號位“0”進(jìn)行,由系統(tǒng)返回一個主設(shè)備號[14]。
2)字符設(shè)備的注冊:將字符設(shè)備驅(qū)動程序添加到系統(tǒng)中,即將包括讀取、寫入、打開、關(guān)閉、其他硬件配置等在內(nèi)的各操作對應(yīng)的代碼添加到驅(qū)動程序模塊中,將數(shù)據(jù)寫入設(shè)備HPI,ioctl 表示其他包括配置HPI 等在內(nèi)的硬件控制,mmap 負(fù)責(zé)完成設(shè)備HPI地址到實際進(jìn)程地址的映射。HPI 接口驅(qū)動程序的文件操作結(jié)構(gòu)如下[15]:
字符型設(shè)備驅(qū)動程序的注冊過程通過調(diào)用如下函數(shù)實現(xiàn):
int register_chrdev (unsigned int major,constchar*name,struct file_operation*fops);
卸載函數(shù)如下:
int unregister_chrdev(unsigned int major,constchar*name);
3)中斷函數(shù)的注冊:在應(yīng)用中斷前需先完成中斷處理程序的注冊,硬件中斷請求傳送至系統(tǒng)后,由系統(tǒng)完成對相應(yīng)中斷處理程序的調(diào)用并執(zhí)行操作命令。中斷處理程序的注冊通過調(diào)用request_irq 完成[16],釋放則通過調(diào)用free_irq 函數(shù)完成。
在嵌入式通信系統(tǒng)的內(nèi)核中添加編寫后的設(shè)備驅(qū)動程序,此過程需對系統(tǒng)的源碼進(jìn)行修改與重新編譯:
1)在驅(qū)動目錄下,保存字符型設(shè)備的驅(qū)動程序,并將hpi.c 源碼復(fù)制到該目錄下。
2)修改Kconfig 文件并在頂層目錄中打開后,將語句commen‘tCharacterdevice’+boo“l(fā)hpi_dev”CON FIG HPI_DEV 添加到該文件中。
3)在hpi_dev 項中進(jìn)行配置并將配置結(jié)果體現(xiàn)出來,通過添加語句CONFIG_HPI_DEV=y.config實現(xiàn)。
4)在make-file 中添加語句obj-S(CONFIG_HPI_DEV)+=hpi.o,編譯hpi.c 生成hpi.o 文件。
5)編譯內(nèi)核,在內(nèi)核源代碼頂層目錄中執(zhí)行male zImage
ARCH=arm CROSS_COMPILE=arm-Linux。
文中設(shè)計了一種嵌入式高速通信系統(tǒng),通過多種高速總線組成通信網(wǎng)絡(luò),實現(xiàn)總線的網(wǎng)絡(luò)融合與協(xié)議轉(zhuǎn)換,可支持多種異構(gòu)總線,有效提升系統(tǒng)的并行計算處理性能,進(jìn)而實現(xiàn)了高速數(shù)據(jù)傳輸通信過程。該高速通信系統(tǒng)可適用于不同環(huán)境的嵌入式計算、通信領(lǐng)域,具有一定的實際應(yīng)用價值。