馬文博,蔣玉華,閉金杰,廖志賢,黃國現
(廣西師范大學,廣西桂林,541004)
萬用表、示波器等測量儀表在電子領域有著廣泛的應用,號稱電子工程師的“眼睛”。如何充分利用運放、模擬開關等常見器件完成多用儀表的設計,在保證精度的前提下提高易用性和擴展性是需要解決的問題。本文結合軟件和硬件,用盡可能少的電子元器件,并優化系統軟硬件,完成系統設計。
系統主控采用STM32F103 C8T6 核心板。它是一款基于ARM Cortex-M 內核的32 位微控制器,其具有72MHz 時鐘主頻、37 個GPIO引腳,12位ADC,價格低廉,使用廣泛,可以方便地完成設計。
本電路采用兩級LM1117 LDO 芯片串聯組成。第一級將輸入電壓轉換為5V 輸出;第二級將5V 電壓轉換為3.3V,從而滿足系統各模塊的供電需求。系統中運算放大器、模擬開關、電流采樣芯片、繼電器均采用5V 供電,STM32 單片機、OLED 顯示屏采用3.3V 供電。LDO 芯片具有外圍電路簡單、低壓差下效率高、輸出紋波小等優點。
本電路基于STM32F103C8T6 核心板進行設計,引出部分GPIO 接口用于連接和控制系統各外設。核心板已集成晶振電路、下載接口等電路。

圖1 系統框圖

圖2 電源輸入電路原理圖

圖3 最小系統板外圍電路圖

圖4 電壓檢測調理電路圖

圖5 電流檢測電路圖

圖6 電阻檢測電路

圖7 量程切換典型電路圖

圖8 4×4 矩陣鍵盤電路圖

圖9 OLED 屏幕接口

圖10 串行通信接口

圖11 時鐘樹配置

圖12 系統軟件總框圖

圖13 電壓測量流程圖

圖14 樣機測試過程
本電路需要將外部的電壓輸入按比例放大或縮小,轉換為STM32 單片機ADC 端口可以接受的0-3.3V 電壓,并通過模擬開關實現量程切換功能。
運放芯片采用LM324,該芯片具有4 路獨立運放單元。其中,第一、二路構成跟隨器,根據電阻分壓:
第一和二路輸入電壓分別衰減為輸入的1/11、1/4。第三路構成同相比例放大器,放大倍數關系為:
其中R32 為平衡電阻,阻值計算方法為:R3 2 =R31 1//R30。第三路的放大倍數為11 倍。
量程切換功能通過模擬開關實現,型號為CD4052。其A0、A1 連接至單片機GPIO 作為控制端,Y0B、Y1B、Y2B 作為輸入端,ZB 作為輸出端連接至單片機ADC 端口。單片機控制A0、A1 以選通不同電壓等級輸入作為模擬開關的輸出。
電路需要將外部的電流輸入進行采樣,經過處理后送入單片機ADC 引腳,并通過繼電器實現量程切換功能。在設計中盡量減小回路阻抗,以減小測量電路對被測電路的影響。
R5、R6 為采樣電阻,阻值選取分別為1Ω、0.1Ω,分別測量0~100mA、100mA~2A 電流。測量時,電流由I_IN+流入,由I_IN-流出。
電流感應放大芯片U1 選取MAX4080,其放大倍數為20 倍。測量時,I_IN+、I_IN-兩端(包含采樣電阻)分得的電壓輸入MAX4080 的RS+、RS-,芯片將該電壓放大20倍后由OUT 端輸出。OUT 端連入單片機ADC 引腳。
繼電器K1、K2 為量程切換開關。當繼電器K1 吸合K2斷開時,采樣電阻R5接入電路;當繼電器K2吸合K1斷開時,采樣電阻R6 接入電路。
電路需要將外部接入的電阻進行適當處理,接入單片機ADC 輸入引腳,并通過控制MOS 管通斷選取不同的分壓電阻,實現量程切換功能。設計中加入運放(U2.4)構成的跟隨器進行隔離,從而避免錯誤的輸入損壞單片機。
圖中,P 溝道MOS 管Q2、Q3、Q5 的柵極連接至單片機GPIO,當單片機輸出低電平時,漏源極導通。R2、R7、R8 為分壓電阻。
實際電路中,為實現自動量程切換功能,開關U3、U4、U5 用MOS管代替。R33、R34、R35 為不同量程的分壓電阻,R1 為待測電阻,阻值未知。該電路利用電阻分壓原理,單片機通過讀取待測電阻上分得電壓,進而計算得到待測阻值。
根據電阻分壓公式(1)得被測電阻阻值計算公式(3):
式中Rx 為不同量程分壓電阻,Uc 為3.3V 基準電壓。
(1)外接4×4 矩陣鍵盤用于模式切換等功能,其行、列線與單片機GPIO 相連。
(2)OLED 屏幕使用中景園電子 1.91 英寸SH1108,其接口類型為SPI。
(3)設計有串行通信接口,可將程序運行中的數據傳至上位機,方便調試和分析。
軟件主要運行于STM32F103C8T6 單片機上,編寫過程分為初始化代碼生成和主程序邏輯代碼編寫。其中初始化代碼配置采用STM32CubeMX 工具生成HAL 庫代碼。主程序基于該代碼,添加用戶邏輯代碼部分。其主要目的是實現量程切換電路的控制、按鍵狀態讀取、測量結果處理和送入OLED 屏幕顯示等。
(1)系統時鐘(HSE)來源配置為外部時鐘,運行頻率設置為72MHz。
(2)繼電器、模擬開關、電阻量程切換MOS管GPIO 配置為推挽輸出模式。
(3)矩陣鍵盤行線配置為輸出,列線配置為輸入。
(4)使能ADC2 的4、5、6 通道用于電壓、電流、電阻ADC 采集。
使能多通道掃描模式、非連續轉換模式、軟件觸發、設置通道數為3。為最大程度提高精度,ADC 周期配置為最大(239.5Cycles)。
(5)SPI2 配置為Full-Duplex Master(全雙工主模式)用于驅動OLED 屏幕。
(6)使能串口1 用于程序調試與上位機數據展示和下發。
主程序共涉及電壓測量、電流測量、電阻測量、矩陣鍵盤讀取、量程切換控制、串口通信、OLED 屏幕顯示等模塊。其中,電壓測量、電流測量、電阻測量模塊通過矩陣按鍵進行切換,最終將處理后的測量結果輸出至OLED 屏幕進行顯示、輸出至串口用于上位機展示功能。
(1)電壓測量模式
根據電壓檢測硬件電路,設計實際電壓換算公式(4)。
式中Vtrue為被測電壓真實值,ADCresult為ADC轉換結果,c 為比例系數,參數b、a 為線性擬合系數,用于提高結果準確性。根據表1 所示電壓測量電路擋位與調整比例的關系,參數c 在三種擋位分別取值1/4、4、11。根據STM32F103系列12 位ADC 轉換器原理,ADCresult將0~3.3V 電壓表示為0~4096 之間的整數。上式首先將ADCresult轉換為真實電壓值,再乘以比例系數c,最后根據進行線性擬合校正參數b、a 得到真實被測電壓值。

表1 設計量程與電阻的關系

表2 量程與采樣電阻的關系

表3 電阻測量中量程與分壓電阻的關系

表4 三種模式測量平均誤差統計
程序首先連續讀取20 次ADC 電壓端口轉換結果,送入滑動窗口濾波器進行濾波處理得到參數resultADC,隨后根據公式(4)計算得到被測電壓真實值。之后程序將電壓真實值送入OLED 屏幕向用戶展示,并向串口打印測量數據。除此之外,該程序還需根據表1 量程關系判斷當前的擋位是否合適,若不合適則自動進行擋位切換。若真實電壓為0~0.7V 范圍則切換為1 檔;若真實電壓為0.7~9V 范圍則切換為2 檔;若真實電壓為大于9V 范圍則切換為3 檔。切換檔位后,程序在下次測量時將根據切換后的擋位參數重新計算真實測量結果。
(2)電流、電阻測量模式
電流、電阻測量模式與電壓測量模式實現方法基本相似,此處不展開詳細論述。
電壓、電流擋的測試方法為:由數控可調電源輸入一固定電壓(或電流),連接至設備,同時接入UNI-T UT71C型號萬用表進行準確性比對。逐次調節電壓(或電流)輸入,記錄設備讀數和萬用表讀數,計算誤差,并驗證其自動切換量程功能。電阻擋測量方法為在電阻測量端口與GND 端口間接入不同阻值的定值電阻,并用萬用表測量電阻阻值,與設備測量結果進行比對。以上過程均重復20 次求平均值。
根據測試數據,三種模式測量精度均符合預期指標。在電流測量模式中,較小電流(約0~100mA)測量時會存在較大誤差,原因是較小測量電流下,采樣芯片和STM32 的ADC 分辨率不足,可以通過換用較大采樣電阻的方法以降低小電流測量誤差。
本文主要研究一種多用測量儀表,以STM32F103C8T6為主要控制單元,從硬件和軟件兩方面對該系統進行了詳細闡述。最后實驗結果表明 STM32F103C8T6 能夠正常獲取采樣數據并進行相應處理,能夠實現自動擋位切換功能,在OLED 屏幕上顯示正確測量結果,輸出結果準確穩定,滿足系統設計要求指標。
當前常用的萬用表已作為電子工程師的必備設備進入大眾視野。通過串行通信接口,可以方便地將萬用表與上位機軟件結合起來,從而實現更加豐富的功能。當前本設計運行穩定,可靠性良好,成本低,為后續智能化測量儀器的設計開發與研究奠定了基礎。本設計包含完善的保護電路,在外部輸入超過設計測量能力時,不會造成設備損壞。