<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 基于手機(jī)的網(wǎng)絡(luò)化安全考勤、門(mén)禁系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),軟硬件協(xié)同

          基于手機(jī)的網(wǎng)絡(luò)化安全考勤、門(mén)禁系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),軟硬件協(xié)同

          作者: 時(shí)間:2017-06-08 來(lái)源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/201706/351011.htm

          1 前言

          系統(tǒng)是最近幾年才在國(guó)內(nèi)廣泛應(yīng)用的又一高科技安全設(shè)施之一,現(xiàn)已成為現(xiàn)代建筑的智能化標(biāo)志之一。在越來(lái)越注重商業(yè)情報(bào)和安全的今天,對(duì)進(jìn)出一些重要機(jī)關(guān)、科研實(shí)驗(yàn)室、檔案館、以及關(guān)系到國(guó)計(jì)民生的公用事業(yè)單位的控制中心、民航機(jī)場(chǎng)等場(chǎng)所的工作人員,給予進(jìn)出授權(quán)控制。這些都使得系統(tǒng)的作用和功能得到進(jìn)一步擴(kuò)展和提升。

          隨著社會(huì)電子化智能程度的深入,市面上出現(xiàn)了不同種類(lèi)的系統(tǒng)[1][2]:密碼門(mén)禁系統(tǒng),刷卡門(mén)禁系統(tǒng),生物識(shí)別門(mén)禁系統(tǒng)。

          密碼門(mén)禁系統(tǒng):通過(guò)輸入密碼,系統(tǒng)判斷密碼正確就驅(qū)動(dòng)電鎖,打開(kāi)門(mén)放行。它的優(yōu)點(diǎn):只需記住密碼,無(wú)需攜帶其他介質(zhì)。成本最低。缺點(diǎn):速度慢,輸入密碼一般需要好幾秒中,如果進(jìn)出的人員過(guò)多,需要排隊(duì)。如果輸入錯(cuò)誤,還需重新輸入,耗時(shí)更長(zhǎng)。安全性差,旁邊的人容易通過(guò)手勢(shì)記住別人的密碼,密碼容易忘記或者泄露。

          刷卡門(mén)禁系統(tǒng):根據(jù)卡的種類(lèi)又分為接觸卡門(mén)禁系統(tǒng)(磁條卡條碼卡)和非接觸卡(又叫感應(yīng)卡射頻卡)門(mén)禁系統(tǒng)。接觸卡門(mén)禁系統(tǒng)由于接觸而是的卡片容易磨損,使用次數(shù)不多,卡片容易損壞等,使用的范圍已經(jīng)越來(lái)越少了。非接觸IC卡,由于其耐用性性價(jià)比好讀取速度快安全性高等優(yōu)勢(shì)是當(dāng)前門(mén)禁系統(tǒng)的主流。但是人員出入都需要隨身攜帶專(zhuān)用的IC卡,否則無(wú)法出入,這也給現(xiàn)代快節(jié)奏的生活帶來(lái)了一些不便。

          生物識(shí)別門(mén)禁系統(tǒng):根據(jù)人體生物特征的不同而識(shí)別身份的門(mén)禁系統(tǒng)。常見(jiàn)的有:指紋門(mén)禁系統(tǒng)(每個(gè)人的指紋紋路特征存在差異性),掌型儀門(mén)禁系統(tǒng)(每個(gè)人的手掌的骨骼形狀存在差異性)虹膜門(mén)禁系統(tǒng)(每個(gè)人的視網(wǎng)膜通過(guò)光學(xué)掃描存在差異性)人像識(shí)別門(mén)禁系統(tǒng)(每個(gè)人的五官特征和位置不同)等。生物識(shí)別門(mén)禁系統(tǒng)的優(yōu)點(diǎn)是:無(wú)需攜帶卡片等介質(zhì),重復(fù)的幾率少,不容易被復(fù)制,安全性高。缺點(diǎn)是:成本高。由于生物識(shí)別需要比對(duì)很多參數(shù)特征,比對(duì)速度慢,不利于人員人數(shù)過(guò)多的場(chǎng)合。人體的生物特征會(huì)隨著環(huán)境和時(shí)間的變化而變化,因此容易產(chǎn)生拒識(shí)率(明明是這個(gè)人,但是他的生物特征變了,而認(rèn)為不是本人),例如:指紋由于季節(jié)和干濕度不同而不同,掌型和人像由于年齡的增長(zhǎng)而改變,虹膜由于眼部患病而改變等。所以,生物識(shí)別門(mén)禁系統(tǒng)雖然先進(jìn)和安全,但是由于他的成本高,應(yīng)用的范圍有限,不是當(dāng)前門(mén)禁系統(tǒng)的主流。

          由于以上各種系統(tǒng)都存在各自的缺陷,使得在使用上述技術(shù)的時(shí)候會(huì)給用戶帶來(lái)諸多不便?,F(xiàn)在由于具有Wi-Fi功能的手機(jī)已日趨普及,因此如果在公司或小區(qū)等場(chǎng)合使用帶有Wi-Fi功能的手機(jī)進(jìn)行人員的出入登記管理將更加方便。用戶不需要任何額外的設(shè)備,只需要一部具有Wi-Fi功能的手機(jī)即可,不僅使用方便,還將大大降低整個(gè)系統(tǒng)的部署成本。

          手機(jī)中Wi-Fi模塊的MAC地址具有唯一性,因此可用于考勤系統(tǒng),實(shí)現(xiàn)人員身份的識(shí)別,而且無(wú)需使用其他特殊的設(shè)備。另外,考勤機(jī)與遠(yuǎn)程服務(wù)器端連接時(shí),如果沒(méi)有一些相應(yīng)的安全措施,就容易受到攻擊而傳輸錯(cuò)誤、偽裝的信息。本項(xiàng)目以PIC32 Ethernet Starter KIT為基礎(chǔ),擴(kuò)充嵌入式Wi-Fi模塊,獲取手機(jī)Wi-Fi發(fā)送過(guò)來(lái)的身份認(rèn)證信息,采用AES安全算法進(jìn)行加密,實(shí)現(xiàn)操作簡(jiǎn)單、安全可靠的身份認(rèn)證門(mén)禁系統(tǒng)。

          2相關(guān)技術(shù)和原理

          2.1相關(guān)技術(shù)

          2.1.1無(wú)線局域網(wǎng)WLAN

          無(wú)線局域網(wǎng)WLAN是通過(guò)無(wú)線設(shè)備將兩臺(tái)或多臺(tái)計(jì)算機(jī)連接在一起構(gòu)成的網(wǎng)絡(luò)。最早起源于1970夏威夷大學(xué)的ALOHA網(wǎng)絡(luò),它是一個(gè)雙向星型拓?fù)?,整個(gè)系統(tǒng)由分布于四個(gè)島嶼上的7臺(tái)計(jì)算機(jī)之間通過(guò)無(wú)線的方式與中央計(jì)算機(jī)連接在一起進(jìn)行通訊。1997年發(fā)布了第一個(gè)版本,1999年加了兩個(gè)補(bǔ)充版本802.11a/b,隨后工業(yè)界成立了Wi-Fi聯(lián)盟,致力于解決符合802.11標(biāo)準(zhǔn)的產(chǎn)品的生產(chǎn)和設(shè)備兼容性問(wèn)題。

          無(wú)線局域網(wǎng)具有如下特點(diǎn):

          ♦使用方便:由于沒(méi)有線纜的限制,用戶可以在網(wǎng)絡(luò)資源附近的便利場(chǎng)所訪問(wèn)這些資源,如家庭、辦公室等場(chǎng)所。

          ♦移動(dòng)性好:隨著越來(lái)越多的地方開(kāi)通無(wú)線網(wǎng),用戶甚至可以在工作場(chǎng)所之外隨意接入Internet。如:咖啡廳等地方即可便利的通過(guò)無(wú)線網(wǎng)接入Internet。

          ♦部署靈活:與有線網(wǎng)絡(luò)相比,無(wú)線網(wǎng)絡(luò)不需要布線,因此不會(huì)受到周?chē)h(huán)境的影響。

          ♦擴(kuò)展性好:在原有網(wǎng)絡(luò)基礎(chǔ)之上,通過(guò)添加AP即可擴(kuò)展網(wǎng)絡(luò)。而有線網(wǎng)絡(luò)除了添加交換機(jī)等設(shè)備外,還要額外布線,不僅成本提高,而且靈活性差。

          ♦安全:使用共享密鑰加密機(jī)制WEP(有線等效加密),WPA、WPA2(Wi-Fi)網(wǎng)絡(luò)安全存取)等加密機(jī)制。

          無(wú)線局域網(wǎng)的網(wǎng)絡(luò)類(lèi)型有:點(diǎn)到點(diǎn)(Ad-hoc)、橋接和分布式三種。

          ♦點(diǎn)到點(diǎn):點(diǎn)到點(diǎn)網(wǎng)絡(luò)允許無(wú)線設(shè)備互相直接通訊。在通訊范圍內(nèi)的無(wú)線設(shè)備可以互相被發(fā)現(xiàn)并且可以不通過(guò)AP直接通訊。這種通訊類(lèi)型廣泛應(yīng)用于兩臺(tái)計(jì)算機(jī),它們不需要通過(guò)網(wǎng)絡(luò)來(lái)完成通訊。ad-hoc網(wǎng)絡(luò)就是這種網(wǎng)絡(luò)。

          ♦橋接:橋連接不同類(lèi)型的網(wǎng)絡(luò),無(wú)線以太網(wǎng)橋可以連接有線以太網(wǎng)和無(wú)線網(wǎng)絡(luò),而橋則充當(dāng)無(wú)線局域網(wǎng)的連接點(diǎn)。

          ♦無(wú)線分布式系統(tǒng):當(dāng)很難通過(guò)線纜在一個(gè)網(wǎng)絡(luò)中將所有訪問(wèn)點(diǎn)都連接在一起的時(shí)候,可以用AP作為中繼器。

          2.1.2 Wi-Fi

          Wi-Fi[3]是目前最成功的無(wú)線局域網(wǎng)(WLAN)系統(tǒng),它基于IEEE802.11技術(shù)標(biāo)準(zhǔn),通過(guò)近幾年的快速發(fā)展,基礎(chǔ)架構(gòu)設(shè)施已經(jīng)比較完善,無(wú)線接入熱點(diǎn)(AP)覆蓋已經(jīng)很廣,價(jià)格也很便宜。這樣的系統(tǒng)可通過(guò)個(gè)人權(quán)限接入無(wú)線互連網(wǎng),并訪問(wèn)本地網(wǎng)絡(luò)中的其他系統(tǒng),比如其他計(jì)算機(jī),共享打印機(jī)和其他類(lèi)似設(shè)備。通常,WLAN的帶寬和傳輸延遲比許多其他類(lèi)型的用戶互聯(lián)網(wǎng)連接(如ADSL、GPRS和3G)要好得多,因?yàn)閃LAN既提供訪問(wèn)互聯(lián)網(wǎng)服務(wù),也提供本地通信服務(wù)。Wi-Fi在許多場(chǎng)合訪問(wèn)速度更多是受到共享連接和用戶人數(shù)的限制,而非技術(shù)本身。Wi-Fi的突出優(yōu)勢(shì)是傳輸帶寬、技術(shù)成熟度、開(kāi)放的網(wǎng)絡(luò)協(xié)議,以及基礎(chǔ)接入產(chǎn)品、設(shè)施的完備和廣泛覆蓋。

          2.1.3 AES加密

          由于現(xiàn)實(shí)生活的實(shí)際需要及計(jì)算機(jī)技術(shù)的進(jìn)步,密碼學(xué)有了突飛猛進(jìn)的發(fā)展密碼學(xué)研究領(lǐng)域出現(xiàn)了許多新的課題新的方向。例如,在分組密碼領(lǐng)域,DES已無(wú)法滿足高保密性的要求。美國(guó)已征集并選定了Rijndael算法作為新的高級(jí)加密標(biāo)準(zhǔn)AES (AdvancedEncryptionStandard)。與3DES相比,AES[4]的安全性更高,算法實(shí)現(xiàn)更加靈活、簡(jiǎn)單。繼美國(guó)征集AES結(jié)束之后,歐洲也開(kāi)始進(jìn)行名為NESSIE的密碼大計(jì)劃,其中候選算法中比較著名的兩個(gè)算法就是IDEA算法和Camellia算法,目前,對(duì)這兩個(gè)算法的研究也僅次AES算法。AES是基于分組的加解密算法,即每次要加密/解密的數(shù)據(jù)塊大小必須是16字節(jié),算法中大量使用移位操作。

          AES算法相關(guān)概念

          分組密碼是對(duì)稱(chēng)密碼體制的發(fā)展趨勢(shì)。分組密碼算法通常由密鑰擴(kuò)展算法和加密(解密)算法兩部分組成。密鑰擴(kuò)展算法將b字節(jié)用戶主密鑰擴(kuò)展成r個(gè)子密鑰。加密算法由一個(gè)密碼學(xué)上的弱函數(shù)f與r個(gè)子密鑰迭代r次組成。抵御已知明文的差分和線性攻擊,可變長(zhǎng)密鑰和分組是AES的設(shè)計(jì)要點(diǎn)。

          AES算法結(jié)構(gòu)

          AES加密算法主要由4個(gè)變換構(gòu)成:字節(jié)代換(Byte—Sub)、行移位變換(ShiftRow)、列混淆變換(MixColumn)以及輪密鑰加變換(AddRoundKey),其算法結(jié)構(gòu)如圖1所示。圖1中InvByteSub、InvShiftRow和InvMixColumn分別表示ByteSub、ShiftRow、和MixColumn的逆變換。

          圖1 AES加密解密結(jié)構(gòu)圖

          加密輪變換

          AES加密數(shù)據(jù)塊大小最大是256bit,但是密鑰大小在理論上沒(méi)有上限。AES加密有很多輪的重復(fù)和變換。大致步驟如下:1、密鑰擴(kuò)展(KeyExpansion),2、初始輪(Initial Round),3、重復(fù)輪(Rounds),每一輪又包括:SubBytes、ShiftRows、MixColumns、AddRoundKey,4、最終輪(Final Round),最終輪沒(méi)有MixColumns。AES加密算法的主體是其實(shí)就是加密輪變換,下面依次對(duì)以上4個(gè)子變換進(jìn)行分析。

          1、ByteSub變換

          ByteSub變換對(duì)State中的每個(gè)字節(jié)進(jìn)行S盒代替變換,變換由兩步構(gòu)成:

          (1)求State中各字節(jié)的乘法逆。

          (2)對(duì)(1)所得的結(jié)果做仿射變換y=f(x)。

          2、ShiftRow變換

          ShiftRow變換將State中的行按不同的偏移量循環(huán)移位。偏移量以字節(jié)為單位,第一行不變,第二行循環(huán)左移1個(gè)字節(jié),第三行循環(huán)左移兩個(gè)字節(jié),第四行循環(huán)左移3個(gè)字節(jié)。

          3、MixColumn變換

          MixColumn變換是對(duì)狀態(tài)中各列的混淆變換。在MixCollm1變換中,把一個(gè)State的列看作一個(gè)32位數(shù)據(jù),然后對(duì)其進(jìn)行矩陣乘法變換sj(x)=c(x)·Sj(x),其中c(x)=03x3+01x2+01x+02。

          4、AddROundKev變換

          AddRoundKey變換將State中的每個(gè)字節(jié)與本輪子密鑰中對(duì)應(yīng)的字節(jié)相異或.所得結(jié)果即為State的AddRoundKey變換值。加密輪函數(shù)可用偽C代碼表示為:

          Round(State,Roundkey[i])

          {

          ByteSub(State);

          ShiftRow(State);

          MixColumn(State);

          AddROundKey(State,Roundkey[i]);

          }

          2.2系統(tǒng)原理

          本系統(tǒng)在PIC32 Ethernet Starter KIT硬件基礎(chǔ)上,擴(kuò)充一個(gè)嵌入式Wi-Fi模塊,構(gòu)成本地客戶端,由PC機(jī)作為服務(wù)器端。當(dāng)手機(jī)打開(kāi)WLAN掃描時(shí),即可把唯一的MAC地址發(fā)送給客戶端,客戶端把MAC地址信息用AES算法進(jìn)行加密,再將加密后的信息通過(guò)Ethernet接口發(fā)送給遠(yuǎn)程服務(wù)器,由服務(wù)器對(duì)信息進(jìn)行解密、識(shí)別、匹配,并做出相應(yīng)處理和應(yīng)答。

          圖2系統(tǒng)原理圖

          圖3系統(tǒng)模型圖

          3硬件設(shè)計(jì)

          3.1 PIC32 Ethernet Starter KIT簡(jiǎn)介

          PIC32 Ethernet Starter Kit[5]是一個(gè)非常簡(jiǎn)單易用,低成本的用于體驗(yàn)PIC3210/100Ethernet等功能的開(kāi)發(fā)工具。PIC32可提供工作頻率80MHz的32位MIPS處理器內(nèi)核、512KB的編程FLASH、32KB的RAM內(nèi)存以及眾多的外圍設(shè)備。這些設(shè)備包括USB控制器、定時(shí)器/計(jì)數(shù)器、串口控制器、A/D轉(zhuǎn)換器以及更多的設(shè)備。該板具有大量的I/O接口和電源選項(xiàng),其中也包括USB電源。它同時(shí)還具有與Microchip MPLAB開(kāi)發(fā)軟件相兼容的內(nèi)置編程、調(diào)試、下載電路。Cerebot32MX4擁有九個(gè)DigilentPmod™外圍模塊連接器??蛇B接的DigilentPmod包括H-bridge驅(qū)動(dòng)、模數(shù)和數(shù)模轉(zhuǎn)換器、蜂鳴器、滑動(dòng)開(kāi)關(guān)、按鍵開(kāi)關(guān)、LED指示燈、以及易于連接的轉(zhuǎn)換器。

          PIC32 Ethernet Starter Kit實(shí)物圖如下圖4:

          圖4 PIC32 Ethernet Starter Kit實(shí)物圖

          3.2 380模塊簡(jiǎn)介

          EMW-380-C[6]是一款多功能串口轉(zhuǎn)Wi-Fi模塊,它內(nèi)部集成了TCP/IP協(xié)議棧和Wi-Fi通訊模塊驅(qū)動(dòng),可用于串口與Wi-Fi無(wú)線網(wǎng)絡(luò)之間的數(shù)據(jù)傳輸,可方便的為串口設(shè)備增加無(wú)線網(wǎng)絡(luò)接口。可用于串口設(shè)備與PC機(jī)之間,或者多個(gè)串口設(shè)備之間的遠(yuǎn)程通信。

          外觀機(jī)械尺寸如下圖5。

          圖5 EMW-380-C引腳排列頂視圖

          EMW-380-C實(shí)物圖如下圖6。

          圖6 EMW-380-C實(shí)物圖

          表1接線說(shuō)明

          No.

          FUN.

          No.

          FUN.

          J2

          天線接線柱

          J3

          NG(暫時(shí)不使用)

          模塊上有兩個(gè)LED燈用來(lái)直觀地指示模塊當(dāng)前的狀態(tài)??梢栽谂渲颇J较峦ㄟ^(guò)命令來(lái)獲得模塊當(dāng)前的狀態(tài)。LED功能如下表2.

          表2 EMW-380-C LED指示燈狀態(tài)

          名稱(chēng)

          顏色

          含義

          功能

          D1

          紅色

          Wi-Fi成功連接指示燈

          D2

          綠色

          系統(tǒng)初始化成功指示燈

          常亮:模塊初始化正常,正常工作;

          常暗:模塊未初始化,或處于休眠狀態(tài)。

          表3 EMW-380-C引腳功能

          J1引腳

          功能

          說(shuō)明

          J2引腳

          功能

          說(shuō)明

          1

          Wakeup(IN)

          WAKE_UP引腳如果產(chǎn)生下降沿使模塊進(jìn)入休眠狀態(tài),上升沿使模塊進(jìn)入正常工

          作狀態(tài),模塊對(duì)該引腳有去噪功能,避免非正常信號(hào)的干擾。

          1

          UART_RTS(OUT)

          UART接收準(zhǔn)備信號(hào),低電平有效

          2

          /RESET(IN)

          將該引腳拉低1μs,可以重新初始化模塊

          2

          UART_CTS(IN)

          UART允許發(fā)送信號(hào),低電平有效

          3

          STATUS(IN)

          STATUS用來(lái)設(shè)置模塊的工作狀態(tài)。

          3

          UART_RXD(IN)

          UART數(shù)據(jù)輸入

          4

          /INT(OUT)

          HOST端可以通過(guò)查詢EMW-380-C的/INT引腳來(lái)確定初始化是否完成。當(dāng)模塊加電

          后,/INT會(huì)保持為高,當(dāng)初始化完成后,/INT會(huì)被拉低,此后設(shè)備即可向

          EMW-380-C發(fā)送命令并進(jìn)行相關(guān)操作了。在EMW-380-C中/INT引腳沒(méi)有其他功能。

          4

          UART_TXD(OUT)

          UART數(shù)據(jù)輸出

          5

          GND

          模塊接地

          5

          GND

          6

          NC

          未定義,用戶無(wú)須連接

          6

          NC

          7

          NC

          7

          NC

          8

          NC

          8

          NC

          9

          NC

          9

          NC

          10

          NC

          10

          VDD

          模塊電源輸入

          注意:

          (1)UART連接包括:UART_TXD,UART_RXD,UART_RTS和UART_CTS。

          (2)最簡(jiǎn)單應(yīng)用中只需要連接電源和UART_TXD、UART_RXD。

          (3)建議連接UART_RTS和UART_CTS來(lái)使能UART的硬件流控制。這樣,網(wǎng)絡(luò)阻塞時(shí),模塊可以對(duì)嵌入式設(shè)備發(fā)送給UART接口的數(shù)據(jù)流量進(jìn)行自動(dòng)控制。

          3.3典型硬件連接與引腳說(shuō)明

          圖7 典型UART連接圖

          系統(tǒng)是通過(guò)EMW-380-C Wi-Fi模塊實(shí)現(xiàn)了系統(tǒng)的WLAN功能的。EMW-380-C Wi-Fi模塊是一個(gè)軟硬件高度封裝的嵌入式Wi-Fi(802.11b/g)應(yīng)用模塊。硬件模塊由ARM處理器和Wi-Fi射頻芯片組成,軟件集成了Wi-Fi、TCP/IP、UDP、DHCP等網(wǎng)絡(luò)協(xié)議。模塊提供一個(gè)UART/SPI串行接口與主MCU相連,在本系統(tǒng)中,即PIC32 Ethernet Starter KIT通過(guò)UART與該模塊相連(如圖7)。并由一個(gè)簡(jiǎn)單的API命令集來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)控制和基于802.3幀格式的鏈路層數(shù)據(jù)服務(wù)。模塊支持AP和Ad-Hoc工作模式,并支持RF信道自動(dòng)選擇和WEP加密,適合各種小系統(tǒng)的標(biāo)準(zhǔn)Wi-Fi接入。EMW-380-C Wi-Fi模塊具有TCP Server, TCP Client,UDP,UDP廣播等多種工作模式,支持Web配置方式,方便用戶靈活設(shè)定相關(guān)配置參數(shù)。

          該模塊有兩種工作狀態(tài):配置模式和數(shù)據(jù)透明傳輸模式。在配置模式下,可以使用EMSP通訊協(xié)議來(lái)對(duì)模塊進(jìn)行操作,配置,簡(jiǎn)單測(cè)試收發(fā)數(shù)據(jù)等。模塊的一切工作都處于EMSP命令的控制之下。在數(shù)據(jù)透明傳輸模式下,模塊將通過(guò)UART把接收到的數(shù)據(jù)封裝成TCP/UDP數(shù)據(jù)包發(fā)送到遠(yuǎn)端,同時(shí)也可以將接收到的遠(yuǎn)端TCP/UDP數(shù)據(jù)包的數(shù)據(jù)負(fù)載通過(guò)UART發(fā)送給嵌入式設(shè)備。

          3.4硬件PCB圖

          從圖8中可以看出,在本系統(tǒng)設(shè)計(jì)中,PIC32 Ethernet Starter KIT與EMW-380-C模塊間的UART只連接了基本的兩根線:UART-RXD和UART-TXD。用的是PIC32 Ethernet Starter KIT上的UART1,還有一根RB4連接到該模塊的STATUS引腳上。作為該模塊的狀態(tài)檢測(cè)線。

          圖8考勤系統(tǒng)客戶端硬件PCB圖

          3.5硬件實(shí)物圖

          從圖9中可以看出,左側(cè)為PIC32 Ethernet Starter KIT實(shí)物圖,右側(cè)為擴(kuò)展的EMW-380-C Wi-Fi模塊。

          圖9考勤系統(tǒng)客戶端硬件實(shí)物圖

          4軟件設(shè)計(jì)

          本系統(tǒng)的整個(gè)設(shè)計(jì)包括下位機(jī)軟件設(shè)計(jì)和上位機(jī)軟件設(shè)計(jì)。下位機(jī)主要結(jié)合了EMW-380-C Wi-Fi模塊中的Wi-Fi技術(shù),以及Microchip TCP/IP棧。而上位機(jī)主要結(jié)合了TCP/IP的socket編程以及對(duì)數(shù)據(jù)庫(kù)的操作。

          4.1下位機(jī)軟件設(shè)計(jì)

          圖10 考勤系統(tǒng)客戶端下位機(jī)軟件設(shè)計(jì)

          整個(gè)下位機(jī)的系統(tǒng)設(shè)計(jì)如上圖。首先是對(duì)PIC32 Ethernet Starter KIT進(jìn)行時(shí)鐘配置,必要外設(shè)的配置(定時(shí)器,按鈕,LED等)。Microchip TCP/IP棧通過(guò)處理物理網(wǎng)絡(luò)端口與應(yīng)用程序之間交互,為用戶提供了一些基本的嵌入式網(wǎng)絡(luò)應(yīng)用基礎(chǔ)。包括很多用于應(yīng)用程的通用模塊,像HTTP(web服務(wù)),STMP(發(fā)郵件),SNMP(提供狀態(tài)和控制),Telnet,TFTP,串口到以太網(wǎng)等。此外,該棧包含了輕量級(jí)高性能的TCP和UDP層實(shí)現(xiàn),并且支持IP,ICMP,DHCP,ARP和DNS。而本系統(tǒng)中使用了TCP/IP這部分功能。由于PIC32 Ethernet Starter KIT板子上豐富的資源,我們通過(guò)以太網(wǎng),將PIC32 Ethernet Starter KIT和EMW-380-C Wi-Fi模塊組成的考勤系統(tǒng)作為一個(gè)客戶端。而遠(yuǎn)程的上位機(jī)作為服務(wù)器端。當(dāng)初始化完系統(tǒng)的基本外設(shè)后,就要啟動(dòng)EMW-380-C Wi-Fi模塊的Wi-Fi功能(見(jiàn)一下內(nèi)容的詳細(xì)介紹)。當(dāng)考勤系統(tǒng)客戶端連接到上位機(jī)的服務(wù)器之后,那么他們之間就可以正常通訊了。

          在本系統(tǒng)設(shè)計(jì)中EMW-380-C Wi-Fi模塊提供通用UART讀寫(xiě)功能和EMSP協(xié)議的處理功能,來(lái)實(shí)現(xiàn)與PIC32 Ethernet Starter KIT的通訊。EMSP協(xié)議是一個(gè)與底層無(wú)關(guān)的通訊協(xié)議,只要EMW-380-C Wi-Fi模塊與PIC32 Ethernet Starter KIT在硬件上連接好之后,利用EMSP協(xié)議提供的簡(jiǎn)單命令集就可以相互通訊了。PIC32 Ethernet Starter KIT發(fā)送給EMW-380-C Wi-Fi模塊的數(shù)據(jù)包格式如下表4。格式中包含一個(gè)協(xié)議頭(8個(gè)字節(jié))和數(shù)據(jù)段(不定長(zhǎng),最大256個(gè)字節(jié))。并且EMW-380-C Wi-Fi模塊響應(yīng)PIC32 Ethernet Starter KIT之后,發(fā)送給PIC32 Ethernet Starter KIT的數(shù)據(jù)包格式也是按照表4中的格式。

          表4 EMSP數(shù)據(jù)包格式

          headofprotocol

          datafield

          command

          length

          result

          headchecksum

          data

          datachecksum

          從表4中也可以看出,所有請(qǐng)求和應(yīng)答都進(jìn)行了校驗(yàn)和計(jì)算,從而保證了數(shù)據(jù)交換的完整性和可靠性。整個(gè)EMSP協(xié)議包含12條命令,來(lái)完成模塊的控制、網(wǎng)絡(luò)控制和網(wǎng)絡(luò)通訊。

          • EMSP_CMD_RESET:對(duì)模塊進(jìn)行復(fù)位操作。

          • EMSP_CMD_GET_CONFIG:獲取模塊中的配置信息,包括TCP/IP和Wi-Fi配置信息。

          • EMSP_CMD_SET_CONFIG:設(shè)置模塊參數(shù)。

          • EMSP_CMD_SCAN_AP:獲取模塊可識(shí)別范圍內(nèi)的AP。

          • EMSP_CMD_START:啟動(dòng)模塊的Wi-Fi連接和TCP鏈接。

          • EMSP_CMD_SEND_DATA:通過(guò)模塊向網(wǎng)絡(luò)上發(fā)送數(shù)據(jù)。

          • EMSP_CMD_RECV_DATA:通過(guò)模塊從網(wǎng)絡(luò)上接收數(shù)據(jù)。

          • EMSP_CMD_GET_STATUS:讀取模塊在透明數(shù)據(jù)傳輸模式的網(wǎng)絡(luò)狀態(tài)。包括TCP的狀態(tài)和Wi-Fi的工作狀態(tài)。

          • EMSP_CMD_GET_VER:獲取模塊版本號(hào),包括硬件版本和固件版本。

          • EMSP_CMD_GET_MF_INFO:獲取模塊的生產(chǎn)廠家信息。

          • EMSP_CMD_GET_RF_POWER:獲取模塊無(wú)線收發(fā)功率。

          • EMSP_CMD_SET_PF_POWER:設(shè)置模塊發(fā)射無(wú)線功率。

          配置模式下命令的發(fā)送與響應(yīng)實(shí)現(xiàn)如下:

          按照表4的數(shù)據(jù)包格式,組裝成一個(gè)完整的命令之后,把命令數(shù)據(jù)放入sendbuf緩沖區(qū)中,len是發(fā)送的數(shù)據(jù)包長(zhǎng)度。

          UART_send_buf(sendbuf,len);

          DelayMs (1500);//responsehasadelay

          if(cmdcode==EMSP_CMD_SCAN_AP)

          DelayMs (1500);

          if(cmdcode==EMSP_CMD_SET_CONFIG)

          DelayMs (1000);

          returnrecv_cmd();->recvlen=UART_receive_buf(recvbuf);

          在recv_cmd()函數(shù)中調(diào)用UART_receive_buf函數(shù),將接收到的響應(yīng)數(shù)據(jù)包放入recvbuf中,recvlen是響應(yīng)數(shù)據(jù)包的長(zhǎng)度。之后對(duì)響應(yīng)數(shù)據(jù)包做進(jìn)一步的處理。

          從實(shí)現(xiàn)上來(lái)說(shuō),EMSP協(xié)議中各命令的功能不同,處理時(shí)所需要的時(shí)間也是不同的。因此每條發(fā)送的命令等待響應(yīng)所需的延遲也是不同的。

          EMSP接口函數(shù)庫(kù)

          EMSP協(xié)議接口函數(shù)庫(kù)提供了一系列API函數(shù),通過(guò)調(diào)用這些函數(shù)可以輕松地在各種嵌入式設(shè)備上實(shí)現(xiàn)對(duì)EMW-380-C Wi-Fi模塊的控制和參數(shù)配置。我們將這些接口函數(shù)庫(kù)添加到我們的工程中,如下圖11為工程中的文件目錄結(jié)構(gòu)。

          圖11 工程目錄結(jié)構(gòu)

          EMSP接口函數(shù)庫(kù)由標(biāo)準(zhǔn)C編寫(xiě)而成,由以下三個(gè)C語(yǔ)言文件及其對(duì)應(yīng)的頭文件構(gòu)成。

          1.em380c_hal.c

          該代碼實(shí)現(xiàn)了EMW-380-C模塊和嵌入式設(shè)備之間的硬件接口。

          2.EMSP.c

          該代碼實(shí)現(xiàn)了EMSP命令的協(xié)議處理。

          3.EMSP_API.c

          該代碼可用于操控模塊的API函數(shù),用戶只需要調(diào)用這些函數(shù),就可以對(duì)模塊實(shí)現(xiàn)配置和操作。

          啟動(dòng)Wi-Fi模塊,建立Ad-hoc網(wǎng)絡(luò)

          根據(jù)自己的硬件環(huán)境實(shí)現(xiàn)以上EMSP接口函數(shù)庫(kù)。就可以很容易地使用這些接口函數(shù)了。要完成啟動(dòng)Wi-Fi模塊,建立Ad-hoc網(wǎng)絡(luò)這部分功能,首先要配置EMW-380-C與PIC32 Ethernet Starter KIT板子間的接口,即UART的配置。EMW-380-C的UART默認(rèn)配置為:波特率:115200,數(shù)據(jù)位:8位,停止位:1位,奇偶校驗(yàn):無(wú),硬件流控:無(wú)。所以可以調(diào)用EMSP_API.c文件中的EM380C_Init()函數(shù)對(duì)EMW-380-C模塊進(jìn)行UART的配置。當(dāng)硬件接口配置完成后,可以給EMW-380-C模塊發(fā)送一個(gè)EMSP_CMD_GET_VER命令,來(lái)測(cè)試配置是否成功。成功后將從while循環(huán)中跳出來(lái)。接著給EMW-380-C模塊發(fā)送EMSP_CMD_START命令來(lái)啟動(dòng)模塊。如果想改變EMW-380-C Wi-Fi的一些基本參數(shù),可以通過(guò)給該模塊發(fā)送EMSP_CMD_SET_CONFIG命令。在本系統(tǒng)中,我們的模塊的基本網(wǎng)絡(luò)參數(shù)如下:

          Wi-Fi Mode:Ad-hoc

          Transfer Protocol:TCP

          SSID:Microchip

          無(wú)加密

          IP address:192.168.1.5

          Net Mask:255.255.255.0

          Port Number:8080

          通過(guò)以太網(wǎng)連接到server

          這部分的功能主要用到TCP/IP協(xié)議棧的一些API函數(shù)。在本系統(tǒng)設(shè)計(jì)中,我們通過(guò)按鈕SW1來(lái)觸發(fā)該功能。該功能的實(shí)現(xiàn)主要在GenericTCPClient()函數(shù)中。當(dāng)按鈕SW1被按下后,考勤系統(tǒng)客戶端進(jìn)入SM_HOME狀態(tài),通過(guò)調(diào)用TCPOpen函數(shù)來(lái)建立與遠(yuǎn)程服務(wù)器間的socket連接,在本系統(tǒng)中,服務(wù)器開(kāi)啟的偵聽(tīng)端口為3000。

          客戶端與server端的通訊

          當(dāng)考勤系統(tǒng)客戶端與服務(wù)器成功建立連接之后,考勤系統(tǒng)客戶端進(jìn)入SM_SOCKET_OBTAINED狀態(tài)。而考勤系統(tǒng)客戶端的EMW-380-C Wi-Fi模塊在UDP 67端口進(jìn)行偵聽(tīng),當(dāng)手機(jī)給EMW-380-C Wi-Fi模塊發(fā)送DHCP請(qǐng)求時(shí),EMW-380-C Wi-Fi模塊就可以獲取該手機(jī)的MAC地址。EMW-380-C Wi-Fi模塊將獲取的手機(jī)MAC地址通過(guò)UART將其主動(dòng)發(fā)送給PIC32 Ethernet Starter KIT。比如PIC32 Ethernet Starter KIT收到如下信息:30 00 10 00 01 00 BE FF 00 1D 0F 31 7E 17 72 9A,則前8字節(jié)是MAC地址信息的頭部,接著的6字節(jié)是MAC地址,最后兩字節(jié)表示檢驗(yàn)和。此時(shí)PIC32 Ethernet Starter KIT在SM_SOCKET_OBTAINED狀態(tài)下將對(duì)這16字節(jié)數(shù)據(jù)進(jìn)行AES加密,然后將這經(jīng)過(guò)加密的16字節(jié)數(shù)據(jù)發(fā)送給遠(yuǎn)程的服務(wù)器端。一個(gè)應(yīng)用場(chǎng)景為:上班時(shí),只要與考勤系統(tǒng)客戶端建立Ad-hoc點(diǎn)對(duì)點(diǎn)連接,然后考勤系統(tǒng)客戶端給服務(wù)器發(fā)送經(jīng)過(guò)加密的MAC地址信息,當(dāng)服務(wù)器端接收到這些加密的信息后,對(duì)加密信息進(jìn)行相應(yīng)的解密,提取出MAC地址,從而進(jìn)行身份認(rèn)證進(jìn)入公司。下班時(shí),除了與考勤系統(tǒng)客戶端建立Ad-hoc點(diǎn)對(duì)點(diǎn)連接之外,還要按下考勤系統(tǒng)客戶端上的SW2按鈕,這樣考勤系統(tǒng)客戶端給服務(wù)器發(fā)送了手機(jī)的MAC地址和下班的標(biāo)識(shí)信息。這樣可以區(qū)別此時(shí)是上班還是下班。

          4.2上位機(jī)軟件設(shè)計(jì)

          4.2.1數(shù)據(jù)庫(kù)設(shè)計(jì)

          1. 為了演示方便,本系統(tǒng)采用ACCESS2007數(shù)據(jù)庫(kù),建立Mobile_acces_control_system數(shù)據(jù)庫(kù),里面建有兩張表Presonnel_Info和RecordList,用來(lái)保存公司人員信息。

          2. Presonnel_Info表保存公司人員的姓名和其手機(jī)WI-FI模塊中的MAC地址(主鍵),如表5。該表主要是由管理人員錄入人員的這兩項(xiàng)基本信息。

          表5 Presonnel_Info表

          Mac_Addr

          文本

          Staff_Name

          文本

          1. RecordList保留每天公司工作人員的上班出入時(shí)間記錄,系統(tǒng)會(huì)先查找Presonnel_Info表來(lái)核查你的身份信息,若在Presonnel_Info表中有你的基本信息,系統(tǒng)會(huì)主動(dòng)為你添加你每天的上下班時(shí)間記錄信息,如表6。

          表6 RecordList表

          ID

          自動(dòng)編號(hào)

          Mac_Addr

          文本

          Staff_Name

          文本

          In_Time

          文本

          Out_Time

          文本

          4.2.2應(yīng)用程序設(shè)計(jì)

          主要流程概述:應(yīng)用程序作為服務(wù)器端,首先應(yīng)用程序開(kāi)啟服務(wù)器程序(端口設(shè)為3000),用線程實(shí)現(xiàn)等待客戶端的連接,可以接受多個(gè)客戶端請(qǐng)求。若有客戶端連接上,檢查傳送來(lái)的數(shù)據(jù)包是否合法;利用AES算法對(duì)經(jīng)過(guò)加密的身份認(rèn)證信息進(jìn)行解密,合法則提取出MAC地址,通過(guò)MAC地址到數(shù)據(jù)庫(kù)中查找該人員是否為公司人員;若是公司人員則通過(guò)數(shù)據(jù)包信息判斷是進(jìn)入還是出去,記錄其出入時(shí)間信息。數(shù)據(jù)庫(kù)中只保留人員每天的一次上下班記錄,若有重復(fù)會(huì)給出提示,你已經(jīng)有出或入記錄信息。在顯示窗口會(huì)實(shí)時(shí)顯示每個(gè)人員的出入記錄。上位機(jī)流程如下圖12。

          圖12上位機(jī)服務(wù)器處理流程

          如下圖13為我們的PC端服務(wù)器界面。當(dāng)有客戶端與我們的服務(wù)器端成功建立TCP連接之后,界面的左下角就會(huì)顯示“客戶端連接上”。該服務(wù)器端可以顯示人員的出入記錄。如果只想顯示當(dāng)天的出入記錄,則只要點(diǎn)擊“顯示當(dāng)天記錄”即可。如果有非公司的人員想要進(jìn)入公司,由于該人員的手機(jī)MAC地址并沒(méi)有在我們的數(shù)據(jù)庫(kù)中進(jìn)行登記,所以將不會(huì)通過(guò)服務(wù)器端的身份認(rèn)證,從而不會(huì)為該人員開(kāi)門(mén)。

          圖13 服務(wù)器端界面



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();