基于PCI總線模塊的多路串行數(shù)據(jù)采集系統(tǒng)
2.2 PCI T32兆核函數(shù)的內(nèi)部結(jié)構(gòu)及外圍信號
PCI Compiler提供的四種PCI IP包括PCI_M64/32、64/32位的主模式接口和PCI_T64/32、64/32位的從模式接口。本系統(tǒng)通過PCI接口與PC機傳輸32位數(shù)據(jù),并由上位機應(yīng)用程序控制系統(tǒng)工作。故該系統(tǒng)工作于32位從模式,即本系統(tǒng)的PCI接口使用PCI_T32模塊來實現(xiàn),該模塊的內(nèi)部功能及外圍信號如圖1所示。
參數(shù)配置寄存器(Parameterizde Configuration Registers)是符合PCI規(guī)范的所有配置的寄存器,可用于識別設(shè)備、控制PCI總線功能、提供PCI總線狀態(tài)等,PCI側(cè)從模式控制模塊(PCI Target Control)用于控制PCI_T32與PCI總線的各種操作,而用戶側(cè)從模式控制模塊(Local Target Control)則用于控制PCI_T32與用戶邏輯的各種操作。
PCI_T32上PCI總線一側(cè)的信號是符合PCI協(xié)議的標(biāo)準(zhǔn)信號,該信號Local側(cè)的信號為Altera PCI IP特有的與用戶邏輯接口的信號,起著關(guān)鍵作用。其中:
l_adi[31:0]為地址/數(shù)據(jù)輸入信號;
l_dato[31:0]為數(shù)據(jù)輸出信號;
l_adro [31:0]為地址輸出信號,讀操作時,可將PCI側(cè)地址/數(shù)據(jù)信號AD[31:0]上的第一個有效周期(即地址期)的數(shù)據(jù)輸出;
l_emdo[3:0]為命令輸出信號,其位定義及時序符合PCI規(guī)范,其為0010時為I/O讀操作,為0011時為I/O寫操作、為0110時為內(nèi)存讀操作。為0111時為內(nèi)存寫操作,為1010時為配置空間讀,為1011時為配置空間寫,用戶對這組信號進(jìn)行譯碼可知其當(dāng)前PCI總線上設(shè)備的操作情況;
l_irqn為用戶中斷請求信號,由于PCI總線為低電平中斷,所以,用戶邏輯若要發(fā)出PCI中斷請求,就必須將低脈沖送入l_irqn。實驗證明,低脈沖持續(xù)時間須在4~8μs之間,持續(xù)時間過短會出現(xiàn)丟失中斷現(xiàn)象,而時間過長時,操作系統(tǒng)又會重復(fù)響應(yīng)同一個中斷請求;
l_tsr[11:0]可用于控制local目標(biāo)設(shè)備狀態(tài)寄存器,其中D0~D5位分別對應(yīng)BAR0~BAR5,哪位有效代表哪個BAR被選中;
l_dxfrn為輸出信號,表示local目標(biāo)設(shè)備數(shù)據(jù)傳輸成功。
2.3 FAGA邏輯設(shè)計
一個數(shù)據(jù)采集系統(tǒng)若要穩(wěn)定可靠地采集數(shù)據(jù),都需要設(shè)置合適的數(shù)據(jù)緩沖區(qū),本系統(tǒng)的數(shù)據(jù)緩沖區(qū)由FPGA內(nèi)部IP核實現(xiàn)。圖2所示為FPGA內(nèi)部的PCI接口及數(shù)據(jù)緩沖區(qū)框圖。
評論