柴晟 陳良維 林琳 李明欣
摘要:隨著社會的發(fā)展與進(jìn)步,人們的生活節(jié)奏在加快,對于安全訴求更高,如家里、工作場所等,建立適當(dāng)?shù)陌踩O(jiān)控系統(tǒng)變得十分重要。在現(xiàn)有的智能監(jiān)控系統(tǒng)中大多需要使用紅外、煙霧等傳感器,實(shí)施智能監(jiān)控,會增加成本,降低系統(tǒng)效率。在此基礎(chǔ)上,本文結(jié)合嵌入式技術(shù)的發(fā)展,研究基于Linux智能家居網(wǎng)絡(luò)的嵌入式ARM監(jiān)控系統(tǒng)的設(shè)計(jì),以期可以為相關(guān)人員提供參考和幫助。
關(guān)鍵詞:嵌入式;智能家居;網(wǎng)絡(luò)監(jiān)控系統(tǒng)
一、引言
隨著信息技術(shù)和互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,家庭網(wǎng)絡(luò)化和智能化的實(shí)現(xiàn)已成為研究熱點(diǎn),而具有用戶界面、遠(yuǎn)程控制和智能控制的設(shè)備成為未來的趨勢。在這種情況下,諸如ARM和PowerPC嵌入式互聯(lián)網(wǎng)之類的32位微處理器的出現(xiàn)已經(jīng)成為現(xiàn)實(shí),集成控制器可以完全實(shí)現(xiàn)傳統(tǒng)PC的互聯(lián)網(wǎng)服務(wù)。但基于嵌入式系統(tǒng)的智能家居系統(tǒng)在中國剛剛起步。
二、嵌入式的發(fā)展現(xiàn)狀
嵌入式系統(tǒng)的出現(xiàn)最初是基于單片機(jī)技術(shù),并隨著單片機(jī)技術(shù)的發(fā)展而逐漸升級。英特爾的第一款8048微控制器于1976年發(fā)布,這些早期的單片機(jī)的出現(xiàn)使包括汽車、工業(yè)機(jī)械、家用電器和通信在內(nèi)的各種產(chǎn)品擁有更好的性能,也為當(dāng)時(shí)的工業(yè)發(fā)展作出貢獻(xiàn)。隨著生產(chǎn)水平的提高,接口、存儲器和串行接口等各種組件可以集成在一個(gè)芯片上。英特爾開發(fā)的基于8084的8051微控制器是最成功的。到目前為止,51系列微控制器仍廣泛應(yīng)用于生活中。隨著I/O設(shè)計(jì)微處理器的出現(xiàn),它們立即成為嵌入式設(shè)備領(lǐng)域的新星。這一時(shí)期已知的操作系統(tǒng)包括VRTX、PSOS、VXWorks等,這些系統(tǒng)的特點(diǎn)已經(jīng)與現(xiàn)代嵌入式系統(tǒng)非常相似,響應(yīng)時(shí)間快,內(nèi)核小,內(nèi)核配置能力強(qiáng)。與之前的系統(tǒng)相比,這些系統(tǒng)的可靠性也大大提高,這鼓勵了嵌入式系統(tǒng)的發(fā)展,并擴(kuò)展了其應(yīng)用領(lǐng)域。自21世紀(jì)初以來,經(jīng)過多年的發(fā)展,世界上出現(xiàn)Palmos、VXWorks、WindowsCE等許多流行的嵌入式操作系統(tǒng)。然而,這些系統(tǒng)是商業(yè)化的、昂貴的,并且源代碼不開放,這導(dǎo)致了后期系統(tǒng)和應(yīng)用程序遷移的困難等問題。目前,Linux作為一種免費(fèi)的嵌入式開源操作系統(tǒng),具有世界級的規(guī)格、易用性、強(qiáng)大的網(wǎng)絡(luò)性能等諸多優(yōu)勢,被認(rèn)為是最有前途的嵌入式操作系統(tǒng)[1]。
三、嵌入式系統(tǒng)具備的主要特點(diǎn)
嵌入式系統(tǒng)一般應(yīng)用于特定的環(huán)境,相對于普通計(jì)算機(jī)系統(tǒng)更具多樣性和繁雜性,具體特點(diǎn)如下:
其一,具備系統(tǒng)內(nèi)核相對較小的特點(diǎn)。相比于傳統(tǒng)操作系統(tǒng)的內(nèi)核,嵌入式系統(tǒng)相對要小很多,大部分嵌入式內(nèi)核僅有幾K至幾十K左右的系統(tǒng)內(nèi)核。以ENEA公司為例,其OSE分布式系統(tǒng)僅有5KB的內(nèi)核。嵌入式內(nèi)核同樣能夠結(jié)合實(shí)際需求完成擴(kuò)展與裁剪,因內(nèi)核相對而言偏小,為此在進(jìn)行擴(kuò)展與裁剪時(shí)也相對較為便捷。
其二,具備專用性相對較強(qiáng)的特點(diǎn)。因嵌入式系統(tǒng)存在良好的擴(kuò)展性與可裁剪性,所以能夠結(jié)合特定功能需求完成個(gè)性化定制系統(tǒng)任務(wù)。除此之外,如果硬件部分發(fā)生變化,需要對相應(yīng)的軟件部分進(jìn)行有效修改。因此,在確定硬件和軟件后,系統(tǒng)的功能也會被限制,從而具備相對較強(qiáng)的專用性特點(diǎn)。
其三,具備系統(tǒng)相對較為精簡的特點(diǎn)。由于嵌入式設(shè)備存在專業(yè)性較強(qiáng)、硬件資源較為有限的特點(diǎn),所以系統(tǒng)占據(jù)的資源也不會太多。同時(shí),系統(tǒng)具備高效與小巧的特點(diǎn),所以其簡單性越高,可靠性同樣會更高。
其四,具備多任務(wù)的操作系統(tǒng)特點(diǎn)。相比于簡單的51單片機(jī)僅能處理一些簡單的任務(wù),嵌入式系統(tǒng)能夠同時(shí)完成多項(xiàng)任務(wù)的運(yùn)行,還可以對不同任務(wù)合理地分配系統(tǒng)資源,從而確保其更加安全穩(wěn)固地運(yùn)行。
其五,具備可靠性相對較強(qiáng)的特點(diǎn)。嵌入式設(shè)備通常應(yīng)用于周邊環(huán)境惡劣、偏遠(yuǎn)或者無人值守的區(qū)域,因此,對嵌入式系統(tǒng)開發(fā)的軟件代碼有著質(zhì)量較高、可靠性較高的要求。其中,VxWorks就因具備較強(qiáng)的實(shí)時(shí)性與可靠性,在航空領(lǐng)域與軍事領(lǐng)域等精尖領(lǐng)域被廣泛應(yīng)用。
其六,具有專屬的開發(fā)環(huán)境與工具。在開發(fā)嵌入式系統(tǒng)時(shí),需要使用專業(yè)的開發(fā)工具和環(huán)境。由于嵌入式系統(tǒng)無法自主開發(fā),如果想修改其內(nèi)部功能程序,就需要具備相應(yīng)的開發(fā)環(huán)境和工具,通常使用信號發(fā)生器、邏輯分析儀、示波器以及計(jì)算機(jī)軟硬件系統(tǒng)等設(shè)備。由于開發(fā)和開發(fā)是在不同的設(shè)備上進(jìn)行,因此出現(xiàn)了目標(biāo)機(jī)和主機(jī)的概念,開發(fā)是在主機(jī)上進(jìn)行,執(zhí)行則是在目標(biāo)機(jī)上完成。
四、基于Linux的ARM-嵌入式智能家居網(wǎng)絡(luò)監(jiān)控開發(fā)系統(tǒng)的相關(guān)技術(shù)
(一)微處理器
三星公司研發(fā)的ARM微處理器是S3C2440,其內(nèi)核是ARM920T,使哈弗高速緩沖結(jié)構(gòu)、AMBA BUS以及MMU得以實(shí)現(xiàn),并且外設(shè)接口非常充沛,擁有130個(gè)多功能輸出/輸入口、24外部中斷和60個(gè)中斷源,還有APB總線與AHB總線,并支持USB與SPI主從設(shè)備、rS總線、FC總線、DMA控制以及NAND Flash啟動等。
(二)外圍電路
該系統(tǒng)的外圍電路包括了用于TCP/IP通信的DM9000、溫度檢測與采集的DS18B20數(shù)字溫度傳感器、室內(nèi)安全監(jiān)測的DYP-ME003紅外感應(yīng)器以及用于模擬窗簾狀態(tài)的步進(jìn)電機(jī)。
(三)操作系統(tǒng)
Linux是一種類似于Unix的操作系統(tǒng),被廣泛運(yùn)用于嵌入式系統(tǒng)。目前,大多數(shù)嵌入式系統(tǒng)選擇使用Linux,主要有原因有四點(diǎn):其一,能夠提供對許多硬件驅(qū)動設(shè)備和各類嵌入式芯片驅(qū)動的支持;其二,具備完備的SDK開發(fā)包和開發(fā)工具以及豐富的軟件資源,同時(shí)還提供開放的源代碼,可以根據(jù)需求進(jìn)行自由修改;其三,能夠支持多種CPU類型和體系結(jié)構(gòu);其四,具有穩(wěn)定的系統(tǒng)性能,可以裁減內(nèi)核以適應(yīng)不同的任務(wù)需求,并提供全面的系統(tǒng)支持。
(四)Web服務(wù)器
隨著互聯(lián)網(wǎng)應(yīng)用的普及,Web作為一種訪問方式也被廣泛應(yīng)用于嵌入式設(shè)備的交互中。通過在嵌入式設(shè)備上運(yùn)行Web服務(wù)器,用戶端可以使用Web瀏覽器來監(jiān)控和管理嵌入式設(shè)備。BOA是一種單任務(wù)的Web服務(wù)器,它按順序處理用戶請求,但通過對CGI的支持,可以創(chuàng)建新的進(jìn)程來執(zhí)行相應(yīng)的任務(wù)。
五、基于Linux的ARM-嵌入式智能家居網(wǎng)絡(luò)系統(tǒng)設(shè)計(jì)
(一)圖像采集設(shè)計(jì)
該系統(tǒng)使用內(nèi)核編譯方法。在加載OV511相機(jī)驅(qū)動程序內(nèi)核后,系統(tǒng)只需要編寫一個(gè)視頻錄制程序即可識別和操作相機(jī)。視頻捕獲軟件是在Linux內(nèi)核上使用Video4Linux開發(fā)的。Video4Linux是一個(gè)為編寫視頻設(shè)備應(yīng)用程序提供許多接口功能的Linux視頻設(shè)備驅(qū)動程序。在錄制視頻時(shí),程序首先使用open()函數(shù)打開視頻錄制設(shè)備,并返回指示錄制設(shè)備硬件的文件描述符。成功打開設(shè)備文件后,調(diào)用ioctl()從設(shè)備文件中獲取適當(dāng)?shù)男畔ⅲ⒔邮盏降男畔⒄迟N到視頻函數(shù)的結(jié)構(gòu)中。
(二)遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)
視頻監(jiān)控模塊采用瀏覽器服務(wù)器模式。在拍攝結(jié)束后,該模塊會創(chuàng)建并安裝網(wǎng)絡(luò)服務(wù)器,將視頻服務(wù)器攝像頭上傳到網(wǎng)絡(luò)服務(wù)器,然后由視頻服務(wù)器上傳視頻。在客戶端上,它使用Java小程序來接收消息。該模塊的功能包括嵌入式網(wǎng)絡(luò)攝像頭的設(shè)計(jì)和視頻服務(wù)器的遷移。攝像頭拍攝的圖像必須通過網(wǎng)絡(luò)發(fā)送給另一方,并在瀏覽器中顯示,并且這一過程在視頻服務(wù)上執(zhí)行。視頻服務(wù)器的主要任務(wù)是與客戶端進(jìn)行通信,并根據(jù)客戶端的指令調(diào)用適當(dāng)?shù)墓δ?,以支持客戶端的管理需求。網(wǎng)絡(luò)攝像頭是一款通用的視頻服務(wù)器軟件,與系統(tǒng)中使用的OV511攝像機(jī)完美配合,它基于GNU架構(gòu),并且Linux的服務(wù)器版本是完全免費(fèi)且開源的。該項(xiàng)目使用了網(wǎng)絡(luò)攝像頭服務(wù)器0.50.tar.gz版本。在交叉編譯環(huán)境中修改makefile文件,并使用make命令進(jìn)行編譯,然后將視頻服務(wù)器遷移到設(shè)備上,并將生成的相機(jī)固件下載到開發(fā)CD上的Linux/bin目錄中[2]。
(三)電器控制系統(tǒng)設(shè)計(jì)
無線通信可以為家用電器的控制提供極大的靈活性和范圍,同時(shí)節(jié)省了布線的成本和精力。但是,其缺點(diǎn)是需要一個(gè)住宅網(wǎng)關(guān)、一個(gè)無線路由器以及合適的接收器,這將增加成本。因此,本文考察的家電控制采用了I/O控制,以兼顧實(shí)用性和普及性。該方案利用已安裝系統(tǒng)的I/O端口來控制家用電器的功耗,通過監(jiān)測S3C2400的I/O端口輸出信號的高電平和低電平并使用LED指示器,來控制和顯示家用電器的運(yùn)行狀態(tài)(開啟或關(guān)閉)。大多數(shù)帶有受控模塊的家用電器使用220V交流電源和大電流電路,因此需要使用繼電器來控制設(shè)備。在芯片和繼電器之間添加一個(gè)驅(qū)動電路,可以通過光電通信開關(guān)或三極管來控制繼電器的開關(guān)狀態(tài)。當(dāng)I/O端口處于低功率電平時(shí),三極管處于飽和狀態(tài)并關(guān)閉;當(dāng)向繼電器線圈施加+5V電壓時(shí),繼電器關(guān)閉,狀態(tài)LED亮起。通常情況下,繼電器觸點(diǎn)閉合,相當(dāng)于閉合開關(guān)。
(四)電路設(shè)計(jì)
1.晶體發(fā)生器的設(shè)計(jì)。
用于APB正常操作的PCLK時(shí)鐘生成各種外部設(shè)備所需的不同的時(shí)鐘信號,例如GPIO、ADC、RTC、WDT、IIC、USB設(shè)備、SD卡接口、5個(gè)定時(shí)器、4個(gè)PWM、3個(gè)UART、2個(gè)SPI等。
2.USB適配器設(shè)計(jì)。
在系統(tǒng)構(gòu)建過程中,有必要使用串行接口來調(diào)試終端。然而,大多數(shù)筆記本電腦不再有串行端口,只有USB端口。為了便于開發(fā)階段,可以直接連接計(jì)算機(jī)的USB接口進(jìn)行本地調(diào)試。該芯片只需要幾個(gè)合適的外部電容器,就能夠在RS232和USB信號之間進(jìn)行轉(zhuǎn)換,這有助于在各種設(shè)備中使用。并且,該芯片能夠在沒有軟件控制的情況下自動執(zhí)行整個(gè)過程。
(五)儲存器設(shè)計(jì)
同步動態(tài)存儲器具有可選SDRAM訪問功能,作為已安裝系統(tǒng)操作內(nèi)存的一部分,它為已安裝操作系統(tǒng)的順利運(yùn)行提供存儲空間。S3C2440A有27條地址線,理論上可以尋址128M的空間。S3C2440A可以通過8128M內(nèi)存線(根據(jù)ngcs0-ngcs7)達(dá)到1G/8內(nèi)存。SDRAM芯片選擇信號連接到ngcs6S3C2440連接器,因此,SDRAM地址從0x300000開始。
系統(tǒng)中使用的SDRAM芯片型號為K4S561632C-TC75,其主要功能是使用標(biāo)準(zhǔn)的3.3V電源,由四個(gè)獨(dú)立的組件組成,并支持TTL級別的兼容多路復(fù)用地址的自動更新。K4S561632C-TC75具有16位數(shù)據(jù)位寬,而S32440CPU使用32位總線。為了提高內(nèi)存訪問速度、讀寫速度、內(nèi)存效率和防止數(shù)據(jù)連接丟失,系統(tǒng)使用兩個(gè)32M內(nèi)存芯片數(shù)據(jù)連接擴(kuò)展到32M,并創(chuàng)建64M的SDRAM范圍[3]。
(六)遠(yuǎn)程訪問端模塊的有效設(shè)計(jì)
用戶可以通過計(jì)算機(jī)瀏覽器訪問嵌入式設(shè)備上搭建的嵌入式Web服務(wù)器來實(shí)時(shí)監(jiān)測室內(nèi)傳感器獲取的數(shù)據(jù),并通過數(shù)據(jù)交換和網(wǎng)絡(luò)通信來操控室內(nèi)家電狀態(tài)。在登錄后進(jìn)入管理界面,用戶可以在界面模塊中完成各個(gè)子系統(tǒng)的操作。溫度監(jiān)測界面的子系統(tǒng)可以顯示家電的運(yùn)行狀態(tài),并且可以在操作界面進(jìn)行設(shè)置。此外,燈光管理界面可以操控和顯示各個(gè)房間的燈管狀態(tài)。各模塊可以通過指令操作、CGI傳輸數(shù)據(jù)和核心接口來保存和操控家電數(shù)據(jù)。
(七)溫度監(jiān)測模塊軟件的有效設(shè)計(jì)
此模塊可以將溫度傳感器設(shè)置于各個(gè)房間,以檢測溫度情況,溫度的采集可借助溫度傳感器“DS18B20”來完成。當(dāng)溫度沒有觸發(fā)報(bào)警,采集任務(wù)將每10s完成一次;當(dāng)溫度達(dá)到報(bào)警值時(shí),采集任務(wù)將每5秒執(zhí)行一次,并觸發(fā)蜂鳴器和燈光進(jìn)行報(bào)警;當(dāng)溫度達(dá)到危險(xiǎn)值時(shí),CGI會將采集到的數(shù)據(jù)傳送到Web瀏覽器中,并實(shí)時(shí)顯示。同時(shí),通過Web界面的操作可以在服務(wù)器端發(fā)送指令,執(zhí)行與溫度相關(guān)的任務(wù)。
(八)紅外監(jiān)測模塊軟件的有效設(shè)計(jì)
此模塊利用DYP-ME003硬件實(shí)現(xiàn)功能。啟動服務(wù)器時(shí)會自動加載驅(qū)動,并通過Web瀏覽器定時(shí)讀取紅外監(jiān)測數(shù)據(jù),實(shí)現(xiàn)對各房間狀態(tài)的實(shí)時(shí)觀察。當(dāng)偵測到目標(biāo)后,LED報(bào)警和報(bào)警蜂鳴器會立即觸發(fā)報(bào)警。
(九)燈光控制模塊軟件的有效設(shè)計(jì)
此模塊可以通過對燈光模塊的控制來響應(yīng)Internet網(wǎng)絡(luò)控制指令實(shí)現(xiàn)對家中照明設(shè)備的開關(guān)控制。對照明系統(tǒng)的模擬通過板上LED燈來完成,并通過在“project-web-data”目錄下創(chuàng)建一個(gè)“l(fā)ed data.txt”文件來實(shí)時(shí)保存LED燈的狀態(tài)。每次對LED燈進(jìn)行操作時(shí),該文檔都會實(shí)時(shí)更新數(shù)據(jù)。
(十)窗簾控制模塊軟件的有效設(shè)計(jì)
此模塊利用步進(jìn)電機(jī)并使用CGI語言傳輸控制指令,來實(shí)現(xiàn)對窗簾的控制。可以在“project-web-data”目錄下創(chuàng)建一個(gè)“curtaindata.txt”文檔,實(shí)現(xiàn)對窗簾數(shù)據(jù)的保存和更新。同時(shí),可以在瀏覽器Web上顯示該文檔,以便實(shí)時(shí)操控窗簾的開合狀態(tài)。
六、結(jié)束語
總而言之,該系統(tǒng)使用嵌入式Linux作為開發(fā)平臺,有助于系統(tǒng)的開發(fā)、測試、改進(jìn)和增強(qiáng),并提高系統(tǒng)的穩(wěn)定性和可靠性。通過網(wǎng)絡(luò)服務(wù)器和GPRS無線傳輸上網(wǎng),能夠?qū)崿F(xiàn)智能家居監(jiān)控系統(tǒng),滿足家庭的需求。
作者單位:柴晟 陳良維 林琳 李明欣 成都航空職業(yè)技術(shù)學(xué)院
參? 考? 文? 獻(xiàn)
[1]王文強(qiáng),李利,陳宇,等.基于ARM-A9和ZigBee技術(shù)的智能家居系統(tǒng)設(shè)計(jì)概述[J].科學(xué)與信息化,2021(2):17-17.
[2]郭詩霖,江業(yè)峰,侯俊博,等.基于Linux與ARM架構(gòu)的嵌入式智能家居系統(tǒng)[J].軟件,2022,43(5):125-127.
[3]陳城,孫峰,曲金秋,等.基于嵌入式Linux的水位視頻在線監(jiān)測系統(tǒng)設(shè)計(jì)[J].水利信息化,2021(3):41-44.