狄旭明,吳建平
(成都理工大學(xué)核技術(shù)與自動(dòng)化工程學(xué)院,四川 成都 610059)
數(shù)據(jù)采集系統(tǒng)是將傳感器采集的模擬電壓信號(hào)轉(zhuǎn)換成計(jì)算機(jī)能識(shí)別的數(shù)字信號(hào),通過(guò)各種接口送入計(jì)算機(jī),使工作人員能對(duì)被監(jiān)測(cè)的物理量進(jìn)行分析。一個(gè)數(shù)據(jù)采樣系統(tǒng)性能的參數(shù)是它的采樣精度與速度,隨著電子技術(shù)的發(fā)展,對(duì)這兩項(xiàng)性能提出了越來(lái)越高的要求。傳統(tǒng)設(shè)計(jì)方法是采用單一MCU控制采樣。這種結(jié)構(gòu)方式的缺點(diǎn)是MCU的片上資源有限,難以實(shí)現(xiàn)多路信號(hào)的同時(shí)采樣;另一方面在進(jìn)行高速采樣的時(shí)候,MCU將進(jìn)行頻繁的中斷,加重了MCU運(yùn)行負(fù)荷,設(shè)計(jì)者只有選擇成本更高的高級(jí)MCU。該文采用FPGA+ARM的設(shè)計(jì)方案,讓FPGA完成對(duì)A/D的控制功能以及數(shù)據(jù)的緩存功能,實(shí)現(xiàn)了多路信號(hào)的采集,最大限度地提高了系統(tǒng)的信號(hào)采集精度和處理能力。
系統(tǒng)硬件電路設(shè)計(jì)原理如圖1所示,共分為3個(gè)主要部分:A/D轉(zhuǎn)換電路、FPGA接口電路和基于ARM的核心控制電路。
同時(shí)對(duì)16路信號(hào)進(jìn)行采樣;
被采樣信號(hào)電壓變化范圍為-10~+10V;
采樣精度為16位;
采樣速度≥200kS/s。
該系統(tǒng)實(shí)現(xiàn)對(duì)16路電壓信號(hào)采樣,每一路輸入信號(hào)經(jīng)過(guò)PGA103可編程運(yùn)放可實(shí)現(xiàn)1倍,10倍,100倍的信號(hào)放大送入A/D轉(zhuǎn)換器,放大倍數(shù)由ARM直接控制。系統(tǒng)中的采集單元共用了3塊AD7656,每塊A/D轉(zhuǎn)換器實(shí)現(xiàn)6路信號(hào)的并行采樣。由FPGA實(shí)現(xiàn)采樣過(guò)程的控制及采樣邏輯時(shí)序的產(chǎn)生,F(xiàn)PGA采集得到的數(shù)據(jù)通過(guò)與ARM的自定義總線送入ARM,并最終由ARM控制的USB接口送入上位機(jī),顯示出波形結(jié)果。
圖1 總體硬件設(shè)計(jì)結(jié)構(gòu)
根據(jù)系統(tǒng)的性能要求,A/D轉(zhuǎn)換器選用美國(guó)ADI公司的基于iCOMS工藝6通道16位雙極性逐次逼近(SAR)型ADC器件——AD7656。AD7656可以同時(shí)對(duì)6路模擬輸入進(jìn)行同時(shí)采樣,最高可達(dá)250kS/s的數(shù)據(jù)吞吐能力,能夠滿足高分辨率、多通道、高轉(zhuǎn)換速率和低功耗的要求。
要實(shí)現(xiàn)16路的信號(hào)采集一共要用3片AD7656,系統(tǒng)采用串行數(shù)據(jù)輸出模式。Dout A,Dout B,Dout C是AD7656的數(shù)據(jù)串行輸出口,每個(gè)一次轉(zhuǎn)換傳出32位數(shù)據(jù),代表兩路通道采樣結(jié)果。SER/nPAP接高電平表示采用串行輸出方式。SCLK是串行輸出時(shí)鐘,由FPGA提供。nCS,Busy為控制引腳,接到FPGA上,由硬件時(shí)序控制。
系統(tǒng)選用了Altera公司的 PGA芯片,型號(hào)為Cyclone系列的EP1CT6144,工作電壓3.3V,內(nèi)核電壓1.5 V。芯片設(shè)計(jì)采用0.13 μm工藝技術(shù)全銅SRAM工藝,其密度為5980個(gè)邏輯單元和20個(gè)128×36位RAM塊(M4K模塊),片內(nèi)總的RAM空間達(dá)到92160位,內(nèi)嵌2個(gè)鎖相環(huán)電路,1個(gè)于連接SDRAM特定雙數(shù)據(jù)率接口,工作頻率高達(dá)200MHz。采用了專用配置芯片EPCS1對(duì)FPGA進(jìn)行串行配置。FPGA對(duì)A/D信號(hào)轉(zhuǎn)換過(guò)程進(jìn)行控制的時(shí)序如圖2所示。
由于是16通道同時(shí)采樣,因此在設(shè)計(jì)過(guò)程中將3個(gè)轉(zhuǎn)換控制信號(hào)A、B、C接到一起。當(dāng)CONVST轉(zhuǎn)換信號(hào)上升沿時(shí),采集開(kāi)始,Busy信號(hào)線返回高電平,表明信號(hào)正在轉(zhuǎn)換中。當(dāng)系統(tǒng)檢測(cè)到Busy信號(hào)線產(chǎn)生下降沿,表示信號(hào)轉(zhuǎn)換結(jié)束,系統(tǒng)可以開(kāi)始讀取數(shù)據(jù),這時(shí)將nCS信號(hào)置低,6路通道的轉(zhuǎn)換數(shù)據(jù)將通過(guò)3個(gè)串行輸出口Dout A,Dout B,Dout C伴隨串行時(shí)鐘SCLK輸出到FPGA中暫存起來(lái)。
圖2 AD7656采樣數(shù)據(jù)串行輸出時(shí)序
FPGA還要實(shí)現(xiàn)與ARM的數(shù)據(jù)通信,通訊方式是采用的自定義16位總線模式。定義的信號(hào)線有:16位數(shù)據(jù)地址總線,1根地址/數(shù)據(jù)選擇線,1根讀寫(xiě)信號(hào)線,1根同步時(shí)鐘線,1根I/O中斷標(biāo)準(zhǔn)線。具體時(shí)序如圖3所示。
圖3 自定義FPGA與ARM總線時(shí)序
系統(tǒng)采用NXP的LPC2364作為核心控制器。LPC2364微控制器基于16位/32位ARM7TDMI-S的CPU,并帶有512KB嵌入的高速Flash存儲(chǔ)器。它集成了10/100以太網(wǎng)媒體訪問(wèn)控制器、帶4KB終端RAM的USB全速設(shè)備、4個(gè)UART、2路CAN通道、1個(gè)SPI接口、2個(gè)同步串行端口(SSP)、3個(gè)I2C接口以及1個(gè)I2S接口等。LPC2364主要可實(shí)現(xiàn)的功能為:通過(guò)USB口與PC機(jī)的數(shù)據(jù)通信;對(duì)FPGA的讀寫(xiě)控制;對(duì)輸入模擬信號(hào)放大倍數(shù)的設(shè)定。
對(duì)FPGA的邏輯設(shè)計(jì)分為與LPC2364的接口模塊、時(shí)鐘分頻模塊、內(nèi)部寄存器模塊、采樣控制模塊、串并轉(zhuǎn)換模塊和FIFO數(shù)據(jù)緩沖模塊,共6個(gè)部分。工作過(guò)程為:LPC2364向FPGA寫(xiě)入控制命令,設(shè)定采集過(guò)程的主要參數(shù)(采樣頻率,采樣深度等),F(xiàn)PGA通過(guò)邏輯時(shí)序電路啟動(dòng)A/D轉(zhuǎn)換,收集到轉(zhuǎn)換數(shù)據(jù)后,通過(guò)串并轉(zhuǎn)換模塊轉(zhuǎn)換為16位并行數(shù)據(jù),存入FIFO中,等待LPC2364取出數(shù)據(jù)。采樣控制模塊的狀態(tài)機(jī)部分程序如下:
為了提高采集速度和實(shí)時(shí)性,ARM主程序在uCOS II實(shí)時(shí)操作系統(tǒng)下運(yùn)行。根據(jù)系統(tǒng)功能共設(shè)置5個(gè)任務(wù):起始任務(wù)(TaskStart),讀系統(tǒng)寄存器任務(wù)(TaskRead),設(shè)置系統(tǒng)寄存器任務(wù)(TaskSet),數(shù)據(jù)采樣任務(wù)(TaskSam),放大倍數(shù)設(shè)置任務(wù)(TaskAmp)。
運(yùn)行過(guò)程為在起始任務(wù)中初始化USB接口,等待上位機(jī)發(fā)送控制命令數(shù)組,根據(jù)數(shù)組發(fā)送相應(yīng)信號(hào)量,其他四個(gè)任務(wù)接收到信號(hào)量進(jìn)入運(yùn)行態(tài),執(zhí)行對(duì)應(yīng)操作。具體的程序流程如圖4所示。
硬件采集到的信號(hào)通過(guò)USB總線傳到上位機(jī),由上位機(jī)運(yùn)行的軟件處理顯示。由于時(shí)間關(guān)系現(xiàn)只完成一個(gè)簡(jiǎn)單的測(cè)試程序,由PC機(jī)發(fā)送采集起始命令11,返回采集到的外加4V恒壓信號(hào)值,如圖5所示。
圖4 ARM控制程序流程
圖5 信號(hào)采集測(cè)試程序
基于USB的多路數(shù)據(jù)采集系統(tǒng)利用ARM+FPGA的設(shè)計(jì)模式對(duì)AD7656模/數(shù)轉(zhuǎn)換器進(jìn)行控制,實(shí)現(xiàn)了同時(shí)完成對(duì)16路-10~+10 V的模擬信號(hào)進(jìn)行采集轉(zhuǎn)換。經(jīng)試驗(yàn)測(cè)試,設(shè)計(jì)完全滿足系統(tǒng)要求,并且提高了數(shù)字信號(hào)處理的速度和精度。此外該設(shè)計(jì)的外圍電路配置簡(jiǎn)單、便于攜帶、成本低、使用靈活,有較好的應(yīng)用前景,應(yīng)用領(lǐng)域也會(huì)越來(lái)越廣泛。
[1] 劉書(shū)明,劉 斌.高性能模數(shù)與數(shù)模轉(zhuǎn)換器件[M].西安:西安電子科技大學(xué)出版社,2000.
[2] 陳茹梅,郭建碩.AD7656型模/數(shù)轉(zhuǎn)換器在信號(hào)采集系統(tǒng)中的應(yīng)用[J].國(guó)外電子元器件,2006(2):67-71.
[3] 常鐵原,王 欣,盧冬冬.AD7656與LPC2210的并行采集接口設(shè)計(jì) [J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2008(12):10-11.
[4] 朱維鈞,周有慶,王憂憂.AD7656及其在電力系統(tǒng)測(cè)控中的應(yīng)用[J].電工材料,2007(2):47-50.
[5] 黨瑞榮,湯小松,王成莉.基于AD7656的高性能輸電線監(jiān)測(cè)系統(tǒng)設(shè)計(jì)[J].計(jì)量與測(cè)試技術(shù),2008(9):8-10.
[6] 陳乃闊,李 萌.基于CAN總線的條碼掃描器管理系統(tǒng)[J].中國(guó)測(cè)試技術(shù),2008,34(6):73-76.
[7] 劉小林,范育兵.基于FPGA的多通道數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)[J].電子技術(shù)與應(yīng)用,2009.