??? 摘? 要: HPI是德州儀器公司在新一代、高性能DSP芯片上配置的與主機進行通信的主機接口。它可以實現與主機之間并行、高速的數據交換,構成多機系統。介紹了HPI在某多處理器系統中的應用,分析了構成多機系統的硬件要求以及HPI的優越性,詳細介紹了HPI的特點及實現方法。?
??? 關鍵詞: DSP? 多處理器? HPI(主機接口)? 主機通信
?
??? HPI是德州儀器(TI)公司在新一代、高性能DSP芯片上配置的與主機進行通信的主機接口。它與主機之間能實現并行、高速的數據傳輸。在目前TI流行的DSP芯片中都配有HPI接口。?
??? 在傳統的單片機與主機進行接口時,需要外擴必要的硬件電路。當單片機需要與主機共享RAM時,需在片外擴展RAM及觸發、鎖存等芯片,然后主機通過DMA方式訪問該擴展RAM,這樣一來主機可以隨機或整塊地訪問、共享RAM。另外,在片外至少需要擴展一片鎖存器使得單片機可以中斷主機。TI的TMS320C5402 HPI接口將以上功能集成到DSP內部,使其與主機的連接變得非常簡單。而且由于HPI是集成到片內的,主機可以達到很高的訪問速度,滿足了數字信號處理中高速度的要求。本文介紹了TI公司TMS320C5402芯片中的HPI接口在構成某型雷達多處理機系統中的應用,分析了HPI的優越性以及構成多機系統的硬件要求,詳細地介紹了HPI的特點及實現方法。?
1 HPI主機接口構成?
??? TMS320C5402芯片的HPI接口分為HPI8(8位主機接口)和HPI16(16位主機接口)兩種,其應用方式大同小異,限于篇幅本文主要介紹HPI8。HPI8實際上是一個8位的并行端口,主機通過它可以直接訪問DSP片內的一段RAM。在早期的DSP中,這段公用的RAM是一段2K字的雙口RAM(對于TMSVC5402則可以訪問所有的片內RAM)。當主機和DSP同時訪問同一地址時,主機優先。由于TI的DSP芯片都是16位的,而HPI8只有8根數據線,所以數據的傳輸必須以字節為單位。在DSP與主機傳送數據時,HPI能自動地將外部接口傳來的連續的8位數組合成16位數后傳送給主機。?
??? HPI主要由以下五個部分組成:?
??? ·HPI存儲器(DARAM)。HPI RAM主要用于DSP與主機之間傳送數據,也可以用作通用的雙尋址數據RAM或程序RAM。?
??? ·HPI地址寄存器(HPIA)。它只能由主機對其直接訪問。該寄存器中存放著當前尋址的HPI存儲單元的地址。?
??? ·HPI數據鎖存器(HPID)。它也只能由主機對其直接訪問。如果當前進行讀操作,則HPID中存放的是要從HPI存儲器中讀出的數據;如果當前進行寫操作,則HPID中存放的是將要寫到HPI存儲器的數據。 ?
??? ·HPI控制寄存器(HPIC)。DSP和主機都能對它直接訪問。?
??? ·HPI控制邏輯。用于處理HPI與主機之間的接口信號。?
??? HPI控制寄存器(HPIC)對HPI的工作模式進行控制,HPIC必須在進行HPI訪問前由主機初始化。當主機要隨機訪問HPI RAM時,必須先發送一個地址到HPIA(HPI地址寄存器),然后訪問該地址所指向的RAM單元。當主機需要連續訪問一段HPI RAM時,則需要發送該段首地址到HPIA,然后以地址自增的方式訪問。這時候主機每訪問完一個存儲單元后HPIA自動指向下一個單元。主機可以通過置位HPIC中的DSPINT位來中斷DSP芯片,DSP芯片也可以通過置位HPIC中的HINT位來中斷主機,此時HPI的引腳被置位低電平,從而向主機發出中斷請求。主機可以通過置位
來屏蔽此中斷。HPI的數據、控制引腳都是專用的,它保證了HPI和DSP操作的并行性。HPI的引腳在無主機訪問時呈高阻態,因此可以直接掛在主機數據總線上,使得硬件電路特別簡單。?
??? HPI引腳由以下幾部分組成:?
??? (1)HD0~HD7:雙向并行三態數據總線。當不傳送數據HD0~HD7均處于高阻態。?
??? (2)HPI片選信號。作為HPI的使能輸入端,在每次尋址期間必須為低電平,而在兩次尋址之間也可以停留在低電平。?
??? (3)地址選通信號,此信號用于主機的數據線和地址線復用的情況。當不用時此信號應接高。?
??? (4)HBIL:字節識別信號,用于識別主機傳送過來的是第一個字節還是第二個字節。當HBIL=0時為第一個字節,HBIL=1時為第二個字節。?
??? (5)HCNTL0、HCNTL1:主機控制信號,用來選擇主機所要尋址的寄存器。當HCNTL1/HENTL0為00時,表明主機訪問HPIC;當為01時,表明主機訪問用HPIA指向的HPID,每讀一次,HPIA事后增加1,每寫一次,HPIA事先增加1;當為10時,表明主機訪問HPIA;當為11時,表明主機訪問HPID,而HPIA不受影響。?
??? (6)數據選通信號,在主機尋址HPI周期內控制數據的傳送。?
??? (7)HPI中斷輸出信號,受HPIC中的HINT位控制。?
??? (8)HRDY:HPI準備好端。高電平表示HPI已準備好執行一次數據傳送;低電平表示HPI正忙于完成當前事務,用于連接高速主機。?
??? (9)HPI讀寫信號。高電平表示主機要讀HPI,低電平表示寫HPI。?
??? (10)HPIENA:HPI允許信號,若系統選中HPI則將它連到高電平,否則懸空或接低電平。?
??? 主機訪問HPI的一個字包括兩個步驟:首先訪問第一個字節,此時HBIL為0;然后訪問第二個字節,此時HBIL為1;這兩步組成一個訪問單元。這個訪問單元不可被拆開或顛倒,不管當前訪問的是HPIA、HPIC還是HPID。?
??? HPI有兩種工作方式:?
??? ·共用尋址方式(SAM),這是常用的操作方式。在SAM方式下,主機和DSP都能尋址HPI存儲器,異步工作的主機的尋址可以在HPI內部得到同步。如果DSP與主機的周期發生沖突,主機有優先權。?
??? ·僅主機尋址方式(HOM)。在HOM方式下,只能讓主機尋址HPI存儲器,DSP則處于復位狀態或所有內部和外部時鐘都停止的IDLE2空轉狀態(最小功耗狀態);?
??? HPI支持DSP與主機之間數據的高速傳輸。在SAM工作方式,若HPI每5個時鐘周期傳送一個字節,主機的運行頻率可達(fdsp×n)/5。其中fdsp是DSP的時鐘頻率,n是主機進行一次外部尋址所需的周期數,通常n為3(或4)。假定DSP的運行頻率為100MHz,主機的時鐘頻率可達60(或80)MHz,且不需插入等待周期。而在HOM方式下,主機可以更快的速度工作,且與DSP的時鐘頻率無關。?
2 應用系統及結果?
??? 滑窗算法是數字信號處理中一種常用的基本算法,在通信、雷達、電子對抗、參數估計、信號識別中有著廣泛的應用。但滑窗算法一般是遍歷性的算法,其運算量大,在實時處理中受到限制。隨著DSP技術的發展,高速DSP芯片的出現,使滑窗算法的實際應用得以擴大。本文利用兩片TI公司的高速DSP芯片TMS320C5402,應用其HPI接口并行實現多重滑窗算法,滿足了某雷達系統解模糊的實時需要。系統由兩片TMS320C5402完成所有的數字信號處理算法,主要是多重滑窗算法。根據實際系統的需要,將多重滑窗算法處理分布在兩片TMS320C5402上,利用其HPI接口完成多處理機之間的快速數據交換,構成多機并行處理系統,完成多重滑窗算法的多機并行處理。整個系統的基本框圖如圖1所示。?
?
?
??? HPI在雙處理器中的應用原理圖如圖2所示。在本方案中,而HRDY懸空。由上面的分析可以很容易地得到HPI操作控制線占用的I/O端口,詳細的分配情況見表1。?
?
?
?
??? 當對HPIC進行訪問時(將一個十六位的數據送到HPIC中),首先將低八位數據送到端口地址為0h的I/O空間,然后將高八位送到端口地址為020h的I/O空間。HPID、HPIA的訪問方式與之相同。下面是HPI接口初始化程序的部分代碼;?
??? PORTW *AR0,0h?
??? LD *AR0,-8,a?
??? STL A,*AR0?
??? PORTW *AR0,020h?
??? ·代碼說明: AR0中存放的是要發送數據的地址,這一段程序將一個16位的數據送到HPIC中。?
??? 參照上述步驟可以方便地通過HPI將DSP與FPGA、DSP和單片機等其它主機相連,限于篇幅,這里僅給出FPGA與DSP相連時FPGA的邏輯信號,如圖3所示。?
?
?
??? 大量仿真與實測數據表明,各項指標均滿足設計要求。該系統已在某雷達系統中獲得應用。?
參考文獻?
1 TMS320C54x User’s Guide.Texas Instrument,1999.10?
2 張雄偉,曹鐵勇.DSP芯片的原理與開發應用.北京:電子工業出版社,2000.9?
3 TMS320C54x DSP Reference Set Volume 5: Enhenced Peripherals (literature number SPRU302).From:http://www.ti.com/