賈金明
摘要:針對(duì)傳統(tǒng)的數(shù)字電壓表可靠性低問(wèn)題,該文提出了一種基于FPGA數(shù)字電壓表的系統(tǒng)的設(shè)計(jì)。系統(tǒng)以Altera公司的高性能的FPGA芯片EP2C5T144C8N為控制核心,用硬件語(yǔ)言實(shí)現(xiàn)了數(shù)據(jù)采集、轉(zhuǎn)換、顯示等系統(tǒng)所需模塊,通過(guò)硬件下載和測(cè)試,測(cè)試結(jié)果表明,該數(shù)字電壓表測(cè)量系統(tǒng)可測(cè)量0~10V電壓值,且精度較為0.02V。此設(shè)計(jì)方法可靠性較強(qiáng)。
關(guān)鍵詞:數(shù)字電壓表;數(shù)據(jù)采集;FPGA;EP2C5T144C8N
中圖分類號(hào):TF368 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)17-0256-03
隨著電子技術(shù)的飛速發(fā)展,數(shù)字儀表在測(cè)量領(lǐng)域的作用顯得更加重要,而數(shù)字電壓表是數(shù)字儀表的核心,由于傳統(tǒng)的數(shù)字電壓表體積較大,精度較低,可靠性較差等缺點(diǎn),本文提出了一種基于FPGA數(shù)字電壓表的系統(tǒng)。該系統(tǒng)采用8位A/D轉(zhuǎn)換器芯片ADC0809對(duì)輸入的模擬電壓進(jìn)行采樣,用FPGA芯片作為整個(gè)系統(tǒng)的控制核心,采用模塊化設(shè)計(jì)方法對(duì)系統(tǒng)各個(gè)模塊進(jìn)行硬件設(shè)計(jì),通過(guò)把整個(gè)系統(tǒng)設(shè)計(jì)下載到一片F(xiàn)PGA芯片上并通過(guò)顯示模塊進(jìn)行顯示測(cè)量電壓的大小,系統(tǒng)能很好的顯示要測(cè)量的電壓量。且整個(gè)系統(tǒng)是在一片芯片上實(shí)現(xiàn)的,大大減少了傳統(tǒng)設(shè)計(jì)系統(tǒng)的分立元件數(shù)量,降低了系統(tǒng)的耗能,增加了可靠性,且能較好地實(shí)現(xiàn)了電壓的精準(zhǔn)測(cè)量。
1系統(tǒng)設(shè)計(jì)
整個(gè)系統(tǒng)可以劃分為FPGA芯片控制和A/D轉(zhuǎn)換兩部分,其中A/D轉(zhuǎn)換芯片ADC0809的作用是將系統(tǒng)輸入的模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào),將轉(zhuǎn)換后的數(shù)字信號(hào)送入FPGA芯片以待運(yùn)算和處理;七段數(shù)碼管的作用是將經(jīng)FPGA轉(zhuǎn)換后的BCD數(shù)據(jù)顯示;FPGA芯片的作用是處理和協(xié)調(diào),其中包含控制A/D數(shù)據(jù)的轉(zhuǎn)換、接收A/D轉(zhuǎn)換后的結(jié)果并進(jìn)行編碼、顯示等。系統(tǒng)的總體框圖如圖1所示。
2系統(tǒng)的軟件設(shè)計(jì)
當(dāng)系統(tǒng)處于工作狀態(tài)時(shí),先將經(jīng)A/D轉(zhuǎn)換后的8位數(shù)據(jù)送入減法器,判斷其極性以得到正確的信號(hào)正負(fù)值。然后將減法器輸出的正確信號(hào)值送入移位寄存器,將其左移兩位使得8位信號(hào)變?yōu)?0信號(hào)。移位之后把數(shù)據(jù)送到可預(yù)置值減法計(jì)數(shù)器中,當(dāng)有信號(hào)置入,減法計(jì)數(shù)器與加法計(jì)數(shù)器便同時(shí)開(kāi)始工作,當(dāng)減法計(jì)數(shù)器計(jì)數(shù)(減1計(jì)數(shù))完畢,給加法計(jì)數(shù)器發(fā)送一個(gè)停止計(jì)數(shù)的信號(hào),此時(shí)加法計(jì)數(shù)器停止計(jì)數(shù),隨后將加法計(jì)數(shù)器的三組BCD碼值送入譯碼器,將三組BCD碼譯碼為可驅(qū)動(dòng)七段顯示器的信號(hào),并將之與一組代表極性的信號(hào)同時(shí)顯示于七段顯示器上。整個(gè)信號(hào)處理電路流程圖如圖2所示。
3系統(tǒng)的硬件設(shè)計(jì)
整個(gè)系統(tǒng)的硬件電路設(shè)計(jì)由控制模塊、信號(hào)處理模塊以及顯示模塊構(gòu)成。將待測(cè)量信號(hào)(電壓信號(hào))送入A/D轉(zhuǎn)換器,再由控制模塊發(fā)出控制信號(hào),啟動(dòng)A/D轉(zhuǎn)換器的START開(kāi)始轉(zhuǎn)換,通過(guò)A/D周期采樣得到的數(shù)字信號(hào)在信號(hào)處理模塊中被轉(zhuǎn)換為與電壓信號(hào)對(duì)應(yīng)的顯示代碼,隨后顯示模塊發(fā)出控制與驅(qū)動(dòng)信號(hào),推動(dòng)外部的顯示器(LED)顯示相應(yīng)的數(shù)值,整個(gè)系統(tǒng)由外設(shè)鍵盤對(duì)系統(tǒng)進(jìn)行復(fù)位操作。信號(hào)處理模塊,將采集到的信號(hào)轉(zhuǎn)換成與電壓信號(hào)對(duì)應(yīng)的數(shù)字顯示信號(hào)。顯示模塊,是將信號(hào)處理模塊對(duì)應(yīng)輸出的BCD碼譯成7段數(shù)碼驅(qū)動(dòng)值來(lái)顯示。整個(gè)系統(tǒng)處于工作狀態(tài)時(shí),按固定的采樣周期獲取電壓信號(hào),經(jīng)ADC0809轉(zhuǎn)換為8位數(shù)字信號(hào),此8位數(shù)字信號(hào)經(jīng)FPGA芯片信號(hào)處理獲得對(duì)應(yīng)的12位數(shù)字碼,再將這12位數(shù)字碼顯示信號(hào)導(dǎo)人數(shù)碼管進(jìn)行被測(cè)電壓的顯示。對(duì)ADC0809來(lái)說(shuō),它的輸出共有256位,這表明芯片的分辨率為1/256,假設(shè)輸入電壓Vin為0~5V,則它的輸出電壓最小值是5/(256-1)=0.019V,這表明ADC0809所能處理的電壓最小值約為0.02V,整個(gè)系統(tǒng)每個(gè)模塊都是采取VHDL在QuartusⅡ編譯環(huán)境下設(shè)計(jì),整個(gè)頂層設(shè)計(jì)連接如圖3所示,ADC控制仿真波形和整個(gè)電路的仿真波形如圖4、5所示。
在AD轉(zhuǎn)換控制器中,ST為時(shí)鐘信號(hào)輸入端,仿真是輸入一個(gè)時(shí)鐘信號(hào)。ECO為轉(zhuǎn)換結(jié)束信號(hào),當(dāng)AD轉(zhuǎn)換結(jié)束時(shí),此端輸出一個(gè)高電平(在轉(zhuǎn)換期間ECO一直為低電平)。OE:數(shù)據(jù)輸出允許信號(hào),高電平有效,當(dāng)AD轉(zhuǎn)換結(jié)束時(shí)此端輸出一個(gè)高電平,才能打開(kāi)輸出三態(tài)門,輸出數(shù)字量。sta:AD轉(zhuǎn)換啟動(dòng)脈沖輸入端,輸入一個(gè)正脈沖時(shí)期啟動(dòng)(上升沿使ADC0809復(fù)位,下降沿啟動(dòng)AD轉(zhuǎn)換)。ale:地址鎖存允許信號(hào),高電平有效。adda:三位地址輸入線,用于選通八路模擬輸入中的一路。df7…0):輸入電壓。q:輸出電壓。
Start為A/D轉(zhuǎn)換啟動(dòng)使能位,高電平使能,alee為信號(hào)輸入選通端口鎖存位,上升沿使能;start使能后,狀態(tài)顯示位eoccc變?yōu)榈碗娖剑拐麄€(gè)系統(tǒng)進(jìn)人轉(zhuǎn)換模式,在此模式下st2對(duì)eoec信號(hào)位測(cè)試,要是為低電平則說(shuō)明轉(zhuǎn)換還沒(méi)有完成,仍保持在st2下等候,等到狀態(tài)反饋信號(hào)eocc跳變?yōu)楦唠娖?,轉(zhuǎn)換結(jié)束并進(jìn)入st3,并使oee變?yōu)楦唠娖剑ㄝ敵鍪鼓埽?,此時(shí)ADC0809的輸出總線d(7…0)從高阻態(tài)變?yōu)橛行л敵鲂盘?hào)。然后到狀態(tài)st4,利用鎖存信號(hào)(10ck的上升沿)將ADC0809輸出的數(shù)據(jù)進(jìn)行鎖存。鎖存的數(shù)據(jù)實(shí)質(zhì)上先存在內(nèi)部信號(hào)REGL中,再賦給輸出端口Q,這個(gè)八位REGL信號(hào),可用于后續(xù)模塊數(shù)值轉(zhuǎn)換和數(shù)碼管的動(dòng)態(tài)掃描,最終顯示電壓值。
4系統(tǒng)測(cè)試
設(shè)計(jì)采用的是EP2C5T144C8N的FPGA芯片其引腳與外圍設(shè)備的連接如圖6所示。ADC0809的ADDB、ADDC端口必須接地,時(shí)鐘信號(hào)輸入端CLOC所接的時(shí)鐘信號(hào)為48kHz。
通過(guò)對(duì)整個(gè)系統(tǒng)進(jìn)行軟硬件調(diào)試,通過(guò)后進(jìn)行硬件下載,為提高電路抗干擾性能,采取每個(gè)芯片的電源與地之間都接有去擾電容,類似數(shù)字地與模擬地分離的去干擾方式。整個(gè)系統(tǒng)的電路連接和調(diào)試成果如7圖所示。
5結(jié)束語(yǔ)
通過(guò)測(cè)試,系統(tǒng)實(shí)現(xiàn)了量程為0~10V的電壓測(cè)試,通過(guò)調(diào)節(jié)電壓輸入電位器,可以看到數(shù)碼管上顯示的數(shù)據(jù)跟著發(fā)生變化。使用該設(shè)計(jì)測(cè)一節(jié)全新的南孚堿性電池的電壓輸出值,數(shù)碼管上顯示的數(shù)值為1.599V。用數(shù)字萬(wàn)用表測(cè)量該南孚電池的電壓為1.615V.測(cè)量誤差=(1.615-1.599)=0.016V,量化誤差=(0.016/1.615)*100%=0.99%<3%,從實(shí)際測(cè)量分析,該方法設(shè)計(jì)的數(shù)字電壓表精度較高,具有很強(qiáng)的實(shí)際需求。