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