HPI方式自舉在TMS320VC5402 DSP芯片上的實(shí)現(xiàn)
當(dāng)前,數(shù)字信號(hào)處理器(DSP)芯片以其強(qiáng)大的運(yùn)算能力在通信、電子、圖像處理等各個(gè)領(lǐng)域得到了廣泛的應(yīng)用。使用DSP的系統(tǒng)可以按處理器使用的數(shù)目分為單處理器系統(tǒng)和多處理器系統(tǒng)。單DSP的系統(tǒng)盡管結(jié)構(gòu)簡單,但系統(tǒng)的功能將不可避免地有所限制。由于DSP的控制功能不是非常強(qiáng)大,在應(yīng)用中往往不得不把DSP作為目標(biāo)系統(tǒng)專門負(fù)責(zé)復(fù)雜的運(yùn)算,而另外使用一個(gè)主機(jī)(PC機(jī)或是單片機(jī))對(duì)整個(gè)系統(tǒng)的運(yùn)行實(shí)行控制。所以,在使用DSP的多處理器系統(tǒng)中,主機(jī)(單片機(jī)、PC機(jī)、另一個(gè)DSP芯片)與目標(biāo)系統(tǒng) DSP的數(shù)據(jù)交換就成為應(yīng)用系統(tǒng)設(shè)計(jì)中必須考慮的重要問題。
本文引用地址:http://m.butianyuan.cn/article/152580.htm1 主機(jī)接口的傳統(tǒng)解決方案
解決主機(jī)與目標(biāo)系統(tǒng)的數(shù)據(jù)交換是一個(gè)非常復(fù)雜的問題。傳統(tǒng)的方式是采用 DMA(Direct Memory Access)或全局存儲(chǔ)器(Global Memory)完成多機(jī)系統(tǒng)中的數(shù)據(jù)共享。在DMA方式下,讀寫共享內(nèi)存必須要求其它處理器處于停止工作的狀態(tài),所以DMA共享存儲(chǔ)器的方式往往不為人所用。全局存儲(chǔ)器是多個(gè)處理器共享的存儲(chǔ)器。在使用全局存儲(chǔ)器的應(yīng)用系統(tǒng)中,DSP的地址空間被分成局部塊(Local Section)和全局塊(Global Section)。局部塊用于完成處理器自己的工作,而全局塊則用來完成與其它處理器的通信工作。在TMS320C5x器件中,使用全局存儲(chǔ)器分配寄存器GReg完成對(duì)全局內(nèi)存的管理工作。GReg指定部分DSP內(nèi)存為全局內(nèi)存。比如,TMS320C5x器件能夠分配全局?jǐn)?shù)據(jù)內(nèi)存空間,并通過BR(Bus Request)和 hcs控制信號(hào)實(shí)現(xiàn)與該內(nèi)存的通信。當(dāng)需要尋址全局內(nèi)存空間時(shí),BR和hcs信號(hào)變低電平。于是外部邏輯進(jìn)行全局內(nèi)存控制權(quán)的裁決,裁決的結(jié)果將通過選通信號(hào)通知某個(gè)TMS320C5x,從而使該DSP現(xiàn)在就擁有對(duì)全局內(nèi)存的控制權(quán)。顯然,使用全局內(nèi)存的方式來完成多DSP的共享數(shù)據(jù)通信是非常方便的。但是,應(yīng)用系統(tǒng)往往由單片機(jī)作為主機(jī),DSP作為目標(biāo)系統(tǒng)構(gòu)成。由于當(dāng)前使用最多的單片機(jī)往往是8位機(jī),使用16位機(jī)的共享內(nèi)存完成主機(jī)與DSP的數(shù)據(jù)交換不是處理太復(fù)雜就是資源利用不充分。為了解決DSP與低檔 8位主機(jī)的數(shù)據(jù)交換問題,TI公司在TMS320C54x系列中使用了HPI接口。HPI將以往一些需片外實(shí)現(xiàn)的功能集成在片內(nèi),簡化了與主機(jī)的連接,同時(shí)主機(jī)可以達(dá)到很高的訪問速度。該HPI端口在TI TMS320C6x系列的器件中也得到了保持,且功能有所增強(qiáng)。
TMS320VC5402是TI公司的54X系列定點(diǎn)DSP,具有低功耗、高性能的特點(diǎn)。
CPU 增強(qiáng)的多總線結(jié)構(gòu),三條獨(dú)立的16bit數(shù)據(jù)存儲(chǔ)器總線和一條程序存儲(chǔ)器總線;40bit運(yùn)算邏輯單元(ALU),包括一個(gè)40bit的桶形移位器和兩個(gè)獨(dú)立的40bit累加器,17bit×17bit并行乘法器;連接一個(gè)40bit的專用加法器,可用來進(jìn)行非流水單周期乘/加(MAC)運(yùn)算;比較、選擇和存儲(chǔ)單元(CSSU)用于Viterbi運(yùn)算器的加/比較選擇;指數(shù)編碼器在一個(gè)周期里計(jì)算一個(gè)40bit累加器的指數(shù)值;兩個(gè)地址發(fā)生器中有八個(gè)輔助寄存器和兩個(gè)輔助寄存器運(yùn)算單元(ARAUs);數(shù)據(jù)總線具有總線保持特性。
存儲(chǔ)器 擴(kuò)展地址模式可最大尋址到1M×16bit外部程序空間,4K×16bit片上ROM,16K×16bit雙訪問片上RAM。
指令集 支持單指令循環(huán)和塊循環(huán),存儲(chǔ)塊移動(dòng)指令提供了高效的程序和數(shù)據(jù)存儲(chǔ)器管理,支持32bit長字操作數(shù)指令,支持兩個(gè)或三個(gè)操作數(shù)讀指令,支持并行存儲(chǔ)和并行加載的算術(shù)指令、條件存儲(chǔ)指令和中斷快速返回,支持定點(diǎn)DSP C語言編譯器。
片上硬件資源 軟件可編程等待狀態(tài)發(fā)生器和可編程存儲(chǔ)單元轉(zhuǎn)換,連接內(nèi)部振蕩器或外部時(shí)鐘源的鎖相環(huán)(PLL)時(shí)鐘發(fā)生器,兩個(gè)多通道緩沖串口(McBSPs),增強(qiáng)型8bit并行主機(jī)接口(HPI8),兩個(gè)16bit定時(shí)器,6通道直接存儲(chǔ)器訪問(DMA)控制器。
電源 低功耗,工作電源有3.3V和1.8V(內(nèi)核),用節(jié)電模式的IDLE1、IDLE2及IDLE3指令做功率控制,可禁止CLKOUT信號(hào)。
速度 在3.3V供電(1.8V核心電壓)下單周期定點(diǎn)指令的執(zhí)行周期為10ns(100MIPS)。
仿真 符合IEEE1149.1邊界掃描邏輯標(biāo)準(zhǔn)的片內(nèi)掃描仿真邏輯接口。
TMS320C54x系列DSP芯片中的HPI,能夠順序傳送或隨機(jī)傳送數(shù)據(jù),產(chǎn)生HOST中斷和C54x中斷,接口靈活,并可通過DMA總線訪問片內(nèi)RAM。當(dāng)TMS320 C54X與主機(jī)(或主設(shè)備)交換信息時(shí),HPI是主機(jī)的一個(gè)外圍設(shè)備。HPI有8根數(shù)據(jù)線HD(0~7),在TMS320C54x與HOST傳送數(shù)據(jù)時(shí),HPI能自動(dòng)將外部接口傳來的連續(xù)數(shù)據(jù)組合成16位數(shù)后傳送給DSP。如果HOST和DSP競爭同一個(gè)地址,則HOST優(yōu)先,DSP等待一個(gè)HPI周期。
TMS320C54x系列發(fā)展到TMS320VC5402的時(shí)候,其HPI已經(jīng)得到了增強(qiáng),被稱為HPI-8。和TMS320C54x系列前幾款芯片中的標(biāo)準(zhǔn)HPI相比,HPI-8在幾個(gè)方面有所不同,見表1。
HPI-8的使用是通過對(duì)HPIA、HPIC和HPID三個(gè)寄存器賦值實(shí)現(xiàn)的。HPIA是地址寄存器,HPIC是控制寄存器,而HPID是數(shù)據(jù)寄存器。簡單地說,HOST通過外部引腳HCNTL0和HCNTL1選中不同的寄存器,則當(dāng)前發(fā)送的8位數(shù)據(jù)就送到該寄存器。在使用上,由于HPIC是16位寄存器,而HPI-8是8位的數(shù)據(jù)寬度,所以在HOST向HPIC寫數(shù)據(jù)時(shí),需要發(fā)送兩個(gè)一樣的8位數(shù)據(jù)。而地址寄存器HPIA選擇后,直接向它寫數(shù)據(jù)就可以了,但是要注意MSB和LSB的順序。另外,HPIA具有自動(dòng)增長的功能,在每寫入一個(gè)數(shù)據(jù)前和每寫入一個(gè)數(shù)據(jù)后,HPIA會(huì)自動(dòng)加1。這樣,如果使能了該功能,只需設(shè)定一次HPIA即可實(shí)現(xiàn)連續(xù)數(shù)據(jù)塊的寫入和讀出。數(shù)據(jù)寄存器HPID,嚴(yán)格說應(yīng)該叫做數(shù)據(jù)緩沖寄存器,因?yàn)樽罱K數(shù)據(jù)是要寫到片內(nèi)RAM的。只是在實(shí)現(xiàn)上,數(shù)據(jù)首先從HOST發(fā)到HPID中,然后根據(jù)HPIA指定的地址,HPID中的數(shù)據(jù)再寫到片內(nèi)RAM的地址中。不過對(duì)用戶而言,該過程是透明的。
評(píng)論