張 嶸 占志龍 盧昌佐
(湖南科技大學,湖南 湘潭411100)
隨著電子信息產業(yè)的飛速發(fā)展,電子設計開發(fā)者數量也在飛速增長,其中大部分設計者為學生以及個人開發(fā)者,而電子開發(fā)設計需要各種開發(fā)工具,以萬用表及示波器為最主要的開發(fā)工具。但是一個好的萬用表價格昂貴,示波器多在萬元及以上,這對學生以及個人開發(fā)來說是難以承受的價格。目前市面上的一些基于單片機定制的單片機多有結構簡單、自動化程度低、功能單一、穩(wěn)定性差的缺點,難以滿足開發(fā)者的需求。
為方便開發(fā)者的需求,通過前期查找資料并通過測試,系統(tǒng)已達到設計目標,滿足用戶使用需求。本文結合已開發(fā)實物設計了一個能同實現(xiàn)功能需求的電路測量系統(tǒng)。該測量系統(tǒng)可同時測量電壓、電阻、波形并顯示在顯示器中。電源開關開啟時,測量系統(tǒng)開始工作,顯示器進入主菜單,用戶通過按鍵選擇進入測量電壓、電阻、或者波形的功能。功能進行時顯示器顯示測量得到的數據以及系統(tǒng)的運行狀態(tài)。測量電壓、電阻時系統(tǒng)根據被測目標的數值自動切換到最適量程,也可自行設置測量時手動切換量程。測量波形時與傳統(tǒng)示波器主要功能方式保持一致,可以調節(jié)相應按鍵來設置測量規(guī)則。本系統(tǒng)采用低功耗設計,具有體積小、功能豐富、自動切換等優(yōu)點,給學生及個人開發(fā)者帶來了極大的便利。
2.1.1 能測量電壓、電阻并能自動切換量程。
2.1.2 能測量信號的波形。
2.1.3 能將測量的數據顯示在顯示器上。
電源開關開啟時,測量系統(tǒng)工作,主控芯片初始化外設,顯示器開始工作,系統(tǒng)進入主頁面。用戶通過按下菜單鍵選擇需要進行的功能,若選中某功能,則系統(tǒng)執(zhí)行該功能并將系統(tǒng)測量到的結果及系統(tǒng)運行狀態(tài)顯示在顯示器中,在執(zhí)行某功能時若按下菜單鍵,則暫存測量的部分數據及當前系統(tǒng)運行的狀態(tài)后執(zhí)行菜單鍵選中的功能。若在一定時間回到該功能時則恢復該功能的現(xiàn)場數據,更新顯示界面。系統(tǒng)處于運行狀態(tài)直到電源斷開。
系統(tǒng)硬件設計方面,充分考慮電路測量系統(tǒng)具有低功耗、頻率高、體積小、自動切換量程等特點,該電路測量系統(tǒng)主要有以下幾個部分:單片機、顯示器模塊、開關芯片、按鍵模塊、基準電阻、電源模塊、時鐘電路、復位電路以及濾波電路。
系統(tǒng)采用ST 公司的STM32F103RBT6 系列MCU,該單片機外設資源豐富,引腳多(64 個),256K 片內FLASH,48K 片內RAM,72MHz 主頻,性能較強,符合設計要求;顯示模塊采用0.96 英寸的OLED 顯示屏,該顯示屏由SSD1306 芯片作為驅動芯片,通信方式為I2C。分辨率為128x64,選用此型號的原因是:價格低、分辨率高、功耗低、刷新速度快,符合系統(tǒng)的設計要求;開關芯片采用的的是CD5001 模擬開關芯片,在電壓、電流、電阻的測量中,一個合適的量程決定測量數據的精度、速度。通過模擬開關自動切換量程保證測量時能最快的切換量程,該開關具有3 輸入8 輸出及片選引腳,能同時滿足測量電壓、電阻、電流量程的切換;電源模塊采用AMS1117-3 線性穩(wěn)壓芯片,該模塊將輸入電壓轉化輸出3.3V 電壓給系統(tǒng)所有模塊供電;時鐘模塊采用8MHz 的陶瓷警惕振蕩器,保證系統(tǒng)時鐘穩(wěn)定、高精度運行;復位電路采用上電復位與按鍵復位兩種方式;略波電路采用RC 低通濾波電路,電阻采用高阻抗電阻,保證芯片能捕獲到相對穩(wěn)定的電壓。
STM32 單片機在系統(tǒng)中的作用是將采集到的模擬信號進行分析運算生成人類能看懂得文字信息并控制顯示器顯示內容,在測量電壓與電阻時,分析采集到得數據并于設定得測量范圍規(guī)則進行對比,控制開關芯片選中最適擋位保證得到得數據最為穩(wěn)定、精確,STM32 單片機通過檢測菜單按鍵是否按下來決定系統(tǒng)需要執(zhí)行的功能。顯示器顯示系統(tǒng)運行狀態(tài)和采集到的數據。開關芯片負責在測量電壓或電阻時通過被STM32 單片機控制選通特定通道,不同得通道連接不同阻值得基準電阻,不同的電阻決定測量時得范圍及精確度。按鍵模塊組成系統(tǒng)的菜單鍵組合,菜單鍵控制系統(tǒng)選擇功能。時鐘電路是單片機運行的基礎。濾波電路中的略波電容采用100nf 的瓷片電容,電阻采用100K 高精度金屬膜電阻,信號能很好的通過此電路,而參雜信號卻很難通過此電路,從而單片機的ADC 輸入端能得到很干凈的信號,保證采集到的數據誤差最小,同時該電路會濾除部分震蕩信號,從而單片機會得到穩(wěn)定的信號。
軟件啟動時,初始化需要使用的外設,靜等0.1S 確保系統(tǒng)穩(wěn)定。屏幕顯示主菜單,等待用戶選擇功能,若用戶選擇特定功能,則系統(tǒng)進入特定功能執(zhí)行特定操作并將內容顯示在屏幕上面,在進行功能時若摁下返回按鍵,系統(tǒng)保存目前的狀態(tài)信息返回到上一級菜單。系統(tǒng)保持喚醒狀態(tài)直到電源斷開。系統(tǒng)運行流程圖如下:
圖1 系統(tǒng)運行流程圖
4.2.1 電壓
電壓測量范圍為0~330V 直流電壓,通過開關芯片CD5001切換量程。程序控制測量開始狀態(tài)為最大量程,保護電路。當被測目標電壓低于1/10 目前量程時,切換低一檔量程,保證測量目標值在當前量程的1/10~9/10 范圍內,保證數據的精度。測量輸出的內容為換算后的電壓值,用浮點數表示。計算公式為(ADC 讀取寄存器值/4096)*3.3(4096 為測量芯片的精度12位,3.3 為測量芯片的參考電壓3.3V)。測量時采用多次測量與低通濾波保證測量到的電壓值穩(wěn)定可靠。
4.2.2 電阻
電阻的測量范圍為0~10 兆歐姆,通過開關芯片CD5001 切換量程。開始測量時程序控制CD5001 導通所有的電阻,使處于最大量程,與測量電壓類似,當被測電阻阻值位于1/10~9/10 量程時選中此量程,當阻值不在此范圍內則控制CD5001 電路高檔位電阻切換到第一檔量程,以此重復直到在量程1/10~9/10范圍內。測量輸出的電阻值為換算后的電阻值,用32 位整型數表示。電阻計算公式為R0/(R0+Rx)=V/VREF(Rx 為被測電阻阻值,R0 為分壓電阻阻值,V 為測量到的分壓電阻,VREF 為芯片ADC 轉換器的參考電壓)。與測量電壓同理,測量時采用多次測量與低通濾波保證測量到的電阻值穩(wěn)定可靠。
4.2.3 波形
該功能與傳統(tǒng)示波器類似,具有示波器的大部分功能,雙通道同步采樣。示波器模式下屏幕上顯示的內容有:波形、時間刻度線、電壓值、波形周期、水平位置線、豎直位置線。通過以設定測量時間間隔為基準連續(xù)測量100 次被測目標的電壓值依次存入緩存區(qū),通過與系統(tǒng)設置的對比頻率對比,將采集到的點以電壓的高低在屏幕上從左至右分別打點顯示,以100 次為周期開始下一次的采集并顯示,當顯示數據量超過屏幕寬度時則重新從左開始至右顯示,依此直到系統(tǒng)結束或功能切換。ADC 測量的最大頻率為12MHz,在最大頻率下采樣周期為1/12000000s=83ns,綜和系統(tǒng)其它程序占用時間測量頻率最大能達到6MHz。程序讀取頻率設置按鈕將數據以不同的頻率顯示。波形周期為上一次波形結束時到本次波形結束的時候的時間,時間通過芯片的外設定時器來獲得。豎直位置線所在的位置為該時刻的電壓值,顯示在電壓值顯示欄里面,程序識別豎直位置線調節(jié)按鈕的電壓值來設定豎直線所在的位置顯示所在位置的電壓值。設置通道選擇按鍵切換顯示特定通道的波形,可同時顯示兩個通道的波形,方便進行波形的對比。
4.2.4 系統(tǒng)菜單
系統(tǒng)菜單提供系統(tǒng)的顯示,系統(tǒng)所有的顯示部分通過帶有SSD1306 驅動器的OLED 顯示。系統(tǒng)啟動時,顯示主菜單供用戶選擇需要進行的功能,默認選擇是只測量電壓,方便快速測量電壓。菜單內容采用系統(tǒng)化設計。每一個內容都是一個對象,子對象位于父對象里面,子對象可以繼承父對象的特性,位于父對象的內部但不允許超過父對象的顯示范圍,最高一級的父對象為屏幕,所有的對象都存在于屏幕之內。內容的創(chuàng)建引入消息機制,所有的對象創(chuàng)建都經過消息管理系統(tǒng)。程序為顯示系統(tǒng)在運行初劃分好存儲區(qū)域,每個對象創(chuàng)建時都會分配屬于自己的管理信息、存儲空間,刪除時也會釋放自己所在的內存空間。系統(tǒng)啟動時,主菜單顯示一級菜單:①功能選擇;②默認選擇;③系統(tǒng)介紹。功能選擇里面有子對象:①測量電壓;②測量電阻;③測量波形。默認選擇為直接測量電壓。功能介紹里面有介紹關于系統(tǒng)的使用方法、系統(tǒng)參數等內容。系統(tǒng)內容的切換與選擇通過板載的個菜單選擇。采用系統(tǒng)化的設計方法便于顯示界面的開發(fā)、之后的更新,在節(jié)省開發(fā)時間的同時也提高了開發(fā)的可操控性。
基于STM32 的電路測量系統(tǒng)采用了開關芯片通過程序控制來自動切換測量的量程,在保證了測量時的穩(wěn)定度、精度的同時也保護了系統(tǒng)電路。波形顯示功能使其可以充當示波器,做一些基本的波形測量。所有的模塊集成在同一塊PCB 電路板中,體積小,方便攜帶。目前市面上的萬用表功能單一且價格昂貴,示波器的價格更是普通學生或個人開發(fā)者所不能承受的。基于STM32 的電路測量系統(tǒng)在功能上大致能滿足日常開發(fā)使用,且制造成本約30 人民幣左右,基本所有的開發(fā)者或學習者都能擁有。該系統(tǒng)經過不斷的調試與完善,有功能多、精度高、穩(wěn)定度好、價格便宜、方便攜帶的特點,具備實際推廣應用價值。