一種新穎的簡(jiǎn)易多通道虛擬示波器的技術(shù)研究
摘要:本文通過(guò)LabVIEW虛擬實(shí)驗(yàn)軟件平臺(tái)設(shè)計(jì)了一種利用ATmegal6單片機(jī)進(jìn)行數(shù)據(jù)采集,通過(guò)RS232串行通信將數(shù)據(jù)傳送給 PC的簡(jiǎn)易虛擬示波器。用戶可以在開發(fā)平臺(tái)上對(duì)數(shù)據(jù)采集參數(shù)進(jìn)行設(shè)置和調(diào)整以及對(duì)波形數(shù)據(jù)存儲(chǔ)。本系統(tǒng)的創(chuàng)新點(diǎn)是擺脫了傳統(tǒng)開發(fā)平臺(tái)的限制,具有多通道、方便、靈活等特點(diǎn),在數(shù)據(jù)采集、傳感器監(jiān)測(cè)等領(lǐng)域有重要應(yīng)用。
關(guān)鍵詞:虛擬示波器;串口通信;LabVIEW;ATmegal6
0 引言
虛擬儀器是基于PC技術(shù)發(fā)展起來(lái)的,所以完全“繼承”了以現(xiàn)成即用的PC技術(shù)為主導(dǎo)的最新商業(yè)技術(shù)的優(yōu)點(diǎn),包括功能超卓的處理器和文件I/O,使在數(shù)據(jù)導(dǎo)入磁盤的同時(shí)就能實(shí)時(shí)地進(jìn)行復(fù)雜的分析。為了實(shí)時(shí)、準(zhǔn)確地測(cè)量輸入波形的參數(shù),本文采用自帶8路lO位ADC的單片機(jī)ATmegal6,結(jié)合簡(jiǎn)單的外圍電路,即可將輸入波形實(shí)時(shí)傳送給PC機(jī)進(jìn)行處理。通過(guò)PC機(jī)上虛擬儀器平臺(tái)LabVIEW開發(fā)的上位機(jī)軟件對(duì)波形進(jìn)行顯示和處理,從而達(dá)到簡(jiǎn)易虛擬示波器的效果。
1 簡(jiǎn)易多通道虛擬示波器系統(tǒng)的設(shè)計(jì)
簡(jiǎn)易多通道虛擬示波器系統(tǒng)的原理方框圖如圖1所示,數(shù)據(jù)采集由主控芯片ATmegal6進(jìn)行,采集后的數(shù)據(jù)通過(guò)RS232串口通信芯片Max232將 TTL電平轉(zhuǎn)換為RS232電平,提供與PC機(jī)的接口,將數(shù)據(jù)量傳送給PC機(jī)的LabVIEW開發(fā)平臺(tái),平臺(tái)內(nèi)上位機(jī)軟件接收來(lái)自串口的數(shù)據(jù),經(jīng)校驗(yàn)等處理后通過(guò)波形顯示控件將采集到的波形顯示出來(lái)。同時(shí)單片機(jī)能接收上位機(jī)傳送來(lái)的數(shù)據(jù),從而控制數(shù)據(jù)采集的速度和精度以及采集的通道。
1.1 數(shù)據(jù)采集電路
ATmegal6單片機(jī)是美國(guó)Atmel公司生產(chǎn)的基于增強(qiáng)的AVR RISC結(jié)構(gòu)的低功耗8位CMOS微控制器。ATmegal6有如下特點(diǎn):16k字節(jié)的系統(tǒng)內(nèi)可編程Flash(具有同時(shí)讀寫的能力,即RWW),512 字節(jié)EEPROM,1k字節(jié)SRAM,32個(gè)通用I/O口線,32個(gè)通用工作寄存器,用于邊界掃描的JTAG接口,支持片內(nèi)調(diào)試與編程,三個(gè)具有比較模式的靈活的定時(shí)器/計(jì)數(shù)器(T/C),片內(nèi)/外中斷,可編程串行USART,有起始條件檢測(cè)器的通用串行接口,8路1O位具有可選差分輸入級(jí)可編程增益 (TQFP封裝)的ADC,具有片內(nèi)振蕩器的可編程看門狗定時(shí)器。一個(gè)SPI串行端口,以及六個(gè)可以通過(guò)軟件進(jìn)行選擇的省電模式。
本設(shè)計(jì)正是利用ATmegal6的8路1O位可編程增益的逐次比較型ADC及可編程異步串行接口的內(nèi)部資源,從而簡(jiǎn)化了電路設(shè)計(jì)的難度及編程難度。采樣電路的電路圖如圖2所示,ATmegal6只需結(jié)合簡(jiǎn)單的晶振電路和復(fù)位電路就可以完成本設(shè)計(jì)的需求。模擬信號(hào)通過(guò)8路模擬輸入的任意端口輸入即可,通過(guò)單片機(jī)內(nèi)部程序控制,很容易就將輸入模擬量轉(zhuǎn)化為數(shù)字量。單片機(jī)再通過(guò)串行接口傳輸給PC機(jī),串行通信通過(guò)串行發(fā)送引腳TXD(PD1)和串行接收引腳 RXD(PD0)連接串行通信接口電路實(shí)現(xiàn)數(shù)據(jù)的串行傳送與接收。
1.2 串口通信接口電路
本系統(tǒng)設(shè)計(jì)中通過(guò)Max232連接單片機(jī)和PC機(jī)。ATmegal6具有異步串行通訊接口(UART),UART是為能與計(jì)算機(jī)通訊的全雙工異步系統(tǒng)。本系統(tǒng)采用RS232接口方式,由于RS232信號(hào)電平與AVR單片機(jī)信號(hào)電平(TTL電平)不一致,因此在采用RS232標(biāo)準(zhǔn)時(shí)必須進(jìn)行信號(hào)電平轉(zhuǎn)換。在串行通信的接口電路中選用MAX232芯片作為信號(hào)電平轉(zhuǎn)換芯片,實(shí)現(xiàn)TTL電平和RS232接口電平之間的轉(zhuǎn)換。從而把 ATmegal6內(nèi)部需要傳送的數(shù)字信號(hào)準(zhǔn)確無(wú)誤地傳輸給PC機(jī),供上位機(jī)軟件讀取并進(jìn)行信號(hào)處理。
串行接口電路原理圖如圖3所示,TTL電平引腳輸入引腳9、10,連接ATmegal6的串行發(fā)送接口TXD和串行接收接口RXD,通過(guò)電平轉(zhuǎn)換為 RS232電平,通過(guò)7腳和8腳連接串行接口的2腳和3腳,串行接口通過(guò)串行通信線連接采樣模塊的串行接口和PC機(jī)的串行接口。ATmegal6通過(guò)內(nèi)部編程很方便地把數(shù)據(jù)傳送給PC機(jī)。
1.3 多通道采樣原理
由于ATmegal6內(nèi)部ADC為8選1數(shù)據(jù)通道,在具體實(shí)現(xiàn)某路數(shù)據(jù)采集時(shí)就必須更改多工選擇寄存器ADMUX的數(shù)值。為能隨時(shí)更改通道,本設(shè)計(jì)采用主從方式,通過(guò)上位機(jī)發(fā)送給ATmegal6的數(shù)值來(lái)改變通道。在ATmegal6的串行中斷的接收中斷中,通過(guò)判斷接收的數(shù)值更改 ADMUX的數(shù)值。同時(shí),在串行接口接收中斷中,通過(guò)接收的數(shù)值的編碼也可用來(lái)改變ADC相鄰兩次轉(zhuǎn)換之間的延時(shí)值,從而達(dá)到改變轉(zhuǎn)換速率的效果。
當(dāng)需要采集雙通道數(shù)值時(shí),單片機(jī)內(nèi)部ADC可采用分時(shí)復(fù)用的原則,同時(shí)將獲得的八位數(shù)據(jù)加一個(gè)最高標(biāo)志位,擴(kuò)展為九位數(shù)據(jù)位。上位機(jī)通過(guò)對(duì)數(shù)據(jù)的最高位的校驗(yàn),可以很方便地區(qū)分?jǐn)?shù)據(jù),在顯示界面上將雙通道波形實(shí)時(shí)顯示更新。
2 系統(tǒng)軟件設(shè)計(jì)
2.1 下位機(jī)軟件設(shè)計(jì)
下位機(jī)軟件設(shè)計(jì)的關(guān)鍵是能使程序正確響應(yīng)中斷服務(wù)程序,從而準(zhǔn)確地完成ADC的轉(zhuǎn)換和數(shù)據(jù)的準(zhǔn)確傳送。圖4即為下位機(jī)程序的程序流程圖。主函數(shù)運(yùn)行隨即進(jìn)行串口和ADC寄存器的初始化,然后啟動(dòng)ADC的第一次轉(zhuǎn)換,隨即進(jìn)入等待中斷狀態(tài),若接收到停止信號(hào),系統(tǒng)馬上停止。在串口接收中斷中,進(jìn)入中斷隨即讀取中斷接收值,通過(guò)判斷接收值的大小,改變系統(tǒng)采樣通道值和ADC轉(zhuǎn)換速率值。改變完成后中斷返回。此時(shí),系統(tǒng)根據(jù)新的參數(shù)值運(yùn)行。ADC轉(zhuǎn)換完成中斷產(chǎn)生后,讀取當(dāng)前轉(zhuǎn)換值,讀取完成后進(jìn)行數(shù)字均值濾波,降低輸入信號(hào)的干擾。濾波完成后將結(jié)果通過(guò)串行通信傳送給PC機(jī)。然后進(jìn)行延時(shí)后啟動(dòng)下一次的轉(zhuǎn)換后中斷返回。整個(gè)過(guò)程中,系統(tǒng)通過(guò)中斷方式完成,具有響應(yīng)及時(shí)、提高單片機(jī)處理內(nèi)部和外部事件能力的特點(diǎn)。
2.2 上位機(jī)軟件設(shè)計(jì)
LabVIEW是美國(guó)國(guó)家儀器(NI)公司研發(fā)的,類似于C和BASIC開發(fā)環(huán)境。它廣泛地被工業(yè)界、學(xué)術(shù)界和研究實(shí)驗(yàn)室所接受,視為一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)采集和儀器控制軟件。LabVIW集成了與滿足GPIB、VXI、RS-232和RS-485協(xié)議的硬件及數(shù)據(jù)采集卡通訊的全部功能。它還內(nèi)置了便于應(yīng)用 TCP/IP、AetiveX等軟件標(biāo)準(zhǔn)的庫(kù)函數(shù)。這是一個(gè)功能強(qiáng)大且靈活的軟件。利用它可以方便地建立自己的虛擬儀器,其圖形化的界面使得編程及使用過(guò)程都生動(dòng)有趣。
本設(shè)計(jì)采用LaLbVIEW開發(fā)平臺(tái)制作上位機(jī)軟件,軟件界面如圖5所示。該上位機(jī)調(diào)用底層RS232通信模塊,結(jié)合通用的波形顯示、按鈕開關(guān)等通用模塊設(shè)計(jì)出如圖5所示的具有串口參數(shù)選擇、實(shí)時(shí)波形顯示、采樣通道選擇、波形參數(shù)計(jì)算、存儲(chǔ)波形數(shù)據(jù)和采樣速率可調(diào)的虛擬示波器上位機(jī)軟件。軟件中首先通過(guò)串口參數(shù)調(diào)整復(fù)選框選擇PC機(jī)串口數(shù)據(jù),然后打開軟件開關(guān),當(dāng)串口接收數(shù)據(jù)后將實(shí)時(shí)波形以及周期和幅值等顯示在軟件界面上。同時(shí)軟件設(shè)有通道選擇旋鈕和采樣速率選擇滑動(dòng)桿用于改變波形輸入通道和采樣速率。軟件還設(shè)有波形數(shù)據(jù)存儲(chǔ)按鈕,當(dāng)按鈕打開時(shí),軟件會(huì)將接收到的數(shù)據(jù)按照波形數(shù)據(jù)文件以數(shù)組形式存儲(chǔ)在PC 的磁盤內(nèi)。Matlab和Exel等數(shù)據(jù)處理軟件可方便的調(diào)用該文件進(jìn)行分析,方便對(duì)其進(jìn)行更加復(fù)雜的數(shù)據(jù)處理和數(shù)據(jù)的再現(xiàn)。
3 結(jié)論
本文設(shè)計(jì)的虛擬示波器系統(tǒng)由單片機(jī)ATmegal6和Max232構(gòu)成的下位機(jī)系統(tǒng)及由LabVIEW開發(fā)的上位機(jī)軟件構(gòu)成。系統(tǒng)充分利用ATmegal6單片機(jī)軟硬件資源,方便快捷地實(shí)現(xiàn)數(shù)據(jù)采集。并且通過(guò)RS232接口實(shí)現(xiàn)與上位PC機(jī)的連接,PC機(jī)通過(guò)LabVIEW開發(fā)平臺(tái)方便地實(shí)現(xiàn)進(jìn)行數(shù)據(jù)的分析、處理、存儲(chǔ)和打印輸出的簡(jiǎn)易虛擬示波器。本系統(tǒng)具有電路簡(jiǎn)單、使用靈活方便等特點(diǎn)。因此能廣泛應(yīng)用于工業(yè)、農(nóng)業(yè)、水文系統(tǒng)、環(huán)境監(jiān)測(cè)等領(lǐng)域,實(shí)現(xiàn)現(xiàn)場(chǎng)勘測(cè)和數(shù)據(jù)采集。