基于DSP與PC機的PCI總線高速數(shù)據(jù)傳輸
TMS320C6713是TI公司在TMS320C6711的基礎(chǔ)上推出的C6000系列新一代浮點DSP芯片,它是目前為止C6000系列DSP芯片中性能最高的一種。TMS320C6713可在255MHz的時鐘頻率下實現(xiàn)1800MIPS/1350MFLOPS的定點和浮點運算,因而可極大地滿足通信、雷達、數(shù)字電視等高科技領(lǐng)域?qū)π盘柼幚韺崟r性的要求。同時其主機口(HPI)可靈活地和PCI總線控制器相連接。而PC機則可通過PCI總線控制器直接訪問TMS320C6713的存儲空間和外圍設(shè)備,從而實現(xiàn)PC機與TMS320C6713之間的高速數(shù)據(jù)傳輸。
在TMS320C6713 DSP與PC機實現(xiàn)高速數(shù)據(jù)傳輸?shù)姆桨钢?,可選用PLX公司的PCI9052作為兩者之間的接口;同時選用PLX公司的NM93CS46作為加載PCI9052配置信息的串行EEPROM;而用TI公司的SN74CBTD3384作為 PCI9052與TMS320C6713HPI之間的電平轉(zhuǎn)換芯片。
1 TMS320C6713的HPI簡介
1.1 TMS320C6713 HPI的接口信號
TMS320C6713的HPI是一個16位寬的并行端口。主機(上位機)掌管著該端口的主控權(quán),可通過HPI直接訪問TMS320C6713的存儲空間和外圍設(shè)備。表1給出了TMS320C6713HPI接口信號的基本特征。下面對它們的具體工作方式進行說明:
HD[15:0]:可以用作數(shù)據(jù)和地址的共用總線,通過HD[15:0]傳送的數(shù)據(jù)包括控制寄存器的設(shè)置值、初始化的訪問地址以及要傳輸?shù)臄?shù)據(jù)。
HCNTL[1:0]:用于控制當(dāng)前訪問的是HPI的哪一個寄存器,該信號同時還提供了一個對HPI數(shù)據(jù)寄存器(HPID)進行地址自增的訪問方式。在該方式下,主機會連續(xù)地訪問一個線性存儲區(qū)域,而無需反復(fù)向HPIA寫入需要的地址。表2給出了HCNTL[1:0]控制信號的功能。
HHWIL信號:用于表明并區(qū)分HD[15:0]上傳輸?shù)氖牵常参粩?shù)據(jù)中的高16位還是低16位。由于TMS320C6713芯片結(jié)構(gòu)決定了它與主機間所有的數(shù)據(jù)交換都是32位,而HPI端口為16位,所以每次數(shù)據(jù)訪問都需要進行兩次存取,而由HPI自動將HD[15:0]上連續(xù)的兩個16位數(shù)據(jù)合成32位,當(dāng)然,也可以用其進行反向分解。
HAS信號:用于復(fù)用地址數(shù)據(jù)總線的主機。它可使HCNTL、HHWIL和HR/W信號在一個存取周期中快速地實現(xiàn)狀態(tài)轉(zhuǎn)換。對于地址數(shù)據(jù)復(fù)用的總線來說,也可以為數(shù)據(jù)/地址的切換留出更多的時間。
HCS、HDS1和HDS2信號:這三種信號可在片內(nèi)組合為一個低有效的HSTROBE信號,如圖1所示。其作用是,在讀取時,在HSTROBE信號的下降沿鎖存輸入的HPI控制信號,包括HHWIL、HR/W和HC-NTL[1:0];而在寫入時,其下降沿和讀取時作用相同,其上升沿則鎖存寫入的數(shù)據(jù)。
HRDY信號:用于表明HPI是否已準(zhǔn)備好傳輸數(shù)據(jù),其作用是在接口時序上插入等待狀態(tài)。如果前一次HPI的訪問尚未完成,那么當(dāng)前訪問的第一個半字的存取需要等待,此時,HPI會置HRDY信號為高。
表1 HPI接口信號描述
信 號 管 腳 號 管 腳 數(shù) 信 號 功 能
HD[15:1] 從低到高依次為147、152、155、154、156、159、161、164、165、166、167、168、172、173、174 16 數(shù)據(jù)/地址總線
HCNTL[1:0] 從低到高依次是146、144 2 HPI訪問類型控制
HHWIL 139 1 確認(rèn)半字(16位)輸入
HAS 135 1 對復(fù)用地址數(shù)據(jù)總線的主機區(qū)分地址和數(shù)據(jù)
HR/W 143 1 讀/寫選擇
HCS 145 1 輸入數(shù)據(jù)選通
HDS1/HDS2 從低到高依次是152、151 2 輸入數(shù)據(jù)選通
HRDY 140 1 訪問HPI狀態(tài)準(zhǔn)備好
HINT 139 1 向主機發(fā)出的中斷信號
表2 HCNTL[1:0]控制信號的功能
HCNTL1 HCNTL0 功 能
0 0 主機可以對HPI的控制寄存器HPIC進行讀寫
0 1主機可以對HPI地址寄存器HPIA的進行讀寫
1 0 主機可以對HPID的數(shù)據(jù)寄存器進行讀寫操作,此時HPIA采用以字為單位的地址自增方式
1 1 主機可以對HPID的數(shù)據(jù)寄存器進行讀寫操作,但此時HPIA不受影響
1.2 TMS320C6713 HPI的控制寄存器
在TMS320C6713 HPI中,可利用三個寄存器來完成主設(shè)備和CPU的通信,它們是HPI數(shù)據(jù)寄存器(HPID)、HPI地址寄存器(HPIA)和HPI控制寄存器(HPIC)。主機可對這三個寄存器進行讀寫,而CPU只能對HPIC進行訪問。HPID中存放的是主機從存儲空間中讀取的數(shù)據(jù),或者是主機向TMS320C6713的存儲空間中寫入的數(shù)據(jù)。HPIA中存放的是主機訪問TMS320C6713存儲空間的地址,其最低兩位固定為零。HPIC中存放的是TMS320C6713的控制信息,其高16位和低16位內(nèi)容相同。
主機對HPI進行訪問的次序為:初始化HPIC、初始化HPIA、從HPID寄存器中讀取或向其寫入數(shù)據(jù)。在初始化HPIC時,HWOB位的設(shè)置是關(guān)鍵,它決定著高16位與低16位的傳輸次序。
2 PCI9052與TMS320C6713HPI的接口
PCI9052是PLX公司繼PCI9050之后推出的用于低成本適配器的總線目標(biāo)接口芯片。它支持PCI2.1協(xié)議規(guī)范,在33MHz的總線時鐘頻率下,其峰值傳輸速度可達132MB/s,因而可大大改善數(shù)據(jù)傳輸中的瓶頸問題。同時它還具有方便靈活的開發(fā)特點,正是這些特點使其在PCI從模式接口卡的設(shè)計中得到了廣泛的應(yīng)用。
表3給出了PCI9052與TMS320C6713HPI接口信號的基本特征。下面是對它們具體工作方式的一些說明:
LAD[31:0]:利用該信號可通過設(shè)置LASIBRD局部地址空間總線區(qū)域描述寄存器的總線寬度位來調(diào)整總線寬度,當(dāng)LASIBRD[23:22]=00時,采用LAD[7:0]8位寬度,當(dāng)LASIBRD[23:22]=01時,采用LAD[15:0](16位),當(dāng)LASIBRD[23:22]=10時,采用LAD[31:0](32位)。
LBE[3:0]字節(jié)使能信號是在總線寬度的基礎(chǔ)上編碼的。對于32位總線,LBE[3:0]表示哪一個字節(jié)被選中:LBE0對應(yīng)[7:0],LBE1對應(yīng)[15:8],LBE2對應(yīng)[23:16],LBE3對應(yīng)[31:24];而對于16位總線,LBE0對應(yīng)[7:0],LBE1對應(yīng)地址的第1位,LBE2不用,LBE3對應(yīng)[15:8];對于8位總線,LBE0對應(yīng)地址的第0位,LBE1對應(yīng)地址的第1位,LBE2和LBE3不用。
CS1和CS2分別帶有與之對應(yīng)的片選基地址寄存器(CSIBASE)。CSIBASE0為片選使能位,其中CSIBASE[27:1]為片選空間位。從片選空間位的第1位向第27位掃描時,遇到第1個“1”即決定了片選空間的大小,其余位則為片選空間的基地址。
LINT1和LINT2可通過中斷控制/狀態(tài)寄存器INCSR的中斷使能位INCSR[6]進行使能,同時可設(shè)置其它相關(guān)信息。
表3 PCI9052與TMS320C6713的接口信號描述
信 號 管 腳 號 管腳數(shù) 信 號 功 能
LAD[31:0] 從低到高依次為91、90、89、88、87、86、85、84、83、82、79、78、77、76、75、74、73、72、71、70、69、62、61、60、59、58、57、56、55、54、53、52 32 數(shù)據(jù)總線
LW/R 127 1 為“1”時寫,為“0”時讀
LA[27:1] 從低到高依次是92、93、94、95、96、97、98、100、101、102、105、106、107、108、109、110、111、112、113、114、115、116、117、118、119、122 27 地址總線,傳輸28位線性地址的高26位
LBE[3:0] 從低到高依次是46、47、48、49 4 字節(jié)使能信號,表示當(dāng)前總線傳輸中哪一個字節(jié)被選中
LRDY 128 1 在局部總線讀數(shù)據(jù)或可接受寫數(shù)據(jù)
ADS 123 1 表明可用地址和一次新的總線存取的起始
CS1、CS2 130、131 2 片選信號
RD 126 1 通用寫
WR 125 1 通用讀
LINT1,LINT2 137、136 2 局部中斷輸入
3 與 PC的高速數(shù)據(jù)傳輸
TMS320C6713HPI與PCI9052的具體連線如圖2所示。
實際上,在具體電路設(shè)計時,整個方案的實現(xiàn)除了需要TMS320C6713和PCI9052外,還需要有SN74CBTD3384和NM93CS46。由于TMS320C6713的I/O是在3.3V電壓下工作,而PCI9052在5V電壓下工作,所以TMS320C6713與PCI9052之間必須采用SN74CBTD3384進行電平轉(zhuǎn)換。SN74CBTD3384是TI公司生產(chǎn)的10位總線轉(zhuǎn)換器,它的輸入、輸出引腳一一對應(yīng),并分別排列在芯片的兩側(cè)封裝。圖2中共選用了三片SN74CBTD3384。NM93CS46是PLX公司生產(chǎn)的串行EEPROM存儲器,用于加載PCI9052配置信息。其中按一定順序存放著設(shè)備號(DID)、供應(yīng)商代號(VID)、子設(shè)備號(SDID)、子供應(yīng)商代號(SVID)、PCI總線與局部總線之間的地址空間映射關(guān)系、片選地址、控制位、狀態(tài)位及其它雜項配置等。上電時,PCI總線的RST信號有效,同時PCI9052輸出局部復(fù)位信號LRESET,并檢查NM93CS46是否有效。若有效,且第一個16位字不是FFFFh,那么PCI9050將根據(jù)串行EEPROM的值來設(shè)置內(nèi)部寄存器,否則采用默認(rèn)值。
考慮到TMS320C6713HPI與PCI9052間的時序配合問題,通常在連線過程中,還必須注意下列幾個問題:
(1)由于PC機中數(shù)據(jù)與地址總線是復(fù)用的,所以PCI9052的MODE引腳應(yīng)接地,而PCI9052中局部數(shù)據(jù)與地址總線是非復(fù)用的,所以TMS320C6713的HAS引腳應(yīng)接高電平。
(2)由于 TMS320C6713的HR/W信號與PCI9052的W/ R信號極性相反,因此必須通過非門進行連接。
(3)由于TMS320C6713與PCI9052分別工作在不同的時鐘頻率下,所以TMS320C6713的HRDY信號輸出必須通過D觸發(fā)器的同步后才能送入邏輯電路,以供PCI9052的LRDY信號使用。
(4)LRDY信號的邏輯表達式為:LRDY=RD.WR+(CS1+ADS+HRDY),因此,只有RD或WR有效,且CS、ADS、HRDY也有效時,LRDY才能有效。
另外,要保證TMS320C6713 HPI與PCI9052的穩(wěn)定協(xié)調(diào)工作,除了要設(shè)計合理的硬件電路外還必須對PCI9052的內(nèi)部寄存器進行準(zhǔn)確配置。關(guān)于PCI9052內(nèi)部寄存器的具體配置方法,可以參考PLX公司的用戶手冊,這里不再贅述。
筆者已將該方案應(yīng)用于某電力系統(tǒng)精確故障定位及錄波裝置中。其中,由TMS320C6713 DSP芯片構(gòu)成的高速數(shù)據(jù)采集卡用來控制電力系統(tǒng)中各電參數(shù)的采集、存儲與故障判斷。當(dāng)其HPI被設(shè)置為帶地址自增的讀方式時,可在一次故障記錄結(jié)束后,由PC機將存儲在TMS320C6713外擴SDRAM中的大量數(shù)據(jù)一次性讀入。讀入的數(shù)據(jù)可用來計算故障發(fā)生的精確位置,分析系統(tǒng)中各電參數(shù)的變化情況,同時記錄各繼電保護裝置的動作情況。
4 結(jié)束語
該方案不僅有效地解決了TMS320C6713 DSP芯片與PC機間數(shù)據(jù)傳輸?shù)钠款i問題,而且簡化了硬件設(shè)計。同時由于它支持即插即用技術(shù)。因此,由DSP構(gòu)成的高速數(shù)據(jù)采集卡具有良好的可移植性。
評論