基于PCI總線(xiàn)模塊的多通道串行數據采集系統設計
2.2 PCI T32兆核函數的內部結構及外圍信號
PCI Compiler提供的四種PCI IP包括PCI_M64/32、64/32位的主模式接口和PCI_T64/32、64/32位的從模式接口。本系統通過(guò)PCI接口與PC機傳輸32位數據,并由上位機應用程序控制系統工作。故該系統工作于32位從模式,即本系統的PCI接口使用PCI_T32模塊來(lái)實(shí)現,該模塊的內部功能及外圍信號如圖1所示。

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

同步串行通信對時(shí)鐘的同步要求非常嚴格,設計時(shí)應該注意收/發(fā)兩方必須使用同一時(shí)鐘來(lái)控制數據的傳輸。另外,PCI_T32內存讀寫(xiě)分為單周期模式和突發(fā)模式。突發(fā)模式即在給出首地址后主設備連續讀寫(xiě)多個(gè)數據,這在FPGA中需要用戶(hù)端地址每周期自動(dòng)增1的操作。
評論