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