蘇寧馨
(安徽新華學(xué)院,安徽 合肥 230088)
電子通信行業(yè)的蓬勃發(fā)展,帶動(dòng)了自動(dòng)化、航天航空、電子制造等產(chǎn)業(yè)的革新。在各產(chǎn)業(yè)系統(tǒng)終端數(shù)據(jù)的觀察中,信號(hào)多以模擬量的形式直觀存在并應(yīng)用。圍繞系統(tǒng)終端模擬量采集的工作,行業(yè)上和技術(shù)上也提出了很多種方法和嘗試,近年來模擬量采集電路的設(shè)計(jì)多以數(shù)模轉(zhuǎn)換集成電路的形式出現(xiàn),在機(jī)載系統(tǒng)和航天航空領(lǐng)域也逐漸提出了基于PLC、STM32的方式方法和嘗試[1]。由于不同系統(tǒng)存在環(huán)境的差異性,對(duì)多通道模擬信號(hào)采集數(shù)據(jù)的速度、精度、系統(tǒng)的穩(wěn)定性的衡量和要求都有所不同,這就使得對(duì)采集系統(tǒng)提出了更高的要求。為滿足數(shù)據(jù)采集存儲(chǔ)的可靠指標(biāo)以及不同環(huán)境下的采集要求,現(xiàn)提出一種基于FPGA的多通道ADC模擬量采集及DAC回放電路的設(shè)計(jì)。該電路可通過軟件算法提高采集精度,并保證系統(tǒng)硬件電路運(yùn)行的穩(wěn)定性和可靠性,應(yīng)用領(lǐng)域也得到了很好的擴(kuò)展[2]。
基于FPGA的多通道ADC模擬量采集及DAC回放設(shè)計(jì),系統(tǒng)硬件部分采用Altera公司現(xiàn)下最為流行的一款FPGA(Cyclone Ⅴ系列的5CEFA2F23CB核心處理器);模擬量采集部分選擇ADC084S021 作為主要元件;回放部分則采用 DAC084S085 作為模擬信號(hào)回放輸出。系統(tǒng)開發(fā)環(huán)境是在Quartus Ⅱ Ⅴ15.0完成,軟件編程采用VerilogHDL語(yǔ)句,系統(tǒng)實(shí)現(xiàn)中觀測(cè)ADC模擬量采集部分是利用SignalTap邏輯分析儀來進(jìn)行數(shù)據(jù)捕獲,DAC回放部分采用示波器直接觀測(cè)DAC084S085 通道一和通道二外接的 SMA 輸出[3-4]。
系統(tǒng)工作原理是采集部分采用四路模擬量分別接入ADC084S021 的四個(gè)輸入端口,ADC084S021與主控制器FPGA按照管腳約定規(guī)律相連接,四路輸入模擬量經(jīng)ADC084S021模數(shù)轉(zhuǎn)換送入主控制器FPGA內(nèi)部,兩路通道選擇開關(guān)與FPGA連接,用其控制輸出的通道選擇。軟件編程時(shí)按照時(shí)序工作原理將串行輸入轉(zhuǎn)換為并行輸出,并通過通道開關(guān)選擇規(guī)律進(jìn)行模擬量輸出表示,實(shí)現(xiàn)過程利用SignalTap邏輯分析儀進(jìn)行四路模擬量采集驗(yàn)證。模擬量回放部分的設(shè)計(jì)主要是利用DAC084S085四通道 CMOS 8 位電壓輸出數(shù)模轉(zhuǎn)換器(DAC),選擇其中兩路輸出作為回放結(jié)果的觀察,將DAC084S085與主控制器FPGA按照管腳約定規(guī)律相連接,利用FPGA產(chǎn)生的一個(gè) 610 Hz、Vp=3.3 V 的斜波,根據(jù)程序設(shè)計(jì),將斜波信號(hào)進(jìn)行數(shù)模轉(zhuǎn)換送至DAC084S085 的兩路輸出,并通過與FPGA主控制器外接的開關(guān)DIP13 和 DIP12 來選擇輸出。DAC084S085輸出通道一和通道 二分別接SMA 輸出,連接示波器觀察信號(hào)。系統(tǒng)總體設(shè)計(jì)框圖如圖1所示。
圖1 系統(tǒng)總體設(shè)計(jì)框圖Fig.1 Overall system design frame
ADC084S021 是一個(gè)低功耗,四通道CMOS8位模數(shù)轉(zhuǎn)換器和一個(gè)高速串行接口。與傳統(tǒng)的只在單一采樣率下指定性能的做法不同, ADC084S021 提供了更為廣泛的采樣率,其范圍為 50 kSPS 到 200 kSPS。該轉(zhuǎn)換器是基于具有內(nèi)部跟蹤和保持電路的逐次逼近寄存器結(jié)構(gòu),它有四個(gè)輸入端進(jìn)行信號(hào)輸入(IN1~I(xiàn)N4)。四路模擬量經(jīng)過 ADC084S021 轉(zhuǎn)換,進(jìn)入FPGA,經(jīng) FPGA 處理后并行輸出,在實(shí)現(xiàn)過程中通過SignalTap 邏輯分析儀來捕獲輸出數(shù)據(jù)。ADC084S021原理電路圖如圖2所示。
圖2 ADC084S021原理電路圖Fig.2 Schematic circuit diagram of ADC084S021
多通道ADC模擬量采集模塊的硬件電路連接具體方法是ADC084S021芯片Va,GND分別接電源和接地端,其四個(gè)模擬輸入端分別接不同形式的輸入信號(hào),通道一和通道二在實(shí)驗(yàn)中分別接可調(diào)電位器與光敏電阻,通道三和通道四通過 SMA作為用戶模擬量輸入,這里可以看成表示任意電壓、電流、轉(zhuǎn)速和位偏移的一些模擬量。四路模擬量輸入是通過與FPGA連接的開關(guān) DIP15和 DIP14 控制,選擇的兩路開關(guān)控制的通道選擇如表1所示,開關(guān)與FPGA連接的管腳約束如表2所示。在硬件電路設(shè)計(jì)時(shí),ADC084S021的CS、SCLK、DOUT和DIN通過Quartus Ⅱ Ⅴ15.0軟件平臺(tái)中的管腳約束和FPGA綁定,其對(duì)FPGA主控制器5CEFA2F23CB的管腳約束如表2所示。
表1 ADC084S021輸入通道選擇Table 1 ADC084S021 input channel selection
表2 ADC084S021與FPGA連接的管腳約束Table 2 Pin assignment of ADC084S021 to FPGA
系統(tǒng)DAC模擬量回放設(shè)計(jì)中使用的是DAC084S085芯片,DAC084S085是一個(gè)低功耗、四通道CMOS8位電壓輸出數(shù)模轉(zhuǎn)換器(DAC),在本次設(shè)計(jì)中只選擇了其兩路通道作為模擬量回放輸出檢測(cè),其輸出通道一和通道二分別接SMA 輸出。其原理圖如圖3所示。
圖3 DAC084S085原理電路圖Fig.3 Schematic circuit diagram of DAC084S085
回放模塊硬件電路設(shè)計(jì)的具體方法是DAC084S085 芯片VA,GND分別接電源和地端,VREF接無緩沖基準(zhǔn)電壓。SCLK、CS和DI與主控制器FPGA連接,其管腳約束也是在Quartus Ⅱ Ⅴ15.0軟件平臺(tái)進(jìn)行申明,具體要求如表3所示。VOUTA和VOUTB作為本設(shè)計(jì)的兩路輸出通道使用,在實(shí)驗(yàn)測(cè)試時(shí)接數(shù)字示波器觀察。具體工作原理是FPGA內(nèi)部編程產(chǎn)生一個(gè) 610 Hz、Vp=3.3 V 的斜波,硬件電路通過與DAC084S085 芯片相連,將FPGA產(chǎn)生的斜波信號(hào)進(jìn)行數(shù)模轉(zhuǎn)換送至DAC084S085 的兩路輸出,并通過與FPGA主控制器外接的開關(guān)DIP13 和 DIP12 來選擇通道輸出,開關(guān)狀態(tài)與輸出選擇如表4所示。
表3 DAC084S085與FPGA連接的管腳約束Table 3 Pin assignment of DAC084S085 to FPGA
表4 DAC084S085 輸出通道選擇Table 4 DAC084S085 output channel selection
本設(shè)計(jì)采用 Verilog HDL 硬件邏輯描述語(yǔ)言編寫程序,采集模塊的程序編寫時(shí)首先要分析 ADC084S021的時(shí)序圖[5-6]。ADC084S021芯片完成一次模數(shù)轉(zhuǎn)換需要16個(gè)SCLK時(shí)鐘周期,期間CS端口一直保持為低電平,串行DIN的ADD1和ADD0作為ADC084S021的通道選擇,DOUT在第5~12個(gè)SCLK時(shí)鐘周期里輸出轉(zhuǎn)換后的8位有效數(shù)據(jù)。ADC084S021時(shí)序圖如圖4所示。
圖4 ADC084S021時(shí)序圖Fig.4 ADC084S021 timing diagram
由于ADC084S021是一款 8 位四通道串行模數(shù)轉(zhuǎn)換器,在FPGA接收到其串行數(shù)據(jù)之后需要轉(zhuǎn)換成為8位并行數(shù)據(jù)存儲(chǔ)在自己的RAM中,在編程過程中主要程序代碼要完成主要幾個(gè)任務(wù):一是編程設(shè)計(jì)分頻器將FPGA的50 MΘz頻率時(shí)鐘信號(hào)進(jìn)行分頻處理,降低頻率作為ADC084S021芯片的時(shí)鐘使用;二是用計(jì)數(shù)器實(shí)現(xiàn)計(jì)SCLK的個(gè)數(shù);三是用狀態(tài)機(jī)設(shè)計(jì),實(shí)現(xiàn)在16個(gè)時(shí)鐘周期中不同狀態(tài)流程的轉(zhuǎn)換;四是進(jìn)行通道選擇讀取來自ADC084S021芯片不同通道的數(shù)據(jù);五是將FPGA接收到的8位串行輸入數(shù)據(jù)轉(zhuǎn)換成為8位并行數(shù)據(jù)并輸出。采集模塊進(jìn)行Verilog HDL編程后在Quartus Ⅱ Ⅴ15.0中的RTL veiw視圖顯示如圖5所示。
圖5 采集模塊RTL視圖Fig.5 Acquisition module RTL view
DAC084S085的一次轉(zhuǎn)換輸出也是需要16個(gè)SCLK時(shí)鐘周期,期間SYNC信號(hào)一直保持為低電平,數(shù)據(jù)信號(hào)DIN串行輸出16個(gè)bit,其中A1和A0選擇DAC084S085的輸出通道,在第5~12個(gè)SCLK時(shí)鐘周期里輸出8位數(shù)據(jù),完成一次轉(zhuǎn)換,DAC084S085時(shí)序圖如圖6所示。
圖6 DAC084S085時(shí)序圖Fig.6 DAC084S085 timing diagram
DAC回放模塊的主要程序代碼要實(shí)現(xiàn)下面幾個(gè)部分功能:一是同樣進(jìn)行分頻處理將FPGA的時(shí)鐘信號(hào)轉(zhuǎn)變成為DAC084S085芯片的時(shí)鐘使用;二是用計(jì)數(shù)器實(shí)現(xiàn)計(jì)SCLK的個(gè)數(shù);三是編程實(shí)現(xiàn)輸出通道選擇;四是編程實(shí)現(xiàn)輸出斜波信號(hào)[7]。回放模塊進(jìn)行Verilog HDL編程后在Quartus Ⅱ Ⅴ15.0中的RTL veiw視圖顯示如圖7所示。
圖7 回放模塊RTL視圖Fig.7 Playback module RTL view
對(duì)FPGA進(jìn)行通電后,將Quartus Ⅱ Ⅴ15.0編譯成功的ABC084S021工程通過下載電纜下載到FPGA主控制器。打開 SignalTap II Logic Analyzer,設(shè)置硬件連接、器件和參數(shù),開始捕獲數(shù)據(jù)。實(shí)驗(yàn)時(shí)通過DIP15和 DIP14 控制開關(guān)來選擇不同通道的輸入。通道一輸入電位器的電位變化值(十進(jìn)制的0~130左右);通道二輸入光敏電阻采集的光強(qiáng)數(shù)據(jù),實(shí)驗(yàn)結(jié)果表明光線越強(qiáng),數(shù)據(jù)越小,反之?dāng)?shù)據(jù)越大;通道三和通道四從SMA-J2和SMA-J3分別輸入5 kHz、Vpp=3.3 V、偏移量為1.65 V 的正弦波和三角波。
觀察捕獲的數(shù)據(jù)如圖8所示,第一條為電位器輸入;第二條為光敏電阻;第三條為SMA-J2正弦波輸入;第四條為SMA-J3三角波輸入。
圖8 SignalTap 捕獲信號(hào)Fig.8 SignalTap captures signals
圖9 DAC 輸出波形Fig.9 DAC output waveform
對(duì)FPGA進(jìn)行通電后,在Quartus Ⅱ Ⅴ15.0下載環(huán)境中添加DAC084S085 工程下的sof文件,將軟件編譯通過下載電纜下載到FPGA主控制器。控制撥動(dòng)開關(guān)DIP12和DIP13,當(dāng)撥為00時(shí),從SAM-J4輸出一個(gè)610 Hz、Vp=3.3 V的斜波;當(dāng)撥為10時(shí),從SAM-J5輸出一個(gè)610 Hz、Vp=3.3 V的斜波。示波器觀測(cè)出的結(jié)果如圖9所示。
本文提出了一種基于FPGA核心處理器,并結(jié)合ADC084S021和DAC084S085轉(zhuǎn)換芯片,設(shè)計(jì)的一種多通道模擬量采集和回放電路。系統(tǒng)實(shí)現(xiàn)了四路模擬量采集和兩路模擬量回放,由于在回放設(shè)計(jì)過程中只選擇了芯片的兩路通道作為測(cè)試,為后期實(shí)現(xiàn)四路全通回放設(shè)計(jì)留下了進(jìn)行一步研究的空間和思考。系統(tǒng)整體設(shè)計(jì)使用Verilog HDL語(yǔ)句按照所選芯片的工作時(shí)序要求進(jìn)行編程,軟件算法能夠提高采集精度,修正采集結(jié)果[8]。經(jīng)過實(shí)現(xiàn)結(jié)果測(cè)試,該系統(tǒng)運(yùn)行穩(wěn)定可靠,采集效率高,結(jié)果正確,可以適用于多種模擬量采集環(huán)境,為采集電路、數(shù)模轉(zhuǎn)換電路設(shè)計(jì)和模擬信號(hào)經(jīng)數(shù)字系統(tǒng)后回放電路的設(shè)計(jì)都提供了新的研究方法,具有一定的現(xiàn)實(shí)意義。