HPI接口在TI SOC的應(yīng)用
摘要
本文引用地址:http://m.butianyuan.cn/article/171009.htm本文從總體上介紹HPI(Host Peripheral Interface)接口的工作模式,與上位主機(jī)的連接方式,主機(jī)訪問的操作流程;歸納了應(yīng)用當(dāng)中常見問題,并提供了分析解決辦法。
簡(jiǎn)介
HPI 接口是TI 為處理器之間直接互連通訊定義的一種異步接口,大多數(shù)TI DSP 芯片上都有HPI 接口。HPI 接口是從(Slave)端口,接在主機(jī)的擴(kuò)展內(nèi)存總線上,DSP 不能通過HPI 向主機(jī)(Host)的訪問,只能被主機(jī)讀寫。兩個(gè)DSP 的HPI 接口之間不能通訊。兩個(gè)DSP 之間互連,可以將一個(gè)DSP(從)的HPI 接到另一個(gè)DSP(主)的擴(kuò)展內(nèi)存接口(EMIF)上[1]。
1. HPI 工作模式
不同系列DSP 上的HPI 接口版本有所不同,區(qū)別體現(xiàn)在DSP 對(duì)HPI 的控制上,如C6727 上的UHPI 可通過寄存器使能與關(guān)閉HPI 接口,對(duì)主機(jī)訪問DSP 內(nèi)存空間的控制,以及對(duì)HPI 接口信號(hào)的功能復(fù)用上。但從主機(jī)訪問的角度,HPI 的工作模式分為:復(fù)用模式(Multiplexed-Mode)和非復(fù)用模式(Non-multiplexed-Mode)。
復(fù)用模式下沒有地址線,主機(jī)訪問DSP 的地址信息是以數(shù)據(jù)方式送到HPIA(HPI 地址寄存)。從硬件信號(hào)的角度,地址,數(shù)據(jù)信號(hào)是由同一組數(shù)據(jù)線傳遞,所以稱為復(fù)用模式。
非復(fù)用模式的數(shù)據(jù)線與地址線是分開的,與內(nèi)存接口連接相似。非復(fù)用模式不需要操作HPIA 寄存器,主機(jī)訪問的地址信息通過地址總線直接送給HPI。
所有的HPI 接口都支持復(fù)用模式,但不是所有芯片的HPI 接口都支持非復(fù)用模式(參考相應(yīng)的芯片手冊(cè)確定是否支持)。除了有無HPIA 的操作區(qū)別外,兩種模式的操作沒有區(qū)別。因?yàn)榉菑?fù)用模式的操作是復(fù)用模式操作的子集,為方便起見,本文以復(fù)用模式展開討論。
2. HPI 硬件信號(hào)連接
HPI 接口復(fù)用模式連線如圖1 所示,根據(jù)在應(yīng)用當(dāng)中的必要性分為:必要的,和可選的兩組信號(hào)??蛇x的信號(hào)
以虛線表示。
l 數(shù)據(jù)線HD[0:n]:在復(fù)用模式下,數(shù)據(jù)線的寬度一般為CPU 位寬的一半,一個(gè)HPI 訪問分為高低半字的兩次訪問,如C5000 是16-bit CPU,HPI 數(shù)據(jù)線為8 位,C6000 是32-bit CPU,其HPI 數(shù)據(jù)線為16 位。C64x 系列的HPI 支持32 位,在32 位模式下一個(gè)HPI 訪問不需要分為高低半字兩次訪問組成一個(gè)完整的訪問。
l HCNTL0/1,HWIL:HCNTL0/1 選擇要訪問的HPI 寄存器,HWIL 控制訪問寄存器的高低半字,必須先高后低。一個(gè)寄存器的高低半字的兩次訪問一定要連續(xù)完成,中間不能插入其它的HPI 操作。只有HPIC 可以只訪問半個(gè)字。
l HR/W:指示對(duì)HPI 寄存器進(jìn)行讀,還是寫操作。如果主機(jī)的讀,寫信號(hào)是分開的,可以利用其中一個(gè)信號(hào),但要注意做上拉或下拉處理以控制其在三態(tài)時(shí)的電平。
l HCS,HDS1/2:這三個(gè)信號(hào)根據(jù)圖2 的邏輯產(chǎn)生內(nèi)部HSTROBE 信號(hào),其邏輯關(guān)系是要求HDS1 和HDS2信號(hào)相反,HCS 低有效。HSTROB 下降沿的時(shí)間點(diǎn)反應(yīng)的是三個(gè)信號(hào)中最后跳變的信號(hào)。HPI 在HSTROB的下降沿采樣控制信號(hào)HR/W,HCNTL0/1,HWIL 以判斷主機(jī)要對(duì)哪個(gè)寄存器進(jìn)行讀,或者寫操作命令。
注意控制信號(hào)在HSTROBE 的下降沿之前需要最少5ns 的setup 穩(wěn)定時(shí)間,而HDS1/2 和HCS 到HSTROBE信號(hào)內(nèi)部門電路的延時(shí)是皮秒級(jí)的,所以控制信號(hào)的setup 時(shí)間需要外部時(shí)序保證。
l HRDY:HPI 的輸出信號(hào),指示當(dāng)前操作狀態(tài),用做硬件流量控制握手信號(hào)。
l HINT:通過HPI,主機(jī)與DSP 之間可以互發(fā)中斷。HINT 是HPI 送給主機(jī)的中斷信號(hào),DSP 對(duì)HPIC[HINT]位寫1,HINT 信號(hào)線上送出高電平信號(hào),主機(jī)可利用此信號(hào)做為中斷信號(hào)輸入。DSP 不能清除HPIC[HINT]狀態(tài),主機(jī)在響應(yīng)中斷后,需要對(duì)HPIC[HINT]位寫1 清除狀態(tài),DSP 才能再次對(duì)HPIC[HINT]置位發(fā)中斷。主機(jī)通過寫HPIC[DSPINT]置1 給DSP 產(chǎn)生中斷,DSP 在響應(yīng)中斷后,需要對(duì)HPIC[DSPINT]寫1 清除狀態(tài),主機(jī)才能繼續(xù)操作HPIC[DSPINT]給DSP 發(fā)中斷。通過HPI 傳輸數(shù)據(jù),結(jié)合互發(fā)中斷做為軟件層的握手信號(hào),可有效提高通訊的效率與靈活性。
l ALE:存在于地址,數(shù)據(jù)線復(fù)用的主機(jī)上用來指示地址信號(hào)周期,這種總線復(fù)用的主機(jī)很少見,所以通常將ALE 固定上拉處理,只用HSTROBE 采樣控制信號(hào)。
l BE:Byte Enable 信號(hào),這個(gè)信號(hào)只出現(xiàn)在32 位的C6000 DSP 上。因?yàn)?a class="contentlabel" href="http://m.butianyuan.cn/news/listbylabel/label/應(yīng)用">應(yīng)用當(dāng)中通常都是對(duì)整個(gè)32-bit 字進(jìn)行訪問,所以直接做上拉使能處理。
3. HPI 寄存器地址映射
HPI 口提供給主機(jī)端訪問的寄存器只有4個(gè),通過HCNTL[1:0]選擇.
表 1 HPI 寄存器訪問選擇
由于在復(fù)用模式下數(shù)據(jù)線通常只有寄存器寬度的一半,所以一個(gè)完整的數(shù)據(jù)訪問由高低半字兩次訪問組成,由HWIL 信號(hào)控制,HWIL 信號(hào)必須是先低后高。通常將HWIL 和HCNTL[1:0]接在主機(jī)的地址線上,將4 個(gè)寄存器映射為主機(jī)端的8 個(gè)內(nèi)存單元,下表中的地址線連接方法將8 半字寄存器映射到主機(jī)的8 個(gè)連續(xù)的內(nèi)存單元。這里的地址線是用來選擇HPI 的寄存器,與非復(fù)用模式下的地址線直接訪問DSP 的內(nèi)存空間是完全不同的作用。
4. HPI 寄存器功能說明
HPIC (HPI Control Register)
HPI 控制寄存器HPIC 的位圖如表3 所示,C6000 系列DSP 的HPI 寄存器是32 位的,也只有低16 位有效,與C5000 系列DSP 的HPIC 寄存器定義的功能保持一致。不同版本的HPI 接口的HPIC 位定義的主要不同之處在于軟件握手HRDY 位的有無,其它位名稱可能存在細(xì)小差異,但功能定義都是一樣的。
評(píng)論