祝 勛
(武漢軟件工程職業(yè)學(xué)院,湖北 武漢 430205)
在電子應(yīng)用領(lǐng)域,很多場(chǎng)合需要同時(shí)監(jiān)測(cè)多路傳感器傳來(lái)的電壓信號(hào)。當(dāng)電壓信號(hào)超過(guò)或者低于預(yù)設(shè)值時(shí),要求系統(tǒng)能夠在第一時(shí)間快速做出反應(yīng)。在某些場(chǎng)合,系統(tǒng)的反應(yīng)速度越快,越能夠更早地根據(jù)實(shí)際情況進(jìn)行調(diào)整或者動(dòng)作。因此,快速反應(yīng)的多路電壓實(shí)時(shí)監(jiān)測(cè)系統(tǒng)對(duì)實(shí)際現(xiàn)場(chǎng)的應(yīng)用有很大幫助。本文詳細(xì)介紹了一種多路電壓實(shí)時(shí)監(jiān)測(cè)系統(tǒng),可以廣泛應(yīng)用于工業(yè)現(xiàn)場(chǎng)的亮度、溫度、壓力以及濕度等的監(jiān)測(cè),同時(shí)帶有多種通信端口,方便與上位機(jī)進(jìn)行通信。
整個(gè)電壓監(jiān)測(cè)系統(tǒng)采用ARM架構(gòu)的STM32F103作為主控芯片。STM32F103本身基于Cortex-M3內(nèi)核,最高工作頻率72 MHz,內(nèi)部存儲(chǔ)器包含有64 kB的SRAM和256 kB的閃存程序存儲(chǔ)器,具有SPI接口、I2C接口以及UART等多種接口[1],同時(shí)自帶12位逐次逼近型AD轉(zhuǎn)換器。它的AD轉(zhuǎn)換通道多達(dá)16個(gè),且各轉(zhuǎn)換通道的工作模式可以設(shè)定為單次、連續(xù)、掃描以及間斷4種模式。當(dāng)時(shí)鐘為72 MHz時(shí),完成一次AD轉(zhuǎn)換的時(shí)間僅僅需要1.17 μs,能夠滿足本系統(tǒng)的需求。整個(gè)硬件系統(tǒng)的結(jié)構(gòu)圖如圖1所示。
圖1 多路電壓實(shí)時(shí)監(jiān)測(cè)系統(tǒng)結(jié)構(gòu)圖
多路電壓信號(hào)通過(guò)不同通道送到各自對(duì)應(yīng)的電壓比較器,與各自的基準(zhǔn)設(shè)定電壓進(jìn)行比較。將各個(gè)電壓比較器的輸出送入一個(gè)多輸入與門,與門輸出端的信號(hào)可以作為外部終端的輸出信號(hào)提供給STM32F103。當(dāng)某路電壓信號(hào)超出預(yù)設(shè)報(bào)警電壓時(shí),該路的比較器輸出發(fā)生翻轉(zhuǎn),與門的輸出向STM32F103發(fā)出中斷請(qǐng)求。此時(shí),STM32F103啟動(dòng)編碼器,使得編碼器將產(chǎn)生中斷的通道的二進(jìn)制編碼提供給STM32F103。STM32F103收到中斷請(qǐng)求后,根據(jù)編碼器提供的二進(jìn)制通道編碼對(duì)該通道的電壓進(jìn)行采樣,并記錄該通道電壓超出設(shè)定值的數(shù)值、時(shí)刻以及次數(shù)等信息。
電壓監(jiān)測(cè)電路選用比較常見(jiàn)的LM358運(yùn)放芯片,應(yīng)用范圍十分廣泛,在變頻放大器、直流增益放大器以及一般常規(guī)運(yùn)算放大電路中都十分常見(jiàn)。LM358內(nèi)部集成有兩個(gè)獨(dú)立的、高增益以及內(nèi)部頻率補(bǔ)償?shù)倪\(yùn)算放大器,主要特點(diǎn)包括直流電壓增益高、輸入電壓范圍寬、可以采用單電源或者雙電源工作、功耗小、單位增益頻帶寬以及輸出電壓擺幅大等。另外,LM358對(duì)階躍信號(hào)的響應(yīng)時(shí)間可以達(dá)到微秒級(jí),因此需使用LM358作為比較器監(jiān)測(cè)外部電壓。它可以根據(jù)外部電壓的變化情況作出快速反應(yīng),大幅加快了系統(tǒng)的反應(yīng)速度[2]。
在多路電壓信號(hào)中任選一路,設(shè)該路的基準(zhǔn)電壓為2.5 V,并在該路對(duì)應(yīng)的輸入電壓端加上一個(gè)1 000 Hz的周期性超限電壓(幅值為2.6 V)信號(hào),而多路電壓信號(hào)的其余路的電壓保持一個(gè)未超限的直流電壓值(2 V)不變。將超限輸入電壓信號(hào)與多輸入與門電路的輸出波形相比較,比較波形如圖2所示??梢?jiàn),輸入電壓超過(guò)限制電壓2.6 V的同時(shí)(即2.6 V方波的下降沿),與門的輸出端得到了一個(gè)5 V脈沖的下降沿。這兩個(gè)時(shí)刻的時(shí)間間隔主要取決于運(yùn)放LM358的響應(yīng)速度。集成運(yùn)放LM358的手冊(cè)中可以查到,這個(gè)時(shí)間在10 μs以內(nèi)。可以將與門輸出的下降沿作為電路中有某路電壓信號(hào)超限的時(shí)間信號(hào)送入STM32F103的外部中斷觸發(fā)端,從而使STM32F103啟動(dòng)對(duì)應(yīng)的中斷服務(wù)程序。
圖2 電壓比較器輸出波形圖
集成編碼器采用的是8路優(yōu)先編碼器74LS148。74LS148是8線-3線優(yōu)先編碼器,主要功能為對(duì)8條數(shù)據(jù)線I0~I(xiàn)7進(jìn)行3線二進(jìn)制優(yōu)先編碼,即對(duì)最高位數(shù)據(jù)線進(jìn)行譯碼。在本系統(tǒng)中,使用它對(duì)8個(gè)通道的通道號(hào)進(jìn)行二進(jìn)制優(yōu)先編碼。優(yōu)先編碼器廣泛應(yīng)用于多輸入控制系統(tǒng),當(dāng)有多個(gè)輸入同時(shí)發(fā)出編碼請(qǐng)求時(shí),優(yōu)先編碼器輸出的是發(fā)出請(qǐng)求的優(yōu)先級(jí)別最高的輸入端的二進(jìn)制編碼。74LS148是一個(gè)8-3線優(yōu)先編碼器,本身具有8個(gè)信號(hào)輸入端,可以為8路通道的通道數(shù)生成對(duì)應(yīng)的二進(jìn)制編碼。如果通道數(shù)超過(guò)8路,可以用兩片74LS148進(jìn)行級(jí)聯(lián),構(gòu)成一個(gè)16-4線優(yōu)先編碼器[3]。
當(dāng)多路電壓信號(hào)其中一路上的電壓信號(hào)超限時(shí),STM32F103收到多路電壓比較器后面的多輸入與門輸出的外部中斷信號(hào)后向74LS148發(fā)出編碼命令。74LS148的多個(gè)輸入端與多路電壓信號(hào)后的比較器的輸出端相連,當(dāng)74LS148收到編碼請(qǐng)求后,根據(jù)多個(gè)輸入端哪個(gè)引腳上有低電平狀態(tài)來(lái)判斷哪一路電壓信號(hào)輸入端出現(xiàn)了超限信號(hào),然后將該通道的通道號(hào)進(jìn)行二進(jìn)制編碼提供給STM32F103,而STM32F103根據(jù)編碼器提供的二進(jìn)制通道編碼進(jìn)行后續(xù)操作處理。
傳統(tǒng)的多路電壓檢測(cè)系統(tǒng)一般采用順序采樣和隨機(jī)采樣兩種方式[4]。順序采樣指的是采用固定的順序(如按照通道號(hào)從小到大)依次對(duì)多路信號(hào)的每一路進(jìn)行采樣。隨機(jī)采樣指的是每次隨機(jī)從多路信號(hào)中選擇一路進(jìn)行采樣,依次執(zhí)行,直至多路信號(hào)的每一路都被采樣后開(kāi)始下一個(gè)循環(huán)。不論采用哪種采樣方式,都存在采樣時(shí)間間隔長(zhǎng)和超限提醒滯后等缺點(diǎn)。
本系統(tǒng)的軟件設(shè)計(jì)分為主程序和外部中斷服務(wù)程序兩部分。由于整個(gè)系統(tǒng)的電壓超限采樣和記錄等工程都通過(guò)中斷服務(wù)程序完成,因此主程序只需要負(fù)責(zé)數(shù)據(jù)處理、存貯、顯示以及與上位機(jī)通信等功能。系統(tǒng)中斷服務(wù)程序流程如圖3所示。
圖3 中斷服務(wù)程序流程圖
本系統(tǒng)設(shè)計(jì)使用反應(yīng)快速的運(yùn)放作為比較器,實(shí)時(shí)監(jiān)測(cè)多路電壓信號(hào)是否超限。當(dāng)多路電壓信號(hào)中的任意一路上出現(xiàn)超限信號(hào)后,系統(tǒng)能夠在非常短的時(shí)間內(nèi)做出快速反應(yīng),并能存儲(chǔ)記錄超限信號(hào)通道數(shù)、超限程度以及超限時(shí)間等信息。該電路設(shè)計(jì)簡(jiǎn)單易用,應(yīng)用場(chǎng)合廣泛。