一種基于VxWorks技術(shù)的通用信號處理平臺設(shè)計(jì)
本文研究的通用信號處理平臺就是鑒于聲納、雷達(dá)和圖像等領(lǐng)域信號處理的共性,設(shè)計(jì)基于DSP陣列技術(shù)、VxWorks嵌入式技術(shù)、TCP/IP網(wǎng)絡(luò)傳輸技術(shù)等先進(jìn)技術(shù)的應(yīng)用級系統(tǒng)開發(fā)平臺。系統(tǒng)采用模塊化設(shè)計(jì),易于擴(kuò)展和移植。通過不同的信號處理算法,可對海量數(shù)據(jù)進(jìn)行實(shí)時(shí)并行多任務(wù)處理。
1 系統(tǒng)整體方案
研究表明,無論是對聲納信號的處理(如波束形成、譜估計(jì)等),還是對雷達(dá)信號的處理(如自適應(yīng)濾波、數(shù)據(jù)融合等),基本都要求對所接收的多通道數(shù)據(jù)通過總線傳輸進(jìn)行實(shí)時(shí)多任務(wù)處理。因此設(shè)計(jì)通用信號處理平臺需要考慮三方面問題:數(shù)據(jù)并行實(shí)時(shí)處理、實(shí)時(shí)多任務(wù)處理和數(shù)據(jù)傳輸總線選擇。
實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)并行處理的關(guān)鍵在于信號處理器的選擇[1]。選用信號處理器必須兼顧數(shù)據(jù)處理的復(fù)雜性和實(shí)時(shí)性要求。DSP微處理器能夠?qū)崟r(shí)高效地完成聲納信號或雷達(dá)信號處理中的波束形成、數(shù)字濾波、線普增強(qiáng)、數(shù)值內(nèi)插等多種復(fù)雜的數(shù)值運(yùn)算,而且它體積小、應(yīng)用靈活、匹配器件豐富。因此本文選用DSP芯片作為通用信號處理平臺的數(shù)據(jù)處理中心。
實(shí)時(shí)多任務(wù)處理一般采用嵌入式實(shí)時(shí)操作系統(tǒng)。選用VxWorks是由于它具有下述顯著優(yōu)點(diǎn):提供對多種處理器的廣泛支持,具有完善的開發(fā)環(huán)境;具有開放的軟件接口;具有優(yōu)異的實(shí)時(shí)性能和全面可靠的網(wǎng)絡(luò)功能;具有良好的可剪裁性,適用于各種嵌入式環(huán)境的開發(fā)。
在進(jìn)行總線選擇時(shí),考慮到VME總線具有高可靠性、高數(shù)據(jù)傳輸率和很強(qiáng)的容錯(cuò)能力等特點(diǎn),自從VME總線標(biāo)準(zhǔn)公布以來,已得到廣泛應(yīng)用,表現(xiàn)出了極強(qiáng)的生命力。因此在通用信號處理平臺中選用了VME總線進(jìn)行數(shù)據(jù)傳輸。
在考慮了通用信號處理平臺設(shè)計(jì)中的三項(xiàng)要求后,可得到如圖1所示的總體方案框圖。其中多通道前置處理機(jī)用于對來自信息接收端(如水聽器陣、天線陣等)的信號進(jìn)行前置低噪放大、濾波、AGC放大和A/D變換等前置處理,最后轉(zhuǎn)換成可由DSP處理的數(shù)字信號;顯控分系統(tǒng)是依照不同的應(yīng)用目的而設(shè)計(jì)的專用模塊,它可用來顯示幅度譜、頻譜、線譜、目標(biāo)軌跡、姿態(tài)和圖像等多種信息。多通道前置處理機(jī)模塊和顯控分系統(tǒng)模塊都是定制模塊,需要按照不同的應(yīng)用目的進(jìn)行單獨(dú)設(shè)計(jì),這里不作具體討論。DSP陣列機(jī)是本文重點(diǎn)研究的通用信號處理平臺。該陣列機(jī)基于VME總線,內(nèi)嵌VxWorks操作系統(tǒng),依據(jù)不同的算法對所接收的數(shù)據(jù)進(jìn)行并行、多任務(wù)實(shí)時(shí)處理。
2 通用信號處理平臺設(shè)計(jì)
圖1中DSP陣列機(jī)由多塊基于VME總線的DSP并行信號處理板構(gòu)成,處理板的數(shù)目可依照信號通道數(shù)目增減。由此可見,DSP并行信號處理板的設(shè)計(jì)是DSP陣列機(jī)設(shè)計(jì)的基礎(chǔ),亦即通用信號處理平臺設(shè)計(jì)的基礎(chǔ)。
本文設(shè)計(jì)的通用信號處理板將AD公司高性能的浮點(diǎn)數(shù)字信號處理器ADSP21160與標(biāo)準(zhǔn)VME總線相結(jié)合,具有強(qiáng)大的信號處理能力和豐富的擴(kuò)展能力。板內(nèi)采用分布式存儲模式,以增強(qiáng)型超立方體拓?fù)浣Y(jié)構(gòu)的LINK口互連。這種結(jié)構(gòu)使每個(gè)信號處理器都有專用的存儲空間,可以使每個(gè)信號處理器充分利用自身局部總線的帶寬,而LINK口可保證處理器間靈活、高速的通訊和連接;每個(gè)信號處理器分別通過前面板和背板提供LINK接口,以實(shí)現(xiàn)板間的高速連接并構(gòu)成新的超立方體結(jié)構(gòu);信號處理板上安裝有FPDP子板,與多通道前置處理機(jī)中的數(shù)據(jù)采集模塊構(gòu)成標(biāo)準(zhǔn)高速連接,同時(shí)也可與市場上的信號處理板兼容。通用信號處理板的結(jié)構(gòu)框圖如圖2所示。
為了完成海量數(shù)據(jù)的并行處理,在圖2所示的通用信號處理板中采用了兩組共8片SHARC(Super Harvad Architecture Computer)級DSP處理器,每個(gè)處理器配有專用SRAM。之所以采用SHARC級處理器是由于其具有獨(dú)特的內(nèi)核設(shè)計(jì)、超級哈佛體系結(jié)構(gòu)、內(nèi)部集成大容量雙端口RAM以及便捷的I/O通訊功能。這些特點(diǎn)使其在運(yùn)算密集、數(shù)據(jù)吞吐量大的高端信號處理領(lǐng)域得到了廣泛應(yīng)用。
系統(tǒng)中8片DSP分為兩組,組1由DSP0、DSP1、DSP2、DSP3構(gòu)成,組2由DSP4、DSP5、DSP6、DSP7組成。只有DSP0可以通過局部總線接口與VME總線相連。它作為總線至板內(nèi)的唯一通路,配備有大容量DRAM。DSP4作為第二組的主節(jié)點(diǎn),也配有大容量DRAM。
2.1 數(shù)據(jù)傳輸方式
SHARC級DSP處理器具有多種數(shù)據(jù)通信接口,如LINK口、串口以及JTAG口等,設(shè)計(jì)時(shí)可依照信息傳輸目的靈活應(yīng)用。
在通用信號處理板設(shè)計(jì)中,LINK口是板內(nèi)和板外的主要數(shù)據(jù)傳輸通路,精心設(shè)計(jì)LINK口的拓?fù)浣Y(jié)構(gòu)對提高板內(nèi)甚至系統(tǒng)的并行性有著重要意義。超立方體結(jié)構(gòu)以多維形式極大地增強(qiáng)了網(wǎng)絡(luò)通信能力[2]。該結(jié)構(gòu)的優(yōu)點(diǎn)是網(wǎng)絡(luò)全對稱,在節(jié)點(diǎn)連接、通信路徑長度、算法的嵌入、與其他連接形式的兼容之間提供了很好的平衡。在兩組DSP中,組內(nèi)DSP兩兩互連,組間相對應(yīng)的DSP兩兩相連。每個(gè)DSP有6個(gè)LINK口,其中4個(gè)進(jìn)行板內(nèi)互連,一個(gè)通過前面板與相鄰板相連,一個(gè)通過背板與相鄰板相連。
DSP處理器有兩個(gè)串口可用于處理器之間、處理器與外設(shè)之間的通信,通常使用點(diǎn)對點(diǎn)方式或TDMA方式。在通用信號處理板上,每個(gè)處理器分配一個(gè)串口至前面板,另一個(gè)連接至背板。這樣的連接結(jié)構(gòu)是為了增加互連的靈活性,通過前面板或背板可進(jìn)行板與板或板內(nèi)處理器之間的串口連接。
JTAG口主要提供硬件仿真器調(diào)試通路。在板內(nèi)通過跳線,可控制調(diào)試處理器的數(shù)量。此外,在通用信號處理板上還通過FPDP子板與前級板連接,從而實(shí)現(xiàn)與前級板的高速數(shù)據(jù)通信,并可組成大型信號處理平臺。
2.2 VME總線接口
處理板的VME總線接口包括兩部分:用于DSP局部總線與VME總線信號調(diào)理的協(xié)調(diào)模塊和VME橋接模塊。協(xié)調(diào)模塊基于CPLD設(shè)計(jì),主要完成DSP局部總線的控制,它由局部總線仲裁、雙向地址空間映射、讀寫時(shí)序控制、數(shù)據(jù)寬度控制、自動(dòng)基地址控制、塊傳輸模式地址計(jì)數(shù)器、內(nèi)部中斷管理、測試接口等部分組成;橋接模塊主要由VME橋接專用芯片Tundra SCV64及其外圍電路構(gòu)成[3]。SCV64可提供主/從接口,符合VME64標(biāo)準(zhǔn)。在系統(tǒng)初始化時(shí),DSP0首先對SCV64進(jìn)行配置,包括傳輸模式控制、基地址配置、VME總線中斷處理器設(shè)置、塊傳輸控制、內(nèi)部定時(shí)器設(shè)置等,信號處理板可通過VME總線進(jìn)行通信。
2.3 時(shí)鐘驅(qū)動(dòng)
在通用信號處理板中時(shí)鐘共有三種:DSP時(shí)鐘、DRAM時(shí)鐘、SCV64時(shí)鐘。其中DSP時(shí)鐘頻率為40MHz,兩組DSP時(shí)鐘可以有兩組時(shí)鐘驅(qū)動(dòng)器且時(shí)鐘可以不同步;DRAM時(shí)鐘用來控制DRAM內(nèi)部的狀態(tài)機(jī),其選用的時(shí)鐘頻率也為40MHz,且不需要與DSP時(shí)鐘同步;SCV64需要大于32MHz的時(shí)鐘才能可靠工作,同時(shí)需要與DSP時(shí)鐘同步,在通用信號處理板中選用的SCV64時(shí)鐘頻率是40MHz。
2.4 信號處理板啟動(dòng)過程
單板啟動(dòng)時(shí),DSP0首先通過EPROM方式啟動(dòng),然后由DSP0再對其余DSP進(jìn)行啟動(dòng)。在對板內(nèi)其余DSP啟動(dòng)時(shí)采用LINK口菊花鏈方式, 首先采用一點(diǎn)對多點(diǎn)方式啟動(dòng),即啟動(dòng)第一組內(nèi)另三個(gè)DSP和鄰組對應(yīng)的DSP(即第二組的主節(jié)點(diǎn)DSP4);然后由DSP4采用一點(diǎn)對多點(diǎn)的方式啟動(dòng)第二組內(nèi)的其余DSP。
2.5 板內(nèi)軟件開發(fā)
通用信號處理板軟件開發(fā)主要涉及三部分內(nèi)容:板級啟動(dòng)程序、基于VxWorks的系統(tǒng)驅(qū)動(dòng)程序以及DSP網(wǎng)絡(luò)開發(fā)環(huán)境。板級啟動(dòng)程序是指在信號處理板啟動(dòng)時(shí),DSP0對其余DSP的啟動(dòng)操作程序、DSP0對SCV64和CPLD的初始化操作程序以及板內(nèi)自檢程序等。系統(tǒng)驅(qū)動(dòng)程序主要完成VME 橋接芯片的配置、對信號處理板的監(jiān)測、總線資源的獨(dú)占、板內(nèi)資源的讀寫、對各個(gè)中斷源的響應(yīng)和處理、塊傳輸模式控制以及與應(yīng)用程序的接口等。DSP網(wǎng)絡(luò)開發(fā)環(huán)境有兩種:一種是基于硬件方式,單板調(diào)試8片DSP或多板調(diào)試相連的DSP;另一種是基于軟件方式,通常采用Spectrum 公司的APEX軟件。
3 系統(tǒng)開發(fā)平臺與VxWorks的應(yīng)用
在通用信號處理平臺中采用嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks來完成實(shí)時(shí)、多任務(wù)工作。通常使用的VxWorks開發(fā)環(huán)境是WindRiver公司提供的Tornado[4]。Tornado體系結(jié)構(gòu)使得許多強(qiáng)有力的開發(fā)工具可以用于各種目標(biāo)機(jī)系統(tǒng)和各種主機(jī)—目標(biāo)機(jī)的連接方式,而不受制于目標(biāo)機(jī)的資源和通信機(jī)制。主機(jī)與目標(biāo)機(jī)間的通信通過運(yùn)行各自處理器上的代理進(jìn)程完成。為了擺脫主機(jī)—目標(biāo)機(jī)通信帶寬和目標(biāo)機(jī)資源的限制,Tornado將傳統(tǒng)的目標(biāo)機(jī)方的工具遷移到主機(jī)上。這樣系統(tǒng)不再需要額外的時(shí)間和帶寬在主機(jī)和目標(biāo)機(jī)之間交換信息,降低了對連接帶寬的需求,也避免了目標(biāo)機(jī)資源(如內(nèi)存)被工具或符號表大量占用,使得應(yīng)用程序擁有更多的系統(tǒng)資源。
Tornado采用主機(jī)—目標(biāo)機(jī)開發(fā)方式,主機(jī)系統(tǒng)可采用運(yùn)行Sun Solaris、HP-UX以及WinXP/NT的工作站或個(gè)人計(jì)算機(jī),VxWorks則運(yùn)行在Intel x86、MC68K、PowerPC或SPARC等處理器上。Tornado支持各種主機(jī)—目標(biāo)機(jī)連接方式,如以太網(wǎng)、串行線、在線仿真器等。
在通用信號處理系統(tǒng)的開發(fā)階段也采用主機(jī)—目標(biāo)機(jī)開發(fā)方式,開發(fā)平臺的組成模塊如圖3所示。主機(jī)系統(tǒng)采用在Windows NT下運(yùn)行Tornado的PC機(jī);目標(biāo)機(jī)為自行開發(fā)的基于VME總線的DSP陣列機(jī),在該陣列機(jī)上運(yùn)行VxWorks。主機(jī)和目標(biāo)機(jī)之間以及主機(jī)和顯控分系統(tǒng)之間以TCP/IP協(xié)議的以太網(wǎng)相接。
在圖3中顯控分系統(tǒng)通過以太網(wǎng)與VxWorks進(jìn)行數(shù)據(jù)通信進(jìn)而控制和協(xié)調(diào)整個(gè)平臺的工作進(jìn)程。對VxWorks而言,它采用中斷方式響應(yīng)顯控分系統(tǒng)的請求。采用網(wǎng)絡(luò)傳輸?shù)哪康脑谟跐M足資源共享的需要并提高數(shù)據(jù)傳輸?shù)目煽啃?、增加系統(tǒng)的可擴(kuò)充性。通過網(wǎng)絡(luò)傳輸,其10Mbps~100Mbps的數(shù)據(jù)傳輸速率可滿足顯示實(shí)時(shí)性的要求。在通用信號處理平臺開發(fā)階段,VxWorks作為顯控?cái)?shù)據(jù)輸出源,可指定它為服務(wù)器端;而基于Windows NT的顯控分系統(tǒng)主要用于接收數(shù)據(jù)并進(jìn)行顯示,因此作為客戶端是合適的。
在進(jìn)行系統(tǒng)功能仿真實(shí)驗(yàn)時(shí),通過多通道模擬數(shù)據(jù)源周期地發(fā)送6通道數(shù)據(jù)(每通道2048個(gè)數(shù)),在DSP陣列中同時(shí)對各通道數(shù)據(jù)進(jìn)行FFT變換,然后將各通道的時(shí)域數(shù)據(jù)和頻域數(shù)據(jù)打包通過以太網(wǎng)發(fā)送到顯控分系統(tǒng)模塊;顯控分系統(tǒng)可同時(shí)對3個(gè)通道的時(shí)域波形和頻域波形進(jìn)行顯示,通過軟件設(shè)置可對顯示通道進(jìn)行切換,并可對顯示曲線進(jìn)行放大、縮小以及重要數(shù)據(jù)存儲等操作。實(shí)驗(yàn)結(jié)果表明所設(shè)計(jì)的通用信號處理平臺是成功的。