男女午夜激情_www.天堂av.com_亚洲综合小说区_亚洲欧美自拍视频_成年精品_久久www免费人成—看片_激情综合五月天_久久高潮视频_最新国产成人ab网站_国产精品卡一

機電之家資源網
單片機首頁|單片機基礎|單片機應用|單片機開發|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發
   位置: 機電之家下載站 >> 單片機技術網 >> 單片機開發 >> DSP >> 正文
培訓信息
贊助商
TMS320C3x高速數據采集的DMA實現
TMS320C3x高速數據采集的DMA實現
 更新時間:2009-6-5 9:16:53  點擊數:2
【字體: 字體顏色
<!--插入廣告JS代碼-->

摘 要:介紹了通用數字信號處理器TMS320C3x的DMA結構及其應用設計,分析了采用C3x DMA進行高速實時數據采集的硬件和軟件設計要點,成功實現了DMA高速數據采集和數據運算的并行處理,使系統具有較高的集成度和性價比。
關鍵詞:數字信號處理;直接存儲器訪問;快速傅立葉變換

  為了滿足信號處理中高速數據采集和高速運算的需要,高性能DSP(Digital signal processor)芯片往往設計有在片(On-chip)DMA(Direct memory access)控制器。采用DMA可以在不影響CPU運算能力的前提下實現高速數據的并行采集,顯著降低系統的成本。TMS320C3x作為業界第一個 32位浮點DSP系列,其性能優良而價格適中,在目前的浮點DSP中性價比極高,國內應用較為廣泛。C3x具有在片DMA功能,但是由于DMA電路調試不透明,特別是在實時數據采集的應用中故障很難捕獲和分析,故而較難調試,所以許多系統的設計并沒有充分利用其功能。如何正確利用芯片的DMA功能,對于提高系統的效率具有十分重要的意義。

1 C3x DMA結構

  目前C3x共有C30,C31和C32三款不同的芯片,除C32外,C30和C31的DMA控制器完全相同,只是C31沒有外部擴展總線。
  C3x的DMA控制器可以讀寫CPU存儲器空間內的任何地址,有自己的地址發生器,專用的DMA地址和數據總線使DMA控制器和CPU之間的沖突達到最小。DMA控制器和總線相連的結構如圖1所示。

圖1 C3x DMA總線結構

  一個DMA操作可以是成塊或單數據的搬移。當和慢速的端口或外設接口時,采用DMA可以使CPU不必過多的等待而使系統性能下降。C3x的DMA操作對于源操作數和目的操作數分別為不同的總線時具有不同的傳輸速率,實現一次源和目的地址都為片內存儲器的DMA操作最快需兩個時鐘周期。當源或目的操作數處于片外存儲器時,DMA的速度與片外存儲器有無等待狀態有關。了解影響DMA操作速度的因素,可以在系統設計時合理地配置數據空間,提高系統效率。 

2 C3x DMA設計要點

  對于高速實時數字信號處理系統,CPU往往存在高速數據采集和大運算量的雙重壓力,特別是對于并行的陣列信號處理而言,數據的高效傳遞對系統的效率影響很大。為保證DMA正確可靠,需要注意軟硬件兩個方面的設計。
2.1 硬件設計
  C30和C31的所有外部中斷為低電平有效,所以在設計中斷信號時必須注意,其對低電平持續時間長短有嚴格限制。新的TI DSP(1994)手冊上注明低電平持續時間必須為1到2個H1的下降沿,而不能多于3個H1下降沿。超過三個H1的下降沿,就有可能引起多次中斷。實踐證明,安全的有效時間為大于1個時鐘周期而小于等于2個時鐘周期。對于33 M的C3x而言,其低電平持續時間應為60 ns<INT≤120 ns。C3x提供四種同步方式:源和目的均不同步,源同步,目的同步以及源和目的均同步。對于實時數據采集而言,應采用源同步,由 AD采樣信號作為DMA中斷信號,一次AD變換觸發一次DMA讀操作,AD變換結果由DMA馬上取走,完成實時數據采集。
  除了保證中斷信號的時序要求外,由硬件決定的系統存儲器安排也必須合理,如對于C30存儲器是置于外部基本總線或是擴展總線,合理的安排可以降低DMA和CPU爭用總線的沖突。
2.2 軟件設計
  由于C30和C31的DMA中斷優先級最低,所以DMA在后臺進行數據傳輸時,軟件設計上必須充分考慮,精心安排CPU外部總線操作,否則容易丟失DMA數據。為防止發生數據丟失,在軟件設計上應充分考慮DSP的總線結構和總線訪問時序。
  (1) 對于由軟件決定的存儲器安排必須盡量優化。實時運行的核心代碼應裝載在C3x的片內存儲器,使DSP的取指操作不和DMA爭用總線。需要反復使用的數據也應放在片內,如濾波器系數表,FFT旋轉因子表等。C3x的片內存儲器支持一個時鐘周期的兩次讀寫操作,而且內部有獨立的DMA總線,所以片內的任何操作不會產生CPU和DMA的沖突。如果不能將程序或關鍵數據放入片內,對于C30,可以利用基本總線和擴展總線兩套物理上獨立的總線將程序和數據盡量錯開。 C31系統由于沒有擴展總線,在后臺有DMA工作時,必須將程序放在片內執行,容量不夠可以利用代碼重定位技術。
  (2) 總線訪問限制。對于龐大的原始數據往往只能放在片外,軟件取數操作也需考慮和DMA的總線沖突。在實時運行中,程序不能對DMA使用的外部總線采用連續不斷的訪問。如果DMA使用基本總線,那么程序對于基本總線的訪問應滿足:任意連續的外部訪問其持續時間不超過4個時鐘周期;任意連續的兩個外部訪問其間隔不小于4個時鐘周期。如圖2所示。

圖2 外部總線訪問時序要求

  為了滿足以上條件,在軟件設計時,必須限制連續讀或寫,不能采用單指令重復進行數據的讀或寫,如:
  RPTS NUMBER
  LDI R0,*AR0++ ‖ STI R0,*AR1++
  這樣的指令在NUMBER次循環時會導致DMA數據的丟失。為了在不降低代碼效率的情況下保證DMA傳輸的正確性,軟件可以根據算法的需要,在數據輸入或輸出時,采用取入一個,處理一個,得到結果后再輸出一個,典型的運算如IIR,FIR濾波等。由于CPU在運算時,主要是使用寄存器,中間結果可以暫存在片內,避免CPU長時間占用總線。對于象FFT算法,由于變換為成組進行,在變換期間,存儲器訪問十分頻繁,因而整個FFT變換必須放在片內或是和 DMA不同的總線上執行。
2.3 C32設計
  C3x中的C32為TI新近推出的浮點型,對C3x中前兩款的DMA設計進行了一些改進,除了DMA通道增加為兩個外,主要改進了兩點[1]:觸發方式和DMA優先級可編程。在C32中,DMA中斷信號的觸發方式可以通過軟件設置為電平或沿觸發,所以設計中不必滿足前述中斷信號時序要求。更為重要的改進是DMA的中斷優先級可以設置為CPU優先,DMA優先或是交換優先。由于在C30和C31中,CPU的優先級總是比DMA高,所以如果程序連續占用外部總線會造成實時數據的丟失,在C32中,這一矛盾可以通過設置DMA的優先級高于CPU來實現,如果DMA中斷有效時CPU占據著總線,CPU會加以等待,讓出總線,DMA完成后CPU才繼續執行,給軟件設計更大的自由度而不必考慮無形的DMA的沖突問題。C32最大的缺點是片內存儲器由2 K字降為512字,所以程序和數據大多只能放在片外,使用證明系統的處理能力有較大下降,只適于需要浮點精度而對運算速度要求不高的場合。

3 設計實例及性能

  作者設計的一種高速雷達信號實時并行處理系統中,充分利用了C3x的DMA功能,在不降低CPU處理能力和增加額外硬件的條件下,成功地實現了系統的高速實時數據采集。
  由于需要高精度大運算量的實時處理,所以系統采用多CPU并行處理,為了達到最大的性價比,作者采用了TI的C30和C31兩種浮點處理器作為處理單元,其中C30為主控,發揮其兩套總線的優勢,而C31用于運算,利用其價格和速度優勢。AD采樣為I,Q兩路,10 M,14 bit,對于數據采集緩存容量要求很大,最大為 2 MByte。為實現流水實時處理,在設計上必須采用乒乓緩存,共需4 MByte。通常為了隔離AD采樣和信號處理系統之間的同步關系,采用FIFO較為方便,但是大容量FIFO的價格十分昂貴,也必須采用多片擴展,需占據很大的體積,而且系統信號處理時需要對原始數據重排序,對原始數據的尋址是不連續的,而FIFO只能順序訪問,所以無法使用。如果采用雙口RAM進行設計,其有和FIFO一樣的缺點。
  利用C3x的DMA功能,就可以采用價格低廉的高速大容量SRAM,也避免了采用常規單端口RAM設計中乒乓緩存的三態切換[2],因為存儲器只有CPU訪問。任務分配模塊只要利用AD采樣脈沖作為DMA中斷控制信號,各加速CPU根據各自的DMA中斷輪流從AD變換器端口取入數據置于緩存。主控模塊只要簡單地改變DMA中斷脈沖的產生方式,就可以變換系統的任務分配方式,以實現陣列處理中的動態任務分配,故障避讓等。任務分配方式有兩種,輪流方式和連續分段方式。輪流方式為每個CPU每次獲得一個采樣值,對于M個CPU的系統而言,每個CPU等價的采樣率為1/M,而連續方式為每個 CPU各自處理連續的一段數據。如果不考慮DSP DMA處理,這兩種分配方式是等價的。但是考慮到DMA的實際響應,選用前者較為合理,因為這樣降低了DMA中斷的密度,減少了總線沖突的可能性。對于加速CPU而言,在收到DMA中斷后,馬上進行DMA操作的讀操作,否則就有可能造成數據丟失,AD數據只存在M×100 ns的時間,如果超過這個時間DMA沒有獲得控制權,數據會丟失,只要中間有一個DMA中斷沒有正確響應,那么緩沖區內后面采集的所有數據將錯位。
  利用DMA實現數據采集,雖然增加了軟件的工作量,但是由于可以使用普通大容量SRAM作為緩存,無需三態切換,乒乓緩存可以用邏輯乒乓緩存實現,即物理上為同一芯片,將其前半部和后半部分存儲空間為兩個緩存,大幅度的縮減了系統的體積,目前單個模塊上集成的CPU數目可以達到4個,從而使整個系統的模塊數大為減少。同時也省去了專門負責數據采集和分配的電路,提高了系統效率,增強了可靠性。在大幅度降低硬件成本的同時,軟件的設計難度增加,工作量增大,但是對于批量生產而言,軟件的復制并不增加多少成本,因而能獲得極大的經濟效益。和國外同類系統比較,該系統在實現同樣功能的前提下,可靠性和性價比優勢極為顯著。

基金項目:國家“八五”重點科技攻關基金資助項目。
作者簡介:王金礎,男,博士生,1972年5月生。
作者單位:王金礎(上海交通大學圖像通信與信息處理研究所 上海,200030)
     余松煜(上海交通大學圖像通信與信息處理研究所 上海,200030)

參考文獻:

1,TMS320C32 User Guide.Addendum to the TMS320-
C3x User Guide. Texas Instruments Inc, 1995.8-2~8-4
2,侯伯亨,裘雪紅.多DSP數字信號處理加速器結構及其同步控制技術.遙控遙測,1996.5~14
3,TMS320C3x User Guide. Texas Instruments Inc,1994

  • 上一篇: 基于TMS320C64xx的H.264編碼器優化
  • 下一篇: TMS320C6x DSP的軟件開發和程序調試方法
  • 發表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網友評論:(只顯示最新5條。)
    關于我們 | 聯系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發消息66821730(技術支持)點擊這里給我發消息66821730(廣告投放) 點擊這里給我發消息41031197(編輯) 點擊這里給我發消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業自行提供,該企業負責信息內容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(濱江)機電一體化學會
    中國行業電子商務100強網站

    網站經營許可證:浙B2-20080178-1
    主站蜘蛛池模板: 南陵县| 昭觉县| 江永县| 杂多县| 德保县| 泸州市| 桂平市| 罗甸县| 涞水县| 永和县| 壤塘县| 田东县| 凤凰县| 西峡县| 东源县| 鞍山市| 泾源县| 丰顺县| 崇义县| 玉树县| 尚义县| 安丘市| 科尔| 涡阳县| 莱西市| 玉门市| 巴塘县| 郓城县| 都兰县| 蓬安县| 临澧县| 湘乡市| 龙岩市| 西平县| 嫩江县| 油尖旺区| 乐业县| 淮滨县| 彭泽县| 建阳市| 宝应县|