<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統 > 設計應用 > 基于單片機的簡易多通道虛擬示波器的設計

          基于單片機的簡易多通道虛擬示波器的設計

          作者: 時間:2016-11-30 來源:網絡 收藏
            0 引言

            虛擬儀器是基于PC技術發(fā)展起來的,所以完全"繼承"了以現成即用的PC技術為主導的最新商業(yè)技術的優(yōu)點,包括功能超卓的處理器和文件I/O,使在數據導入磁盤的同時就能實時地進行復雜的分析。為了實時、準確地測量輸入波形的參數,本文采用自帶8路10位ADC的單片機ATmega16,結合簡單的外圍電路,即可將輸入波形實時傳送給PC機進行處理。通過PC機上虛擬儀器平臺LabVIEW開發(fā)的上位機軟件對波形進行顯示和處理,從而達到簡易虛擬示波器的效果。

          本文引用地址:http://www.ex-cimer.com/article/201611/323627.htm

            1 簡易多通道虛擬示波器系統的設計

            簡易多通道虛擬示波器系統的原理方框圖如圖1所示,數據采集由主控芯片ATmega16進行,采集后的數據通過RS232串口通信芯片Max232將TTL電平轉換為RS232電平,提供與PC機的接口,將數據量傳送給PC機的LabVIEW開發(fā)平臺,平臺內上位機軟件接收來自串口的數據,經校驗等處理后通過波形顯示控件將采集到的波形顯示出來。同時單片機能接收上位機傳送來的數據,從而控制數據采集的速度和精度以及采集的通道。

          圖1 虛擬示波器原理方框圖。

            1.1 數據采集電路

            ATmega16單片機是美國Atmel公司生產的基于增強的AVR RISC結構的低功耗8 位CMOS微控制器。ATmega16有如下特點:16k字節(jié)的系統內可編程Flash(具有同時讀寫的能力,即RWW),512字節(jié)EEPROM,1k字節(jié)SRAM,32個通用I/O口線,32個通用工作寄存器,用于邊界掃描的JTAG接口,支持片內調試與編程,三個具有比較模式的靈活的定時器/計數器(T/C),片內/外中斷,可編程串行USART,有起始條件檢測器的通用串行接口,8路10位具有可選差分輸入級可編程增益(TQFP封裝)的ADC,具有片內振蕩器的可編程看門狗定時器,一個SPI 串行端口,以及六個可以通過軟件進行選擇的省電模式。

           圖2 采樣電路原理圖。

            本設計正是利用ATmega16的8路10位可編程增益的逐次比較型ADC及可編程異步串行接口的內部資源,從而簡化了電路設計的難度及編程難度。采樣電路的電路圖如圖2所示,ATmega16只需結合簡單的晶振電路和復位電路就可以完成本設計的需求。模擬信號通過8路模擬輸入的任意端口輸入即可,通過單片機內部程序控制,很容易就將輸入模擬量轉化為數字量。單片機再通過串行接口傳輸給PC機, 串行通信通過串行發(fā)送引腳TXD(PD1)和串行接收引腳RXD(PD0)連接串行通信接口電路實現數據的串行傳送與接收。

            1.2 串口通信接口電路

            本系統設計中通過Max232連接單片機和PC機。

            ATmega16 具有異步串行通訊接口(UART),UART是為能與計算機通訊的全雙工異步系統。本系統采用RS232接口方式, 由于RS232信號電平與AVR單片機信號電平(TTL 電平)不一致,因此在采用RS232標準時必須進行信號電平轉換。在串行通信的接口電路中選用MAX232芯片作為信號電平轉換芯片,實現TTL電平和RS232接口電平之間的轉換。從而把ATmega16內部需要傳送的數字信號準確無誤地傳輸給PC機,供上位機軟件讀取并進行信號處理。

            串行接口電路原理圖如圖3所示,TTL電平引腳輸入引腳9、10,連接ATmega16的串行發(fā)送接口TXD和串行接收接口RXD,通過電平轉換為RS232電平,通過7腳和8腳連接串行接口的2腳和3腳,串行接口通過串行通信線連接采樣模塊的串行接口和PC機的串行接口。ATmega16通過內部編程很方便地把數據傳送給PC機。

          圖3 串口通信接口電路圖。

            1.3 多通道采樣原理

            由于ATmega16內部ADC為8選1數據通道,在具體實現某路數據采集時就必須更改多工選擇寄存器ADMUX的數值。為能隨時更改通道,本設計采用主從方式,通過上位機發(fā)送給ATmega16的數值來改變通道。在ATmega16的串行中斷的接收中斷中, 通過判斷接收的數值更改ADMUX的數值。同時,在串行接口接收中斷中,通過接收的數值的編碼也可用來改變ADC相鄰兩次轉換之間的延時值,從而達到改變轉換速率的效果。

            當需要采集雙通道數值時,單片機內部ADC可采用分時復用的原則,同時將獲得的八位數據加一個最高標志位,擴展為九位數據位。上位機通過對數據的最高位的校驗,可以很方便地區(qū)分數據,在顯示界面上將雙通道波形實時顯示更新。

            2 系統軟件設計

            2.1 下位機軟件設計

            下位機軟件設計的關鍵是能使程序正確響應中斷服務程序,從而準確地完成ADC的轉換和數據的準確傳送。

            圖4即為下位機程序的程序流程圖。主函數運行隨即進行串口和ADC寄存器的初始化,然后啟動ADC的第一次轉換,隨即進入等待中斷狀態(tài),若接收到停止信號,系統馬上停止。在串口接收中斷中,進入中斷隨即讀取中斷接收值,通過判斷接收值的大小,改變系統采樣通道值和ADC轉換速率值。改變完成后中斷返回。此時,系統根據新的參數值運行。ADC轉換完成中斷產生后,讀取當前轉換值,讀取完成后進行數字均值濾波,降低輸入信號的干擾。濾波完成后將結果通過串行通信傳送給PC機。


          上一頁 1 2 下一頁

          評論


          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();