PCI9656實(shí)現(xiàn)與CPCI總線(xiàn)通信的雷達(dá)信號(hào)處理板
由于PCI9656與DSP接口不兼容,所以用邏輯轉(zhuǎn)換器件FPGAl實(shí)現(xiàn)它們之間的連接。FPGAl中設(shè)計(jì)有一個(gè)能與ADSP—TS201S直接通信的主機(jī)接口模塊,將ADSP-TS201S主機(jī)接口與FPGAl內(nèi)的主機(jī)接口直接相連。PCI9656通過(guò)FPGAl內(nèi)主機(jī)接口間接訪問(wèn)ADSP—TS201S。FPGAl中設(shè)計(jì)16 K×32 b的雙口RAM,用于緩存PCI9656與DSP之間讀寫(xiě)數(shù)據(jù)。FPGAl一端與4片DSP相連,另一端與PCI9656局部端相連。當(dāng)出現(xiàn)多個(gè)DSP同時(shí)請(qǐng)求與PCI9656通信時(shí),F(xiàn)PGAl內(nèi)DSP開(kāi)關(guān)選擇模塊對(duì)其進(jìn)行仲裁。PCI9656根據(jù)主機(jī)的要求可以訪問(wèn)任意一片DSP。PCI9656對(duì)信號(hào)處理板上4片SDRAM的訪問(wèn)有2種方式。第一,通過(guò)DSP來(lái)間接的訪問(wèn)SDRAM,DSP先將SDRAM中數(shù)據(jù)讀到其內(nèi)部存儲(chǔ)區(qū),然后PCI9656通過(guò)訪問(wèn)DSP訪問(wèn)SDRAM;第二,在FPGAl內(nèi)設(shè)計(jì)SDRAM控制器,通過(guò)FPGAl內(nèi)控制器直接訪問(wèn)SDRAM。
2.3 PCI9656與CPCI總線(xiàn)連接設(shè)計(jì)
設(shè)計(jì)中信號(hào)處理板是6U規(guī)格,可與J1至J5五個(gè)連接頭相連。J1是32位PCI總線(xiàn),J2用于64位PCI總線(xiàn)或用戶(hù)自定義I/O口;J3,J4和J5是用戶(hù)自定義I/O口。為了保證信號(hào)處理板的通用性和可擴(kuò)展性,J1與J2連接頭作為64位數(shù)據(jù)寬度的CPCI總線(xiàn)。PCI9656一端與FPGAl相連另一端分別與兒和J2連接頭相連。需要注意的是PCI9656與CPCI連接的引腳必須插入10 Ω的匹配電阻,以降低對(duì)背板的干擾。
2.4 Rocket_IO與DSP的連接設(shè)計(jì)
信號(hào)處理板通過(guò)全雙工Rocket_IO口接收板外的采集數(shù)據(jù),數(shù)據(jù)吞吐率可達(dá)1.25 Gb/s。FPGA2實(shí)現(xiàn)Rocket_IO與DSP的LinkPort之間的接口轉(zhuǎn)換,其一端連接4路Rocket_IO口相連另一端連接每片DSP的1路LinkPort,即4路鏈路口。
DSP的每路鏈路口數(shù)據(jù)吞吐率可達(dá),1 GB/s。FPGA2對(duì).Rocket_IO口送入的數(shù)據(jù)整理后,利用鏈路口傳輸給相應(yīng)的DSP。任意一路LinkPort能與任意一路的Rocket_IO口通信,當(dāng)多路LinkPort爭(zhēng)用一路Rocket_IO口或多路Rocket_IO口爭(zhēng)用一路LinkPort時(shí),F(xiàn)PGA2內(nèi)的總線(xiàn)開(kāi)關(guān)模塊實(shí)現(xiàn)它們之間的仲裁。設(shè)計(jì)中信號(hào)處理板可以選用任意用戶(hù)自定義IO口作為Rocket_IO通道。
3 PCI9656與DSP的接口設(shè)計(jì)
PCI9656的局部端采用C模式,32位數(shù)據(jù)和32位地址線(xiàn)。PCI9656配置為直接從模式,即只有主機(jī)可以通過(guò)PCI9656申請(qǐng)局部端總線(xiàn)控制權(quán)訪問(wèn)DSP。4片DSP與FPGAl連接方式相同,這里只給出1片DSP與PCI9656之間的接1:3邏輯轉(zhuǎn)換。DSP和PCI9656的連接如圖2所示。
PCI9656對(duì)DSP的訪問(wèn)通過(guò)FPGAl間接實(shí)現(xiàn),F(xiàn)PGAl內(nèi)設(shè)計(jì)有實(shí)現(xiàn)邏輯轉(zhuǎn)換的主機(jī)接口模塊、用于數(shù)據(jù)緩存的雙口RAM模塊和DSP開(kāi)關(guān)選擇模塊。
3.1 PCI9656讀DSP
(1)PCI9656使LHOLD變高申請(qǐng)局部總線(xiàn)控制權(quán);FPGA檢測(cè)到后,立即使LHOLDA變高,告知PCI9656局部總線(xiàn)申請(qǐng)成功。PCI9656使ADS和一LW/R變低,然后發(fā)送主機(jī)地址;FPGAl依據(jù)高位地址譯碼生成DSP片選信號(hào),根據(jù)LW/R將主機(jī)接口配置為讀方式,同時(shí)使PCI9656的READY信號(hào)無(wú)效。
(2)FPGAl向相應(yīng)的DSP發(fā)HBR和RD申請(qǐng)總線(xiàn)控制權(quán)并請(qǐng)求讀數(shù)據(jù);DSP檢測(cè)到HBR后返回HBG和ACK。FPGAl檢測(cè)ACK到信號(hào)后,接收數(shù)據(jù)并緩存至雙口RAM。當(dāng)數(shù)據(jù)傳輸完畢時(shí)DSP使RD和ACK無(wú)效,撤銷(xiāo)HBG,F(xiàn)PGAl接著撤銷(xiāo)HBR。
(3)FPGAl使READY有效,PCI9656檢測(cè)到該信號(hào)后,開(kāi)始讀取雙口RAM中的數(shù)據(jù)。數(shù)據(jù)傳輸完畢后FPGAl使READY無(wú)效并收回LHOLDA,PCI9656接著撤消LHOLD,此次讀操作結(jié)束。
評(píng)論