北方工業大學電子信息工程學院通信工程系 代 勇
基于單片機的多功能測量儀的設計
北方工業大學電子信息工程學院通信工程系 代 勇
單片機作為檢測儀器在嵌入式中應用十分廣泛。隨著時代的發展,單片機的功能越來越強大。基于stm32系列開發板的豐富的外圍設備,使我們對于各種系統的仿真模擬也越來越廣泛。本系統則是利用stm32作為控制核心,利用其自帶的外圍設備進行模擬多功能測量儀的實現。在誤差允許的前提下可以進行幅度,頻率,以及占空比等測量,在檢測pwm波時還可以進行倍頻輸出的功能。
嵌入式;倍頻輸出;頻率測量,幅度測量
目前利用單片機進行測量各種模擬信號的數字特性已不再稀奇,畢竟目前嵌入式和最小系統甚是流行且發展極快。體積小,性能強,功耗低已經是嵌入式器件的代名詞。嵌入式系統將先進的半導體技術,計算機技術和電子技術,以及各個行業結合,是一個技術精密,學科交叉和不斷創新的知識集成系統。本系統具有更高的集成度,更加方面快捷,足以滿足我們日常的生活需求。
2.1 系統結構
本系統主要由以下模塊組成,采集信號模塊,通信模塊,定時器模塊,人機交互模塊等,由圖1所示。本系統的工作的原理大致為:首先幾路信號經過調理電路調理后進入模擬通道1和2等。然后在測量電壓時,經過模數轉化器轉化為數字信號。在一定時間內比較出最大值,即為信號幅值。在測量頻率時,利用定時器中斷測量頻率,即上升沿和下降沿的時間來計算出信號的頻率與占空比。再利用通用定時器發出雙倍頻的信號。開關輸入的變量是通過后I/O輸入,stm通過中斷的方式讀取。數據處理后可由LCD屏幕直接顯示。為了是數據顯示更加直觀,通過USB轉串口與上位機相連。

圖1 系統原理

圖2 MCU主控模塊的管腳原理圖
2.2 STM32的片上資源
本設計的微控制器采用STM32單片機。STM32系列單片機是基于ARM公司Cortex-M3內核設計的是專門設計于滿足集高性能 、低功耗、實時應用、具有競爭性價格于一體的嵌入式領域的要求。本次系統采用的是32F103RBT6主控模塊(如圖2所示),其中芯片具備有內置的128KB的Flash2X12位的ADC、4X16位TIMER以及2XSPI(18Mbit/s),3XUART,通訊接口等多種資源。另外其A DC 為逐次逼近型模數轉換器 , 各通道的轉換可以單次 、連續 、掃描或間斷模式執行 ,轉換結果以左對齊或右對齊方式存儲在 16 位數據寄存器中。通用定時器是一個通過可編程預分頻器驅動的16位自動裝載計數器構成,每個定時器都是完全獨立的,沒有互相共享任何資源。它們可以一起同步操作。并且通用定時器可以設置為向上、向下、向上/向下自動裝載計數。模擬輸入管道的。
2.3 頻率(PWM)采集模塊
本次實驗使用了通用定時器TIM2和TIM3,他們捕獲通道都是圍繞著一個捕獲寄存器,包括捕獲的輸入部分(數字濾波、多路復用和預分頻器),和輸出部分(比較器和輸出控制)。在這里只展示了通道一的輸入部分。下面幾張圖是一個捕獲通道概覽。當前工作在輸入捕獲模式下,輸入的部分對TL1信號進行采樣,TL1F則表示濾波后的信號。利用邊緣檢測器產生一個TL1FP1的信號,利用此信號,從模式控制器可以產生輸入觸發或作為捕獲控制。當通道檢測到ICx信號上相應的上升或下降沿后,計數器的當前計數值被鎖存到捕獲寄存器TIM2_ CCRX中,當連接TL1上時寫入寄存器TIM2_CCR1中,連接TL2時寫入寄存器CCR2中。倍頻輸出則是采用的脈沖寬度調制模式,在此模式下可以產生一個可以確定的頻率和占空比的信號。

圖3 MCU通道1的輸入部分
2.4 交流(余弦波)信號的頻率檢測
由于交流信號沒有有效的上升沿和下降沿,所以應該在進入檢測模塊之前經過過零檢測電路。如圖4所示,利用LM358N構成檢零器,當輸入信號大于0V時,輸出高電平,當輸入信號小于0V時,輸出低電平。這樣就可以利用MCU進行頻率檢測。

圖4

圖5
軟件部分,則利用本系統的STM32本身的庫函數方式編寫,簡潔直觀相對于寄存器便攜較為簡單,但是不靈活。不過針對本系統已經向足夠,而且庫函數據有快速開發便于閱讀的特點。利用定時器捕獲進行頻率測量,利用ADC進行頻率測量。而且對于常見的pwm和交流信號都適合。
利用Keil4編寫STM32程序,并通過J-Link進行下載和調試,調試完成后程序可以達到預期的功能。如圖6所示:

圖6
由以上結果可以看出,本次的系統可以正常工作,可以測量某些波形的頻率和幅度,并且能在誤差允許的范圍內得到正確的結果.隨著測量技術的發展,對于數據采樣精度的發展越來越高,我們可以在此基礎上進一步改進系統,可以對輸入信號進行傅里葉變換,更加精確地分析其諧波的特征。
[1]曹圓圓.基于STM32 STM32的溫度測量系統[J].儀器儀表與分析檢測,2010(01):16-18.
[2]洪俊峰,卜文強,張榕鑫,程恩,袁飛.基于STM32PWM的正弦信號發生器設計[J].合肥工業大學學報(自然科學版),2014(02):189-190.
[3]張哲,陳天鷹,陳光達.基于STM32微控制器的自動發藥機發藥裝置的控制與實現[J].科技風,2017(02):3-4.
[4]郭書軍,王玉花.ARM Cortex-M3系統設計與實現[M].北京:電子工業出版社,2013:82-83.
[5]陳志旺.STM32嵌入式微控制器快速上手[M].北京:電子工業出版社,2014:207-209.
[6]張旭,亓學廣,李世光,芮昱,邱彪.基于STM32 電力數據采集系統的設計[J].電子測量技術,2010,33(11):90-92.
代勇(1994—),河南商丘人,大學本科,現就讀于北方工業大學。