串行AD與FPGA在微型數(shù)據(jù)記錄儀中的應(yīng)用
0 引言
在現(xiàn)代電子技術(shù)應(yīng)用領(lǐng)域,A/D轉(zhuǎn)換器是模擬信號轉(zhuǎn)換數(shù)字信號的中介,數(shù)據(jù)采集系統(tǒng)中,一般由單片機(jī)或其他微控制器對高精度A/D轉(zhuǎn)換器進(jìn)行控制,通常采用軟件模擬A/D轉(zhuǎn)換器時序的方法,增加了CPU的負(fù)擔(dān),降低了CPU的工作效率,現(xiàn)場可編程門陣列FPGA(Field Programmable GateArray)的高集成度和高速特性,使之相對于單片機(jī)和微控制器更適合用于高速A/D器件的采樣控制。另外,在電磁干擾較大的環(huán)境中,單片機(jī)會出現(xiàn)程序跑飛的問題,在利用看門狗復(fù)位的過程中,對采集的數(shù)據(jù)流而言,會存在數(shù)據(jù)的丟失問題。相對的,觸發(fā)沿或電平控制的FPGA,通過設(shè)計可靠的驅(qū)動,系統(tǒng)采集數(shù)據(jù)更為可靠。
本文是以一個3通道低頻小型數(shù)據(jù)記錄儀為研究背景,設(shè)計了以Actel公司FPGA為控制器的系統(tǒng),對串行輸出A/D轉(zhuǎn)換器ADS8341進(jìn)行控制,提高了系統(tǒng)集成度和穩(wěn)定性。
1 ADS8341功能介紹
ADS8341是Burr Brown公司推出的一款低功耗,高性能的4通道,16位A/D轉(zhuǎn)換器,其串行接口降低了系統(tǒng)開發(fā)的成本,SSOP-16的小體積封裝適合微型設(shè)備使用。
1.1 ADS8341的功能
CH0~CH3:4個通道為模擬輸入端,可以設(shè)置為單通道輸入方式,也可以構(gòu)成CH0-CH1,CH2-CH3,兩組差分輸入。
:引腳低電平有效,A/D轉(zhuǎn)換器進(jìn)入低功耗模式。
Vref:參考電壓輸入端。
DCLK:系統(tǒng)的外部時鐘輸入端,最高輸入為2.4 MHz,此時芯片A/D轉(zhuǎn)換速度達(dá)到最大值,為100 ksa/s。
:A/D轉(zhuǎn)換器的片選端,低電平有效,高電平時其他引腳呈高阻態(tài)。
DIN:串行數(shù)據(jù)輸入端,片選信號有效時,在DCLK的上升沿,串行數(shù)據(jù)按位輸入A/D。
DOUT:串行數(shù)據(jù)輸出端,片選信號有效時,在DCLK的下降沿,將A/D轉(zhuǎn)換后的數(shù)字信號按位輸出。
BUSY:片選有效時,A/D轉(zhuǎn)換器輸出一個時鐘周期高電平信號。
Vcc和GND引腳分別為電源和數(shù)字接地端。
1.2 ADS8341的控制宇及轉(zhuǎn)換時序
ADS8341的控制字如表1所示:
ADS8341的控制字為8位,S為起始標(biāo)志位,A2,A1,A0控制通道選擇,可以提供單通道或差分輸入方式不同通道選擇。*****高電平為單通道輸入方式,PD1,PD0為電源控制模式位,若為“11”,電源始終處于開啟模式。
ADS8341轉(zhuǎn)換的基本時序如圖1所示。
由圖1可以看出,ADS8341完成一次轉(zhuǎn)換需要24個DCLK時鐘,其中在前8個時鐘的上升沿,DIN控制字輸入,控制字輸入完成后,在DCLK的上升沿時刻,BUSY信號輸出一個高電平,在這個時鐘的下降沿,轉(zhuǎn)換數(shù)據(jù)按位輸出。經(jīng)過一次完整的轉(zhuǎn)換后,在第25個時鐘上升沿,DIN可以再次輸入控制字高位,保證了當(dāng)DCLK外部時鐘取得最高頻率2.4 MHz時,A/D轉(zhuǎn)換器的頻率達(dá)到最高100 ksa/s。
2 基于FPGA的ADS8341控制器設(shè)計
本記錄儀系統(tǒng)記錄采集信號的頻率范圍500Hz以下,在系統(tǒng)實際應(yīng)用中,對被測信號采用過采樣方式,采樣頻率為被采集信號頻率的5~10倍。系統(tǒng)采用A/D轉(zhuǎn)換器3通道快速循環(huán)采樣,近似實現(xiàn)了通道同步采樣,是一種準(zhǔn)同步采樣的方式。經(jīng)過72個DCLK周期,實現(xiàn)了CH0~CH2通道的順序切換,當(dāng)A/D轉(zhuǎn)換器以最大采樣頻率100 ksa/s工作時,記錄儀系統(tǒng)采樣的頻率相當(dāng)于單通道頻率的1/3,通道1與通道3之間同步誤差最大為48clk,如圖2所示,最小誤差時間約為(此時采樣頻率最快),滿足系統(tǒng)對較低頻率信號采集的要求。
系統(tǒng)采用了基于FLASH架構(gòu)的Actel公司ProASIC3系列A3P100,使用Libero集成開發(fā)環(huán)境,F(xiàn)PGA的A/D控制模塊主要包含以下功能:
●時鐘控制器
記錄儀系統(tǒng)FPGA的外部時鐘頻率為48 MPa,對系統(tǒng)時鐘20分頻得到時鐘DCLK即可提供A/D轉(zhuǎn)換器的最大工作時鐘。另外通過邏輯控制,時鐘控制器提供幾個低于2.4 MHz的時鐘頻率,系統(tǒng)可以選擇更低的采樣頻率。
●不等占空比時鐘
本系統(tǒng)設(shè)計A/D控制模塊中引入clk_div時鐘信號,占空比為2:3,做為din的控制電平,當(dāng)clk_div信號為低電平時,din輸出數(shù)據(jù),clk _div信號為高電平,din為低電平。
clk_div撐(.duty_factor(duty_factorl),counter_top(counterl)).div_clkl(.reset(clk1_reset),.clk_in(clk_in1),clk_out(clk_out1));//任意占空比分頻時鐘模塊調(diào)用
●控制字狀態(tài)機(jī)
記錄儀上電以后的工作狀態(tài)為3個通道循環(huán)采樣,控制字狀態(tài)發(fā)生器循環(huán)生成chO=“1001_1111”,ch1=“101_1111”,ch2=“1010_111 1”,并將控制字轉(zhuǎn)換成串行數(shù)據(jù)從din引腳輸出,實現(xiàn)A/D轉(zhuǎn)換器通道切換。
●控制字并行轉(zhuǎn)串行模塊
控制字chO,ch1,ch2需要轉(zhuǎn)化成串行數(shù)據(jù),通過din輸入至AD,控制通道選擇,循環(huán)輸入控制字則循環(huán)選擇3通道。將狀態(tài)控制字ch0、ch1、ch2傳輸至寄存器,在DCLK時鐘下降沿,提取第7位(高位),此時數(shù)據(jù)比較穩(wěn)定,然后寄存器向左位移。在DCLK時鐘上升沿傳輸至AD,實現(xiàn)控制目的。
●信號采集模塊
A/D轉(zhuǎn)換器采集數(shù)據(jù)串行輸入FPGA后,轉(zhuǎn)換成并行數(shù)據(jù),傳輸至系統(tǒng)的數(shù)據(jù)總線。根據(jù)A/D轉(zhuǎn)換器采樣的基本時序可知,在dout引腳串行輸出數(shù)據(jù)時,din引腳應(yīng)保持低電平,為了3個采樣通道近似同步數(shù)據(jù)采集,在經(jīng)過24個DCLK時鐘周期,對一個通道數(shù)據(jù)采集轉(zhuǎn)換輸出完成后,要在DCLK的第25個時鐘的上升沿,進(jìn)入第二個通道的采集和轉(zhuǎn)換。最終實現(xiàn)記錄儀在72個DCLK時鐘周期的狀態(tài)循環(huán)時序是A/D模塊控制的關(guān)鍵。
3 計算機(jī)仿真分析與系統(tǒng)實現(xiàn)
系統(tǒng)FPGA使用Actel公司基于FLASH結(jié)構(gòu)單元的芯片,進(jìn)一步的降低了系統(tǒng)的功耗,縮小了系統(tǒng)的體積,Actel FPGA的集成開發(fā)環(huán)境Libero集成了仿真工具modelsim。以AD最高采樣頻率為例試驗,仿真時序波形如圖4。
A/D控制模塊中,在“clk_div”高電平時,實現(xiàn)寄存器“shuru”至寄存器“A”的數(shù)據(jù)傳遞,在“clk_div”低電平實現(xiàn)并行數(shù)據(jù)到串行數(shù)據(jù)的轉(zhuǎn)換,并通過“din"輸出,圖4中顯示了“din"輸出引腳3個控制字狀態(tài)的變化。
示波器顯示din引腳控制字串行輸出三組控制字的循環(huán)變化,如圖5。
4 結(jié)論
系統(tǒng)運(yùn)用FPGA電平控制多通道A/D轉(zhuǎn)換器不同通道的選通,相比較單片機(jī)而言,更為穩(wěn)定可靠,采集數(shù)據(jù)流完整,使用基于FLASH架構(gòu)的Actel公司FPGA進(jìn)一步降低了微型數(shù)據(jù)記錄儀系統(tǒng)的功耗,同時提高了系統(tǒng)在電磁干擾較強(qiáng)環(huán)境的穩(wěn)定性。
評論