專利名稱:一種高速數據采集卡及數據采集方法
技術領域:
本發明涉及一種數據采集系統及方法。
背景技術:
高分辨率成像技術的發展要求高效的圖像采集及存儲系統。隨著高分辨率成像技 術的發展,對高效可靠的圖像采集及存儲系統的需要更加迫切。目前,高分辨率成像儀的空 間分辨率、時間分辨率都大大提高。普通圖像采集及存儲系統的吞吐量嚴重不足,不能滿足 高分辨率圖像數據的實時采集和存儲要求。若不能很好的解決該類數據傳輸及存儲的問 題,將嚴重阻礙高分辨率成像技術的發展。因此,設計一種高效的實時圖像數據采集卡及數 據采集方法,實現對高分辨率成像儀數據的高速采集,可以為高分辨率成像技術提供有利 的技術支持。
發明內容
本發明目的是提供一種高速數據采集卡及數據采集方法,其解決了現有圖像采集 系統及方法不能滿足高分辨率圖像數據的實時采集技術問題。本發明的技術解決方案一種高速數據采集卡,其特殊之處在于所述數據采集卡包括接口單元、緩存單元、數據發送單元和控制單元;所述接口單元與成像儀相連接,可將LVDS信號轉換為TTL電平信號;所述緩存單元包括輸入端緩存器、高速緩存模塊、輸出端緩存器;所述輸入端緩存 器的輸入端與接口單元連接,其輸出端與高速緩存模塊連接;所述輸出端緩存器的輸入端 與高速緩存模塊連接;所述高速緩存模塊分為多個緩存塊;所述數據發送單元包括PCI接口、PCI/PCI-E橋接器;所述輸出端緩存器的輸出端 通過PCI接口與PCI/PCI-E橋接器連接;所述PCI/PCI-E橋接器用于實現PCI接口與PCI-E 接口的轉換;所述控制單元用于實現采集卡數據緩存控制。 上述接口單元包括四路數據接口通道,所述數據采集卡還包括設置在接口單元和 緩存單元間的數據整合單元,所述數據整合單元用于實現四路數據的拼接和打包。上述PCI-E接口采用PCI-EX4接口形式。上述輸入端緩存器為高速同步先進先出緩存器,所述高速緩存模塊為高速緩存 SDRAM,所述輸出端緩存器為高速同步先進先出緩存器。一種基于上述高速數據采集卡的數據采集方法,其包括以下步驟步驟1]連接成像儀、采集卡和計算機;步驟2]將高速緩存模塊的存儲空間分為η個緩存塊,記為AO A (η_1),且任意時 刻指定的寫緩存塊和讀緩存塊地址不同;設定輸入端緩存器的最大輸入緩存閾值和最小輸 入緩存閾值,設定輸出端緩存器的輸出緩存閾值;將計算機內存分為m個緩存塊,記為BO B (m-1),且任意時刻指定的寫緩存塊和讀緩存塊地址不同;步驟3]控制單元控制采集卡進行數據采集;步驟4]關閉圖像采集功能;其中步驟3]中的控制單元采用如下步驟進行數據采集步驟310]控制單元判斷輸入端緩存器狀態是否大于最大輸入緩存閾值;步驟311]若輸入端緩存器狀態大于最大輸入緩存閾值,則控制單元判斷指定的寫緩存塊是 否為可寫;若該寫緩沖塊可寫,則將指定大小的數據從輸入端緩存器寫入該緩存塊,然后返 回步驟310];若該寫緩沖塊不可寫,則判斷輸出端緩存器狀態是否大于輸出緩存閾值;若輸出端緩存器狀態小于輸出緩存閾值,則控制單元判斷指定的讀緩存塊是否為 可讀;若該讀緩沖塊可讀,則將指定大小的數據從該緩存塊讀入輸出端緩存器,然后返 回步驟310];若該讀緩沖塊不可讀,則返回步驟310];若輸出端緩存器狀態大于輸出緩存閾值,則返回步驟310];若輸入端緩存器狀態小于最大輸入緩存閾值,則判斷輸出端緩存器狀態是否小于 輸出緩存閾值;若輸出端緩存器狀態小于輸出緩存閾值,則控制單元判斷指定的讀緩存塊是否為 可讀;若該讀緩存塊可讀,則將指定大小的數據從該緩存塊讀入輸出端緩存器,然后返 回步驟310];若該讀緩存塊不可讀,則判斷輸入端緩存器狀態是否大于最小輸入緩存閾值;若輸入端緩存器狀態大于最小輸入緩存閾值,則控制單元判斷指定的寫緩存塊是 否為可寫;若該寫緩沖塊可寫,則將指定大小的數據從輸入端緩存器寫入該緩存塊,然后返 回步驟310];若該寫緩沖塊不可寫,則返回步驟310];若輸入端緩存器狀態小于最小輸入緩存閾值,則返回步驟310];若輸出端緩存器狀態大于輸出緩存閾值,則判斷輸入端緩存器狀態是否大于最小 輸入緩存閾值;若輸入端緩存器狀態大于最小輸入緩存閾值,則控制單元判斷指定的寫緩存塊是 否為可寫;若該寫緩沖塊可寫,則將指定大小的數據從輸入端緩存器寫入該緩存塊,然后返 回步驟310];若該寫緩沖塊不可寫,則返回步驟310];若輸入端緩存器狀態小于最小輸入緩存閾值,則返回步驟310]。
上述指定大小的數據是指不大于一個緩存塊空間大小的數據。上述η值取16或32 ;所述m值取16或32。上述η值取16或32 ;所述m值與η值相同。本發明的技術效果1、本發明提供的高速數據采集卡和數據采集方法解決了目前針對高分辨率成像 儀的海量數據輸出無法實現實時采集的難題,其具有以下特點圖像分辨率高、采集速率 高、實時性能好;并具有使用體積小,便于攜帶,簡單方便、工作性能穩定、可靠等優點。該采 集卡具有廣泛的應用前景,還可以用在所有的高分辨率儀器中。例如高分辨率成像光譜 儀、立體測量相機、可見光近紅外相機、短波紅外相機、熱紅外成像儀等。2、本發明方法保證了硬件數據的可靠性的同時,大大提高了采集卡的傳輸速率。3、本發明緩存空間利用率高。本發明在輸入端緩存器和輸出端緩沖區讀和寫的過 程只需保證不同時訪問同一個緩存塊,則讀寫存儲空間的利用率為(η-1)/η。η的選擇需要 均衡存儲空間的使用率、輸入端緩存器FIFO、輸出端緩存器FIFO選擇及實時采集卡速率。4、本發明為滿足PCI-EX4的帶寬需求,選擇將兩片高速緩存SDRAM合并為單路使 用,圖像數據的實時傳輸率不低于360MbyteS/S。
圖1是本發明高速數據采集卡的示意圖;圖2是本發明高速數據采集卡的結構框圖;圖3為本發明高速數據采集卡中緩存單元的結構框圖;圖4為本發明高速緩存模塊的讀寫緩存塊空間分配原理圖;圖中的blk是block 的縮寫;圖5為本發明數據采集方法的邏輯示意圖;圖中FO表示輸入端緩存器,Fl表示輸 出端緩存器。
具體實施例方式本發明高速數據采集卡包括接口單元、緩存單元、數據發送單元和控制單元;接口 單元與成像儀相連接,可將LVDS信號轉換為TTL電平信號;緩存單元包括輸入端緩存器、 高速緩存模塊、輸出端緩存器;輸入端緩存器的輸入端與接口單元連接,其輸出端與高速 緩存模塊連接;輸出端緩存器的輸入端與高速緩存模塊連接;高速緩存模塊分為多個緩存 塊;數據發送單元包括PCI接口、PCI/PCI-E橋接器;輸出端緩存器的輸出端通過PCI接口 與PCI/PCI-E橋接器連接;PCI/PCI-E橋接器用于實現PCI接口與計算機的PCI-E接口的 轉換;控制單元用于實現采集卡數據緩存控制。計算機具有高帶寬的內存,可實現數據的快 速訪問。計算機的磁盤陣列不僅可擴展硬盤空間,還大大提高了硬盤寫入速率。為了實現數據快速采集,接口單元具體可包括四路數據接口通道,高分辨率成像 儀的數據由四路通道下發;數據采集卡相應還包括設置在接口單元和緩存單元間的數據整 合單元,數據整合單元用于實現四路數據的拼接和打包,將接收的多路數據整合為一幅完 整的圖像。PCI-E接口相應采用PCI-EX4接口形式。本發明中,因圖像數據的實時傳輸率 不低于360Mbytes/s,為滿足帶寬需求,選擇將兩片高速緩存SDRAM合并為單路使用,為解決大容量數據的緩存,本發明通過SDRAM與FIFO的結合,將單口 SDRAM改進為雙口 SDRAM。 并且對SDRAM的讀寫過程進行優化。此方法保證了硬件數據可靠性的同時,大大提高了實 時采集卡的傳輸速率。控制單元、輸入端緩存器、輸出端緩存器由FPGA實現,輸入端緩存器為高速同步 先進先出緩存器(FIFO);為了避免計算機處理數據時因抖動而發生數據丟失,破壞采集卡 的可靠性,在本發明中,高速緩存模塊為兩塊高速緩存SDRAM,輸出端緩存器為高速同步先 進先出緩存器。本發明高速數據采集卡所采用的數據采集方法,包括以下步驟步驟1]連接成像儀、采集卡和計算機; 步驟2]將高速緩存模塊的存儲空間分為η個緩存塊,記為AO A (η_1),且任意時 刻指定的寫緩存塊和讀緩存塊地址不同;設定輸入端緩存器的最大輸入緩存閾值和最小輸 入緩存閾值,設定輸出端緩存器的輸出緩存閾值;將計算機內存分為m個緩存塊,記為BO B (m-1),且任意時刻指定的寫緩存塊和讀緩存塊地址不同;步驟3]控制單元控制采集卡進行數據采集;處理單元控制計算機進行數據采集;步驟4]關閉圖像采集功能;其中步驟3]中的控制單元采用如下步驟進行數據采集步驟310]控制單元判斷輸入端緩存器狀態是否大于最大輸入緩存閾值;步驟311]若輸入端緩存器狀態大于最大輸入緩存閾值,則控制單元判斷指定的寫緩存塊是 否為可寫;若該寫緩沖塊可寫,則將指定大小的數據從輸入端緩存器寫入該緩存塊,然后返 回步驟310];若該寫緩沖塊不可寫,則判斷輸出端緩存器狀態是否大于輸出緩存閾值;若輸出端緩存器狀態小于輸出緩存閾值,則控制單元判斷指定的讀緩存塊是否為 可讀;若該讀緩沖塊可讀,則將指定大小的數據從該緩存塊讀入輸出端緩存器,然后返 回步驟310];若該讀緩沖塊不可讀,則返回步驟310];若輸出端緩存器狀態大于輸出緩存閾值,則返回步驟310];若輸入端緩存器狀態小于最大輸入緩存閾值,則判斷輸出端緩存器狀態是否小于 輸出緩存閾值;若輸出端緩存器狀態小于輸出緩存閾值,則控制單元判斷指定的讀緩存塊是否為 可讀;若該讀緩存塊可讀,則將指定大小的數據從該緩存塊讀入輸出端緩存器,然后返 回步驟310];若該讀緩存塊不可讀,則判斷輸入端緩存器狀態是否大于最小輸入緩存閾值;若輸入端緩存器狀態大于最小輸入緩存閾值,則控制單元判斷指定的寫緩存塊是 否為可寫;
若該寫緩沖塊可寫,則將指定大小的數據從輸入端緩存器寫入該緩存塊,然后返 回步驟310];若該寫緩沖塊不可寫,則返回步驟310];若輸入端緩存器狀態小于最小輸入緩存閾值,則返回步驟310];若輸出端緩存器狀態大于輸出緩存閾值,則判斷輸入端緩存器狀態是否大于最小 輸入緩存閾值;若輸入端緩存器狀態大于最小輸入緩存閾值,則控制單元判斷指定的寫緩存塊是 否為可寫;若該寫緩沖塊可寫,則將指定大小的數據從輸入端緩存器寫入該緩存塊,然后返 回步驟310];若該寫緩沖塊不可寫,則返回步驟310];若輸入端緩存器狀態小于最小輸入緩存閾值,則返回步驟310]。以上步驟中指定大小的數據是指不大于一個緩存塊空間大小的數據。η值可取16或32 ;m值取16或32 ;m值與η值可相同也可不相同。圖1是本發明高速數據采集卡的示意圖。計算機采用WINDOWS XP操作系統,控制 數據采集卡和磁盤陣列,可實現對數據的采集與存儲。來自成像儀的多路數據通過數據采 集卡中的FPGA進行圖像數據拼接,形成最終實時數據流,再通過PCI-EX 4接口,以DMA方 式流入計算機內存,又以DMA方式實時寫入磁盤陣列,形成能被后期應用軟件直接使用的、 大小可超過2GB的NTFS文件。圖2為本發明高速數據采集卡的結構框圖。數據采集卡直接插在計算機的PCI-E 插槽上,成像儀與數據采集卡相連,將拍攝到的圖像數據發送到采集卡。計算機通過設備驅 動程序實現與數據采集卡的軟件接口,控制采集并實時顯示及實現其他功能。圖3為本發明數據采集方法中緩存單元的結構框圖。高速緩存由FPGA內部的FIFO 及外部的兩塊SDRAM構成。本發明中利用兩片SDRAM擴展了帶寬,使之與后續的PCI-EX4 接口匹配。FIFO與SDRAM共同組成了雙口高速緩存,大大提高了采集卡的實時性。圖4為高速緩存模塊的讀寫緩存塊空間分配原理圖。將SDRAM存儲空間分為η塊, 記為AO A(n-l)。在讀和寫的過程只需保證不不同時訪問一塊存儲空間,η的選擇需要均 衡存儲空間的使用率、FIFO選擇及實時采集卡速率,優選16和32。圖5為本發明數據采集方法的邏輯示意圖。合理有效地全局控制可以優化SDRAM 的計算機內存使用。在全局控制中數據使能優先級最高。
權利要求
一種高速數據采集卡,其特征在于所述數據采集卡包括接口單元、緩存單元、數據發送單元和控制單元;所述接口單元與成像儀相連接,可將LVDS信號轉換為TTL電平信號;所述緩存單元包括輸入端緩存器、高速緩存模塊、輸出端緩存器;所述輸入端緩存器的輸入端與接口單元連接,其輸出端與高速緩存模塊連接;所述輸出端緩存器的輸入端與高速緩存模塊連接;所述高速緩存模塊分為多個緩存塊;所述數據發送單元包括PCI接口、PCI/PCI E橋接器;所述輸出端緩存器的輸出端通過PCI接口與PCI/PCI E橋接器連接;所述PCI/PCI E橋接器用于實現PCI接口與PCI E接口的轉換;所述控制單元用于實現采集卡數據緩存控制。
2.根據權利要求1所述的高速數據采集卡,其特征在于所述接口單元包括四路數據 接口通道,所述數據采集卡還包括設置在接口單元和緩存單元間的數據整合單元,所述數 據整合單元用于實現四路數據的拼接和打包。
3.根據權利要求2所述的高速數據采集卡,其特征在于所述PCI-E接口采用 PCI-EX4接口形式。
4.根據權利要求1或2或3所述的高速數據采集卡,其特征在于所述輸入端緩存器 為高速同步先進先出緩存器,所述高速緩存模塊為高速緩存SDRAM,所述輸出端緩存器為高 速同步先進先出緩存器。
5.一種基于權利要求1所述高速數據采集卡的數據采集方法,其特征在于其包括以 下步驟步驟1]連接成像儀、采集卡和計算機;步驟2]將高速緩存模塊的存儲空間分為η個緩存塊,記為AO A (η-1),且任意時刻 指定的寫緩存塊和讀緩存塊地址不同;設定輸入端緩存器的最大輸入緩存閾值和最小輸入 緩存閾值,設定輸出端緩存器的輸出緩存閾值;將計算機內存分為m個緩存塊,記為BO B (m-1),且任意時刻指定的寫緩存塊和讀緩存塊地址不同; 步驟3]控制單元控制采集卡進行數據采集; 步驟4]關閉圖像采集功能; 其中步驟3]中的控制單元采用如下步驟進行數據采集步驟310]控制單元判斷輸入端緩存器狀態是否大于最大輸入緩存閾值;步驟311]若輸入端緩存器狀態大于最大輸入緩存閾值,則控制單元判斷指定的寫緩存塊是否為 可寫;若該寫緩沖塊可寫,則將指定大小的數據從輸入端緩存器寫入該緩存塊,然后返回步 驟 310];若該寫緩沖塊不可寫,則判斷輸出端緩存器狀態是否大于輸出緩存閾值;若輸出端緩存器狀態小于輸出緩存閾值,則控制單元判斷指定的讀緩存塊是否為可讀;若該讀緩沖塊可讀,則將指定大小的數據從該緩存塊讀入輸出端緩存器,然后返回步驟 310];若該讀緩沖塊不可讀,則返回步驟310];若輸出端緩存器狀態大于輸出緩存閾值,則返回步驟310];若輸入端緩存器狀態小于最大輸入緩存閾值,則判斷輸出端緩存器狀態是否小于輸出 緩存閾值;若輸出端緩存器狀態小于輸出緩存閾值,則控制單元判斷指定的讀緩存塊是否為可讀;若該讀緩存塊可讀,則將指定大小的數據從該緩存塊讀入輸出端緩存器,然后返回步 驟 310];若該讀緩存塊不可讀,則判斷輸入端緩存器狀態是否大于最小輸入緩存閾值; 若輸入端緩存器狀態大于最小輸入緩存閾值,則控制單元判斷指定的寫緩存塊是否為 可寫;若該寫緩沖塊可寫,則將指定大小的數據從輸入端緩存器寫入該緩存塊,然后返回步 驟 310];若該寫緩沖塊不可寫,則返回步驟310]; 若輸入端緩存器狀態小于最小輸入緩存閾值,則返回步驟310]; 若輸出端緩存器狀態大于輸出緩存閾值,則判斷輸入端緩存器狀態是否大于最小輸入 緩存閾值;若輸入端緩存器狀態大于最小輸入緩存閾值,則控制單元判斷指定的寫緩存塊是否為 可寫;若該寫緩沖塊可寫,則將指定大小的數據從輸入端緩存器寫入該緩存塊,然后返回步 驟 310];若該寫緩沖塊不可寫,則返回步驟310];若輸入端緩存器狀態小于最小輸入緩存閾值,則返回步驟310]。
6.根據權利要求5所述的數據采集方法,其特征在于所述指定大小的數據是指不大 于一個緩存塊空間大小的數據。
7.根據權利要求6所述的數據采集方法,其特征在于所述η值取16或32;所述m值 取16或32。
8.根據權利要求6所述的數據采集方法,其特征在于所述η值取16或32;所述m值 與η值相同。
全文摘要
本發明涉及一種高速數據采集卡及數據采集方法,包括接口單元、緩存單元、數據發送單元和控制單元。本發明解決了現有圖像采集系統及方法不能滿足高分辨率圖像數據的實時采集技術問題。本發明具有使用體積小,便于攜帶,簡單方便、工作性能穩定、可靠等優點。
文檔編號G06F13/38GK101901278SQ20091031186
公開日2010年12月1日 申請日期2009年12月18日 優先權日2009年12月18日
發明者劉學斌, 汲玉卓, 王彩玲, 胡炳樑, 陳小來 申請人:中國科學院西安光學精密機械研究所