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