朱旭 符秀輝

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