摘 要: 介紹了如何利用ti" title="ti">title="PCI2040" title="PCI2040">PCI2040">PCI2040通過(guò)C6X模式接口將TMS320VC5420" title="TMS320VC5420">TMS320VC5420 16位HPI接口連到PCI總線" title="PCI總線">PCI總線上。根據(jù)TMS320VC5420的數(shù)目,提供了兩種將TMS320VC5420映射到主存的方式,同時(shí)提供了硬件和軟件兩方面的考慮。
關(guān)鍵詞: PCI2040 TMS320VC5420 PCI總線
PCI2040是TI公司生產(chǎn)的專門用于DSP與PCI總線之間的橋接芯片,內(nèi)部原理圖如圖1所示。關(guān)于PCI2040具體介紹可以參照TI公司的相關(guān)資料(見參考文獻(xiàn)1)。PCI局部總線標(biāo)準(zhǔn)由Intel公司提出并由外圍部件聯(lián)合專門權(quán)益組織(PCISIG)制定。目前PCI總線已不再是一種局部總線,而成為一種受歡迎的高端總線和現(xiàn)代總線,被廣泛運(yùn)用于圖形、圖像、動(dòng)畫及其它各種外設(shè)對(duì)高速數(shù)據(jù)進(jìn)行傳輸。PCI總線的主要優(yōu)點(diǎn)是高性能,(數(shù)據(jù)傳輸率可達(dá)到132/264Mbps)總線通用性強(qiáng)、低成本、使用方便靈活。
PCI2040可以接口8位TMS320c54xHPI總線或者16位TMS320c6x HPI總線。本文介紹如何通過(guò)PCI2040的16位C6X模式接口將TMS320VC5420的16位HPI接口連到PCI總線上。
1 TMS320VC5420映射到主存的兩種方式
TMS320V5420是具有A、B兩個(gè)核的DSP,根據(jù)TMS320VC5420的數(shù)量,有兩種將TMS320VC5420映射到主存或PC存儲(chǔ)空間的方式。若TMS320VC5420的數(shù)量少于三個(gè),可用映射方式1(如圖2)。如果TMS320VC5420的數(shù)量多于兩個(gè),可用映射方式2(如圖3),這種方式將每個(gè)DSP映射到一個(gè)特定的存儲(chǔ)器空間,每個(gè)DSP核或DSP子系統(tǒng)占用同樣的存儲(chǔ)空間。
值得注意的是:控制空間的偏移量是相對(duì)于PCI2040上的256字節(jié)PCI配置寄存器中的14H處控制空間基址寄存器所代表的值。
2 硬件方面的考慮
TMS320VC5420是一個(gè)雙CPU設(shè)備,有兩個(gè)獨(dú)立的C54X子系統(tǒng),能夠?qū)崿F(xiàn)核對(duì)核通信。盡管PCI2040不是專門設(shè)計(jì)用來(lái)與雙CPU設(shè)備接口,但經(jīng)過(guò)特殊的處理還是可以實(shí)現(xiàn)接口的。需要考慮的主要有三方面:
?、貱6201HPI協(xié)議到TMS320VC5420 HPI-16協(xié)議的轉(zhuǎn)換;②兩個(gè)DSP核間的切換;③多個(gè)復(fù)位和多個(gè)中斷的處理。
2.1 C6x HPI協(xié)議到TMS320VC5420 HPI-16的轉(zhuǎn)換
TMS320VC5420對(duì)HPI總線提供了兩種操作模式。
非多路復(fù)用模式(HMODE=1),TMS320VC5420 HPI接口提供一個(gè)18位地址總線,用來(lái)訪問所有的內(nèi)部存儲(chǔ)器。
多路復(fù)用模式(HMODE=0),地址和數(shù)據(jù)復(fù)用同樣的管腳。PCI2040只是完成多路復(fù)用模式,所以TMS320VC5420的HMODE腳必須被拖到地上。另外由于C6X HPI的HRDY信號(hào)低電平有效,而TMS320VC5420 的HRDY信號(hào)高電平有效,所以針對(duì)TMS320VC5420必須使用轉(zhuǎn)換器(例如SN74ALCV04),這樣才能將VCC_H端直接連接到VCC端。
2.2 兩個(gè)DSP核間的切換
通過(guò)TMS320VC5420的SELA/B腳選擇被訪問的DSP子系統(tǒng)。例如可以將PCI2040的腳GPIO2連到SELA/B,這樣就可以通過(guò)GPIO2的高低電平來(lái)選擇核A或核B。
2.3 多個(gè)HRST
TMS320VC5420有兩種方法控制每個(gè)子系統(tǒng)的復(fù)位功能。
第一種,在HPIRS腳從低電平過(guò)渡到高電平時(shí),同時(shí)保持A_RS和B_RS腳處于低電平,可以在兩個(gè)核處于復(fù)位狀態(tài)的同時(shí)將應(yīng)用程序代碼下載到DSP中。下載完之后,可以將A_RS和B_RS重新設(shè)置成高電平而將兩個(gè)子系統(tǒng)拖出復(fù)位狀態(tài)。
在HPIRS腳從低電平過(guò)渡到高電平時(shí),同時(shí)保持A_RS和B_RS腳處于高電平也可以在兩個(gè)核處于復(fù)位狀態(tài)的同時(shí)將應(yīng)用程序代碼下載到DSP中。下載完之后,可以通過(guò)對(duì)地址2FH的寫操作將子系統(tǒng)拖出復(fù)位狀態(tài)。另外,可以根據(jù)SELA/B的值選擇指定的子系統(tǒng)。
第二種,使用Power-on復(fù)位邏輯復(fù)位每個(gè)子系統(tǒng)(A_RS 和 B_RS),這時(shí)需要將HPIRS腳連接到PCI2040的HRST腳。注意,當(dāng)應(yīng)用程序下載完成之后,必須有一個(gè)向地址2FH的寫操作,以將子系統(tǒng)拖出復(fù)位狀態(tài)。
2.4 對(duì)同一個(gè)DSP產(chǎn)生的兩個(gè)HINT中斷的處理
根據(jù)連接到PCI2040的TMS320VC5420數(shù)量可決定多個(gè)中斷的處理方式。
如果有兩個(gè)或更少的TMS320VC5420,可以將第一個(gè)TMS320VC5420的A_HINT連到HINT0,將B_HINT連到HINT1。將PCI2040的HINT2和HINT3連接到第二個(gè)TMS320VC5420的A_HINT和B_HINT(如圖4),這種情況下存儲(chǔ)器的設(shè)置利用映射方式1。
如果板子上含有多于兩個(gè)的TMS320VC5420,此時(shí)需要將每個(gè)DSP上的兩個(gè)中斷相與(如圖5)。每個(gè)DSP上的中斷共享PCI2040的同一根中斷線,這樣就無(wú)法知道某個(gè)DSP上到底那個(gè)子系統(tǒng)申請(qǐng)的中斷。此時(shí)必須向每個(gè)子系統(tǒng)中HPLC寄存器的HINT位寫1,這種情況下存儲(chǔ)器的設(shè)置利用映射方式2。
3 軟件方面的考慮
C6X有一個(gè)16位的HPI接口,使用32位的字長(zhǎng),所以所有的HPI操作需要兩個(gè)HPI周期。既然PCI2040的16位接口用來(lái)與C6X接口,所以PCI2040也需要兩個(gè)HPI周期。與C6X不同,TMS320VC5420使用16位的字長(zhǎng),這樣只需要一個(gè)HPI周期就可以完成一次操作。所以程序員通過(guò)PCI2040訪問TMS320VC5420時(shí),必須知道對(duì)DSP的讀和寫需要遵循特殊的原則。
3.1 向HPIA、HPIC和HPID寄存器寫數(shù)據(jù)
當(dāng)向HPIA(HPI地址寄存器)、HPIC(HPI控制寄存器)和HPID(HPI數(shù)據(jù)寄存器)寫數(shù)據(jù)時(shí),由于PCI2040對(duì)HPI口兩個(gè)周期的操作是針對(duì)同一個(gè)寄存器,所以第一個(gè)周期寫的數(shù)據(jù)會(huì)在第二個(gè)周期被覆蓋。故應(yīng)將數(shù)據(jù)多次寫到寄存器中,以保證寫入數(shù)據(jù)的正確(如圖6)。
3.2 從HPIA、HPIC、HPID寄存器讀數(shù)據(jù)
當(dāng)從HPIA、HPIC、HPID寄存器讀數(shù)據(jù)時(shí),PCI讀這些寄存器兩遍,返回PCI雙字節(jié)的上下兩部分(如圖7)。
3.3 利用自動(dòng)增特性
為了最大提高HPI的性能,在讀和寫HPID寄存器時(shí),利用DSP寄存器在第一個(gè)和第二個(gè)HPI周期中HPIA的自動(dòng)增特性。自動(dòng)增特性使得經(jīng)PCI總線可以對(duì)兩個(gè)字連續(xù)的進(jìn)行讀和寫,最終使得一次性可以讀寫32位的字長(zhǎng),這樣就有效地加速了數(shù)據(jù)傳輸速率。
參考文獻(xiàn)
1 PCI2040 PCI-DSP Bridge Controller Data Manual. Texas Instruments Incorporated,1999
2 TMS320VC5420 FIXED POINT DIGITAL SIGNAL PROCESSOR.Texas Instruments Incorporated,2001