国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于GPRS家庭安防系統(tǒng)驅(qū)動(dòng)模塊的分析與設(shè)計(jì)

2012-04-29 00:44:03李峰馬麗葛熠
電腦知識與技術(shù) 2012年20期
關(guān)鍵詞:嵌入式驅(qū)動(dòng)

李峰 馬麗 葛熠

摘要:該文設(shè)計(jì)實(shí)現(xiàn)了基于FS2410開發(fā)板的嵌入式智能家居遠(yuǎn)程監(jiān)控系統(tǒng),系統(tǒng)采用S3C2410處理器和Linux操作系統(tǒng),具有耗能低、控制簡便、成本低廉和智能化等特點(diǎn)。建立了嵌入式系統(tǒng)平臺和開發(fā)環(huán)境,包括制作bootloader,嵌入式Linux內(nèi)核的裁減、移植,文件系統(tǒng)的制作、加載,對AD轉(zhuǎn)換模塊,鍵盤掃描模塊,LED驅(qū)動(dòng)模塊,聲音報(bào)警模塊進(jìn)行了分析與設(shè)計(jì),總體設(shè)計(jì)良好,層次較清晰,可維護(hù)性高。

關(guān)鍵詞:家庭安防;嵌入式;Linux;s3c2410;驅(qū)動(dòng)

中圖分類號:TP316文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2012)20-4835-06

GPRS-based Remote Security Monitoring System - Environment Set Up and Driver Design

LI Feng, MA Li, GE Yi

(Nanjing University of Information Science and Technology, Nanjing 210044, China)

Abstract: In this paper, the embedded system development, design and implement the basic embedded smart home remote monitoring sys tem. The system uses the S3C2410 processor and Linux operating systems, with low power consumption, easy control, low cost and intelli gent features. Establish a platform and development environment for embedded systems, including the production of the reduction of pro duction bootloader, embedded Linux kernel, transplantation, loading the file system, and the analysis of the keyboard scanning module, the LED driver module, the audible alarm module. The overall design is good, the level is clearer, high maintainability.

Key words: home security; embedded; Linux; S3c2410; driver

隨著社會的不斷發(fā)展,人們的生活水平得到很大的提高,家用電器得到普遍的應(yīng)用,也因此帶來餓了更大的安全隱患。一些電器如果出現(xiàn)一些故障異常,則會給人們帶來不必要的損失。為了減少各種異常情況造成的安全隱患,就必須在異常發(fā)生時(shí)用戶能夠得到及時(shí)的信息。所以,遠(yuǎn)程監(jiān)控系統(tǒng)的前景和作用是非常巨大的。

現(xiàn)有的安防監(jiān)控系統(tǒng)一般采用的是攝像機(jī)傳送視頻信號然后經(jīng)過高效壓縮芯片的壓縮,傳送到內(nèi)置的WEB服務(wù)器。在監(jiān)控端用戶可以通過瀏覽器觀看WEB服務(wù)器上的攝像機(jī)視頻圖像,用戶還可以控制攝像機(jī)鏡頭的動(dòng)作[1]。但是這種方法所需要的設(shè)備成本比較高,并且所需的帶寬比較多,適合在小區(qū)或者學(xué)校等公共場所得實(shí)時(shí)監(jiān)控,但是家居安防監(jiān)控設(shè)備具有一些特點(diǎn),它不需要連續(xù)的監(jiān)控,并且也不需要將監(jiān)控情況實(shí)時(shí)的傳入服務(wù)器進(jìn)行監(jiān)控,該系統(tǒng)需要具備耗能低,控制簡便,成本低廉的優(yōu)點(diǎn)。

1系統(tǒng)結(jié)構(gòu)

使用FS2410開發(fā)板[2]和GPRS模塊和傳感器,實(shí)現(xiàn)對現(xiàn)場的監(jiān)控功能,硬件資源來源于FS2410開發(fā)板自帶的資源,比如溫度傳感器,報(bào)警器,紅外傳感器等。如果紅外傳感器特檢測到有不法分子闖入,那么相應(yīng)的相應(yīng)的報(bào)警功能,并通過GPRS模塊通知用戶現(xiàn)場情況,用戶根據(jù)具體情況采取不同的措施。如果溫度傳感器檢測到有火災(zāi),則啟動(dòng)裝置,并短信通知用戶。主要模塊以及功能見圖1。

2基于GPRS家庭安防系統(tǒng)驅(qū)動(dòng)模塊概要設(shè)計(jì)

2.1 AD模塊概要設(shè)計(jì)

輸入數(shù)據(jù)流:現(xiàn)場的溫度

輸出數(shù)據(jù)流:實(shí)際的溫度值

處理說明[3]:

1)AD驅(qū)動(dòng)模塊的注冊

首先將編寫好的AD驅(qū)動(dòng)源程序(s3c2410-adc.c)交叉編譯成相應(yīng)的模塊(s3c2410-adc.ko),然后在系統(tǒng)啟動(dòng)的腳本里添加ins mod命令將驅(qū)動(dòng)模塊插入到內(nèi)核之中。

2)創(chuàng)建AD設(shè)備節(jié)點(diǎn)

當(dāng)驅(qū)動(dòng)模塊插入內(nèi)核以后,會得到一個(gè)主設(shè)備號并根據(jù)測試程序設(shè)定的設(shè)備節(jié)點(diǎn)名,用mknod創(chuàng)建一個(gè)節(jié)點(diǎn)。

3)測試AD

運(yùn)行測試程序,測試AD是否工作正常。

2.2鍵盤掃描模塊驅(qū)動(dòng)概要設(shè)計(jì)

功能描述:模擬紅外傳感器或者用于其他擴(kuò)展功能處理說明:

1)鍵盤驅(qū)動(dòng)的注冊

將鍵盤掃描驅(qū)動(dòng)以模塊的形式插入到linux內(nèi)核之中,完成注冊設(shè)備,并得到相應(yīng)的主設(shè)備號。

2)創(chuàng)建設(shè)備節(jié)點(diǎn)

完成鍵盤掃描驅(qū)動(dòng)的注冊之后,用mknod創(chuàng)建鍵盤的設(shè)備節(jié)點(diǎn)。

3)測試

把鍵盤掃描驅(qū)動(dòng)的測試程序交叉編譯生成可執(zhí)行程序,在開發(fā)板運(yùn)行測試,測試是否得到相應(yīng)的鍵值。

2.3 LED驅(qū)動(dòng)模塊概要設(shè)計(jì)

輸入數(shù)據(jù):溫度過高后,開啟滅火設(shè)備

輸出數(shù)據(jù):燈亮代表滅火,燈滅代表正常

處理說明:

1)驅(qū)動(dòng)程序的加載

編寫完驅(qū)動(dòng)程序,同樣要交叉編譯生成相應(yīng)的模塊,用insmod命令插入到內(nèi)核之中。得到相應(yīng)的主設(shè)備號。

2)創(chuàng)建設(shè)備節(jié)點(diǎn)

根據(jù)主設(shè)備號和系統(tǒng)的設(shè)備節(jié)點(diǎn)名,用mknod命令來創(chuàng)建設(shè)備節(jié)點(diǎn)。

3)測試

首先交叉編譯測試程序main-led.c,在開發(fā)板上執(zhí)行main-led可執(zhí)行程序,可以通過改變溫度傳感器的溫度值來測試是否能開啟滅火功能。

2.4聲音報(bào)警模塊概要設(shè)計(jì)

輸入數(shù)據(jù):溫度過高或者有不法分子闖入時(shí)。

輸出數(shù)據(jù):蜂鳴器報(bào)警代表異常。

處理說明:

1)驅(qū)動(dòng)程序的加載

編寫完驅(qū)動(dòng)程序,同樣要交叉編譯生成相應(yīng)的模塊,用insmod命令插入到內(nèi)核之中。得到相應(yīng)的主設(shè)備號。

2)創(chuàng)建設(shè)備節(jié)點(diǎn)

根據(jù)主設(shè)備號和系統(tǒng)的設(shè)備節(jié)點(diǎn)名,用mknod命令來創(chuàng)建設(shè)備節(jié)點(diǎn)。

3)測試

首先交叉編譯測試程序main-beep.c,在開發(fā)板上執(zhí)行main-beep可執(zhí)行程序,可以通過改變溫度傳感器的溫度值或者按鍵來測試是否能開啟報(bào)警功能。

3系統(tǒng)搭建

3.1 uboot燒寫

使用H-jtag將u-boot燒寫[4]在2410開發(fā)板的nand flash的零地址上,我們選擇的是K9VF1208,設(shè)置燒寫參數(shù)如圖2所示。

選擇燒寫的uboot文件源文件位置及燒寫地址,燒寫完成后打開終端,重啟開發(fā)板。其中主機(jī)ip設(shè)置# setenv serverip 192.168.1.2,目標(biāo)板ip設(shè)置# setenv ipaddr 192.168.1.3,保存環(huán)境變量# saveenv

3.2 Linux編譯與配置[6-7]

1)解壓內(nèi)核并進(jìn)入內(nèi)核目錄

2)修改Makefile

修改內(nèi)核源碼目錄下的Makefile。

修改交叉編譯工具鏈。

3)拷貝s3c2410默認(rèn)配置文件

4)配置內(nèi)核

5)配置網(wǎng)卡驅(qū)動(dòng)

將cs8900.c和cs8900.h兩個(gè)文件拷貝到linux-2.6.35/drivers/net/arm/下

修改Kconfig添加cs8900內(nèi)核配置項(xiàng)

修改linux-2.6.35/drivers/net/arm/Kconfig添加如下內(nèi)容:

config S3C2410_CS8900

tristate“CS8900 support”

depends on NET_ETHERNET && ARM && ARCH_SMDK2410

---help---

support for cs8900 chipset base Ethernet cards,if you have a network card of this type.修改Makefile添加內(nèi)核編譯配置

修改driver/net/arm/Makefile添加如下內(nèi)容:

obj-$(CONFIG_S3C2410_CS8900) += cs8900.o

添加地址映射定義

修改arch/arm/mach-s3c2410/include/mach/map. h文件,添加如下內(nèi)容:

/* CS8900a */

#define pSMDK2410_ETH_IO__phys_to_pfn(0x19000000)

#define vSMDK2410_ETH_IO0xE0000000

#define SMDK2410_ETH_IRQIRQ_EINT9

添加平臺代碼

修改arch/arm/mach-s3c2410/mach-smdk2410.c文件,添加如下內(nèi)容:

tatic struct map_desc smdk2410_iodesc[] __initdata = {

/* nothing here yet */

{

vSMDK2410_ETH_IO,pSMDK2410_ETH_IO,SZ_1M,MT_DEVICE} //添加內(nèi)容

};

配置內(nèi)核,讓它支持cs8900網(wǎng)卡

$ make menuconfig

Kernel Features --→//使用EABI工具鏈這兩項(xiàng)是必須選擇的

[*] Use the ARM EABI to compile the kernel

[*] Allow old ABI binaries to run with this kernel (EXPERIMENTAL) (NEW)

Device Drivers --→

[*] Network device support --→

[*] Ethernet (10 or 100Mbit) --→

<*> CS8900a support

6)Nand flash驅(qū)動(dòng)的添加

在linux-2.6.35.13的內(nèi)核中已經(jīng)包含了s3c2410的nand flash控制器的驅(qū)動(dòng),但是需要我們正確配置后才能正常工作。

修改分區(qū)信息,建立分區(qū)表。

配置內(nèi)核

7)內(nèi)核編譯

在linux頂層目錄

$ make zImage

內(nèi)核編譯(大約需要半個(gè)小時(shí))拷貝內(nèi)核到tftpboot目錄下$ cp arch/arm/boot/zImage /tftpboot

3.3 Busybox制作根文件系統(tǒng)

Busybox將許多常用的UNIX工具和命令結(jié)合到一個(gè)單獨(dú)的程序中[8],雖busybox中的這些工具相對于GNU常用工具功能有所簡化,但對于嵌入式系統(tǒng)來說這已經(jīng)足夠了。同時(shí),busybox僅僅需要幾百KB的空間資源就能實(shí)現(xiàn)大量的Linux命令(如ls,cat,cp等),節(jié)省系統(tǒng)空間容量,使用簡潔方便,不需裁剪就可以直接將其應(yīng)用于嵌入式系統(tǒng)的根文件系統(tǒng)[9]。

Busybox開放源代碼,遵守GPL協(xié)議,該文以虛擬機(jī)為載體,busybox-1.17為例,完全的源代碼可從http://www.busybox.net下載,壓縮包大小為1.3M左右。經(jīng)過源碼下載,編譯,安裝,啟動(dòng)參數(shù)設(shè)置,然后重新啟動(dòng)開發(fā)板,最終會進(jìn)入如下界面,這便是一個(gè)最簡Linux系統(tǒng),見圖3。

4驅(qū)動(dòng)模塊的實(shí)現(xiàn)

4.1 AD驅(qū)動(dòng)模塊的實(shí)現(xiàn)

硬件描述:

AD轉(zhuǎn)換器是模擬信號轉(zhuǎn)化為數(shù)字信號,方便對信號的處理[1,10]。FS2410開發(fā)板用的AD轉(zhuǎn)換器是ARM S3C2410內(nèi)置的一個(gè)10位AD轉(zhuǎn)換器。并且支持觸摸屏功能。最大轉(zhuǎn)化率是500K,AD轉(zhuǎn)換器頻率的計(jì)算公式為:系統(tǒng)時(shí)鐘/(比例值+1)。例如:

PCLK為50MHz,預(yù)分頻值為49,所以10位轉(zhuǎn)換時(shí)間為:

50MHz/(49+1)=1MHz

轉(zhuǎn)換時(shí)間為1/(1MHz/5)= 5微秒(完成一次AD轉(zhuǎn)換需要5個(gè)時(shí)鐘周期)

本電路的是通過改變滑動(dòng)變阻器的阻值從而改變模擬電壓量,實(shí)現(xiàn)不同的信號輸入。

軟件是通過read,write來對AD的進(jìn)行讀和寫的操作。

4.2 LED驅(qū)動(dòng)模塊的實(shí)現(xiàn)

硬件描述:

S3C2410處理器的四個(gè)管腳與四個(gè)LED燈相連接[1,10],因?yàn)镚PIO是復(fù)用管腳,因此首先配置相應(yīng)寄存器,配置控制寄存器GP FCON,配置為output為01,然后就是對燈進(jìn)行相應(yīng)控制,對數(shù)據(jù)寄存器GPFDAT寫入不同數(shù)據(jù),如果寫0,led燈亮,如果為1則表示燈滅。

驅(qū)動(dòng)程序中,注冊該設(shè)備,打開設(shè)備之后,上層應(yīng)用軟件是通過ioctl進(jìn)行相應(yīng)的控制,具體流程如圖4。

4.3鍵盤掃描驅(qū)動(dòng)模塊的實(shí)現(xiàn)

硬件描述:

4*4鍵盤掃描與S3C2410管腳相連接[1,10],軟件上首先配置相應(yīng)的寄存器,這里主要要配置GPFCON,GPGCON,GPECON三個(gè)寄存器,把相應(yīng)的位設(shè)置為OUTPUT和INPUT工作模式。然后設(shè)置下降沿觸發(fā)中斷。

驅(qū)動(dòng)大致流程如圖5。

4.4蜂鳴器驅(qū)動(dòng)的實(shí)現(xiàn)

硬件描述:

S3C2410A有5個(gè)16位定時(shí)器,其中定時(shí)器0、1、2、3有脈寬調(diào)制(PWM)功能。定時(shí)器4有只有一個(gè)內(nèi)部定時(shí)器而沒有輸出管腳。蜂鳴器接到S3C2410處理器的一個(gè)GPB0管腳上,配置GPBCON的GPB0為輸出模式,在GPBCON[0:1]位上寫入01,即設(shè)置為輸出模式,當(dāng)數(shù)據(jù)寄存器里寫入1時(shí),蜂鳴器打開。當(dāng)寫0時(shí),關(guān)閉蜂鳴器[1,10]。

該驅(qū)動(dòng)的大致流程請參考圖6,上層應(yīng)用軟件通過ioctl來進(jìn)行相應(yīng)的控制的。

5結(jié)束語

本系統(tǒng)硬件采用優(yōu)龍公司的FS2410開發(fā)板,硬件使用三星公司的s3c2410芯片,裁剪并移植linux2.6.35的內(nèi)核,使用busybox制作了根文件系統(tǒng),對AD轉(zhuǎn)換模塊,鍵盤掃描模塊,LED驅(qū)動(dòng)模塊,聲音報(bào)警模塊進(jìn)行了分析與設(shè)計(jì)。監(jiān)控機(jī)可以通過溫度傳感器實(shí)時(shí)監(jiān)測溫度,判斷是否發(fā)生火災(zāi),通過紅外傳感器探測是否有人進(jìn)入現(xiàn)場,并進(jìn)行聲光報(bào)警,在異常情況下給用戶發(fā)送短信報(bào)警。該系統(tǒng)智能化程度高,功耗低,可靠性高,在實(shí)際應(yīng)用中具有很好的推廣價(jià)值。

參考文獻(xiàn):

[1]徐彬彬,伍利衡,李秋廷,等.基于GPRS的遠(yuǎn)程安防監(jiān)控系統(tǒng)的研究和設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012(2):36-39,46.

[2]周曼麗,姜文剛.基于嵌入式Web服務(wù)器的植物工廠遠(yuǎn)程監(jiān)控系統(tǒng)研究與實(shí)現(xiàn)[J].中國農(nóng)機(jī)化,2011(5):90-95.

[3]丘宏烈.基于嵌入式ARM7和以太網(wǎng)監(jiān)測電壓參數(shù)的研究[D].成都:西華大學(xué),2011.

[4]李洪亮.邵長彬.基于s3c2410的u-boot移植[J].電子技術(shù),2012(1):12-14.

[5]方安平,高柯,劉熾.U-Boot在ADSP-BF533上的移植[J].現(xiàn)代電子技術(shù),2008(4):37-39.

[6]孫天澤.嵌入式LINUX操作系統(tǒng)[M].北京:人民郵電出版社,2009.

[7]曾宏安.嵌入式linux C語言開發(fā)[M].北京:人民郵電出版社,2009.

[8]張方櫻.構(gòu)建嵌入式Linux的根文件系統(tǒng)[J].實(shí)驗(yàn)室科學(xué),2007(6):87-89.

[9]李飛,武金虎,石穎博.基于busybox的根文件系統(tǒng)制作[J].電腦知識與技術(shù),2010,6(17):4655-4699.

[10]孫天澤,袁天菊.基于ARM9處理器[M].3版.北京:電子工業(yè)出版社,2009.

猜你喜歡
嵌入式驅(qū)動(dòng)
基于模糊PI控制的驅(qū)動(dòng)防滑仿真系統(tǒng)分析
屈宏斌:未來五年,雙輪驅(qū)動(dòng),砥礪前行
軌旁ATC系統(tǒng)門控柜接收/驅(qū)動(dòng)板改造
搭建基于Qt的嵌入式開發(fā)平臺
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
基于S3C6410的Wi-Fi驅(qū)動(dòng)移植實(shí)現(xiàn)
Altera加入嵌入式視覺聯(lián)盟
倍福 CX8091嵌入式控制器
双桥区| 潞城市| 邵阳市| 囊谦县| 高陵县| 宿松县| 玉门市| 颍上县| 错那县| 专栏| 广元市| 金门县| 通城县| 昌吉市| 安平县| 信阳市| 重庆市| 隆化县| 家居| 昌吉市| 新宾| 昂仁县| 忻城县| 漯河市| 林甸县| 靖州| 建始县| 汽车| 南部县| 旌德县| 玛多县| 永兴县| 西丰县| 壤塘县| 右玉县| 黄梅县| 定兴县| 无锡市| 调兵山市| 昌图县| 化德县|