介紹了DSP(Digital signal processor) 芯片TMS 320VC5402 的HPI ( Host port interface) 主機(jī)接口原理,以一個(gè)簡(jiǎn)單的通信程序作為例子,詳細(xì)說明通過HPI 口實(shí)現(xiàn)5402 芯片內(nèi)部的16 kB 雙端口RAM 與AT 89 C51單片機(jī)的通信過程. 采用C 語言與匯編語言混合編程的方式,實(shí)現(xiàn)了雙端口通信.
??????? 引言
隨著信息技術(shù)的發(fā)展,數(shù)字信號(hào)處理在通信、語音處理、圖像處理、工業(yè)控制等方面得到了廣泛的應(yīng)用.TMS 320VC5402 是專門為快速實(shí)現(xiàn)各種數(shù)字信號(hào)處理算法而設(shè)計(jì)的常用定點(diǎn)DSP 芯片,廣泛使用在各類數(shù)字信號(hào)中. 該芯片采用優(yōu)化的哈佛結(jié)構(gòu),6 級(jí)流水線,片上含16 kB 零等待雙端口SRAM ,增強(qiáng)型8 位HPI接口,主頻可達(dá)到100 MHz ,3. 3 V 和1. 8 V 雙電源供電[1 ] .作為信號(hào)采集處理及控制顯示系統(tǒng),傳統(tǒng)的方法是采用來單片機(jī)實(shí)現(xiàn)[2 ] ,但單片機(jī)的實(shí)時(shí)處理功能較弱. DSP 芯片具有強(qiáng)大的數(shù)據(jù)處理能力,但在控制顯示方面不如單片機(jī)靈活. 為此,本文采用A T89C51 單片機(jī)作為主機(jī),DSP 作為高速數(shù)據(jù)處理器,通過HPI 實(shí)現(xiàn)了與TMS 320VC 5402 的并行高速通信. 編寫TMS320 C54X 程序和HPI 中斷程序,完成了系統(tǒng)軟硬件設(shè)計(jì)的全過程,充分發(fā)揮了單片機(jī)和DSP 的優(yōu)勢(shì).
1 HPI 端口結(jié)構(gòu)及系統(tǒng)硬件電路設(shè)計(jì)
TMS 320VC5402 增強(qiáng)型8 位HPI 引腳功能:
HCS :端口使能. 當(dāng)= 0 時(shí),HPI 端口被選中,允許數(shù)據(jù)傳輸;
HAS :地址鎖存信號(hào),下降沿鎖存;
HBIL :字節(jié)順序指示, = 0 時(shí)表明當(dāng)前傳輸?shù)牡? 字節(jié), = 1 為第2 字節(jié);
HRW:讀或?qū)懶盘?hào), = 1 時(shí)表明主機(jī)從HPI 讀走數(shù)據(jù), = 0 時(shí)寫入數(shù)據(jù);
HDS1 ,HDS2 :數(shù)據(jù)鎖存信號(hào);
HRDY: HPI 準(zhǔn)備好,外部設(shè)備讀該信息,為1 時(shí)表明HPI 空閑狀態(tài),可以進(jìn)行數(shù)據(jù)傳輸;為0 時(shí), HPI忙于內(nèi)部操作,數(shù)據(jù)還沒有準(zhǔn)備好;
HIN T :主機(jī)中斷,輸出到主機(jī)設(shè)備,由DSP 軟件控制;
HCN TL1 ,HCN TL0 :控制信號(hào),表明當(dāng)前傳輸?shù)臄?shù)據(jù)類型;
00 :訪問HPI 的控制寄存器HPIC ,對(duì)該寄存器進(jìn)行讀或?qū)懖僮?
01 :訪問HPI 的數(shù)據(jù)寄存器HPID ,并且地址寄存器HPIA 自動(dòng)加1 或減1 ;
10 :訪問HPI 的地址寄存器HPIA ,對(duì)該寄存器進(jìn)行讀或?qū)懖僮?
11 :訪問HPI 的數(shù)據(jù)寄存器HPID ,對(duì)地址寄存器HPIA 無影響;
HD0 - HD7 :數(shù)據(jù)/ 地址總線.
值得說明的是,外部設(shè)備接入HPI 并不需要使用所有的控制引腳,特別是鎖存信號(hào)HAS、HDS1 和HDS2 ,一般只使用一個(gè)就夠了. 系統(tǒng)硬件電路設(shè)計(jì)如圖1 所示,圖中16245 的作用是雙向電平驅(qū)動(dòng)轉(zhuǎn)換,實(shí)現(xiàn)單片機(jī)5 V 信號(hào)與DSP 3. 3 V 電平信號(hào)的相互驅(qū)動(dòng)轉(zhuǎn)換,其中P1. 2 控制數(shù)據(jù)傳輸?shù)姆较?
?
圖1 單片機(jī)與DSP 的HPI 接口電路
2 軟件編程
HPI 通信軟件的設(shè)計(jì)包括DSP 端和主機(jī)端(A T 89 C 51) 兩部分. 通信通過雙方的中斷服務(wù)程序進(jìn)行,單片機(jī)的中斷服務(wù)程序中通過HPI 接收DSP 的發(fā)送幀進(jìn)行處理,同時(shí)將一定格式的有關(guān)數(shù)據(jù)通過HPI 發(fā)送給DSP ,作為DSP 的接收幀,并通過HPI 發(fā)送中斷給DSP. DSP 響應(yīng)中斷,在中斷服務(wù)程序中處理數(shù)據(jù),并按照單片機(jī)接收幀設(shè)置發(fā)送幀傳輸數(shù)據(jù),向主機(jī)發(fā)送中斷信號(hào), 從而實(shí)現(xiàn)雙向通信功能[ 3 ] .
在A T89 C51 的軟件中,通過對(duì)P0 口和P1 口的控制來傳輸數(shù)據(jù),從DSP 的0X0200 地址處讀出數(shù)據(jù),并同時(shí)給DSP 產(chǎn)生一個(gè)HPI 中斷. 主機(jī)編程的流程如圖2 所示,匯編語言主程序如下:
HRW EQU P1. 0
HCS EQU P1. 1
HPIDIR EQU P1. 2
HCN TL0 EQU P1. 3
HCN TL1 EQU P1. 4
HDS1 EQU P1. 5
HBIL EQU P1. 6
HRDY EQU P1. 7
MAIN : JB P3. 4 , $
; HPI 初始化
MOV R2 , # 08H
; HPI 控制寄存器清零,先高位,清中斷
MOV R3 , # 08H
LCALL WHPIC ;寫HPIC
MOV R2 , # 00H
MOV R3 , # 0FFH
LCALL WHPIA ;置地址
MOV R2 , # 00H ;寫初始幀頭
MOV R3 , # 0AA H
LCALL LWHPID
MOV R2 , # 00H ;寫幀長(zhǎng)
MOV R3 , # 01H
LCALL LWHPID
MOV R2 , # 00H ;寫幀類型
MOV R3 , # 02H
LCALL LWHPID
MOV R2 , # 00H ;寫DA TA[0 ]
MOV R3 , # 03H
LCALL LWHPID
MOV IE , # 81H ;主機(jī)中斷允許
MOV R2 , # 04H ;DSP HPI 中斷
MOV R3 , # 04H
LCALL WHPIC ;寫HPIC
SJMP $ ;等待主機(jī)中斷發(fā)生
評(píng)論
查看更多