新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA的雙備份多路數(shù)據(jù)采集存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)

基于FPGA的雙備份多路數(shù)據(jù)采集存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)

作者: 時(shí)間:2013-04-11 來源:網(wǎng)絡(luò) 收藏

3系統(tǒng)軟件設(shè)計(jì)

3.1采集控制邏輯的設(shè)計(jì)

對(duì)于多通道異步時(shí)分采集這種形式的電路,由于在電子開關(guān)切換的過程中存在著串?dāng)_,信號(hào)受到該串?dāng)_后,濾波放大器的輸出在ADC采樣前未穩(wěn)定至其應(yīng)有的精度,就會(huì)對(duì)ADC的采樣有影響,從而影響采集精度。所以,為了解決串?dāng)_問題,只有在實(shí)踐的基礎(chǔ)上,靠經(jīng)驗(yàn)去選擇合適的運(yùn)放,或者是通過硬件與系統(tǒng)軟件優(yōu)化相結(jié)合的方法尋找解決途徑。

在確保系統(tǒng)采樣率的前提下,本設(shè)計(jì)通過硬件與軟件相結(jié)合的方法來解決串?dāng)_問題。硬件上采集模塊選擇SR(壓擺率)較高的運(yùn)放LF247作為濾波跟隨器,軟件上則以并行的工作方式確保采樣前采樣通道信號(hào)的穩(wěn)定,即在時(shí)序設(shè)計(jì)上,主程序中采用了兩個(gè)進(jìn)程:(1)完成數(shù)據(jù)的轉(zhuǎn)換、幀計(jì)數(shù)和數(shù)據(jù)的傳輸; (2)根據(jù)幀計(jì)數(shù)frame_cnt控制通道地址信號(hào)a和p進(jìn)行通道切換。這兩個(gè)進(jìn)程并行執(zhí)行。

采集控制邏輯流程圖如圖4所示。其中,a為通道選擇輸出,接ADG506的通道選擇控制端(A3~A0);P為ADG506選通信號(hào),接ADG506的片選端(EN)。

由于存儲(chǔ)器采用雙設(shè)計(jì)以及對(duì)兩片存儲(chǔ)器的寫入操作完全相同,故采集控制邏輯中分別有控制A、B片存儲(chǔ)器的控制信號(hào)wrclkA和wrclkB,數(shù)據(jù)通過MAdata、MBdata分別存入存儲(chǔ)器的A、B片中,如圖5所示。

圖5[3]是的時(shí)序轉(zhuǎn)換圖。其中,Convst為啟動(dòng)轉(zhuǎn)換信號(hào);Addr為通道地址;byte信號(hào)用于控制數(shù)據(jù)并行輸出的模式,低電平為低8位數(shù)據(jù),高電平為高8位數(shù)據(jù);ADdata 連接到AD7667的數(shù)據(jù)輸出端;數(shù)據(jù)通過ADdata輸入到。

圖5的數(shù)據(jù)轉(zhuǎn)換過程:A/D轉(zhuǎn)換器的數(shù)據(jù)采集是從Convst信號(hào)下降沿開始,Convst下降沿啟動(dòng)對(duì)n-1通道的采樣轉(zhuǎn)換, 進(jìn)入轉(zhuǎn)換進(jìn)程后,通道地址信號(hào)a和p根據(jù)幀計(jì)數(shù)切換到采集通道n, 在等待足夠的轉(zhuǎn)換時(shí)間t4后,AD7667在byte高電平的控制下從AD[7:0]輸出n-1通道高8位的轉(zhuǎn)換數(shù)據(jù),高8位數(shù)據(jù)在寫時(shí)鐘Wrclk的控制下,以足夠的時(shí)間傳輸給緩存器,AD7667在byte低電平的控制下從AD[7:0]輸出n-1通道低8位的轉(zhuǎn)換數(shù)據(jù),低8位數(shù)據(jù)在寫時(shí)鐘Wrclk的控制下,以足夠的時(shí)間傳輸給緩存器,并在傳輸?shù)耐瑫r(shí)進(jìn)入n通道的采集過程,此時(shí)n通道信號(hào)在經(jīng)過了時(shí)間t3后,已經(jīng)達(dá)到穩(wěn)定的電平。

在采集的過程中測(cè)得的Convst信號(hào)波形與運(yùn)放的輸出波形如圖6 (a)、(b)所示。

圖6 (a)、(b)中,CH1通道為Convst信號(hào),頻率約為250 MHz(采樣周期4 μs),CH2通道為運(yùn)放輸出信號(hào)。 圖6(c)、(d)分別為用LM224和LF247作為運(yùn)放時(shí)采集數(shù)據(jù)的回放波形。從圖6 (a)、(b)可以看出,在開關(guān)切換的過程中,運(yùn)算放大器輸出的信號(hào)存在劇烈抖動(dòng)。圖6(a)中測(cè)得的是用LM224作為濾波跟隨器(SR為0.3 V/?滋s)的輸出信號(hào),此濾波放大器的輸出抖動(dòng)直到ADC采樣前還未穩(wěn)定,導(dǎo)致采集到的數(shù)據(jù)波形出現(xiàn)嚴(yán)重失真,如圖6(c)所示;在圖6(b)中的豎線處,運(yùn)放的輸出也存在一定的抖動(dòng),然而,由于濾波運(yùn)放采用LF247(該運(yùn)放的SR為16 V/?滋s),其輸出在ADC采樣前已經(jīng)穩(wěn)定到極高的精度,所以用該運(yùn)放作為濾波跟隨器采集到的數(shù)據(jù)波形非常準(zhǔn)確,如圖6(d)所示。

由此可以看出,與傳統(tǒng)的流水線順序相比較,由于硬件描述語言VHDL進(jìn)程之間具有并發(fā)特性(進(jìn)程(1)與進(jìn)程(2)的并發(fā)性),這樣就必然節(jié)省了通道切換、采樣和保持的時(shí)間,同時(shí)結(jié)合硬件,選擇合適的運(yùn)放,即可保證ADC轉(zhuǎn)換之前轉(zhuǎn)換通道信號(hào)的穩(wěn)定,這就解決了通道串?dāng)_問題。

3.2 存儲(chǔ)邏輯設(shè)計(jì)

存儲(chǔ)邏輯主要包括對(duì)Flash的擦除、讀寫及識(shí)別無效塊??刂屏鞒虉D如圖7所示。

存儲(chǔ)器默認(rèn)為讀狀態(tài),上電復(fù)位時(shí)間設(shè)置為0.8 s,復(fù)位完成則判斷是否處于寫狀態(tài),若是,則記錄采編器傳輸?shù)臄?shù)據(jù),若否,則在讀請(qǐng)求信號(hào)有效時(shí)(低電平有效),送出Flash芯片內(nèi)所存數(shù)據(jù),送完256 MB自動(dòng)停止。若中間讀請(qǐng)求信號(hào)無效,存儲(chǔ)器停止送數(shù),維持當(dāng)前狀態(tài),并等待請(qǐng)求信號(hào)再次有效。

當(dāng)存儲(chǔ)器處于寫狀態(tài)時(shí),A、B片同時(shí)完成數(shù)據(jù)的記錄;當(dāng)處于讀狀態(tài)時(shí),在各自讀請(qǐng)求信號(hào)有效時(shí),分時(shí)復(fù)用采編器數(shù)據(jù)總線,先后將兩套存儲(chǔ)器數(shù)據(jù)上傳。1#存儲(chǔ)器為默認(rèn)優(yōu)先上傳存儲(chǔ)器,通過設(shè)置采編器通道切換信號(hào)為有電流狀態(tài),可選擇2#存儲(chǔ)器上傳數(shù)據(jù)。

備用讀數(shù)狀態(tài)下,分別讀取兩套存儲(chǔ)器。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉