趙俊杰,孫大光
(昆明船舶設備研究試驗中心,云南昆明 650051)
ADSP TS201S Link口在多DSP系統中的應用
趙俊杰,孫大光
(昆明船舶設備研究試驗中心,云南昆明 650051)
在多點實時收發水下聲學尺度目標模擬器研制中,采用多DSP系統可以較好完成信號處理任務。本文介紹應用ADSPTS201SLink口完成以下工作:進行多DSP鏈式加載,利用Link口中斷同步多DSP工作和DSP間實時雙向通信。結果表明,信號處理程序運行良好,達到設計要求。
鏈式加載;Link口中斷;Link口雙向通信;ADSPTS201S
在水聲對抗技術迅速發展的背景下,聲自導魚雷的尺度識別能力已成為魚雷捕獲、跟蹤目標的基本條件[1]。在水聲對抗領域,魚雷對抗器材也從常用的點源模擬器發展到尺度式目標模擬器。
為提高目標特性模擬真實程度,開展了多點實時收發水下聲學尺度目標模擬器的研制,相對于現有單收多發方式聲學尺度目標模擬器,其信號處理復雜度提高較多,在此情況下,采用多DSP系統可以較好完成信號處理任務。
通過Link口互聯,ADSPTS201S芯片集成了無縫多處理器支持功能,便于多處理器DSP系統設計,為處理器間通信提供了最大的帶寬。ADSP TS201S有4個獨立的Link口,為LVDS的差分連接模式,可以進行完全雙向通信,Link口時鐘最高可達到核內時鐘速度,提供了更高的工作速度和更高的可靠性[2]。
在多點實時收發水下聲學尺度目標模擬器信號處理程序中,應用Link口完成以下工作:進行多DSP鏈式加載,利用Link口中斷同步多DSP工作和DSP間實時雙向通信。
數據收發板和信號處理板構成多點實時收發尺度目標模擬器信號處理設備,板上多片DSP通過Link口實現互聯,其結構如圖1所示。
在通過Link口耦合的多處理器系統中,實現整個系統的程序加載是非常關鍵的一步[3]。如果程序不能正常加載,整個DSP系統將不能工作,而且對于多個DSP程序來說,其加載順序也有要求,如果加載順序不對,DSP系統工作會產生紊亂。
目標模擬器信號處理程序共有5個模塊,分別工作于5片DSP上。在片間Link口通信程序中,DSP2,DSP3和DSP4開始工作后應首先將其接收Link口初始化,等待DSP1通過各Link口發送A/D采樣數據;同理DSP1開始工作后也應首先將其接收Link口初始化,等待DSP0通過Link口發送A/D采樣數據,這樣發送端發送的數據接收端才能夠無誤接收。因此,信號處理板上的程序模塊應先于數據收發板上的程序模塊開始工作,系統通過控制各片DSP程序模塊的加載順序來保證工作正常。
采用主機獨立加載各片DSP程序模塊的方式不能精確控制加載完成時間,各DSP開始工作時刻不能嚴格掌握,容易造成加載故障。采用多DSP鏈式加載方式,在各片DSP程序模塊編寫時已經確定了加載順序,編譯時被加載程序模塊嵌入上一級程序模塊,運行時只需加載一片后,其他模塊的加載可鏈式展開。
目標模擬器各片DSP程序模塊加載按以下順序進行:DSP4首先通過主機加載模式加載,之后DSP4通過Link口加載模式加載DSP1,DSP1通過Link口加載模式加載DSP3,DSP2和DSP0。
DSP0程序模塊編譯為.ldr格式,在DSP1程序模塊編譯時嵌入;DSP3,DSP2和DSP1程序模塊編譯為.ldr格式,在DSP4程序模塊編譯時嵌入,最終生成的DSP4.dxe文件集成了目標模擬器信號處理程序所有功能模塊,當DSP4程序模塊加載運行后,通過Link口加載DSP1程序模塊。DSP1程序模塊自動引導運行后使能其Link口中斷,等待DSP0使能IRQ中斷,讀取AD芯片的采樣數據并進行通過Link口將數據送向DSP1。
DSP開發軟件Visual DSP++內嵌了Link口加載內核引導程序,可以在對被加載DSP程序模塊以.ldr格式編譯時生成長度為256個字的程序加載碼,其中包含TS201初始化程序以及用戶程序長度等信息,添加在DSP程序模塊開始部分,與其合成一個Link口加載方式的輸出文件.ldr[4]。系統默認的Link口加載內核引導程序TS201-link.asm是針對處理器Link口3進行編寫的,各片DSP程序模塊應將其分別設置為實際所需的Link口數字,逐次重新編譯系統自帶工程生成新的庫文件可執行代碼,才能使用加載內核引導程序[5]。
在加載過程中,加載程序模塊將加載碼和用戶程序分開傳輸。Link口緩沖器LBUFTX每次接收4字長度的被加載DSP程序模塊加載碼,Link口狀態寄存器LTSTATX位表明Link口忙閑狀態,只要Link口將之前數據傳輸完畢,即可再向緩沖器寫入4字數據。完成256字長加載碼傳送后,應等待被加載程序加載碼運行后再進行用戶程序傳送。同理,傳送完用戶程序部分后,也應等待其運行并完成其自身初始化。之后,整個多DSP系統Link口加載過程結束。Link口加載流程如圖2所示。
另外,加載程序模塊進行程序加載時,需要預先知道被加載程序模塊的長度,在加載程序模塊中定義這個長度數值的空間,而這個長度數值可根據編譯器報錯中的提示進行修正。
各片DSP程序模塊Link口通信程序中,將相應的DMA通道禁止使能,當有數據進入Link口接收緩沖時,就會產生Link口服務請求中斷[6]。
魚雷自導信號被目標模擬器不同接收換能器接收,經前置信號處理電路組件處理后形成多個中斷,傳至數據收發板DSP0。在一個中斷周期內,DSP0依次響應所有中斷,將所有A/D采樣數據接收存儲,隨后立即打包并通過Link口傳送至DSP1。DSP1因此產生Link口中斷,在中斷服務程序中將接收的A/D數據分發至對應的DSP2,DSP3和DSP4芯片,并以此中斷為片上時間計數單位。DSP2,DSP3和DSP4產生Link口中斷,接收A/D數據進行并行信號處理。
每片DSP處理信號產生的回波控制信息在下次中斷時均返回至DSP1,由其回傳至數據收發板DSP0。DSP0依據回波控制信息將存儲的A/D采樣數據送至功率放大組件,控制多路回波的形成及回發。
這樣,利用Link口中斷可以同步多DSP工作,在一個中斷周期內,將采集的數據塊完成處理,保證了系統的實時性。目標模擬器工作流程如圖3所示。
ADSPTS201S片上有4個Link口,每個Link口都由4位雙向差分數據線和另外3個控制信號構成。數據通信時,Link口可以直接由處理器核控制,也可以由DMA控制器控制[7]。ADSPTS201SLink 口結構如圖 4 所示。
目標模擬器各DSP程序模塊L ink口通信采用DMA方式,實現無處理器核參與的數據高速傳送。編碼為1位傳輸方式。通過設置LTCTLx,Link口配置為內核時鐘的1/1。
信號處理板上的DSP1芯片內嵌數據交換模塊,其中的代碼實現Link口雙向通信功能,在一個采樣中斷周期內,接收多個自導信號采樣數據,根據預定處理任務分配策略轉發至不同芯片;與此同時接收不同芯片處理結果,并上傳至數據收發板DSP0。
DSP1芯片集中控制其上的4個Link口完成以上功能,且都采用雙向通信功能,由于多路數據流傳輸時序需要,應在接收代碼后插入NOP語句,形成合適的等待時間之后才能進行數據分發操作。同理,數據分發后也應等待再進行接收返回的回波控制信息動作,等待接收完畢之后再進行最后的回傳發送。
本文主要介紹了在多點實時收發水下聲學尺度目標模擬器信號處理程序開發中,TS201S Link口在多DSP系統中的多項應用,展示了Link口通信的強大功能,可供軟件開發者參考。
[1]陳建青,趙俊杰.一種尺度目標模擬器的模擬逼真度分析[J].魚雷技術,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 原理與應用設計[M].北京:電子工業出版社,2007,184–185.
[3]劉書明,蘇濤,羅軍輝.TigerSHARCDSP 應用系統設計[M].北京:電子工業出版社,2004,405.
[4]B LERNER.ADSP-TS20x TigerSHARC 處理器的啟動加載內核運行[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 應用教程[M].北京:電子工業出版社,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–),男,碩士,工程師,主要從事水聲目標模擬信號處理技術研究。