陸興華++吳恩燊++黃冠華



摘 要:基于Android系統在前期智能家居控制系統硬件電路設計的基礎上,進行了智能家居控制系統的軟件開發。傳統的智能家居控制系統軟件開發采用的是單線程驅動方式,容易導致系統故障和控制指令中斷。基于Android客戶端提出了一種基于Visual DSP++4.5多線程嵌入式程序加載的智能家居控制系統軟件設計方法。該方法首先進行了基于ARM9處理器的主控系統硬件設計,智能家居控制系統軟件設計主要包括系統的初始化設計、程序加載設計和CAN通信模塊設計等。實驗調試結果表明,所設計的智能家居控制系統功能可實現多線程處理,模塊集成化較好,可靠性高,具有較大的應用價值。
關鍵詞:智能家居;控制系統;軟件;嵌入式
中圖分類號:TP13 文獻標識碼:A 文章編號:2095-1302(2015)11-00-03
0 引 言
隨著人工智能和自動控制技術的發展,智能家居控制進入了人們的家庭生活,智能家居是通過物聯網技術和通信控制技術把家庭的視頻設備、照明系統、空調系統和烹飪系統以及各種網絡家電進行智能控制,可見智能家居控制系統兼備了建筑、網絡、系統控制、DSP信號處理、電氣自動化的集成化人工智能系統,可實現對家居家電的遠程控制、安防監控和冷暖控制等,為用戶提供全方位的信息交互和資源共享功能。在手機App客戶端廣泛應用的今天,基于Android系統的App服務終端進行智能家居控制,可以實現對個性化家庭家居的信息集成和控制,提高家庭的生活質量。因此,研究基于Android的智能家居控制系統具有重要意義。
智能家居控制系統主要包括通信模塊、硬件模塊和軟件模塊設計三大部分,前期在進行了智能家居控制系統的硬件模塊和通信模塊設計的基礎上,本文對智能家居控制系統的軟件模塊進行設計,傳統的智能家居控制系統軟件模塊的設計方法主要采用的是單線程驅動方式,容易導致系統故障和控制指令中斷,對此,本文提出了一種基于Visual DSP++4.5多線程嵌入式程序加載的智能家居控制系統軟件設計方法,系統設計主要包括了系統的初始化設計、程序加載設計和CAN通信模塊設計等,最后通過仿真實驗進行了性能測試,展示了本文方法在實現智能家居優化控制中的優越性能,得出有效結論。
1 智能家居控制系統的硬件基礎和軟件流程
1.1 智能家居控制系統的硬件設計總體結構
智能家居是互聯網影響之下的物聯網的重要應用,智能家居控制是物聯網技術在家庭智能控制中的重要體現,通過智能家居控制實現對家電和家用設備的集成化管理和遠程遙控控制,基于Android客戶端進行智能家居控制系統設計主要包括了系統的硬件電路設計和軟件設計。系統硬件部分主要包括了時鐘電路,智能家居控制的復位電路、程序加載電路和電源供電電路以及A/D電路。智能家居控制系統采用AD9225的電源,提供220 V供電,分辨率為12位,A/D采樣的最大采樣頻率為25 MHz,系統功能主要實現家電控制、窗簾控制、安防控制,因此在系統控制中采用S3C2440A ARM9處理器主控系統,由2 片16 b寬度的32 M SDRAM 組成,本文給出的智能家居控制系統的ARM9處理器主控系統的接口電路如圖1所示。
圖1 智能家居控制系統ARM9處理器主控系統接口
ARM9處理器主控系統外接恒定的4 mA電流,信號調理部分采用兩個8550的PNP型三極管,運算放大器采用AD8034,選用了四個200 kΩ的貼片電阻來實現低通濾波,實現智能家居控制信號的6通道同步采樣。通過上述描述,實現對智能家居控制系統的主控系統硬件部分設計描述。
1.2 智能家居控制系統的軟件設計算法和流程
在上述硬件設計的基礎上,進行控制系統的軟件開發,基于Visual DSP++4.5多線程嵌入式程序加載方式進行智能家居多線程控制。軟件開發前,根據智能家居的控制任務進行DSP的I/O設備的配置,以Blackfin的存儲器為Emulator終端,進行軟件編譯,在模擬環境中通過Emulator進行控制算法的程序加載,本文采用的智能家居控制算法為模糊PID神經網絡控制算法,算法的實現流程描述如下:
假設智能家居控制系統中共有ki個節點,家居控制系統的輸入脈沖控制信號為x(t),計算家居控制系統的傳感節點矢量加權權重ωj與相鄰階段權重的歐式距離,見式(1):
(1)
其中,ωj=(ω0j,ω1j,…,ωk-1,j)T表示智能家居控制物聯網系統的BP神經元的輸入函數,控制的家居家電節點的集合為V={v1,v2,v3,…,vN},在Android客戶端,求得控制目標函數的訓練序列,得到模神經網絡節點Nj*,;根據多線程自組織特征映射技術,把家居傳感網絡的智慧節點加權到Nj*幾何鄰域NEj*(t),由此實現對智能家居控制系統的BP模糊神經網絡控制,控制的目標迭代函數為:
(2)
其中,α(t)和NEj*(t)的最優取值為:
(3)
根據上述算法設計,通過程序加載,把程序源采用編譯工具進行匯編處理,把源代碼生成可執行文件,在開發智能家居控制軟件時,在X86的計算機系統中安裝ARM,PowerPC編譯程序,直接對硬件操作進行進程管理和內存管理,設備驅動程序(device driver)采用API函數訪問智能家居控制的硬件系統,Linux系統中負責網絡通信的部分,通過文件系統節點訪問字符設備,在Linux/Unix系統中,采用嵌入式設計,進行智能家居控制系統的數據采集、電源測量、CAN通信和接口E2PROM燒寫,在智能家居控制執行程序開始后,進行時鐘采樣和終端復位操作。智能家居控制系統的初始化程序包括了CAN初始化、PPI初始化和A/D采樣初始化,A/D采樣完成后進行上位機通信,上傳用戶在Android客戶端的控制請求,當上位機收到執行程序后進行控制合法性判斷,判斷收到的是否為智能家居控制的請求信號,如果是,則根據收到的數值進行家居控制,如果不是則恢復到靜默狀態,執行同步串口0初始化,實現智能家居的全程控制,綜上分析,得到智能家居控制系統的軟件設計與實現流程如圖2所示。
圖2 智能家居控制系統軟件開發流程
2 智能家居控制系統的軟件模塊設計與實現
在上述進行了智能家居控制系統的硬件主控系統設計和軟件實現流程分析的基礎上,基于Android客戶端進行家居控制系統的軟件模塊設計。主要分析控制系統的程序初始化模塊、CAN通信控制模塊和程序加載模塊。分別描述如下:
系統的程序初始化模塊是實現智能家居控制的數據采樣和DSP復位的前提,包括了同步串口0初始化、CAN初始化和DMA0初始化,輸入命令source install-qt-x11.sh,開始編譯、安裝,寫入時鐘初始化程序,如圖3所示。
圖3 智能家居控制時鐘初始化程序寫入
根據寫入的程序,命令make install 的安裝目錄,指定利用Qt 的open source 版本,開啟Qtsql庫中SQL
-no-qt3support ..... //關閉Qt3 程序支持
-no-phonon ......... //不編譯phonon 模塊+ -phono
運行make命令,開始編譯智能家居控制系統的照明控制和電話遠程控制程序,設定PLL_LOCKCNT寄存器,設置PLL_DIV寄存器,智能家居控制系統的時鐘頻率為5分頻,采用多線程編譯方法。在時鐘初始化程序設計的基礎上,進行存儲器初始化,在智能家居控制系統的 DSP上電后,把A/D采樣的智能家居控制信息數據存儲到PPI和DMA0寄存器中,為了穩定傳輸數據,設定SPORT0串口的幀同步信號LATFS為1,追加在庫文件名后面的字符,比如infix==47, 增加需要編譯的部分,
在此基礎上進行程序加載模塊的軟件設計,程序加載模塊是整個智能家居控制系統的主控平臺的算法核心,是系統功能實現的根本。先配置SIC_IARx寄存器,調用register_handler函數,SPORT0_TCLKDIV寄存器對內核的IVG7中斷產生一個幀同步,使用串口的幀作為智能家居控制的同步信號,采用PPI以及DMAx_CONFIG進行程序加載,程序加載軟件模塊配置GPIO管腳的程序描述如下:
for (i = 0; i <6; i++) ;{register_handler_cfgpin(IO_t ORT0able[i], IO_cfg_KDIV [i]);}
通過上述程序加載設計,把智能家居控制的數字信號轉換成模擬信號,由于S3C2440A的SPI口已經被占用,在CAN通信程序中接收中斷子程序時,智能家居控制系統將會產生一個遠程調節幀,調用低頻調節子程序,位CAN_TRS1的TRS8位,調節的數字量ΔD=65 536×V/5,發送WREN指令,并將其寫入主控模塊中,通過CAN傳輸,實現了基于Android客戶端的智能家居遠程控制。
3 仿真實驗系統調試
為了測試本文設計的基于Android客戶端的智能家居遠程控制系統的性能,進行系統調試、仿真實驗和系統調試,系統調試采用軟件調試和硬件測試相結合的方式進行,智能家居控制系統采用Tektronix TX3的Android客戶端進行App設計,采用Agilent 混合示波器實現智能家居控制的精度等測試指標,采用E2PROM在線燒寫程序進行硬件調試,通過DSP進行程序加載,在智能家居控制仿真中,I/O電壓設置為220 V,時鐘電壓設定在3.3 V附近,鎖相環輸出頻率為600 MHz,基于上述仿真環境和參數設定,通過本文系統的設計性能指標,在Android平臺下開發智能家居控制系統,基于Visual DSP++4.5進行家居控制系統的軟件設計,得到控制系統的主界面和功能測試界面如圖4所示。
(a) 控制主機界面 (b)功能測試界面
圖4 智能家居控制系統界面
從圖4可見,采用本文方法設計的智能家居控制系統,可通過多線程程序加載來實現功能模塊化的多線程處理,系統的面向對象性更好。為了進行本文設計的系統在對智能家居控制性能的測試,以家居智能控制的覆蓋率為測試指標,得到在不同移動Android客戶端節點下對智能家居控制的覆蓋率結果,如圖5所示。從圖5可見,采用本文系統進行智能家居控制,對移動Android客戶端節點數目的依賴性不大,從而增強了控制系統的可靠性,增大了家居控制的覆蓋率。
圖5 智能家居控制性能分析
4 結 語
基于Android系統的App服務終端,進行智能家居控制,提高家庭生活的智能化水平,改善生活質量,本文研究了一種基于Visual DSP++4.5多線程嵌入式程序加載的智能家居控制系統軟件設計方法,進行了系統的主機控制電路硬件設計和軟件模塊化設計,重點描述了初始化程序模塊、程序加載模塊和通信傳輸模塊。實驗結果表明,本文設計的智能家居控制系統功能可實現多線程處理,模塊集成化較好,可靠性高,具有較高的應用價值。
參考文獻
[1]將峰.家居智能安全遠程無線監控系統設計[J].計算機測量與控制,2012, 20(9): 2435-2436.
[2]徐子豪, 張騰飛.基于語音識別和無線傳感網絡的智能家居系統設計[J].計算機測量與控制,2012, 20(1): 180-182.
[3]周勇,甘新年,胡光波,等.魚雷制導控制系統多通道控制加權算法設計[J].現代電子技術,2014,37(19):14-17.
[4]羅澤峰,單廣超.基于網絡和虛擬多媒體技術的海戰平臺視景仿真實現[J].物聯網技術,2015,5(3):91-92,94.
[5]鞏艷華.基于ARM7處理器的嵌入式智能家居監控系統[J].電子科技, 2009,22(8): 39-42.