?

基于STM32的多點電流采集與監視系統設計

2022-04-13 11:37
浙江水利水電學院學報 2022年1期
關鍵詞:電流值串口單片機

孫 濤

(安徽糧食工程職業學院, 安徽 合肥 230011)

MSXF-240RS2型大米色選機的電源供電端、交流伺服電機供電端、PLC電源端、光電轉換電路供電端組件需在合適的電流下工作,電流過低會影響組件的工作效率,而電流過高會導致組件過流或過熱,機器受損[1-6],同時交流伺服電機又需進行電流閉環控制。因此,急需研制一種多點電流檢測設備,以觀測各部件工作電流變化趨勢,并兼容多點電路電流采集以及為閉環控制算法或故障診斷算法提供必要的電流數據等。目前,對電流檢測、器件保護、與電流控制技術的研究越來越多[7-11]。石砦等[12]提出一種基于混沌信號時域波形包絡特征的觸電電流混沌檢測方法,解決了某些電流保護裝置觸電電流信號難提取的問題,結果表明,提出的混沌判據可準確判斷系統周期狀態和混沌狀態,能夠在較小檢測誤差情況下(4.64%)檢測出總剩余電流中的電流信號。李捷等[13]設計了基于CAN總線的對脈沖電源模塊充放電以及數據采集的分布式控制及在線電流檢測裝置,解決了高重頻脈沖功率電源放電異常等問題,利用Linux操作系統實現對多個脈沖電源模塊的快速控制與故障診斷。龍小麗等[14]認為在科學研究的多個領域中都需要進行微弱電流信號的檢測,并提出了一種基于STM32+FPGA的微弱電流檢測系統,提出檢測系統可經由信號轉換放大濾波電路模塊、信號采集電路、STM32、FPGA、上位計算機等組成,其論述為多種傳感器數據采集與檢測設備提供了設計思路。目前針對多點電流檢測系統的設計方案和傳感器熱插拔研究很少,且沒有較友好的多點電流采集上位機解決方案。市場上主流的檢測設備處理器包括51單片機、STC系列單片機、STM32高端處理器、DSP數據處理器、FPGA可編程門陣列等,通過某種傳感單元將數據轉換為數字量或電壓模擬量,經過處理器對數據進行處理,并通過某些界面設計環境進行人機界面設計[15],如李明等[7]為增加酒精傳感器測量點數,基于UCOS操作系統和STM32F4單片機,設計實現了一種可用于多種酒精檢測場合的酒精檢測裝置,基于STemWin設計制作了系統圖形化界面,并通過LCD觸摸屏實現人機交互。

筆者基于STM32F4單片機,研制了一種9路電流采集與實時檢測系統,通過單片機的ADC功能將9路WCS1800霍爾電流傳感器傳回的電流數據轉換為數字量。通過CH340G串口轉換芯片實現串口通信協議向USB通信協議的轉換,以實現終端機與上位機的數據傳輸。在電流數據的末尾拼接字符串“A1”~“A9”區分1~9路電流數據。通過MATLABGUI開發環境,進行人機界面的設計。

1 硬件設計

1.1 整體組成

圖1所示系統的整體組成包括:STM32F 429型單片機、USB電源、穩壓與降壓電路、電源接通LED指示燈、串口轉換電路、上位機、傳感器組(WCS1800-1-WCS1800-9)、復位電路、晶振電路、LED指示燈、按鍵模組等。單片機選擇為STM32F429系列,該系列單片機集成了ARM的Cortex-M7內核,具有DSP指令和浮點運算單元,工作頻率最大可配置為180 MHz,集成了3個12位的獨立ADC,可以提供24個輸入通道。因此,可為多點電流采集系統的設計提供強有力的硬件保障。

圖1 系統整體組成

USB電源使用標準的USB線為終端機提供電源,由于STM32的工作電壓為3.3 V,需使用穩壓與降壓芯片實現USB的標準5V電壓到3.3 V電壓的轉換。電源LED用于在電源接通時點亮,以表明系統電源接通,單片機可在正常電壓下工作。傳感器組采用WCS1800霍爾電流傳感器,共9路(WCS1800-1~WCS1800-9),傳感器的電壓模擬量輸出口(DOUT引腳)分別與單片機的GPIOA1-GPIOA9引腳連接。上位機在MATLABGUI環境下設計,界面功能包括串口配置、當前數據顯示、電流曲線顯示和關于產品等。復位電路用于在系統工作出現異常時復位系統;晶振電路用于為單片機提供具有固定頻率的晶振信號;按鍵模組用于終端機與上位機通信,以判斷串口配置是否正常;LED指示燈用于指示當前的工作傳感器,共9個,分別對應9路(WCS1800-1~WCS1800-9)霍爾電流傳感器。

1.2 穩壓降壓電路

使用LM1086-3.3芯片實現5~3.3 V的降壓與穩壓調節。電源LED指示燈通過1 kΩ限流電阻與電源的高電平連接,電壓高電平從LM1086-3.3芯片的2號OUT引腳輸出(圖2)。

圖2 穩壓降壓電路

1.3 CH340G電路

如圖3所示,采用CH340G芯片實現串口通信協議到USB通信協議的轉換,二者在數據通信時可兼容使用。芯片的TXD和RXD引腳分別與單片機的PA10和PA9連接;UD-和UD+分別與標準四線的USB接口D-和D+連接,USB接口采用標準的5V電源供電。芯片的XI和XO引腳連接其工作晶振,設計芯片的工作晶振頻率為12 MHz。

圖3 3USB轉串口CH340G電路

1.4 WCS1800霍爾電流傳感器

選擇使用WCS1800型霍爾電流傳感器檢測模塊,兼具精確性和經濟實用性,在模塊上集成了LM393運放電路,工作電壓為USB供電5 V電壓。模塊的電流檢測范圍寬直流35 A和交流25 A,過流信號設置分辨率為1.5 A,模塊輸出信號為一路模擬信號和一路高電平信號。對于直流電路,檢測電流大小為

(1)

式中:V0為傳感器模塊輸出電壓;Vcc為參考電壓,5V;K為傳感器線性度,60 mV/A;正負號±為電流流入傳感器反、正方向符號。

1.5 按鍵模組

按鍵模組包括4個機械按鍵,分別與單片機的PI4~PI7連接,當PI4~PI7按鍵按下時,單片機向串口發送字符串“I0.2”“I4.2”“I20.2”“I111.2”,通過字符串首字母“I”判斷為電流數據,首字母“I”后的浮點數據代表電流值的大小(并非實際電流值),從小數位到百數位逐漸變化。通過上位機的串口接收數據本框查看單片機向上位機發送的數據是否正確。

2 軟件設計

2.1 系統整體程序流程

系統整體程序流程經過一系列的初始化后再進行操作系統UCOSIII的初始化(圖4),在UCOSIII操作系統打開后可創建系統任務啟動函數AppTaskStart,在該任務函數中進行電流測量任務:傳感器1任務—傳感器9任務,任務啟動后自動進入對應的傳感器1任務循環—傳感器9任務循環,此時STM32的PC指針將在這9個任務間切換。在傳感器的任務循環中,經同一條串口總線將檢測得到的電流數據發送至上位機,為了區分到底是哪一路傳感器傳回的數據,采用在電流數據的末尾拼接字符串“A1”~“A9”的方法區分傳感器1~傳感器9的電流數據,因此可實現傳感器的熱插拔操作。將系統任務設置為10個,包括:創建起始任務和9個傳感器任務,設置起始任務的優先級為6,任務的堆棧容量為128 B,時間片長度為0 ms;9個傳感器任務的優先級相同,均為5,任務的堆棧容量均為512 B,時間片長度為20 ms。

圖4 系統整他程序流程

2.2 ADC初始化程序

以傳感器1任務的使用的ADC為例(圖5),進入初始化函數后首先進行GPIO的初始化,傳感器1的ADC對應單片機引腳PA1,在引腳配置時需將PA1配置為模擬量輸入模式,并設置ADC的工作模式為連續轉換和禁止掃描采集的獨立模式,將ADC轉換頻率設置為12 MHz;最后進行中斷配置,將中斷分組設置在1組,設置響應優先級為1,子優先級為1,簡稱“111”模式。

圖5 ADC初始化程序

2.3 電流測量任務

9路電流測量任務的函數體基本相同,其測量任務如圖6所示。

圖6 電流測量任務

函數變量err用于操作系統出現故障時存儲故障信息。函數變量cycle為for循環變量,用于循環cycle次對電流數據的采集,循環cycle次后自動退出for循環。函數變量sumADC_Current為循環cycle次后的電流數據總和,用于計算電流數據平均值使用。函數變量ADC_Current_Vol為電流數據值,在任務函數中兩次使用,一次是保存傳感器采集的電流數據,另一次為計算電流數據平均值使用。函數變量current_Vol為電流值變量,用于存儲經轉換公式轉換后的電流值,該數據為最終的電流值。任務函數通過串口通信方式向上位機發送電流數據,函數最后對其堆棧中的變量進行清零操作。

2.4 上位機界面設計

上位機檢測界面如圖7所示,其界面包括“打開串口”按鈕,串口調試窗口、9個電流數據曲線顯示窗口、9個當前電流值顯示文本框(在無電流數據時顯示為NULL1—NULL9)、“啟動”按鈕、關于系統文本框。

圖7 上位機界面

打開系統界面后,通過“啟動”按鈕啟動系統,此時“啟動”按鈕文本更改顯示為“關閉”。系統啟動后將自動掃描電流采集系統終端機發送的信號,一旦接收到信號后,系統提示是否打開串口(圖8),用戶可通過“Yes”“No”和“Cancel”按鈕進行選擇,選擇后用戶通過“打開串口”按鈕打開終端機所連接的串口,并將串口號顯示在“串口號”文本框中。通過按下并松開按鈕模組,向上位機發送串口數據,按鈕按下瞬間進行按鈕狀態的讀取,但不立刻向上位機發送數據,在上位機中的串口調試窗口顯示終端機向上位機發送的串口數據,從而判斷串口連接及串口數據傳輸是否正常。

圖8 串口檢測與詢問窗口

9個當前電流值顯示文本框用于顯示9路電流傳感器傳回的9路電流值,在未檢測到電流值或傳感器未連接時顯示NULLi(i=1,2,…,9),當有電流值時,對應的電流值文本顯示框將實時顯示當前采集到的電流值。9個電流數據曲線顯示窗口用于以實時曲線的方式顯示9路電流傳感器傳回的電流值,用戶可根據曲線顯示結果觀測電流值歷史變化情況。因此,該上位機界面可為用戶提供當前電流值讀取接口和電流值歷史變化情況,通過對比觀測更加充分地了解電流變化過程。

2.5 系統調試

對大米色選機的工業電源供電端、交流伺服電機供電端、PLC電源端、光電轉換電路供電端的4個重要電路進行電流采集,并將傳感器連接在系統的第1,3,5和7通道上,在產品正常工作的情況下,得到電流值的變化過程見圖9??芍ǖ?、通道3、通道5、通道7,均檢測出了電流值,在產品正常工作情況下,測得第1通道電流為1.3 A左右,變化幅值不超過0.02 A;測得第3通道電流為1.7 A,變化幅值不超過0.01 A;測得第5通道電流為0.6 A,變化幅值不超過0.02 A;測得第7通道電流為1.0 A,變化幅值不超過0.02 A,可知系統得到了較穩定電流測量值。

圖9 電流變化過程

對第1通道進行短路連接測試,并在電路中加裝繼電器保護開關,用于在短路電流過大時及時斷開電源,得到電流值的變化情況(圖10)??芍陂_始階段電流基本穩定在1.3 A,變化幅值不超過0.02 A。在采集點為500時,將電路進行短路連接,得到的電流值瞬間增大。當電流值最大達500 A時,說明傳感器已不再正常工作。此時繼電器開關打開,電流值又瞬間變化到0 A,變化幅值不超過0.01 A。因此,可通過加裝繼電器開關保護裝置等對產品的關鍵電路進行過電流保護,以避免短路情況發生時燒壞產品。

圖10 短路測試

3 結 語

筆者研制了一種多點電流采集與監視系統,介紹了系統的硬件組成與軟件設計。采用霍爾型電流傳感器對電流值進行采集,使用單片機的ADC功能對數據進行模數轉換,使用串口轉換芯片將數據發送至使用MATLAB GUI開發的上位機界面中。通過電流檢測和過電流短路試驗驗證了系統的工作穩定可靠,可應用于多種需電流測量的生產現場。

猜你喜歡
電流值串口單片機
制冷劑與潤滑油混合物對空調器泄漏電流影響分析及研究
放療中CT管電流值對放療胸部患者勾畫靶區的影響
基于NPORT的地面綜合氣象觀測系統通信測試方法及故障處理
基于API函數庫實現串口數據通信的分析與設計
變壓器差動斜率保護計算方法
基于EM9000工控板高性能雙串口通信模型設計與實現
基于單片機的SPWM控制逆變器的設計與實現
基于單片機的層次漸變暖燈的研究
基于單片機的多功能智能插排
基于單片機的便捷式LCF測量儀
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合