《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于TS201的信號處理軟件設(shè)計(jì)
基于TS201的信號處理軟件設(shè)計(jì)
2014年微型機(jī)與應(yīng)用第22期
朱啟強(qiáng)
(中國電波傳播研究所,山東 青島 266107)
摘要: 基于TS201處理器的軟件優(yōu)化設(shè)計(jì),對于提高運(yùn)算效率和運(yùn)行穩(wěn)定性是非常關(guān)鍵的。結(jié)合具體項(xiàng)目和實(shí)際工作經(jīng)驗(yàn),對如何正確利用TS201處理器的各種資源進(jìn)行了分析,并提出了優(yōu)化設(shè)計(jì)方法。按此方法設(shè)計(jì)的信號處理軟件已成功應(yīng)用到了某探測系統(tǒng)中,實(shí)現(xiàn)了系統(tǒng)提出的各種功能,并滿足實(shí)時(shí)性要求,軟件運(yùn)行穩(wěn)定,驗(yàn)證了所提方法的正確性。
Abstract:
Key words :

  摘  要: 基于TS201處理器軟件優(yōu)化設(shè)計(jì),對于提高運(yùn)算效率和運(yùn)行穩(wěn)定性是非常關(guān)鍵的。結(jié)合具體項(xiàng)目和實(shí)際工作經(jīng)驗(yàn),對如何正確利用TS201處理器的各種資源進(jìn)行了分析,并提出了優(yōu)化設(shè)計(jì)方法。按此方法設(shè)計(jì)的信號處理軟件已成功應(yīng)用到了某探測系統(tǒng)中,實(shí)現(xiàn)了系統(tǒng)提出的各種功能,并滿足實(shí)時(shí)性要求,軟件運(yùn)行穩(wěn)定,驗(yàn)證了所提方法的正確性。

  關(guān)鍵詞: 軟件優(yōu)化設(shè)計(jì);TS201處理器;信號處理

0 引言

  TS201是美國ADI公司生產(chǎn)的一款高性能數(shù)字信號處理器,主頻高達(dá)600 MHz,24 MB內(nèi)存,集成雙運(yùn)算單元、4條獨(dú)立128 bit寬內(nèi)部總線、14個(gè)DMA通道控制器和一個(gè)SDRAM控制器;具有64 bit外部總線接口及4個(gè)Link接口。TS201處理器因其運(yùn)算速度快、內(nèi)存容量大、接口豐富、擴(kuò)展能力強(qiáng)等特點(diǎn)被廣泛應(yīng)用到現(xiàn)代雷達(dá)、無線通信、圖形圖像處理等信號處理系統(tǒng)中[1-2]。

  目前,基于TS201的硬件設(shè)計(jì)文章較多,如參考文獻(xiàn)[3-5]均是關(guān)于硬件系統(tǒng)設(shè)計(jì)的,而有關(guān)軟件設(shè)計(jì)卻很少。如何利用好TS201處理器的各種資源進(jìn)行應(yīng)用軟件的優(yōu)化設(shè)計(jì),對于實(shí)現(xiàn)系統(tǒng)功能、提高軟件運(yùn)行效率及穩(wěn)定性是至關(guān)重要的。本文結(jié)合具體項(xiàng)目,對如何正確利用處理器的各種資源及其優(yōu)化設(shè)計(jì)進(jìn)行了分析,并在實(shí)際項(xiàng)目的信號處理軟件設(shè)計(jì)中進(jìn)行了應(yīng)用,驗(yàn)證了設(shè)計(jì)方法的正確性。

1 系統(tǒng)及算法介紹

  在某探測系統(tǒng)中共使用4片TS201處理器用于完成信號處理功能。4個(gè)處理器之間通過Link口互聯(lián),每個(gè)處理器外掛256 MB的SDRAM,并通過FPGA與3個(gè)光纖接口連接。

  處理器的任務(wù)是通過光纖接口完成對基帶數(shù)據(jù)的接收,并通過Link口將數(shù)據(jù)分發(fā)到不同的處理器;在不同的處理器上同時(shí)對基帶數(shù)據(jù)進(jìn)行實(shí)時(shí)處理,最后將處理結(jié)果合成并進(jìn)一步處理后通過光纖接口輸出。信號處理算法包括通道校準(zhǔn)、波束合成和脈沖壓縮,在處理器中實(shí)現(xiàn)這些算法所涉及的運(yùn)算包括FFT、復(fù)數(shù)向量乘法、復(fù)數(shù)矩陣乘法、復(fù)數(shù)向量加法以及IFFT等,用到的處理器資源包括Link口、存儲器、中斷、定時(shí)器等。

2 軟件設(shè)計(jì)

  2.1 Link口數(shù)據(jù)傳輸

  2.1.1 Link口初始化

  處理器之間的數(shù)據(jù)傳輸均是利用Link口進(jìn)行的,在處理器復(fù)位之后,首次使用Link口傳輸數(shù)據(jù)之前必須先對其初始化。Link口初始化主要包括收、發(fā)Link口之間握手、數(shù)據(jù)位模式選擇和傳輸時(shí)鐘頻率設(shè)置。握手是發(fā)送Link口在初始化時(shí)將一信號置成高電平,向接收Link口表明收發(fā)已連接;Link口數(shù)據(jù)線由4對LVDS信號線組成,可以使用4對同時(shí)傳輸,也可以只使用1對數(shù)據(jù)線傳輸,分別稱為4位傳輸模式和1位傳輸模式;Link口的數(shù)據(jù)傳輸時(shí)鐘頻率由處理器的核心頻率分頻得到,分頻系數(shù)可以為1、1.5、2和4。初始化步驟如下:

 ?。?)設(shè)置發(fā)送Link口功能無效;

 ?。?)使能發(fā)送Link口,并設(shè)置傳輸模式為4位,分頻系數(shù)為1.5;

 ?。?)等待2 500個(gè)時(shí)鐘周期以上;

 ?。?)設(shè)置接收Link口無效;

 ?。?)使能接收Link口,傳輸模式與發(fā)送設(shè)置相同。

  實(shí)際探測項(xiàng)目中的系統(tǒng)時(shí)鐘頻率為50 MHz,處理器的核心時(shí)鐘頻率為600 MHz,由系統(tǒng)時(shí)鐘經(jīng)過鎖相環(huán)12倍倍頻得到。Link口時(shí)鐘頻率經(jīng)過分頻之后可以為600 MHz、400 MHz、300 MHz和150 MHz,考慮到穩(wěn)定性問題,這里選用400 MHz作為Link口的時(shí)鐘頻率。

  Link口初始化時(shí)的握手需要兩個(gè)處理器程序同步運(yùn)行,這就需要上位機(jī)的參與。由于上位機(jī)同步不是十分精確,一旦同步出現(xiàn)問題,Link口初始化就會失敗,數(shù)據(jù)傳輸就會出現(xiàn)錯(cuò)誤。

  為了解決同步問題,可以采用另外一種Link口初始化方式。這種初始化方式是利用軟件設(shè)置寄存器強(qiáng)制接收Link口處于接收狀態(tài),而不再需要硬件握手,即發(fā)送Link口和接收Link口初始化不再有聯(lián)系,可以分別獨(dú)自初始化。發(fā)送Link口初始化步驟如下:

  (1)設(shè)置發(fā)送Link口無效;

  (2)使能發(fā)送Link口,并同時(shí)設(shè)置4位傳輸模式和發(fā)送時(shí)鐘頻率。

  接收Link口初始化步驟如下:

  (1)設(shè)置接收Link口無效,同時(shí)設(shè)置接收控制寄存器中RINIF和RINIV位為1;

 ?。?)等待2 500個(gè)時(shí)鐘周期以上;

  (3)使能接收Link口,并設(shè)置傳輸模式與發(fā)送設(shè)置相同。

  2.1.2 Link口傳輸配置

  處理器為每個(gè)Link口配備了兩個(gè)DMA通道控制器,專門用于Link口發(fā)送和接收數(shù)據(jù)。每個(gè)DMA通道都有一個(gè)配置塊(TCB),配置塊包含若干寄存器。利用Link口DMA通道進(jìn)行一維發(fā)送或者接收數(shù)據(jù)時(shí)需要配置3個(gè)寄存器:DI、DX和DP。

  DI寄存器用于存儲發(fā)送數(shù)據(jù)時(shí)的源地址或者接收數(shù)據(jù)時(shí)的目的地址,可以是內(nèi)存也可以是外存。DX低16 bit表示源地址或者目的地址的增量,高16 bit用于存儲傳送數(shù)據(jù)的長度,由于只有16 bit,因此啟動(dòng)一次DMA所能傳送數(shù)據(jù)的最大長度為65 536,如果傳送的數(shù)據(jù)長度大于65 536,需要分多次進(jìn)行傳輸。在DP中需要進(jìn)行的設(shè)置為:源地址或者目的地址是內(nèi)存還是外存,一次讀取或者存放數(shù)據(jù)的寬度(單位為字,必須設(shè)置成4),以及DMA結(jié)束中斷是否打開。數(shù)據(jù)寬度設(shè)置成4后,地址增量也必須設(shè)置成4。發(fā)送數(shù)據(jù)時(shí)DMA一次讀取4個(gè)字,并通過Link口發(fā)送給接收方,接收DMA接收到4個(gè)字后將其寫入到目的地址,源地址和目的地址都會自動(dòng)增加4,為下次數(shù)據(jù)傳輸做好準(zhǔn)備。每發(fā)送一次數(shù)據(jù),發(fā)送方和接收方都會將數(shù)據(jù)長度減去4,當(dāng)數(shù)據(jù)長度為0時(shí)表明發(fā)送和接收都已完成。如果DMA結(jié)束中斷被使能,那么在發(fā)送結(jié)束和接收完成后都會收到DMA完成中斷。由于Link口DMA通道采用4字操作,因此傳送數(shù)據(jù)的長度必須為4的整數(shù)倍,且至少應(yīng)為4。源地址和目的地址必須4字對齊。

  2.2 中斷設(shè)計(jì)

  在TS201處理器中有很多中斷源,有硬件中斷也有軟件中斷,經(jīng)常用到的中斷源包括4個(gè)Link口請求中斷,8個(gè)Link口DMA通道發(fā)送或者接收完成中斷,4個(gè)外部端口DMA通道發(fā)送或者接收完成中斷,4個(gè)外部中斷,4個(gè)定時(shí)器中斷,其中2個(gè)中斷優(yōu)先級較低,另外兩個(gè)中斷優(yōu)先級較高。

  利用這些中斷之前必須先要編寫中斷服務(wù)程序,并與中斷源進(jìn)行關(guān)聯(lián)。

  在用DMA進(jìn)行數(shù)據(jù)傳輸時(shí),必須等到本次DMA完成才能啟動(dòng)下一次DMA,否則DMA通道將會阻塞,導(dǎo)致無法正常傳輸數(shù)據(jù)。可以在DMA完成中斷服務(wù)程序時(shí)設(shè)置一個(gè)標(biāo)志,通過該標(biāo)志來判斷DMA是否已經(jīng)完成。

  當(dāng)Link口接收緩沖滿時(shí)會發(fā)起一個(gè)請求接收中斷,可以根據(jù)該中斷進(jìn)行數(shù)據(jù)接收。

  外部中斷可由外設(shè)發(fā)起,處理器收到外設(shè)中斷后與外設(shè)進(jìn)行通信。

  向定時(shí)寄存器中寫入定時(shí)值,并啟動(dòng)定時(shí)器,定時(shí)器按一定時(shí)鐘周期對定時(shí)值循環(huán)減一,當(dāng)減到零時(shí)就會產(chǎn)生一個(gè)定時(shí)中斷。

  Link口請求中斷是電平觸發(fā)方式,外部中斷可設(shè)置成沿觸發(fā)也可設(shè)置成電平觸發(fā),其他中斷均為沿觸發(fā)。在本系統(tǒng)中有3個(gè)外部中斷源通過復(fù)用連接到處理器的中斷信號IRQ2上,同一時(shí)刻可能有兩個(gè)或者3個(gè)中斷產(chǎn)生,如果將該中斷的觸發(fā)方式設(shè)置成沿觸發(fā),勢必會造成中斷丟失。為了解決這個(gè)問題可以將中斷設(shè)置成電平觸發(fā)方式,一旦中斷產(chǎn)生只有處理器響應(yīng)之后并由處理器自己撤銷已經(jīng)響應(yīng)的中斷;沒有響應(yīng)的中斷會繼續(xù)產(chǎn)生,處理器退出前一個(gè)中斷服務(wù)程序之后會繼續(xù)響應(yīng)下一個(gè)中斷,并進(jìn)行撤銷處理,直到處理完所有的中斷。

  Link口請求中斷的觸發(fā)方式固定為電平觸發(fā),一旦此中斷產(chǎn)生,處理器就必須馬上響應(yīng),否則頻繁的中斷產(chǎn)生會耽誤處理器的正常運(yùn)行。對Link口請求中斷的響應(yīng)就是啟動(dòng)DMA接收由Link發(fā)送來的數(shù)據(jù)。需要特別注意的是,配置完Link口DMA接收通道后,到DMA啟動(dòng)有一定時(shí)間延遲,而請求中斷只有在DMA啟動(dòng)后才會自動(dòng)撤銷。所以在配置完DMA通道后需要再等待約1 ?滋s才能進(jìn)行其他處理,否則,請求中斷會再次產(chǎn)生,造成中斷重入錯(cuò)誤。

  每個(gè)中斷都有自己的優(yōu)先級,低優(yōu)先級的中斷可以被高優(yōu)先級的中斷打斷,進(jìn)入中斷嵌套,低優(yōu)先級中斷不能打斷高優(yōu)先級的中斷。特別是對于電平觸發(fā)的中斷,如果不能及時(shí)處理,中斷會持續(xù)不斷地產(chǎn)生,不但影響處理器的正常運(yùn)行,低優(yōu)先級的中斷也將一直無法進(jìn)入。

  2.3 存儲器訪問

  很多系統(tǒng)對信號處理的實(shí)時(shí)性要求較高,在硬件資源一定的情況下,就需要通過優(yōu)化軟件設(shè)計(jì)來滿足實(shí)時(shí)性要求。下面以通道校準(zhǔn)算法為例來介紹使用存儲器的優(yōu)化方法。

  通道校準(zhǔn)算法可分解成兩次FFT運(yùn)算和一次向量乘法運(yùn)算。在實(shí)現(xiàn)本系統(tǒng)的信號處理算法時(shí)調(diào)用了第三方函數(shù)庫,其FFT函數(shù)原型如下:

  ez_c2fft_f(A,BUF,TW,twstr,N,C)

  其中,A、C、BUF和twstr均為復(fù)數(shù)向量地址指針,分別指向4片存儲區(qū)域,可以使用內(nèi)存,也可以使用外存,但處理器訪問外存時(shí)的速率遠(yuǎn)低于內(nèi)存。因此,為了提高運(yùn)算速度,這4片存儲區(qū)域應(yīng)盡量選擇內(nèi)存。

  處理器的內(nèi)存為24 Mbit,被平均分成了6塊,通過交叉點(diǎn)開關(guān)分別與處理器內(nèi)部的4條總線相連。由于TS201處理器采用了超級哈佛結(jié)構(gòu)和靜態(tài)超標(biāo)量處理,并支持單指令多數(shù)據(jù)(SIMD)模式,使處理器每周期可同時(shí)執(zhí)行4條指令和6個(gè)浮點(diǎn)運(yùn)算[6-7];4條內(nèi)部總線可同時(shí)訪問不同的4片內(nèi)存,訪問寬度為128 bit。因此,在FFT運(yùn)算時(shí)為其分配的存儲區(qū)滿足如下要求時(shí)將會大大提高運(yùn)算效率:(1)存儲區(qū)位于內(nèi)存;(2)存儲區(qū)被分配在不同的存儲塊內(nèi);(3)存儲區(qū)首地址4字對齊。

  在通道校準(zhǔn)時(shí)需要用到通道校準(zhǔn)系數(shù),通道校準(zhǔn)系數(shù)在標(biāo)校工作狀態(tài)下求出,但由于其數(shù)據(jù)量較大,必須先搬移到外存,在通道校準(zhǔn)時(shí)再搬移到內(nèi)存使用。有4個(gè)DMA通道可以用于內(nèi)存與外存之間數(shù)據(jù)的搬移操作。在配置DMA通道時(shí),DP寄存器中的LEN可以被配置成單字、雙字或者4字,當(dāng)配置成4字時(shí),數(shù)據(jù)傳輸效率最高,源地址和目的地址也必須按4字對齊。

  2.4 定時(shí)器操作

  TS201處理器提供兩個(gè)通用定時(shí)器,存儲初始定時(shí)值的寄存器為64 bit寬,但配置時(shí)必須按32 bit進(jìn)行訪問。兩個(gè)定時(shí)器都是減法定時(shí)器,設(shè)置完定時(shí)值并啟動(dòng)定時(shí)器后,定時(shí)器在每個(gè)定時(shí)時(shí)鐘周期對初始值進(jìn)行減一操作,直到減到零為止,然后重新載入初始定時(shí)值并再次按定時(shí)時(shí)鐘周期進(jìn)行減一操作。每當(dāng)定時(shí)器減到零時(shí)就會產(chǎn)生定時(shí)中斷。定時(shí)器的時(shí)鐘頻率為處理器核心時(shí)鐘頻率的一半,本系統(tǒng)設(shè)計(jì)中定時(shí)器的時(shí)鐘頻率為300 MHz,一個(gè)定時(shí)器最大定時(shí)時(shí)間很長,但只配置定時(shí)器低32 bit時(shí)最大定時(shí)約14.3 s。不再使用定時(shí)器時(shí)要及時(shí)關(guān)閉定時(shí)器。

  使用定時(shí)器可以測試一段代碼的運(yùn)行時(shí)間。在要測試代碼段的開始設(shè)置定時(shí)器初始值,然后啟動(dòng)定時(shí)器,并讀取定時(shí)器的當(dāng)前計(jì)數(shù)值,在代碼段運(yùn)行結(jié)束時(shí),再次讀取定時(shí)器的計(jì)數(shù)值,兩次計(jì)數(shù)值的差值除以計(jì)數(shù)時(shí)鐘頻率300 MHz,便是代碼段的運(yùn)行時(shí)間,單位為?滋s。還可以用定時(shí)器監(jiān)測某個(gè)事件是否在規(guī)定的時(shí)間內(nèi)完成。在事件開始之前設(shè)置好定時(shí)值,并啟動(dòng)定時(shí)器,如果事件正常完成就關(guān)閉定時(shí)器;如果事件超時(shí),就會收到定時(shí)器定時(shí)完成中斷,先關(guān)閉定時(shí)器,然后進(jìn)行相應(yīng)的超時(shí)處理。

3 結(jié)論

  本文結(jié)合具體項(xiàng)目和實(shí)際工作經(jīng)驗(yàn),對TS201處理器的各種資源進(jìn)行介紹,提出了利用這些資源進(jìn)行軟件優(yōu)化設(shè)計(jì)的方法。利用該方法設(shè)計(jì)的信號處理軟件已成功應(yīng)用到某探測項(xiàng)目中,實(shí)現(xiàn)了項(xiàng)目提出的各種功能,充分滿足了系統(tǒng)實(shí)時(shí)性要求,程序運(yùn)行穩(wěn)定,驗(yàn)證了本文所提出的基于TS201軟件設(shè)計(jì)方法的正確性。本文也為同類軟件設(shè)計(jì)的工程師提供了經(jīng)驗(yàn)和重要參考價(jià)值,能有效提高所設(shè)計(jì)軟件的實(shí)時(shí)性和穩(wěn)定性,同時(shí)節(jié)省了開發(fā)時(shí)間和成本。

  參考文獻(xiàn)

  [1] Analog Devices, Inc.ADSP-TS201 TigerSHARC processor hardware reference[EB/OL]. [2014-07-01]. Revision1.1,  December 2004.

  [2] 王菲,汪學(xué)剛.ADSP-TS201的系統(tǒng)設(shè)計(jì)及外部總線接口技術(shù)[J].現(xiàn)代電子技術(shù),2007(11):53-55.

  [3] 冼友倫,盧護(hù)林,蘇濤.基于FPGA的多通道高速實(shí)時(shí)信號處理系統(tǒng)設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2008,34(9):21-24.

  [4] 顧穎,張雪婷,張飚.基于ADSP-TS201S的通用雷達(dá)信號處理機(jī)的設(shè)計(jì)[J].現(xiàn)代雷達(dá),2006,28(6):49-51.

  [5] 宋思盛,肖開健.基于TS201的通用并行信號處理板設(shè)計(jì)[J].火控雷達(dá)技術(shù),2008,37(2):65-68.

  [6] 李冬仙,王斌,吳瑛.短波寬帶陣列信號源的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2008,34(3):52-54.

  [7] 張澤云,趙宏生,徐朝陽.基于ADSP-TS201S的雷達(dá)信號處理研究[J].艦船電子對抗,2011,34(3):46-48.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。