張本俊
摘 要:本文利用STM32微處理器為控制核心,結(jié)合外部信號(hào)處理單元,提出了A/D采樣的定時(shí)器控制法,利用微處理器定時(shí)器的 PWM 輸出模式作為系統(tǒng)A/D采樣的觸發(fā)源,并利用 DMA 技術(shù)進(jìn)行采樣數(shù)據(jù)輸送,形成了以定時(shí)器控制 A/D 采樣、DMA 數(shù)據(jù)輸送,最終將在 TFT 上面顯示波形信息。與現(xiàn)有數(shù)字示波器相比,該數(shù)字示波器系統(tǒng)具有性價(jià)比高、可操控性好、低功耗、便攜方便等
優(yōu)點(diǎn)。
關(guān)鍵詞:數(shù)字示波器 STM32 觸發(fā) 采樣速率 定時(shí)器控制 直接內(nèi)存存取
示波器是電子測(cè)量行業(yè)最常用的測(cè)量?jī)x器之一,用來(lái)測(cè)量并顯示被測(cè)信號(hào)的波形等參數(shù),在很多領(lǐng)域得到廣泛的應(yīng)用。現(xiàn)有示波器模擬帶寬頻率更高,作為示波器的衡量技術(shù)指標(biāo),其重要性顯而易見(jiàn);同時(shí)為不斷滿足行業(yè)測(cè)試標(biāo)準(zhǔn),特別是電源設(shè)計(jì)領(lǐng)域,電子設(shè)計(jì)工程師在技術(shù)開(kāi)發(fā)的過(guò)程中每天要面臨著新技術(shù)帶來(lái)的挑戰(zhàn)。
1 系統(tǒng)總體方案設(shè)計(jì)
示波器接上電池或外接DC電源,打開(kāi)開(kāi)關(guān),如果白屏或花屏,按復(fù)位鍵重啟;S-和S+為時(shí)間軸加減鍵;V-和V+為電壓幅度加減鍵;在關(guān)機(jī)狀態(tài)下按住出廠設(shè)置鍵,不松手,再開(kāi)機(jī)然后松開(kāi)‘出廠設(shè)置鍵,這樣所有的設(shè)置回到初始化狀態(tài);顯示功能菜單鍵顯示與隱藏;AUTO(自動(dòng))和HOLD(保持)按鍵為狀態(tài)轉(zhuǎn)換,按一下保持波形靜止?fàn)顟B(tài),具體性能參數(shù)如下:
最高實(shí)時(shí)取樣率:1Msps;精度:12位ADC取樣;模擬帶寬輸入:最大200KHz;輸入阻抗:0-2MΩ;最高輸入電壓:16Vpp(10:1探頭和標(biāo)準(zhǔn)探頭),150Vpp(100:1探頭);信號(hào)耦合方式:DC/AC/GND;自帶1KHz /3.3V方波測(cè)試信號(hào)源與LCD背光調(diào)節(jié);
2 系統(tǒng)硬件設(shè)計(jì)
根據(jù)系統(tǒng)的功能需求,系統(tǒng)結(jié)構(gòu)主要包括:STM32最小系統(tǒng)模塊,電源電路模塊設(shè)計(jì),信號(hào)處理模塊,模式選擇模塊,顯示器模塊,AD轉(zhuǎn)換模塊,按鍵輸入模塊等。
2.1電源電路的設(shè)計(jì)
用LM7805 供電,外側(cè)加5 V電壓,經(jīng)過(guò)LM7805 穩(wěn)壓后,ASM1117將5 V的降壓到3.3 V,ASM1117 通過(guò)輸出電壓采樣,反饋調(diào)節(jié)并作用輸出阻抗上,輸出電壓的高低與輸出級(jí)阻抗的壓降大小成反比。ASM1117 外圍電路簡(jiǎn)單,幾乎是由電容構(gòu)成進(jìn)行濾波,使電壓紋波達(dá)到最小,低頻率的紋波采用容值相比高比率的電容對(duì)其進(jìn)行濾波,高頻率的紋波采用容值相比低頻率的電容對(duì)其進(jìn)行濾波。
2.2 信號(hào)處理模塊
阻容衰減電路由電阻、電容網(wǎng)絡(luò)組成,完成對(duì)信號(hào)的最佳補(bǔ)償及1倍程衰減、10倍程衰減的選擇。程控放大電路采用RC電路,分別外接不同阻值電阻和不同容值電容,選擇不同通道上電阻與 TL082 芯片組成反比例放大電路,實(shí)現(xiàn)對(duì)輸入信號(hào)的放大。
2.3 顯示器模塊的設(shè)計(jì)
采用 TFT 屏作為人機(jī)交互界面。移入嵌入式圖形界面UCGUI,實(shí)現(xiàn)全觸摸人機(jī)界面、多級(jí)菜單設(shè)計(jì),省去部分外圍硬件電路設(shè)計(jì),減小數(shù)字示波器體積。同時(shí),運(yùn)用 PWM 技術(shù),智能調(diào)節(jié) TFT 屏幕亮度,自動(dòng)降低能耗。不同產(chǎn)品使用不同的顯示方式。本次設(shè)計(jì)考慮高效、亮度高真,因此采用3.2寸TFT 顯示屏。
2.4 按鍵輸入模塊
● 復(fù)位電路設(shè)計(jì):當(dāng)reset 被拉低時(shí)有效,當(dāng)reset為高時(shí),不復(fù)位。
● 接上電池或外接DC電源開(kāi)關(guān)鍵;
● 復(fù)位鍵:白屏或花屏情況下按復(fù)位鍵重啟;
● S-和S+為時(shí)間軸加減鍵;
● V-和V+為電壓幅度加減鍵;
● 恢復(fù)出廠設(shè)置鍵
● 顯示功能菜單鍵:顯示與隱藏
3 系統(tǒng)程序設(shè)計(jì)
配置微處理器的通用定時(shí)器為 PWM 輸出模式, 作為 ADC 的觸發(fā)源,通過(guò)重裝計(jì)數(shù)器值來(lái)調(diào)節(jié)系統(tǒng)采樣速率, 采樣值由 DMA 控制器輸送后,進(jìn)行波形重建; 配置微處理器的高級(jí)定時(shí)器為輸入捕獲模式,實(shí)現(xiàn)對(duì)信號(hào)頻率、周期、占空比等參數(shù)測(cè)量。
3.1 . A/D 采樣數(shù)據(jù)的 DMA 輸送
STM32F103x系列MCU提供了固件庫(kù),包括ADC在內(nèi)的各種功能模塊的軟件使用接口, ADC的配置代碼如下:
1. ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; //獨(dú)立ADC模式
2. ADC_InitStructure.ADC_ScanConvMode = DISABLE ; //禁止掃描模式
3. ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; //連續(xù)轉(zhuǎn)換模式 ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; //不用外部觸發(fā)
4. ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //采集數(shù)據(jù)右對(duì)齊
5. ADC_InitStructure.ADC_NbrOfChannel = 1; //要轉(zhuǎn)換的通道數(shù)目1
6. ADC_Init(ADC1, &ADC;_InitStructure);
3.2. 鍵盤(pán)控制設(shè)計(jì)
利用4個(gè)按鍵來(lái)選擇波形的放大和縮小,按鍵采用外部中斷方式。其中K1和K2來(lái)調(diào)整波形顯示的高度比例, K3和K4來(lái)改變采樣間隔增加或減少一個(gè)周期內(nèi)采樣點(diǎn)數(shù),達(dá)到控制水平掃描速度,使低頻率波形完整顯示。當(dāng)檢測(cè)到K1時(shí),波形幅度系數(shù)置為2,當(dāng)檢測(cè)到K2時(shí),波形幅度系數(shù)置為1/2,否則波形幅度系數(shù)為1,以此控制幅度的放大和縮小。當(dāng)檢測(cè)到K3、K4時(shí),采樣函數(shù)中分別加入不同的延時(shí)函數(shù)來(lái)拉長(zhǎng)或縮短波形。
結(jié)論
本次設(shè)計(jì)采用 STM32F103 為主控制器,使用信號(hào)調(diào)理電路之后通過(guò)內(nèi)部 AD 采樣,利用 Cortexm3 內(nèi)核的獨(dú)特的 FPU 進(jìn)行運(yùn)算,分析、處理數(shù)據(jù),存儲(chǔ)數(shù)據(jù), 最終將在 TFT 上面顯示,并通過(guò)不同功能按鍵實(shí)現(xiàn)幅值、測(cè)量頻率等功能。與現(xiàn)有數(shù)字示波器相比,該數(shù)字示波器系統(tǒng)具有性價(jià)比高、可操控性好、低功耗、便攜方便等優(yōu)點(diǎn)。
參考文獻(xiàn):
[1] 姜瑞. 基于STM32F103ZET6數(shù)字示波器設(shè)計(jì)[J]. 北京: 集成電路應(yīng)用, 2017, 1.
[2] 丁紅斌等.基于STM32的虛擬示波器的設(shè)計(jì)與實(shí)現(xiàn)[J]. 電子器件, 2009.12:1007-1010.
[3] 劉帥, 張浩然. 基于STM32的便攜式多功能數(shù)字示波器設(shè)計(jì)[M].微型機(jī)與應(yīng)用, 2015.