第一篇:基于web的嵌入式遠程監(jiān)控系統(tǒng)
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第1頁
共33頁
基于web的嵌入式遠程監(jiān)控系統(tǒng)
學(xué)生:劉 仁
指導(dǎo)老師:蔡 碩
摘要: 隨針對當(dāng)前國內(nèi)國外嵌入式服務(wù)器技術(shù)研究和發(fā)展情況的分析,本報告提出了將 WEB 服務(wù)器、嵌入式系統(tǒng)以及當(dāng)前的一些嵌入式實驗板板載功能進行融合的設(shè)計思想。設(shè)計了結(jié)合 WEB 服務(wù)器技術(shù)的嵌入式監(jiān)控系統(tǒng)。該系統(tǒng)具有瀏覽交互式網(wǎng)頁,對嵌入式平臺進行監(jiān)視和控制等功能。通過本套嵌入式WEB 服務(wù)器系統(tǒng),用戶可以通過 HTTP 協(xié)議方便的訪問相應(yīng)的嵌入式平臺進行有效監(jiān)視的同時還可以進行實時的有效控制。該系統(tǒng)對硬件要求極低、響應(yīng)速度快、安全性好、可擴展性強等優(yōu)點,具有較高的實際應(yīng)用價值。該系統(tǒng)在智能家居、嵌入式組網(wǎng)等方面的應(yīng)用將有較廣闊的發(fā)展前途。
關(guān)鍵詞:ARM 嵌入式系統(tǒng);嵌入式 web 監(jiān)控;boa 服務(wù)器;CGI 編程;Linux 操作系統(tǒng)
關(guān)鍵詞:自動化、奏樂器、VHDL、數(shù)字電路
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第2頁
共33頁
Abstract: According to the analysis of the researches about the status of the mbeddedserver of the world.We rise a design of a embedded internet control system basedon the Web service which integrates the web server,embedded technology and thefunctions on the embedded experiment Board.This system has the function of browsing the web pages,monitoring theembedded Board and so on.With this embedded WEB server,the users can watchthe embedded system conveniently according the HTTP protocol.At the sametime the users can also monitor the ystem.This system have a lot of longtageslike a low request of the hardware,limited time of response and a stable status.Wewill see that this kind of system used in the application of intelligent familyelectronics,embedded neting and so on would have a good development.Keywords: ARM Embedded System;Embedded Web Server System;Boa Server;CGI Programing;Linux Operating System
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第3頁
共33頁
引 言
嵌入式系統(tǒng)課程設(shè)計是本專業(yè)在學(xué)習(xí)完 C 語言、LINUX 操作系統(tǒng)、嵌入式系統(tǒng)原理與接口設(shè)計、嵌入式操作系統(tǒng)原理之后的專業(yè)課程設(shè)計,屬于專業(yè)課內(nèi)容。通過課程設(shè)計建立嵌入式系統(tǒng)主體環(huán)節(jié),嵌入式系統(tǒng)的最小結(jié)構(gòu)和系統(tǒng)應(yīng)用設(shè)計基本技能,培養(yǎng)分析和解決一些簡單的實際問題的能力,為今后畢業(yè)設(shè)計奠定基礎(chǔ)。隨著嵌入式技術(shù)的發(fā)展和高速寬帶網(wǎng)絡(luò)的普及, 利用網(wǎng)絡(luò)實現(xiàn)遠程監(jiān)控已為人們廣泛接受, 嵌入式網(wǎng)絡(luò)監(jiān)控技術(shù)正是在此條件下逐步發(fā)展成熟起來的。用戶使用 Web 瀏覽器, 通過以太網(wǎng)遠程訪問內(nèi)置 Web 服務(wù)器的監(jiān)控攝像機, 不但可以實現(xiàn)對現(xiàn)場的遠程視頻監(jiān)控, 而且可以向監(jiān)控現(xiàn)場發(fā)送指令。在整個系統(tǒng)的實現(xiàn)過程中, 嵌入式 Web 服務(wù)器起著十分重要的作用。本課題就是基于該項技術(shù),最終編程實現(xiàn)通過網(wǎng)絡(luò)控制下位機嵌入式控制器的電機啟動和停止。
1.1研究目的和意義
1、通過嵌入式課程設(shè)計,熟練掌握 C 語言的編程方法。基于 WEB 的遠程監(jiān)控的實現(xiàn),CGI 的編寫和使用,將理論聯(lián)系到實踐中去,提高我們的動腦和動手的能力。
2、通過基于 WEB 的嵌入式遠程監(jiān)控系統(tǒng)的設(shè)計,掌握 S3C2410 實驗箱,直流電機的工作原理,BOA 服務(wù)器的使用,CGI 的使用和簡單程序的編寫及調(diào)試方法,最終提高我們的動手實踐能力。
3、本課題的研究目的是用 BOA 服務(wù)器、CGI、IE 瀏覽器設(shè)計一個通過 IE 瀏覽器監(jiān)控電機的系統(tǒng),能夠通過兩個簡單的按鍵對電機進行啟動和停止的控 3
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第4頁
共33頁
制,并能夠在 IE 瀏覽器上看到電機的當(dāng)前狀態(tài)。
4、由于基于 WEB 的嵌入式遠程監(jiān)控系統(tǒng)將成為今后遠程監(jiān)控技術(shù)發(fā)展的主流方向,所以需要設(shè)計出簡單實用,讓人們更滿意的產(chǎn)品。
1.2 本設(shè)計任務(wù)和主要內(nèi)容
1.基本要求
本課題主要設(shè)計和研究基于WEB的嵌入式遠程監(jiān)控系統(tǒng),要求在保證可靠運行的前提下,電路設(shè)計盡量簡潔緊湊,以減小成本、提高系統(tǒng)的效率和安全性。
2.應(yīng)解決的問題 1)設(shè)計系統(tǒng)網(wǎng)絡(luò)方案
2)分析網(wǎng)絡(luò)程序結(jié)構(gòu)和應(yīng)用程序的使用方法 3)編程實現(xiàn)嵌入式系統(tǒng)服務(wù)器功能 4)編程實現(xiàn)嵌入式系統(tǒng)聯(lián)網(wǎng)功能
5)編程實現(xiàn)通過網(wǎng)絡(luò)控制下位機嵌入式控制器的電機啟動和停止
3.?dāng)U展功能
演奏時可以通過按鍵選擇是手動演奏還是自動演奏,手動演奏是通過按鍵進行簡易樂曲的演奏。
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第5頁
共33頁總體方案設(shè)計
2.1 整體方案設(shè)計
系統(tǒng)總體設(shè)計是基于嵌入式系統(tǒng)和 WEB 服務(wù)器結(jié)合的思想開發(fā)的,其網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖 2.1 所示
圖 2.1 系統(tǒng)網(wǎng)絡(luò)拓撲圖
針對本次課程設(shè)計提出的系統(tǒng)設(shè)計如圖 2.2 所示
圖 2.2 系統(tǒng)方案框圖
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第6頁
共33頁
2.2 硬件系統(tǒng)設(shè)計
2.3.1 核心處理器的選擇
核心處理芯片需要完成處理和支持整個系統(tǒng)的功能需求,通過運行 BOA 服務(wù)器要實施的接收來自各個客戶端的請求和信息,并根據(jù)獲得的請求和信息進行相應(yīng)的后臺處理以及信息的反饋。為完成上述功能,實現(xiàn)服務(wù)器正常運行,對處理芯片進行選型,對比現(xiàn)有處理芯片的優(yōu)缺點,選擇 ARM9 S3C2410X 芯片作為設(shè)計開發(fā)嵌入式服務(wù)器系統(tǒng)的核心處理芯片。S3C2410X 微處理器是一款由 Samsung 公司為手持設(shè)備設(shè)計的低功耗、高集成度的基于ARM920T 核的微處理器,為了降低系統(tǒng)總成本和減少外圍器件,這款芯片還集成了以下部件:16KB 指令 Cache、16KB 數(shù)據(jù) Cache、MMU、外部存儲器控制器、LCD 控制器、NAND FLASH 控制器、4 個 DMA 通道、3 個 UART 通道、1 個 IIC 總線控制器、1 個 IIS總線控制器、4 個 PWM 定時器、1 個內(nèi)部定時器、通用 IO 口、實時時鐘、8 通道 10 位ADC 和觸摸屏接口、USB 主、USB 從、SD/MMC 卡接口等。
2.3 軟件環(huán)境選擇
2.3.1 操作系統(tǒng)的選擇
當(dāng)選定了硬件系統(tǒng)后,為了配合硬件達到系統(tǒng)的最優(yōu)控制要求,對市面上常用的嵌入式系統(tǒng)進行分析比較。
(1)價格比較:Linux 是完全免費的操作系統(tǒng),只需遵循 GPL 聲明,不需支付任何費用;WinCE 是微軟的商用嵌入式操作系統(tǒng),使用它需要支付 WinCE 及其開發(fā)環(huán)境的費用,開發(fā)出來的每套產(chǎn)品也需交納一定費用。uc/os—II 系統(tǒng),可以免費用于學(xué)習(xí)或科研,但開發(fā)商使用產(chǎn)品或銷售都是收費的。
(2)開放性比較:Linux 是源代碼完全開放的操作系統(tǒng),可以自由下載,并且
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第7頁
共33頁
在遵循GPL 聲明的前提下可以自由地修改、移植,為系統(tǒng)的開發(fā)和調(diào)試帶來極大的便利;winCE是部分源碼開放的商用操作系統(tǒng),如果要修改其中的代碼,需獲得微軟公司的授權(quán);uc/os—II 也是開放的實時操作系統(tǒng)。
(3)文件系統(tǒng)的比較:Linux 支持絕大部分文件系統(tǒng),只需選擇相應(yīng)的文件系統(tǒng)即可;
WinCE 僅支持 Windows 系列的 FAT16、有限文件系統(tǒng);uc/os—II 本身沒有包括文件系統(tǒng),需購買或移植。Linux 與 ARM 處理器從以上可以看出,Linux 系統(tǒng)在諸多方面都存在優(yōu)勢,而且本身的 ARM 處理器與 Linux 也有著緊密的聯(lián)系。因此采用 Linux 操作系統(tǒng)。2.3.2 服務(wù)器的選擇
典型的嵌入式 Web 服務(wù)器有 Boa 和 thttpd 兩種,它們和 Apache 等高性能的 Web 服務(wù)器主要的區(qū)別在于它們一般是單進程服務(wù)器,只有在完成一個用戶請求后才能響應(yīng)另一個用戶的請求,而無法并發(fā)響應(yīng),但這在嵌入式設(shè)備的應(yīng)用場合里已經(jīng)足夠了。Boa 是一個非常小巧的 Web 服務(wù)器,可執(zhí)行代碼只有約 60KB。它是一個單任務(wù) Web服務(wù)器,只能依次完成用戶的請求,而不會 fork 出新的進程來處理并發(fā)連接請求。但 Boa支持 CGI,能夠為 CGI 程序 fork 出一個進程來執(zhí)行。Boa 的設(shè)計目標(biāo)是速度和安全,在其站點公布的性能測驗中,Boa 的性能要好于 Apache 服務(wù)器。經(jīng)過上述的對比和判斷,選擇Boa 作為系統(tǒng)的嵌 入式服務(wù)器。
綜合以上的討論以及選擇,根據(jù)系統(tǒng)的實際需求,最終確定了采用 S3C2410X 為核心處理器,Linux 為嵌入式操作系統(tǒng),boa 為服務(wù)器以及相應(yīng)的 http 瀏覽器的系統(tǒng)設(shè)計方案。
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第8頁
共33頁硬件設(shè)計
3.1 系統(tǒng)硬件平臺介紹
我們所介紹的硬件平臺是基于 ARM 體系結(jié)構(gòu),由北京博創(chuàng)興業(yè)科技有限公司開發(fā)的UP-NetARM2410-S 實驗儀器。UP-NetARM2410-S 的 CPU 為 ARM920T 內(nèi)核的三星S3c2410 芯片,由于有 MMU(內(nèi)存管理單元)可以運行標(biāo)準(zhǔn)的 ARM-LINUX 內(nèi)核。通過這個平臺,我們可以實現(xiàn)嵌入式 LINUX 中的針對無 MMU 的開發(fā)過程。
3.2 s3c2410 芯片介紹
圖 3.1 芯片結(jié)構(gòu)圖
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第9頁
共33頁
3.3 ARM 處理器的外圍設(shè)備
3.3.1 電源電路
設(shè)備提供 12v 的電源,經(jīng) LM1085-3.3V 和 AS1117-1.8V 分別得到 3.3V 和 1.8V 的工作電壓。開發(fā)板上的芯片多數(shù)使用了 3.3V 電壓,而 1.8V 是供給 S3C2410 內(nèi)核使用的。5V 電壓供給 LCD、電機、總線等電路使用。
圖 3.2 電源電路
3.3.2 硬件復(fù)位電路
硬件復(fù)位電路由IMP811T構(gòu)成,實現(xiàn)對電源電壓的監(jiān)控和手動復(fù)位操作。2410-S主板復(fù)位電路設(shè)置專用邏輯:IMP811T 的復(fù)位電平可以使CPU JTAG(nTRST和板級系統(tǒng)(nRESET)全部復(fù)位;來自仿真器的ICE_nSRST 信號只能使板級復(fù)位;來自仿真器的ICE_nTRST 可以使JTAG(nTRST)復(fù)位,通過跳線選擇是否使板級nRESET復(fù)位。nRESET反相后得到RESET 信號。硬件復(fù)位電路如圖3.3所示
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第10頁
共33頁
圖3.3 硬件復(fù)位
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第11頁
共33頁軟件設(shè)計
4.1 設(shè)計思想
基于 web 的嵌入式監(jiān)控系統(tǒng)設(shè)計主要的功能有簡單的網(wǎng)頁瀏覽,實現(xiàn)簡單應(yīng)用功能(客戶端與服務(wù)器的交互)以及服務(wù)器端的控制功能。因此軟件的設(shè)計分為三個部分:boa 服務(wù)器的搭建、應(yīng)用程序設(shè)計和驅(qū)動程序的加載。
4.2 BOA 服務(wù)器的簡介與搭建
4.2.1 嵌入式 Web 服務(wù)器 Boa 的特點
Boa 是一款單任務(wù)的 HTTP 服務(wù)器, 與其他傳統(tǒng)的 Web 服務(wù)器不同的是當(dāng)有連接請求到來時, 它并不為每個連接單獨創(chuàng)建進程, 也不通過復(fù)制自身進程來處理多鏈接, 而是通過建立 HTTP 請求列表來處理多路 HTTP 連接請求, 同時它只為 CGI 程序創(chuàng)建新的進程,這樣就在最大程度上節(jié)省了系統(tǒng)資源, 這對嵌入式系統(tǒng)來說至關(guān)重要。同時它還具有自動生成目錄、自動解壓文件等功能, 因此 Boa 具有很高的 HTTP 請求處理速度和效率, 在嵌入式系統(tǒng)中具有很高的應(yīng)用價值。4.2.2 Boa 的功能實現(xiàn)
嵌入式 Web 服務(wù)器 Boa 和普通 Web 服務(wù)器一樣, 能夠完成接收客戶端請求、分析請求、響應(yīng)請求、向客 戶端返回請求結(jié)果等任務(wù)。它的工作過程主要包括:
(a)完成 Web 服務(wù)器的初始化工作, 如創(chuàng)建環(huán)境變量、創(chuàng)建 TCP 套接字、綁定端口、開始偵聽、進入循環(huán)結(jié)構(gòu), 以及等待接收客戶瀏覽器的連接請求;
(b)當(dāng)有客戶端連接請求時,Web 服務(wù)器負責(zé)接收客戶端請求, 并保存相關(guān)請求信息;
(c)在接收到客戶端的連接請求之后,分析客戶端請求, 解析出請求的方法、基于web的嵌入式遠程監(jiān)控系統(tǒng)
第12頁
共33頁
URL 目標(biāo)、可選的查詢信息及表單信息, 同時根據(jù)請求做出相應(yīng)的處理;
(d)Web 服務(wù)器完成相應(yīng)處理后, 向客戶端瀏覽器發(fā)送響應(yīng)信息, 關(guān)閉與客戶機的TCP 連接。嵌入式 Web 服務(wù)器 Boa 根據(jù)請求方法的不同,做出不同的響應(yīng)。如果請求方法為HEAD,則直接向瀏覽器返回響應(yīng)首部;如果請求方法為 GET,則在返回響應(yīng)首部的同時,將客戶端請求的 URL 目標(biāo)文件從服務(wù)器上讀出,并且發(fā)送給客戶端瀏覽器;如果請求方法為 POST,則將客戶發(fā)送過來的表單信息傳送給相應(yīng)的 CGI 程序,作為 CGI 的參數(shù)來執(zhí)行 CGI 程序,并將執(zhí)行結(jié)果發(fā)送給客戶端瀏覽器。Boa 的功能實現(xiàn)也是通過建立連接、綁定端口、進行偵聽、請求處理等來實現(xiàn)的。4.2.3 BOA 的搭建與移植
(1)準(zhǔn)備源代碼、解壓軟件包,安裝源代碼到 boa 網(wǎng)站 http://004km.cnTB0 = DCM_TCNTB0;/* less than 10ms */ TCMPB0 = DCM_TCNTB0/2;TCON &=~(0xf);TCON |=(0x2);TCON &=~(0xf);TCON |=(0x19);})在 s3c2410_dcm_ioctl 中提供調(diào)速功能接口: case DCM_IOCTRL_SETPWM: return dcm_setpwm((int)arg);應(yīng)用程序 dcm_main.c 中調(diào)用:
ioctl(dcm_fd, DCM_IOCTRL_SETPWM,(setpwm * factor));實現(xiàn)直流電機速度的調(diào)整。a.編譯直流電機模塊 cd /arm2410s/kernel-2410s
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第20頁
共33頁
make menuconfig 進入 Main Menu / Character devices 菜單,選擇 DC MOTOR 為模塊加載: b.編譯內(nèi)核模塊: make dep make make modules 直流電機模塊的編譯結(jié)果為:
/arm2410s/kernel-2410s/drivers/char/s3c2410-dc-motor.o c.編譯應(yīng)用程序
cd /arm2410s/exp/basic/10_dcmotor/ make 生成 dcm_main d.掛載驅(qū)動模塊
insmod /host/kernel-2410s/drivers/char/s3c2410-dc-motor.o e.運行程序
mount –t nfs 192.168.0.xxx:/arm2410s /host insmod /host/kernel-2410s/drivers/char/s3c2410-dc-motor.o cd /host/exp/basic/10_dcmotor/./dcm_main 程序運行結(jié)果:直流電機轉(zhuǎn)動 1 秒,停轉(zhuǎn) 1 秒。由于是根據(jù)原有變速程序稍做改動完成的程序,所以遇到的問題不是很多,經(jīng)過幾次嘗試就得到了期望的結(jié)果。
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第21頁
共33頁
5.3 調(diào)試結(jié)果分析
5.3.1 調(diào)試結(jié)果
1、靜態(tài)網(wǎng)頁
圖 5.1 靜態(tài)網(wǎng)頁
2、乘法網(wǎng)頁
圖 5.2 乘法網(wǎng)頁
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第22頁
共33頁
3、電機控制網(wǎng)頁
圖 5.3 電機控制網(wǎng)頁
圖 5.4 返回結(jié)果
5.3.2 結(jié)果分析
經(jīng)過 x86 下的調(diào)試和基于 ARM 的下載與調(diào)試后,系統(tǒng)能夠?qū)崿F(xiàn)靜態(tài)網(wǎng)頁瀏覽,簡單人機交互以及電機控制的功能,系統(tǒng)工作穩(wěn)定,響應(yīng)速度快,組網(wǎng)方便快捷,如果與 DNS 服務(wù)器或者 WINS 服務(wù)器相結(jié)合即可實現(xiàn)用主機名就能登錄相應(yīng)平臺的功能。
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第23頁
共33頁設(shè)計總結(jié)
經(jīng)過三個周的學(xué)習(xí)與努力,經(jīng)過系統(tǒng)分析、方案論證、硬件和軟件設(shè)計、調(diào)試 等階段完成了基于 web 的嵌入式遠程監(jiān)控系統(tǒng)的設(shè)計制作。在這三個周的課程設(shè)計中,我得到了老師和同學(xué)很大的幫助,有時候覺得進行不下去了,老師或同學(xué)一句話就能讓我茅塞頓開。即使聽不懂,他們也會耐心的講解。
在系統(tǒng)的設(shè)計制作過程中,確實遇到了各種各樣的問題,如調(diào)試思路正確但是沒有能夠進行找到合適的方法進行進一步的實驗,設(shè)計中對于程序的編寫以及目錄結(jié)構(gòu)的認知上存在偏差,其主要原因還是基礎(chǔ)功不扎實,把握系統(tǒng)的能力不足,這為我們以后的學(xué)習(xí)和工作提了一個醒。在問題的解決過程中,也提高了組員的動手動腦能力,學(xué)到了許多在書本上學(xué)不到的知識。在具體的設(shè)計當(dāng)中解決了諸如 boa 服務(wù)器的搭建,C 程序的修改及 CGI編程的理解,程序的調(diào)試和系統(tǒng)的整體認識等問題,小組成員收獲很大。
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第24頁
共33頁
致謝
在這次課程設(shè)計中,學(xué)校和學(xué)院給予了大力的支持,提供了與設(shè)計有關(guān)的環(huán)境,方便了課程設(shè)計的順利進行。在這其中我確實學(xué)到了很多知識,在此僅代表個人衷心的感謝學(xué)校和學(xué)院的大力支持。本論文是在指導(dǎo)老師蔡爍的悉心指導(dǎo)和嚴(yán)格要求下完成的。在整個課程設(shè)計過程中,蔡爍老師時時督促和引導(dǎo),并在設(shè)計過程中進行了方向指導(dǎo),在總體方向不出錯的基礎(chǔ)上,施展自己的所學(xué),發(fā)揮個人的所長。他不僅在學(xué)習(xí)上和生活上給予了我們多方面的指導(dǎo)和無微不至的關(guān)懷,而且他淵博的學(xué)識、嚴(yán)謹?shù)闹螌W(xué)態(tài)度、孜孜不倦的工作作風(fēng)和寬以待人的處事風(fēng)格使我終身受益,并且還從中學(xué)會了分析問題和解決問題的方法此外,在本次設(shè)計過程中,還得到了其他老師和的熱情關(guān)心和幫助,值此論文完成之際,謹向老師表示崇高的敬意和最誠摯的謝意。
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第25頁
共33頁
參考文獻
[1]鄭靈翔編著 《嵌入式 LINUX 系統(tǒng)設(shè)計》 北京航空航天大學(xué) 2008 年 [2]孫紀(jì)坤、張小全編著 《嵌入式 LINUX 系統(tǒng)開發(fā)技術(shù)詳解-基于 ARM》人民郵電出版社 2007.9、[3]王進德 編著 《嵌入式 LINUX 程序設(shè)計與應(yīng)用案例》 中國電力出版社 2007.5 [4]鄭慕德 編著 《嵌入式微型計算機系統(tǒng)實例教程-ARM 與 LINUX》 科學(xué)出版社2006.7 [5]劉淼 編著 《嵌入式系統(tǒng)接口設(shè)計與 LINUX 驅(qū)動程序開發(fā)》 北京航空航天大學(xué)出版社,2006.5 [6]魏洪興等編著 《嵌入式系統(tǒng)設(shè)計與實例開發(fā) II-基于 ARM9 微處理器與 LINUX 操作系統(tǒng)》 清華大學(xué)出版社 2005.12 [7]魏洪興等編著 《嵌入式系統(tǒng)設(shè)計與實例開發(fā)實驗教材 II-基于 ARM9 微處理器與LINUX 操作系統(tǒng)》清華大學(xué)出版社 2005.12 [8]金敏等編著 《嵌入式組成、原理與設(shè)計編程》 人民郵電出版社 2007.6
基于web的嵌入式遠程監(jiān)控系統(tǒng)
第26頁
共33頁
附錄 1 主要程序清單
乘法網(wǎng)頁的HTML表單:
?測試
第二篇:基于嵌入式Web的遠程監(jiān)控系統(tǒng)設(shè)計
基于嵌入式Web的遠程監(jiān)控系統(tǒng)設(shè)計
摘 要:本文結(jié)合機房環(huán)境設(shè)備的管理需要,分析了遠程監(jiān)控系統(tǒng)的特點,提出基于嵌入式Web服務(wù)器的遠程監(jiān)控系統(tǒng)設(shè)計思路、體系架構(gòu)方法,并對基于OPC技術(shù)的互聯(lián)與基于嵌入式Web服務(wù)器的互聯(lián)作了簡要對比。文章結(jié)合CGI程序的設(shè)計,著重探討了嵌入式Web服務(wù)器的實現(xiàn)方法。關(guān)鍵詞:嵌入式平臺,Web服務(wù)器,遠程監(jiān)控,CGI程序
⒈引言
隨著計算機和網(wǎng)絡(luò)技術(shù)的普及,計算機系統(tǒng)的數(shù)量與日俱增,計算機機房已成為各大型單位的信息樞紐。機房中的環(huán)境設(shè)備(如空調(diào)、UPS電源、配電柜、消防設(shè)備等)為網(wǎng)絡(luò)系統(tǒng)的安全運行提供了環(huán)境保障。同時,環(huán)境設(shè)備自身的安全運行,也成為機房管理的重要內(nèi)容之一。一旦機房的環(huán)境設(shè)備出現(xiàn)故障,就會直接影響計算機系統(tǒng)的正常運行,嚴(yán)重的還會造成機房內(nèi)的相關(guān)設(shè)備損壞,甚至導(dǎo)致網(wǎng)絡(luò)系統(tǒng)癱瘓[1]。因此,對機房環(huán)境設(shè)備的運行狀態(tài)進行實時監(jiān)控,是保證機房設(shè)備安全運行的關(guān)鍵措施。
⒉遠程監(jiān)控系統(tǒng)的需求分析
對機房環(huán)境設(shè)備的監(jiān)控主要涉及以下幾個方面的內(nèi)容:對配電系統(tǒng)、UPS系統(tǒng)、空調(diào)系統(tǒng)工作狀態(tài)的監(jiān)視;對機房的溫濕度、生活用水和供暖制冷系統(tǒng)漏水情況等進行監(jiān)測、報警,以及對門禁系統(tǒng)、消防系統(tǒng)、保安系統(tǒng)等的管理。由于這些環(huán)境設(shè)備是連續(xù)工作的,因此要求監(jiān)控系統(tǒng)也必須是長時間連續(xù)工作的。這樣就對系統(tǒng)設(shè)計的可靠性、安全性、可維護性等方面提出了更高的要求[1],具體表現(xiàn)在以下幾個方面:
⑴高可靠性。要求監(jiān)控系統(tǒng)可長時間不間斷運行,無故障運行時間要長,且系統(tǒng)的維護快速簡便。
⑵高安全性。系統(tǒng)應(yīng)能夠提供多種安全保護措施,對異常狀態(tài)進行分析、記錄、及時報警,以便讓管理人員能夠盡快了解所發(fā)生的情況并及時處理。
⑶較強的實時性。監(jiān)控系統(tǒng)對信息的傳輸要及時,不能有過大的延時,否則難以及時跟蹤被監(jiān)控對象的當(dāng)前狀況。
⑷易用性和易維護性。機房環(huán)境設(shè)備監(jiān)控系統(tǒng),應(yīng)以GUI的方式提供良好的人機界面,便于人機交互。同時,監(jiān)控系統(tǒng)要有通用性和靈活性,即可以在對系統(tǒng)進行少量修改或擴充就可增加新的監(jiān)控項目,擴充監(jiān)測點數(shù),以滿足新的監(jiān)控要求。
⑸豐富的系統(tǒng)功能。要求監(jiān)控系統(tǒng)不僅能夠提供一般的報警功能,對采集的當(dāng)前數(shù)據(jù)進行記錄且保存
歷史數(shù)據(jù),并以圖形方式對環(huán)境設(shè)備運行狀態(tài)和參數(shù)進行直觀顯示。
實施監(jiān)控的主要方法,即是在現(xiàn)場控制器的控制之下,實時地采集數(shù)據(jù)并與預(yù)設(shè)的值進行比較,如果超出相應(yīng)的閥值則給出報警,以提示有關(guān)人員進行相應(yīng)處理。根據(jù)對環(huán)境設(shè)備監(jiān)控的位置不同,可把監(jiān)控系統(tǒng)分為本地監(jiān)控和遠程監(jiān)控兩大類。本地監(jiān)控方式往往需要派人長期現(xiàn)場值守,管理成本較高;而借助于公共的Internet或企業(yè)內(nèi)部的Intranet網(wǎng)絡(luò)實施遠程監(jiān)控則可做到無人值守,從而大幅度地節(jié)約管理成本、提高機房管理水平和效率,因此成為監(jiān)控系統(tǒng)發(fā)展的主流方向。
⒊遠程監(jiān)控系統(tǒng)的設(shè)計
基于對遠程監(jiān)控系統(tǒng)的需求分析,進行系統(tǒng)設(shè)計時應(yīng)重點考慮如下幾種因素:首先,要考慮現(xiàn)場總線與數(shù)據(jù)網(wǎng)的互聯(lián)問題。由于被監(jiān)控對象的信號種類較多,所采用的現(xiàn)場總線標(biāo)準(zhǔn)各異,因此不同總線標(biāo)準(zhǔn)之間的轉(zhuǎn)換以及現(xiàn)場總線與數(shù)據(jù)網(wǎng)之間的互聯(lián)是系統(tǒng)設(shè)計時需要重點考慮的問題[2]。其次,實時性要求是遠程監(jiān)控網(wǎng)絡(luò)系統(tǒng)區(qū)別于普通網(wǎng)絡(luò)系統(tǒng)的基本特征。如果監(jiān)控系統(tǒng)的實時性得不到保障,現(xiàn)場監(jiān)控就失去了實用價值。第三,為滿足監(jiān)控系統(tǒng)的高可靠性要求,應(yīng)分別對硬件系統(tǒng)和軟件系統(tǒng)進行抗干擾設(shè)計。第四,根據(jù)遠程連接方式不同,應(yīng)采用不同的安全措施以保證信息的安全傳輸。3.1監(jiān)控系統(tǒng)的功能設(shè)計
監(jiān)控系統(tǒng)的基本功能主要包括:現(xiàn)場數(shù)據(jù)的實時采集、發(fā)送和顯示;對采集到的數(shù)據(jù)進行處理和存儲;對數(shù)據(jù)處理的結(jié)果進行分析、判斷和報警;提供多種業(yè)務(wù)支持功能。3.1.1實時數(shù)據(jù)采集
實時數(shù)據(jù)采集是實施系統(tǒng)監(jiān)控的基礎(chǔ)。在環(huán)境設(shè)備的監(jiān)控系統(tǒng)中,需要實時采集的數(shù)據(jù)主要包括高低壓配電系統(tǒng)及UPS電源的電壓、電流、電源開關(guān)狀態(tài)等參數(shù),空調(diào)機的冷熱水溫度、流量、送風(fēng)量、送風(fēng)溫度、新風(fēng)量等狀態(tài)參數(shù),以及機房內(nèi)部的環(huán)境參數(shù)(如溫度、濕度、水浸、煙感、門禁等)。不同的參數(shù)采用的總線標(biāo)準(zhǔn)不同(如RS232/485總線、Lonworks總線),只有把它們統(tǒng)一到TCP/IP協(xié)議上,才能實現(xiàn)真正意義上的遠程監(jiān)控。
3.1.2報警功能
報警是監(jiān)控系統(tǒng)的基本功能之一。監(jiān)控系統(tǒng)對采集到的數(shù)據(jù)進行分析、處理,如果發(fā)現(xiàn)相關(guān)數(shù)據(jù)超限、數(shù)據(jù)異常,則說明環(huán)境設(shè)備出現(xiàn)異常情況,此時應(yīng)發(fā)出相應(yīng)報警。設(shè)計報警功能時,需要考慮被監(jiān)控對象的自身特性、優(yōu)先級別等因素,對多個報警信號進行加權(quán)處理,以保證系統(tǒng)的所有重要報警都能被及時處理。
3.1.3多種業(yè)務(wù)支持功能
靈活的查詢和豐富的報表功能是對監(jiān)控系統(tǒng)基本功能的擴展。通過對設(shè)備運行狀態(tài)的實時數(shù)據(jù)、歷史數(shù)據(jù)進行對比分析,從不同角度向管理者提供設(shè)備運行和維護信息,為設(shè)備的維護、大修、更新、改造等質(zhì)量管理提供可靠依據(jù)。3.2監(jiān)控系統(tǒng)的結(jié)構(gòu)設(shè)計
遠程監(jiān)控系統(tǒng)由現(xiàn)場數(shù)據(jù)采集設(shè)備(可以為多個設(shè)備)、本地Web服務(wù)器和遠端監(jiān)控主機三部分構(gòu)成[3]。Web服務(wù)器通過現(xiàn)場總線與本地數(shù)據(jù)采集設(shè)備直接相連,并負責(zé)把本地傳感器采集到的數(shù)據(jù)進行簡單處理,通過網(wǎng)絡(luò)發(fā)送到遠端的監(jiān)控主機上,從而為實現(xiàn)無人值守的管理方式創(chuàng)造條件。
遠程監(jiān)控系統(tǒng)在設(shè)計時需要解決的關(guān)鍵問題,就是將不同類型的現(xiàn)場總線或控制網(wǎng)絡(luò)與以太網(wǎng)進行互聯(lián)互通,從而實現(xiàn)監(jiān)控信息的遠程實時傳輸。目前,實施遠程監(jiān)控主要有如下幾種方法:①基于PSTN的傳統(tǒng)方法,即通過Modem連接異地的現(xiàn)場設(shè)備;②基于OPC技術(shù)。采用支持多種現(xiàn)場總線規(guī)范的OPC Server,通過OPC 接口實現(xiàn)現(xiàn)場總線到Internet或Intranet網(wǎng)絡(luò)的無縫連接;③基于嵌入式平臺實現(xiàn)遠程監(jiān)控。在嵌入式平臺上完成對現(xiàn)場數(shù)據(jù)的實時采集,通過現(xiàn)場總線與數(shù)據(jù)網(wǎng)的互連,將Server端的數(shù)據(jù)通過TCP/IP協(xié)議提供給遠端的監(jiān)控主機(即Client端);④采用其它自定義方法實施遠程監(jiān)控。3.2.1基于OPC的監(jiān)控系統(tǒng)
OPC 是以O(shè)LE/COM/DCOM機制作為應(yīng)用程序級的通信標(biāo)準(zhǔn),采用客戶/服務(wù)器模式,把開發(fā)訪問接口的任務(wù)放在硬件生產(chǎn)廠家或第三方廠家,以O(shè)PC服務(wù)器的形式向用戶提供通用的接口,解決了軟、硬件廠商之間的矛盾,提高了系統(tǒng)的開放性和互操作性[4]。基于OPC架構(gòu)的監(jiān)控系統(tǒng)結(jié)構(gòu)如圖1所示。其中,OPC DA Server為數(shù)據(jù)采集服務(wù)器,OPC AE Server為報警服務(wù)器。OPC Server 提供多種接口規(guī)范,應(yīng)用程序和Web瀏覽器(即OPC Client)可以通過這些接口取得與OPC Server相連的硬件設(shè)備信息,從而實現(xiàn)OPC Client通過以太網(wǎng)對OPC Server的訪問。同時OPC Server也可以將采集到的數(shù)據(jù)或報警信息通過網(wǎng)絡(luò)發(fā)送到客戶端或Web瀏覽器端。
在基于OPC的體系架構(gòu)中,由于 COM/DCOM 已被視為網(wǎng)絡(luò)功能的具體實現(xiàn)方法,使得Client對OPC Server的遠程訪問成為標(biāo)準(zhǔn)的網(wǎng)絡(luò)訪問方式。但是OPC技術(shù)的缺點也是非常明顯的,由于LE/COM/DCOM機制是一個純軟件的架構(gòu),對系統(tǒng)資源配置的要求高。當(dāng)系統(tǒng)規(guī)模較大或監(jiān)控點數(shù)較多時,系統(tǒng)的實時性將會明顯下降。
3.2.2基于嵌入式平臺的監(jiān)控系統(tǒng)
實時監(jiān)控系統(tǒng)需要長時間不間斷地工作,對系統(tǒng)的可靠性和實時性均有較高要求。為此必須從系統(tǒng)功能、體系架構(gòu)、軟硬件系統(tǒng)的穩(wěn)定性、設(shè)備功耗等方面進行綜合考慮(例如選用工控級的產(chǎn)品),設(shè)計小型化的智能型監(jiān)控系統(tǒng)。而建立在RTOS之上的嵌入式系統(tǒng)為控制系統(tǒng)的網(wǎng)絡(luò)化、小型化提供了有效途
徑,嵌入式網(wǎng)絡(luò)控制已成為監(jiān)控系統(tǒng)未來發(fā)展的重點方向之一。
基于嵌入式平臺的遠程監(jiān)控系統(tǒng)結(jié)構(gòu)如圖2所示。其中,嵌入式Web服務(wù)器既是遠程監(jiān)控系統(tǒng)的中心節(jié)點,也是控制網(wǎng)絡(luò)與數(shù)據(jù)網(wǎng)絡(luò)進行互聯(lián)的網(wǎng)關(guān),通過TCP/IP協(xié)議將其連接到以太網(wǎng)上,監(jiān)控主機則通過以太網(wǎng)(或Internet)在遠程實時地監(jiān)視現(xiàn)場信號的動態(tài)變化,從而實現(xiàn)遠程監(jiān)控的目標(biāo)。對于能夠直接支持TCP/IP協(xié)議的現(xiàn)場檢測設(shè)備,則可以將其直接連接到以太網(wǎng)上,圖中的液體泄漏檢測儀即是如此;對于采用其他總線標(biāo)準(zhǔn)的現(xiàn)場設(shè)備,則需要通過嵌入式Web服務(wù)器進行信號轉(zhuǎn)換之后把現(xiàn)場總線連接到以太網(wǎng)上。
圖2 遠程監(jiān)控系統(tǒng)結(jié)構(gòu)圖
⒋嵌入式Web服務(wù)器的設(shè)計
在基于嵌入式平臺的遠程監(jiān)控系統(tǒng)中,監(jiān)控系統(tǒng)的中心節(jié)點主要承擔(dān)兩方面的任務(wù):一方面負責(zé)對現(xiàn)場數(shù)據(jù)的采集,即Web服務(wù)器以定時巡檢的方式通過現(xiàn)場總線對傳感器的信號進行采集;另一方面負責(zé)協(xié)議轉(zhuǎn)換,把現(xiàn)場總線來的數(shù)據(jù)轉(zhuǎn)換成TCP/IP協(xié)議的格式,通過以太網(wǎng)將其發(fā)送到遠端的監(jiān)控主機上。在本設(shè)計中實現(xiàn)了從RS232、RS485到TCP/IP協(xié)議之間的相互轉(zhuǎn)換。4.1開發(fā)環(huán)境簡介
考慮到系統(tǒng)開發(fā)的簡便性,本方案選用uCLinux操作系統(tǒng)平臺作為系統(tǒng)的OS環(huán)境,輔助開發(fā)工具選用MiceTek公司的HiTool。嵌入式Web服務(wù)器的硬件環(huán)境選用MiceTek公司的Samsung44B0X開發(fā)板,利用其豐富的接口功能,可實現(xiàn)嵌入式Web服務(wù)器與傳感器的直接連接。4.2 嵌入式Web服務(wù)器的硬件設(shè)計
嵌入式Web服務(wù)器硬件環(huán)境的自定義,是根據(jù)監(jiān)控系統(tǒng)的需要,重新制作嵌入式系統(tǒng)的主板。該主板的CPU仍選用Samsung的S3C44B0X,1M的BootFlash,8M的SDRAM,并提供10M/100M的以太網(wǎng)端口,2個RS232接口和6個RS485接口。如果待檢測的參數(shù)較少,則選用一塊嵌入式Web服務(wù)器主板即可;如果待檢測的參數(shù)較多,則可選用多個同樣的Web服務(wù)器主板,并對每個Web服務(wù)器進行參數(shù)配置(設(shè)置不同的IP地址),構(gòu)成分布式的Web服務(wù)器。如果監(jiān)控系統(tǒng)要求存儲的數(shù)據(jù)量很大,則可以采取以下兩種方法加以解決:一是嵌入式Web服務(wù)器外接硬盤;另一種方法是外加一臺由工業(yè)控制級的服務(wù)器,對多臺嵌入式Web服務(wù)器進行統(tǒng)一管理。4.3 嵌入式Web服務(wù)器的軟件實現(xiàn)
嵌入式Web服務(wù)器的軟件開發(fā)主要包括以下幾項內(nèi)容:首先,完成嵌入式操作系統(tǒng)的移植和TCP/IP協(xié)議的剪裁;第二,編寫數(shù)據(jù)采集、數(shù)據(jù)處理應(yīng)用子程序;第三,編寫遠程通信子程序;第四,報警處理子程序;第五,數(shù)據(jù)查詢和報表生成子程序。這些功能應(yīng)先在上述的開發(fā)環(huán)境中進行初步實現(xiàn)之后,再移植到自定義的環(huán)境中。
由于嵌入式系統(tǒng)的資源有限,因此對上述功能的實現(xiàn)應(yīng)盡量簡潔,例如對HTTP協(xié)議的移植,只需要保留基本的Get和Post方法即可,而Options、Head、Put、Delete和Trace方法在此可不考慮實現(xiàn),因為對RAM(或EEPROM)中的數(shù)據(jù)存儲可以采用循環(huán)覆蓋的方式。
在此方案中,嵌入式Web服務(wù)器與Web瀏覽器及其他應(yīng)用程序之間的交互,可以通過調(diào)用CGI(Common Gateway Interface)程序來實現(xiàn)。CGI規(guī)定了Web服務(wù)器與瀏覽器及其他可執(zhí)行程序的接口協(xié)議標(biāo)準(zhǔn)。當(dāng)Web瀏覽器將請求信息發(fā)送給Web服務(wù)器時,Web服務(wù)器觸發(fā)一個可執(zhí)行的CGI程序,該程序根據(jù)用戶請求的內(nèi)容做出相應(yīng)的處理,并將處理結(jié)果以Web服務(wù)器可識別的方式輸出,Web服務(wù)器再將該結(jié)果回送給Web瀏覽器[5]。
CGI程序中的信息傳遞是通過標(biāo)準(zhǔn)輸入設(shè)備stdin和標(biāo)準(zhǔn)輸出設(shè)備stdout來完成的。Web服務(wù)器在調(diào)用CGI程序之前,需要預(yù)先設(shè)置好所有的環(huán)境變量,以便把客戶的請求轉(zhuǎn)化為參數(shù)后存入環(huán)境變量,然后就可以調(diào)用CGI程序了。CGI程序根據(jù)不同的請求方法確定如何獲取客戶的請求內(nèi)容,而Web服務(wù)器則通過標(biāo)準(zhǔn)輸入設(shè)備stdin獲得客戶請求;對于CGI程序的輸出結(jié)果,Web服務(wù)器則是通過標(biāo)準(zhǔn)輸出設(shè)備stdout來獲得,Web服務(wù)器對其進行語法分析之后,再傳送給客戶瀏覽器。至于CGI程序的實現(xiàn),本方案選用C語言,以保證CGI程序的快速、高效和安全。
⒌結(jié)語
基于嵌入式平臺的監(jiān)控系統(tǒng),以其體積小、可連續(xù)工作時間長、性能穩(wěn)定等特點,得到人們的廣泛認可,成為網(wǎng)絡(luò)化遠程監(jiān)控系統(tǒng)的主流方向。在本設(shè)計中,借助于相對穩(wěn)定和成熟的軟硬件開發(fā)環(huán)境,設(shè)計了一套較為完整和實用化的遠程監(jiān)控方案并加以實現(xiàn)。經(jīng)使用證明,該設(shè)計方案是成功的并取得了較為理想的效果。
參考文獻
[1]關(guān)光富,計算機機房環(huán)境設(shè)備監(jiān)控系統(tǒng)與設(shè)計分析,電工技術(shù)雜志,2004.2 [2]周祖德編著,基于網(wǎng)絡(luò)環(huán)境的智能控制,國防工業(yè)出版社,2004.1,第1版 [3]宋廣軍,張敬,王睿,基于web的溫濕度遠程監(jiān)控系統(tǒng),微計算機信息,2004.1 [4]孫敏,顧德英,汪晉寬,基于OPC技術(shù)的監(jiān)控組態(tài)程序的開發(fā),儀器儀表學(xué)報(增刊),2003.8 [5]湯碧玉,曾楠,鄭靈翔等,嵌入式系統(tǒng)中基于Web的遠程監(jiān)控設(shè)計與實現(xiàn),廈門大學(xué)學(xué)報(自然科學(xué)版),vol.43(5),2004.9
第三篇:基于ARM嵌入式的遠程監(jiān)控系統(tǒng)設(shè)計
基于ARM嵌入式的遠程監(jiān)控系統(tǒng)設(shè)計
摘要:基于ARM 內(nèi)核的嵌入式系統(tǒng)在遠程監(jiān)控報警系統(tǒng)中的設(shè)計實現(xiàn)與應(yīng)用。核心部分主要包 括 ARM 嵌入式平臺設(shè)計及 μC-OS 嵌入式實時操作系統(tǒng)移植;人機交互界面 μCGUI 的設(shè)計與實現(xiàn);遠程通訊及自動報警等;系統(tǒng)的設(shè)計還考慮到了擴展性和通用性以及與其他監(jiān)控設(shè)備無縫連接等問題。
關(guān)鍵詞: ARM;μC/OS-II;μCGUI;遠程監(jiān)控 引言
監(jiān)控系統(tǒng)現(xiàn)已成為現(xiàn)代化生產(chǎn)、生活中不可缺少的重要組成部分。目前,監(jiān)控系列產(chǎn)品 種類繁多,大部分廣泛應(yīng)用于交通、醫(yī)院、銀行、家居、學(xué)校等安防領(lǐng)域。
隨著嵌入式系統(tǒng)的出現(xiàn),尤其是基于 ARM 內(nèi)核芯片的嵌入式系統(tǒng)的出現(xiàn),使得監(jiān)控系統(tǒng)的應(yīng)用領(lǐng)域更為廣泛。本文設(shè)計的遠程監(jiān)控報警系統(tǒng)除了作為安防功能外,還可以應(yīng)用于以下領(lǐng)域:通訊領(lǐng)域:遠程通訊、視頻會議和視頻點播、證券、遠程教育等。醫(yī)療領(lǐng)域:病房監(jiān)護、遠程診斷等。工業(yè)領(lǐng)域:遠程設(shè)備診斷、維護、維修,遠程生產(chǎn)監(jiān)控等。家用領(lǐng)域:家用電器遠程維護;電、氣、火等重大事故自動報警等。
系統(tǒng)設(shè)計
2.1系統(tǒng)組成
本文設(shè)計的遠程監(jiān)控系統(tǒng)主要由中心控制器、數(shù)據(jù)終端、傳感器模塊、通訊模塊、接口模塊等幾部分組成。系統(tǒng)組成圖(如圖 1)。
2.2中心控制器 系統(tǒng)核心負責(zé)數(shù)據(jù)采集判斷處理。為了提高系統(tǒng)工作效率,這里使用的是三星公司的 S3C2410芯片作為處理器。S3C2410 芯片是一款高性價比的 ARM 芯片,非常適合作手機、PDA 等手持設(shè)備。主要特性包括: ARM920T 內(nèi)核,最高工作頻率 203MHz,LCD 控制器:可直接驅(qū)動真彩液晶屏,最高支持 2048×1024 真彩液晶屏,2 個 USB Host端口,1 個USB Device端口,支持 Nand flash 啟動模式,SD 卡接口,UART、IIC、SPI、IIS 等多種類 型串行接口,4 通道DMA。
本文的監(jiān)控系統(tǒng)的 CPU 核心部分使用的是標(biāo)準(zhǔn)的 SO-DIMM200 金手指接口,便于后期維護和升級。如果該監(jiān)控系統(tǒng)的使用環(huán)境較為苛刻,可以將 CPU替換為S3C2440芯片。S3C2440完全兼容S3C2410全部特性(注意:芯片引腳不完全兼容)。與S3C2410芯片相比,S3C2440的性能更為優(yōu)越:最高工作頻率可達500MHz,內(nèi)部集成CMOS攝像頭接口,但價格較昂貴。
圖1 監(jiān)控系統(tǒng)組成框圖
2.3數(shù)據(jù)終端 數(shù)據(jù)終端的主要功能是對監(jiān)控數(shù)據(jù)進行分析、處理,及時將數(shù)據(jù)匯報給監(jiān)控人員。同時,監(jiān)控人員可以根據(jù)現(xiàn)場情況,使用數(shù)據(jù)終端對監(jiān)控的設(shè)備進行遠程控制。數(shù)據(jù)終端最大優(yōu)勢 就是安全、可靠、便于攜帶。一般情況下為了節(jié)約成本,可以將手機、PDA 等移動通訊設(shè)備作為數(shù)據(jù)終端使用。但是如果作為對高危環(huán)境或精密儀器的監(jiān)控系統(tǒng),數(shù)據(jù)終端需要專業(yè)定制。這里使用的是中心控制器的作為數(shù)據(jù)終端,即中心控制器既作為數(shù)據(jù)采集發(fā)送中心,也可數(shù)據(jù)接收處理中心使用。
2.4通訊模塊
通訊模塊主要負責(zé)遠程數(shù)據(jù)通訊。帶有 RS232/485、GPRS、CDMA 等一種或多種通訊 方式。需要根據(jù)現(xiàn)場環(huán)境和用戶需要進行定制。通訊模塊與控制器通過接口總線連接,連接 方式為 TTL/RS232/RS485 等。
2.5傳感器模塊
傳感器模塊的主要功能是感知外部環(huán)境,對外部環(huán)境進行實時監(jiān)測。由人體紅外傳感器、振動傳感器、超聲波傳感器、可燃氣體傳感器、溫度傳感器、濕度傳感器等一種或多種傳感 器組成。可根據(jù)現(xiàn)場監(jiān)測環(huán)境不同進行定制。
2.6接口模塊
接口模塊主要作為系統(tǒng)擴展功能使用,將控制器的 A/D 轉(zhuǎn)換、I2C、SPI 等多種接口進行 外部擴展。接口模塊沒有特定的功能,但可以根據(jù)需要與其他設(shè)備連接,例如可以與工業(yè)儀 器儀表或設(shè)備連接,實時對儀器或設(shè)備進行監(jiān)控。
接口模塊雖然不是監(jiān)控系統(tǒng)的主要部分,但是對于整個系統(tǒng)來說卻是不可缺少。因為本文的監(jiān)控系統(tǒng)主要考慮到了系統(tǒng)的可擴展性和與其它系統(tǒng)無縫連接。通過接口模塊可以很方 便的對監(jiān)控系統(tǒng)進行升級,并且可以實現(xiàn)與其他系統(tǒng)或設(shè)備的無縫連接。這也是本系統(tǒng)區(qū)優(yōu) 于其他監(jiān)控系統(tǒng)的主要功能。軟件設(shè)計
3.1工作軟件
系統(tǒng)的軟件設(shè)計較為復(fù)雜,這里只給出了整個工作軟件流程(如圖 2)。
圖2 軟件流程圖
3.2操作系統(tǒng)移植
S3C2410 芯片支持多種嵌入式操作系統(tǒng),如 WINCE、uCLinux 等。但考慮到監(jiān)控系統(tǒng) 的實時性要求,這里使用的是 μC/OS-II 嵌入式實時操作系統(tǒng)。μC/OS-II 是一個源碼公開、可移植、可固化、可裁剪、占先式的實時多任務(wù)操作系統(tǒng)。其絕大部分源碼是用 ANSI C 寫的。整個嵌入式系統(tǒng)分為兩大層:硬件層和軟件層。這里主要研究軟件層的架構(gòu)。軟件層主要分為四個部分:實時操作系統(tǒng)內(nèi)核,與處理器相關(guān)部分,與應(yīng)用程序相關(guān)部分,用戶的應(yīng)用程序。移植 μC/OS-II 系統(tǒng)需要修改的文件有:應(yīng)用程序相關(guān)文件: OS_CFG.H INCLUDE.H; 處理器相關(guān)文件: OS_CPU.H、OS_CPU_A.ASM、OS_CPU_C.C。
3.2.1 與處理器相關(guān)的代碼
這是移植中最關(guān)鍵的部分。內(nèi)核將應(yīng)用系統(tǒng)和底層硬件有機的結(jié)合成一個實時系統(tǒng),要 使同一個內(nèi)核能適用于不同的硬件體系,就需要在內(nèi)核和硬件之間有一個中間層,這就是與 處理器相關(guān)的代碼。處理器不同。這部分代碼也不同。我們在移植時需要自己移植這部分代 碼。
a)OS_CPU.H
包括了用#define 定義的與處理器相關(guān)的常量,宏和類型定義,有系統(tǒng)數(shù)據(jù)類型定義,棧 增長方向定義,關(guān)中斷和開中斷定義,系統(tǒng)軟中斷的定義等等。
b)OS_CPU_A.ASM
這部分需要對處理器的寄存器進行操作,所以必須用匯編語言來編寫。包括四個子函數(shù): OSStartHighRdy(),OSCtxSw(),OSIntCtxSw(),OSTickISR()。OSStartHighRdy()在多任務(wù)系統(tǒng)啟動函數(shù) OSStart()中調(diào)用。完成的功能是:設(shè)置系統(tǒng)運行標(biāo)志位 OSRunning = TRUE;將就緒表中最高優(yōu)先級任務(wù)的棧指針 Load 到 SP 中,并強制中斷返回。這樣就緒的最高優(yōu)先級任務(wù)就如同從中斷里返回到運行態(tài)一樣,使得整個系統(tǒng)得以運轉(zhuǎn)。OSCtxSw()在任務(wù)級任 務(wù)切換函數(shù)中調(diào)用的。任務(wù)級切換是通過 SWI 或者 TRAP 人為制造的中斷來實現(xiàn)的。ISR 的向 量地址必須指向 OSCtxSw()。這一中斷完成的功能:保存任務(wù)的環(huán)境變量(主要是寄存器的值, 通過入棧來實現(xiàn)),將當(dāng)前 SP 存入任務(wù) TCB 中,載入就緒最高優(yōu)先級任務(wù)的 SP,恢復(fù)就緒最高優(yōu)先級任務(wù)的環(huán)境變量,中斷返回。這樣就完成了任務(wù)級的切換。OSIntCtxSw()在退出中斷 服務(wù)函數(shù) OSIntExit()中調(diào)用,實現(xiàn)中斷級任務(wù)切換.由于是在中斷里調(diào)用,所以處理器的寄存器入棧工作已經(jīng)做完,就不用作這部分工作了。具體完成的任務(wù);調(diào)整棧指針(因為調(diào)用函數(shù)會使任務(wù)棧結(jié)構(gòu)與系統(tǒng)任務(wù)切換時堆棧標(biāo)準(zhǔn)結(jié)構(gòu)不一致),保存當(dāng)前任務(wù) SP,載入就緒 最高優(yōu)先級任務(wù)的 SP,恢復(fù)就緒最高優(yōu)先級任務(wù)的環(huán)境變量,中斷返回。這樣就完成了中斷級任務(wù)切換。OSTickISR()系統(tǒng)時鐘節(jié)拍中斷服務(wù)函數(shù),這是一個周期性中斷,為內(nèi)核提供
時鐘節(jié)拍。頻率越高系統(tǒng)負荷越重。其周期的大小決定了內(nèi)核所能給應(yīng)用系統(tǒng)提供的最小時 間間隔服務(wù)。一般只限于 ms 級(跟 MCU 有關(guān)),對于要求更加苛刻的任務(wù)需要用戶自己建立中斷來解決.該函數(shù)具體內(nèi)容:保存寄存器(如果硬件自動完成就可以省略),調(diào) OSIntEnter(),調(diào)用 OSTimeTick(),調(diào)用 OSIntExit(),恢復(fù)寄存器,中斷返回。
c)OS_CPU_C.C
該文件中共定義了 6 個函數(shù),但是最重要的是 OSTaskStkInit().其他都是對系統(tǒng)內(nèi)核的擴展 時用的.OSTaskStkInit()是在用戶建立任務(wù)時系統(tǒng)內(nèi)部自己調(diào)用的,對用戶任務(wù)的堆棧進行初始化。使建立好的進入就緒態(tài)任務(wù)的堆棧與系統(tǒng)發(fā)生中斷并且將環(huán)境變量保存完畢時 的棧結(jié)構(gòu)一致。這樣就可以用中斷返回指令使就緒的任務(wù)運行起來。
3.2.2與應(yīng)用相關(guān)的代碼
這部分包括兩個文件:OS_CFG.H, INCLUDES.H。用戶根據(jù)自己的應(yīng)用系統(tǒng)來定制合適 的內(nèi)核服務(wù)功能。OS_CFG.H 來配置內(nèi)核,用戶根據(jù)需要對內(nèi)核進行定制,留下需要的部分,去掉不需要的部分,設(shè)置系統(tǒng)的基本情況。比如系統(tǒng)可提供的最大任務(wù)數(shù)量,是否定制郵箱服務(wù),是否需要系統(tǒng)提供任務(wù)掛起功能,是否提供任務(wù)優(yōu)先級動態(tài)改變功能等等。INCLUDES.H 系統(tǒng)頭文件,整個實時系統(tǒng)程序所需要的文件,包括了內(nèi)核和用戶的頭文件。
3.3用戶圖形接口
雖然 μC/OS-II 操作系統(tǒng)具有很高的實時性,但不像 WINCE、uCLinux 等操作系統(tǒng)那樣 有良好的圖形界面支持。所以,在使用液晶和觸摸屏的情況下需要移植用戶圖形接口程序。這里使用的是 μC/GUI。μC/GUI 是一個軟件模塊集合,通過該模塊可以在我們的嵌入式產(chǎn)品 中加入用戶圖形接口(GUI)。μC/GUI 具有很高的執(zhí)行效率,并且與處理器和 LCD 控制器相 獨立。該模塊可以工作在單任務(wù)或者多任務(wù)環(huán)境,可以支持不同大小的顯示方式。
通過 μC/GUI 我們可以很方便的在液晶屏繪制圖形和界面。如果需要多種字體支持,必 須自己將相應(yīng)的字體字庫加入到 μC/GUI 中。為了避免出現(xiàn)亂碼,盡量使用 GB2312 國標(biāo)字庫。
3.4關(guān)于字庫的兼容性問題
我們國內(nèi)通常使用的漢字字庫是 GB 碼,但國際上使用的是 UNICODE 碼,所以如果數(shù)據(jù)終端使用的是手機、PDA 等移動通信設(shè)備,那么在數(shù)據(jù)發(fā)送前必須進行字碼轉(zhuǎn)換,即 GB 碼 轉(zhuǎn)換為 UNICODE 碼或者 UNICODE 碼轉(zhuǎn)換為 GB 碼。由于 GB 碼與 UNICODE 碼在排列組合上沒有任何規(guī)律,所以通常字碼轉(zhuǎn)換的方法就是 查表法。
4結(jié)束語
基于 ARM9 嵌入式系統(tǒng)的遠程監(jiān)控系統(tǒng)與以往的監(jiān)控系統(tǒng)不同,高性能的處理器芯片大大提高了系統(tǒng)的性能。使監(jiān)控系統(tǒng)能夠工作在比較惡劣的環(huán)境中。并且在設(shè)計上充分考慮到了系統(tǒng)的可擴展性和兼容性問題,實現(xiàn)了本系統(tǒng)與其他系統(tǒng)的無縫連接。以滿足不同工作環(huán) 境的需要。
作者創(chuàng)新觀點:本文設(shè)計的遠程監(jiān)控系統(tǒng)應(yīng)用范圍更廣,更靈活、方便。通過各個功能模塊 的不同組合,可以十分方便快速的應(yīng)用于各個領(lǐng)系域,真正實現(xiàn)智能化、自動化且具有較高 的性價比。
第四篇:基于嵌入式Linux遠程圖像監(jiān)控系統(tǒng)的設(shè)計
本文由wangyong1179貢獻
pdf文檔可能在WAP端瀏覽體驗不佳。建議您優(yōu)先選擇TXT,或下載源文件到本機查看。2010年第 11期 文章編號: 1006 2475(2010)11 0031 04 計 算 機 與 現(xiàn) 代 化 JISUAN JI YU X IAN DA I UA H 總第 183期
基于嵌入式 L inux遠程圖像監(jiān)控系統(tǒng)的設(shè)計
唐人財, 劉連浩
(中南大學(xué)信息科學(xué)與工程學(xué)院, 湖南 長沙 410083)摘要: 系統(tǒng)以嵌入式微處理器 S3C2440和 L inux為核心平臺, 采用 U SB攝像頭作為圖像采集設(shè) 備, 利用 L inux 下視頻設(shè)備 應(yīng)用編程接口 V 4L2和 Q t/Em bedded實現(xiàn)圖像的采集, 實時 顯示和 JPEG 格式 圖片保 存, 利 用 libjpeg 庫來實 現(xiàn)視頻 數(shù)據(jù) 的編解碼以及通過以太網(wǎng)進行遠程傳輸, 實現(xiàn)一種功耗低、可靠性高和低成 本的網(wǎng)絡(luò)圖像采集與傳輸系統(tǒng)設(shè)計方案。關(guān)鍵詞: L inux 圖像采集;Q t/Em bedded V 4L2;S3C2440;;中圖分類號: T P391 41.文獻標(biāo)識碼: A do: 10 3969 /.j issn.1006 2475.2010.11.009 i.D esign of R emote I age M on itoring System Based on Em bedded L inux m TANG R en ca, L IU L ian hao i(Institu te of Infor ation Science and Eng ineer ing, C entra l South U niversity Changsha 410083, China)m , Ab stract T he syste uses e : m mbedded m icroprocesso r S3C2440 and L inux as the core platfo r T he applica tion prog ramm ing in m.te rface V 4L2 and Q t /Embedded library are tw o key techno log ies to realize i age acqu isition, rea l ti e display and JPEG p icture m m sav ing by using U SB ca era T his design of i age acqu isition and trans ission is a low powe r consumption, h igh reliab ility and m.m m inexpensive syste m, wh ich ach ieves encod ing o r decod ing of i ages by lib jpeg library and remo te transm ission o f E therne t m.K ey w ords L inux;i age acquisition;Q t/Em bedded V4L 2;S3C2440 : m;0 引
言
友好圖形操作界面, 實現(xiàn)現(xiàn)場圖像在終端上的實時顯 示和 JPEG圖片的保存。利用 L inux 下 lib jp eg庫編碼 壓縮圖像, 通過以太網(wǎng)接口實時傳輸?shù)揭曨l監(jiān)控中心 PC機上, 通過接收解碼顯示現(xiàn)場圖像, 實現(xiàn)遠程視頻 圖像監(jiān)控功能。系統(tǒng)總體設(shè)計結(jié)構(gòu)如圖 1所示。
隨著嵌入式技術(shù)、多媒體技 術(shù)及網(wǎng)絡(luò)技術(shù) 的發(fā) 展, 基于嵌入式技術(shù)、視頻壓縮編碼技術(shù)和網(wǎng)絡(luò)傳輸 控制技術(shù)的綜合應(yīng)用, 已成為數(shù)字化網(wǎng)絡(luò)視頻采集監(jiān) 控領(lǐng)域的核心 技術(shù)。系統(tǒng)是基于 ARM 9和 L inux平臺的遠程視頻圖像監(jiān)控設(shè)計方案, 整個系統(tǒng)建立在嵌 入式結(jié)構(gòu)上, 實現(xiàn)了高質(zhì)量的視頻圖像采集和實時處 理功能。
系統(tǒng)總體設(shè)計
遠程視頻圖像監(jiān)控系統(tǒng)分為嵌入式視頻監(jiān)控終 端和監(jiān)控中心 PC 機兩部分。嵌入 式視頻監(jiān)控終端 基于嵌入式微處理器 S3C2440和 L inux 核心平臺, 采 用通用 USB 攝像頭捕捉現(xiàn)場圖像, 通過 USB 接口將 數(shù)據(jù)傳輸?shù)?ARM 開發(fā)板上, 由開發(fā)板上的圖像采集 處理模塊進行圖像數(shù)據(jù)處理, 通過 LCD 觸摸屏顯示
圖 1 系統(tǒng)總體設(shè)計框圖 2 系統(tǒng)硬件設(shè)計
系統(tǒng)選取 m in i2440開發(fā)板作為系統(tǒng)設(shè)計的硬件
收稿日期: 2010 06 28 作者簡介: 唐人財(1978), 男, 海南海口人, 中南大學(xué)信息科學(xué)與工程 學(xué)院碩 士研究 生, 研 究方向: 嵌入 式系統(tǒng) 及應(yīng)用;劉連 浩(1959), 男, 湖南 澧縣人, 教授, 博士, 研究方向: 單片機及嵌入式系統(tǒng)。32 計
算
機
與
現(xiàn)
代
化
2010年第 11期
平臺, 監(jiān)控終端硬件由主控模塊和擴展模塊兩部分組 成。主控模塊采用嵌入式微處理器 S3C2440 它是一 , 款基于 ARM 920T 核的 16/ 32位 RS I 結(jié)構(gòu)的嵌入式微 C 處理器, 主頻 400 z 最高可達 533 MH , MH z 片內(nèi)外資源 , 豐富, 具有強大的處理能力, 從硬件上保證了系統(tǒng)快速 的響 應(yīng) 速 度。系 統(tǒng) 存 儲 擴 展 了 128 B 的 NAND M FLAS 64 B的 SDRAM。擴展模塊包括通用 USB攝 H, M 像頭、9000以太網(wǎng)控制器和帶觸摸屏的 NEC3 5英 DM.寸 TFT 真彩液晶屏。主控模塊通過 USB 接口電路、LCD接口電路、以太網(wǎng)接口電路與擴展模塊相連接構(gòu) 成整個硬件系統(tǒng)。系統(tǒng)硬件結(jié)構(gòu)如圖 2所示。
配置內(nèi)核編譯選項時把 UVC 驅(qū)動編譯進內(nèi)核。UVC 不是攝像頭的品牌或型號, 它是一種視頻設(shè)備的技術(shù) 規(guī)范, 全稱為 U SB V ideo C lass 這是一個為 USB 視頻 , 設(shè)備提供驅(qū)動的開源項目。UVC 驅(qū)動支持 V 4L 2應(yīng) 用編程接口, 系統(tǒng)設(shè)計中使用的 USB 攝像頭為 T op Speed U SB 2 0 C a era UVC 驅(qū)動提供支持。.m , 3 3 V4L2圖像采集程序的實現(xiàn).V4L2 是 V id eo For L inux Two 的 簡稱, 是 V id eo Fo r L in ux AP I的第二版本, 是 L inux 下開發(fā)視頻設(shè)備 程序的接口標(biāo)準(zhǔn), 使用分層方法對所有視頻設(shè)備的驅(qū) 動和應(yīng)用編 程提 供一 套完備 的接 口規(guī) 范?;?V4L 2標(biāo)準(zhǔn), 視頻圖像采集處理流程如圖 3所示。[ 3] 圖 2 系統(tǒng)硬件結(jié)構(gòu)框圖 3 系統(tǒng)軟件設(shè)計
1 系統(tǒng)軟件平臺.系統(tǒng)軟件平臺以嵌 入式 L inux 和 Q t/Em bedded 為基礎(chǔ), 具體構(gòu)建步驟為: 在宿主機上建立交叉編譯 環(huán)境, 完成引導(dǎo)加載程序 v ivi的編譯移植, 編譯移植 linux 2 6 29 內(nèi)核, 包括 DM 9000 網(wǎng)卡、..通用 USB 攝 像頭和 LCD 觸摸 屏等驅(qū)動 的移植, 基于 busybox 1.13.3構(gòu)建文件系統(tǒng)?;谙到y(tǒng)設(shè)計的需求, 還要完 成 QTE 4 5 3圖形庫與 tslib 1 4觸摸屏支持庫以及...lib jp eg庫向開發(fā)板的移植。lib jp eg 庫主要用于實現(xiàn) 內(nèi)存中圖像數(shù)據(jù)的編解碼, QTE 4 5 3是面向嵌入式..系統(tǒng)的 Q t版本, 采用了 fram ebuffer作為底層圖形接 口, 采用 C ++ 封裝, 具有豐富的控件資源和良好的可 移植性, 系 統(tǒng)中的應(yīng) 用程序 以及環(huán) 境都是 基于 Q t / Em bedded來開發(fā)的。最終形成基于 ARM 的嵌入式 [ 1 2] L inux 操作系統(tǒng)平臺 , 在系統(tǒng)軟件平臺上可進行嵌 入式應(yīng)用程序的開發(fā)。限于篇幅, 系統(tǒng)軟件平臺的構(gòu) 建在此只作簡單介紹。3 2 嵌入式 L inux下 USB 攝像頭驅(qū)動.為了使用 L in ux下 V4L2應(yīng)用編程接口編寫圖像 采集應(yīng)用程序, 在開發(fā)板上移植版本為 linux 2 6 29..的內(nèi)核, 此內(nèi)核版本支持 UVC 驅(qū)動 USB 攝像頭, 在圖 3 視頻圖像采集處理流程圖
3 1 視頻設(shè)備結(jié)構(gòu)體初始化..程序中定義一個視頻設(shè)備的數(shù)據(jù)結(jié)構(gòu) struct vde vice 結(jié)構(gòu)體的成員變量是對視頻設(shè)備和圖像屬性的 , 描述。
init_ vdata(struct vdevice * vdev , char * dev _na e un m , signed int w idth unsigned int he ight int fo r at);, , m 通過參數(shù)完成對視頻設(shè)備結(jié)構(gòu)體變量 vdev的賦 值初始化。視頻設(shè)備名稱 dev_na e 視頻圖像寬度 m , w idth 視頻圖像高度 heigh, 視頻圖像格式 for a, 以 , t m t 及申請分配兩個內(nèi)存緩沖區(qū) fram ebuffer和 rgbbu ffer , 分別為采集到的一幀圖像 數(shù)據(jù)緩沖區(qū)和 24位 RGB 圖像數(shù)據(jù)緩沖區(qū)。3 3 2 視頻設(shè)備初始化..函數(shù) in it_vdev(struct vdev ice * vdev)根據(jù)參數(shù)
2010年第 11期
唐人財?shù)? 基于嵌入式 L inux遠程圖像監(jiān)控系統(tǒng)的 設(shè)計
vdev傳遞的值對視頻設(shè)備進行初始化, 這是進行視頻 圖像采集前必須完成的工作。視頻設(shè)備結(jié)構(gòu)體 vdev 包含了要設(shè)置的設(shè)備信息, 初始化視頻設(shè)備到適合的 圖像采集工作方式。視頻設(shè)備初始化具體實現(xiàn)如下:(1)打開攝像頭設(shè)備文件。利用系統(tǒng)調(diào)用 函數(shù) vdev > fd = open(vdev > dev_nam e O_RDWR)實現(xiàn), 該函數(shù)的功能是打開參 , 數(shù) vdev > dev_nam e指定的設(shè)備, 對于攝像頭用設(shè)備 文件名 /dev /v ideo0 表示, vdev > fd 是設(shè)備打開后 返回的文件描述符, 在程序中可使用它來對設(shè)備文件 進行操作。(2)查詢設(shè)備信息和設(shè)置采集屬性。在 L inux 編程中, io ct l函數(shù)是設(shè)備驅(qū)動程序中對 設(shè)備的 I /O 進行管理的函數(shù), 用戶程序一般使用 ioctl 函數(shù)來對設(shè)備的一些特性進行控制。調(diào)用帶 V ID I C _ O QUERYCAP命令參數(shù)的 io ct l函 數(shù)來取得設(shè)備文件的屬性參數(shù), 并存儲于 struct v4l2_ capab ility 結(jié)構(gòu)體變量 vdev > cap 中, 然后可 逐項驗 證 vdev > cap的屬性, 看設(shè)備是否符合采集的要求。
ioctl(vdev > fd V ID I _QU ERYCAP, & vdev > cap);, OC m em 間建立映射, 調(diào)用帶 V I I C _QBUF 命令參數(shù)的 DO ioct l函數(shù)將所申請的設(shè)備緩存加入等待輸入緩存隊 列, 內(nèi)存映射初始化完成。3 3 3 采集圖像數(shù)據(jù)..函數(shù) capture(struct vdevice * vdev)完成一幀視 頻圖像數(shù)據(jù)采集, 采集到的視頻圖像數(shù)據(jù)存放到設(shè)備 緩存 vdev > bu f中, 通過映射的程序內(nèi)存空間可處理 視頻圖像, 函數(shù)調(diào)用成功返回視頻設(shè)備采集的圖像數(shù) 據(jù)大小。在設(shè)備緩存加入等待輸入隊列后, 調(diào)用帶 VIDI C_ O STREAMON命令參數(shù)的 ioctl函數(shù)使能視頻設(shè)備。
type= V 4L2_BU F _TYPE_V IDEO _CA PTURE;ioctl(vdev > fd V ID I _STREAM ON, & type);, OC 圖像數(shù)據(jù)緩存采用 F IFO 的方式, 緩存隊列將已 采集到視頻圖像數(shù)據(jù)的設(shè)備緩存出隊列, 此時與之映 射的內(nèi)存空間就存儲了采集到的視頻圖像數(shù)據(jù), 處理 完畢重新使設(shè)備緩存加入隊列。這個過程需要調(diào)用 兩次 io ctl函數(shù)。
ioctl(vdev > fd V ID I _DQBUF, & vdev > buf);, OC ioctl(vdev > fd V ID I _QBUF, & vdev > buf);, OC 接著設(shè)置視頻圖像采集格式, 可根據(jù)需求修改攝 像頭緩沖區(qū)中圖像參數(shù)如分辨率、格式等。具體方法 為先給 struct v4 l2 _for at結(jié)構(gòu)體變量 vdev > f t分量 m m 賦新值, 再調(diào)用 帶 V ID I C _S _FMT 命令參數(shù) 的 ioctl O 函數(shù)完成采集屬性的設(shè)置。ioctl(vdev > fd V ID I _S_FM T, & vdev > fm t);, OC 調(diào)用帶 VIDIOC_DQBUF 命令參數(shù)的 ioct l函數(shù)使 設(shè)備緩存出隊列, 利用系統(tǒng)函數(shù) m em cpy 將所采集的 一幀視頻圖像數(shù)據(jù)拷貝的所分配的內(nèi)存空間 vdev > fram ebuffer以 方 便 后 續(xù) 圖 像 處 理。然 后 調(diào) 用 帶 V IDI C _ O QBUF 命令參數(shù)的 io ctl函數(shù)把設(shè)備緩存重新 加入輸入緩存隊列, 至此完成一幀視頻圖像數(shù)據(jù)采集。系統(tǒng)采用的攝像頭初始化為 YUV422圖像格式, 圖像要在 LCD 上顯示, 必須進行圖像數(shù)據(jù)格式轉(zhuǎn)換 處理, 將 YUV422格式轉(zhuǎn)換為 RGB24格式。
yuv2 rgb24(vdev > fra ebuffer vdev > rgbbuffer vdev > m , , w idth vdev > he ight);,(3)實現(xiàn)內(nèi)存映射。V4L2捕獲的數(shù)據(jù)是存放在內(nèi)核空間的, 用戶不 能直接訪問該 段內(nèi)存, 必須通 過某些手段來 轉(zhuǎn)換地 址。系統(tǒng)采用 mm ap內(nèi)存映射方式, 把設(shè)備內(nèi)存映射 到用戶程序內(nèi)存空間, 直接處理設(shè)備內(nèi)存, 加速了 I/ O 訪問。主要函數(shù)調(diào)用如下: ioctl(vdev > fd V ID I _REQBUF S & vdev > rbuf);, OC , ioctl(vdev > fd V ID I _QU ERYBUF, & vdev > buf);, OC vdev > m e [ i] = mm ap(0, vdev > bu.length, PROT _ m f READ, M AP _SHARED, vdev > fd vdev > bu.f m.offset);, ioctl(vdev > fd V ID I _QBUF, & vdev > buf);, OC 函數(shù) yuv2rgb24 將 vdev > fram ebuffer指定 內(nèi)存 中的 YUV 422圖像格式轉(zhuǎn)換為 RGB24格式, 并存放 到 vdev > rgbbuffer指定內(nèi)存中, 函數(shù)實現(xiàn)在 此不作 詳細闡述。3 4 圖像數(shù)據(jù)的 JPEG 編解碼.網(wǎng)絡(luò)傳輸前對原始圖像數(shù)據(jù)進行壓縮處理, 利用 IJG(Independent JPEG G roup)提供的 lib jp eg 庫進行 [ 4 6] 圖像編解碼。在開源的 libjpeg 庫中, 函數(shù)必須從 文件或其他 設(shè)備流中讀取數(shù)據(jù), 再將壓縮數(shù) 據(jù)存成 JPEG 文件, 增加了不必要的文件 I/O 操作, 不利于網(wǎng) 絡(luò)實時傳輸圖像。為解決 該問題, 改寫 了 lib jp eg 庫 內(nèi) jdatasrc c和 jd atads.c兩個源代碼文件, 設(shè)計自定.t 義的結(jié)構(gòu)體 struct m y_dest_ gr和 struct m y_src_ g r m m , 增加自定義圖像數(shù)據(jù)緩存地址變量、已處理圖像數(shù)據(jù)
具體實現(xiàn): 首先, 對 struct v4 l2 _ requestbuffers結(jié) 構(gòu)體變 量 vdev > rbuf 分 量 賦 值, 調(diào) 用 帶 V I I C _ DO REQBUFS命令參數(shù)的 io ctl函 數(shù)分配自定義 數(shù)量的 設(shè)備緩存;然后, 在循環(huán)程序結(jié)構(gòu)中對申請分配的設(shè) 備緩存 進行映射, 調(diào)用帶 V IDIOC _QUERYBUF 命令 參數(shù)的 ioct l函數(shù)獲得設(shè)備緩存偏移量和緩存大小并 存于 struct v4l2_buffer結(jié)構(gòu)體變量 vdev > bu f中, 調(diào) 用 mm ap在設(shè)備 緩存 和程序 內(nèi)存 空間 變量 vdev > 34 計
算
機
與
現(xiàn)
代
化
2010年第 11期
的偏移量變量和圖像大小變量, 并改寫 lib jp eg庫相關(guān) 操作函數(shù), 封裝相關(guān)的數(shù)據(jù)結(jié)構(gòu)和成員函數(shù)為自定義 的圖像編解碼類 MY JPEG。實現(xiàn)輸入數(shù)據(jù)和輸出數(shù)據(jù) 的重定向到內(nèi)存, 利用開源的 libjpeg 庫在內(nèi)存中實現(xiàn) 圖像的壓縮和解壓縮。參照 lib jpeg 庫中編解碼過程, 實現(xiàn)了類 MYJPEG中壓縮與解壓縮成員函數(shù)。
w r ite e(unsigned cha r * m m char* m quality);/ /圖像數(shù)據(jù)壓縮處理 readm e(uns igned char indata int pSize unsigned char m * , , * outdata);/ /圖像 數(shù)據(jù)解壓縮處理 outdata int * pS ize unsigned , , indata unsigned int mw idth, unsigned int mhe ight int , , 壓縮函數(shù)中參數(shù)可以靈活對壓縮圖像分辨率大 小和質(zhì)量屬性進行設(shè)置, 參數(shù) pS ize 返回壓縮后圖像 的大小。而解壓縮圖像時, 壓縮圖像的大小則通過參 數(shù) pSize傳入。3 5 網(wǎng)絡(luò)傳輸視頻圖像數(shù)據(jù).UDP是非連接的、不可靠的、傳遞數(shù)據(jù)報的傳輸 協(xié)議, 提供了一種高效無連接的服務(wù)。由于 UDP 不 提供數(shù)據(jù)的可靠性保證, 使其具有較少的傳輸時延, 很適合實時性高而不要求數(shù)據(jù)絕對可靠的場合。視 頻圖像數(shù)據(jù)實時性強, 數(shù)據(jù)量大, 所以系統(tǒng)設(shè)計采用 此協(xié)議傳輸數(shù)據(jù)。通過 L inux 下的 socket套 接字編 [ 7] [ 8 11] 程 , 實現(xiàn)視頻圖像的網(wǎng)絡(luò)傳輸。利用 C語言中 的多線程編程, 將網(wǎng)絡(luò)通信置于一個工作線程, 避免 了 GU I應(yīng)用程序因網(wǎng)絡(luò)阻塞等待操作而使圖形用戶 界面凍結(jié)無法響應(yīng)的問題。系統(tǒng)設(shè)計時結(jié)合使用互 [ 12] 斥鎖和條件變量對各個工作線程進行同步。嵌入式視頻監(jiān)控終端上采集顯示程序作為主線 程, 同時創(chuàng)建一個視頻圖像發(fā)送工作 線程 deal_send(), 用來處理與視頻監(jiān)控中心 PC間的網(wǎng)絡(luò)通信。具 體過程描述如 下: 調(diào)用 socket()函數(shù)創(chuàng)建一個 UDP 數(shù)據(jù)報類型的套接字, 接著調(diào)用 bind()函數(shù), 給套接 字綁定一個端口。視頻圖像發(fā)送工作線程調(diào)用 recv from()函數(shù)在指定的端口上阻塞等待客戶端發(fā)送來 的 UDP數(shù)據(jù)報, 接收到服務(wù)請求, 處理該服務(wù)請求并 通過 sendto()函數(shù)將處理結(jié)果返回給 PC 端。在監(jiān)控中心 PC 端創(chuàng)建解碼顯示視頻圖像工作 線程, 并創(chuàng) 建一個視 頻圖像接 收工 作線程 deal _re ce ive(), 用來處理與視頻監(jiān)控終端的網(wǎng)絡(luò)通 信。具 體過程描述如 下: 調(diào)用 socket()函數(shù)創(chuàng)建一個 UDP 數(shù)據(jù)報類型的套接字, 接著調(diào)用 bind()函數(shù), 給套接 字綁定一個端口。調(diào)用 sendto()函數(shù)向監(jiān)控終端發(fā) 送服務(wù)請求報文, 調(diào)用 recv from()函數(shù)等待并接收服 務(wù)應(yīng)答報文。繼續(xù)定時發(fā)送服務(wù)請求直至通信終止。具體網(wǎng)絡(luò)傳輸?shù)耐ㄐ胚^程如圖 4所示。
圖 4 網(wǎng)絡(luò)傳輸通信流程 4 視頻圖像實時顯示
系統(tǒng)是一個實時視頻圖像采集與傳輸系統(tǒng), 采集 的現(xiàn)場視頻圖像在嵌入式視頻監(jiān)控終端和監(jiān)控中心 PC上實時顯示與保存。只要以較快速度顯示變化的 圖片就可以實時顯示現(xiàn)場情況, 系統(tǒng)中利用定時器每 40m s采集一幀視頻圖像。該遠程圖像監(jiān)控系統(tǒng)界面 是通過 QT 來實現(xiàn)的, 在強大的 QT 圖形庫的支持下, [ 13 14 ] 可快速開發(fā)出友好的圖形用戶界面。利用幾個 相關(guān) Q t圖形類 Q I age QP ixm ap和 QL abe,l 實現(xiàn)視頻 m、圖像的顯示和 JPEG格式圖片保存。5 結(jié)束語
系統(tǒng)設(shè)計方案 是一種基于嵌入式 L inux 的圖像 采集和傳輸系統(tǒng), 本文詳細介紹了 V4L 2應(yīng)用編程接 口進行 USB 攝像頭視頻圖像采集, 基于 QTE 圖形庫 實時顯示視頻圖像, 利用開源的 lib jp eg 庫實現(xiàn)圖像 的 JPEG 編解碼, 通過網(wǎng)絡(luò)實時傳輸進行遠程監(jiān)控。整個系統(tǒng)數(shù)字化、網(wǎng)絡(luò)化程度高, 實時性好、穩(wěn)定可靠 且圖像質(zhì)量較好。經(jīng)實驗測試, 系統(tǒng)很好地實現(xiàn)對現(xiàn) 場視頻圖像的監(jiān)控。在該系統(tǒng)的基礎(chǔ)上, 可進一步進 行二次擴展開發(fā), 以便應(yīng)用在工業(yè)現(xiàn)場控制、遠程指 揮監(jiān)控系統(tǒng)、可視電話等諸多領(lǐng)域。
參考文獻: [ 1] [ 2] [ 3] 趙敏, 楊恢先, 湯安平.基于 S3C2440的嵌入式 L inux 系統(tǒng) 移植的研究與實現(xiàn) [ J].電子器件, 2008 31(6): 1947 1950 ,.鄭靈翔.嵌入式 L inux 系統(tǒng)設(shè)計 [M ].北京: 北京 航空航 天大學(xué)出 版社, 2008.M ichae lH Schi ek V ideo for L inux Tw o AP I Specifica tion m.[ EB /OL ].http: / /v4l2spec bytesex org /v4l2spec / v4 l2...pd, 2008 03 04.f(下轉(zhuǎn)第 38頁)38 計
算
機
與
現(xiàn)
代
化 2010年第 11期
目標(biāo)圖像中變成 A!B!因為向前移動了, 所以物體顯 , 得比原來要大些。放大的過程應(yīng) 該是: 逐步 放大左 圖, 并適當(dāng)?shù)亟厝》糯髨D中跟原來一樣大小的一塊矩 形區(qū)域, 作為一張新的過渡圖。至于放大的倍數(shù), 作 [ 8] 如下考慮 : 假設(shè) A!的長度是 AB的 L 倍, 兩幅圖像之間插入 B!n張過渡圖, 則每一張過渡圖之間的放大的倍數(shù)是(L 1)/(n+ 1)。
速度, 內(nèi)存優(yōu)化后系統(tǒng)占用資源更少, 由于不用頻繁 申請內(nèi)存和 釋放內(nèi)存, 減少 了漏洞和錯誤發(fā) 生的幾 率;采用縮放的方法改進了行進間的瀏覽效果, 提高 了虛擬漫游的沉浸感, 具有一定的實用意義。
參考文獻: [ 1] 石云飛, 王永平, 李龍 濟, 等.基于 模板匹配 的柱面全景 圖拼接優(yōu)化算法 [ J].工程圖學(xué)學(xué)報, 2005(1): 96 99.[ 2] [ 3] [ 4] 華順剛, 曾令宜, 歐宗瑛.一種快速的柱面全景拼接算法 [ J].數(shù)據(jù)采集與處理, 2006, 21(4): 435 436.潘華偉, 鄒北驥.一種圓 柱形全 景圖生 成新算法 及其實 現(xiàn) [ J].計算機工程與科學(xué), 2003, 25(6): 13 16.吳憲祥, 郭寶龍, 王娟.基于相位相關(guān)的柱面全景圖像自 動拼接算法 [ J].光學(xué)學(xué)報, 2009, 29(7): 1824 1829.[ 5] 鐘力, 張茂 軍, 孫立 峰, 等.360度柱 面全 景圖 像生 成算 法及其實現(xiàn) [ J].小型 微型 計算 機系 統(tǒng), 1999 20(12): , 899 900.[ 6] [ 7] [ 8] [ 9] 趙 輝, 陳 輝, 于 泓.一 種 改 進 的 全 景 圖 自 動拼 接 算 法 [ J].中國圖象圖形學(xué)報, 2007, 12(2): 336 342.阮 秋 琦.數(shù) 字 圖 像 處 理 [ M ].北 京: 電 子 工 業(yè) 出 版 社, 2001.董 士 海.虛 擬 現(xiàn) 實 的 未 來應(yīng) 用 [ N ].中 國 計 算 機 報, 2001 02 21.崔漢國, 曹茂春, 歐陽清.柱面全景圖像拼合算法研究數(shù) 字圖像處理 [ J].計算機工程, 2004, 30(6): 158 159.[ 10] 趙萬金, 龔聲蓉, 劉全, 等.一種用于 圖像拼 接的 圖像序 列自 動 排 序 算 法 [ J].中 國 圖 象 圖 形 學(xué) 報, 2007, 12(10): 1861 1864.[ 11] 張茂春.虛擬現(xiàn)實系統(tǒng) [M ].北京: 科學(xué)出版社, 2001.[ 12] 明德烈, 柳健, 田金文.二維平面內(nèi)的增強現(xiàn)實虛實配準(zhǔn) 問題研究 [ J].紅外與激光工程, 2001, 30(6): 410 413.[ 13] 蔡勇, 劉學(xué)惠, 吳恩華.基于圖像繪制的虛擬現(xiàn)實系統(tǒng)環(huán) 境 [ J].軟件學(xué)報, 1997.8(10): 721 728.[ 14] 喻罡.基于圖像的虛 擬場景 構(gòu)造 和漫 游系統(tǒng) 研究 [ D ].西安: 西安理工大學(xué), 2002.圖 6 放大前后的線段
在放大后的圖像中央截取一塊跟原圖像大小相 同的區(qū)域, 然而由于拍攝的過程中, 一系列的過渡場 景不可能嚴(yán)格地在一條直線上, 也就是說相鄰的中間 圖像的中心位置并不重合。如果不加任何處理, 在過 渡的時候?qū)嶋H效果并不平滑, 在到達下一張中間圖像 的時候仍然會有跳躍的感覺。解決的方法是, 預(yù)先計 算 AB的中點在經(jīng)過放大和截取后, 在最終目標(biāo)圖中 的位置 p(x y), 對比 A!B!的中點 p!(x!y!), 得出 ,!, ? x = x!-x ? y = y!-y 每次 放大后截 取時, 補償 , , ? x /(n+ 1)和 ? y /(n+ 1), 使圖像中心逐步向目標(biāo) 圖像的中心靠攏。
結(jié)束語
本文首先研究了魚眼圖像的拼接算法, 在提出基 于亮度差的魚眼圖像重疊區(qū)域的確定方法和采用線性 補償光強的方法進行圖像的融合處理的基礎(chǔ)上, 實現(xiàn) 了利用兩幅魚眼圖像生成空戰(zhàn)環(huán)境球面虛擬空間, 然 后探討了基于球面虛擬圖的多視點漫游問題。分析 可知: 利用反投影模板技術(shù)有效地提高全景圖瀏覽的
(上接第 34頁)[ 4] 汪慶年, 孫麗兵, 李桂 勇.一種基于 ARM 的視 頻監(jiān)控 系 統(tǒng)的設(shè)計 [ J].微計算機信息, 2009 25(11): 158 160., [ 5] [ 6] [ 7] [ 8] [ 9] 汪慶年, 張廣棟.嵌入 式網(wǎng)絡(luò) 視頻 監(jiān)控系 統(tǒng)的 設(shè)計與 實 現(xiàn) [ J].電力電子, 2008(5): 47 49.趙文敏, 余文芳, 邢建國.一種嵌入式網(wǎng) 絡(luò)視頻監(jiān)控 系統(tǒng) 的設(shè)計 [ J].計算機應(yīng)用與軟件, 2009 26(8): 67 68 81., , 郭 東升, 田秀 華.L inux 環(huán)境 下基 于 Socke t的網(wǎng) 絡(luò)通 信 [ J].軟件導(dǎo)刊, 2009, 18(1): 116 118.楊暉, 胡永健, 林志泉.基于 L inux和 S3C2410嵌入式圖像傳 輸系統(tǒng)設(shè)計 [ J].微計算機信息, 2007 23(8): 20 24., 孟超, 張曦煌.基于嵌 入式系 統(tǒng)的 圖像采 集與 傳輸設(shè) 計 [ J].計算機工程與設(shè)計, 2008 29(17): 4414 4416 ,.[ 10] 童 永 清.L inuxC 編 程 實 戰(zhàn) [ M ].北 京: 人 民 郵 電 出 版 社, 2008.[ 11] 王遠洋, 周淵平, 郭 煥麗.L inux 下基 于 Socket多線 程并 發(fā)通信的實現(xiàn) [ J].微計算機信息, 2009, 25(15): 70 72.[ 12] 楊水 清, 張 劍, 施云飛, 等.ARM 嵌 入式 L inux系 統(tǒng)開發(fā) 技術(shù)詳解 [M ].北京: 電子工業(yè)出版社, 2008.[ 13] 蔡志明, 盧傳富, 李立夏.精通 Q t4 編程 [ M ].北京: 電子 工業(yè)出版社, 2008.[ 14] 陳 鯤, 陳 云 秋, 劉 信 新.基 于 Q t/Embedded 的 嵌 入 式 L inux應(yīng)用程序的 設(shè)計 [ J].計算機與 數(shù)字工程, 2009, 37(1): 156 161.1
第五篇:基于ARM的嵌入式智能家居遠程監(jiān)控系統(tǒng)設(shè)計.
摘要
科技改變生活,科技為人類帶來了更舒適更方便的解決方案,智能家居是現(xiàn)代化科技的體現(xiàn),智能家居也正是在應(yīng)人們需求下而產(chǎn)生的。
本設(shè)計的內(nèi)容是設(shè)計一個基于ARM的智能家居遠程監(jiān)控系統(tǒng)。整個硬件控制系統(tǒng)有以下模塊:控制主機STM32F103VET6、無線短信收發(fā)模塊GPRS(遠程監(jiān)控的主要模塊)、用于顯示的LCD1602液晶顯示屏(顯示測量出來的溫濕度值)、測量外部環(huán)境溫濕度的溫濕度傳感器DHT11,異步電機28BYJ-48(模擬控制窗簾收放用到的控制器)、蜂鳴器(報警用)、LED燈(模擬室內(nèi)各種燈)、繼電器(模擬室內(nèi)各種電器的控制開關(guān))。
溫濕度傳感器測量出來的溫濕度數(shù)值通過LCD1602來顯示,當(dāng)超過設(shè)定的閾值將通過GPRS模塊發(fā)送警報短信到指定的手機上,同時也可以由手機發(fā)送特定短信到GPRS上控制LED燈的亮滅、控制28BJY-48步進電機的正反轉(zhuǎn)、讀取當(dāng)前室內(nèi)的溫濕度并發(fā)送回手機上,實現(xiàn)遠程監(jiān)控的。關(guān)鍵詞 智能家居;遠程監(jiān)控;GPRS;ARM Abstract Technology has changed life, science and technology has brought to mankind more comfortable and more convenient solution, smart home is a manifestation of modern technology, smart home is also in demand should be generated by people.The content of this thesis is to design a remote monitoring system of smart home based on ARM.The entire hardware control system has the following modules: the host controller STM32F103VET6, wireless SMS transceiver module GPRS(the main module of the remote monitoring), LCD display(to display the temperature and humidity measured values), temperature and humidity sensor,DHT11, be used to measure the external environment temperature and humidity, asynchronous motor 28BYJ-48(analog controller curtain used), a buzzer(alarm), LED light(simulated indoor lamps), a relay(control switch simulation of indoor each kind of electric appliance).The temperature and humidity value measured by the temperature and humidity sensor and displayed by LCD1602, when more than a set threshold an alarm SMS will be sent by GPRS module to the designated mobile phone, but also can be caused by the mobile phone to send a specific message to the GPRS to control LED light, 28BJY-48 stepper motor reversible, read the current indoor temperature and humidity and sent back to the mobile phone.Keywords smart home;remote monitoring;GPRS;ARM II
目 錄
摘要.......................................................................................................................I Abstract...............................................................................................................II 第1章 緒論........................................................................................................1 1.1 課題背景..................................................................................................1 1.2國外的發(fā)展動態(tài).......................................................................................1 1.3 國內(nèi)的發(fā)展動態(tài)......................................................................................2 1.4 本文各章主要安排..................................................................................2 第2章 各個硬件模塊的說明............................................................................3 2.1 主控模塊..................................................................................................3 2.1.1 STM32的系統(tǒng)架構(gòu)............................................................................3 2.1.2 STM32F103VET6的內(nèi)部資源..........................................................4 2.2短信收發(fā)模塊GPRS................................................................................7 2.3溫濕度測量模塊.......................................................................................8 2.3.1 DHT11的引腳說明............................................................................8 2.3.2 DHT11的工作原理............................................................................9 2.4 溫濕度液晶顯示模塊LCD1602............................................................11 2.4.1 LCD1602的管腳說明......................................................................12 2.4.2 LCD1602的特性..............................................................................12 2.4.3 LCD1602的基本指令......................................................................12 2.5 收放窗簾模塊步進電機28BJY-48.......................................................14 2.5.1 步進電機的工作原理......................................................................14 2.5.2 步進電機的引腳接線......................................................................14 2.6 本章小結(jié)................................................................................................15 第3章 硬件系統(tǒng)的設(shè)計..................................................................................16 3.1 直流穩(wěn)壓電源的設(shè)計............................................................................16 3.2 STM32最小系統(tǒng)的設(shè)計........................................................................17 3.2.1電源的供電方案...............................................................................17 3.2.2 晶振電路..........................................................................................17 3.2.3 復(fù)位電路..........................................................................................18 III 3.2.4 串口驅(qū)動電路...................................................................................18 3.3 步進電機、繼電器驅(qū)動電路設(shè)計.........................................................19 3.4 本章小結(jié).................................................................................................20
第4章 軟件程序的設(shè)計...................................................................................21 4.1 主函數(shù)及TIM2中斷服務(wù)函數(shù)設(shè)計......................................................21 4.1.1 主函數(shù)及TIM2中斷服務(wù)函數(shù)程序代碼........................................21 4.1.2 主函數(shù)及TIM2中斷服務(wù)函數(shù)程序流程圖....................................23 4.2 GPRS來信中斷處理函數(shù)設(shè)計...............................................................24 來信中斷處理函數(shù)程序代碼.................................................24 4.2.2 GPRS來信中斷處理流程圖.............................................................26 4.3 GPRS的AT指令....................................................................................27 4.3.1 本設(shè)計中用到的AT指令................................................................27 4.3.2 PDU編碼...........................................................................................27 4.3.3 AT指令的使用程序設(shè)計..................................................................29 4.4本章小結(jié)..................................................................................................31 結(jié)論.....................................................................................................................32 參考文獻.............................................................................................................33 致謝.....................................................................................................................35 附錄一 整個硬件系統(tǒng)電路圖...........................................................................36 附錄二 開題報告說明.......................................................................................37 附錄三 文獻綜述...............................................................................................38 附錄四 中期報告...............................................................................................39 附錄五 外文文獻及其翻譯...............................................................................40 附錄六 完整的程序代碼...................................................................................41 4.2.1 GPRS IV 第1章 緒論 第1章 緒論 1.1 課題背景
隨著科技的提高,經(jīng)濟的發(fā)展,人們的物質(zhì)生活水平的提高,對家居環(huán)境的要求也越來越高,作為家居智能化的核心部分——智能家居控制系統(tǒng)也越發(fā)顯得重要。智能家居控制器可以為系統(tǒng)提供智能控制方案,使住戶的控制更便捷,更高效,更能為家庭的日?;顒庸?jié)約不必要的能耗[1]。而且在現(xiàn)在這個注重綠色環(huán)保的世界里,智能的為住戶控制好空氣的濕度、溫度等,檢查分析空氣成分,讓住戶安心入住。家居智能化控制的開發(fā)和建設(shè)是未來國家、經(jīng)濟發(fā)展的必然趨勢。在科學(xué)技術(shù)日新月異的今天,智能家居產(chǎn)品也在不斷發(fā)展尋求突破,用智能的方式緩和、解決社會矛盾,這是本課題的目的及意義所在。1.2國外的發(fā)展動態(tài)
1984年,世界上第一座智能建筑在美國的康涅迪格州建成,這座意義不一般的智能建筑是對一座舊式大樓在一定程度上的改造而完成的。它只是采用計算機系統(tǒng)對大樓的照明、空調(diào)、電梯等設(shè)備進行監(jiān)控,并提供情報資料、語音通信、電子郵件等方面的信息服務(wù)。2000年,新加坡大約有5000戶家庭采用了這種家庭智能家居化系統(tǒng),而與此同時,美國采用這種智能家居化系統(tǒng)的用戶已高達4萬戶。目前,在國外的家庭智能化系統(tǒng)技術(shù)己經(jīng)越來越成熟,預(yù)計今后,越來越多的新房將會安裝具有一定的“智能家居化”功能的系統(tǒng)。于此同時,由于科學(xué)技術(shù)的發(fā)展日益標(biāo)準(zhǔn)化,這些新型智能家居系統(tǒng)將會比世界首富比爾.蓋茨耗資六千萬美元的高端智能家居別墅便宜得多。
在家居智能化系統(tǒng)研發(fā)方面,美國及一些西方國家一直處于領(lǐng)先地位。近年來,以摩托羅拉公司及美國微軟公司等為首的一些國外知名企業(yè),先后加入到智能家居系統(tǒng)的研發(fā)中。比如:摩托羅拉公司開發(fā)出來的“居所之門”、微軟公司開發(fā)出來的“夢幻之家”、IBM公司開發(fā)出來的“家庭主任”等都以日趨成穩(wěn)的技術(shù)霸占家居市場。此外,亞洲國家日本、韓國、新加坡等國 的領(lǐng)頭大企業(yè)也紛紛致力于家居智能化的研發(fā),對家居市場更是躍躍欲試。1.3 國內(nèi)的發(fā)展動態(tài)
1990年后,我國的智能家居化住宅小區(qū)日益興起。我國的智能家居化住宅建筑最早起于廣州、深圳和上海等沿海發(fā)達城市,并慢慢地向內(nèi)陸發(fā)展。在1997年香港回歸時,上海的中皇廣場在建設(shè)部“97跨世紀(jì)住宅小區(qū)案競賽活動”中被建設(shè)部科技委員會評為全國首家“智能住宅示范工程”,從此揭開了我國智能家居住宅小區(qū)發(fā)展的序幕。1999年,建設(shè)部住宅產(chǎn)業(yè)化辦公室、建設(shè)部勘察設(shè)計司聯(lián)合組織實施了全國住宅小區(qū)智能化技術(shù)示范工程,這也標(biāo)志著我國的智能家居進入了一個新階段。隨著信息化技術(shù)日益普,國家經(jīng)貿(mào)委領(lǐng)頭成立了家庭信息網(wǎng)絡(luò)技術(shù)委員會,同時信息網(wǎng)絡(luò)技術(shù)體系研究及產(chǎn)品開發(fā)已經(jīng)被列為了國家技術(shù)創(chuàng)新的重點專項計劃。根據(jù)建設(shè)部的要求,截止今年,大中城市中50%的住宅要實現(xiàn)智能化[2]。
我國的智能家居建設(shè)相對于國外起步比較晚,尚未形成一定的國家標(biāo)準(zhǔn)。國內(nèi)各大硬、軟件企業(yè)機構(gòu)正在積極的研發(fā)更為符合市場的智能家居化產(chǎn)品,以解決我國當(dāng)前智能化設(shè)備使用復(fù)雜、產(chǎn)品價格昂貴及實用性差等缺點,而技術(shù)創(chuàng)新能力也逐漸向國際先進水平靠攏,這樣智能家居的未來值得我們期待[3-4]。1.4 本文各章主要安排
本文第二章主要介紹了智能家居控制系統(tǒng)中用到的各個硬件模塊,有主控模塊STM32F103VET6、GPRS短信收發(fā)模塊GTM900-B、溫濕度測量傳感器DHT11、液晶顯示屏LCD1602、步進電機28BYJ-48。
第三章主要介紹了硬件系統(tǒng)的設(shè)計,重點描述各個功能模塊電路圖的設(shè)計及其功能。
第四章主要介紹了控制系統(tǒng)軟件程序的設(shè)計,主要有主函數(shù)及TIM2中斷處理函數(shù)的程序設(shè)計,GPRS來信中斷處理函數(shù)的設(shè)計以及GPRS的AT指令的PDU編碼過程。其中給出了主要程序代碼及其程序流程圖。第2章 各個硬件模塊的說明 第2章 各個硬件模塊的說明 2.1 主控模塊
本設(shè)計整個系統(tǒng)的主控芯片選擇的具有ARM內(nèi)核Cortex-M3的STM32F103VET6。該芯片屬于增強型的32位高性能微控制器,具有100引腳和高達512K字節(jié)的閃存存儲器。2.1.1 STM32的系統(tǒng)架構(gòu)
STM32VET6的系統(tǒng)架構(gòu)包含4個驅(qū)動單元:Cortex-M3內(nèi)核Dcode總線、系統(tǒng)總線、通用DMA1和通用DMA2;4個被動單元:內(nèi)部閃存存儲器Flash、內(nèi)部數(shù)據(jù)存儲器SRAM、FSMC和AHB到APB的橋。這些單元都是通過一個多級的AHB總線構(gòu)架相互連接的,如圖2-1所示。
ICode: 該總線將閃存指令接口與ARM的Cortex-M3內(nèi)核的指令總線相連接。指令預(yù)取在此總線上完成。
DCode: 該總線將閃存存儲器的數(shù)據(jù)接口和Cortex-M3內(nèi)核的數(shù)據(jù)總線相連接(常量加載和調(diào)試訪問)。
系統(tǒng)總線: 此總線連接Cortex-M3內(nèi)核的系統(tǒng)總線到總線矩陣,總線矩陣協(xié)調(diào)著DMA與內(nèi)核之間的訪問。
DMA總線: 此總線將DMA的AHB主控接口與總線矩陣相聯(lián),總線矩陣協(xié)調(diào)著CPU的DCode和DMA到 內(nèi)部閃存存儲器Flash、內(nèi)部數(shù)據(jù)存儲器SRAM和外設(shè)的訪問。
總線矩陣: 該矩陣協(xié)調(diào)DMA主控總線與內(nèi)核系統(tǒng)總線間的訪問與仲裁,仲裁采用輪換算法??偩€矩陣包含4個驅(qū)動部件和4個被動部件。AHB外設(shè)通過總線矩陣與系統(tǒng)總線相連,允許DMA訪問。
AHB/APB橋(APB): 兩個AHB/APB橋在AHB和2個APB總線間提供同步連接。APB1操作速度限于36MHz,APB2操作于全速(最高72MHz)。有關(guān)連接到每個橋的不同外設(shè)的地址映射。在每一次復(fù)位以后,所有除SRAM和FLITF以外的外設(shè)都被關(guān)閉,在使用一個外設(shè)之前,必須設(shè)置寄存器RCC_AHBENR來打開該外設(shè)的時鐘 3
圖2-1 STM32系統(tǒng)架構(gòu)
2.1.2 STM32F103VET6的內(nèi)部資源
STM32F103VET6的引腳圖如圖2-2所示。
(1)內(nèi)核:ARM的32位Cortex-M3微處理器;最高達72MHZ頻率,Cortex-M3內(nèi)部的數(shù)據(jù)路徑是32位的,寄存器是32位的,存儲器接口也是32位的。Cortex-M3采用了哈佛結(jié)構(gòu),擁有獨立的Dcode總線和Icode總線,可以讓數(shù)據(jù)訪問和取指并行不悖,這樣數(shù)據(jù)訪問就不再占用Icode總線,從而提升了工作性能。為實現(xiàn)這個特性,Cortex-M3內(nèi)部含有好幾條總線接口,每條都為自己的應(yīng)用場合而優(yōu)化過,并且它們可以并行工作。第2章 各個硬件模塊的說明 圖2-2 STM32F103VET6引腳圖
(2)存儲器:512KB的閃存程序存儲器;64K字節(jié)的靜態(tài)數(shù)據(jù)存儲器 5
SRAM,它可以以字節(jié)、半字(16位)或全字(32位)訪問。(3)時鐘和電源管理:
(a)三種不同的時鐘源可被用來驅(qū)動系統(tǒng)時鐘(SYSCLK):1)HSI振蕩器時鐘;2)HSE振蕩器時鐘;3)PLL時鐘。
(b)STM32的工作電壓(VDD)為2.0~3.6V,通過內(nèi)置的電壓調(diào)節(jié)器提供所需的1.8V電源;
(c)獨立的A/D轉(zhuǎn)換器供電和參考電壓;
(d)一個完整的上電復(fù)位(POR)和掉電復(fù)位(PDR)電路;(e)可有3種不同工作模式的電壓調(diào)節(jié)器;(f)可編程電壓監(jiān)測器(PVD)。
(4)通用和復(fù)用功能I/O(GPIO和AFIO):5組多功能雙向5V兼容的通用I/O端口;可使用復(fù)用功能重新映射到其他一些引腳上。
(5)DMA控制器:支持定時器、ADC、SPI、IIC和USART等外設(shè)。(6)嵌套向量中斷控制器:
(a)有68個可屏蔽中斷通道(不包含16個Cortex?-M3的中斷線);(b)16個可編程的優(yōu)先等級(使用了4位中斷優(yōu)先級);(c)低延遲的異常和中斷處理;(d)電源管理控制;
(e)系統(tǒng)控制寄存器的實現(xiàn)。
(7)模擬/數(shù)字轉(zhuǎn)換(ADC):12位的ADC是一種逐次逼近型模擬數(shù)字轉(zhuǎn)換器,它有多達18個通道,可測量16個外部和2個內(nèi)部信號源。
(8)定時器:2個高級控制定時器(TIM1、TIM8);(a)4個通用定時器(TIM2、TIM3、TIM4、TIM5);(b)2個基本定時器(TIM6、TIM7);
(c)一個實時時鐘、兩個看門狗定時器和一個系統(tǒng)滴答定時器(Systick)。
(9)通用異步收發(fā)器(USART):全雙工的,異步通信RZ標(biāo)準(zhǔn)格式;發(fā)送和接收共用的可編程波特率,最高達4.5Mbits/s;智能卡模擬功能。6