新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于PIC32的居室智能化平臺的設計與實現(xiàn)

基于PIC32的居室智能化平臺的設計與實現(xiàn)

作者: 時間:2016-10-15 來源:網(wǎng)絡 收藏

摘要 系統(tǒng)以單片機作為核心控制器,植入TCP/IP通信協(xié)議和文件系統(tǒng),通過模塊和無線網(wǎng)絡可實時訪問存儲在SD卡設備文件中的系統(tǒng)參數(shù)和傳感數(shù)據(jù),并能進行參數(shù)的配置和數(shù)據(jù)的管理,進而實現(xiàn)系統(tǒng)的遠程監(jiān)控、管理和控制。系統(tǒng)可通過個人電腦或手機進行訪問,具有較好的人機交互功能,方便易用,功能可擴展性強,且設計運行成本低。

本文引用地址:http://www.butianyuan.cn/article/201610/307250.htm

關(guān)鍵詞 ;;;;

隨著人們對智能居室系統(tǒng)要求的不斷提高,智能化系統(tǒng)正向著傳感節(jié)點多、數(shù)據(jù)量大、控制更加復雜的方向發(fā)展。針對具有復雜節(jié)點網(wǎng)絡的系統(tǒng)來說,系統(tǒng)參數(shù)的配置和數(shù)據(jù)的管理顯得尤為重要。通常情況下,系統(tǒng)會配合專用服務器及實現(xiàn)遠程控制和數(shù)據(jù)的管理。但對于小型的家居系統(tǒng)而言,整個系統(tǒng)的運行需使用專用的服務器來支撐,這通常是沒必要的,由此不僅增加了系統(tǒng)的設計成本,還會使系統(tǒng)的運行成本大幅增加,造成資源的浪費。本文旨在通過架構(gòu)基于微控制單元(Micro Control Unit,MCU)的嵌入式服務器來實現(xiàn)更加簡潔實用的居室智能化系統(tǒng)。系統(tǒng)控制核心兼做數(shù)據(jù)服務處理器,大幅降低了系統(tǒng)的設計和運行成本,適合于中小型智能系統(tǒng)中的參數(shù)和數(shù)據(jù)的管理。另外,系統(tǒng)還可配合云端服務器進行使用,完成數(shù)據(jù)的同步等任務,更具有實際的設計價值。

1 系統(tǒng)組成與原理

系統(tǒng)核心微處理器采用Microchip公司的PIC32MX695F512L32位單片機,其內(nèi)部資源豐富,具有圖形接口、USB控制器、CAN模塊、以太網(wǎng)接口、ADC模塊等,最高工作主頻可達80 MHz,適用于智能化系統(tǒng)中,不僅方便各種傳感數(shù)據(jù)的采集,人機交互功能的實現(xiàn),也具有一定的數(shù)據(jù)處理能力。模塊選用的是該公司的 MRF24WGOMA,該模塊可通過SPI接口與PIC32 MCU進行通信,通過該模塊使系統(tǒng)接入無線網(wǎng)絡,以達到通過網(wǎng)絡對系統(tǒng)進行訪問的目的??梢暬瘎討B(tài)Web交互界面主要采用 HTML,JavaScript,AjaX,jQHery和CSS網(wǎng)絡前端設計語言來實現(xiàn),并將相應Web服務端文件存儲在SD卡中,核心處理器解析到網(wǎng)絡頁面或文件請求后,在SD卡中進行相應文件的查找,若文件存在,則對SD卡相應文件進行讀取,并將文件數(shù)據(jù)返回,以呈現(xiàn)在客戶端。若需要對系統(tǒng)進行配置或控制,則處理器通過解析相應的請求和參數(shù),將相應的信息寫入文件,或直接轉(zhuǎn)化為對設備的控制信號。系統(tǒng)中數(shù)據(jù)的來源主要通過傳感器模塊進行采集,而控制器指的是居室系統(tǒng)中的各種受控設備的控制驅(qū)動電路。傳感器和控制器根據(jù)不同的系統(tǒng)會做出不同的調(diào)整,本文僅選擇單個節(jié)點用作測試。系統(tǒng)組成如圖1所示。

a.jpg

2 硬件平臺設計

2.1 WiFi模塊

MRF24WGOMA是符合IEEE 802.11的低功耗2.4 GHz表面貼裝模塊,含有所有相關(guān)的RF元件——晶振、帶集成MAC的旁路和無源偏置電路、基帶、RF和功率放大器,以及支持AES和TKIP(WEP、 WPA和WPA2安全性)的內(nèi)置硬件。支持802.11 b/g無線通信,最高傳輸速率可達54 Mbit·s-1。

模塊采用從動SPI接口與微控制器連接,配合中斷,休眠,復位控制接口,完成各項功能控制和數(shù)據(jù)傳輸,SPI接口的同步時鐘頻率最高可達25MHz,傳輸速率可達25 Mbit·s -1。典型的連接方式如圖2所示。PIC32微控制器做主設備,MRF24WG0MA模塊作為SPI從設備。因此SPI的同步頻率有PIC32MCU控制產(chǎn)生。

f1.jpg為中斷信號引腳,在WiFi模塊接收到數(shù)據(jù)后,負責向主控制器發(fā)出中斷處理信號以接收數(shù)據(jù)。HIBERNATE為冬眠控制引腳,主控制器可通過該引腳控制其工作模式,使其達到最佳節(jié)能效果。

b.jpg

MRF24WG0MA模塊需要與Mierochip的TCP/IP軟件協(xié)議棧配合使用。該軟件協(xié)議棧集成有驅(qū)動程序,其實現(xiàn)的API在模塊中用于命令和控制,以及管理和數(shù)據(jù)包通信。

2.2 SD卡模塊

SD數(shù)據(jù)存貯卡可分為SD和SPI兩種工作模式,SD模式是標準的默認模式,該模式下利用SD總線進行數(shù)據(jù)傳輸,位寬一般為4 bit,讀寫最高時鐘可達50 MHz,讀取速度能到達20 MByte·s-1以上,可充分發(fā)揮SD卡的性能。而SPI模式則是SD卡可選的第二種模式,該模式下利用SPI總線進行數(shù)據(jù)傳輸,位寬為1 bit,時鐘最高只能到25 MHz,讀取速度通常低于3 MByte·s-1,但該模式對硬件要求較低,可將設計花費減到最小。鑒于本次設計對SD卡的讀寫速率要求不高,并需要能較好地與WiFi模塊通信帶寬和數(shù)據(jù)的處理速度進行配合,采用SPI模式基本可滿足設計要求,系統(tǒng)采用Miero SD Card作為數(shù)據(jù)存儲器,器件引腳定義及典型SPI模式應用電路如圖3所示。

c.jpg

3 系統(tǒng)軟件設計

3.1 系統(tǒng)軟件架構(gòu)

系統(tǒng)軟件部分,是在Microehip公司提供的TCP/IP協(xié)議棧和應用層Http協(xié)議基礎(chǔ)上進行應用程序的設計與開發(fā)的。整個系統(tǒng)架構(gòu)框圖如圖4所示,其中用戶應用層的設計是本次設計的核心工作。

d.jpg

3.2 嵌入式服務器的設計

該平臺下嵌入式服務器,主要是基于PC端瀏覽器和移動端APP進行設計的。因此,僅采用HTTP協(xié)議即可滿足設計要求,HTTP協(xié)議是建立在TCP/IP 協(xié)議之上的應用層協(xié)議,客戶端進行數(shù)據(jù)發(fā)送時會對報文進行格式化,因此只需在服務器端對報文格式進行解析,提取相應的控制信息和數(shù)據(jù)即可;返回數(shù)據(jù)時也需要將返回的內(nèi)容格式化成HTTP協(xié)議報文格式,以便被客戶機解析。TCP/IP連接建立過程和數(shù)據(jù)收發(fā)流程如圖5所示。

首先服務器端需要進行系統(tǒng)初始化工作,包括打開套接字,綁定端口,建立偵聽等,最后將狀態(tài)轉(zhuǎn)移到“接受連接請求”;TCP是面向連結(jié)的傳輸機制,客戶端與其套接字建立連接前需要進行3次“握手”確認,才能通過建立連接的套接字進行數(shù)據(jù)的收發(fā),數(shù)據(jù)格式均采用HTTP協(xié)議,在HTTP報文解析部分,通過編寫的應用程序,將HTTP請求的參數(shù)和數(shù)據(jù)解析出來,根據(jù)實際應用將服務器端狀態(tài)機進行轉(zhuǎn)移,狀態(tài)機主要包括通過外設獲取信息,向I/O口發(fā)送控制信息,進入文件系統(tǒng)讀取SD卡中的相應文件并將數(shù)據(jù)返回,或者將提交的數(shù)據(jù)信息寫入文件或更新系統(tǒng)狀態(tài)等。套接字連接一旦建立將會一直保持,除非客戶端或服務器端主動請求斷開,例如客戶端直接關(guān)閉應用程序或服務器端長時間無數(shù)據(jù)請求自動斷開。

3.3 數(shù)據(jù)管理軟件的實現(xiàn)

數(shù)據(jù)管理軟件部分是基于文件系統(tǒng)API進行設計的。文件系統(tǒng)提供的基礎(chǔ)API主要包括open(),close();read(),write(),seek()等接口函數(shù);而所需主要數(shù)據(jù)操作函數(shù)如表1所列。

e.jpg

數(shù)據(jù)存儲文件選擇普通的文本文件基本可滿足要求,但考慮到數(shù)據(jù)的增刪查改實際操作的需要,選擇標簽語言文件XML格式更便于應用程序的編寫,另外當客戶端進行數(shù)據(jù)加載時,通過MSXm12組件也能方便地直接加載數(shù)據(jù)。

考慮到人機交互的用戶體驗以及PIC32 MCU的數(shù)據(jù)處理能力,文中將眾多運算處理放在了前端文件中,前端文件一旦首次加載成功,便可在客戶機完成主要的人機交互操作,最終將處理后的數(shù)據(jù)通過部分提交的方式發(fā)送至服務器端,使用Ajax部分提交技術(shù)無需重載界面,提高微控制器的處理能力。另外,由于大部分人機交互的工作可放在前端通過 JavaScript腳本語言處理。因此,需提交的數(shù)據(jù)量也會大幅減小,PIC32的處理任務也會相應減少,資源利用率也有所提高,能使系統(tǒng)達到一個比較好的運行狀態(tài)。

在表1所列出的關(guān)鍵函數(shù)中,file_read_line()按行讀取文件內(nèi)容,多用于檢索數(shù)據(jù)。sys_config()實現(xiàn)的功能是更改指定標簽后的設定值,主要用于進行系統(tǒng)參數(shù)配置。rc ad_config()用于讀取配置信息,即讀取指定標簽后的設定值,多用于系統(tǒng)參數(shù)的實時顯示和監(jiān)控。modify_flag()用于修改固定格式數(shù)據(jù)條目中的指定數(shù)據(jù),例如讀取數(shù)據(jù)條目時,若該條目已被讀取過,則修改條目中相應標記為已讀取或修改為已被讀取的次數(shù)。 rcad_next_schedule()按順序或條件讀取固定格式數(shù)據(jù),其更多地用于管理具有時間標記的數(shù)據(jù)。

在智能居室系統(tǒng)多以時間為控制主線,很多數(shù)據(jù)都具有時間標記,通常需要根據(jù)時間節(jié)點進行數(shù)據(jù)操作,由于日期和時間數(shù)據(jù)的特殊性,在進行具有時間標記的數(shù)據(jù)條目的讀寫前,進行日期時間的計算是必須的,這在較多數(shù)據(jù)操作中均有體現(xiàn)。add_item()增加固定格式數(shù)據(jù)條目。del_line()按行刪除數(shù)據(jù),被調(diào)用時會先按照標記如索引ID號查找該條目,然后刪除。clear_data()用于清除數(shù)據(jù)文件內(nèi)容,因為用的是XML文件,所以實際進行數(shù)據(jù)清除操作時應保留文件頭。run_log()用于記錄系統(tǒng)運行日志,設備運行狀態(tài)的變換都會被記錄下來,這對于系統(tǒng)運行的監(jiān)控和維護是非常必要的。通過以上基本的數(shù)據(jù)操作函數(shù),可以完成對數(shù)據(jù)的增、刪、查、改等操作,能夠滿足系統(tǒng)的設計要求。

4 系統(tǒng)測試

4.1 測試平臺

測試平臺采用Chipkit-WF32核心板與外圍設備擴展板組成。Chipkit-WF32核心板集PIC32MX695F512L單片機、MRF24WG0MA WiFi模塊和Micro SD卡接口于一體,配合設計的用于連接各類傳感器、控制器和顯示設備的外設擴展板構(gòu)成居室智能化系統(tǒng)硬件平臺。測試平臺硬件實物如圖6所示。

f.jpg

4.2 測試結(jié)果

通過系統(tǒng)配置的網(wǎng)絡參數(shù)對系統(tǒng)平臺進行登陸訪問,系統(tǒng)參數(shù)配置以及通過傳感器(溫度)實時采集的信息實時更新到客戶機前端,通過配置界面或者控制界面也可對系統(tǒng)的配置進行更改和外設模塊的控制。另外實時數(shù)據(jù)也可以被記錄到系統(tǒng)后臺數(shù)據(jù)文件中,可單獨或批量調(diào)出,方便查看。系統(tǒng)的所有配置,數(shù)據(jù)詳情以及控制日志等數(shù)據(jù)均進行相應存儲,并可進行基本的管理。圖7為通過PC端IE瀏覽器訪問系統(tǒng)的部分結(jié)果。

g.jpg

5 結(jié)束語

采用PIC32 MCU移植TCP/IP協(xié)議和FAT32文件系統(tǒng),通過WiFi網(wǎng)絡實現(xiàn)的居室智能化信息平臺可方便實現(xiàn)居室智能化系統(tǒng)本地數(shù)據(jù)的管理及控制,也可通過網(wǎng)絡將數(shù)據(jù)與云端同步,并實現(xiàn)遠程控制。大幅降低了智能控制類家居系統(tǒng)的設計成本和運行成本,也在一定程度上提高了系統(tǒng)的易用性和易維護性。



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉