吳 靜,王 洪,汪學(xué)剛
(電子科技大學(xué) 電子工程學(xué)院,四川 成都 611731)
傳統(tǒng)的并行總線架構(gòu)多采用VME標(biāo)準(zhǔn),但共享總線會造成頻繁等待和沖突,大大降低了系統(tǒng)運(yùn)行效率,不適合大規(guī)模并行數(shù)據(jù)處理系統(tǒng)。隨著現(xiàn)代雷達(dá)、圖像等信號處理應(yīng)用對信號帶寬和數(shù)據(jù)傳輸速率要求的不斷提升,基于VPX串行總線標(biāo)準(zhǔn)的通用信號處理器占有較大的優(yōu)勢[1-3]。本文首先介紹了基于VPX總線架構(gòu)的系統(tǒng)設(shè)計,著重介紹了信號處理卡VPX6-460的硬件組成,并采用VxWorks實(shí)時操作系統(tǒng)實(shí)現(xiàn)了多處理器間的高速數(shù)據(jù)通信。
VPX定制機(jī)箱采用新型的高速串行總線標(biāo)準(zhǔn)VITA46,相對于VME總線架構(gòu)而言,具有更大的數(shù)據(jù)吞吐能力和交換能力、更好的散熱性能和更高功率的插槽,充分滿足了信號處理系統(tǒng)對帶寬和運(yùn)算處理能力的要求[4-5]。圖1所示為系統(tǒng)的基本框圖。整個系統(tǒng)主要由多通道信號采集卡、多通道數(shù)據(jù)回收卡、信號處理卡以及高性能服務(wù)器等組成。系統(tǒng)以千兆以太網(wǎng)作為平臺間的網(wǎng)絡(luò)互連標(biāo)準(zhǔn),并使用串行RapidIO和PCIe作為底板總線交換網(wǎng)絡(luò)互連協(xié)議。VPX載板和模塊化的信號采集子卡組成了系統(tǒng)的前端數(shù)據(jù)采集部分,VPX載板擁有的多個高速串行接口可以將采集到的并行數(shù)據(jù)轉(zhuǎn)換成串行數(shù)據(jù)流,傳送給后端的信號處理板進(jìn)行復(fù)雜的后端處理[6]。
圖1 系統(tǒng)組成結(jié)構(gòu)框圖
在整個VPX機(jī)箱中,嵌入式信號處理卡VPX6-460是一款多CPU并行處理器信號處理卡,其內(nèi)部組成結(jié)構(gòu)如圖2所示。板上載有4塊雙核PowerPC 8641D處理器,共有8個e600處理器核,每個處理器配有512 MB的同步動態(tài)隨機(jī)存儲器DDR2SDRAM,還配有512 MB具有寫保護(hù)的Flash和NVRAM。板上的千兆以太網(wǎng)交換機(jī)用來配置每個處理器的狀態(tài);4個處理器間通過串行RapidIO交換器實(shí)現(xiàn)串行數(shù)據(jù)互連,每個處理器的數(shù)據(jù)輸入/輸出速率都可達(dá)到雙向12 Gb/s,同時有4路串行RapidIO連接到背板,可連接4個處理板,支持16個處理器間的全速數(shù)據(jù)交換;板上的XMC/PMC插座支持8路PCIe連接,可用于擴(kuò)張外部的輸入/輸出接口。
信號處理器的硬件部分構(gòu)成了系統(tǒng)框架和硬件平臺,而軟件部分則用于實(shí)現(xiàn)各種功能,是整個系統(tǒng)的“靈魂”。VPX6-460是典型的“通用處理器平臺+嵌入式操作系統(tǒng)”結(jié)構(gòu),選用的操作系統(tǒng)是美國Wind River公司最新研發(fā)的VxWorks6.8,主機(jī)上的開發(fā)環(huán)境是基于Eclipse軟件架構(gòu)設(shè)計的Workbench3.1,通過串口和網(wǎng)絡(luò)接口實(shí)現(xiàn)主機(jī)與目標(biāo)機(jī)間的交叉編譯和交叉調(diào)試。VxWorks實(shí)時操作系統(tǒng)提供了專門的系統(tǒng)調(diào)用函數(shù)接口來連接中斷向量和中斷服務(wù)程序,內(nèi)核可以自動提供有關(guān)中斷處理中所需要的堆棧切換以及寄存器保護(hù)、回復(fù)等功能。VxWorks6.8提供的內(nèi)部處理器通信IPC(Inter Processor Communication)函數(shù)庫 Rel2.4.7支持多處理器間的通信,適用于底層串行RapidIO和以太網(wǎng)的鏈接,提供與連接無關(guān)的編程接口,從而簡化了多處理器通信的程序設(shè)計,提高了程序的可移植性。
VPX6-460的各個處理器之間主要采用直接內(nèi)存訪問 DMA(Direct Memory Access)通信機(jī)制,可以同時傳輸批量數(shù)據(jù)。當(dāng)DMA控制器接收到來自輸入/輸出口的DMA請求時,CPU就會轉(zhuǎn)讓總線控制權(quán)給DMA控制器,在完成數(shù)據(jù)傳輸后,DMA控制器會歸還總線控制權(quán)。整個傳輸過程由DMA控制器負(fù)責(zé)而不需要CPU的參與,有效地減少了CPU的占用時間,大大提高了系統(tǒng)性能[7-8]。圖3所示為VPX6-460上兩個處理器間通信的基本原理框圖。
圖2 多CPU信號處理卡VPX6-460內(nèi)部組成結(jié)構(gòu)
圖3 多處理器間通信的基本原理框圖
在本地處理器上創(chuàng)建由指針A0_sender指向的緩存區(qū)buffer_ab,相應(yīng)的發(fā)送端口為 AB_A0_BlkPort,由函數(shù)msgBlkWrite()將成片數(shù)據(jù)寫入到目標(biāo)處理器上,由目標(biāo)處理器的新建緩存區(qū)存儲接收數(shù)據(jù),接收端口為AB_B0_BlkPort,緩存區(qū)名也為 buffer_ab,使用相同緩存名可以實(shí)現(xiàn)數(shù)據(jù)共享。由于DMA寫操作是異步實(shí)現(xiàn)的,即無論DMA請求是否已被執(zhí)行,msgBlkWrite()都會立即返回,因此本地處理器需要調(diào)用函數(shù)callBack()返回寫操作的完成時間和狀態(tài)等信息。同時,在完成數(shù)據(jù)傳輸時,DMA控制器要釋放總線控制權(quán),通過發(fā)送端口的寫中斷服務(wù)程序告知本地處理器已完成數(shù)據(jù)傳輸,接收端口以讀中斷服務(wù)程序告知目標(biāo)處理器已完成數(shù)據(jù)接收。部分程序如下:
本文在介紹了VPX6-460硬件組成的基礎(chǔ)上,結(jié)合VxWorks操作系統(tǒng)的特點(diǎn)以及系統(tǒng)所支持的通信機(jī)制,詳細(xì)分析了不同處理器間的數(shù)據(jù)傳輸方式,并給出了具體的軟件實(shí)現(xiàn)方法。該程序的高度可移植性使其具有很高的應(yīng)用價值。
[1]杜文鳳,王博文.基于嵌入式的實(shí)時通信協(xié)議棧研究與設(shè)計[J].電子技術(shù)應(yīng)用,2013,(39)1:29-31.
[2]劉昊昱.一種基于VxWorks技術(shù)的通用信號處理平臺設(shè)計[J].電子技術(shù)應(yīng)用,2003,(29)6:13-15.
[3]宋秀蘭,吳曉波.多處理器通信設(shè)計[J].浙江工業(yè)大學(xué)學(xué)報,2010,38(4):426-429.
[4]廖明燕.基于 MSP430的多處理器通用技術(shù)研究[J].微處理機(jī),2006,2(1):86-91.
[5]何先波,李薇.嵌入式系統(tǒng)軟件開發(fā)技術(shù)基礎(chǔ)[M].北京:清華大學(xué)出版社,2011.
[6]史鴻聲.基于 PowerPC的雷達(dá)通用處理器設(shè)計[J].雷達(dá)科學(xué)與技術(shù),2011,9(2):140-144.
[7]李世光,孟強(qiáng)強(qiáng).基于多串口的熱量表系數(shù)修正軟件的設(shè)計[J].微型機(jī)與應(yīng)用,2012,31(18):1-4.
[8]翁省輝,喻武龍.Liunx下SANE Driver自動化測試工具的設(shè)計與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2012,31(1):4-6.