2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩43頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  本科畢業(yè)設(shè)計(jì)</b></p><p><b> ?。?013屆)</b></p><p> 題 目基于ARM的無線局域網(wǎng)安全監(jiān)測系統(tǒng)設(shè)計(jì)與開發(fā)</p><p> 學(xué) 院</p><p> 專 業(yè)</p><p> 班 級&

2、lt;/p><p> 學(xué) 號</p><p> 學(xué)生姓名</p><p> 指導(dǎo)教師</p><p> 完成日期</p><p><b>  摘 要</b></p><p>  近幾年來,網(wǎng)絡(luò)技術(shù)發(fā)展日新月異,正向著更快、更穩(wěn)定和更安全的方向發(fā)展。其中以無線技術(shù)為依

3、托的無線網(wǎng)絡(luò)的發(fā)展尤其引人注目。無線接入技術(shù)在國內(nèi)外得到了迅速的發(fā)展,無線接入技術(shù)的產(chǎn)品目前已經(jīng)得到了廣泛應(yīng)用。但是,由于無線網(wǎng)絡(luò)的特殊性,攻擊者無須物理連線就可以對其進(jìn)行攻擊,使WLAN的安全問題顯得尤為突出。</p><p>  本次設(shè)計(jì)實(shí)現(xiàn)了一個(gè)基于ARM嵌入式平臺的非法Access Point檢測系統(tǒng)。文章將詳細(xì)敘述基于ARM11的嵌入式Linux系統(tǒng)平臺的搭建工作,如何編寫基于Linux的WIFI字符驅(qū)

4、動,如何利用ARM的外設(shè)WIFI模塊實(shí)現(xiàn)對非法AP的檢測與報(bào)警。選擇ARM平臺的原因是目前在便攜式嵌入式設(shè)備中ARM是其中比較出色的一個(gè)(目前基本上占據(jù)了手持終端市場)。Linux是一個(gè)開放源代碼的系統(tǒng),幾乎支持所有主流的CPU,移植性相當(dāng)好,十分利于開發(fā),大大地縮短了開發(fā)的周期。</p><p>  關(guān)鍵詞:無線局域網(wǎng);嵌入式Linux;ARM;非法AP</p><p><b>

5、;  ABSTRACT</b></p><p>  Nowdays, the network technology has a rapid development and is becoming faster, more stable and safer. Wireless LAN technology as the basis of the development of wireless netwo

6、rks is particularly noteworthy. Wireless access technology at home and abroad has been rapid development of wireless access technology products has been widely used. However, due to the special nature of the wireless net

7、work, the attackers can attack the network without a physical connection, so WLAN security problem is pa</p><p>  The aim of this design is to detect rogue Access Point with an ARM-based embedded platform. T

8、he article will describe in detail about the ARM11 embedded Linux system platform`s implementation, how to write the WIFI character Linux-based drive, how to use ARM peripherals WiFi module on rogue AP detection and alar

9、m. Select the ARM platform, for ARM is a good portable embedded devices (basically occupied the handset market). Linux is an open source system and supports almost all CPUs, transplantati</p><p>  Key words:

10、Wireless LAN;embedded linux;ARM;rogue AP</p><p><b>  目 錄</b></p><p><b>  1 引言1</b></p><p><b>  1.1 背景1</b></p><p>  1.2 目的及意

11、義1</p><p>  1.3 主要研究內(nèi)容4</p><p>  2 系統(tǒng)開發(fā)平臺5</p><p>  2.1 系統(tǒng)平臺選擇5</p><p>  2.2 嵌入式Linux平臺搭建6</p><p>  3 系統(tǒng)分析與設(shè)計(jì)15</p><p>  3.1 系統(tǒng)設(shè)計(jì)思

12、路15</p><p>  3.2 系統(tǒng)需求分析16</p><p>  3.3 系統(tǒng)設(shè)計(jì)17</p><p>  4 系統(tǒng)功能實(shí)現(xiàn)19</p><p>  4.1 文件功能模塊分析19</p><p>  4.2 傳輸與接收功能模塊分析21</p><p>  4.3

13、報(bào)警功能模塊分析24</p><p>  4.4 系統(tǒng)總體功能分析26</p><p>  5 系統(tǒng)測試34</p><p>  5.1 文件獲取測試34</p><p>  5.2 文件發(fā)送測試34</p><p>  5.3 文件接收測試35</p><p>  5.4

14、 目標(biāo)區(qū)域IP顯示測試35</p><p>  5.5 短信報(bào)警測試35</p><p>  6 總結(jié)與展望37</p><p><b>  致謝38</b></p><p><b>  參考文獻(xiàn)39</b></p><p><b>  1 引言&

15、lt;/b></p><p><b>  1.1 背景</b></p><p>  20世紀(jì)90年代以來,網(wǎng)絡(luò)技術(shù)的應(yīng)用直接影響著億萬人的生活方式。尤其在近幾年,隨著智能化、信息化的快速發(fā)展,物聯(lián)網(wǎng)技術(shù)應(yīng)用于各個(gè)領(lǐng)域,其中對信息的傳輸以射頻技術(shù)為主,無線局域網(wǎng)絡(luò)(WLAN)是相當(dāng)便利的數(shù)據(jù)傳輸系統(tǒng),它利用射頻技術(shù),取代銅線所構(gòu)成的有線網(wǎng)絡(luò),能夠利用簡單的存取架

16、構(gòu),使用戶透過它可以達(dá)到“信息隨身化、便利走天下”的境界,所以WLAN技術(shù)無疑是一個(gè)比較理想的選擇。如今,在大規(guī)模的企業(yè)、學(xué)校中,使用無線局域網(wǎng)技術(shù)解決數(shù)據(jù)傳輸?shù)膯栴},相比于其他方案有著巨大的優(yōu)勢,導(dǎo)致其迅速得到普及。</p><p>  Wireless LAN的優(yōu)點(diǎn):</p><p><b>  安裝部署靈活性好;</b></p><p>

17、  即插即用,接入方便;</p><p><b>  自由移動;</b></p><p><b>  應(yīng)用前景廣。</b></p><p>  最有前景的Internet接入網(wǎng)技術(shù):</p><p>  2005年,有超過80%的筆記本電腦配有WLAN接口;</p><p>

18、  ISP在機(jī)場、大型會議中心、商業(yè)中心、甚至咖啡店等熱點(diǎn)場所提供WLAN 接入;</p><p>  很多城市正在大力建設(shè)無線城市,在大力普及WLAN。像杭州,2012年已經(jīng)在很多地段覆蓋了免費(fèi)的WIFI,人們可以很方便的通過手持終端上網(wǎng)。</p><p>  圖1-1 傳統(tǒng)的WLAN的架構(gòu)</p><p>  1.2 目的及意義</p><

19、p>  隨著無線局域網(wǎng)(WLAN)廣泛應(yīng)用于大學(xué)校園、各類展覽會、公司內(nèi)部乃至家用網(wǎng)絡(luò)等場合。由于無線網(wǎng)絡(luò)的特殊性,攻擊者無須物理連線就可以對其進(jìn)行攻擊,使WLAN的安全問題顯得尤為突出。對于大部分公司來說,WLAN通常置于防火墻后,黑客一旦攻破防火墻就能以此為跳板,攻擊其他內(nèi)部網(wǎng)絡(luò),使防火墻形同虛設(shè)。與此同時(shí),由于WLAN國家標(biāo)準(zhǔn)WAPI的無限期推遲,IEEE 802.11網(wǎng)絡(luò)仍將為市場的主角,但因其安全認(rèn)證機(jī)制存在極大安全隱患

20、,無疑讓W(xué)LAN的安全狀況雪上加霜。WLAN的流行主要是由于它為使用者帶來方便,然而正是這種便利性引出了有線網(wǎng)絡(luò)中不存在的安全問題。比如,攻擊者無須物理連線就可以連接網(wǎng)絡(luò),而且任何人都可以利用設(shè)備竊聽到射頻載波傳輸?shù)膹V播數(shù)據(jù)包。因此,著重考慮的安全問題主要有:</p><p>  針對IEEE 802.11網(wǎng)絡(luò)采用的有線等效保密協(xié)議(WEP)存在的漏洞,進(jìn)行破解攻擊。</p><p>  

21、惡意的媒體訪問控制(MAC)地址偽裝,這種攻擊在有線網(wǎng)中同樣存在。</p><p>  對于含AP模式,攻擊者只要接入非授權(quán)的假冒AP,就可登錄欺騙合法用戶。</p><p>  攻擊者可能對AP進(jìn)行泛洪攻擊,使AP拒絕服務(wù),這是一種后果嚴(yán)重的攻擊方式。此外,對移動自組網(wǎng)模式內(nèi)的某個(gè)節(jié)點(diǎn)進(jìn)行攻擊,讓它不停地提供服務(wù)或進(jìn)行數(shù)據(jù)包轉(zhuǎn)發(fā),使其能源耗盡而不能繼續(xù)工作,通常稱為能源消耗攻擊。<

22、/p><p>  非法AP是指未經(jīng)授權(quán)而接入有線網(wǎng)絡(luò)的802.11無線接入點(diǎn)(Wireless Access Point)。其大多數(shù)為內(nèi)部人員所安裝的未經(jīng)授權(quán)的AP。非法AP一般不為網(wǎng)絡(luò)管理員所知,而且往往沒有進(jìn)行任何安全策略的配置,不遵守本地網(wǎng)絡(luò)中的安全協(xié)議,這就導(dǎo)致無線網(wǎng)絡(luò)毫無安全性可言,極易受到攻擊。具體的,其危害性主要表現(xiàn)在如下幾個(gè)方面:</p><p><b>  (1)惡

23、意攻擊者</b></p><p>  黑客在攻擊無線網(wǎng)絡(luò)時(shí)無需獲得有線網(wǎng)絡(luò)物理通道,也無需通過受防火墻和</p><p>  網(wǎng)關(guān)保護(hù)的企業(yè)局域網(wǎng)網(wǎng)絡(luò)邊界,它可直接通過接入企業(yè)網(wǎng)絡(luò)內(nèi)部任何一個(gè)未設(shè)</p><p>  置安全策略的AP或安全性較弱的AP進(jìn)入內(nèi)部網(wǎng)絡(luò)。這樣,他們就與那些已授</p><p>  權(quán)使用內(nèi)部網(wǎng)絡(luò)的合法用

24、戶一樣,對整個(gè)網(wǎng)絡(luò)有一定的訪問權(quán)限。入侵者能夠做</p><p>  合法用戶能做的任何事情,從而乘機(jī)進(jìn)入企業(yè)有線網(wǎng)絡(luò),竊取企業(yè)機(jī)密信息或發(fā)</p><p>  起惡意攻擊。考慮到無線局域網(wǎng)如此脆弱的安全性,許多涉及機(jī)密信息的關(guān)鍵機(jī)</p><p>  構(gòu)或金融公司都不在其內(nèi)部網(wǎng)絡(luò)中鋪設(shè)無線局域網(wǎng),并且會禁用無線局域網(wǎng)。然</p><p> 

25、 而,即使在這樣的網(wǎng)絡(luò)中,非法設(shè)備也是一個(gè)需要機(jī)構(gòu)內(nèi)部網(wǎng)絡(luò)管理人員重視的</p><p>  問題,例如由內(nèi)部人員安裝的未經(jīng)授權(quán)的AP,雖然他們是沒有惡意企圖的,但</p><p>  卻在無意中為惡意攻擊者訪問內(nèi)部網(wǎng)絡(luò)提供了有利機(jī)會,這對企業(yè)網(wǎng)安全必造成嚴(yán)重的威脅。</p><p><b>  (2)惡意竊聽者</b></p>

26、<p>  非法AP的另一個(gè)威脅來自于惡意竊聽者??紤]一個(gè)已授權(quán)的無線終端周圍存在非法AP的情況,由于802.11無線網(wǎng)卡在自動選擇AP時(shí),會選擇在其信號覆蓋范圍內(nèi)信號強(qiáng)度最強(qiáng)的AP接入,因而,當(dāng)非法AP的信號強(qiáng)度超過這個(gè)無線終端周圍的已授權(quán)AP時(shí),該無線終端就可能會在用戶并不知曉的情況下自動切換至非法AP。由于非法AP大多都是沒有進(jìn)行任何安全配置的,機(jī)構(gòu)內(nèi)部人員通過該AP通信時(shí),其信息皆以明文傳輸。此時(shí),當(dāng)網(wǎng)絡(luò)中存在惡意竊聽

27、者時(shí),其敏感信息將因明文傳輸而泄密,這對于企業(yè)和個(gè)人的信息安全來說都是非常危險(xiǎn)的。</p><p><b>  (3)信號干擾</b></p><p>  非法AP使用者在安裝非法AP時(shí),一般是不會考慮其所在信道是否與相鄰AP存在頻譜相交的問題的,然而,在無線局域網(wǎng)中,如果距離較近的相鄰AP各自所在信道是相交信道時(shí),就會發(fā)生頻譜干擾,WLAN中的通信質(zhì)量隨之降低。因而

28、,非法AP的存在很可能對與之相鄰的己授權(quán)AP的服務(wù)質(zhì)量造成不良影響,干擾正常通信。由以上的分析可以看出,非法AP現(xiàn)已成為無線安全中的重要問題。為了更好的保護(hù)無線局域網(wǎng)的網(wǎng)絡(luò)安全,非法AP檢測已成為網(wǎng)絡(luò)管理的重要內(nèi)容之一,并得到了學(xué)術(shù)界和工業(yè)界的重視,提出了一些檢測方法。</p><p>  圖1-2 非法AP示例圖</p><p>  當(dāng)企業(yè)內(nèi)部網(wǎng)絡(luò)中有用戶未經(jīng)授權(quán)私自安裝無線接入點(diǎn),即非

29、法AP時(shí),就會在無意中為惡意攻擊者提供入侵企業(yè)內(nèi)部網(wǎng)絡(luò)的后門,給內(nèi)網(wǎng)安全造成極大的威脅。為了使無線局域網(wǎng)遠(yuǎn)離非授權(quán)訪問,非法AP檢測已成為機(jī)構(gòu)內(nèi)網(wǎng)管理的重要內(nèi)容之一。由此可見,檢測出無線局域網(wǎng)中的非授權(quán)AP是保證這個(gè)無線局域網(wǎng)內(nèi)部用戶能夠進(jìn)行安全的數(shù)據(jù)通信的必要前提。</p><p>  圖1-3 分布式入侵檢測系統(tǒng)</p><p>  1.3 主要研究內(nèi)容</p><

30、;p>  1.3.1嵌入式linux的移植</p><p>  通過搭建ARM嵌入式Linux系統(tǒng),學(xué)習(xí)嵌入式Linux開發(fā)的流程,了解并且編寫硬件相關(guān)驅(qū)動代碼,深入了解Linux內(nèi)核相關(guān)知識,學(xué)習(xí)安裝交叉編譯工具,并且按照項(xiàng)目要求配置、裁剪、編譯內(nèi)核,將二進(jìn)制zImage文件燒寫到ARM11開發(fā)板上,完成開發(fā)平臺的搭建。</p><p>  (1)驅(qū)動程序的編寫</p>

31、<p>  由于本項(xiàng)目要使用到WIFI模塊,要編寫其驅(qū)動程序,方便系統(tǒng)在軟件層次就可以操作此模塊。</p><p><b>  (2)內(nèi)核的配置</b></p><p>  將編寫好的驅(qū)動程序添加到linux內(nèi)核源代碼中,配置內(nèi)核。</p><p>  (3)內(nèi)核的編譯與燒寫到開發(fā)板。</p><p>  

32、安裝好交叉編譯工具,修改相關(guān)的配置,編譯內(nèi)核,然后將其移植到ARM11開發(fā)板上。</p><p>  1.3.2非法Access Point的檢測</p><p>  (1)通過偵聽數(shù)據(jù)包來檢測所有正在使用的AP的ESSID和STA。</p><p>  (2)發(fā)現(xiàn)AP后,根據(jù)合法AP認(rèn)證列表(ACL)判斷該AP是否合法,如果列表中沒有列出該新檢測到的AP的相關(guān)參數(shù)

33、,就可以判定是非法AP。</p><p>  (3)檢測到非法AP,得到非法AP列表。</p><p>  1.3.3 SOCKET文件傳輸</p><p>  建立socket連接,將此文件傳輸服務(wù)器控制臺,啟動報(bào)警模塊,通知管理員處理相關(guān)問題。</p><p><b>  2 系統(tǒng)開發(fā)平臺</b></p>

34、;<p>  2.1 系統(tǒng)平臺選擇</p><p>  說起嵌入式平臺,目前主流的有ARM和FPGA。FPGA主要用于邏輯控制領(lǐng)域,實(shí)現(xiàn)硬件上對數(shù)據(jù)的處理,包括數(shù)據(jù)加密解密、數(shù)據(jù)包的過濾、圖像處理等等,可以搭載軟核如Nios、microblaze、openrisc等來實(shí)現(xiàn)比較簡單的系統(tǒng)控制。但是對于實(shí)現(xiàn)較為復(fù)雜的,系統(tǒng)指令處理速度要求比較高的系統(tǒng),F(xiàn)PGA則達(dá)不到要求。ARM處理器是一款哈佛架構(gòu)(

35、RISC)的處理器,其低功耗、高性能,集成許多IP核,可以應(yīng)用于眾多領(lǐng)域,使ARM處理器迅速得到普及。最新的Cortex-A系列的芯片,主頻可以達(dá)到1.5GHz以上,滿足了許多嵌入式設(shè)備對數(shù)據(jù)處理的要求,ARM的芯片主要包括微處理器、微控制器、DSP、JAVA應(yīng)用系統(tǒng)、浮點(diǎn)運(yùn)算處理等等,可以解決眾多領(lǐng)域的問題。本次設(shè)計(jì)采用S3C6410微處理器,由ARM1176 處理器,幾個(gè)多媒體協(xié)處理器和各種外設(shè)IP 組成。ARM1176 處理器是通

36、過64 位 AXI 總線連接到幾個(gè)內(nèi)存控制器上的。這樣做是為了滿足帶寬需求。它為2.5G 和3G通信服務(wù)提供優(yōu)化的H /W性能,采用了64/32位內(nèi)部總線架構(gòu),該64/32位內(nèi)部總線結(jié)構(gòu)由AXI、AHB和APB 總線</p><p>  嵌入式操作系統(tǒng)具有通用操作系統(tǒng)的基本特點(diǎn),但是其有實(shí)施高效性、硬件的相關(guān)依賴性、軟件固態(tài)化以及應(yīng)用的專用性等等較為突出的優(yōu)點(diǎn)。當(dāng)今,嵌入式系統(tǒng)所搭載的操作系統(tǒng)平臺大致如下:<

37、;/p><p> ?。?)WinCE。其是微軟開發(fā)的一個(gè)開放的、可升級的32位嵌入式操作系統(tǒng),是基于掌上型電腦類的電子設(shè)備操作系統(tǒng)。WinCE用戶界面很出色,和桌面版的Windows基本一致。WinCE具有模塊化、結(jié)構(gòu)化和基于Win32應(yīng)用程序接口以及與處理器無關(guān)等特點(diǎn)。WinCE上編程可以像Windows上一樣,基本沒差別。最新版本是WinCE7.0是微軟.NET最新家庭成員,可以使.NET開發(fā)者快速地進(jìn)行開發(fā)。&

38、lt;/p><p>  (2)Vxwork。其是美國WindRiver公司開發(fā)的一種嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS),是嵌入式開發(fā)環(huán)境的關(guān)鍵組成部分。良好的持續(xù)發(fā)展能力、高性能的內(nèi)核以及友好的用戶開發(fā)環(huán)境,在嵌入式實(shí)時(shí)操作系統(tǒng)領(lǐng)域占有一席之地。憑借其優(yōu)良的性能被應(yīng)用于軍事、航空航天領(lǐng)域。然而其開發(fā)成本、維護(hù)成本過高,支持的硬件數(shù)量有限。</p><p> ?。?)Linux。其最早創(chuàng)立于1991

39、年,短短十幾年的發(fā)展。Linux已經(jīng)成為一個(gè)功能強(qiáng)大、穩(wěn)定性可靠的操作系統(tǒng)。嵌入式Linux是標(biāo)準(zhǔn)Linux在嵌入式系統(tǒng)上的移植,繼承了標(biāo)準(zhǔn)Linux的優(yōu)良特征,是近年來發(fā)展的熱點(diǎn)。嵌入式Linux的熱點(diǎn)有:</p><p>  ①開放源代碼。Linux最大的特點(diǎn)是源代碼公開并且遵循GPL協(xié)議,人們可以任意修改以滿足自己的應(yīng)用。其大量優(yōu)秀的開發(fā)工具,同樣遵循GPL協(xié)議。</p><p> 

40、 ②高性能、可裁剪的內(nèi)核。內(nèi)核設(shè)計(jì)十分優(yōu)秀,運(yùn)行時(shí)所需的資源少,而且穩(wěn)定有效。獨(dú)特的模塊機(jī)制可以將用戶的模塊動態(tài)地插入內(nèi)核或者卸載,能夠應(yīng)付復(fù)雜的任務(wù)需求。</p><p> ?、蹆?yōu)秀的網(wǎng)絡(luò)功能。Linux支持所有標(biāo)準(zhǔn)的網(wǎng)絡(luò)協(xié)議,并且很容易移植到目標(biāo)系統(tǒng)。</p><p>  基于Linux系統(tǒng)的眾多優(yōu)勢,本次設(shè)計(jì)采用Linux系統(tǒng)。</p><p>  2.2

41、嵌入式Linux平臺搭建</p><p>  2.2.1 交叉編譯環(huán)境的搭建</p><p>  交叉編譯的任務(wù)主要是在一個(gè)平臺上生成可以在另一個(gè)平臺上執(zhí)行的程序代碼。不同的CPU需要有不同的編譯器。交叉編譯如同翻譯一樣,它可以把相同的程序代碼翻譯成不同的CPU對應(yīng)語言。</p><p>  圖2-1 交叉編譯模型</p><p>  本文

42、使用的主機(jī)操作系統(tǒng)是CentOS,先安裝標(biāo)準(zhǔn)的C開發(fā)環(huán)境,由于Linux安裝默認(rèn)是不安裝的,所以需要先安裝一下,終端輸入命令:</p><p>  yum install gcc g++ libgcc1 libg++ make gdb</p><p>  本文使用的是開發(fā)板自帶的交叉編譯器,即cross-4.3.2交叉編譯器,只需將arm-linux-4.3.2.bar.bz2解壓:&l

43、t;/p><p>  tar xvjf arm-linux-4.3.2.bar.bz2</p><p>  創(chuàng)建目錄/usr/local/arm并將解壓好的cross-4.3.2拷貝到此目錄下。</p><p>  mkdir /usr/local/arm</p><p>  cp cross-4.3.2 /usr/local/arm –r<

44、;/p><p>  設(shè)置PATH環(huán)境變量,使其可以找到其交叉編譯工具鏈,然后運(yùn)行:</p><p>  vi ~/.bashrc 添加如下內(nèi)容:</p><p>  export PATH=/usr/local/armarm-linux-3.3.4/bin:$PATH。</p><p>  執(zhí)行source ~/.bashrc。</p>

45、;<p>  至此交叉編譯環(huán)境搭建完畢??梢栽诮K端中輸入:arm-linux-gcc-4.3.2 –v查看所安裝的交叉編譯器是否安裝及其查看其版本。</p><p>  圖2-2 交叉編譯器信息</p><p>  2.2.2 主機(jī)控制目標(biāo)板的方式</p><p>  控制口采用串口,下載安裝C-kermit工具。在根目錄~下建立配置文件.kermr

46、c。內(nèi)容如下:</p><p>  set line /dev/ttyUSB0</p><p>  set speed 115200</p><p>  set carrier-watch off</p><p>  set handshake none</p><p>  set flow-control none&

47、lt;/p><p><b>  robust</b></p><p>  set file type bin</p><p>  set file name lit</p><p>  set rec pack 1000</p><p>  set send pack 1000</p>

48、<p>  set window 5</p><p>  保存退出,重新啟動終端,以根用戶運(yùn)行kermit,就可以自動與目標(biāo)板連接。</p><p><b>  圖2-3 串口信息</b></p><p>  2.2.3 U-Boot的配置與編譯</p><p>  U-Boot,全稱Universal Bo

49、ot loader,是遵循GPL條款的開放源代碼項(xiàng)目。從FADSROM、8XXROM、PPCBOOT逐步發(fā)展演化而來。其源代碼目錄、編譯形式與Linux和內(nèi)核很相似,其實(shí),很多U-Boot源碼就是相應(yīng)的Linux內(nèi)核源代碼的簡化,尤其是一些設(shè)備的驅(qū)動。U-Boot源代碼可以從Sourceforge獲得。</p><p>  U-Boot的優(yōu)勢:①開放源碼;②支持多種嵌入式操作系統(tǒng)內(nèi)核,如Linux、NetBSD,

50、 VxWorks, QNX, RTEMS, ARTOS, LynxOS;③支持多個(gè)處理器系列,如PowerPC、ARM、x86、MIPS、XScale;④較高的可靠性和穩(wěn)定性;⑤高度靈活的功能設(shè)置,適合U-Boot調(diào)試、操作系統(tǒng)不同引導(dǎo)要求、產(chǎn)品發(fā)布等;⑥豐富的設(shè)備驅(qū)動源碼,如串口、以太網(wǎng)、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、鍵盤等;⑦較為豐富的開發(fā)調(diào)試文檔與強(qiáng)大的網(wǎng)絡(luò)技術(shù)支持;</p>&l

51、t;p>  本文的目標(biāo)板是S3C6410,要對下載的U-Boot源碼u-boot-2010.03.tar.bz2做一定的修改。具體步驟如下:</p><p>  (1)解壓后進(jìn)入board/samsun目錄下,建立新文件夾smdk6410,將smdk6400里的所有文件復(fù)制到smdk6410中,進(jìn)入smdk6410文件夾將smdk6400.c更名為smdk6410.c,并且打開此文件,將里面的6400全部改

52、為6410。打開Makfile,將里面的6400改為6410。</p><p>  (2)進(jìn)入到nand_spl/board/sansung/,新建smdk6410,復(fù)制smdk6400內(nèi)容到smdk6410,將Makefile文件里面的6400全部改成6410。</p><p>  (3)進(jìn)入到 u-boot-2010.03根目錄,打開Makefile,將CROSS_COMPILE ?=

53、改成為CROSS_COMPILE ?=arm-linux-,然后替換6400為6410。</p><p>  (4)修改啟動代碼。打開cpu/arm1176/start.s,根據(jù)芯片文檔,在對應(yīng)的位置進(jìn)行修改。</p><p>  (5)修改include/configs/smdk6410.h</p><p>  添加#ifdef CONFIG_ENABLE_MMU

54、</p><p>  #define virt_to_phys(x) virt_to_phy_smdk6410(x)</p><p><b>  #else</b></p><p>  #define virt_to_phys(x) (x)</p><p>  #define NAND_DISABLE_CE() (NFC

55、ONT_REG |= (1 << 1))</p><p>  #define NAND_ENABLE_CE() (NFCONT_REG &= ~(1 << 1))</p><p>  #define NF_TRANSRnB() do { while(!(NFSTAT_REG & (1 << 0))); } while(0)</p&g

56、t;<p>  (6)修改cpu/arm1176下的u-boot.lds,結(jié)果如下:</p><p>  (7)修改include\smdk6410.h,添加相關(guān)u-boot命令,MAC地址、IP地址、SERVERIP地址、網(wǎng)關(guān)、子網(wǎng)掩碼等等信息。</p><p>  (8)執(zhí)行make smdk6410</p><p>  編譯結(jié)束,根目錄下會有一個(gè)

57、u-boot.bin的文件,將此文件下載到目標(biāo)板中,斷電,重新啟動板子,會有如下信息:</p><p>  圖2-3 u-boot啟動信息</p><p>  2.2.4 SDIO WIFI驅(qū)動</p><p>  SDIO即就是安全數(shù)字輸入輸出接口,是本次無線WIFI模塊要用到的接口。SDIO在SD標(biāo)準(zhǔn)上定義了一種外設(shè)接口。SDIO總線和USB總線類似,SDIO也

58、有兩端,其中一端是HOST端,另一端是device端。所有的 通信 都是 由HOST端 發(fā)送命令開始的,Device端只要能解析命令,就可以相互通信。</p><p><b>  電路圖如下:</b></p><p>  圖2-4 SDIO_WIFI部分電路圖</p><p>  MMC1_CLK信號是HOST給DEVICE的 時(shí)鐘信

59、號,每個(gè)時(shí)鐘周期傳輸一個(gè)命令。</p><p>  MMC1_CMD信號是雙向的信號,用于傳送命令和反應(yīng)。</p><p>  MMC1_DAT0- MMC1_DAT3 信號是四條用于傳送的數(shù)據(jù)線。</p><p>  VDD_WIFI信號是電源信號。</p><p>  SDIO總線上都是HOST端發(fā)起請求,然后DEVICE端回應(yīng)

60、請求。sdio命令由6個(gè)字節(jié)組成。Command:用于開始傳輸?shù)拿?,是由HOST端發(fā)往DEVICE端的。其中命令是通過CMD信號線傳送的。 Response:回應(yīng)是DEVICE返回的HOST的命令,作為Command的回應(yīng)。也是通過CMD線傳送的。Data:數(shù)據(jù)是雙向的傳送的??梢栽O(shè)置為1線模式,也可以設(shè)置為4線模式。數(shù)據(jù)是通過DAT0-DAT3信號線傳輸?shù)?。SDIO的每次操作都是由HOST在CMD線上發(fā)起一個(gè)CMD,對于有的CMD,

61、DEVICE需要返回Response,有的則不需要。對于讀命令,首先HOST會向DEVICE發(fā)送命令,緊接著DEVICE會返回一個(gè)握手信號,此時(shí),當(dāng)HOST收到回應(yīng)的握手信號后,會將數(shù)據(jù)放在4位的數(shù)據(jù)線上,在傳送數(shù)據(jù)的同時(shí)會跟隨著CRC校驗(yàn)碼。當(dāng)整個(gè)讀傳送完畢后,HOST會再次發(fā)送一個(gè)命令,通知DEVICE操作完畢,DEVICE同時(shí)會返回一個(gè)響應(yīng)。對于寫命令,首先HOST會向DEVICE發(fā)送命令,緊接著DEVICE會返回一個(gè)握手信號,此

62、時(shí),當(dāng)HOST收到回應(yīng)的握手信號后,會將數(shù)據(jù)放在4位的數(shù)據(jù)線</p><p>  下面來分析Linux驅(qū)動。在/include/linux/mmc/host.h下有幾個(gè)重要的結(jié)構(gòu)體,位于core核心層,主要用于核心層與主機(jī)驅(qū)動層 的數(shù)據(jù)交換處理。struct mmc_host 用來描述卡控制器,struct mmc_card 用來描述卡,struct mmc_driver 用來描述&

63、#160;mmc卡驅(qū)動,struct sdio_func用來描述 功能設(shè)備,struct mmc_host_ops 用來描述卡控制器操作接口函數(shù)功能,用于從主機(jī)控制器層向 core 層注冊操作函數(shù),從而將core 層與具體的主機(jī)控制器隔離。也就是說 core 要操作主機(jī)控制器,就用這個(gè) ops 當(dāng)中給的函數(shù)指針操作,不能直接調(diào)用具體主控制器的函數(shù)。</

64、p><p>  編寫Host層驅(qū)動程序,可以參考S3C64XX的HOS/drivers/mmc/host/s3cmci.c </p><p>  static struct platform_driver s3cmci_driver = {</p><p>  .driver  = {</p><p>  .name 

65、;   = "s3c-sdi",  //名稱和平臺設(shè)備定義中的對應(yīng)</p><p>  .owner   = THIS_MODULE,</p><p>  .pm  = s3cmci_pm_ops,</p><p><b>  },</b></p>&

66、lt;p>  .id_table = s3cmci_driver_ids,</p><p>  .probe        = s3cmci_probe,  //平臺設(shè)備探測接口函數(shù)</p><p>  .remove       = __dev

67、exit_p(s3cmci_remove),</p><p>  .shutdown = s3cmci_shutdown,</p><p><b>  };</b></p><p><b>  //……</b></p><p>  wifi驅(qū)動是drivers/net/wireless/libert

68、as/目錄下的if_sdio.c文件sdio設(shè)備的驅(qū)動由sdio_driver結(jié)構(gòu)體定義,sdio_register_driver函數(shù)將該設(shè)備驅(qū)動掛載到sdio_bus_type總線上。設(shè)備或者驅(qū)動注冊到系統(tǒng)中的過程中,都會調(diào)用相應(yīng)bus上的匹配函數(shù)來進(jìn)行匹配合適的驅(qū)動或者設(shè)備,對于sdio設(shè)備的匹配是由sdio_bus_match和sdio_bus_probe函數(shù)來完成。</p><p>  /* SDIO f

69、unction device driver*/</p><p>  struct sdio_driver {</p><p>  char *name;  //設(shè)備名</p><p>  const struct sdio_device_id *id_table; //設(shè)備驅(qū)動ID</p><p>  int (*probe)(st

70、ruct sdio_func *, const struct sdio_device_id *);//匹配函數(shù)</p><p>  void (*remove)(struct sdio_func *); </p><p>  struct device_driver drv;</p><p><b>  };</b></p>

71、;<p>  static struct sdio_driver if_sdio_driver = {</p><p>  .name         = "libertas_sdio",</p><p>  .id_table = if_sdio_ids, 

72、 //用于設(shè)備與驅(qū)動的匹配</p><p>  .probe        = if_sdio_probe,</p><p>  .remove       = if_sdio_remove,</p><p><b>  .

73、drv = {</b></p><p>  .pm = &if_sdio_pm_ops,</p><p><b>  },</b></p><p><b>  };</b></p><p>  /* sdio_register_driver - register

74、a function driver*/</p><p>  int sdio_register_driver(struct sdio_driver *drv)</p><p><b>  {</b></p><p>  drv->drv.name = drv->name;</p><p>  drv->

75、drv.bus = &sdio_bus_type;  //設(shè)置driver的bus為sdio_bus_type</p><p>  return driver_register(&drv->drv);</p><p><b>  } </b></p><p>  static struct bus_ty

76、pe sdio_bus_type = {</p><p>  .name         = "sdio",</p><p>  .dev_attrs    = sdio_dev_attrs,</p><p>  .match 

77、       = sdio_bus_match,</p><p>  .uevent       = sdio_bus_uevent,</p><p>  .probe        = sdio_bu

78、s_probe,</p><p>  .remove       = sdio_bus_remove,</p><p>  .pm      = SDIO_PM_OPS_PTR,</p><p><b>  };</b></p&g

79、t;<p>  static struct bus_type sdio_bus_type = {</p><p>  .name         = "sdio",</p><p>  .dev_attrs    = sdio_dev_attrs,

80、</p><p>  .match        = sdio_bus_match,</p><p>  .uevent       = sdio_bus_uevent,</p><p>  .probe   

81、;     = sdio_bus_probe,</p><p>  .remove       = sdio_bus_remove,</p><p>  .pm      = SDIO_PM_OPS_PTR,</p><p

82、><b>  };</b></p><p>  SDIO 設(shè)備驅(qū)動移植:</p><p>  修改SD卡驅(qū)動使內(nèi)核支持SD卡</p><p>  修改文件:arch/arm/mach-s3c6410/mach-smdk6410.c</p><p>  static struct platform_device *s

83、mdk6410_devices[] __initdata = {</p><p>  &s3c_device_ohci,</p><p>  &s3c_device_lcd,</p><p>  &s3c_device_wdt,</p><p>  &s3c_device_i2c0,</p>&l

84、t;p>  &s3c_device_iis,</p><p>  &s3c_device_sdi, ///增加平臺設(shè)備對sd卡的支持</p><p><b>  };</b></p><p>  (2)修改arch/arm/mach-s3c6410/mach-smdk6410.c 添加</p><p&g

85、t;  #include<mach/gpio.h></p><p>  #include<linux/mmc/host.h></p><p>  #include<plat/mci.h></p><p>  Static struct s3c64xx_mci_pdata smdk6410_cfg_initdata={</p&

86、gt;<p>  .gpio_detect = S3C6410_GPG(10),</p><p>  .set_power = NULL,</p><p>  .ocr_avail = MMC_VDD_32_33,</p><p><b>  };</b></p><p>  (3)在smdk6410_in

87、it中添加</p><p>  S3c64xx_mci_set_platdata(&smdk6410_mmc_cfg);</p><p>  配置內(nèi)核使其支持Marvel無線SDIO WIFI。進(jìn)入Linux內(nèi)核根文件,運(yùn)行make menuconfig,得到圖形界面,按照下面的修改并保存。</p><p>  device drivers ---->

88、[*] Network device support ---> [*] Wireless LAN ---><*> Marwell 8xxx Libertas WLAN driver support<*> Marwell Libertas 8385/8686/8688 SDIO 802.11b/g cardsNetworking support --->-*- Wireless ---

89、> <*> cfg80211 - wireless configureation API{*} common routines for IEEE 802.11 drivers</p><p>  2.2.5 Linux內(nèi)核的編譯</p><p>  按照項(xiàng)目的需求,定制內(nèi)核。本項(xiàng)目主要用到無線wifi與以太網(wǎng)相關(guān)功能,在此基礎(chǔ)上,裁剪內(nèi)核,節(jié)省內(nèi)存資源。修改內(nèi)核目錄樹

90、根下的Makefile,指明處理器類型與交叉編譯器。找到此位置修改Makefile中的內(nèi)容如下: </p><p>  ARCH? =arm </p><p>  CROSS-COMPILE?=arm-linux-</p><p>  保存退出,執(zhí)行make zImage,大概經(jīng)過十分鐘左右就可以完成內(nèi)核的編譯,在根目錄下會有zImage鏡像文件生成。</p&

91、gt;<p>  下載到目標(biāo)板上,啟動的過程中,可以看到sdio wifi加載的相關(guān)信息。</p><p>  圖2-4 SDIO_WIFI驅(qū)動加載信息</p><p>  2.2.6根文件系統(tǒng)制作</p><p>  理論上說一個(gè)嵌入式設(shè)備如果內(nèi)核能夠運(yùn)行起來,如果不需要運(yùn)行用戶進(jìn)程,不需要文件系統(tǒng)。文件系統(tǒng)簡單的說就是一種目錄結(jié)構(gòu),由于linux的

92、設(shè)備在系統(tǒng)中是以文件的形式存在,將這些文件進(jìn)行分類管理以及提供和內(nèi)核交互的接口,就形成一定的目錄結(jié)構(gòu)也就是文件系統(tǒng),文件系統(tǒng)是為用戶反映系統(tǒng)的一種形式,為用戶提供一個(gè)檢測控制系統(tǒng)的接口。</p><p>  Cramfs是Linux的創(chuàng)始人 Linus Torvalds參與開發(fā)的一種只讀的壓縮文件系統(tǒng)。它也基于MTD驅(qū)動程序。Cramfs文件系統(tǒng)以壓縮方式存儲,在運(yùn)行時(shí)解壓縮,所以不支持應(yīng)用程序以XIP方式運(yùn)行,

93、所有的應(yīng)用程序要求被拷到RAM里去運(yùn)行,但這并 不代表比 Ramfs需求的RAM空間要大一點(diǎn),因?yàn)镃ramfs是采用分頁壓縮的方式存放檔案,在讀取檔案時(shí),不會一下子就耗用過多的內(nèi)存空間,只針對目前實(shí)際讀 取的部分分配內(nèi)存,尚沒有讀取的部分不分配內(nèi)存空間,當(dāng)我們讀取的檔案不在內(nèi)存時(shí),Cramfs文件系統(tǒng)自動計(jì)算壓縮后的資料所存的位置,再即時(shí)解壓縮到 RAM中。其制作工具可以從http://sourceforge.net/projects

94、/ cramfs/上下載,編譯后可以獲得mkcramfs和cramfsck兩個(gè)工具。</p><p>  下載交叉編譯busybox形成rootfs,執(zhí)行./mkcramfs rootfs/ rootfs.cramfs可以生成cramfs文件系統(tǒng)</p><p>  3 系統(tǒng)分析與設(shè)計(jì)</p><p>  3.1 系統(tǒng)設(shè)計(jì)思路</p><p&

95、gt;  在開發(fā)此系統(tǒng)之前,需要了解的是IEEE802.11b無線局域網(wǎng)協(xié)議,了解無線網(wǎng)絡(luò)中數(shù)據(jù)包的發(fā)送與接收的過程。IEEE802.11b無線局域網(wǎng)與我們熟悉的IEEE 802.3以太網(wǎng)的原理很類似,都是采用載波偵聽的方式來控制網(wǎng)絡(luò)中信息的傳送。不同之處是以太網(wǎng)采用的是CSMA/CD(載波偵聽/沖突檢測) 技術(shù),網(wǎng)絡(luò)上所有工作站都偵聽網(wǎng)絡(luò)中有無信息發(fā)送,當(dāng)發(fā)現(xiàn)網(wǎng)絡(luò)空閑時(shí)即發(fā)出自己的信息,如同搶答一樣,只能有一臺工作站搶到發(fā)言權(quán),而其余

96、工作站需要繼續(xù) 等待。如果一旦有兩臺以上的工作站同時(shí)發(fā)出信息,則網(wǎng)絡(luò)中會發(fā)生沖突,沖突后這些沖突信息都會丟失,各工作站則將繼續(xù)搶奪發(fā)言權(quán)。而802.11b無線局域網(wǎng)則引進(jìn)了沖突避免技術(shù),從而避免了網(wǎng)絡(luò)中沖突的發(fā)生,可以大幅度提高網(wǎng)絡(luò)效率。</p><p>  Wi-Fi是一種可以將個(gè)人電腦、手持設(shè)備(如PDA、手機(jī))等終端以無線方式互相連接的技術(shù)。Wi-Fi是一個(gè)無線網(wǎng)路通信技術(shù)的品牌,由Wi-Fi聯(lián)盟(Wi-F

97、i Alliance)所持有。目的是改善基于IEEE 802.11標(biāo)準(zhǔn)的無線網(wǎng)路產(chǎn)品之間的互通性。</p><p>  此次畢業(yè)設(shè)計(jì)所要做的是一個(gè)基于WIFI項(xiàng)目。這需要我們?nèi)チ私釽IFI的架構(gòu)及其工作原理。</p><p>  (1)WiFi網(wǎng)絡(luò)結(jié)構(gòu):</p><p>  * 站點(diǎn)(Station),網(wǎng)絡(luò)最基本的組成部分。</p><p>

98、  * 基本服務(wù)單元(Basic Service Set,BSS)。網(wǎng)絡(luò)最基本的服務(wù)單元。最簡單的服務(wù)單元可以只由兩個(gè)站點(diǎn)組成。站點(diǎn)可以動態(tài)的聯(lián)結(jié)(associate)到基本服務(wù)單元中。</p><p>  * 分配系統(tǒng)(Distribution System,DS)。分配系統(tǒng)用于連接不同的基本服務(wù)單元。分配系統(tǒng)使用的媒介(Medium)邏輯上和基本服務(wù)單元使用的媒介是截然分開的,盡管它們 物理上可能會是同一個(gè)媒

99、介,例如同一個(gè)無線頻段。</p><p>  * 接入點(diǎn)(Access Point,AP)。接入點(diǎn)即有普通站點(diǎn)的身份,又有接入到分配系統(tǒng)的功能。</p><p>  * 擴(kuò)展服務(wù)單元(Extended Service Set,ESS)。由分配系統(tǒng)和基本服務(wù)單元組合而成。這種組合是邏輯上,并非物理上的──不同的基本服務(wù)單元物有可能在地理位置相去甚遠(yuǎn)。分配系統(tǒng)也可以使用各種各樣的技術(shù)。<

100、/p><p>  * 關(guān)口(Portal),也是一個(gè)邏輯成分。用于將無線局域網(wǎng)和有線局域網(wǎng)或其它網(wǎng)絡(luò)聯(lián)系起來。</p><p>  這兒有3種媒介,站點(diǎn)使用的無線的媒介,分配系統(tǒng)使用的媒介,以及和無線局域網(wǎng)集成一起的其它局域網(wǎng)使用的媒介。物理上它們可能互相重迭。IEEE 802.11只負(fù)責(zé)在站點(diǎn)使用的無線的媒介上的尋址(Addressing)。分配系統(tǒng)和其它局域網(wǎng)的尋址不屬無線局域網(wǎng)的范圍。I

101、EEE802.11沒有具體定義分配系統(tǒng),只是定義了分配系統(tǒng)應(yīng)該提供的服務(wù)(Service)。整個(gè)無線局域網(wǎng)定義了9種服務(wù):</p><p>  * 5種服務(wù)屬于分配系統(tǒng)的任務(wù),分別為,聯(lián)接(Association)、結(jié)束聯(lián)接(Diassociation)、分配(Distribution)、集 成(Integration)、再聯(lián)接(Reassociation)。</p><p>  * 4種

102、服務(wù)屬于站點(diǎn)的任務(wù),分別為,鑒權(quán)(Authentication)、結(jié)束鑒權(quán)(Deauthentication)、隱私(Privacy)、 MAC 數(shù)據(jù)傳輸(MSDU delivery)。</p><p>  (2)WiFi工作原理:</p><p>  WiFi的設(shè)置至少需要一個(gè)Access Point(ap)和一個(gè)或一個(gè)以上的client(hi)。AP 每100ms將SSID(Servi

103、ce Set Identifier)經(jīng)由beacons(信號臺)封包廣播一次,beacons封包的傳輸速率是1 Mbit/s,并且長度相當(dāng)?shù)亩?,所以這個(gè)廣播動作對網(wǎng)絡(luò)效能的影響不大。因?yàn)閃iFi規(guī)定的最低傳輸速率是1 Mbit/s ,所以確保所有的WiFi client端都能收到這個(gè)SSID廣播封包,client 可以借此決定是否要和這一個(gè)SSID的AP連線。使用者可以設(shè)定要連線到哪一個(gè)SSID。</p><p>

104、;  作為一個(gè)WIFI檢測設(shè)備。首先,應(yīng)該要使WIFI設(shè)備正常工作,這一點(diǎn)通過對其驅(qū)動的編寫與編譯就可以實(shí)現(xiàn),開機(jī)時(shí)加載無線網(wǎng)卡就可以實(shí)現(xiàn)。其次,要對所檢測的區(qū)域?qū)崿F(xiàn)實(shí)時(shí)監(jiān)控,檢測出非法AP寫入特定的文件。再次,無線接入點(diǎn)檢測系統(tǒng)與服務(wù)器建立Socket連接,將無線接入點(diǎn)檢測系統(tǒng)所得到的非法AP列表文件,還有所有的AP以及它們的MAC地址文件,通過有線網(wǎng)絡(luò)傳輸?shù)椒?wù)器。最后,作為整個(gè)系統(tǒng)的附加功能,服務(wù)器接收到非法AP列表文件、所有的A

105、P以及MAC地址文件這兩文件后,發(fā)送報(bào)警短信給管理員,通知管理員啟動相應(yīng)的應(yīng)急方案。 </p><p>  綜合以上各項(xiàng)的了解與分析后,在設(shè)計(jì)必須著重考慮掃描、傳輸、報(bào)警各個(gè)部分的協(xié)調(diào)關(guān)系,保證系統(tǒng)的穩(wěn)定運(yùn)行。</p><p>  3.2 系統(tǒng)需求分析</p><p>  信息安全方面的產(chǎn)品設(shè)計(jì)應(yīng)該著重于實(shí)踐,仔細(xì)觀察以實(shí)際生活中,各項(xiàng)技術(shù)所暴露出來的Bug及其危

106、害。從其中發(fā)掘出商業(yè)信息,按照社會的需求開始系統(tǒng)的設(shè)計(jì),初步達(dá)到解決這一問題,在后期暴露的問題,可以通過對系統(tǒng)進(jìn)行功能的添加與升級,解決Bug。</p><p>  本次設(shè)計(jì)總體規(guī)劃符合我們系統(tǒng)設(shè)計(jì)定的目標(biāo)和要求。主要模塊功能在一般的WLAN中可以初步實(shí)現(xiàn)對非法AP的檢測。</p><p>  802.11協(xié)議提供的無線安全性能可以很好地抵御一般性網(wǎng)絡(luò)攻擊,但是仍有少數(shù)黑客能夠入侵無線網(wǎng)絡(luò)

107、,從而無法充分保護(hù)包含敏感數(shù)據(jù)的網(wǎng)絡(luò)。下面將對軟件功能的每一部分,做詳細(xì)的考慮。AP掃描檢測部分,我們準(zhǔn)備實(shí)現(xiàn)三部分功能。第一步,掃描并且記錄整個(gè)區(qū)域所有AP及其詳細(xì)的信息。第二步,刪除文件中的一些內(nèi)容,只留下有效的ESSID和MAC信息。第三步,把處理過的文件與事先約定好的合法AP列表文件中AP對比,找出其中的非法AP。</p><p>  對于文件傳輸系統(tǒng)來說,我們采用目前TCP網(wǎng)絡(luò)通信普遍采用socket機(jī)

108、制,通常也稱作"套接字",用于描述IP地址和端口,通過使用套接字來達(dá)到進(jìn)程間通信目的編程就是網(wǎng)絡(luò)編程。網(wǎng)絡(luò)編程的工作主要就是使信息在發(fā)送端通過規(guī)定好的協(xié)議進(jìn)行組裝包,在接收端按照規(guī)定好的協(xié)議把包進(jìn)行解析,從而獲取出對應(yīng)我們所需要的信息,達(dá)到通信的目的。這中間最關(guān)鍵的就是數(shù)據(jù)包的組裝,過濾,捕獲和分析,當(dāng)然最后還需要再做一些處理。因此雙方通信采用TCP/IP協(xié)議,用IP地址來尋找對方,完成網(wǎng)絡(luò)編程的各個(gè)環(huán)節(jié)。從而能夠使

109、雙方能過建立通信。</p><p>  對于短信報(bào)警,我們采用的GSM模塊是西門子的TC35。GSM模塊主要通過UART(串口)與處理器通信,所以在硬件上只需要將串口的兩個(gè)引腳與處理器的串口連接,因?yàn)長inux平臺都提供有串口驅(qū)動,所以只需要編寫應(yīng)用程序訪問相應(yīng)的串口設(shè)備,然后通過發(fā)送AT指令控制GSM模塊即可,就可以將報(bào)警信息發(fā)送到管理員手機(jī)。 </p><p>  圖3-1 短信模塊電

110、路</p><p><b>  3.3 系統(tǒng)設(shè)計(jì)</b></p><p>  系統(tǒng)設(shè)計(jì)主要采用C與SHELL混編實(shí)現(xiàn)。圖3-2所示。</p><p><b>  圖3-2 系統(tǒng)圖</b></p><p>  非法AP列表文件的獲取</p><p>  本部分的設(shè)計(jì),獲取AP

111、信息后,對比合法AP列表文件,如果都合法,就一直檢測,直到有非法AP存在,進(jìn)而將非法AP寫入文件。</p><p>  IP地址的正確以及顯示連接信息</p><p>  向服務(wù)器傳輸文件之前,先檢查服務(wù)器IP是否正確,正確后開始連接,連接后顯示出檢測區(qū)域設(shè)備的IP地址。</p><p><b>  文件的傳輸</b></p>&

112、lt;p>  整個(gè)系統(tǒng)由發(fā)送端和接受端組成,其中發(fā)送端位于ARM開發(fā)板上,接受端位于PC上。發(fā)送端創(chuàng)建的Socket與接受端的ServerSocket進(jìn)行交互來實(shí)現(xiàn)文件傳輸。</p><p><b>  報(bào)警系統(tǒng)</b></p><p>  在接收到非法AP列表文件后,啟動報(bào)警機(jī)制,發(fā)送短信。</p><p><b>  4

113、系統(tǒng)功能實(shí)現(xiàn)</b></p><p>  4.1 文件功能模塊分析</p><p>  圖4-1 文件處理模塊流程圖</p><p>  文件功能模塊整個(gè)系統(tǒng)主要包括查看設(shè)備、檢測AP、判斷文件、對比文件、文件寫入,這五大功能。前兩個(gè)功能采用Linux開源項(xiàng)目所維護(hù)的wireless_tools。解壓源代碼,修改makefile文件中的CC = arm

114、-linux-gcc-4.3.2;AR = arm-linux-ar;RANLIB = arm-linux-ranlib,編譯結(jié)束后就會有iwlist、iwconfig、iwpriv等等幾個(gè)有關(guān)無線的工具,本次設(shè)計(jì)主要使用的是iwlist。查看其源代碼可知道其用法大概如下:</p><p>  iwlist[網(wǎng)卡][必要參數(shù)]。其中必要的參數(shù)有:</p><p>  scanning 搜索

115、當(dāng)前無線網(wǎng)絡(luò);frequen  顯示頻道信息;rate  顯示連接速度;power  顯示電源模式;txpower 顯示功耗;retry  顯示重試連接次數(shù)(網(wǎng)絡(luò)不穩(wěn)定查看);ap 顯示熱點(diǎn)信息</p><p>  接下來直接使用shell腳本調(diào)用iwlist命令。</p><p>  #!/bin/bash</p><p>

116、  iwlist wlan0 scanning > tmp.txt</p><p><b>  sleep 1</b></p><p>  if [ ` ls -l tmp.txt | awk '{print $5}' ` -eq 0 ];then echo '空' ;else echo '非空';

117、fi</p><p>  使用shell將掃描到的所有AP信息寫入tmp.txt文件中,再采用正則表達(dá)式判斷文件是否為空。</p><p>  完成上面的步驟后,如果獲取了非空的tmp.txt,接下來就要對文件的內(nèi)容進(jìn)行處理了,寫入tmp.txt文件的內(nèi)容一般如下:</p><p>  wlan0 Scan completed :</p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論