• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于TS201的信號處理軟件設(shè)計

      2014-03-19 14:45:20朱啟強
      關(guān)鍵詞:信號處理寄存器中斷

      朱啟強

      (中國電波傳播研究所,山東 青島 266107)

      0 引言

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

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

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

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

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

      2 軟件設(shè)計

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

      2.1.1 Link口初始化

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

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

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

      (3)等待2 500個時鐘周期以上;

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

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

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

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

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

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

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

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

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

      (2)等待2 500個時鐘周期以上;

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

      2.1.2 Link口傳輸配置

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

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

      2.2 中斷設(shè)計

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

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

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

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

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

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

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

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

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

      2.3 存儲器訪問

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

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

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

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

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

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

      2.4 定時器操作

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

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

      3 結(jié)論

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

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

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

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

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

      [5]宋思盛,肖開?。赥S201的通用并行信號處理板設(shè)計[J].火控雷達技術(shù),2008,37(2):65-68.

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

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

      猜你喜歡
      信號處理寄存器中斷
      Lite寄存器模型的設(shè)計與實現(xiàn)
      《信號處理》征稿簡則
      信號處理(2018年5期)2018-08-20 06:16:02
      《信號處理》第九屆編委會
      信號處理(2018年5期)2018-08-20 06:16:00
      《信號處理》征稿簡則
      信號處理(2018年8期)2018-07-25 12:25:42
      《信號處理》第九屆編委會
      信號處理(2018年8期)2018-07-25 12:24:56
      跟蹤導練(二)(5)
      千里移防,衛(wèi)勤保障不中斷
      解放軍健康(2017年5期)2017-08-01 06:27:44
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      AT89C51與中斷有關(guān)的寄存器功能表解
      FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
      微處理機(2012年4期)2012-06-13 11:32:24
      黄大仙区| 临洮县| 德化县| 麻阳| 会泽县| 通渭县| 宁阳县| 抚松县| 双桥区| 南漳县| 象州县| 仙游县| 炎陵县| 河北区| 曲水县| 昌宁县| 卓尼县| 临海市| 潼南县| 綦江县| 衡东县| 六安市| 石首市| 阜南县| 孟州市| 海盐县| 正阳县| 定南县| 安阳市| 清流县| 临洮县| 锡林浩特市| 眉山市| 卓尼县| 新巴尔虎左旗| 柯坪县| 萝北县| 辽中县| 德阳市| 资兴市| 融水|