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

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

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