摘 要:本文研討了TI TMS320C54X的HPI外設的結構和工作原理,闡述了它在與外部主機進行數(shù)據(jù)通訊應用時的使用要點。以TMS320C5402DSP為例,給出了一種C54X DSP與51單片機通信的具體實現(xiàn)方案以理解HPI所具有的一系列優(yōu)點。本文為類似系統(tǒng)的設計提供了一定參考,具有較強的工程性和實用意義。
關鍵詞:DSP HPI 89C51
引言
近幾年來,DSP處理器在很多領域得到了越來越廣泛的應用,其優(yōu)勢在于擁有強大的數(shù)字信號處理能力,但是一個完整的電子系統(tǒng)往往還有許多諸如與外部系統(tǒng)的通信、控制、人機接口等控制功能,而控制則是傳統(tǒng)的單片機的優(yōu)勢,所以單片機與DSP可以協(xié)同工作,以單片機作為主機,DSP作為從機,主機控制從機的復位、運行和掛起,更主要的主機將從外部獲得的數(shù)據(jù)交由從機處理,而從機則將處理后得到的有關結果傳遞給主機,由主機將處理結果發(fā)送至其他系統(tǒng)。該種方案的關鍵是單片機與DSP間數(shù)據(jù)通信的實現(xiàn)。
1 C54x主機接口簡介
HPI(Host Port Interface)主機接口,是TEXAS Instruments(TI)高性能DSP上配置的與主機進行通信的片內(nèi)外設。以TMS320C5402(簡稱C5402)包含的增強型HPI8接口為例,它與外部主機或微處理器的連接具有單獨的8根數(shù)據(jù)線HD0—HD7和10根控制線。主機主動通過HPI口訪問DSP的內(nèi)部RAM以及其它資源。除了對主機發(fā)中斷(通過置HPIC寄存器的HINT位,可以使HINT線有效)或清除主機發(fā)來的中斷(通過清HPIC寄存器的DSPINT標志)需要DSP干涉外,DSP幾乎不用進行其他操作,DSP片內(nèi)的DMA通道會自動輔助完成RAM區(qū)與HPI數(shù)據(jù)寄存器的數(shù)據(jù)傳輸,幾乎完全沒有硬件和軟件開銷,實現(xiàn)數(shù)據(jù)交換的效率非常高。
HPI的組成和內(nèi)部邏輯如圖1所示,各部分主要功能如表1所示:
HPI通信是通過對HPIA、HPIC和HPID3個寄存器賦值實現(xiàn)的。當主機要與DSP通信時,主機通過外部引腳HCNTLO和HCNTL1選中不同的寄存器,如表2所示,則當前發(fā)送的8位數(shù)據(jù)就寫到該寄存器上。在使用上,由于HPIC是16位寄存器,而HPI口總是傳送8位的數(shù)據(jù)寬度,所以主機向HPIC寫數(shù)據(jù)時,需要發(fā)送兩個一樣的8位數(shù)據(jù),對C5402來說,僅低8位有意義。而地址寄存器HPIA選擇后,可直接向它發(fā)送數(shù)據(jù),但是要注意MSB和LSB的順序,通過設置HPIC寄存器的BOB位,可以決定這一字節(jié)是這個字的高字節(jié)還是低字節(jié)。HPIA具有自動增長的特性,在每寫入一個數(shù)據(jù)前和每讀一個數(shù)據(jù)后,HPIA都會自動加1,所以在應用了該功能的情況下,只需設定一次HPIA即可實現(xiàn)連續(xù)數(shù)據(jù)塊的寫入和讀出。只是在實現(xiàn)上,數(shù)據(jù)應首先從主機發(fā)到HPID中。然后根據(jù)HPIA指定的地址,HPID中的數(shù)據(jù)再寫到片內(nèi)RAM地址中。

2 89C5l與C5402的HPI通信的實現(xiàn)
本通信電路采用單片機89C51作為主機與C5402實現(xiàn)數(shù)據(jù)通信,系統(tǒng)接口電路如圖2所示。當HAS接主機的ALE端時,HD0—HD7,HCNTL0,HCNTL1,HBIL,HR/W接數(shù)據(jù)/地址復用總線。主機控制信號線HCNTL0,HCNTL1用于選擇3個寄存器HPIA,HPID和HPIC。讀寫信號線HR/W用于指示HPI傳輸方向。HDS1,HDS2,HCS用于數(shù)據(jù)選通。HRDY和HINT組成和主機通信的握手信號。芯片74LVC16245A是TI的電平轉換芯片,在這里由于DSP與單片機的電平是不兼容的,只有轉換電平后才能互聯(lián),該芯片的G為使能端,低電平有效,DlR為方向控制端,高電平時方向為A→B,低電平是方向為B→A。

89C51通過DSP的HPI口對DSP實現(xiàn)數(shù)據(jù)讀寫需要3個步驟:設置控制寄存器(HPIC),寫地址寄存器(HPIA),讀寫數(shù)據(jù)寄存器(HPID)。單片機通過它的并行端口發(fā)送控制信號和檢測狀態(tài)信號以模擬HPI口訪問時序。如下問題在編程時要特別注意:
(1) DSP的采樣選通信號由HDS1,HDS2和HCS的組臺邏輯來組成。主機應首先對HPIC進行初始化,并注意對BOB位的設置來指定第1個字節(jié)作為高8位還是低8位。同時注意HPIC中的XHPIA位的設置,由于DSP復位后,XHIPA的狀態(tài)不確定,所以必須先對XHPIA進行設置。
(2)HAS為下降沿有效,而HCS為上升沿有效。
(3)HBIL腳在傳輸過程中指示當前字節(jié)為第1還是第2字節(jié),如低為第1字節(jié);高為第2字節(jié)。
(4)HCNTLO、HCNTL1兩腳用于區(qū)分HPIA、HPID及HPIC三者的地址。
(5)引導加載過程中為方便起見,常采用將HINT腳直接與INT2腳相連申請HPI引導方式。
(6)如果將HPIA設置成自動遞增模式,就會在數(shù)據(jù)傳輸?shù)耐瑫r完成HPIA加1,于是又啟動了一次內(nèi)部傳輸,有利于數(shù)據(jù)的連續(xù)轉移。
(7)主機和DSP可以互相中斷。主機向HPIC中的位IMPINT寫入1來中斷DSP。該位總是被讀出為0。
單片機在完成初始化后,等待DSP發(fā)中斷通知數(shù)據(jù)已經(jīng)準備好,單片機在檢測到中斷后,判斷中斷是否有效,有效時再從HPI口讀寫數(shù)據(jù)。本例中單片機從DSP的指定地址讀取數(shù)據(jù),再將數(shù)據(jù)寫到DSP的其他存儲單元。
結束語
HPI提供了方便而靈活的接口,而且外圍電路簡單,幾乎不需要附加任何邏輯電路。在HPI通信方式下,DSP片內(nèi)存儲器對外界完全透明,方便了主機與DSP系統(tǒng)的數(shù)據(jù)交換,使在線修改DSP存儲器的數(shù)據(jù)成為可能,同時無需硬件、軟件開銷。這種數(shù)據(jù)通信方案,對于復雜系統(tǒng)和更加靈活新穎的數(shù)據(jù)傳輸供享設計具有一定的借鑒意義。
參考文獻:
[1]王念旭.DSP基礎與應用系統(tǒng)設計[M].北京航空航天大學出版社,2000.7.
[2]王興之,鐘愛琴,王雷等.AT89C51系列單片機原理與接口技術[M].北京:北京航空航天大學出版社,2004.
[3]張雄偉,曹鐵勇.DSP芯片原理與開發(fā)應用[M].電子工業(yè)出版社,2000.5.
[4]TMSC320C54X DSP Reference Set Texas Instruments[M],1999.