基于STM32的智能參數(shù)測試儀的設(shè)計方案
產(chǎn)品檢測是生產(chǎn)廠家和用戶都關(guān)心的問題。在產(chǎn)品生產(chǎn)過程中,檢測是必不可少的一部分,有的還是工藝過程的一道工序。電磁繼電器是電力系統(tǒng)以及其他電氣控制系統(tǒng)中常用的開關(guān)元件,它們的可靠性是電力系統(tǒng)和其他電氣控制系統(tǒng)可靠運(yùn)行的重要保證,因此,必須對繼電器的特性參數(shù)進(jìn)行準(zhǔn)確的測試。電磁繼電器的電氣參數(shù)主要有線圈電阻、觸點(diǎn)接觸電阻、吸合電壓、釋放電壓、吸合時間、釋放時間等。這些參數(shù)對研究繼電器可靠性、動態(tài)性能具有重要意義,是保證其質(zhì)量特性的重要參數(shù)。
本文引用地址:http://butianyuan.cn/article/201612/328306.htm1 系統(tǒng)總體架構(gòu)
1.1 系統(tǒng)硬件結(jié)構(gòu)
系統(tǒng)硬件主要包括UART 串口通信模塊、JTAG 接口模塊、測試結(jié)果顯示模塊、檢測程序存儲模塊FLASH、檢測電路模塊以及SRAM 模塊。系統(tǒng)總體硬件結(jié)構(gòu)框圖如圖1 所示。
1.2 系統(tǒng)微處理器
本系統(tǒng)主要由檢測部分和顯示控制部分組成。在本設(shè)計中,采用了高性能的ARM Cortex 芯片STM32F103ZET6.
該芯片內(nèi)部采用哈佛結(jié)構(gòu),其中集成有64 KB 的RAM 和512 KB FLASH,并且具有運(yùn)算速度快、體積小和低功耗的特點(diǎn),完全能滿足本設(shè)計的要求。Cortex-M3 是一個32 位的核,它采用的是Tail-Chaining 中斷技術(shù),最多可減少12 個時鐘周期數(shù),基于硬件進(jìn)行中斷處理,通??蓽p少70% 的中斷。Cortex-M3 還采用了新型的單線調(diào)試(Single Wire) 技術(shù),可對獨(dú)立的引腳進(jìn)行調(diào)試。
1.3 系統(tǒng)工作流程
系統(tǒng)上電后,首先完成對各個寄存器的初始化工作,然后等待開始檢測命令;單擊上位機(jī)界面上的START 命令,然后上位機(jī)給單片機(jī)發(fā)送開始檢測命令;單片機(jī)接到開始命令后開始向檢測電路發(fā)送檢測命令,然后單片機(jī)處理檢測電路發(fā)回的數(shù)據(jù),得出繼電器的各個參數(shù),通過串口把這些參數(shù)顯示在上位機(jī)的界面上。
2 系統(tǒng)硬件設(shè)計
2.1 驅(qū)動電壓的設(shè)計
為了準(zhǔn)確測出繼電器的吸合電壓,必須得到一個從0 開始按照一定量增大的電壓源,每次增大的電壓量越小,測試的結(jié)果越準(zhǔn)確,但是所要求的電路也越復(fù)雜,所以我們必須根據(jù)實(shí)際的要求在這中間找到一個平衡點(diǎn)。圖2 所示為系統(tǒng)驅(qū)動電壓電路。
圖2 中,TL431用于給TLC5615 提供2.5 V 的基準(zhǔn)電壓源,DA_DIN 是串行數(shù)據(jù)輸入端,DA_CS 是低電平有效的片選信號輸入端,DA_SCK 是串行時鐘輸入端,DOUT 是用于級聯(lián)的串行數(shù)據(jù)輸出端,OUT 是DAC 模擬電壓輸出端,輸出模擬信號。由于從TLC5615 輸出的模擬信號很小,不能驅(qū)動繼電器,所以,本設(shè)計在后面又加上了放大電壓電路和放大電流電路。
2.2 集成切換網(wǎng)絡(luò)的設(shè)計
本系統(tǒng)的集成切換網(wǎng)絡(luò)是利用繼電器的開關(guān)工作原理完成的,利用單片機(jī)發(fā)出的不同指令控制繼電器的閉合,從而切換到不同的測試電路模塊。在測試吸合/ 釋放電壓時,首先ARM Cortex 發(fā)出測試參數(shù)為吸合/ 釋放電壓的指令。集成切換網(wǎng)絡(luò)根據(jù)指令,切換到Prog_v 一側(cè),XQ1I 連接所測繼電器觸點(diǎn)一端,具體電路如圖3 所示。
為了解決單片機(jī)的I/O 驅(qū)動能力不足的問題, 選用ULN2003 作為繼電器的驅(qū)動芯片。ULN2003 是高壓大電流達(dá)林頓晶體管陣列電路,它具有工作地電壓高,工作電流大,灌電流可達(dá)500 mA,并且能夠在關(guān)態(tài)時承受50 V 的電壓,輸出還可以在高負(fù)載電流并行運(yùn)行。它采用集電極開路輸出,輸出電流大,故可直接驅(qū)動繼電器。ULN2003 的每一對達(dá)林頓管都串聯(lián)一個2.7 kΩ 的基極電阻,在5 V 的工作電壓下它能與TTL 和CMOS 電路直接相連,可以直接處理原先需要標(biāo)準(zhǔn)邏輯緩沖器來處理的數(shù)據(jù)。通常單片機(jī)驅(qū)動ULN2003 時,上拉2 kΩ 的電阻,同時,COM 引腳應(yīng)該懸空或接電源。
2.3 數(shù)據(jù)處理及與上位機(jī)的通信
接收到的數(shù)據(jù)通過異步串口管腳與3.3 V 轉(zhuǎn)換芯片MAX232 相連,外接串口線同PC 機(jī)進(jìn)行通信,接收和發(fā)送數(shù)據(jù),STM32 作為下位機(jī)負(fù)責(zé)接收上位機(jī)的指令以及控制各部分電路并處理數(shù)據(jù),然后向上位機(jī)發(fā)送數(shù)據(jù),PC 機(jī)接收數(shù)據(jù),并通過VC 編程把接收的數(shù)據(jù)通過界面顯示出來。這里PC 機(jī)的VC 通過串口發(fā)送命令給STM32,主控芯片接收命令并判斷有效,即可開始控制電路進(jìn)行工作[6].由于篇幅所限,本文未對STM32 的最小系統(tǒng)硬件部分作詳細(xì)說明。
3 系統(tǒng)軟件設(shè)計
系統(tǒng)軟件部分主要包括STM32 微處理器控制程序和上位機(jī)程序兩部分。由于下位機(jī)軟件使用C 語言來開發(fā),所以選擇了一款支持C語言編程的開發(fā)環(huán)境。由于使用的是J-LINK接口調(diào)試方式[7],選擇用IAR SYSTEM 作為下位機(jī)的控制平臺開發(fā)工具。
3.1 微處理器控制程序
圖4 所示是本系統(tǒng)的微處理器控制程序。本程序的核心部分是線圈電阻子程序、觸點(diǎn)電阻子程序、吸合/ 釋放電壓子程序、吸合/ 釋放時間子程序。
3.2 吸合電壓算法設(shè)計
對于吸合/ 釋放電壓的測試,這里將對比三種測試算法:
二分算法、步進(jìn)自適應(yīng)中值算法和差異比較算法[8].
3.2.1 二分算法
函數(shù)f(x),對于一個實(shí)數(shù)a,當(dāng)x=a 時,若f(a)=0,則把x=a 叫做函數(shù)f(x) 的零點(diǎn)。設(shè)f(x) 在區(qū)間(X,Y) 上連續(xù),a、b 屬于區(qū)間(x,y),且f(a),f(b) 異號,則在區(qū)間(a,b) 內(nèi)一定存在至少一個零點(diǎn),然后求f[(a+b)/2].假定a0,那么:
如果f[(a+b)/2]=0,則x=(a+b)/2 就是零點(diǎn)。
如果f[(a+b)/2]<0,說明區(qū)間((a+b)/2,b) 內(nèi)有零點(diǎn),再次對新區(qū)間((a+b)/2,b) 取中值代入函數(shù),進(jìn)行中點(diǎn)函數(shù)值判斷。
如果f[(a+b)/2]>0,說明區(qū)間(a,(a+b)/2) 內(nèi)有零點(diǎn),再次對新區(qū)間(a,(a+b)/2) 取中值代入函數(shù),進(jìn)行中點(diǎn)函數(shù)值判斷。
通過以上反復(fù)的區(qū)間取值,可以把f(x) 的零點(diǎn)所在小區(qū)間收縮一半,使區(qū)間的兩個端點(diǎn)逐步迫近函數(shù)的零點(diǎn),最終以求得零點(diǎn)的近似值。
這就是二分算法的基本原理。
3.2.2 步進(jìn)自適應(yīng)中值算法
同簡單二分算法一樣,確定A、B 兩個電壓值,其中A 無法使觸點(diǎn)吸合,B 保證發(fā)生觸點(diǎn)吸合。然后求得A、B 的平均值C,如果C 小于觸點(diǎn)的閾值電壓,則在B 電壓量的基礎(chǔ)上步進(jìn)式地減小一定幅度的電壓X,得到電壓量D ;如果C 大于觸點(diǎn)的觸發(fā)電壓,那么在A 電壓量的基礎(chǔ)上,步進(jìn)式地增加一定幅度的電壓X[9],然后重復(fù)以上步驟。如果發(fā)生某一步進(jìn)增加時,觸點(diǎn)發(fā)生吸合,則繼電器的吸合電壓介于觸點(diǎn)觸發(fā)的前后兩個電壓平均數(shù)值之間。
3.2.3 差異比較算法
差異比較算法是通過比較輸入值和輸出值的大小,將發(fā)生差異型變化的數(shù)值進(jìn)行篩選并記錄。選擇這個算法主要是針對二次發(fā)生的吸合釋放過程。
三種算法中,二分算法有可能讓程序進(jìn)入死循環(huán),差異比較算法相對前兩者速度較慢,所以本系統(tǒng)最終采用步進(jìn)自適應(yīng)中值算法。
3.3 上位機(jī)程序設(shè)計
本系統(tǒng)的上位機(jī)界面程序采用C++ 程序編寫,它主要包括參數(shù)設(shè)置區(qū)域、參數(shù)顯示區(qū)域、繼電器類型選擇和控制按鍵等幾部分。參數(shù)設(shè)置區(qū)域是完成對所測繼電器的相關(guān)參數(shù)上下限參數(shù)的設(shè)置,比如吸合電壓上下限的設(shè)置。參數(shù)顯示區(qū)域是顯示所測參數(shù)大小的,這里還包括了一個參數(shù)選擇復(fù)選框,如果選上則表示需要對此參數(shù)進(jìn)行檢測,如果不選則系統(tǒng)不對此部分參數(shù)進(jìn)行檢測。圖5 所示為其上位機(jī)界面。
3.4 實(shí)驗(yàn)結(jié)果
在調(diào)試好的樣機(jī)上分別可對吸合電壓等六個參數(shù)進(jìn)行測試,為了減少一次測試數(shù)據(jù)的偶然性,每個參數(shù)均測試了八組數(shù)據(jù)進(jìn)行處理,實(shí)驗(yàn)結(jié)果如表1 所示。從表1 中的數(shù)據(jù)可以發(fā)現(xiàn),其測試數(shù)據(jù)變化范圍小,系統(tǒng)性能較穩(wěn)定,總體性能能夠令人滿意。
4 結(jié)語
本文是結(jié)合前人的研究成果基礎(chǔ)上而提出的一種基于STM32 的智能參數(shù)測試儀的設(shè)計方案,該方案中所設(shè)計的測試儀由STM32 作為主控芯片,并結(jié)合先進(jìn)的電子測量線路來對繼電器的主要電氣參數(shù)進(jìn)行測量。實(shí)驗(yàn)結(jié)果表明,本系統(tǒng)測試結(jié)果準(zhǔn)確性高,工作穩(wěn)定,總體性能令人滿意。
評論