jlinkcn

          My Links

          Blog Stats

          常用鏈接

          留言簿

          隨筆檔案

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          以太網(wǎng)和Zigbee的家居信息采集系統(tǒng)

          0 引言

          上世紀(jì)80 年代發(fā)達(dá)國(guó)家率先提出智能化住宅概念,智能化住宅對(duì)家居智能系統(tǒng)的發(fā)展起很大促進(jìn)作用,同時(shí)家居信息采集作為住宅智能化起核心作用的一部分,推動(dòng)著智能化家居的發(fā)展。家居信息采集系統(tǒng)預(yù)定完成的目標(biāo)是讓使用家庭更方便、更舒適、更安全,同時(shí)也符合環(huán)境保護(hù)的標(biāo)準(zhǔn)。

              上世紀(jì)90 年代我國(guó)首次提出家居信息采集設(shè)計(jì)思想,同時(shí)發(fā)展迅速。

              小區(qū)智能化的定義為:利用計(jì)算機(jī)、通訊網(wǎng)絡(luò)、自動(dòng)化技術(shù)和射頻卡技術(shù),通過(guò)高效的信號(hào)傳輸網(wǎng)絡(luò),將多元化信息和管理服務(wù)、物業(yè)管理與安防技術(shù)集成,為小區(qū)的服務(wù)和管理提升到智能化階段,以實(shí)現(xiàn)快速、方便的服務(wù)。

              本設(shè)計(jì)中利用Zigbee數(shù)傳技術(shù)和以太網(wǎng)技術(shù)實(shí)現(xiàn)了對(duì)遠(yuǎn)程家居信息的采集,同時(shí)利用以太網(wǎng)技術(shù)將采集到的數(shù)據(jù)信息通過(guò)以太網(wǎng)模塊實(shí)現(xiàn)網(wǎng)絡(luò)監(jiān)控?cái)?shù)據(jù)實(shí)時(shí)更新。

          1 硬件電路及軟件代碼設(shè)計(jì)

          本設(shè)計(jì)所完成的功能需要兩塊硬件電路:Zigbee無(wú)線模塊和串口轉(zhuǎn)以太網(wǎng)模塊。

              由于TI 公司在設(shè)計(jì)Zigbee 芯片時(shí)有較完善的Zigbee外圍硬件電路設(shè)計(jì)方案,所以本文采用TI公司原始的設(shè)計(jì)方案并根據(jù)需要作適當(dāng)?shù)男薷摹4谵D(zhuǎn)以太網(wǎng)模塊是針對(duì)數(shù)據(jù)顯示方面的具體應(yīng)用,實(shí)現(xiàn)RS232 通信協(xié)議和以太網(wǎng)通信協(xié)議間的轉(zhuǎn)換。

              Zigbee無(wú)線模塊功能是Zigbee數(shù)據(jù)采集節(jié)點(diǎn)采集到的溫濕度數(shù)據(jù)和煙霧數(shù)據(jù)通過(guò)Zigbee 通信協(xié)議發(fā)送到Zigbee 協(xié)調(diào)器節(jié)點(diǎn),然后通過(guò)RS232 串口通信協(xié)議傳輸?shù)酱谵D(zhuǎn)以太網(wǎng)模塊。

              串口轉(zhuǎn)以太網(wǎng)模塊功能是當(dāng)串口接收到Zigbee協(xié)調(diào)器節(jié)點(diǎn)傳來(lái)的數(shù)據(jù)包時(shí),通過(guò)微控制器移植的uIP協(xié)議棧進(jìn)行處理,并將處理后的IP 數(shù)據(jù)包通過(guò)遠(yuǎn)程DMA 操作寫(xiě)入以太網(wǎng)控制芯片,并由以太網(wǎng)控制芯片處理發(fā)送。

          采用的CC2530 Zigbee 無(wú)線模塊是TI 公司基于CC2530芯片設(shè)計(jì)的一款Zigbee數(shù)傳射頻芯片。串口轉(zhuǎn)以太網(wǎng)模塊結(jié)構(gòu)圖如圖1 所示。

          clip_image002

          1 串口轉(zhuǎn)以太網(wǎng)模塊結(jié)構(gòu)圖

              單片機(jī)選用STC公司的STC12C5A60S2 系列,其具有高速、高可靠、低功耗、低價(jià)格等優(yōu)點(diǎn)。由于單片機(jī)內(nèi)部的RAM不能夠滿足對(duì)數(shù)據(jù)存儲(chǔ)的需求,因此設(shè)計(jì)添加一個(gè)32K RAM,選取62256 芯片。

              與以太網(wǎng)的接口芯片采用RealTek公司的RTL8019 系列網(wǎng)絡(luò)芯片。

              設(shè)計(jì)中RTL8019 主要實(shí)現(xiàn)底層協(xié)議DLCMAC并提供網(wǎng)絡(luò)接口,51 內(nèi)核單片機(jī)實(shí)現(xiàn)嵌入式的TCP/IP協(xié)議棧部分功能和具體應(yīng)用,電源模塊采用USB供電模塊,通信電路采用RS232 串行接口,網(wǎng)絡(luò)接口使用RJ45

              RTL8019 10M 網(wǎng)卡芯片,屬于NE2000 以太網(wǎng)驅(qū)動(dòng)系列,因此程序設(shè)計(jì)思路完全符合NE2000 系列。

              RTL8019 有三種工作方式,即跳線方式、免跳線方式、即插即用方式。

          1.1 Zigbee模塊傳感器選擇

          溫度傳感器采用DS18B20,它采取單總線協(xié)議,經(jīng)一個(gè)IO口進(jìn)行讀寫(xiě)操作以獲取溫度數(shù)據(jù)。濕度傳感器采用濕敏電阻。但分立的采用兩個(gè)傳感器不利于資源整合和節(jié)能需求,因此設(shè)計(jì)中采用了溫濕度一體的傳感器芯片DHT11

              DHT11 傳感器是一個(gè)專用的數(shù)字式溫濕度傳感器。其采用電阻元件感應(yīng)濕度,獲取濕度數(shù)據(jù);利用一個(gè)NTC測(cè)溫元件感知溫度數(shù)據(jù),溫度測(cè)量范圍為-40°C~120°C。同時(shí),傳感器提供了8/12bits 的相對(duì)濕度分辨率和12/14bits 的溫度分辨率,在開(kāi)啟補(bǔ)償模式下,濕度測(cè)量精度能夠達(dá)到3,溫度可以達(dá)到0.4°C。測(cè)量精度符合設(shè)計(jì)要求。

              設(shè)計(jì)中采用了MQ-2煙霧報(bào)警器,該報(bào)警器廣泛應(yīng)用在家庭和工廠的氣體泄漏監(jiān)測(cè),適合丁烷、酒精、煙霧、一氧化碳等探測(cè),具有靈敏度高、快速響應(yīng)、穩(wěn)定、壽命長(zhǎng)和驅(qū)動(dòng)電路簡(jiǎn)單等優(yōu)點(diǎn)。

          1.2 Zigbee 組網(wǎng)步驟

          Z-Stack 協(xié)議棧支持三種種類型網(wǎng)絡(luò)方式:樹(shù)形、星形網(wǎng)絡(luò)和網(wǎng)狀網(wǎng)絡(luò)。設(shè)計(jì)中,傳感器節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)組建成星型網(wǎng)絡(luò)。

          組網(wǎng)步驟如下:

          1)定義Zigbee 數(shù)傳模塊各個(gè)節(jié)點(diǎn)的屬性。這樣就需要使用到Zstack協(xié)議棧的zgDeviceLogicalType=ZG_DEVICETYPE_ENDDEVICE函數(shù)將傳感器節(jié)點(diǎn)屬性定義為終端節(jié)點(diǎn),將與網(wǎng)關(guān)模塊相連接的節(jié)點(diǎn)通過(guò)zgDeviceLogicalType=

          ZG_DEVICETYPE_COORDINATOR 函數(shù)定義為協(xié)調(diào)器節(jié)點(diǎn)。

              2)為各Zigbee 數(shù)傳模塊節(jié)點(diǎn)分配64 位地址。用戶可以自行定義64 位長(zhǎng)地址,當(dāng)用戶定義錯(cuò)誤時(shí),系統(tǒng)會(huì)隨機(jī)生成地址。

              3)給Zigbee無(wú)線模塊上電后,協(xié)調(diào)器節(jié)點(diǎn)會(huì)自動(dòng)選擇通信質(zhì)量好、空閑的信道組建Zigbee 網(wǎng)絡(luò),同時(shí)發(fā)布14 PAN ID,并偵聽(tīng)有沒(méi)有節(jié)點(diǎn)需要加入網(wǎng)絡(luò)。

              4)當(dāng)終端節(jié)點(diǎn)接入電源后,它會(huì)自動(dòng)搜索附近存在的Zigbee 網(wǎng)絡(luò)。如果有網(wǎng)絡(luò)就發(fā)送加入網(wǎng)絡(luò)請(qǐng)求,然后等待協(xié)調(diào)器節(jié)點(diǎn)響應(yīng),當(dāng)協(xié)調(diào)器節(jié)點(diǎn)感知到請(qǐng)求并同意請(qǐng)求后終端節(jié)點(diǎn)加入網(wǎng)絡(luò)。最終,終端節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)建立起一個(gè)完整的Zigbee 星型網(wǎng)絡(luò)。

          1.3 uIP協(xié)議棧移植

          uIP協(xié)議棧的代碼采用用C語(yǔ)言編寫(xiě),可以非常方便的移植到不同的操作系統(tǒng)結(jié)構(gòu)中。其編譯棧能夠在很小容量的ROMRAM中運(yùn)行,并且有一個(gè)全局緩沖區(qū),該區(qū)域里面能包括硬件處理層、協(xié)議棧層和應(yīng)用層的緩存數(shù)據(jù),不需要對(duì)數(shù)據(jù)進(jìn)行拷貝處理,極大的節(jié)省存儲(chǔ)空間,支持多個(gè)主動(dòng)和被動(dòng)連接并發(fā)。

          協(xié)議棧結(jié)構(gòu)圖如圖2 所示。

          clip_image004

          2 uIP協(xié)議棧結(jié)構(gòu)圖

              uIP 協(xié)議棧通過(guò)函數(shù)uip-input()和靜態(tài)全局變量uip-bufuip-len 實(shí)現(xiàn)與網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)的連接。數(shù)組uip-buf 指定的緩存區(qū)存放嵌入式系統(tǒng)接收和將要發(fā)送的數(shù)據(jù)包。為減少存儲(chǔ)器的使用,接收和即將發(fā)送的數(shù)據(jù)包使用同一個(gè)緩存區(qū)存放。變量uip-len為接收發(fā)送緩存區(qū)的數(shù)據(jù)包長(zhǎng)度,判斷該變量數(shù)值大小來(lái)判斷系統(tǒng)是否接收到新數(shù)據(jù),或是否有數(shù)據(jù)需要發(fā)送到網(wǎng)絡(luò)上[6]。網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)接收到一個(gè)數(shù)據(jù)包后,將其存放到uip-buf中,并將數(shù)據(jù)包長(zhǎng)度寫(xiě)入uip-len,然后調(diào)用函數(shù)uip-input()。函數(shù)uip-input()uIP協(xié)議棧的底層入口,由其處理收到的數(shù)據(jù)包。函數(shù)uip-input()返回后,若有新數(shù)據(jù)需要發(fā)送,則把數(shù)據(jù)存放到數(shù)組uip-buf指定的緩存區(qū)中,數(shù)據(jù)長(zhǎng)度存放在變量uiplen中。系統(tǒng)判斷uip-len 的值,若uip- len 等于0,則表示無(wú)數(shù)據(jù)包要發(fā)送;若uip- len大于0,則表示有新數(shù)據(jù)需要發(fā)送,調(diào)用網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)發(fā)送數(shù)據(jù)。

          基于單片機(jī)的uIP協(xié)議棧的移植有以下九個(gè)步驟:

          1)建立KEILC工程文件,并建立src 目錄存儲(chǔ)源文件。

             2)將協(xié)議棧代碼主函數(shù)文件放入src 源文件目錄下。

              3)參考uIP協(xié)議棧源代碼里面的tapdev.c文件和以太網(wǎng)驅(qū)動(dòng)芯片資料編寫(xiě)網(wǎng)卡驅(qū)動(dòng)程序。

              4uIP 協(xié)議棧需要使用時(shí)鐘為TCP ARP 提供定時(shí)器服務(wù),因此觸發(fā)定時(shí)器0 模式作為時(shí)鐘,每隔20ms 讓計(jì)數(shù)器變量time_cnt1time_cnt 加到25 0.5s 后調(diào)用TCP 定時(shí)處理程序,在10s 后調(diào)用ARP 老化程序。

              5)在uIP 協(xié)議棧源代碼中找到uip.c uip.h 文件,并將其復(fù)制到src文件夾中,若需要使用ARP協(xié)議,則將uip_arp.cuip_arp.h 文件也放人src 下。

              6)找到uipopt.h uip-conf.h 文件,這兩個(gè)文件對(duì)本地IP 地址、MAC 地址、偵聽(tīng)數(shù)、ARP 表大小等參數(shù)進(jìn)行配置。

              7)編譯代碼找出錯(cuò)誤并改正使其編譯通過(guò)。

          1.4 顯示界面的編寫(xiě)

          為了用戶能夠?qū)崒?duì)數(shù)據(jù)有直觀掌握,設(shè)計(jì)一個(gè)網(wǎng)頁(yè)用于實(shí)時(shí)了解家庭溫度、濕度和煙霧情況的監(jiān)控。采用HTMLHyper Text Mark-up Language)超文本標(biāo)記語(yǔ)言,其制作簡(jiǎn)單,功能強(qiáng)大,支持插入不同數(shù)據(jù)文件格式,具有簡(jiǎn)易性、可擴(kuò)展性、平臺(tái)無(wú)關(guān)性以及通用性等特點(diǎn)。uIP 協(xié)議棧在應(yīng)用層設(shè)計(jì)有Web瀏覽器,能夠通過(guò)Web瀏覽器讀取HTML網(wǎng)頁(yè)文件,同時(shí)用網(wǎng)頁(yè)形式顯示出來(lái)。

              瀏覽器不會(huì)直接顯示標(biāo)簽,而是通過(guò)標(biāo)簽內(nèi)容解釋相關(guān)網(wǎng)頁(yè)。

          超文本標(biāo)記語(yǔ)言設(shè)計(jì)網(wǎng)頁(yè)的整體框架如下:

          <html>

          <head>

          <title>頁(yè)面標(biāo)題</title>

          </head>

          <body>

          主體文件內(nèi)容

          </body>

          </html>

          2 系統(tǒng)測(cè)試

          2.1 節(jié)點(diǎn)模塊性能測(cè)試

          家居信息采集系統(tǒng)采用星型網(wǎng)絡(luò)方式組建,CC2530單片機(jī)在200m 通訊距離內(nèi)都能實(shí)現(xiàn)無(wú)丟包或可以接受范圍內(nèi)的丟包率通信,在家庭范圍內(nèi)終端節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)距離不會(huì)超過(guò)200m,所以借助串口助手調(diào)試傳感器節(jié)點(diǎn)數(shù)據(jù),如圖3所示。

          clip_image006

          3 終端節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)讀取數(shù)據(jù)對(duì)比圖

              在調(diào)試過(guò)程中,首先讀取終端Zigbee 數(shù)據(jù)采集節(jié)點(diǎn)采集到的數(shù)據(jù),然后在讀取協(xié)調(diào)器節(jié)點(diǎn)的數(shù)據(jù),做出對(duì)比,剛開(kāi)始打開(kāi)串口的一段時(shí)間內(nèi)沒(méi)有數(shù)據(jù)接收,這是由于終端節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)間在進(jìn)行組網(wǎng)操作,大約30s 后能接收到數(shù)據(jù),通過(guò)接收到的數(shù)據(jù)可判別通信的準(zhǔn)確性,圖3 為終端Zigbee 數(shù)據(jù)采集節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)讀取數(shù)據(jù)的對(duì)比圖,從圖中可以看出,左端串口助手讀取的是終端節(jié)點(diǎn)采集到的數(shù)據(jù),在數(shù)據(jù)格式中T&H&S分別代表了采集到的溫度、濕度和煙霧濃度,接著的三組數(shù)據(jù)分別代表了溫度、濕度和煙霧濃度的數(shù)值,右端的是協(xié)調(diào)器節(jié)點(diǎn)收到終端節(jié)點(diǎn)發(fā)送的數(shù)據(jù)然后用串口顯示的結(jié)果。

          2.2 串口轉(zhuǎn)以太網(wǎng)模塊性能測(cè)試

          本設(shè)計(jì)在測(cè)試時(shí)選用了一款RS232 轉(zhuǎn)RJ45 服務(wù)器測(cè)試軟件,該軟件能顯示網(wǎng)關(guān)RJ45 接口接收到的從串口中傳輸來(lái)的數(shù)據(jù),同時(shí)與串口發(fā)送的數(shù)據(jù)相比對(duì),測(cè)試數(shù)據(jù)傳輸?shù)臏?zhǔn)確性,測(cè)試結(jié)果如圖4 所示

          clip_image008

          4 RS232 轉(zhuǎn)RJ45服務(wù)測(cè)試軟件測(cè)試結(jié)果

          2.3 整體性能測(cè)試測(cè)試

          網(wǎng)頁(yè)動(dòng)態(tài)顯示結(jié)果如圖5 6 所示,圖5 6 分別代表了兩個(gè)時(shí)刻網(wǎng)頁(yè)顯示的數(shù)據(jù)。測(cè)試時(shí)通過(guò)人為的改變溫濕度和煙霧傳感器采集的數(shù)據(jù)來(lái)測(cè)試整體模塊的性能,從圖56 能夠看出改變的數(shù)據(jù)來(lái)驗(yàn)證整體實(shí)現(xiàn)的功能。

          clip_image010

          5 網(wǎng)頁(yè)顯示結(jié)果

          clip_image012

          6 網(wǎng)頁(yè)顯示結(jié)果

          3 結(jié)語(yǔ)

          基于Zigbee數(shù)傳模塊和以太網(wǎng)的家居信息采集系統(tǒng)是將Zigbee數(shù)據(jù)采集、發(fā)送和網(wǎng)絡(luò)信息相結(jié)合,用串口轉(zhuǎn)以太網(wǎng)形式將Zigbee數(shù)據(jù)采集節(jié)點(diǎn)采集到的數(shù)據(jù)發(fā)送到網(wǎng)絡(luò)中,并通過(guò)網(wǎng)絡(luò)設(shè)備顯示監(jiān)控的數(shù)據(jù)。完成了硬件電路和軟件設(shè)計(jì)調(diào)試,移植了uip協(xié)議棧實(shí)現(xiàn)了以太網(wǎng)的功能,盡可能地降低代碼量,節(jié)約了成本,具有很高的應(yīng)用價(jià)值。

             

          posted on 2015-03-18 22:12 小王王 閱讀(87) 評(píng)論(0)  編輯  收藏


          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 长葛市| 崇左市| 秦皇岛市| 湾仔区| 巴彦县| 麦盖提县| 石门县| 平舆县| 通海县| 邯郸县| 洪江市| 民和| 塘沽区| 温泉县| 正定县| 屏东县| 炉霍县| 麦盖提县| 扎囊县| 鹤庆县| 蕲春县| 邛崃市| 齐河县| 涿鹿县| 白水县| 汉寿县| 赤城县| 石首市| 大同市| 五华县| 广平县| 金溪县| 玉屏| 南平市| 红原县| 黄龙县| 关岭| 岫岩| 东乌珠穆沁旗| 和静县| 板桥市|