《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > 基于TMS320C6201的多通道信號處理平臺

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

2009-07-27
作者:徐 盛 胡劍凌 陳 健

  摘 要: 在VOIP和ModemPool等許多新的應(yīng)用發(fā)展的今天,,多通道處理技術(shù)越來越受到重視,它不僅表現(xiàn)在算法研究上,,而且也表現(xiàn)在系統(tǒng)實現(xiàn)上,。結(jié)合在Smart Gateway方面的工作,,提出了一個基于TMS320C6201的多通道信號處理平臺的結(jié)構(gòu),并詳細(xì)闡述了軟硬件的組成,。
  關(guān)鍵詞: 多通道信號處理 TMS320C6201 處理平臺


  隨著因特網(wǎng)的發(fā)展,,產(chǎn)生了Voice Over IP、Fax OverIP和Modem Pool等許多新的應(yīng)用,,它們都強調(diào)多通道的數(shù)據(jù)處理,。傳統(tǒng)意義上的多通道處理是將多路的單通道處理并行安排。現(xiàn)在的DSP芯片的運算速度越來越快,,以時鐘為100MHz的TMS320C549為例,,如果用它完成G.729A的編解碼,一片可以支持5~6路,。因此,,假如我們采用高速DSP芯片來充當(dāng)信號處理的核心的話,一片高速芯片可以替代以前的幾路,,使得原有的多通道處理系統(tǒng)可以大大地簡化,,在硬件上的開銷減小。
1 TMS320C6201的結(jié)構(gòu)和性能
  由美國TI公司生產(chǎn)的TMS320C6201處理器[1]硬件資源豐富,,主要由三大部分組成:CPU,、外圍設(shè)備和存儲器。
  C6201的地址總線為32位,,所以尋址范圍達(dá)到4GB,,其存儲器空間可分為四部分:片內(nèi)程序空間(可以用作Cache)、片內(nèi)數(shù)據(jù)空間,、外部存儲空間和內(nèi)部外圍設(shè)備空間,。可通過對五個BOOTMODE引腳的設(shè)置靈活設(shè)定各空間的地址范圍,。片內(nèi)數(shù)據(jù)RAM包括四個8K×16的塊,,這些塊交織在一起,使得CPU可同時訪問數(shù)據(jù)RAM的兩個不同塊而不會發(fā)生沖突,,提高了數(shù)據(jù)并行讀寫的能力。對于較大的程序,,片內(nèi)程序RAM可當(dāng)做Cache來存儲經(jīng)常使用的代碼,,減少對片外訪問次數(shù),從而提高程序運行速度,。
  與常見的芯片不同,,C6201有八個功能單元,分為兩組,,每組包括一個乘法器(Mn)和三個算術(shù)邏輯運算單元(Dn,Sn,Ln),。它們分別進(jìn)行乘法運算,、加減運算、線性和環(huán)形地址計算以及算術(shù)邏輯運算,。因為輸入輸出端口相互獨立,,所以8個運算單元可實現(xiàn)并行處理。每組運算單元對應(yīng)一條數(shù)據(jù)路徑,,可以用作環(huán)形地址計算,。
  TMS320C6201的外圍設(shè)備包括DMA控制器、主機(jī)接口(HPI),、中斷選擇等,。DMA控制器允許數(shù)據(jù)傳輸在CPU操作的后臺進(jìn)行,因此C6201可與外部的低速設(shè)備接口而不降低CPU的吞吐量,。C6201的DMA控制器有四個獨立的可編程通道,,可以進(jìn)行四個不同的DMA操作,每個通道可根據(jù)需要傳輸8位,、16位或32位的數(shù)據(jù),。此外,還有一個輔助通道用于響應(yīng)HPI的服務(wù)請求,。主機(jī)接口使得主機(jī)設(shè)備能夠直接地訪問CPU的存儲空間,。TMS320C6201可通過引腳BOOTMODE[4:0]設(shè)置多種BOOT方式,例如直接執(zhí)行方式,,或從外部EPROM,、主機(jī)等設(shè)備裝載程序。C6201允許14個中斷,,包括Reset,、不可屏蔽中斷、串行口中斷,、定時器中斷和外部中斷,。CPU通過監(jiān)測IACK引腳判斷中斷請求,引腳INUM0~I(xiàn)NUM3標(biāo)識應(yīng)該服務(wù)的中斷矢量位置,。
  TMS320C6xx的兩個多通道帶緩存的串行口,,與TI公司生產(chǎn)的其他DSP C2x,C2xx,C5x,C54x相同,具有支持全雙工通信,,雙緩存數(shù)據(jù)寄存器結(jié)構(gòu)支持連續(xù)數(shù)據(jù)發(fā)送,,收發(fā)時鐘獨立等特點。除此之外,,它還有支持多種數(shù)據(jù)格式(8bit,、12bit、16bit、20bit,、24bit,、32bit)的傳輸,A律和μ律壓擴(kuò),,時鐘或幀同步的編程設(shè)置和極性控制,,接口方便等優(yōu)點。C62xx有兩個32位的定時器,,主要用于時鐘中斷,、DMA控制器同步、事件計數(shù)等,,它可由外部或內(nèi)部提供時鐘,。
2 平臺的硬件構(gòu)成
  由于TMS320C6201具備很強的運算能力,因而我們可以以它作為運算核心建立一個基于PCI總線的多通道信號處理的平臺,,其硬件結(jié)構(gòu)如圖1所示,。它包括輸入/輸出接口、并行的C6201芯片組,、SDRAM,、PCI總線控制和主機(jī)等五部分,每一片C6201可看作一個多通道處理子系統(tǒng),。輸入/輸出接口負(fù)責(zé)多路數(shù)據(jù)的A/D和D/A,,并且有一定的復(fù)用和解復(fù)用能力;C6201用于信號處理和數(shù)據(jù)的接收/發(fā)送(至輸入/輸出接口),;SDRAM存放接收/輸出的數(shù)據(jù)和通道上下文相關(guān)數(shù)據(jù),;PCI總線控制主機(jī)與C6201芯片組的通信;主機(jī)負(fù)責(zé)獲取處理后的數(shù)據(jù)以及發(fā)送其本身采集的數(shù)據(jù),。


  當(dāng)處理程序目標(biāo)代碼小時,,可選用Boot方式將程序全部裝入片內(nèi);而當(dāng)代碼太長時,,可選用cache模式,,將片內(nèi)程序空間設(shè)為cache,程序放在片外的SDRAM或其它外設(shè)中,。運行時程序根據(jù)CPU需要部分裝入,。在使用cache工作方式時,CPU的工作效率約為90%,。
  輸入的數(shù)據(jù)先經(jīng)解復(fù)用,,然后分別發(fā)給C6201。C6201通過DMA通道自動接收數(shù)據(jù),,并且將數(shù)據(jù)存放在SDRAM中。在接收的同時DMA也將數(shù)據(jù)輸出到輸入/輸出接口。當(dāng)一幀數(shù)據(jù)接收完畢,,外部緩存DMA產(chǎn)生一個中斷信號,,通知C6201、C6201在接收到中斷信號后,,更新其設(shè)置,,即切換輸入數(shù)據(jù)的目標(biāo)地址和輸出數(shù)據(jù)的源地址。與此同時,,C6201也啟動信號處理模塊,,對接收的數(shù)據(jù)通道逐個地進(jìn)行處理。當(dāng)然,,在處理前需將該通道上下文相關(guān)數(shù)據(jù)從片外SDRAM搬移進(jìn)片內(nèi),,處理完后再將其搬移出去。在處理當(dāng)前通道時,,DMA還將同時將下一通道的上下文相關(guān)數(shù)據(jù)搬移進(jìn)來,。如此循環(huán),直至所有通道都處理完畢,。
  SDRAM存放接收和發(fā)送數(shù)據(jù)至少需要分配兩個段,,一個段用于當(dāng)前外部緩存DMA使用,一個段用于內(nèi)部搬移DMA使用,。
  主機(jī)通過PCI總線對C6201芯片組的HPI進(jìn)行訪問,,其訪問方式設(shè)為DMA方式。之所以采用PCI總線是為了保證高速的數(shù)據(jù)傳輸,。作為PCI總線和HPI橋梁的總線控制器可以有很多選擇,,以S5933為例,由于S5933與串行EEPROM可無縫連接,,所以其初始化可在上電時由EEPROM自動載入,。它有五個基址寄存器,它們可分別服務(wù)于PCI控制器的寄存器,、JTAG測試總線控制器,、平臺的控制和狀態(tài)寄存器以及C6201的HPI。PCI總線上的數(shù)據(jù)可通過S5933的mailbox寄存器,、FIFO或直通數(shù)據(jù)通道等多種方式靈活地與平臺實現(xiàn)數(shù)據(jù)的交換,,為基于主機(jī)的調(diào)試提供了良好的硬件基礎(chǔ)。
  通過對整個系統(tǒng)的工作原理的描述中可以看出,,在信號處理算法的運算速度得到保證后,,整個系統(tǒng)的瓶頸將是C6201的DMA資源。在硬件開銷允許的情況下,,使用快速的外設(shè)會提高系統(tǒng)的性能,。
3 平臺的軟件設(shè)計
  根據(jù)上面介紹的硬件結(jié)構(gòu),,可以根據(jù)不同的需要設(shè)計相應(yīng)的系統(tǒng)軟件,以下僅介紹一種可靠性較高的軟件結(jié)構(gòu),。
  鑒于TMS320C6201的高速運算能力,,所以在每塊芯片內(nèi)部均采用線性結(jié)構(gòu),依照某種順序依次處理各通道的信號,。芯片內(nèi)部的數(shù)據(jù)RAM分割出兩塊空間當(dāng)作處理信號緩存,,即用作ping-pong緩存,一塊用作當(dāng)前處理,,一塊用于后臺數(shù)據(jù)搬移,。處理后的數(shù)據(jù)可視占用RAM的大小,適當(dāng)?shù)匕才旁谄瑑?nèi)或片外,,便于HPI訪問,。
  整個軟件采用中斷同步式控制,利用輸入信號所產(chǎn)生的中斷來觸發(fā)信號處理模塊的運行,,中斷信號可以是一幀信號的結(jié)束(或開始),。其結(jié)構(gòu)如圖2,系統(tǒng)在進(jìn)行完初始化后,,立即進(jìn)入同步信號等待,。當(dāng)檢測到中斷信號后,表明一幀信號接收的結(jié)束,,首先關(guān)閉中斷,,隨后進(jìn)行外部存儲的DMA通道設(shè)置的更新,切換輸入信號的緩存,。然后,,檢測控制內(nèi)部數(shù)據(jù)搬進(jìn)的DMA狀態(tài),如果搬移完成,,更新DMA設(shè)置,,即切換處理信號的ping-pong緩存,通知存儲器接口控制單元開始搬移下一路信號的數(shù)據(jù),。如果當(dāng)前處理的是最后一個通道,,則內(nèi)部數(shù)據(jù)搬進(jìn)DMA設(shè)置為下一幀第一通道。接著進(jìn)行信號處理模塊,,在當(dāng)前通道信號處理完成后,,首先設(shè)置內(nèi)部數(shù)據(jù)搬出DMA,將當(dāng)前通道的上下文相關(guān)數(shù)據(jù)搬移到外部存儲器中保存,,然后再檢測是否所有通道處理結(jié)束,。若沒有,則跳回內(nèi)部數(shù)據(jù)DMA狀態(tài)檢測,;若結(jié)束,,則進(jìn)行系統(tǒng)狀態(tài)的更新,。系統(tǒng)狀態(tài)更新完成后,打開中斷,,進(jìn)入中斷信號等待,。


  這樣的結(jié)構(gòu)看來不夠靈活,而且僅用到了一個中斷資源,,似乎是大材小用了,為什么不增加DSP對外界的響應(yīng)且一直打開中斷呢,?實際上這是有一定道理的,。之所以將HPI的訪問方式設(shè)置為DMA方式,而只使用一個外部中斷,。完全是為了讓DSP將主要時間花在信號處理上,,且盡可能地減少DSP被頻繁的數(shù)據(jù)輸入輸出打斷。其原因有四點:第一,,為加快信號處理算法的速度,,盡可能地對循環(huán)進(jìn)行流水線規(guī)劃,CPU運行至下次時,,由于跳轉(zhuǎn)指令的頻繁出現(xiàn),,根本無法相應(yīng)中斷;當(dāng)循環(huán)次數(shù)較大時,,無法保證中斷的及時響應(yīng),。第二,如果將循環(huán)改為可中斷式的,,勢必造成寄存器資源使用過大,,代碼的效率也將大幅度下降。第三,,匯編語言編寫的程序大多都在不同程度對CPU的流水線時序有要求,,即寄存器對流水線時序敏感。若任意時間均要響應(yīng)中斷的話,,必將造成軟件產(chǎn)生不可預(yù)測的錯誤,,出現(xiàn)混亂。第四,,由于匯編語言編寫的程序代碼效率一般比優(yōu)化后的C語言高50%,,所以為提高運算速度,核心算法都用匯編語言編寫,,一些寄存器的值都與C語言模塊中的不同[2],,如B14(DP)、A15(FP),;而高層調(diào)用和中斷服務(wù)程序一般都用C語言編寫,,如果在任意時刻響應(yīng)中斷,,很容易造成C語言中斷服務(wù)程序的變量無法正確訪問,出現(xiàn)致命錯誤,。綜上所述,,中斷同步式結(jié)構(gòu)穩(wěn)健性更強。
  多通道處理中還應(yīng)注意一個問題,,即全局指針的重定向[3],。因為高層調(diào)用用C編寫,以及通道數(shù)不確定等因素,,一般情況下,,很難保證同一通道的上下文相關(guān)數(shù)據(jù)每次均被放在同樣的內(nèi)存位置上,因而上一幀時保存的全局指針變量的數(shù)值對當(dāng)前幀不一定適用,,所以對全局指針的重定向是必要的,。
  以上分析了C6201芯片組的工作方式,而主機(jī)與它們的通信是通過HPI對C6201存儲器訪問來完成的,。在C6201片內(nèi)RAM開出一段數(shù)據(jù)空間作為系統(tǒng)信息區(qū),,當(dāng)C6201完成了一次多通道處理后,便在系統(tǒng)信息區(qū)中設(shè)置幀處理結(jié)束標(biāo)志,,并將處理后數(shù)據(jù)的存放地址和主機(jī)下載數(shù)據(jù)的存放地址寫入系統(tǒng)信息區(qū)的相應(yīng)位置,。主機(jī)通過對各個C6201系統(tǒng)信息區(qū)的訪問了解其工作狀況,當(dāng)發(fā)現(xiàn)某一塊DSP一幀處理完成后,,立即清除幀處理結(jié)束標(biāo)志,,并從系統(tǒng)信息區(qū)中給出的處理后數(shù)據(jù)的存放地址讀取數(shù)據(jù)到硬盤(或其他設(shè)備)進(jìn)行存儲(或處理),而且將待處理的數(shù)據(jù)搬移至主機(jī)下載數(shù)據(jù)的存放地址,,以便C6201下一幀處理使用,。當(dāng)然,主機(jī)除了數(shù)據(jù)搬移和控制功能外,,還可根據(jù)實際的運算能力和工作負(fù)荷,,再增添一些功能。
4 展望
  Radysis,、Bluewave等公司基于C6000系列的多通道處理設(shè)備采用了與上述平臺相似的結(jié)構(gòu),。以VOIP的網(wǎng)關(guān)為例,本地電話的語音信號先傳送到交換局,,局內(nèi)的復(fù)用設(shè)備(對應(yīng)平臺的輸入/輸出接口)根據(jù)C6201的處理能力分配相應(yīng)的話路,。C6201對原始語音信號進(jìn)行壓縮,壓縮后的數(shù)據(jù)通過主機(jī)讀取到網(wǎng)絡(luò)處理區(qū),,交給網(wǎng)絡(luò)處理設(shè)備進(jìn)行打包處理,,最后以IP方式傳送到目的端。另一方面,,網(wǎng)絡(luò)處理設(shè)備拆包后的壓縮碼流通過主機(jī)傳送到C6201控制的局部存儲區(qū)中,,經(jīng)解壓后由DMA發(fā)送至復(fù)用設(shè)備,,最終由交換局送至本地電話。
  除了VOIP的智能網(wǎng)關(guān)和Modem Pool外,,多通道處理的概念還可以延伸至雷達(dá)處理,、多路數(shù)據(jù)采集、多路圖象監(jiān)控[4]等更為廣泛的領(lǐng)域中,。在多媒體和因特網(wǎng)技術(shù)日新月異的今天,,基于相同類型信號的多通道處理可進(jìn)一步拓展為基于不同類型信號的多通道處理,因而研究多通道信號處理平臺有著很大的實際意義,,它將成為新一代智能化多媒體終端的雛形,。
參考文獻(xiàn)
1 TMS320C62x/67x CPU and Instruction Set.Texas Instruments
2 TMS320C6x Optimizing C Compiler.Texas Instruments
3 DSP Target-Side Design of a Multichannel/ Algorithm System on the TMS320C6000.Texas Instruments
4 徐 盛,陳 健.TMS320C6201在圖像處理中的應(yīng)用.電子技術(shù)應(yīng)用,1999;25(1)

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章,、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容,、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118,;郵箱:[email protected],。