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

  摘  要: 基于TS201處理器軟件優化設計,對于提高運算效率和運行穩定性是非常關鍵的。結合具體項目和實際工作經驗,對如何正確利用TS201處理器的各種資源進行了分析,并提出了優化設計方法。按此方法設計的信號處理軟件已成功應用到了某探測系統中,實現了系統提出的各種功能,并滿足實時性要求,軟件運行穩定,驗證了所提方法的正確性。

  關鍵詞: 軟件優化設計;TS201處理器;信號處理

0 引言

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

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

1 系統及算法介紹

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

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

2 軟件設計

  2.1 Link口數據傳輸

  2.1.1 Link口初始化

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

  (1)設置發送Link口功能無效;

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

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

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

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

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

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

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

  (1)設置發送Link口無效;

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

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

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

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

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

  2.1.2 Link口傳輸配置

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

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

  2.2 中斷設計

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

  利用這些中斷之前必須先要編寫中斷服務程序,并與中斷源進行關聯。

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

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

  外部中斷可由外設發起,處理器收到外設中斷后與外設進行通信。

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

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

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

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

  2.3 存儲器訪問

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

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

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

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

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

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

  2.4 定時器操作

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

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

3 結論

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

  參考文獻

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

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

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

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

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

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

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


此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 日韩三级中文字幕| 秋霞日韩久久理论电影| 国产资源视频在线观看| 久久久久久99| 8x视频在线观看| 扁豆传媒网站免费进入| 亚洲国产美女精品久久久久 | 日韩欧美中文字幕在线视频| 亚洲精品美女久久久久99| 股间白浊失禁跪趴老师| 国产日韩精品欧美一区喷水| 99久久精品免费看国产免费| 成年人免费小视频| 久久精品国产一区| 欧美成人午夜做受视频| 制服丝袜中文字幕在线观看| 香蕉在线视频播放| 国产精品亚洲综合| 99网站在线观看| 怡红院一区二区在线观看| 久久亚洲精品国产亚洲老地址| 欧美成人中文字幕dvd| 亚洲视频国产视频| 精品视频一区二区三三区四区| 夜夜偷天天爽夜夜爱| 中文字幕高清在线观看| 最近中文字幕在线中文视频| 亚洲精品成人av在线| 精品哟哟哟国产在线不卡 | 国产成人综合久久| 7777久久亚洲中文字幕| 天天躁日日躁狠狠躁av中文| 亚洲a级成人片在线观看| 特级毛片a级毛片在线播放www| 啊轻点灬大ji巴太粗太长了情侣 | 亚洲欧美综合人成野草| 精品一区二区久久久久久久网站| 国产三级理论片| 麻豆一区二区99久久久久| 国产精品久久久久一区二区三区| 97国产在线播放|