趙俊杰,孫大光
(昆明船舶設(shè)備研究試驗(yàn)中心,云南昆明 650051)
ADSP TS201S Link口在多DSP系統(tǒng)中的應(yīng)用
趙俊杰,孫大光
(昆明船舶設(shè)備研究試驗(yàn)中心,云南昆明 650051)
在多點(diǎn)實(shí)時(shí)收發(fā)水下聲學(xué)尺度目標(biāo)模擬器研制中,采用多DSP系統(tǒng)可以較好完成信號(hào)處理任務(wù)。本文介紹應(yīng)用ADSPTS201SLink口完成以下工作:進(jìn)行多DSP鏈?zhǔn)郊虞d,利用Link口中斷同步多DSP工作和DSP間實(shí)時(shí)雙向通信。結(jié)果表明,信號(hào)處理程序運(yùn)行良好,達(dá)到設(shè)計(jì)要求。
鏈?zhǔn)郊虞d;Link口中斷;Link口雙向通信;ADSPTS201S
在水聲對抗技術(shù)迅速發(fā)展的背景下,聲自導(dǎo)魚雷的尺度識(shí)別能力已成為魚雷捕獲、跟蹤目標(biāo)的基本條件[1]。在水聲對抗領(lǐng)域,魚雷對抗器材也從常用的點(diǎn)源模擬器發(fā)展到尺度式目標(biāo)模擬器。
為提高目標(biāo)特性模擬真實(shí)程度,開展了多點(diǎn)實(shí)時(shí)收發(fā)水下聲學(xué)尺度目標(biāo)模擬器的研制,相對于現(xiàn)有單收多發(fā)方式聲學(xué)尺度目標(biāo)模擬器,其信號(hào)處理復(fù)雜度提高較多,在此情況下,采用多DSP系統(tǒng)可以較好完成信號(hào)處理任務(wù)。
通過Link口互聯(lián),ADSPTS201S芯片集成了無縫多處理器支持功能,便于多處理器DSP系統(tǒng)設(shè)計(jì),為處理器間通信提供了最大的帶寬。ADSP TS201S有4個(gè)獨(dú)立的Link口,為LVDS的差分連接模式,可以進(jìn)行完全雙向通信,Link口時(shí)鐘最高可達(dá)到核內(nèi)時(shí)鐘速度,提供了更高的工作速度和更高的可靠性[2]。
在多點(diǎn)實(shí)時(shí)收發(fā)水下聲學(xué)尺度目標(biāo)模擬器信號(hào)處理程序中,應(yīng)用Link口完成以下工作:進(jìn)行多DSP鏈?zhǔn)郊虞d,利用Link口中斷同步多DSP工作和DSP間實(shí)時(shí)雙向通信。
數(shù)據(jù)收發(fā)板和信號(hào)處理板構(gòu)成多點(diǎn)實(shí)時(shí)收發(fā)尺度目標(biāo)模擬器信號(hào)處理設(shè)備,板上多片DSP通過Link口實(shí)現(xiàn)互聯(lián),其結(jié)構(gòu)如圖1所示。
在通過Link口耦合的多處理器系統(tǒng)中,實(shí)現(xiàn)整個(gè)系統(tǒng)的程序加載是非常關(guān)鍵的一步[3]。如果程序不能正常加載,整個(gè)DSP系統(tǒng)將不能工作,而且對于多個(gè)DSP程序來說,其加載順序也有要求,如果加載順序不對,DSP系統(tǒng)工作會(huì)產(chǎn)生紊亂。
目標(biāo)模擬器信號(hào)處理程序共有5個(gè)模塊,分別工作于5片DSP上。在片間Link口通信程序中,DSP2,DSP3和DSP4開始工作后應(yīng)首先將其接收Link口初始化,等待DSP1通過各Link口發(fā)送A/D采樣數(shù)據(jù);同理DSP1開始工作后也應(yīng)首先將其接收Link口初始化,等待DSP0通過Link口發(fā)送A/D采樣數(shù)據(jù),這樣發(fā)送端發(fā)送的數(shù)據(jù)接收端才能夠無誤接收。因此,信號(hào)處理板上的程序模塊應(yīng)先于數(shù)據(jù)收發(fā)板上的程序模塊開始工作,系統(tǒng)通過控制各片DSP程序模塊的加載順序來保證工作正常。
采用主機(jī)獨(dú)立加載各片DSP程序模塊的方式不能精確控制加載完成時(shí)間,各DSP開始工作時(shí)刻不能嚴(yán)格掌握,容易造成加載故障。采用多DSP鏈?zhǔn)郊虞d方式,在各片DSP程序模塊編寫時(shí)已經(jīng)確定了加載順序,編譯時(shí)被加載程序模塊嵌入上一級(jí)程序模塊,運(yùn)行時(shí)只需加載一片后,其他模塊的加載可鏈?zhǔn)秸归_。
目標(biāo)模擬器各片DSP程序模塊加載按以下順序進(jìn)行:DSP4首先通過主機(jī)加載模式加載,之后DSP4通過Link口加載模式加載DSP1,DSP1通過Link口加載模式加載DSP3,DSP2和DSP0。
DSP0程序模塊編譯為.ldr格式,在DSP1程序模塊編譯時(shí)嵌入;DSP3,DSP2和DSP1程序模塊編譯為.ldr格式,在DSP4程序模塊編譯時(shí)嵌入,最終生成的DSP4.dxe文件集成了目標(biāo)模擬器信號(hào)處理程序所有功能模塊,當(dāng)DSP4程序模塊加載運(yùn)行后,通過Link口加載DSP1程序模塊。DSP1程序模塊自動(dòng)引導(dǎo)運(yùn)行后使能其Link口中斷,等待DSP0使能IRQ中斷,讀取AD芯片的采樣數(shù)據(jù)并進(jìn)行通過Link口將數(shù)據(jù)送向DSP1。
DSP開發(fā)軟件Visual DSP++內(nèi)嵌了Link口加載內(nèi)核引導(dǎo)程序,可以在對被加載DSP程序模塊以.ldr格式編譯時(shí)生成長度為256個(gè)字的程序加載碼,其中包含TS201初始化程序以及用戶程序長度等信息,添加在DSP程序模塊開始部分,與其合成一個(gè)Link口加載方式的輸出文件.ldr[4]。系統(tǒng)默認(rèn)的Link口加載內(nèi)核引導(dǎo)程序TS201-link.asm是針對處理器Link口3進(jìn)行編寫的,各片DSP程序模塊應(yīng)將其分別設(shè)置為實(shí)際所需的Link口數(shù)字,逐次重新編譯系統(tǒng)自帶工程生成新的庫文件可執(zhí)行代碼,才能使用加載內(nèi)核引導(dǎo)程序[5]。
在加載過程中,加載程序模塊將加載碼和用戶程序分開傳輸。Link口緩沖器LBUFTX每次接收4字長度的被加載DSP程序模塊加載碼,Link口狀態(tài)寄存器LTSTATX位表明Link口忙閑狀態(tài),只要Link口將之前數(shù)據(jù)傳輸完畢,即可再向緩沖器寫入4字?jǐn)?shù)據(jù)。完成256字長加載碼傳送后,應(yīng)等待被加載程序加載碼運(yùn)行后再進(jìn)行用戶程序傳送。同理,傳送完用戶程序部分后,也應(yīng)等待其運(yùn)行并完成其自身初始化。之后,整個(gè)多DSP系統(tǒng)Link口加載過程結(jié)束。Link口加載流程如圖2所示。
另外,加載程序模塊進(jìn)行程序加載時(shí),需要預(yù)先知道被加載程序模塊的長度,在加載程序模塊中定義這個(gè)長度數(shù)值的空間,而這個(gè)長度數(shù)值可根據(jù)編譯器報(bào)錯(cuò)中的提示進(jìn)行修正。
各片DSP程序模塊Link口通信程序中,將相應(yīng)的DMA通道禁止使能,當(dāng)有數(shù)據(jù)進(jìn)入Link口接收緩沖時(shí),就會(huì)產(chǎn)生Link口服務(wù)請求中斷[6]。
魚雷自導(dǎo)信號(hào)被目標(biāo)模擬器不同接收換能器接收,經(jīng)前置信號(hào)處理電路組件處理后形成多個(gè)中斷,傳至數(shù)據(jù)收發(fā)板DSP0。在一個(gè)中斷周期內(nèi),DSP0依次響應(yīng)所有中斷,將所有A/D采樣數(shù)據(jù)接收存儲(chǔ),隨后立即打包并通過Link口傳送至DSP1。DSP1因此產(chǎn)生Link口中斷,在中斷服務(wù)程序中將接收的A/D數(shù)據(jù)分發(fā)至對應(yīng)的DSP2,DSP3和DSP4芯片,并以此中斷為片上時(shí)間計(jì)數(shù)單位。DSP2,DSP3和DSP4產(chǎn)生Link口中斷,接收A/D數(shù)據(jù)進(jìn)行并行信號(hào)處理。
每片DSP處理信號(hào)產(chǎn)生的回波控制信息在下次中斷時(shí)均返回至DSP1,由其回傳至數(shù)據(jù)收發(fā)板DSP0。DSP0依據(jù)回波控制信息將存儲(chǔ)的A/D采樣數(shù)據(jù)送至功率放大組件,控制多路回波的形成及回發(fā)。
這樣,利用Link口中斷可以同步多DSP工作,在一個(gè)中斷周期內(nèi),將采集的數(shù)據(jù)塊完成處理,保證了系統(tǒng)的實(shí)時(shí)性。目標(biāo)模擬器工作流程如圖3所示。
ADSPTS201S片上有4個(gè)Link口,每個(gè)Link口都由4位雙向差分?jǐn)?shù)據(jù)線和另外3個(gè)控制信號(hào)構(gòu)成。數(shù)據(jù)通信時(shí),Link口可以直接由處理器核控制,也可以由DMA控制器控制[7]。ADSPTS201SLink 口結(jié)構(gòu)如圖 4 所示。
目標(biāo)模擬器各DSP程序模塊L ink口通信采用DMA方式,實(shí)現(xiàn)無處理器核參與的數(shù)據(jù)高速傳送。編碼為1位傳輸方式。通過設(shè)置LTCTLx,Link口配置為內(nèi)核時(shí)鐘的1/1。
信號(hào)處理板上的DSP1芯片內(nèi)嵌數(shù)據(jù)交換模塊,其中的代碼實(shí)現(xiàn)Link口雙向通信功能,在一個(gè)采樣中斷周期內(nèi),接收多個(gè)自導(dǎo)信號(hào)采樣數(shù)據(jù),根據(jù)預(yù)定處理任務(wù)分配策略轉(zhuǎn)發(fā)至不同芯片;與此同時(shí)接收不同芯片處理結(jié)果,并上傳至數(shù)據(jù)收發(fā)板DSP0。
DSP1芯片集中控制其上的4個(gè)Link口完成以上功能,且都采用雙向通信功能,由于多路數(shù)據(jù)流傳輸時(shí)序需要,應(yīng)在接收代碼后插入NOP語句,形成合適的等待時(shí)間之后才能進(jìn)行數(shù)據(jù)分發(fā)操作。同理,數(shù)據(jù)分發(fā)后也應(yīng)等待再進(jìn)行接收返回的回波控制信息動(dòng)作,等待接收完畢之后再進(jìn)行最后的回傳發(fā)送。
本文主要介紹了在多點(diǎn)實(shí)時(shí)收發(fā)水下聲學(xué)尺度目標(biāo)模擬器信號(hào)處理程序開發(fā)中,TS201S Link口在多DSP系統(tǒng)中的多項(xiàng)應(yīng)用,展示了Link口通信的強(qiáng)大功能,可供軟件開發(fā)者參考。
[1]陳建青,趙俊杰.一種尺度目標(biāo)模擬器的模擬逼真度分析[J].魚雷技術(shù),2014,22(6):442–446.CHEN Jian-qing,ZHAO Jun-jie.Fidelity analysis of a scale target simulator[J].Torpedo Technology,2014,22(6):442–446.
[2]劉書明,羅勇江.ADSPTS20XS 系列 DSP 原理與應(yīng)用設(shè)計(jì)[M].北京:電子工業(yè)出版社,2007,184–185.
[3]劉書明,蘇濤,羅軍輝.TigerSHARCDSP 應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2004,405.
[4]B LERNER.ADSP-TS20x TigerSHARC 處理器的啟動(dòng)加載內(nèi)核運(yùn)行[EB/OL].Engineer-to-Engineer指南,2004,EE-200.
[5]Analog Devices 公司.ADSP-TS201 Tiger SHARC 處理器編程參考[EB/OL].United States:Analog Devices 公司,2003,6:16–19.
[6]蘇濤,崔向陽.TigerSHARC 系列 DSP 應(yīng)用教程[M].北京:電子工業(yè)出版社,2009,29.
[7]Analog Devices 公司.ADSP-TS201 TigerSHARC 處理器硬件參考[EB/OL].United States:Analog Devices 公司,2003,5:36–37.
Application of ADSP TS201S Link port in multi DSP system
ZHAO Jun-jie,SUN Da-guang
(Kunming Shipborne Equipment Research and Test Center,Kunming 650051,China)
In the development of underwater acoustic scale target simulator for multi-point real-time transmission,multi DSP system can perform signal processing tasks better.This article describes the application of ADSPTS201SLink port to complete the following tasks:multi DSP chain loading,using Link port interrupt synchronise multi DSP work and real-time two-way communication between DSP.The results show that the signal processing program runs well and meets the design requirements.
chain loading;Link port interrupt;Link port two-way communication;ADSP-TS201S
TB556
A
1672–7649(2017)12–0111–03
10.3404/j.issn.1672–7649.2017.12.023
2017–05–20;
2017–07–25
趙俊杰(1981–),男,碩士,工程師,主要從事水聲目標(biāo)模擬信號(hào)處理技術(shù)研究。