汪揚(yáng)埔 文仁軼 王樞
摘 要 可配置主機(jī)并行接口(Host-Port Interface,簡稱HPI)是DSP與外部系統(tǒng)進(jìn)行通信的一個(gè)重要并行接口部件。通過HPI,可以完成外部主設(shè)備系統(tǒng)與DSP內(nèi)部存儲(chǔ)空間的數(shù)據(jù)交換、DSP芯片的自舉以及調(diào)試。本文詳細(xì)介紹了DSP64X 主機(jī)并行接口(HPI)的主要協(xié)議,包括外部接口、四個(gè)寄存器的配置、配置為16位和32位的總線訪問等。
關(guān)鍵詞 可配置主機(jī) 并行接口 描述
中圖分類號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A
DSP64X具有32條外部引腳接口,通過DSP復(fù)位期間對特定的芯片管腳使能,可以配置HPI接口支持16位寬的數(shù)據(jù)總線和32位寬的數(shù)據(jù)總線兩種模式(文中一律簡稱為HPI 16模式和HPI 32模式)。不管是HPI 16模式還是HPI 32模式,HPI都是以字傳輸來實(shí)現(xiàn)對DSP存儲(chǔ)空間的訪問。
1HPI外部接口描述
通過配置,外部HPI信號(hào)可以與各種主機(jī)部件實(shí)現(xiàn)接口。配置HCS 與HDS[1:2] 三個(gè)鎖存信號(hào)的電平,可產(chǎn)生一個(gè)低電平有效的內(nèi)部鎖存信號(hào)HSTROBE 。HSTROBE 表示內(nèi)部產(chǎn)生的選通信號(hào),在其下降沿會(huì)對主機(jī)驅(qū)動(dòng)的輸入控制信號(hào)HCNTL[1:0],HHWIL,HR/W 進(jìn)行采樣。
2 HPI的寄存器配置
HPI是通過特定的寄存器配置來實(shí)現(xiàn)外部主機(jī)與CPU之間的通訊的。DSP64X中共有4個(gè)寄存器:HPI數(shù)據(jù)寄存器(HPID)、HPI地址寄存器(HPIA)、HPI控制寄存器(HPIC)、HPI傳輸請求控制寄存器(TRCTL)。主機(jī)能對HPIC、HPIA、HPID三個(gè)寄存器進(jìn)行讀/寫訪問,而CPU能對HPIC、HPIA、TRCTL進(jìn)行訪問。外主機(jī)通過訪問HPI實(shí)現(xiàn)與DSP傳輸?shù)幕玖鞒虨椋褐鳈C(jī)首先通過配置外部引腳到適當(dāng)?shù)碾娖?,寫地址寄存器HPIA,配置主機(jī)所要訪問的DSP存儲(chǔ)空間的地址;然后改變外部控制信號(hào),發(fā)出訪問主機(jī)接口的數(shù)據(jù)寄存器的命令,主機(jī)接口根據(jù)命令產(chǎn)生相應(yīng)請求提交給EDMA控制器。如果EDMA控制器忙,則向HPI發(fā)送忙信號(hào),HPI將外部HRDY信號(hào)拉高,表示DSP忙,使主機(jī)進(jìn)入等待狀態(tài),直到EDMA完成當(dāng)前操作。如果EDMA 控制器處于空閑狀態(tài),將直接響應(yīng)HPI的請求,并對HPI送來的地址進(jìn)行譯碼,送到相應(yīng)的EDMA通道進(jìn)行存取。
3HPI的總線訪問描述
DSP64X的HPI總線訪問可分為HPI 16和HPI 32兩種模式。為保證數(shù)據(jù)正確傳輸,在任何一個(gè)HPI進(jìn)行傳輸(包括HPIC、HPIA和HPID寄存器訪問)之前,都必須保證HRDY 信號(hào)為低電平,否則傳輸?shù)恼_性不能得到保證。
3.1配置為HPI 16模式的總線訪問
配置為HPI 16模式傳輸,在對兩個(gè)半字訪問時(shí),HCNTL[1:0]和HR/W 必須要設(shè)定為相同的值。對于第一個(gè)半字傳輸,HHWIL應(yīng)配置為低電平;而對于第二個(gè)半字的傳輸,HHWIL必須配置高電平。HPI 16模式數(shù)據(jù)傳輸包括HAS 信號(hào)不使用時(shí)讀、寫操作和HAS 信號(hào)使用時(shí)的讀、寫操作4種情況。
3.1.1鎖存控制信號(hào)
在信號(hào)配置時(shí),是否使用HAS 信號(hào),鎖存控制信號(hào)的方式也不相同。如果HAS 沒有使用,并且連接在高電平,則由HSTROBE 的下降沿鎖存控制信號(hào);如果使用HAS ,則由HAS 的下降沿鎖存控制信號(hào),此時(shí)HAS 信號(hào)的下降沿必須領(lǐng)先于HSTROBE 信號(hào)的下降沿。
3.1.2HPID寄存器的讀操作
(1) 固定地址讀HPID模式。在一次固定地址讀中,當(dāng)HPI向EDMA發(fā)送請求時(shí),此時(shí)HRDY 信號(hào)應(yīng)被置高電平,直到被請求的數(shù)據(jù)被加載如HPID寄存器;在第二個(gè)半字讀取的時(shí),因?yàn)檎埱髷?shù)據(jù)已經(jīng)存在于HPID寄存器之中,所以HRDY 信號(hào)應(yīng)為低電平。
(2)自增地址讀HPID模式。如果是第一次HPID寄存器讀操作,那么在HSTROBE 信號(hào)的下降沿之后,HRDY 要被配置為高電平。當(dāng)?shù)谝粋€(gè)數(shù)據(jù)由EDMA送入內(nèi)部緩存后,數(shù)據(jù)應(yīng)地址自動(dòng)指向下一個(gè),HPI繼續(xù)執(zhí)行連續(xù)的數(shù)據(jù)捕獲。當(dāng)前讀操作完成時(shí),如果緩存中已有準(zhǔn)備好的數(shù)據(jù),HRDY 信號(hào)應(yīng)該在下一次讀操作時(shí)保持有效,所以在檢測到HRDY 有效前,外部主機(jī)不能停止讀周期。
3.1.3HPID寄存器的寫操作
(1)固定地址寫HPID模式。在一次固定地址寫HPID寄存器操作中,主機(jī)要向HPID依次傳輸2個(gè)半字,寫訪問結(jié)束(由HSTROBE 的第二個(gè)上升沿標(biāo)示)后,HPID里的32位數(shù)據(jù)開始按照HPIA寄存器指定的地址進(jìn)行傳輸。因此在檢測到HRDY 信號(hào)為低電平之前,主機(jī)不應(yīng)該終止一個(gè)寫周期。
(2)自增地址寫HPID模式。自增地址寫HPID寄存器的數(shù)據(jù)應(yīng)先被寫入內(nèi)部緩存區(qū),直到緩存半滿或者寫操作結(jié)束時(shí),DSP再啟動(dòng)EDMA進(jìn)行內(nèi)部傳輸。此時(shí),由于數(shù)據(jù)已存在于緩存區(qū),HPID可以立即接收下一個(gè)寫數(shù)據(jù),HRDY 信號(hào)會(huì)在主機(jī)進(jìn)行下一次寫操作時(shí)保持有效,所以在檢測到HRDY 有效前,外部主機(jī)不能停止寫周期。
3.1.4HPIC和HPIA寄存器訪問操作
為保證數(shù)據(jù)傳輸?shù)恼_,在配置HPIC或HPIA寄存器時(shí),必須要在HPID寄存器訪問狀態(tài)轉(zhuǎn)換之前完成。
3.2 配置為HPI 32模式的總線訪問
由于使用32位數(shù)據(jù)總線,因此每次讀/寫操作只需要進(jìn)行一次32位的傳輸,此時(shí)半字選擇信號(hào)HHWIL被配置為無效,除此之外,HPI 32的操作與HPI 16的操作類似。