一種新穎的簡易多通道虛擬示波器的技術(shù)研究
1.2 串口通信接口電路
本系統(tǒng)設(shè)計(jì)中通過Max232連接單片機(jī)和PC機(jī)。ATmegal6具有異步串行通訊接口(UART),UART是為能與計(jì)算機(jī)通訊的全雙工異步系統(tǒng)。本系統(tǒng)采用RS232接口方式,由于RS232信號電平與AVR單片機(jī)信號電平(TTL電平)不一致,因此在采用RS232標(biāo)準(zhǔn)時(shí)必須進(jìn)行信號電平轉(zhuǎn)換。在串行通信的接口電路中選用MAX232芯片作為信號電平轉(zhuǎn)換芯片,實(shí)現(xiàn)TTL電平和RS232接口電平之間的轉(zhuǎn)換。從而把 ATmegal6內(nèi)部需要傳送的數(shù)字信號準(zhǔn)確無誤地傳輸給PC機(jī),供上位機(jī)軟件讀取并進(jìn)行信號處理。
串行接口電路原理圖如圖3所示,TTL電平引腳輸入引腳9、10,連接ATmegal6的串行發(fā)送接口TXD和串行接收接口RXD,通過電平轉(zhuǎn)換為 RS232電平,通過7腳和8腳連接串行接口的2腳和3腳,串行接口通過串行通信線連接采樣模塊的串行接口和PC機(jī)的串行接口。ATmegal6通過內(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ì)采用主從方式,通過上位機(jī)發(fā)送給ATmegal6的數(shù)值來改變通道。在ATmegal6的串行中斷的接收中斷中,通過判斷接收的數(shù)值更改 ADMUX的數(shù)值。同時(shí),在串行接口接收中斷中,通過接收的數(shù)值的編碼也可用來改變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ī)通過對數(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),若接收到停止信號,系統(tǒng)馬上停止。在串口接收中斷中,進(jìn)入中斷隨即讀取中斷接收值,通過判斷接收值的大小,改變系統(tǒng)采樣通道值和ADC轉(zhuǎn)換速率值。改變完成后中斷返回。此時(shí),系統(tǒng)根據(jù)新的參數(shù)值運(yùn)行。ADC轉(zhuǎn)換完成中斷產(chǎn)生后,讀取當(dāng)前轉(zhuǎn)換值,讀取完成后進(jìn)行數(shù)字均值濾波,降低輸入信號的干擾。濾波完成后將結(jié)果通過串行通信傳送給PC機(jī)。然后進(jìn)行延時(shí)后啟動(dòng)下一次的轉(zhuǎn)換后中斷返回。整個(gè)過程中,系統(tǒng)通過中斷方式完成,具有響應(yīng)及時(shí)、提高單片機(jī)處理內(nèi)部和外部事件能力的特點(diǎn)。
評論