朱旭 符秀輝
摘?要:本文介紹了一種基于單片機(jī)的智能插排控制系統(tǒng),本設(shè)計(jì)采用STM32F103單片機(jī)作為控制核心,該系統(tǒng)具有電壓、電流檢測、過流保護(hù)、多路定時通斷控制、TFT_LCD顯示屏、觸摸屏控制、斷電定時時間自動保存等功能。系統(tǒng)分為主界面、定時界面、查詢界面三個界面。本設(shè)計(jì)具有節(jié)約能源、消除安全隱患、延長家用電器的壽命等功能,給生活帶來了極大的便利。
關(guān)鍵詞:智能插排;STM32F103;過流保護(hù);多路控制;TFT_LCD顯示屏
本設(shè)計(jì)選用以STM32F103ZET6單片機(jī)作為主控芯片,MCP39F501芯片作為電量計(jì)量芯片,輔以電壓電流檢測、過流保護(hù),多路定時通斷、觸摸屏控制、定時斷電自動保存等功能,設(shè)計(jì)了一款具有低功耗、高性價比、人機(jī)交互程度高等特點(diǎn)的智能插排控制系統(tǒng)。
1 系統(tǒng)的總體設(shè)計(jì)
智能插排的硬件系統(tǒng)主要由主控制器模塊、電能計(jì)量模塊、Flash存儲模塊、彩屏顯示模塊、觸摸屏控制模塊、繼電器控制模塊組成。主控模塊選用STM32F103系列單片,通過單片機(jī)進(jìn)行數(shù)據(jù)處理、定時控制、LCD彩屏顯示、觸摸屏控制、Flash存儲模塊控制、電能采集與過流保護(hù)。為了實(shí)現(xiàn)對用電設(shè)備的耗能監(jiān)測,通過電能計(jì)量模塊進(jìn)行檢測電能數(shù)據(jù),該模塊將電能數(shù)據(jù)信息通過串口發(fā)送到單片機(jī),由單片機(jī)進(jìn)行數(shù)據(jù)處理實(shí)現(xiàn)過流保護(hù)功能,并通過LCD液晶顯示器將電能數(shù)據(jù)顯示出來。RTC時鐘模塊主要為系統(tǒng)提供準(zhǔn)確的時間。Flash存儲單元主要用來存儲定時時間與斷電前運(yùn)行狀態(tài),從而實(shí)現(xiàn)斷電數(shù)據(jù)保存功能,上電狀態(tài)恢復(fù)功能。
2 控制器硬件電路設(shè)計(jì)
在主控模塊系統(tǒng)這一方面,單片機(jī)控制電路是整個控制器的中樞,起著發(fā)號施令的作用。STM32F103ZET6基于Cortex-M3(CM3)處理器,不僅在功能上能滿足我們生活的要求,而且在運(yùn)行效果上也格外顯著。完整的基于CM3的MCU還需要很多其他組件通信接口多達(dá)13個通信接口,其中兩個IIC、五個串口、三個SPI能夠滿足本設(shè)計(jì)通信使用。然而,要想正確合理的應(yīng)用此單片機(jī),僅僅依靠芯片本身是不行的。其往往還需要外部時鐘、復(fù)位、隔離等單元電路才能工作。其硬件電路如右圖所示。
在TFT_LCD液晶顯示電路設(shè)計(jì)中顯示出獨(dú)特的優(yōu)勢,它不僅具有良好的畫質(zhì),而且還可以設(shè)置成觸控模式,方便用戶操作。在TFT_LCD觸控電路設(shè)計(jì)中,不僅支持顯示功能,而且還能通過專門的控制芯片實(shí)現(xiàn)觸屏功能。由于STM32F1O3ZET6單片機(jī)沒有集成的液晶驅(qū)動器,因此需要借助ILI9320驅(qū)動芯片通過FSMC接口對液晶進(jìn)行控制。
而為了準(zhǔn)確有效地得到觸控位置,將電壓信號模擬量轉(zhuǎn)化為數(shù)字量。由于需要一個A/D轉(zhuǎn)換芯片進(jìn)行控制在設(shè)計(jì)中采用XPT2046轉(zhuǎn)換芯片。XPT2046是一種典型的逐次逼近型模數(shù)轉(zhuǎn)換器,其包含了采樣保持、模數(shù)轉(zhuǎn)換、串口輸出等功能。當(dāng)控制觸摸屏?xí)r,可將其設(shè)置為差分模式,可有效消除外部干擾和寄生電阻帶來的測量誤差,使轉(zhuǎn)換精度更高。
24C02儲芯片設(shè)計(jì)中,在初始化觸控屏?xí)r需要將采集的觸控點(diǎn)通過IC總線傳送到存儲芯片上,為下次初始化時免去煩瑣的校準(zhǔn)程序。
SPI通信協(xié)議中,SPI接口主要應(yīng)用在EEPROM、FLASH、實(shí)時時鐘、AD轉(zhuǎn)換器,還有數(shù)字信號處理器和數(shù)字信號解碼器之間。
MCP39F501是一款高度集成的單相功率監(jiān)視芯片,用于實(shí)時測量交流電源、配電單元和工業(yè)應(yīng)用的輸入功率,并且支持modbus、串口通信等。其優(yōu)點(diǎn)在于該器件能夠在4000∶1的動態(tài)范圍內(nèi)實(shí)現(xiàn)精度優(yōu)于0.1%的設(shè)計(jì)。
3 控制器軟件設(shè)計(jì)
智能控制系統(tǒng)由初始化程序、觸摸屏控制程序、定時器中斷程序、電量數(shù)據(jù)采集采集程序、RTC時鐘程序、定時器中斷程序、LCD顯示程序、串口中斷程序、繼電器控制和共同組成。各子程序經(jīng)過單片機(jī)的主程序運(yùn)算處理,實(shí)現(xiàn)了過流保護(hù)、電量檢測、液晶顯示、觸屏控制、模式選擇、數(shù)據(jù)傳輸與處理、繼電器控制等功能,達(dá)到了過流保護(hù)、人機(jī)交互、電量檢測的要求。在整個程序設(shè)計(jì)中,采用模塊化編程的方式,使程序更加靈活,方便調(diào)用、移植、調(diào)試。在接入電源后,單片機(jī)控制器開始工作,首先系統(tǒng)對所需功能進(jìn)行初始化自檢,在完成初始化后,執(zhí)行觸摸屏掃描程序,顯示主界面。在主界面下顯示當(dāng)前時間、各路插排通斷狀態(tài)和當(dāng)前模式。當(dāng)檢測到屏幕被觸摸后,系統(tǒng)根據(jù)其坐標(biāo)判斷所選擇的命令,并進(jìn)入相應(yīng)子程序。當(dāng)按下定時界面后會進(jìn)入定時界面,定時界面可以單獨(dú)設(shè)置各路插排定時開啟關(guān)閉時間。當(dāng)按下電流設(shè)置界面時,電流設(shè)置界面可以顯示各路插排的電壓、電流等數(shù)據(jù),單獨(dú)設(shè)置各路的過流保護(hù)閾值。用TFT_LCD液晶屏顯示測量參數(shù)并且再想去控制其中參數(shù)需要對液晶及其控制器進(jìn)行一系列校準(zhǔn)與設(shè)置。在程序開始執(zhí)行時,首先,判斷液晶屏幕是否已經(jīng)通過校準(zhǔn),若校準(zhǔn)完畢,則顯示待機(jī)狀態(tài)下的菜單,否則需要經(jīng)過校準(zhǔn)程序進(jìn)行校準(zhǔn);其次,判斷LCD屏幕是否被觸摸,若檢測到,則讀取相應(yīng)觸控點(diǎn)坐標(biāo),否則返回到待機(jī)狀態(tài)下的顯示界面;最后,根據(jù)所得坐標(biāo),判斷是否在設(shè)定區(qū)域,若在,則通過ILI9320驅(qū)動器經(jīng)FSMC向LCD指定區(qū)域?qū)懨?,寫?shù)據(jù),以達(dá)到界面切換或顯示參數(shù)的目的。
計(jì)量模塊通過串口與單片機(jī)進(jìn)行通信,本設(shè)計(jì)兩路插排所以使用兩個計(jì)量模塊分別采集各路的電量信息,A路插排數(shù)據(jù)采集計(jì)量模塊使用串口2通信,B路插排數(shù)據(jù)采集計(jì)量模塊使用串口4通信,因?yàn)楸驹O(shè)計(jì)采用STM32F103ZET6單品機(jī),該芯片有5組串口能夠滿足本設(shè)計(jì)。
串口實(shí)現(xiàn)的功能是:STM32F1通過USART2和USART4實(shí)現(xiàn)與計(jì)量模塊對話,通過STM32F1按照定義的串口通信協(xié)議與計(jì)量模塊進(jìn)行數(shù)據(jù)通信,向計(jì)量模塊模塊發(fā)送相應(yīng)的命令,接收計(jì)量模塊返回的命令和電量數(shù)據(jù)進(jìn)行數(shù)據(jù)分析。在初始化過程中,首先初始化所用功能的時鐘;然后將串口進(jìn)行復(fù)位處理,以免受外設(shè)異常的干擾;最后進(jìn)行中斷的配置,設(shè)置中斷分組和NVIC優(yōu)先級。
STM32單片機(jī)RTC時鐘利用其內(nèi)部一個獨(dú)立的定時器,可以實(shí)現(xiàn)時鐘的連續(xù)計(jì)時。在程序開始執(zhí)行時,先進(jìn)行時鐘引腳的使能,然后取消備份區(qū)的寫保護(hù),檢查是不是第一次配置時鐘,若為第一次配置時鐘,則復(fù)位備份區(qū)域開啟外部低速時鐘,設(shè)置預(yù)分頻和中斷分組,存儲到備份區(qū)。若不為第一次配置,則直接讀取備份存儲區(qū)內(nèi)的時間,在此基礎(chǔ)上繼續(xù)計(jì)時。
RTC時鐘的核心為預(yù)分頻模塊與可編程計(jì)數(shù)器構(gòu)成。通過程序?qū)㈩A(yù)分頻值設(shè)置為32767即可使外部32.768KHz的晶振分頻至1HZ,從而在程序中可產(chǎn)生1秒的TR_CLK中斷,在此中斷函數(shù)中進(jìn)行秒計(jì)時??删幊逃?jì)數(shù)器為32位計(jì)數(shù)器,按秒鐘計(jì)算可連續(xù)計(jì)時232秒,約合136年,此計(jì)時時間對于本設(shè)計(jì)是完全夠用的。
4 結(jié)論
本設(shè)計(jì)針對家用插排的能源浪費(fèi)和用電安全設(shè)計(jì)了該控制系統(tǒng),雖然已經(jīng)能夠一定程度上減少能源浪費(fèi),增強(qiáng)了用電安全,但僅僅有此功能還是不夠完美,隨著物聯(lián)網(wǎng)的飛速發(fā)展,智能家居是當(dāng)前的主流方向,該系統(tǒng)也應(yīng)該向著物聯(lián)網(wǎng)方向發(fā)展,該系統(tǒng)選用STM32F103ZET6作為主控芯片,該芯片具有5個串口,為以后想物聯(lián)網(wǎng)方向發(fā)展提供硬件基礎(chǔ)和通信接口,使產(chǎn)品更加人性化、智能化。
參考文獻(xiàn):
[1]韓雨純.具有諧波分析功能的智能電表設(shè)計(jì)[D].大連理工大學(xué),2017.
[2]王超.基于ARM的智能家居溫控系統(tǒng)的設(shè)計(jì)[D].成都理工大學(xué),2017.
[3]曹東華.基于物聯(lián)網(wǎng)架構(gòu)下的智能插排的設(shè)計(jì)[D].電子世界,2018(18).
[4]燕立強(qiáng).單相配電變壓器運(yùn)行監(jiān)控儀研究[D].北京交通大學(xué),2012.
作者簡介:朱旭(1996—?),男,漢族,山東臨沂人,碩士,研究方向:控制工程。