<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于TMS320C6201的多通道信號處理平臺

基于TMS320C6201的多通道信號處理平臺

作者: 時(shí)間:2006-05-07 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:在VOIP和ModemPool等許多新的應用發(fā)展的今天,多通道處理技術(shù)越來(lái)越受到重視,它不僅表現在算法研究上,而且也表現在系統實(shí)現上。結合在Smart Gateway方面的工作,提出了一個(gè)基于TMS320C6201的多通道信號處理平臺的結構,并詳細闡述了軟硬件的組成。

本文引用地址:http://dyxdggzs.com/article/242347.htm

關(guān)鍵詞:多通道信號處理 TMS320C6201 處理平臺

隨著(zhù)因特網(wǎng)的發(fā)展,產(chǎn)生了Voice Over IP、Fax OverIP和Modem Pool等許多新的應用,它們都強調多通道的數據處理。傳統意義上的多通道處理是將多路的單通道處理并行安排?,F在的DSP芯片的運算速度越來(lái)越快,以時(shí)鐘為100MHz的TMS320C549為例,如果用它完成G.729A的編解碼,一片可以支持5~6路。因此,假如我們采用高速DSP芯片來(lái)充當信號處理的核心的話(huà),一片高速芯片可以替代以前的幾路,使得原有的多通道處理系統可以大大地簡(jiǎn)化,在硬件上的開(kāi)銷(xiāo)減小。

1 TMS320C6201的結構和性能

由美國TI公司生產(chǎn)的TMS320C6201處理器[1]硬件資源豐富,主要由三大部分組成:CPU、外圍設備和存儲器。

C6201的地址總線(xiàn)為32位,所以尋址范圍達到4GB,其存儲器空間可分為四部分:片內程序空間可以用作Cache、片內數據空間、外部存儲空間和內部外圍設備空間??赏ㄟ^(guò)對五個(gè)BOOTMODE引腳的設置靈活設定各空間的地址范圍。片內數據RAM包括四個(gè)8K×16的塊,這些塊交織在一起,使得CPU可同時(shí)訪(fǎng)問(wèn)數據RAM的兩個(gè)不同塊而不會(huì )發(fā)生沖突,提高了數據并行讀寫(xiě)的能力。對于較大的程序,片內程序RAM可當做Cache來(lái)存儲經(jīng)常使用的代碼,減少對片外訪(fǎng)問(wèn)次數,從而提高程序運行速度。

與常見(jiàn)的芯片不同,C6201有八個(gè)功能單元,分為兩組,每組包括一個(gè)乘法器Mn和三個(gè)算術(shù)邏輯運算單元DnSnLn。它們分別進(jìn)行乘法運算、加減運算、線(xiàn)性和環(huán)形地址計算以及算術(shù)邏輯運算。因為輸入輸出端口相互獨立,所以8個(gè)運算單元可實(shí)現并行處理。每組運算單元對應一條數據路徑,可以用作環(huán)形地址計算。

TMS320C6201的外圍設備包括DMA控制器、主機接口HPI、中斷選擇等。DMA控制器允許數據傳輸在CPU操作的后臺進(jìn)行,因此C6201可與外部的低速設備接口而不降低CPU的吞吐量。C6201的DMA控制器有四個(gè)獨立的可編程通道,可以進(jìn)行四個(gè)不同的DMA操作,每個(gè)通道可根據需要傳輸8位、16位或32位的數據。此外,還有一個(gè)輔助通道用于響應HPI的服務(wù)請求。主機接口使得主機設備能夠直接地訪(fǎng)問(wèn)CPU的存儲空間。TMS320C6201可通過(guò)引腳BOOTMODE40設置多種BOOT方式,例如直接執行方式,或從外部EPROM、主機等設備裝載程序。C6201允許14個(gè)中斷,包括Reset、不可屏蔽中斷、串行口中斷、定時(shí)器中斷和外部中斷。CPU通過(guò)監測IACK引腳判斷中斷請求,引腳INUM0~INUM3標識應該服務(wù)的中斷矢量位置。

TMS320C6xx的兩個(gè)多通道帶緩存的串行口,與TI公司生產(chǎn)的其他DSP C2xC2xxC5xC54x相同,具有支持全雙工通信,雙緩存數據寄存器結構支持連續數據發(fā)送,收發(fā)時(shí)鐘獨立等特點(diǎn)。除此之外,它還有支持多種數據格式8bit、12bit、16bit、20bit、24bit、32bit的傳輸,A律和μ律壓擴,時(shí)鐘或幀同步的編程設置和極性控制,接口方便等優(yōu)點(diǎn)。C62xx有兩個(gè)32位的定時(shí)器,主要用于時(shí)鐘中斷、DMA控制器同步、事件計數等,它可由外部或內部提供時(shí)鐘。

2 平臺的硬件構成

由于TMS320C6201具備很強的運算能力,因而我們可以以它作為運算核心建立一個(gè)基于PCI總線(xiàn)的多通道信號處理的平臺,其硬件結構如圖1所示。它包括輸入/輸出接口、并行的C6201芯片組、SDRAM、PCI總線(xiàn)控制和主機等五部分,每一片C6201可看作一個(gè)多通道處理子系統。輸入/輸出接口負責多路數據的A/D和D/A,并且有一定的復用和解復用能力;C6201用于信號處理和數據的接收/發(fā)送(至輸入/輸出接口);SDRAM存放接收/輸出的數據和通道上下文相關(guān)數據;PCI總線(xiàn)控制主機與C6201芯片組的通信;主機負責獲取處理后的數據以及發(fā)送其本身采集的數據。

當處理程序目標代碼小時(shí),可選用Boot方式將程序全部裝入片內;而當代碼太長(cháng)時(shí),可選用cache模式,將片內程序空間設為cache,程序放在片外的SDRAM或其它外設中。運行時(shí)程序根據CPU需要部分裝入。在使用cache工作方式時(shí),CPU的工作效率約為90%。

輸入的數據先經(jīng)解復用,然后分別發(fā)給C6201。C6201通過(guò)DMA通道自動(dòng)接收數據,并且將數據存放在SDRAM中。在接收的同時(shí)DMA也將數據輸出到輸入/輸出接口。當一幀數據接收完畢,外部緩存DMA產(chǎn)生一個(gè)中斷信號,通知C6201、C6201在接收到中斷信號后,更新其設置,即切換輸入數據的目標地址和輸出數據的源地址。與此同時(shí),C6201也啟動(dòng)信號處理模塊,對接收的數據通道逐個(gè)地進(jìn)行處理。當然,在處理前需將該通道上下文相關(guān)數據從片外SDRAM搬移進(jìn)片內,處理完后再將其搬移出去。在處理當前通道時(shí),DMA還將同時(shí)將下一通道的上下文相關(guān)數據搬移進(jìn)來(lái)。如此循環(huán),直至所有通道都處理完畢。

SDRAM存放接收和發(fā)送數據至少需要分配兩個(gè)段,一個(gè)段用于當前外部緩存DMA使用,一個(gè)段用于內部搬移DMA使用。

主機通過(guò)PCI總線(xiàn)對C6201芯片組的HPI進(jìn)行訪(fǎng)問(wèn),其訪(fǎng)問(wèn)方式設為DMA方式。之所以采用PCI總線(xiàn)是為了保證高速的數據傳輸。作為PCI總線(xiàn)和HPI橋梁的總線(xiàn)控制器可以有很多選擇,以S5933為例,由于S5933與串行EEPROM可無(wú)縫連接,所以其初始化可在上電時(shí)由EEPROM自動(dòng)載入。它有五個(gè)基址寄存器,它們可分別服務(wù)于PCI控制器的寄存器、JTAG測試總線(xiàn)控制器、平臺的控制和狀態(tài)寄存器以及C6201的HPI。PCI總線(xiàn)上的數據可通過(guò)S5933的mailbox寄存器、FIFO或直通數據通道等多種方式靈活地與平臺實(shí)現數據的交換,為基于主機的調試提供了良好的硬件基礎。

通過(guò)對整個(gè)系統的工作原理的描述中可以看出,在信號處理算法的運算速度得到保證后,整個(gè)系統的瓶頸將是C6201的DMA資源。在硬件開(kāi)銷(xiāo)允許的情況下,使用快速的外設會(huì )提高系統的性能。

3 平臺的軟件設計

根據上面介紹的硬件結構,可以根據不同的需要設計相應的系統軟件,以下僅介紹一種可靠性較高的軟件結構。

鑒于TMS320C6201的高速運算能力,所以在每塊芯片內部均采用線(xiàn)性結構,依照某種順序依次處理各通道的信號。芯片內部的數據RAM分割出兩塊空間當作處理信號緩存,即用作ping-pong緩存,一塊用作當前處理,一塊用于后臺數據搬移。處理后的數據可視占用RAM的大小,適當地安排在片內或片外,便于HPI訪(fǎng)問(wèn)。

整個(gè)軟件采用中斷同步式控制,利用輸入信號所產(chǎn)生的中斷來(lái)觸發(fā)信號處理模塊的運行,中斷信號可以是一幀信號的結束(或開(kāi)始)。其結構如圖2,系統在進(jìn)行完初始化后,立即進(jìn)入同步信號等待。當檢測到中斷信號后,表明一幀信號接收的結束,首先關(guān)閉中斷,隨后進(jìn)行外部存儲的DMA通道設置的更新,切換輸入信號的緩存。然后,檢測控制內部數據搬進(jìn)的DMA狀態(tài),如果搬移完成,更新DMA設置,即切換處理信號的ping-pong緩存,通知存儲器接口控制單元開(kāi)始搬移下一路信號的數據。如果當前處理的是最后一個(gè)通道,則內部數據搬進(jìn)DMA設置為下一幀第一通道。接著(zhù)進(jìn)行信號處理模塊,在當前通道信號處理完成后,首先設置內部數據搬出DMA,將當前通道的上下文相關(guān)數據搬移到外部存儲器中保存,然后再檢測是否所有通道處理結束。若沒(méi)有,則跳回內部數據DMA狀態(tài)檢測;若結束,則進(jìn)行系統狀態(tài)的更新。系統狀態(tài)更新完成后,打開(kāi)中斷,進(jìn)入中斷信號等待。

這樣的結構看來(lái)不夠靈活,而且僅用到了一個(gè)中斷資源,似乎是大材小用了,為什么不增加DSP對外界的響應且一直打開(kāi)中斷呢?實(shí)際上這是有一定道理的。之所以將HPI的訪(fǎng)問(wèn)方式設置為DMA方式,而只使用一個(gè)外部中斷。完全是為了讓?zhuān)模樱袑⒅饕獣r(shí)間花在信號處理上,且盡可能地減少DSP被頻繁的數據輸入輸出打斷。其原因有四點(diǎn):第一,為加快信號處理算法的速度,盡可能地對循環(huán)進(jìn)行流水線(xiàn)規劃,CPU運行至下次時(shí),由于跳轉指令的頻繁出現,根本無(wú)法相應中斷;當循環(huán)次數較大時(shí),無(wú)法保證中斷的及時(shí)響應。第二,如果將循環(huán)改為可中斷式的,勢必造成寄存器資源使用過(guò)大,代碼的效率也將大幅度下降。第三,匯編語(yǔ)言編寫(xiě)的程序大多都在不同程度對CPU的流水線(xiàn)時(shí)序有要求,即寄存器對流水線(xiàn)時(shí)序敏感。若任意時(shí)間均要響應中斷的話(huà),必將造成軟件產(chǎn)生不可預測的錯誤,出現混亂。第四,由于匯編語(yǔ)言編寫(xiě)的程序代碼效率一般比優(yōu)化后的C語(yǔ)言高50%,所以為提高運算速度,核心算法都用匯編語(yǔ)言編寫(xiě),一些寄存器的值都與C語(yǔ)言模塊中的不同[2],如B14(DP)、A15(FP);而高層調用和中斷服務(wù)程序一般都用C語(yǔ)言編寫(xiě),如果在任意時(shí)刻響應中斷,很容易造成C語(yǔ)言中斷服務(wù)程序的變量無(wú)法正確訪(fǎng)問(wèn),出現致命錯誤。綜上所述,中斷同步式結構穩健性更強。

在多通道處理中還應注意一個(gè)問(wèn)題,即全局指針的重定向3。因為高層調用用C編寫(xiě),以及通道數不確定等因素,一般情況下,很難保證同一通道的上下文相關(guān)數據每次均被放在同樣的內存位置上,因而上一幀時(shí)保存的全局指針變量的數值對當前幀不一定適用,所以對全局指針的重定向是必要的。

以上分析了C6201芯片組的工作方式,而主機與它們的通信是通過(guò)HPI對C6201存儲器訪(fǎng)問(wèn)來(lái)完成的。在C6201片內RAM開(kāi)出一段數據空間作為系統信息區,當C6201完成了一次多通道處理后,便在系統信息區中設置幀處理結束標志,并將處理后數據的存放地址和主機下載數據的存放地址寫(xiě)入系統信息區的相應位置。主機通過(guò)對各個(gè)C6201系統信息區的訪(fǎng)問(wèn)了解其工作狀況,當發(fā)現某一塊DSP一幀處理完成后,立即清除幀處理結束標志,并從系統信息區中給出的處理后數據的存放地址讀取數據到硬盤(pán)(或其他設備)進(jìn)行存儲(或處理),而且將待處理的數據搬移至主機下載數據的存放地址,以便C6201下一幀處理使用。當然,主機除了數據搬移和控制功能外,還可根據實(shí)際的運算能力和工作負荷,再增添一些功能。

4 展望

Radysis、Bluewave等公司基于C6000系列的多通道處理設備采用了與上述平臺相似的結構。以VOIP的網(wǎng)關(guān)為例,本地電話(huà)的語(yǔ)音信號先傳送到交換局,局內的復用設備(對應平臺的輸入/輸出接口)根據C6201的處理能力分配相應的話(huà)路。C6201對原始語(yǔ)音信號進(jìn)行壓縮,壓縮后的數據通過(guò)主機讀取到網(wǎng)絡(luò )處理區,交給網(wǎng)絡(luò )處理設備進(jìn)行打包處理,最后以IP方式傳送到目的端。另一方面,網(wǎng)絡(luò )處理設備拆包后的壓縮碼流通過(guò)主機傳送到C6201控制的局部存儲區中,經(jīng)解壓后由DMA發(fā)送至復用設備,最終由交換局送至本地電話(huà)。

除了VOIP的智能網(wǎng)關(guān)和Modem Pool外,多通道處理的概念還可以延伸至雷達處理、多路數據采集、多路圖象監控4等更為廣泛的領(lǐng)域中。在多媒體和因特網(wǎng)技術(shù)日新月異的今天,基于相同類(lèi)型信號的多通道處理可進(jìn)一步拓展為基于不同類(lèi)型信號的多通道處理,因而研究多通道信號處理平臺有著(zhù)很大的實(shí)際意義,它將成為新一代智能化多媒體終端的雛形。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>