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