新四季網

基於pci-e的高速圖像採集存儲卡的製作方法

2023-05-29 14:50:31 2

專利名稱:基於pci-e的高速圖像採集存儲卡的製作方法
技術領域:
本發明屬於高速圖像採集領域,特別是一種基於PCI-E的高速圖像採集存儲卡。
背景技術:
圖像與人們的生產生活息息相關,是人類獲取和交換信息的主要來源,據統計人類有80%以上的信息來自於圖像。隨著計算機及視頻技術及硬體技術的展,圖像採集在電子通信與信息處理領域得到了廣泛的應用,例如數位化廣播電視、網絡媒體、監控系統等等,視頻圖像採集存儲卡作為計算機視頻應用的重要設備,承擔著模擬信號向數位訊號轉換的任務,在現代媒體系統中佔據著重要的位置。設計一種功能靈活,使用方便,便於嵌入到系統中的視頻信號採集電路具有重要的實用意義。圖像採集系統包括圖像採集、圖像傳輸、圖像存儲、圖像處理和圖像分析等。傳統的圖像採集系統是一種基於個人計算機(PC)的系統。圖像採集存儲卡部分負責圖像信號·的獲取、採集和控制以及與計算機間的高速數據傳輸及相應的控制,PC機部分完成圖像信號的存儲、顯示等功能。無疑圖像採集存儲卡在圖像採集系統中居於核心地位。目前比較主流的幾種PC視頻接口是VGA接口、DVI接口和HDMI接口。相對而言,VGA接口比較落後,但由於它仍然是目前最多廠商所支持的一個低標準,所以,它的應用範圍是最廣泛的。由於VGA接口輸出模擬信號,在解析度提高的情況下,VGA信號所顯示的圖像有明顯的失真。DVI接口是一種數字視頻接口,它的支持較高的視頻解析度。DVI接口特別適於作為液晶顯示器的視頻信號輸入,能夠最大限度的發揮液晶顯示器清晰度高圖像失真小的優勢。但DVI接口比較大,影響了使用性能。HDMI接口是目前很新型的一款視頻接口,它是DVI接口的升級版。除了輸出數位訊號,支持較高解析度以外,它還可以同時輸出音頻信號。並且HDMI接口非常小巧,使用方便。但目前來說,HDMI接口價格偏貴。隨著PCI總線的推出,現在的圖像採集存儲卡藉助PCI總線的線性突發傳輸的特點,可採用面向計算機存儲器的圖像採集方式,即模擬圖像通過A/D轉換器後,先存於PCI總線產品自身的緩衝器中(一般只需幾K的容量),當緩衝器滿後直接把圖像數據傳輸給計算機的物理存儲器。因此電路設計較為簡化、成本低、採集速度快、數據傳輸流暢,基本滿足24幀/s的圖像採集要求。而隨著PCI-E總線的提出,又將數據傳輸的速率提升到一個新的臺階。作為第三代高性能IO總線,其總線結構採取了根本性的變革並行總線變為串行總線,引腳數大大地減少;點到點的互連。這些變革不僅提高了數據傳輸的速率,而且大大地減少了電路設計的成本。將這種總線應用到視頻採集卡中,不但能夠緩解數據吞吐速率不匹配的矛盾,還能夠簡化電路的設計
發明內容
本發明的目的在於提供一種基於PCI-E總線的圖像採集存儲卡,從而快速實現高速圖像的採集的方法。實現本發明目的的技術解決方案為一種基於PCI-E的高速圖像採集存儲卡,包括光纖傳輸模塊、A/D轉換模塊、FPGA邏輯模塊、EPCS邏輯程序存儲模塊、JTAG程序下載接口、SATA硬碟數據存儲模塊、SDRAM模塊、橋晶片和PCI-E接口,光纖傳輸模塊與A/D轉換模塊連接,PCI-E接口與橋晶片連接,A/D轉換模塊、EPCS邏輯程序存儲模塊、JTAG程序下載接口、SATA硬碟數據存儲模塊、SDRAM模塊和橋晶片分別與FPGA邏輯模塊連接,PCI-E接口通過WDM驅動程序被PC機識別,光纖傳輸模塊將採集的圖像信息傳輸進A/D轉換模塊,A/D轉換模塊將模擬信號轉化為數位訊號串行輸入到FPGA邏輯模塊,在該FPGA邏輯模塊中,將完成圖像的數據重組、PCI數據結構的組合、控制信號的產生與配合;EPCS邏輯程序存儲模塊進行板卡上電後的FPGA程序配置,完成FPGA邏輯模塊的初始化JTAG程序下載接口為FPGA程序傳輸通道,通過該接口,可以將程序固化到EPCS邏輯程序存儲模塊,SATA硬碟數據存儲模塊完成FPGA邏輯模塊對圖像處理數據的永久存儲,通過該模塊完成SATA數據 結構以及控制信號的組合,SDRAM模塊實現採集數據的串並轉換與存儲,為後續PCI-E數據結構準備傳輸數據;橋晶片將完成FPGA邏輯模塊傳輸出來的PCI信號到PCI-E的轉換。本發明與現有技術相比,其顯著優點=(I)PCI-E是新一代的I/O總線結構,與傳統總線結構不同的是它採用了點對點串行連接方式,每個設備都有自己的專用連接,不需要像傳統總線那樣共享帶寬,因此能達到PCI、AGP等並行總線所不能提供的高帶寬。(2)PCI-E總線的規格從I通道到32通道不等,其I通道單向傳輸帶寬可達250MBytes/s,8通道單向傳輸帶寬可達2GBytes/s,而32通道的單向傳輸帶寬可達8GBytes/s,可以滿足不同系統設備對數據傳輸帶寬不同的需求。(3)PCI-E採用串行方式傳遞數據,減少了接口的針腳數,降低了 PCI-E設備的體積和成本。(4)基於PCI-E總線的圖像採集系統,能有效提高系統的數據傳輸速率,是高幀頻、大數據量的實時圖像採集系統的有效解決方案。(5)同時在FPGA內部實現PCI主從模塊,從模塊實現了配置空間和IO空間寄存器,主模塊實現DMA控制器。數據傳輸時,虛擬的實現主模塊向從模塊的數據傳輸,實際上通過硬體接口,實現主模塊向PC機的DMA突發傳輸。(6)使用橋晶片進行PCI-PCIE的轉換,解決FPGA硬核成本高的問題。設計了 SATA接口模塊,實現處理的大數據磁碟陣列存儲,方便數據的備份和查詢。下面結合附圖對本發明作進一步詳細描述。


圖I是本發明的整體框圖。圖2是FPGA邏輯模塊內部框圖。圖3是FPGA晶片的AD接口模塊接口定義。圖4是AD接口模塊程序流圖。圖5是SDRAM存儲器讀寫模塊輸入輸出引腳定義。圖6是模擬PCI總線數據傳輸原理圖。圖7是PCISlave模塊接口示意圖。圖8是PC訪問I /0空間基本流程圖。
圖9是PCMaster模塊接口示意圖。圖10是PCMaster模塊狀態狀態轉移圖。圖11是WDM驅動程序工作流程圖。圖12是驅動程序與應用程式運行的整體流程。
具體實施例方式結合圖1,本發明基於PCI-E的高速圖像採集存儲卡,包括光纖傳輸模塊、A/D轉換模塊、FPGA邏輯模塊、EPCS邏輯程序存儲模塊、JTAG程序下載接口、SATA硬碟數據存儲模塊、SDRAM模塊、橋晶片和PCI-E接口,光纖傳輸模塊與A/D轉換模塊連接,PCI-E接口與橋晶片連接,A/D轉換模塊、EPCS邏輯程序存儲模塊、JTAG程序下載接口、SATA硬碟數據存儲模塊、SDRAM模塊和橋晶片分別與FPGA邏輯模塊連接,PCI-E接口通過WDM驅動程序被PC機識別,光纖傳輸模塊將採集的圖像信息傳輸進A/D轉換模塊,A/D轉換模塊將模擬信號轉化為數位訊號串行輸入到FPGA邏輯模塊,在該FPGA邏輯模塊中,將完成圖像的數據重組、PCI數據結構的組合、控制信號的產生與配合;EPCS邏輯程序存儲模塊進行板卡上電後的FPGA程序配置,完成FPGA邏輯模塊的初始化JTAG程序下載接口為FPGA程序傳輸通道,通過該接口,可以將程序固化到EPCS邏輯程序存儲模塊,SATA硬碟數據存儲模塊完成FPGA邏輯模塊對圖像處理數據的永久存儲,通過該模塊完成SATA數據結構以及控制信號的組合,SDRAM模塊實現採集數據的串並轉換與存儲,為後續PCI-E數據結構準備傳輸數據;橋晶片將完成FPGA邏輯模塊傳輸出來的PCI信號到PCI-E的轉換。結合圖2,本發明基於PCI-E的高速圖像採集存儲卡的FPGA邏輯模塊包括Arbiter仲裁模塊、SDRAM存儲器讀寫模塊、FPGA晶片、PCIMaster模塊、PCISlave模塊,Arbiter仲裁模塊、SDRAM存儲器讀寫模塊、PCIMaster模塊和PCISlave模塊的信號分別與FPGA晶片的管腳相連,為保證數據完整性和時序關係,對採集進來的AD數據分別進行桌球存儲,產生A和B兩個通道,分別緩存進FPGA晶片可配置的兩塊AD_FIF0,由Arbiter仲裁模塊對採集的數據進行讀寫控制操作;SDRAM存儲器讀寫模塊是數據緩存、重組模塊,它負責把從FPGA晶片的AD接口模塊桌球寫入兩塊AD_FIF0中的圖像數據信號讀出,存入外部SDRAM模塊中,一幀數據儲存完後,它再將SDRAM模塊中的圖像數據依次取出,放入到FPGA晶片可配置的PCI_FIF0中,等待PCMaster模塊的調用;PCISlave模塊虛擬一個PCI從設備,由PCMaster產生控制信號,配合PCI_FIF0,將數據虛擬發送到PCISlave模塊,並通過PCISlave模塊傳輸到橋晶片;PCMaSter模塊為模擬PCI主設備的功能和時序,從PCI_FIFO中讀出採樣數據,然後發起DMA寫操作,將採集的數據通過虛擬PCI從設備經橋晶片傳給PC機。結合圖3和圖4,FPGA晶片的AD接口模塊包括信號和計數器,信號為dataclk、,RGB_A、hsync、vsync、cmd_pc、data_AD、call_AD_rdreq> AD_f ifo_ack> ckinv,其中 dataclk為輸入像素頻率,RGB_A為經過AD轉換後視頻採樣信號,hsync為行頻信號,vsync為場頻信號,cmd_pc為PC機輸入的控制信號,通知AD接口模塊當前採集圖像的解析度和刷新頻率;data_AD為輸出的視頻採樣信號,call_AD_rdreq為標誌位,當一行信號數據已經在AD_FIFO中儲存完畢時置位,AD_fifo_ack在SDRAM存儲器讀寫模塊已經從AD_FIF0中讀完一行數據的時置位;ckinv為時鐘翻轉信號,具體信號流向為
(I)當PC機發起圖像採集後,AD接口模塊接收從PC機傳來的控制信號Cmd_pc,從中獲取當前採集圖像的解析度,刷新頻率;(2)等待場頻信號有效,場頻信號有效後,進入等待狀態,等待行頻信號有效後開始採集;(一般場頻信號、行頻信號置I為有效)(3)當行頻信號有效後,打開計數器,向AD_FIF0存儲色度信號,計數到指定解析度後,一行圖像數據採集完畢,並全部送入AD_FIF0,停止存儲,計數器清零;(4)通知SDRAM存儲器讀寫模塊讀取數據,然後重複上面的操作,直到數據存儲完畢。結合圖5,本發明基於PCI-E的高速圖像採集存儲卡的SDRAM存儲器讀寫模塊包括 時鐘 clklOO、AD_data、data_RGB、call_AD_rdreq> AD_f ifo_ack> cmd_pc、pci_rd_ack、pci_rd_en、ram_data、cmd、cmdack、dm,時鐘 clklOO 為 100MHz, AD_data 為 AD 接口模塊寫入 AD_FIFO中的圖像數據,data_RGB為從SDRAM模塊中讀入的圖像數據,call_AD_rdreq在一行信號數據已經在AD_FIF0中儲存完畢後置位,AD_fifo_ack在SDRAM模塊已經從AD_FIF0中讀完一行數據後置位;cmd_pC是從PC機傳入的控制信號,包含有當前採集解析度,刷新頻率;pci_rd_ack為PCIMaster模塊已經從PCI_FIF0中讀完一行數據的標誌,pci_rd_en為已經將一行數據存入PCI_FIF0中的標誌,ram_data為輸入SDRAM模塊的數據,ram_addr為選取的SDRAM模塊存儲地址,cmd、cmdack、dm為SDRAM模塊的控制信號;具體信號流向為(I)從PCMaster模塊讀入cmd_pc命令信號,確定SDRAM模塊內需要的行數和每行的點數;(2 )初始化SDRAM模塊,在等待過後配置SDRAM模塊,通過地址線ram_addr寫SDRAM模塊的內部寄存,配置讀寫模式,然後等待數個延時;配置完成後,進行讀寫SDRAM模塊的操作。結合圖7和圖8,本發明基於PCI-E的高速圖像採集存儲卡的PCISlave模塊的接口定義為clk 為 PCI 的工作頻率 55Mhz, rst 為復位信號,frame、irdy、cbe [3. . 0]、trdy、devsel、stop、parenl、ad[31. . 0]、intb、intc、intd、reqb、serr、perr、ext_add[21. . 0]分別為PCISlave模塊信號,data_rd_out為PC機讀操作標誌,data_wr為上位機寫操作標誌,iosel為10操作標誌,memsel為存儲器操作標誌,dmasel為DMA操作標誌,ext_add[21. . 0]為PCMaster寄存器地址;PCISlave模塊實現配製1/0空間寄存器,以控制DMA數據傳輸過程,訪問1/0空間寄存器的基本功能,具體信號的流向為(I)PC機下發配置信號,PCISlave模塊接收數據命令cbe [3. . 0],判決命令有效性和命令性質;(2) PCISlave模塊內部狀態機根據命令跳轉,並讀入ad[31. . 0]地址信息;(3) PCISlave模塊輸出ext_add[21. . 0]的低八位到10空間地址到PCISlave模塊選擇寄存器;(4) PCISlave 模塊使能 data_rd_out 信號,允許 PCIMaster 模塊訪問 ad[31. . 0]地址空間;(5)判決信號irdy是否為0,為0,則允許PCMaster模塊讀取配置數據,寫入寄存器,配準結束。結合圖9和圖10,本發明基於PCI-E的高速圖像採集存儲卡的PCMaster模塊的接口定義為clk為PCI工作頻率55MHz, rst為復位信號,cmd_pc[31. · O]為PC機傳輸的解析度命令接口,pci_rd_ack為PCMaster模塊已經從PCI_FIFO中讀完一行數據的標誌,pci_rd_en為SDRAM模塊已經將一行數據存入PCI_FIFO中的標誌,PCIMaster模塊的狀態轉移過程為首先由PC機對模擬PCI主設備寄存器進行配置,如中斷寄存器int_reg、DMA傳送首地址寄存器head_reg、DMA傳送大小寄存器count_reg、DMA命令寄存器master_reg、命令寄存器cmd_pc ;然後等待SDRAM模塊將一行數據存入PCI_FIFO並使pci_rd_en有效之後,發起DMA寫操作,將PCI_FIFO中的數據讀出通過模擬PCI從設備經橋晶片傳給PC機,當從PCI_FIFO中讀完一行數據後使pci_rd_ack有效,請求SDRAM存儲器讀寫模塊將下一行數據從SDRAM模塊中讀出存入PCI_FIFO,如此循環往復,直至將一幀數據傳送完畢。下面從設計的角度對本發明基於PCI-E的高速圖像採集存儲卡進一步詳細說明。結合圖1,本發明基於PCI-E的高速圖像採集存儲卡,具體實現步驟如下第一步,選用Altera公司的EP1C12F324 FPGA作為數位訊號處理核心晶片,因為它有I. 2萬個邏輯單元(LE),249個具有多種模式的I/O 口,核心電壓為1.5V,低功耗,·可以直接連接外圍的各種接口器件,如AD轉換器,SDRAM存儲晶片等。圖像輸入端的A/D或解碼模塊選用ADI公司的AD9888,因為該晶片能支持到1600x1280解析度下的圖像採集,雙通道輸出,最高採樣頻率能達到205MHz,符合設計的要求。SDRAM選用現代公司的HY57V28820HCT-K,它是一款容量為128M bytes,時鐘頻率最高支持133MHz,有4個Bank的8位存儲器,能存儲2幀以上1600x1280解析度下的圖像,滿足設計要求。由於存在和計算機大量的數據通信,我們選用了 Xl的PCI-E總線結構。它的理論速度能達到250MB/S,並且計算機控制方便。為了降低設計難度,選用了一款PCI到PCI-E的橋接晶片PLX公司的PEX8111,通過它能方便的實現PCI-E總線到PCI總線的轉換,其中PCI-E接口與PC相連,PCI接口與硬體相連,PCI總線時序由FPGA內部程序實現。第二步,本發明中,FPGA程序實現了對圖像採集及數據傳輸過程的控制。根據各個功能的不同,大致可以分為八個模塊,他們分別是光纖模塊、AD9888數據採集模塊,SDRAM存儲器讀寫模塊,PCIMaster模塊、PCISlave模塊、I2C總線配置模塊和Arbiter仲裁模塊和SATA接口模塊。除此之外還用到了 Altera自帶的一些免費IP core,如異步雙口 FIFO,PLL倍頻器和SDRAM Controller模塊等,系統框圖如圖1、2所示。第三步,如圖3所示,其中,dataclk為輸入像素頻率,RGB_A為經過AD轉換後視頻採樣信號,hsync為行頻信號,vsync為場頻信號,cmd_pc為電腦輸入的控制信號,他主要通知AD9888數據採集模塊當前採集圖像的解析度和刷新頻率,data_AD為輸出的視頻採樣信號,call_AD_rdreq為標誌位,當一行信號數據已經在AD_FIF0中儲存完畢時置位,AD_fifo_ack在SDRAM存儲器讀寫模塊已經從AD_FIF0中讀完一行數據的時置位,ckinv為時鐘翻轉信號,其它的為FIFO控制信號和測試信號。具體工作流程為(I)當PC發起圖像採集後,AD9888數據採集模塊接收從PC傳來的控制信號Cmd_pc,從中獲取當前採集圖像的解析度,刷新頻率等信息。(2)等待場頻信號(vsync)有效,場頻信號有效後,進入等待狀態,等待行頻信號(hsync)有效後開始採集。(3)當行頻信號有效後,打開計數器,(例如解析度為800x600情況下,計數器為800)向FIFO存儲色度信號(data_AD),計數到800個點後,一行圖像數據採集完畢,並全部送入FIFO,停止存儲,計數器清零。(4)通知SDRAM存儲器讀寫模塊讀取數據,然後重複上面的操作,直到數據存儲完畢。AD9888接口模塊的FPGA內部程序流程圖如圖4。 第四步,SDRAM存儲器讀寫模塊,如圖5所示,時鐘clklOO為100MHz,AD_data為AD9888寫入AD_FIF0中的圖像數據,data_RGB為從SDRAM模塊中讀入的圖像數據,call_AD_rdreq在一行信號數據已經在AD_FIF0中儲存完畢後置位,AD_fifo_ack在SDRAM模塊已經從AD_FIF0中讀完一行數據後置位。cmd_pc是從上位機傳入的控制信號,包含有當前採集解析度,刷新頻率等信息。pci_rd_ack為PCMaster模塊已經從PCI_FIF0中讀完一行數據的標誌,pci_rd_en為已經將一行數據存入PCI_FIF0中的標誌,ram_data為輸入SDRAM模塊的數據,ram_addr為選取的SDRAM模塊存儲地址,cmd, cmdack, dm為SDRAM模塊的控制信號,其它信號為AD_FIF0和PCI_FIF0的控制信號。本模塊的工作流程為(I)從PCMaster模塊讀入cmd_pc命令信號,確定SDRAM模塊內需要的行數和每行的點數。(2)初始化SDRAM模塊,硬體上電後需要200us才能穩定工作,在等待過後配置SDRAM模塊。主要是通過地址線ram_addr寫SDRAM模塊的內部寄存(mode_register),配置讀寫模式。本系統採用突發讀寫,輸出數據以頁為單位。然後等待數個延時。配置完成後,進行讀寫SDRAM模塊的操作。第五步,如圖6所示,PCIMster模塊、PCISlave模塊分別模擬了 PCI總線數據傳輸中的主設備和從設備。通過這兩個模塊之間的控制信號線交互,模擬了一個虛擬的數據通道,數據從主設備送入從設備。但實際數據並沒有送入PCISlave模塊模擬的從設備。而是通過PEX8111橋晶片轉換,送入了 PCI-E總線,最終送入了 PC的內存。PCISlave模塊的主要作用是模擬PCI 「目標設備」的功能和時序,實現PCI設備的配製空間,由上位機通Spexsiii橋接晶片完成對其的初始化配置。接收上位機發來的控制信息,通過信號對PCIMaster模塊進行控制。實現1/0空間寄存器的訪問。PCISlave模塊的接口定義如圖7所示,其中,elk為 PCI 白勺工作頻率 55Mhz, rst 為復位信號,frame> irdy、cbe[3. · 0]、trdy、devsel、stop、parenl、ad[31. . 0]、intb、intc、intd、reqb、serr、perr 分別為 PCI 局部總線信號,data_rd_out為上位機讀操作標誌,data_wr為上位機寫操作標誌,iosel為10操作標誌,memsel為存儲器操作標誌,dmasel為DMA操作標誌,ext_add[21. . 0]為PCI 「主
設備」寄存器地址。本模塊的一個主要任務就是實現配製1/0空間寄存器,以控制DMA數據傳輸過程。訪問I/o空間寄存器的基本流程如圖8所示第六步,PCMaster模塊設計如圖9所示,其中,elk為PCI工作頻率55MHz,rst為復位信號,cmd_pc [31. . 0]為上位機傳輸的解析度命令接口,pci_rd_ack為PCIMaster模塊已經從PCI_FIF0中讀完一行數據的標誌,pci_rd_en為SDRAM存儲器讀寫模塊已經將一行數據存入PCI_FIF0中的標誌,其餘為PCI局部總線信號和PCI_FIF0控制信號。本模塊狀態轉移圖如圖10所示首先由上位機對模擬PCMaster模塊寄存器進行配置,如中斷寄存器int_reg、DMA傳送首地址寄存器head_reg、DMA傳送大小寄存器count_reg.DMA命令寄存器maSter_reg、命令寄存器cmd_pc。然後等待SDRAM存儲器讀寫模塊將一行數據存入PCI_FIFO並使pci_rd_en有效之後,發起DMA寫操作,將PCI_FIFO中的數據讀出通過模擬PCI局部總線經PEX8111傳給上位機。當從PCI_FIFO中讀完一行數據後使pci_rd_ack有效,請求SDRAM模塊將下一行數據從SDRAM模塊中讀出存入PCI_FIFO,如此循環往復,直至將一幀數據傳送完畢。第七步,WDM驅動程序是為圖像採集的PCI Express高速圖像採集存儲卡服務的。由於橋接晶片簡化了操作,使設計只需操作PCI總線,而PCI總線支持即插即用,所以採用WDM模型來驅動程序將使驅動程序更加合理,支持更多的作業系統,並且在安裝維護上更加方便。設備驅動程序實質上是為作業系統提供了許多可獨立調用的模塊,一旦用戶有對外設的讀寫請求,I/O管理器就會自動調用這些模塊,再由這些模塊去與作業系統交互,從而最終達到用戶的讀寫目的。具體步驟如下 (I)創建設備,大多數的WDM設備對象都是在PnP管理器調用AddDevice入口點時創建的。這個例程在插入新設備和安裝INF文件指示這個驅動程序是要運行的驅動程序時被調用。在此之後,一系列的PnP IRP被發送到驅動程序,指示設備應何時啟動和查詢它的功能。最後,一個刪除設備PnP IRP指示設備已經被刪除,所以驅動程序刪除設備對象,如圖11所示。在創建設備後,為了使Win32可見,我們必須為每個設備創建符號連結。可以採用兩種方法創建符號連結第一種方法是採用顯示的"硬編碼"符號連結名,用戶程序必須類似的把設備名編碼到原始碼中。另外一種方法是使用設備接口,每個設備接口由一個全局唯一標誌符標誌。把設備註冊為一個特定的設備接口就創建了一個符號連結。用戶設備可以取得擁有此GUID的設備。本驅動程序採用第二種方法。在pcitio. INF文件中定義的設備接口為ClassGUID= {ff646f80-8def-lld2-9449-00105a075f6b}。(2)硬體資源分配低層的驅動程序需要知道為它們分配了哪些硬體資源。最常見的硬體資源是I/O埠、存儲器地址、中斷和DMA線。處理PnP IRP的WDM驅動程序在收到〃啟動設備〃的PnP IRP時被告知設備的資源。在本驅動程序WDM5920中分配了 I/O埠、存儲器地址和中斷資源。第八步,設備驅動程序的功能實現,X86處理器的I/O地址空間只有64KB,一個晶片的地址在I/O地址空間的範圍叫I/O映射,在I/O地址空間的設備只能通過I/O指令來訪問。KIoRange類實現對I/O映射晶片的訪問。圖像採集存儲卡驅動程序中實現埠的訪問步驟如下(I)在設備類文件pcitio. h中定義一個KIoRange類對象。KIoRange m_IoPortRangeO;(2)在pcitioDevice. cpp文件的設備啟動例程中,初始化該例程。(3)當初始化成功後,就可以調用類KIoRange的成員函數inb ( )、outb ( )、inw 、outw 、ind 和outd ,實現對I/O地址寄存器的訪問。在,驅動程序pcitioDevice.cpp中,對成員函數ind 的調用如下
PULONG pOutBuffer= (PULONG) Mem. MapToSystemSpace ;PULONG plnBuffer= (PULONG) I.IoctlBuffer Ο ;m_MemoryRangeForBassO. ind (ByteOffset, pOutBuffer, count);此外,還可以用類KIoRange實現對I/O地址寄存器的訪問,調用方法同KIoRange。第九步,驅動程序與應用程式運行的整體流程如圖12所示,(I)在系統開機後自動加載驅動程序的DriverEntry例程用來初始化驅動程序範圍的數據結構和資源。驅動程序初始化之後,計算機系統調用驅動程AddDevice例程來初始化圖像採集存儲卡設備。為其分配硬體中斷,映射圖像採集存儲卡配置空間到計算機內存,並獲取偏移基地址。(2)驅動程序進入等待狀態,由應用程式通過DeviceControl發送硬體系統配置 信息。驅動程序獲取配置信息後,通過接口函數out對圖像採集存儲卡進行配置。(3)應用程式創建一個事件,將其句柄送給驅動程序。在驅動程序中斷延遲函數DpcFor_Irq中添加喚醒事件的語句。(4)應用程式通過DeviceControl發出數據傳輸指令,驅動程序收到後,通過out函數寫圖像採集存儲卡配置空間的DMA數據傳輸寄存器,發起數據傳輸。當一幀數據傳輸完畢後,圖像採集存儲卡產生硬體中斷並自動開始下一幀數據傳輸。驅動程序收到中斷後,首先判斷是否為採集卡硬體中斷,然後通過中斷延遲函數DpCF0r_Irq中的語句喚醒應用程式事件,由應用程式完成數據讀取操做。(5)數據採集結束後,應用程式發送停止指令,驅動程序收到後控制圖像採集存儲卡停止DMA數據傳輸。第十步,PC機處理的圖像數據,經PCIE接口,FPGA中SATA控制模塊、SATA接口,傳入磁碟陣列保存。
權利要求
1.一種基於PCI-E的高速圖像採集存儲卡,其特徵在於包括光纖傳輸模塊、A/D轉換模塊、FPGA邏輯模塊、EPCS邏輯程序存儲模塊、JTAG程序下載接口、SATA硬碟數據存儲模塊、SDRAM模塊、橋晶片和PCI-E接口,光纖傳輸模塊與A/D轉換模塊連接,PCI-E接口與橋晶片連接,A/D轉換模塊、EPCS邏輯程序存儲模塊、JTAG程序下載接口、SATA硬碟數據存儲模塊、SDRAM模塊和橋晶片分別與FPGA邏輯模塊連接,PCI-E接口通過WDM驅動程序被PC機識別,光纖傳輸模塊將採集的圖像信息傳輸進A/D轉換模塊,A/D轉換模塊將模擬信號轉化為數位訊號串行輸入到FPGA邏輯模塊,在該FPGA邏輯模塊中,將完成圖像的數據重組、PCI數據結構的組合、控制信號的產生與配合;EPCS邏輯程序存儲模塊進行板卡上電後的FPGA程序配置,完成FPGA邏輯模塊的初始化JTAG程序下載接口為FPGA程序傳輸通道,通過該接口,可以將程序固化到EPCS邏輯程序存儲模塊,SATA硬碟數據存儲模塊完成FPGA邏輯模塊對圖像處理數據的永久存儲,通過該模塊完成SATA數據結構以及控制信號的組合,SDRAM模塊實現採集數據的串並轉換與存儲,為後續PCI-E數據結構準備傳輸數據;橋晶片將完成FPGA邏輯模塊傳輸出來的PCI信號到PCI-E的轉換。
2.根據權利要求I所述的基於PCI-E的高速圖像採集存儲卡,其特徵在於FPGA邏輯模塊包括Arbiter仲裁模塊、SDRAM存儲器讀寫模塊、FPGA晶片、PCMaster模塊、PCISlave模塊,Arbiter仲裁模塊、SDRAM存儲器讀寫模塊、PCIMaster模塊和PCISlave模塊的信號分別與FPGA晶片的管腳相連,為保證數據完整性和時序關係,對採集進來的AD數據分別進行桌球存儲,產生A和B兩個通道,分別緩存進FPGA晶片可配置的兩塊AD_FIFO,由Arbiter仲裁模塊對採集的數據進行讀寫控制操作;SDRAM存儲器讀寫模塊是數據緩存、重組模塊,它負責把從FPGA晶片的AD接口模塊桌球寫入兩塊AD_FIFO中的圖像數據信號讀出,存入外部SDRAM模塊中,一幀數據儲存完後,它再將SDRAM模塊中的圖像數據依次取出,放入到FPGA晶片可配置的PCI_FIFO中,等待PCMaster模塊的調用;PCISlave模塊虛擬一個PCI從設備,由PCMaster產生控制信號,配合PCI_FIFO,將數據虛擬發送到PCISlave模塊,並通過PCISlave模塊傳輸到橋晶片;PCMaSter模塊為模擬PCI主設備的功能和時序,從PCI.FIFO中讀出採樣數據,然後發起DMA寫操作,將採集的數據通過虛擬PCI從設備經橋晶片傳給PC機。
3.根據權利要求2所述的基於PCI-E的高速圖像採集存儲卡,其特徵在於FPGA晶片的AD 接口模塊包括信號和計數器,信號為 dataclk、,RGB_A、hsync、vsync、cmd_pc、data_AD、call_AD_rdreq、AD_fifo_ack、ckinv,其中 dataclk 為輸入像素頻率,RGB_A 為經過 AD 轉換後視頻採樣信號,hsync為行頻信號,vsync為場頻信號,cmd_pc為PC機輸入的控制信號,通知AD接口模塊當前採集圖像的解析度和刷新頻率;data_AD為輸出的視頻採樣信號,call_AD_rdreq為標誌位,當一行信號數據已經在AD_FIF0中儲存完畢時置位,AD_fifo_ack在SDRAM存儲器讀寫模塊已經從AD_FIF0中讀完一行數據的時置位;ckinv為時鐘翻轉信號,具體信號流向為 (1)當PC機發起圖像採集後,AD接口模塊接收從PC機傳來的控制信號Cmd_pc,從中獲取當前採集圖像的解析度,刷新頻率; (2)等待場頻信號有效,場頻信號有效後,進入等待狀態,等待行頻信號有效後開始採集; (3)當行頻信號有效後,打開計數器,向AD_FIF0存儲色度信號,計數到指定解析度後,一行圖像數據採集完畢,並全部送入AD_FIFO,停止存儲,計數器清零; (4)通知SDRAM存儲器讀寫模塊讀取數據,然後重複上面的操作,直到數據存儲完畢。
4.根據權利要求2所述的基於PCI-E的高速圖像採集存儲卡,其特徵在於SDRAM存儲器讀寫模塊包括時鐘 clklOO、AD_data、data_RGB、call_AD_rdreq、AD_fifo_ack、cmd_pc、pci_rd_ack> pci_rd_en> ram_data> cmd、cmdack、dm,時鐘 clklOO 為 100MHz, AD_data 為 AD接口模塊寫入AD_FIF0中的圖像數據,data_RGB為從SDRAM模塊中讀入的圖像數據,call_AD_rdreq在一行信號數據已經在AD_FIF0中儲存完畢後置位,AD_fifo_ack在SDRAM模塊已經從AD_FIF0中讀完一行數據後置位;cmd_pc是從PC機傳入的控制信號,包含有當前採集解析度,刷新頻率;pci_rd_ack為PCMaster模塊已經從PCI_FIF0中讀完一行數據的標誌,pci_rd_en為已經將一行數據存入PCI_FIF0中的標誌,ram_data為輸入SDRAM模塊的數據,ram_addr為選取的SDRAM模塊存儲地址,cmd、cmdack、dm為SDRAM模塊的控制信號;具體信號流向為 (1)從PCIMaster模塊讀入cmd_pc命令信號,確定SDRAM模塊內需要的行數和每行的點數; (2)初始化SDRAM模塊,在等待過後配置SDRAM模塊,通過地址線ram_addr寫SDRAM模塊的內部寄存,配置讀寫模式,然後等待數個延時;配置完成後,進行讀寫SDRAM模塊的操作。
5.根據權利要求2所述的基於PCI-E的高速圖像採集存儲卡,其特徵在於PCISlave模塊的接口定義為clk為PCI的工作頻率55Mhz, rst為復位信號,frame、irdy、cbe[3. . O]、trdy> devsel> stop、parenl、ad[31.. 0]、intb、intc、intd、reqb、serr、perr、ext_add[21. . 0]分別為PCISlave模塊信號,data_rd_out為PC機讀操作標誌,data_wr為上位機寫操作標誌,iosel為IO操作標誌,memsel為存儲器操作標誌,dmasel為DMA操作標誌,ext_add[21. . O]為PCMaster寄存器地址;PCISlave模塊實現配製I/O空間寄存器,以控制DMA數據傳輸過程,訪問I/O空間寄存器的基本功能,具體信號的流向為 (1)PC機下發配置信號,PCISlave模塊接收數據命令cbe[3.. O],判決命令有效性和命令性質; (2)PCISlave模塊內部狀態機根據命令跳轉,並讀入ad[31. . O]地址信息; (3)PCISlave模塊輸出ext_add[21. · O]的低八位到IO空間地址到PCISlave模塊選擇寄存器; (4)PCISlave模塊使能data_rd_out信號,允許PCMaster模塊訪問ad[31. . O]地址空間; (5)判決信號irdy是否為0,為0,則允許PCMaster模塊讀取配置數據,寫入寄存器,配準結束。
6.根據權利要求2所述的基於PCI-E的高速圖像採集存儲卡,其特徵在於PCIMaster模塊的接口定義為clk為PCI工作頻率55MHz,rst為復位信號,cmd_pc [31. . 0]為PC機傳輸的解析度命令接口,pci_rd_ack為PCMaster模塊已經從PCI_FIF0中讀完一行數據的標誌,pci_rd_en為SDRAM模塊已經將一行數據存入PCI_FIF0中的標誌,PCMaster模塊的狀態轉移過程為首先由PC機對模擬PCI主設備寄存器進行配置,如中斷寄存器int_reg、DMA傳送首地址寄存器head_reg、DMA傳送大小寄存器count_reg、DMA命令寄存器master_reg、命令寄存器cmd_pc ;然後等待SDRAM模塊將一行數據存入PCI_FIFO並使pci_rd_en有效之 後,發起DMA寫操作,將PCI_FIFO中的數據讀出通過模擬PCI從設備經橋晶片傳給PC機,當從PCI_FIFO中讀完一行數據後使pci_rd_ack有效,請求SDRAM存儲器讀寫模塊將下一行數據從SDRAM模塊中讀出存入PCI_FIFO,如此循環往復,直至將一幀數據傳送完畢。
全文摘要
本發明公開了一種基於PCI-E的高速圖像採集存儲卡,包括光纖傳輸模塊、A/D轉換模塊、FPGA邏輯模塊、EPCS邏輯程序存儲模塊、JTAG程序下載接口、SATA硬碟數據存儲模塊、SDRAM模塊、橋晶片和PCI-E接口,光纖傳輸模塊與A/D轉換模塊連接,PCI-E接口與橋晶片連接,A/D轉換模塊、EPCS邏輯程序存儲模塊、JTAG程序下載接口、SATA硬碟數據存儲模塊、SDRAM模塊和橋晶片分別與FPGA邏輯模塊連接。本發明從而快速實現高速圖像的採集的方法。
文檔編號G06F17/40GK102945291SQ20121027526
公開日2013年2月27日 申請日期2012年8月3日 優先權日2012年8月3日
發明者陳錢, 李超, 顧國華, 錢惟賢, 何偉基, 隋修寶, 張聞文, 路東明, 任侃, 於雪蓮, 李宏哲 申請人:南京理工大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀