本發明屬于通信與計算機領域,具體涉及一種基于fpga的數據采集方法及數據采集系統。
背景技術:
:綜合控制器是運載火箭控制系統箭上重要單機,主要負責箭上模擬量以及開關量的采集和輸出。現在技術中,綜合控制器在進行多路模擬量ad數據采集的時候,一般通過多路選擇器串行采集,這就難以發揮ad采集芯片的最大效能。圖1為現有技術中一種常用的綜合控制器中ad數據采集模塊系統功能圖。如圖1所示,現有的常用綜合控制器模擬量采集模塊,存在如下問題:第一,采樣速率低。數據采集模塊采用12路a/d串行采集方法,同過38譯碼器選通,a/d模塊與單片機采用端口模擬spi方式通信,單路采集耗時1ms,12通道循環周期為12ms。第二,數據訪問仲裁速度慢。如,當采用方案cpu11模塊和單片機共享單端sram,由cpld來做多路選擇器時,導致每一次單片機訪問sram至少需要14個指令周期,用于鎖定和釋放總線。同時由于模塊使用中斷方式通知cpu11總線占用,存在潛在的風險使得cpu11長時間處于中斷狀態,影響綜合控制器響應速度。技術實現要素:本發明要解決的技術問題是設計一種簡單高效、易于實現的高速ad數據采集時序,以充分發揮ad采集芯片的最大效能。基于此,本發明提出了一種基于fpga的ad數據采集方法及數據采集系統,通過設計合理的采集轉換控制時序,同時使用fpga內部的剩余資源實現雙口ram,使得數據采集模塊和處理模塊可以異步運行,最大限度的保證了綜合控制器使用的響應的實時性。根據本發明的一個方面,提供了一種基于fpga的數據采集方法,所述方法包括如下步驟:由fpga發出ad數據采集轉換控制時序,對ad芯片由fpga上升沿控制開始a/d轉換,對fpga內部由fpga下降沿控制開始數據采集;利用fpga內部剩余資源實現雙口ram,異步進行ad數據接收和數據處理。上述方案中,所述ad芯片為ad7893芯片,所述ad數據采集轉換控制時序的周期為12us。上述方案中,所述系統包括,基于fpga的數據采集處理板,ad數據轉換板,數字信號處理dsp板;其中,所述基于fpga的數據采集處理板,用于發出ad數據采集轉換控制時序,用于由fpga下降沿控制開始數據采集,由fpga上升沿控制ad數據轉換板開始a/d轉換;還用于將所采集的數據存入fpga內部,實現的雙口ram;所述ad數據轉換板與所述基于fpga的數據采集處理板相連,用于在所述基于fpga的數據采集處理板發現的轉換控制指令,對所采集的數據進行轉換;所述數字信號處理dsp板與所述基于fpga的數據采集處理板相連,用于通過所述雙口ram異步讀取所采集的數據,并用于對數據進行濾波,同時將濾波后的數據放回fpga;上述方案中,所述系統還包括:同步動態隨機存儲器sdram板,所述同步動態隨機存儲器sdram板與所述數字信號處理dsp板相連,用于動態存儲dsp板相關數據。上述方案中,所述基于fpga的數據采集處理板具有與外部cpu的通信接口,所述通信接口用于cpu讀取所述數據采集處理板中的濾波后的數據。上述方案中,所述ad數據轉換板為至少兩塊6路pcb板;所述數據采集處理板為一塊pcb板,板上的fpga用于產生12路ad數據采集時序,上述方案中,所述ad數據轉換板為ad7893芯片,所述ad數據采集轉換控制時序的周期為12us。上述方案中,所述基于fpga的數據采集處理板分為四個區,包括:ad數據采集轉換時序控制區、vbus總線接口通信區、dspemif總線接口通信區和雙口ram區。由以上本發明實施例的技術方案可以看出,基于fpga的數據采集方法及系統,通過優化采集時序,由fpga發出ad數據采集轉換控制時序,對ad芯片由fpga上升沿控制開始a/d轉換,對fpga內部由fpga下降沿控制開始數據采集;利用fpga內部剩余資源實現雙口ram,異步進行ad數據接收和數據處理,無需互斥操作,最大限度的保證數據采集轉換的實時性,同時減少系統其他的硬件開銷。附圖說明圖1為現有技術中常用的綜合控制器采集模塊系統功能圖;圖2為本發明第一實施例的基于fpga的ad數據采集系統功能框圖;圖3為本發明第一實施例的fpga內部功能框圖;圖4為采用本發明第一實施例的基于fpga的ad數據采集系統進行數據采集時的ad數據采集時序圖;圖5為采用本發明第一實施例的基于fpga的ad數據采集系統進行數據采集時的狀態轉移圖;圖6為采用本發明第一實施例的基于fpga的ad數據采集系統進行數據采集時的雙口ram數據交互時序圖。具體實施方式通過參考示范性實施例,本發明技術問題、技術方案和優點將得以闡明。然而,本發明并不受限于以下所公開的示范性實施例;可以通過不同形式來對其加以實現。說明書的實質僅僅是幫助相關領域技術人員綜合理解本發明的具體細節。下面結合具體的實施例及附圖對本發明做進一步闡述。第一實施例綜合控制器的命令執行所依賴的可編程存儲器中,現場可編程門陣列(field-programmablegatearray,fpga),是在pal、gal、cpld等可編程器件的基礎上進一步發展的產物,解決了定制電路的不足,又克服了原有可編程器件門電路數有限的缺點。本實施例的基于fpga的ad數據采集系統,以由兩塊各6路的ad數據轉換板和一塊數據采集處理板(mcu板)為例進行說明,但是在實踐中,并不限于此,本發明還可以根據需要對所述ad數據采集系統進行適應性擴充。圖2為本發明第一實施例的基于fpga的ad數據采集系統功能框圖。如圖2所示,本實施例的基于fpga的ad數據采集系統,由3塊pcb板組成,其中包括一塊數據采集處理板(mcu板),另外兩塊為各6路的ad數據轉換板,數字信號處理dsp板,同步動態隨機存儲器sdram板。其中,mcu板主要完成數據采集,板上的fpga負責產生12路ad數據采集轉換控制時序,并用于由fpga下降沿控制開始數據采集,由fpga上升沿控制ad數據轉換板開始a/d轉換;還用于將所采集的數據存入fpga內部,實現的雙口ram。進一步的,圖3為本實施例fpga內部功能框圖。如圖3所示,所述基于fpga的數據采集處理板分為四個區,包括:ad數據采集轉換時序控制區、vbus總線接口通信區、dspemif總線接口通信區和雙口ram區。mcu板上的fpga作為整個系統的控制核心,擔負著數據采集、通信等任務。特別的,所述vbus總線接口通信區,為所述基于fpga的數據采集處理板具有的與外部cpu的通信接口,所述通信接口用于cpu讀取所述數據采集處理板中的濾波后的數據,完成外部cpu與內部mcu板的通信。所述ad數據轉換板與所述基于fpga的數據采集處理板相連,用于在所述基于fpga的數據采集處理板發現的轉換控制指令,對所采集的數據進行轉換。所述數字信號處理dsp板與所述基于fpga的數據采集處理板相連,用于通過所述雙口ram異步讀取所采集的數據,并用于對數據進行濾波,同時將濾波后的數據放回fpga。所述同步動態隨機存儲器sdram板與所述數字信號處理dsp板相連,用于動態存儲dsp板相關數據。特別的,所述ad數據轉換板采用ad7893芯片,所述ad數據采集轉換控制時序的周期為12us。由于所使用的ad7893芯片每次ad轉換需要約6us的時間,另外由于其自身spi數據傳輸速率的限制,以及額外的數據存儲時間,所以設計了周期為12us的采集轉換控制時序。當本實施例的實施例的基于fpga的ad數據采集系統進行數據采集時,mcu板主要完成數據采集、濾波,并且用于和綜合控制器的cpu模塊進行通信。板上的fpga負責產生12路ad數據采集時序,同時將采集的數據存入fpga內部實現的雙口ram,供數字信號處理模塊dsp異步讀取,用于數據濾波,濾波后的數據放回fpga供綜合控制器的cpu模塊讀取最終結果。另外兩塊ad數據轉換板主要由儀放、ad7893芯片等外圍供電電路組成,用于外部電壓轉換。圖4為采用本實施例基于fpga的ad數據采集系統進行數據采集時的ad數據采集時序圖。如圖4所示,本實施例基于fpga的ad數據采集系統采用ad7893芯片,為了最大化提高采集速率,并且簡化采集時序流程,設計了該采集時序。該芯片用convst引腳控制采集,上升沿開始ad轉換,6us后通過sclk,sdata引腳串行讀入ad轉換數據。表1fpga狀態機說明現狀態名說明st_idle空閑狀態st_convertingad數據轉換中st_data_read讀取ad數據st_save將數據存入dramad數據采集使用mealy型狀態機實現,整個采集周期為12us,狀態如表1所示,狀態轉移如圖5所示。當convst信號為低時,狀態機停留在st_idle狀態,當convst信號為高時,進入st_converting狀態,表明數據正在轉換,6us后convst信號再次變低,表明轉換結束,同時進入st_data_read狀態串行讀取12路ad數據,之后順序進入st_save狀態,將數據存入內部雙端口ram,然后回到st_idle狀態,等待下次轉換開始。圖6為采用本實施例基于fpga的ad數據采集系統進行數據采集時的雙口ram數據交互時序圖。如圖6所示,采用altera提供的ip核truedualram實現,可以實現cpu模塊與dsp,fpga與dsp之間的無互斥數據交互。由以上可以看出,基于fpga的ad數據采集系統,通過優化采集時序,由fpga發出ad數據采集轉換控制時序,對ad芯片由fpga上升沿控制開始a/d轉換,對fpga內部由fpga下降沿控制開始數據采集,采用fpga來做a/d數據采集,實現并行采集,可以做到12路ad同時控制采集,最大限度的發揮ad芯片采集速率。利用fpga內部剩余資源實現雙口ram,cpu模塊與dsp,fpga與dsp之間的數據交互通過雙口ram實現,由于交互數據量不大,故而采用在fpga內部實現雙口ram的方案,異步進行ad數據接收和數據處理,這樣的雙端操作,無需互斥操作,最大限度的保證數據采集轉換的靈活性,同時減少系統其他的硬件開銷。第二實施例本實施例提供了一種基于fpga的數據采集方法,所述方法包括如下步驟:由fpga發出ad數據采集轉換控制時序,對ad芯片由fpga上升沿控制開始a/d轉換,對fpga內部由fpga下降沿控制開始數據采集;利用fpga內部剩余資源實現雙口ram,異步進行ad數據接收和數據處理。特別的,所述ad芯片為ad7893芯片,所述ad數據采集轉換控制時序的周期為12us。本實施例的基于fpga的ad數據采集方法,通過優化采集時序,由fpga發出ad數據采集轉換控制時序,對ad芯片由fpga上升沿控制開始a/d轉換,對fpga內部由fpga下降沿控制開始數據采集,采用fpga來做a/d數據采集,實現并行采集,最大限度的發揮ad芯片采集速率。利用fpga內部剩余資源實現雙口ram,cpu模塊與dsp,fpga與dsp之間的數據交互通過雙口ram實現,由于交互數據量不大,故而采用在fpga內部實現雙口ram的方案,異步進行ad數據接收和數據處理,這樣的雙端操作,無需互斥操作,最大限度的保證數據采集轉換的實時性,同時減少系統其他的硬件開銷。以上所述是本發明的優選實施方式,應當指出,對于本
技術領域:
的普通技術人員來說,在不脫離本發明所述原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。當前第1頁12