簡易自動控制原理實驗系統設計
圖3 采樣電路原理圖
由于ATmega16 內部ADC 為八選一數據通道,在具體實現某路數據采集時就必須更改多工選擇寄存器ADMUX 的數值。為能隨時更改通道,本設計采用主從方式,通過上位機發送給ATmega16 的數值來改變通道。同時,在串行接口接收中斷后,通過接收的數值的編碼也可用來改變ADC 相鄰兩次轉換之間的延時值,從而達到改變轉換速率的效果。本系統采用0 - 7 為通道選項,當數據大于7 時為更改采樣速率值。當數據更改操作完成后程序立即返回主程序,此時ADC 轉換由新的參數運行。
2. 3 下位機軟件設計
下位機軟件包括信號發生器軟件和數據采集軟件兩部分。信號發生器采用AT89S52 型單片機加AD9833 型的DDS 芯片構成,軟件編程使用環境為Keil uVision 4.數據采集模塊采用ATmega16 型單片機構成,軟件編程使用環境為AVR GCC 和AVR studio 4.下位機軟件設計的關鍵是能使程序能即時完成數據的接收和發送,同時保證數據的準確,為此,系統采用中斷響應的方式完成串行數據接收,同時完成ADC 轉換以及數據的發送。下位機程序分為主程序、串行接收中斷和ADC 轉換完成中斷三部分,其流程圖如圖4 所示。在主程序中主要完成串口和ADC 寄存器的初始化,初始化完成后啟動片內ADC 的第一次轉換,隨即系統進入等待中斷狀態,若接收到停止信號,系統馬上停止。當系統響應到串行接收數據中斷,通過接收的數值對ADC 轉換的通道和采集速度進行相應的修改,當修改完成后立即返回主程序。當ADC 每次轉換完成相應標志位置位,程序跳轉到ADC 轉換并完成中斷運行。此時系統讀取轉換的數值并處理,隨即通過串口將該數據發送給上位機。當串口數據發送完成后起動延時; 另外當延時完成后,系統將ADC 轉換起動標志位置位,然后進行下一次轉換。下位機程序運行的整個過程中,系統通過中斷方式完成,具有響應及時、提高單片機處理內部和外部事件能力的優點。
圖4 下位機程序流程圖 2. 4 上位機前面板設計
系統采用LabVIEW 開發平臺制作上位機軟件,即在PC 機上設計出虛擬示波器。系統虛擬示波器上位機軟件界面如圖5 所示。從圖5 可知,上位機具有串口參數調節、數據波形顯示、數據存儲、數據回放、以及采樣通道及速率選擇等功能。虛擬示波器在波形顯示過程中,用戶可根據個人喜好對曲線顏色、數據采集速率和通道等參數的進行設置。同時在實驗過程中,可以點擊波形存儲按鈕對接收到的數據以TXT 或其他格式的文件存儲在PC 機硬盤或其他外部磁盤中。用戶可根據需要隨時通過數據回放按鈕選擇文件查看數據波形或者將數據文件提供給Matlab 和Exel 等數據處理軟件進行分析處理,使用非常靈活方便。
評論