李紅麗+彭文華



摘 要:基于LabVIEW與ARM微控制器的智能家居控制系統主要由上位機、處理器STM32F107、液晶屏、外設(繼電器控制板)構成。文章在硬件方面采用了ST公司的STM32F107VCT6作為系統的主控芯片,配合串口模塊、液晶屏顯示模塊,分別設計了各個模塊的電路原理圖。軟件方面則使用ST公司官方提供的固件庫進行底層驅動設計,以實現串口、液晶屏等驅動程序,方案中同時采用LabVIEW來編寫上位機控制程序實現遠程控制功能。
關鍵詞:智能家居;ARM;LabVIEW;繼電器
中圖分類號:TP29 ? ? ? ? ? ? 文獻標識碼:A ? ? ? ? ? ? ? ? ? ?文章編號:2095-1302(2015)09-00-02
0 ?引 ?言
近年來,物聯網[1]被認為是繼互聯網之后最重大的科技創新,成為了全球關注的熱點領域。 智能家居屬于物聯網的一個重要分支[2],又稱智能住宅,英文名為Smart Home[3],是指以住宅為基礎平臺,利用綜合布線、網絡控制、安全防范等技術將與家居生活有關的設施進行集成,其目標是建立一個從家庭到小區乃至整個城市的綜合信息服務和管理系統,以提高住宅技術水平,優化居住環境[4,5]。 本文介紹了一個實用的智能家居系統中的分支系統——基于LabVIEW與ARM微控制器的智能家居控制系統,利用32位ARM配合LabVIEW上位機實現智能家居中的遠程控制功能。
1 ?系統方案設計
系統的總體結構如圖1所示,整個系統主要由上位機和下位機兩大部分組成,采用LabVIEW編寫上位機顯示程序[6,7];下位機主要由ARM最小系統、液晶屏顯示電路、外設等組成。STM32F107作為主控芯片,通過RS-232串口控制外設的狀態,為了保證控制的準確性,每次狀態有改變時,外設都要向ARM返回其改變后的狀態,并在上位機上顯示出來。
圖1 ?系統總體結構圖
2 ?系統的硬件設計
2.1 ?微控制器選型
該系統中用到的處理器STM32F107VCT6[8]是STM32增強型系列產品,該處理器是一個32位處理器,基于ARM V7架構的Cortex-M3內核,主頻72 MHz,內部含有256字節的FLASH和64 K字節的SRAM,擁有32位寬的數據路徑、寄存器庫和內存接口,其中包括13個通用寄存器、兩個堆棧指針、一個鏈接寄存器、一個程序計數器和一系列包含編程狀態寄存器的特殊寄存器。具有處理速度高,代碼量少的優點,嵌入式快速中斷控制器支持延時操作和實時性能。
2.2 ?TFT液晶屏選型
TFT是“Thin Film Transistor”的簡稱,是指薄膜晶體管(矩陣)——可以“主動地”對屏幕上各個獨立的像素進行控制,圖像產生的基本原理為:顯示屏由許多可發以出任意顏色光線的像素組成,主要控制各個像素顯示相應的顏色就可以達到目的。本系統采用TFT LCD屏,LCD屏的分辨率為320*240,262 K色,采用ILI9320控制器,包括720路源極驅動以及320路的柵極驅動,自帶有顯存,容量為172 800字節。ILI9320控制模塊與STM32F107處理器之間的接口為“i80-system”接口,用到的信號如圖2所示,其中DB為數據總線,其它的信號為控制信號。 由于STM32F107不支持FSMC,所以本系統通過GPIO總線對屏進行訪問操作,實現圖形界面的顯示。
圖2 ?“i80-system”接口信號
2.3 ?串口模塊設計
本系統采用ARM自帶的串行通訊模塊。STM32F107的串口非常豐富,功能也很強勁,最多可提供5路串口。本系統采用其中兩個串口,一個用來進行上位機命令的實時接收,另一個用來實時控制外設。本系統選擇的串口接口是9個引腳的RS-232接口。由于處理器STM32F107輸出的是TTL/COMS電平,而PC串口為RS-232電平,所以硬件設計使用了美信(MAXIM)公司的電平轉換芯片MAX232實現雙向電壓轉換。
3 ?軟件設計
軟件部分主要包括上位機軟件和下位機軟件,上位機軟件由LabVIEW編寫完成,主要負責人機互通,發送控制命令。下位機軟件主要由STM32底層驅動程序、串口通訊程序、液晶屏顯示程序組成。
3.1 ?上位機設計
LabVIEW[9]是一種采用圖標代替文本行創建應用程序的圖形化編程語言,本系統通過LabVIEW提供的VISA控件,設置串口為COM1口,波特率為9 600 b/s,采用事件結構對用戶界面做出響應,上位機顯示界面如圖3所示,每當按下顯示界面的一個按鍵則產生一個事件,事件控制外設狀態。
圖3 ?上位機顯示界面
3.2 ?下位機設計
系統初始化,液晶屏顯示歡迎界面,界面內容包括該系統名字以及該系統在使用過程中需要注意的各項事項。ARM在接收上位機發來的指令后,將相應的命令按照通信協議打包發送給外設,外設再將變化后的狀態按通信協議返回給ARM,ARM提取數據并傳輸給上位機顯示。下位機流程如圖4所示。
3.2.1 ?USART串行通訊程序
本系統中通過設置波特率寄存器USART_BRR達到配置不同波特率的目的。波特率[10]計算如式(1):
(1)
波特率
這里的fCK是給外設的時鐘,USARTDIV是一個無符號的定點數:USARTDIV=DIV_Mantissa[11:0]+DIV_Fraction[3:0]/16
DIV_Mantissa[11:0]定義USART分頻器除法因子(USARTDIV)的整數部分,DIV_Fraction[3:0]定義了USART分頻器除法因子(USARTDIV)的小數部分,在寫入USART_BRR之后,波特率計數器會被波特率寄存器的新值替換。因此,不要在控制進行中改變波特率寄存器的數值。ARM與外設之間的通信協議:數據包=前導碼+地址+命令控制碼+后導碼。
3.2.2 ?液晶屏顯示模塊程序
TFT LCD的初始化主要是在函數ili9320_Initializtion()中實現的。首先,我們調用LCD_Init()函數,對TFT LCD使用的GPIO管腳進行初始化,完成了GPIO的初始化后,我們就可以正常訪問TFT LCD驅動芯片了,程序首先讀取驅動芯片的ID,然后依據驅動芯片的型號執行相應的初始化程序,本系統所采用的驅動芯片的ID為9320。
圖4 ?下位機流程圖
4 ?系統測試
使用本系統進行實際的遠程控制,我們選取的實驗終端為一個配備了四個繼電器的控制板,上位機控制協議如以下表1所列。
表1 ?上位機控制協議上位機信號 繼電器狀態
1o 繼電器1開
1c 繼電器1關
2o 繼電器2開
2c 繼電器2關
3o 繼電器3開
3c 繼電器3關
4o 繼電器4開
4c 繼電器4關
ao 繼電器1-4全部開
ac 繼電器1-4全部關
按下上位機顯示界面的按鍵后,對應的繼電器會實時做出響應,如果繼電器打開了,則上位機顯示界面上對應的燈會亮起,如果繼電器關閉,則上位機對應的燈會熄滅。正常情況下,液晶屏顯示歡迎界面,包括系統的名字及系統的相關注意事項。一旦整套系統出現故障,液晶屏顯示“ERROR”,ARM向蜂鳴器發出報警信號,蜂鳴器響起,測試結果達到了系統預期效果。
5 ?結 ?語
本文設計并實現了一套基于LabVIEW與ARM微控制器的智能家居控制系統。ARM處理器作為下位機接受上位機發送來的指令,實現了照明、家電(如空調、熱水器等)、窗簾、防盜報警、電話等遠程控制。以前的智能家居控制系統由于功能要求不是很高,大多數都采用8位微控制器作為核心,本系統采用32位ARM處理器搭配LabVIEW編寫的上位機,這從根本上將智能家居的性能提高了一個很大的層次,首先在控制方法上由定時變為了實時遠程,其次在任務執行方面由單任務串行變為可多任務并行,最后加上終端可視化界面,完成了一整套功能強大、界面友好、操作簡單的智能家居遠程控制系統。
參考文獻
[1]田景錫.物聯網概論[M].南京:東南大學出版社, 2010.
[2]唐亮.我國物聯網產業發展現狀與產業鏈分析[D].北京:北京郵電大學,2010.
[3] Kyeong-AhJeong,Salvendy, Gavriel,Proctor, Robert W. Smart home design and operation preferences of Americans and Koreans [J]. Ergonomics, 2010, 53(5): 636-660.
[4]侯冉冉,張亮.關于智能家居系統的探討[J]. 住宅智能化與節能專輯, 2010, 4(4): 2.
[5]呂璐,郝恩民,許芳婷.當前國內智能家居的發展探討[J].電子制作, 2015, 4(8):235.
[6]張宇,黃偉志,郝巖.基于LabVIEW的多功能數據采集系統的設計與實現[J].自動化儀表, 2013, 34(8):24-26.
[7]徐菲,梁志劍,裴東興,等.基于LabVIEW的多通道數據采集系統[J].電子測試,2012(8):56-58.
[8] STM32F107xx芯片數據手冊.意法半導體(中國)投資有限公司MCU技術支持[Z]. 2010-1-10.
[9]龍脈工作室. LabVIEW8.2中文版入門與典型事例[M].北京:人民郵電出版社,2010:2-96.
[10]丁元杰.單片微機原理及應用[M].北京:機械工業出版社, 2009: 1-73.