基于FPGA高速數據采集與傳輸的聲幅測井系統(tǒng)
3 系統(tǒng)軟件設計
設計的數據采集系統(tǒng)是基于高性能FPGA芯片實現的,FPGA承擔了絕大部分的控制和數據處理任務,是設計的核心內容,對FPGA進行模塊化設計,是大型系統(tǒng)設計的常用方法。本項目中將FPGA分成USB控制模塊、采樣控制模塊、觸發(fā)脈沖產生模塊和RAM等幾個主要功能模塊來設計。
FPGA模塊的原理如圖3所示。其工作原理為觸發(fā)脈沖產生模塊,根據設定的參數周期性輸出脈沖信號觸發(fā)采樣控制模塊對A/D進行采樣。采樣控制模塊在接收到USB控制模塊的啟動信號后,只要接收到觸發(fā)信號就開始采樣數據,并判斷采樣數據是否滿足要求,如果滿足要求則把數據存放于RAM中,且在采樣結束后觸發(fā)USB控制模塊上傳數據。本文引用地址:http://www.biyoush.com/article/190675.htm
通電后,先對USB芯片初始化,然后如果接收到采樣結束信號或上傳結束信號并且RAM在還剩余有數據的條件下把RAM數據上傳,若接收到下傳信號,則把計算機下傳的數據按要求分配到各端口。
3.1 采樣控制模塊
采樣控制模塊根據外部觸發(fā)信號,利用狀態(tài)機對A/D的采樣行為進行控制。共有5個狀態(tài),每個狀態(tài)的動作在代碼中進行了詳細描述。
第1個狀態(tài):空閑狀態(tài)(IDLE),表示程序無任何操作,在等待外部觸發(fā)信號的到來。
第2個狀態(tài):延時1(第一個等待狀態(tài),WAIT1),表示收到觸發(fā)信號后需要禁閉A/D一段預先設定的時間,這段時間不進行任何操作。
第3個狀態(tài):找門限(門限判決狀態(tài),THDET),在規(guī)定的時間段時間里判斷A/D采樣的信號中是否有連續(xù)6個采樣大于門限的值,如果有,等待一段時間后把采樣后的數據存入緩沖區(qū)以便上傳給上位機。否則繼續(xù)等待下一個觸發(fā)信號。
第4個狀態(tài):延時2(第二個等待狀態(tài),WAIT2),表示已經滿足采樣要求后再禁閉A/D一段預先設定的時間,這段時間不進行任何操作。然后啟動A/D進行采樣。
第5個狀態(tài):采樣狀態(tài)(SAMPER),啟動A/D進行采樣,并存儲數據。
此處為米莉(Mealy)型狀態(tài)機,Mealy型狀態(tài)機的輸出不僅與現態(tài)有關,而且和輸入也有關。
該狀態(tài)機采取3段式描述方式:即使用3個always塊,第1個always塊采用同步時序描述狀態(tài)轉移;第2個always塊采用組合邏輯判斷狀態(tài)轉移條件,描述狀態(tài)轉移規(guī)律;第3個always塊描述狀態(tài)輸出。
狀態(tài)機的編碼使用獨熱碼(One-hot)編碼,獨熱碼編碼的最大優(yōu)勢在于狀態(tài)比較時僅需要比較一個位,從而一定程度上簡化了比較邏輯,減少了毛刺產生的概率。
評論