PC/104與TMS320VC5402 HPI口通信的方案
TMS320VC5402(以下簡(jiǎn)稱(chēng)C5402)是德州儀器公司(TI)推出的性?xún)r(jià)比極高的定點(diǎn)數(shù)字信號(hào)處理器(DSP)。采用改進(jìn)的Harvard處理結(jié)構(gòu)和指令流水線操作,計(jì)算處理速度很高(100MIPS),指令周期可達(dá)10ns;片內(nèi)提供16K字的RAM,用作程序和數(shù)據(jù)存儲(chǔ),其最大可擴(kuò)展尋址空間為1M字;主機(jī)接口(HPI)是具有強(qiáng)大功能的智能外設(shè),提供了DSP和外部處理器的通信接口。掌握HPI的原理和使用方法,可以使硬件的設(shè)計(jì)更加簡(jiǎn)單靈活。DSP在通過(guò)HPI口和主機(jī)通信的過(guò)程中完全沒(méi)有軟件和硬件開(kāi)銷(xiāo),由DSP自身的硬件協(xié)調(diào)沖突,不會(huì)打斷DSP正常程序的運(yùn)行。在HPI通信方式下,DSP的片內(nèi)存儲(chǔ)器對(duì)外界完全透明,由主機(jī)訪問(wèn)HPI的地址和數(shù)據(jù)寄存器便可完成對(duì)DSP片內(nèi)存儲(chǔ)器的讀/寫(xiě)。 本文立足于實(shí)驗(yàn)經(jīng)驗(yàn),以TMS320VC5402與PC/104總線為例,介紹基于HPI口的硬件接口及軟件實(shí)現(xiàn)。
1 TMS320VC5402 HPI口簡(jiǎn)介
主機(jī)接口HPI(Host Port Interface)是TMS320C5000系列定點(diǎn)芯片內(nèi)部具有的一種接口部件,主要用于DSP與其它總線或CPU進(jìn)行連接。TI的C54xx系列都提供了8位或16位的增強(qiáng)型HPI接口,在此以C5402增強(qiáng)型8位HPI接口為例進(jìn)行詳細(xì)介紹。
C5402的HPI口由一個(gè)8位數(shù)據(jù)總線和用于設(shè)備和控制接口的控制信號(hào)線組成,HPI接口通過(guò)HPI控制寄存器HPIC、地址寄存器HPIA、數(shù)據(jù)寄存器HPID和HPI內(nèi)存塊,實(shí)現(xiàn)與主機(jī)之間的通信。其主要特點(diǎn)在于接口所需外圍硬件很少,很容易與各種主機(jī)相連,且僅需要很少甚至不需要外加接口邏輯。引腳功能如表1所示。
表1 HPI引腳的名稱(chēng)及功能 HPI引腳接至主機(jī)引腳狀 態(tài)信號(hào)功能 HD0HD7 數(shù)據(jù)總線 I/O/Z HPI雙向并行三態(tài)數(shù)據(jù)總線。當(dāng)不傳送數(shù)據(jù)(/HSC或/HDSx=1)或EMU1//OFF=0(切斷所有輸出)時(shí),HD7(MSB)~HD0(LSB)均處于高阻態(tài)。 /HAS 地址鎖存使能(ALE)或地址選通輸入信號(hào)引腳,不用則接高電平 I 地址選通輸入信號(hào)。如果主機(jī)的地址和數(shù)據(jù)是一條多路總線,則/HAS連到主機(jī)的ALE引腳;如果主機(jī)的地址和數(shù)據(jù)是分開(kāi)的,就將/HAS接高電平。 /HCS 地址或控制線 I 片選信號(hào)。作為HPI的使能輸入,主機(jī)在對(duì)HPI訪問(wèn)時(shí)信號(hào)/HCS要保持低電平。 HBIL 地址或控制線 I 字節(jié)輸入識(shí)別信號(hào)。HBIL為低時(shí)讀/寫(xiě)第一個(gè)字節(jié),為高時(shí)讀/寫(xiě)第二個(gè)字節(jié)。HBIL和HPI控制寄存器(HPIC)中的BOB位配合使用。 HCNTL0/1 地址或控制線 I 主機(jī)控制信號(hào)。選擇主機(jī)所訪問(wèn)的是哪個(gè)寄存器:地址寄存器HPIA、數(shù)據(jù)寄存器HPID、控制寄存器HPIC。
/HDS1/2 讀/寫(xiě)、數(shù)據(jù)選通輸入信號(hào)引腳 I 數(shù)據(jù)選通輸入。在主機(jī)訪問(wèn)期間控制HPI數(shù)據(jù)的傳輸。
/HINT 主機(jī)中斷輸入 O/Z 主機(jī)中斷輸入。由控制寄存器HPIC中的HINT位控制。當(dāng)C54x復(fù)位時(shí)為高電平,EMU1//OFF低電平時(shí)為高阻態(tài)。
HRDY 異步準(zhǔn)備好信號(hào)引腳 O/Z HPI接口準(zhǔn)備好信號(hào)輸出。HRDY為高說(shuō)明HPI準(zhǔn)備好數(shù)據(jù)傳送(主機(jī)可進(jìn)行數(shù)據(jù)傳輸),為低表示HPI接口忙(主機(jī)不可傳輸數(shù)據(jù)),正在進(jìn)行上次傳輸?shù)膬?nèi)部操作。 HR//W 讀寫(xiě)選通信號(hào)引腳或地址線 I 讀/寫(xiě)選通信號(hào)輸入端。在主機(jī)訪問(wèn)期間控制數(shù)據(jù)的傳輸方向。高電平表示主機(jī)讀HPI,低電平表示寫(xiě)HPI。 HPIENA VDD I HPI模塊選擇輸入。信號(hào)必須和VDD聯(lián)系起來(lái),保證選擇HPI。如果輸入為開(kāi)或接地,HPI模塊將不會(huì)被選擇。 HPI是8位的數(shù)據(jù)總線接口,由于C5402是16位的,所以與主機(jī)通信的數(shù)據(jù)都是由兩個(gè)連續(xù)的字節(jié)組成,并且由HBIL引腳指示正在傳輸?shù)氖堑谝粋€(gè)還是第二個(gè)字節(jié)。主機(jī)使用HCNTL0/1指定所訪問(wèn)的是HPI控制寄存器HPIC或HPI數(shù)據(jù)寄存器HPID或HPI地址寄存器HPIA,也可以用地址自動(dòng)增加的方式訪問(wèn)數(shù)據(jù)寄存器HPID,具體方式如表2所示。
表2 HCNTL0/1功能選擇 HNTL0 HCNTL1 說(shuō) 明 0 0 主機(jī)可以讀寫(xiě)HPI的控制寄存器HPIC。
0 1 主機(jī)可以讀寫(xiě)HPI的數(shù)據(jù)寄存器HPID。每次讀后HPIA加1,每次寫(xiě)前HPIA加1。
1 0 主機(jī)可以讀寫(xiě)HPI的地址寄存器HPIA。
1 1 主機(jī)可以讀寫(xiě)HPI的數(shù)據(jù)寄存器HPID。對(duì)HPI口的操作,HPIA不受影響。
2 系統(tǒng)的硬件設(shè)計(jì)方案
整個(gè)硬件系統(tǒng)由DSP、EPM7128S、TPS73HD301、SST39VF400A等組成。DSP的主要任務(wù)是將經(jīng)放大和解調(diào)后的無(wú)線電修正通道視頻信號(hào)接收下來(lái),現(xiàn)通過(guò)譯碼等處理后送給主探機(jī)。其原理如圖1所示。 C5402采用低電壓工作,其內(nèi)核電壓為1.8V、I/O管腳電壓為3.3V,而PC/104總線工作于5V電壓。為了使電路能穩(wěn)定正常的工作,C5402的數(shù)據(jù)總線接有一個(gè)SN74LVC245A。它是TI公司生產(chǎn)的3.3V和5V電壓平相轉(zhuǎn)換的雙向緩沖器,可以雙電源供電,一邊工作在3.3V,一邊工作在5V,轉(zhuǎn)換的方向由兩個(gè)DIR管腳控制。它串在數(shù)據(jù)總線上,既可以為DSP提供驅(qū)動(dòng)5V數(shù)字電路的能力,也可以為DSP提供5V信號(hào)讀入的保護(hù)。這樣,就不再需要為多個(gè)不同外設(shè)而考慮總線驅(qū)動(dòng)不夠的問(wèn)題。DSP主機(jī)接口和PC/104的連接如圖2所示。
主機(jī)和DSP可獨(dú)立地對(duì)HPI接口操作,主機(jī)和DSP的握手可通過(guò)中斷方式完成。另外,主機(jī)還可以通過(guò)HPI接口裝載DSP應(yīng)用程序,接收DSP運(yùn)行結(jié)果或診斷DSP運(yùn)行狀態(tài),為DSP芯片的接口開(kāi)發(fā)提供一種極為方便的途徑。HPI-8為8位并行口,提供C54x與外部主機(jī)的接口,C54x可通過(guò)片內(nèi)RAM與主機(jī)設(shè)備交換數(shù)據(jù)。主機(jī)與HPI-8的通信是通過(guò)專(zhuān)用的地址寄存器和數(shù)據(jù)寄存器完成的,C54x不能直接讀/寫(xiě),HPI控制寄存器允許主機(jī)和C54x進(jìn)行讀/寫(xiě),包括配置通信協(xié)議和控制通信(握手)的比特。
EPM7128S用來(lái)提供整個(gè)系統(tǒng)需要的組合邏輯。它屬于MAX7000系列,是Altera公司的基于第二代MAX結(jié)構(gòu)的CPLD。它提供多達(dá)5000個(gè)可用門(mén)和在系統(tǒng)編程,其引腳到引腳延時(shí)快達(dá)6ns??梢匀菁{各種各樣的獨(dú)立的組合邏輯和時(shí)序邏輯。EPM7128S有兩個(gè)工作電壓核電壓為5V,I/O工作電壓可設(shè)為5V或3.3V。設(shè)為3.3V時(shí),其輸入為5V,而輸出為3.3V TTL電平(所有的驅(qū)動(dòng)器均能配置在3.3V和5V,允許用于混合電壓系統(tǒng)中)。EPM7128S的優(yōu)點(diǎn)是基于E2PROM原理,可以通過(guò)JTAG口進(jìn)行在線編程,設(shè)計(jì)得可將設(shè)計(jì)內(nèi)容從PC機(jī)上通過(guò)下載電纜和JTAG口對(duì)EPM7128S進(jìn)行任意次修改。在這里使用EPM7128S是為電路提供組合邏輯以映射空間。它有多達(dá)100個(gè)I/O引腳可供編程使用,可以接入PS、IS等管腳,方便系統(tǒng)擴(kuò)展存儲(chǔ)空間和外設(shè)。
3 軟件編程
程序分為兩大部分:主程序及中斷服務(wù)子程序。主程序完成初始化后,等待CC同步脈沖的到來(lái)。CC同步信號(hào)連到DSP的外部中斷上,當(dāng)脈沖到來(lái)時(shí),DSP響應(yīng)外部中斷,脈沖到來(lái)一次響應(yīng)一次中斷。中斷服務(wù)子程序完成隨機(jī)數(shù)的迭代、對(duì)比、信號(hào)的接收、譯碼、解密及主控機(jī)的數(shù)據(jù)傳輸?shù)取V鞒绦蛄鞒倘鐖D3所示。
C54x和主機(jī)都能夠訪問(wèn)C54x片內(nèi)RAM。主機(jī)存儲(chǔ)必須同步于C54x的時(shí)鐘,以確保片內(nèi)RAM讀/寫(xiě)正確。當(dāng)C54x和主機(jī)同時(shí)讀/寫(xiě)同一存儲(chǔ)區(qū)域時(shí)將產(chǎn)生沖突,這時(shí)主機(jī)具有優(yōu)先權(quán),C54x CPU將等待一個(gè)C54x時(shí)鐘周期。
主機(jī)訪問(wèn)HPI時(shí),首先完成外部接口部分的操作,即先即始化HPIC寄存器,然后初始化HPIA寄存器,再?gòu)腍PID寄存器中讀出或?qū)懭霐?shù)據(jù)。HPI的3個(gè)寄存器如表3所示。 表3 HPI寄存器 名 稱(chēng)地 址 說(shuō) 明 HPIA -- HPI地址寄存器,只能由主機(jī)讀寫(xiě)。該寄存器對(duì)應(yīng)主機(jī)訪問(wèn)的C54x的片內(nèi)地址。
HPIC 002Ch HPI控制寄存器,主機(jī)和C54x都可以讀寫(xiě)。用于對(duì)HPI操作的控制與狀態(tài)位。 HPID -- HPI數(shù)據(jù)寄存器,只能由主機(jī)讀寫(xiě)。主機(jī)讀寫(xiě)由HPIA指定的C54x片內(nèi)存儲(chǔ)器單元。在DSP的初始化程序中,
一般對(duì)HPIC進(jìn)行了初始化后就無(wú)需再對(duì)HPI操作了,其余的工作就完全由主機(jī)完成。通過(guò)HPI接口,主機(jī)和C54x之間可以相互發(fā)送中斷請(qǐng)求。主機(jī)通過(guò)HPIC寄存器的DSPINT位中斷C54x,而C54x通過(guò)HPIC寄存器的HINT位發(fā)中斷請(qǐng)求到主機(jī)。無(wú)論是主機(jī)或C54x都可以通過(guò)讀取HPIC來(lái)判斷HINT引腳的狀態(tài),但是HPIC中的HINT位只能由主機(jī)清除。
HPID寄存器具有可供選擇的自動(dòng)地址自增特性,它為讀/寫(xiě)連續(xù)的存儲(chǔ)區(qū)提供了便利。自增模式下連接傳送數(shù)據(jù),每訪問(wèn)存儲(chǔ)器一次,HPIA寄存器地址就自動(dòng)增加。由于主機(jī)無(wú)需在每次訪問(wèn)存儲(chǔ)器時(shí)修改HPIA值,從而提高了系統(tǒng)性能。當(dāng)HCNTL0=1且HCNTL1=0時(shí)選擇自增模式。需要注意的是,如果采用了擴(kuò)展的片內(nèi)RAM,要保證正確的自增操作,HPIC寄存器中的XHPIA位必需設(shè)置為1。
當(dāng)使用地址自增模式時(shí),讀操作后HPIA寄存器地址加1;寫(xiě)操作前,HPIA寄存器地址加1。因此,如果對(duì)給定地址使用自增模式下寫(xiě)操作時(shí),HPIA寄存器應(yīng)初始化為起始地址減1。地址自增會(huì)影響HPIA的16位,在使用擴(kuò)展片內(nèi)RAM(C5410除外)時(shí),地址自增也影響擴(kuò)展地址。如果HPIA=FFFh,那么下次讀/寫(xiě)時(shí)將HPI地址改變?yōu)?10000h。由于C5410的地址自增不會(huì)影響擴(kuò)展HPI尋址,因此在上面的操作中,如果使用C5410,將使C5410地址改變?yōu)?00000。
HPI口的應(yīng)用極大地方便了PC/104總線與DSP系統(tǒng)的數(shù)據(jù)交換,使在線修改DSP存儲(chǔ)器的數(shù)據(jù)成為可能。該方案靈活、簡(jiǎn)單,適用于任何含有HPI接口的DSP應(yīng)用系統(tǒng),從而為開(kāi)發(fā)人員提供了一種全新的數(shù)據(jù)共享/傳輸方案。
評(píng)論