1. 程式人生 > >物聯網閘道器設計及實現

物聯網閘道器設計及實現

摘要

物聯網,簡而言之就是連線物品的網路,它是網際網路的應用擴充套件和延伸。主要是利用各種感測裝置和通訊手段,將M2M(即人與人、人與物、物與物)與網際網路相連線,實現智慧化的識別、定位、跟蹤、遠端監控和管理的一種網路。它是整合資訊管理技術變革和促進資訊產業的開端和基石,被稱為繼計算機、網際網路之後世界資訊產業發展的第三次浪潮。物聯網就是通常我們說的在應用智慧化感知、識別技術、普適計算、泛在網路(Ubiquitous Network)的基礎上將人與物、人與人、物與物聯絡起來的一種中介。在我們平時能夠看到並感覺到的世界裡,“物”是普遍存在的並不斷變化的個體,“物”與“物”之間的聯絡,必然“聯”到“網”中來,這裡所說的“物”是感知末梢的感測器裝置、接收感知資訊的智慧終端或者人。而閘道器就是我們平時所說的網路層上的協議轉換器,它具有高效率、實時響應、高可靠性、低功耗、抗干擾能力強等特點,利用其特點有效的融合了基礎通訊網與無線感測器網路,這些優勢使得傳統的智慧家居的區域監控發生了翻天覆地的產業變革,即把監控區域中的裝置和無線方式有機組合,這樣就可以實現一個能夠全面感知與管理的系統。

本文全面介紹了物聯網智慧閘道器的總體設計思路以及各個分模組的實現過程,並對整個設計中用到的物聯閘道器鍵技術ZigBee及其協議棧Z-Stack作了概括介紹,同時對閘道器的軟硬體設計、實現及測試也作了較為清晰明瞭的介紹與分析。以設計實現智慧家居系統中的近程控制系統為例,根據物聯網的原理、概念、應用,設計一個功耗低、成本少的物聯網服務閘道器。而低成本、低功耗也是該控制系統的重點和難點所在。本文即是重點論述該閘道器是怎麼實現的、較傳統閘道器有什麼優勢、該閘道器的應用意義等方面。首先要實現網際網路的擴充套件和延伸,即是將基於TCP/IP協議的Internet與基於ZigBee協議的無線感測器網路相連線。在硬體設計上,利用高效能的ARM9系列的smart210微處理器作為主控晶片,外接一個網絡卡PHY晶片,通過序列通訊實現與感測網協調器的通訊。接著就是為了實現無線感測網的監控,這就需要利用WEB遠端登陸到ARM閘道器伺服器。在軟體方面,為了使程式看起來有層次感,模組化,在程式碼設計方面力求簡單明瞭。最後利用嵌入式作業系統Ubuntu實現資源的管理和排程,藉助通訊協議棧實現TCP/IP與網路的互聯。

本文的獨特之處在於實現:嵌入式超文字伺服器端、近程控制終端與WSN協調器三者資料同步。應用ZigBee協議棧實現了資料的無線傳輸,實時監測並顯示室內溫度與系統IP。

關鍵詞:物聯網;服務閘道器;WSN;ZigBee;嵌入式系統

The design of IOT Smart Gateway Based on Loongson

Abstract

Just as its name implies,the Internet of things is the connection of network and objects.It is the application extension of the Internet. It connects the M2M ( people and people,people and things, things and things) to the Internet through a variety of sensing equipments and a variety of means of communication, so that realize the intelligent identification, location, tracking and remote monitoring and management of a network.As a key role of a new generation of IT and new technology revolution, it is the beginning and foundation to promote the technological change which includes integration of the information industry and information management .We also call it

“the third wave of world information industry development”.The Internet of things is a kind of mediation to link people with things,people with people,things with things on the basic of application of intelligent perception, recognition technology and pervasive computing, Ubiquitous Network (Ubiquitous Network) .In the macroscopic world'' things'' have the nature of ubiquity, diversity and mutability. The ''things'' can be as the sensor of nerve endings, or the smart terminals or the people.And gateway is a protocol converter based on the network layer , It has the ability of high efficiency、real-time response、 high reliability、low power consumption and strong anti-interference ability,This makes the better connection of basic communication network and the wireless sensor network .It also brings new industry opportunities to the traditional areas such as smart home monitoring .By this ,we can monitor equipment through wireless way of the area of the organic combination, so as to realize a comprehensive perception and complete management system.

In this paper, we discusses the gateway system, the design and implementation of the key technology of Internet of things application, gateway layer and the hardware and software of the system design scheme of home automation systematically.As an example to realize the remote and close range control system of smart home system, starting from the concept of Internet of things, It is the most important and the most difficult of the control system to design a low power consumption, low cost of Internet service gateway .This paper is focus on how the gateway work, what advantages it have than traditional gateway, the gateway application significance and so on.The most important step is to realize the expansion and extension of the Internet , that is, the Internet based on TCP/IP protocol will be connected to wireless sensor network based on ZigBee protocol.On the hardware design, we use ARM9 series smart210 microprocessor as the master control chip, external a PHY chip, Then realize the communication with sensing network communications coordinator through serial communication. Remote login to ARM gateway server.Followed by,in order to realize the monitoring of wireless sensor network, which requires using remote login to ARM gateway WEB server.On the designer of software , to increase the system application flexibility,we put forward a hierarchical, modular design thought. Using Ubuntu embedded operating system for resource management and scheduling and with the help of a communication protocol stack ,we realize TCP/IP and network interconnection.

This article is unique in achieving the data synchronization among the embedded Web server-side, short-range control terminals the WSN gateway.The system achieved the wireless transmission of data based on ZigBee protocol stack, realized the real-time monitoring of indoor temperature and system IP.

Key Words: The Internet of Things; service gateway; Wireless sensor networks ; ZigBee; Embedded system

目錄

第一章前言 1

1.1課題研究的背景與意義 1

1.2國內外研究現狀 2

1.3論文內容與結構 3

第二章系統總體設計與相關技術分析 5

2.1物聯網閘道器概述 5

2.2系統總體設計方案 6

2.2.1閘道器設計的基本要求 7

2.2.2閘道器功能模組的組成 7

2.2.3閘道器軟體總體構架 7

2.4無線感測器網路技術 9

2.4.1無線網路通訊協議 9

2.4.2核心支撐技術 11

2.5嵌入式系統 12

2.5.1嵌入式處理器 12

2.5.2 嵌入式 TCP/IP 12

2.6本章小結 13

第三章系統硬體設計 14

3.1物聯網服務閘道器的硬體整體結構 14

3.1.1系統電路設計方案概述 14

3.1.2系統硬體的整體結構框圖 14

3.2主控制模組 15

3.2.1 ARM 微控制器 S5PV210 15

3.2.2主控制模組電路設計 17

3.2.3網路介面電路 17

3.2.4序列介面電路 18

3.2.5 USB 介面電路 19

3.3乙太網介面模組 19

3.4 WSN協調器介面模組 21

3.5本章小結 22

第四章三個模組的連通性測試 23

4.1 ZigBee內部模組通訊實現 23

4.2 ZigBee模組與閘道器通訊實現 30

4.3閘道器與因特網通訊模組實現 36

第五章系統功能測試 41

結論 43

致謝 45

參考文獻 46
第一章前言

1.1課題研究的背景與意義

目前,物聯網技術的發展已成為國家戰略議程之一。為了在未來物聯網技術革命中搶佔絕大部分市場,部分國家和地區紛紛加大對其資金投入力度。美國總統奧巴馬對物聯網技術的發展相當重視,一度與開發綠色能源技術相提並論,並已將其提上國家戰略議程。2009 年世界IT巨頭 IBM 公司 CEO彭明盛提出了構建智慧地球的想法,其戰略核心就是物聯網。

前國務院總理溫家寶在2009年首次提出感知中國這麼一個概念後,我們也在積極的把握這次難得的機遇,從而使得物聯網的發展在我國引起了新一輪的發展高潮。國家工業和資訊化部相關負責人對外也表示出我國物聯網的標準體系已基本形成了,同國際的標準化組織也逐漸靠攏,近年提交的部分提案都給予了良好的反饋。

物聯網技術早已在各個領域開枝散葉,如環保、交通、家居、農業等。值得關注的是在一些危險程度比較高的領域,物聯網的應用就更體現出其重要的科研價值和實用價值,如鐵路及高速公路突發災害預警、危險區域環境監控、搶險、救災、防火防盜等。如圖1-1所示:

圖1-1 物聯網應用示意圖

其中,物聯網的感知層是物聯網發展和應用的基礎。它處於三層架構的最底層,能夠實現精確度更高、感知更全面,還可以幫我們解決成本低、功耗小、體積小的問題,主要解決人類世界和物理世界的資料獲取問題。感知層包括兩部分,分別是:資料採集和資料短距離傳輸,此處的短距離傳輸技術,尤指中低速無線短距離傳輸技術,如藍芽、ZigBee等,這類技術傳輸距離均小於100m,速率低於1M bit/s。

而物聯網的網路層,主要負責把感知層感知到的資料無障礙、高可靠性、高安全性地進行傳送。它在物聯網三層架構中是具有最強產業能力、最高標準化程度且最成熟的,而其關鍵的地方就是如何優化和改進物聯網應用的特徵,以形成協同感知網路。

物聯網發展的好與劣關鍵取決於其應用層。它主要對資訊處理和人機介面的問題進行一系列處理,並結合物聯網技術與行業資訊化需求,對感知和傳輸來的資訊進行及時的分析和處理,做出正確的控制和決策,從而實現真正意義上智慧化的管理、應用和服務。

1.2國內外研究現狀

物聯網閘道器由感測器網路和公共傳輸網路兩部分組成。對於物聯網閘道器,目前研究的熱點問題是感測器網路和閘道器如何接入公共網路。當前,世界各國對物聯網的研究仍然呈上升之勢,美國、歐盟、中國等國家都投入鉅額資金在此項研究上。物聯網閘道器是對異構網路的整合,所以其研究中最重要的一環是實現物聯網的應用。物聯網的產生與我們的現實生活息息相關,這就決定其必將在未來的物聯網時代迅速搶佔制高點。物聯網是實現人類通訊的重要樞紐,主要是基於它的以下三個重要功能:

1、具有感知網路接入的能力,即能有效的收集感測器資料;

具有異構網路互相通訊的能力,即能完成資料協議之間資料的轉換;

3、具有自動監測並可以控制管理的能力,即能自定義閘道器服務使其智慧化。

1.3論文內容與結構

本文著重介紹的是智慧閘道器的結構及其如何實現。主要包含以下部分:

1、研究感測器與感測網路;

研究嵌入式系統;

研究UDP協議與其他協議的轉換;

研究軟體設計模式與人機互相通訊的模式。

小型家居系統實現應用的方案設計。

本文以嵌入式技術為應用平臺,利用Zigbee的無線感測器網路良好效能與優勢並藉助傳統的Internet基礎應用技術設計的一個在室內環境下實現溫度監測的智慧閘道器。

本文主要工作和研究的主要內容如下:

第一章緒論:主要闡述本課題的國內外研究背景、研究意義及本論文的基本框架。

第二章系統設計與相關技術分析:首先分析物聯網閘道器的功能需求,然後對閘道器總體框架進行了設計,接著論述了無線網路通訊協議並介紹了其支撐技術,最後介紹了嵌入式處理器和相關作業系統。

第三章物聯網閘道器的硬體電路設計:主要介紹主控制器、外圍晶片的選擇和介面電路的設計。

第四章三個模組的分塊除錯:主要介紹ZigBee內部通訊模組、ZigBee與閘道器通訊模組、閘道器與因特網通訊模組及各模組的分塊除錯。

第五章系統性能測試:對三個模組進行整機除錯,通過對結果進行分析得出了該設計方案具有一定的科學性、可行性。

第二章系統總體設計與相關技術分析

2.1物聯網閘道器概述

物聯網基本網路由感知層、網路層和應用層組成。感知層以感測器網路為載體,主要用來識別物體和採集相關資訊。網路層主要有感測層網路和網際網路、網路管理控制、資訊的智慧化幾部分,它介於感知層和應用層之間,主要職能是將感知層獲取的資訊進行傳遞和處理。

物聯網體系架構圖如圖2-1所示:

圖2-1 物聯網體系架構圖

物聯網閘道器處於物聯網體系結構中的匯聚層,其兩端連線的分別是感測網路和公共傳輸網路。當感測裝置種類少、數量不多時,直接將其接入公共網路就行。可是當感知層中感測裝置種類和數量比較多時,為了不浪費接入資源,我們只需要將感知層中的裝置獨立的接入網路就可以實現。但感知層網路中裝置的作用範圍是非常有限,這就要求我們必須先將感測器資料先匯聚到統一的裝置進行融合處理,然後再把資料打包傳送到網路層。這樣就在現有的條件下既節省了網路資源又實現了感測網路的資料傳輸。通過查閱資料知,在感知層和網路層之間新增的一層可以實現感知層資料的匯聚,這層稱為匯聚層。如圖 2-1 所示。閘道器作為異構網之間的紐帶,主要體現在匯聚層。這樣就可實現感知層和網路層的無縫銜接。而匯聚層主要是實現Internet遠端監控的WEB服務和作為無線感測器網路的資料收發中心。它通過網路,將從感知層的感測器裝置採集到的資料傳送到傳輸網路中,同時將資料融合處理,實現資料庫服務,藉助終端這個平臺,就可以實現實時監測、管理感知層的裝置狀態和資訊,以提供更為便捷的近程監控。

2.2系統總體設計方案

本課題研究設計的物聯網閘道器要通過串列埠處理來自WSN節點的資料,這就決定了實現物聯網閘道器的硬體平臺必須可以提供足夠強大的網路支援,而且還需要支援TCP/IP協議。綜上,總體設計框圖如圖2-2所示:

圖2-2 總體設計框圖

下面將對物聯網網關係統的整體設計思路和方案進行詳細的討論分析。

2.2.1閘道器設計的基本要求

物聯網閘道器是介入無線感測器網路與網際網路之間實現感知網路與基礎通訊網之間的橋樑。它既要實現異構網通訊中轉作用,又要能實現對感知網路的管理,並有效的結合廣域互聯與局域互聯,所以,閘道器的協作能力也應該較強。另外,閘道器在移動過程中應始終保持與網路的連線,所以,閘道器的移動能力也應該較強。當然,考慮到閘道器應該要實現無線感測網路與網際網路間的互動信令、資料的轉換,所以,閘道器的信令處理能力也應該較強。最後不可忽略的一點,閘道器應能夠迎合需要適時保留終端節點所處的位置、路由、認證、資料資訊等,所以,閘道器的資料儲備能力也應該較強。

2.2.2閘道器功能模組的組成

閘道器是廣域網和外部網路中間的一個節點,作為入口節點的它,一方面,要能接受允許客戶的遠端訪問,即要支援TCP/IP協議議並能提供WEB服務。另一方面,從使用者體驗角度來看,使用者要能通過遠端PC對整個網路進行控制。在本文閘道器設計中,硬體平臺是ARM微處理器,它對外就是把乙太網接入公共網路,對內就是把無線感測器節點組成無線感測器網路連成一體。通俗的說就是閘道器不僅要具有他本身應有的功能,還應具有伺服器的功能。

2.2.3閘道器軟體總體構架

物聯網閘道器處於物聯網體系結構中的匯聚層,其兩端連線的分別是感測網路和公共傳輸網路。在本設計中,採用RS-232/485與Wi-Fi接入的方式實現感測網路的通訊,公共網路端採用的是基於乙太網接入的方式。閘道器整體框架如圖 2-3所示:

圖2-3 閘道器整體框架圖

ZigBee內部連通就是一個星形拓撲結構,這個拓撲結構由一個負責分配ID和地址、並對其他網路節點傳送的資訊進行資料封裝的協調器(PAN)構成,其他節點也只能通過這個協調器來和外部網路進行資訊交換。ZigBee網路與閘道器的通訊主要是通過串列埠,當協調器收到來自鏈路節點的資料時,就把資訊傳送到應用層,應用層再呼叫串列埠API傳送到閘道器,網路主要就是根據內部協議轉換機制把該資料轉換成可以接受的資料,然後再發送到網際網路。閘道器到網際網路通訊機制是雙向的,所以完成其中一步的通訊即可。它們的通訊用串列埠就可以實現,網際網路的資料通過串列埠傳送到協調器,資料封裝後,根據ZigBee的短地址(MAC地址與實體地址)傳送出去。

2.3閘道器硬體總體構架

本文在綜合考慮相容性、成本、價效比等方面後,CPU採用基於ARM9 smart 210,ZigBee模組核心晶片採用CC2530,其閘道器的硬體結構圖如圖2-4所示:

圖2-4 閘道器的硬體結構圖

2.4無線感測器網路技術

無線感測器網路(WSN)是由許多在監測區域內分佈的大量廉價微型感測器節點,通過無線通訊方式形成的一個多跳自組織網路,它使用感測器協作地監控不同位置的物理或環境狀況並進行相應的資料採集與處理,最終將其報告給使用者。

2.4.1無線網路通訊協議

對於WSN的應用來說,綜合考慮實現時軟硬體的各個方面,通訊協議的選取就顯得尤為重要。WSN通訊協議特點如下:

節點的通訊協議要求簡單。避免受到如感測器節點的能源儲備、計算與處理能力、儲存量、通訊能力等限制。

2.通訊協議應具有對應的處理體系。防止拓撲結構隨著外界環境變化而變化。

3.採用模組化設計。為了使感測器網路的通訊協議針對不同的應用有不同的配置。

目前,在WSN的應用中,ZigBee技術應用最為廣泛。ZigBee是一種低速短距離傳輸的無線網路協定,它主要優勢是低速、低耗電、低成本、支援大量網路節點、支援多種網路拓撲、低複雜度、快速、可靠、安全。它的傳輸速率為10kbit/s-250kbit/s,有效覆蓋範圍為10m-75m,可同時支援65536個裝置。ZigBee協議棧:

ZigBee協議棧由層模組組成。每一層都執行一組特定的服務:如資料實體提供資料傳輸,管理實體提供所有其他的服務。

每個SAP都能支援多種服務原語來實現要求的功能,而這個SAP則是由上一層提供的介面。

圖2-5 ZigBee協議棧結構概覽

2.4.2核心技術

核心支撐技術就是建立在通訊協議的基礎之上的一個具有具體應用環境的網路系統,並且通過操作協議的應用層服務介面來封裝對底層的操作。WSN的核心支撐技術如下:

(1)拓撲控制。路由協議的基礎,網路的生產時間受其影響比較大。為了有效的減少通訊間的通訊干擾,必須選擇符合要求的拓撲結構與功率。

(2)節點定位。原理是根據一定的演算法在已知節點基礎上定位未知節點。節點定位在有些場合是比較重要的,如森林火災。

(3)時間同步。節點間時間的必須是同步的,因為WSN中是分散式協同工作。

(4)資料管理與融合。為更好地管理感測器網路資料,需要將使用者遮蔽在技術之外且能夠友好地控制WSN,使物理網路邏輯化。

2.5嵌入式系統

目前,應用最廣泛的專用電子系統非嵌入式系統莫屬。隨著應用範圍的擴充套件與延伸,對技術廣度和深度的要求也越來越苛刻,主要體現在智慧控制的應用與處理資訊的能力,以及對裝置的成本的高低、效能好壞、開發週期長短和可靠性高低等的關注。

2.5.1嵌入式處理器

嵌入式處理器核心是嵌入式系統,縱觀整個嵌入式處理器應用市場,微控制器的成功案例雖然尤為顯著,而單純的微控制器或微控制器技術顯然已經無法滿足需求。而ARM晶片憑藉處理能力強和功耗低等優勢一舉搶佔市場先機,並逐步滲透到我們生活的各個領域。基於ARM晶片的優勢考慮,本設計選取了Cortex-A8系列中的互聯型產品S5PV210作為總控制晶片。因為它的片內外設非常豐富,大可不必再對儲存器再擴充套件,從而開發成本也減少了,開發難度也降低了。

2.5.2 嵌入式 TCP/IP

在Internet上所使用的TCP/IP協議是一個分層設計的協議集合,每一層有每一層的功能。在嵌入式系統中的TCP/IP具有其顯著的特點:(1)儲存使用量減少。為了不影響到系統性能和成本,在實現嵌入式系統中應該想盡辦法減少儲存空間的使用量。(2)高度可裁剪性。為滿足不同應用的需求,在協議棧的實現必須高度模組化,以方便更好地實現對目標系統的可栽剪。通常可裁剪程度同程式碼實現的模組化程度成正比。(3)可移植性強。嵌入式系統硬體平臺雖然很多,但我們平時在設計時應注意在實現的過程中應避免語言的不協調性。同時為了提高程式碼的複用率,在硬體驅動層我們必須進行高精度的抽象和封裝,使協議獨立於平臺。

2.6本章小結

本章對物聯網服務閘道器的結構與它在物聯網應用中的功能作了深入分析,根據需求設計出系統總體方案,並分析了實現該設計系統所需要的核心技術,即無線感測器網路和嵌入式系統。

第三章系統硬體設計

本章主要是介紹系統硬體的各模組電路設計原理。在功能上,物聯網閘道器既要作為無線感測器網路的控制中心,又要實現一個嵌入式WEB伺服器,即既要滿足到遠端控制的需要,又要考慮到室內近程控制的便捷性。故硬體電路中應包含以下的功能電路:能實現通訊、控制和管理,能實現網路連線,能執行射頻模組的無線收發資訊,能實現近程控制的基本輸入輸出。

3.1物聯網服務閘道器的硬體整體結構

本設計,其實就是一個智慧型電子系統,因為它廣泛涉及到多工通訊、通訊協議控制、資料傳輸與處理等方面。

3.1.1系統電路設計方案概述

本系統採用以ARM為代表的高效能微控制器(MPU)為核心,其優勢是有強大的處理器、豐富的片內外設,主要適用於的應用場合就是那些需要作業系統、支援多工、良好人機互動功能的情形。

3.1.2系統硬體的整體結構框圖

本系統採用ARM Cortex-A8核心的S5PV210的微處理器為主控制晶片來實現設計。

系統硬體結構框圖如圖3-1所示。在該圖中,主要分為兩部分,一部分是ARM處理器內部結構及其片內外設,位於藍色粗線框內部;另一部分最小系統電路及外圍應用電路,位於藍色粗線框外部。

圖3-1 系統硬體結構框圖

本系統依據功能主要劃分以下三個模組:主控制模組、乙太網介面模組、WSN協調器介面模組。現在簡單闡述下其功能:

(1)主控制模組:該模組以ARM作為系統的主處理器,晶片執行所必須的外接電路模組包括電源電路、時鐘電路、復位電路,而這些便組成了最小系統電路。除此之外還有本地應用電路,如:輸入輸出的LCD、KEY和LED電路、儲存擴充套件資料的SD卡介面、5V電源接入和程式下載的MINI USB介面電路、與PC機通訊的電平轉換電路等。

(2)乙太網介面模組:因為主控制器已經可以實現網路接入對MAC層的支援,所以在外部只接乙太網的PHY以及網路介面就行。

(3)WSN協調器介面模組:該介面模組是區域性無線感測器網路的總排程中心,通常接WSN的協調器,如:CC1110、CC2430、CC2530等模組,通過序列介面實現與主控模組的通訊。

3.2主控制模組

本節首先詳細介紹系統所使用的晶片,然後再對各個電路子模組分別進行介紹。

3.2.1 ARM 微控制器 S5PV210

因為在整個設計中,系統對乙太網MAC的需求、嵌入式作業系統、TCP/IP協議和大量的應用程式,都需要佔用大量的儲存空間,基於這些考慮,我們選擇S5PV210作為整個設計的微控制器。

S5PV210的主要技術指標如下

核心:ARM Cortex-A8

主頻:1GHz

記憶體:512MB DDR2

Flash:256MB SLC NAND FLASH

最高可支援[email protected]硬體解碼視訊流暢播放,格式可為:MPEG-4/MPEG2、H.264/H263、VC-1

支援流暢的2D/3D圖形加速

支援HDMI顯示介面

支援1個USB HOST2.0,1個USB OTG2.0介面

支援1個SDIO介面(Micro SD卡介面)

支援1路RS232串列埠介面(除錯串列埠)

支援2個獨立CAMERA介面

支援100M乙太網卡

支援AC97立體聲音訊輸入/輸出介面

支援RTC實時時鐘儲存

支援2個使用者按鍵、8×8矩陣鍵盤介面(外擴鍵盤介面)

支援LED 燈顯示 (1個電源顯示,2個使用者 LED 燈)

支援標準JTAG介面

支援使用者擴充套件介面 (2路SPI介面, 2路IIC介面 ,3路PWM ,4路UART,6路ADC,1路 SDIO介面和其它使用者擴充套件 IO )

支援4.3寸、7寸、10.2寸、10.4寸、12.1寸LCD顯示,多款液晶模組介面

產品尺寸:105mm x 85mm

PCB板層:8

電源供電:+5V /2A

除錯介面:20-pin,2.54mm標準JTAG介面

工作溫度:-20~+70℃(電氣指標:符合CE,FCC,CCC規範要求)

3.2.2主控制模組電路設計

整個網關係統的核心部件是主控制器。整個系統的資料轉換、任務排程、儲存轉發等系統任務都由它負責,如圖 3-2 所示為主控制器原理圖:

圖 3-2 主控制器原理圖

3.2.3網路介面電路

本開發板的有線網路採用了DM9000網絡卡晶片,它可以自適應10/100M網路,RJ45連線頭內部已經包含了耦合線圈,因此使用普通的網線即可連線本開發板至路由器或者交換機,而不必另接網路變壓器。網路介面原理圖如圖3-3所示:

圖3-3 網路介面原理圖

3.2.4序列介面電路

S5PV210本身總共有4個串列埠,其中UART1為四線的功能串列埠,UART0、2、3為兩線串列埠。在本開發板上,UART0和UART1已經經過RS232電平轉換,它們分別對應於COM0和COM1,可以通過附帶的交叉串列埠線和PC互相通訊。串列埠原理圖如圖3-4所示:

圖3-4 串列埠原理圖

3.2.5 USB 介面電路

本開發板具有兩種USB介面,一種是USB Host(2.0)介面,它和普通PC的USB介面是一樣的,可以接USB攝像頭、USB鍵盤、USB滑鼠、優盤等常見的USB外設;另外一種是miniUSB(2.0),主要用於軟體安裝和程式除錯,常用於Android系統的ADB功能。USB原理圖如圖3-5所示:

圖3-5 USB原理圖

3.3乙太網介面模組

處理器S5PV210能適應乙太網連線的需求。它內部整合的乙太網MAC模組效能高、靈活度高。該模組支援獨立於介質的介面(Mil)和精簡的獨立於介質的介面(RMII),而Mil和RMII是兩種連線到外接PHY模組的標準介面,可廣泛應用於路由器、交換機、網絡卡等。乙太網連線框圖如圖3-6所示。其中用於站點管理的主要是:週期性時鐘訊號 (MDC)和資料的輸入輸出線(MDIO),通過它們我們能夠很方便地訪問網絡卡晶片的暫存器,具體連線見圖3-6:

圖3-6 乙太網連線方案框圖

乙太網模組功能闡述如下:

MC控制器:主要是為乙太網鏈路層提供服務。在這部分裡,定義了 MAC幀的格式以及在介質上是怎樣進行傳輸的,還有可用於多種事件的發生而產生的MAC中斷,通過應用程式的引數設定進行MAC地址過濾,還定義了物理定址、邏輯拓撲。

(2) DMA:主要是支援AHB主從介面下的突發傳輸,在這部分中有兩套獨立的FIFO(每套2K)收發控制器,它們的作用分別處理資料收發緩衝,與MCIJ之間的通訊通過控制狀態暫存器和描述符列表兩種結構實現。

(3) PTP:主要是設定接收和傳送頓的時間戳,以及粗調和細調的校正方法,如果發現系統時間比目標時間大時,這時就會觸發中斷,通過MCU的複用功能I/O輸出秒脈衝。

本設計選用的是一款整合度高、成本低、效益高的單晶片快速乙太網MAC控制器PHY晶片DM9000。它由一個處理介面,一個10/100M自適應的PHY和4K DWORD值的SRAM組成。DM9000物理協議層介面完全支援使用10MBps下3類、4類、5類非遮蔽雙絞線和100MBps下5類非遮蔽雙絞線。可以自動完成配置以最大限度地適合其線路頻寬。其埠驅動程式可方便移植。

圖3-7 乙太網介面電路

3.4 WSN協調器介面模組

該模組是實現嵌入式ZigBee應用的片上系統,其作用就是方便CC2530模組的接入。採用擁有32/64/128 KB可選快閃記憶體、8KB SRAM的增強型8051 MCU等高效能模組,並內建了 ZigBee協議找。因為以CC2530為核心的Zigbee模組裡有無線協議棧程式碼和高頻設計,這樣一來,使用者主要將精力集中在自己的應用程式碼開發。由於自身硬體資源匱乏且對環境要求較高,無線感測器網路直接接入傳統通訊網路的構想便成了天方夜譚。最簡單易行的方法就是:利用物聯網閘道器實現WSN與IP網路互聯,而閘道器還需要一個WSN協調器對感測網進行總體協調排程。在本設計中採用現有的20個引腳的介面電路的Zigbee無線模組。如圖3-8所示為WSN協調器介面電路,協調器與主控制器之間可以通過USART和SPI兩種方式實現通訊。

圖3-8 WSN協調器介面電路

3.5本章小結

本小節對物聯網閘道器的硬體系統進行了詳細設計,選取 S5PV210作為

主控器,並完成了對主控制器和外圍晶片的介面電路設計。

第四章三個模組的連通性測試

本系統將主要介紹三個模組功能的實現過程以及測試結果,即ZigBee內部模組通訊的實現、ZigBee模組與閘道器通訊的實現、閘道器與因特網通訊的實現。

4.1 ZigBee內部模組通訊實現

ZigBee內部模組通訊連線方式如圖4-1所示:

圖4-1 ZigBee內部模組通訊連線方式

ZigBee CC2530自身集成了片內的溫度感測器。本實驗中路由器(Router)節點將採集到的室內溫度資料無線傳送到協調器(Coordinator),協調器再通過UART傳送給上位機並最終顯示出來。

部分API函式與功能如表4-2所示:

表4-2 API函式與功能

網路協調器的程式流程圖如圖4-3所示,其主要是編譯、網路應用層初始化、目的地址設定、註冊端點描述符、註冊按鍵等。其中定義的處理事件的型別包括:按鍵、收到訊息、網路狀態改變,對收到的訊息進行以下結構體定義:

typedefstruct

{

osal_event_hdr_t hdr;

uint16 groupld:

uint16 clusterld;

afAddrType_t srcAddr;

byte endPoint;

byte wasBroadcast;

byte LinkQuality;

byte SecurityUse;

uint32 timestamp;

afMSG CommandFormat_t cmd;

}afIncomingMSGPacket_t

在該部分中,主要包含groupID目的組ID,clusterld目的簇ID,srcAddr源地址,endPoint目的端點號,cmd命令。

圖4-3 協調器的程式流程圖

網路節點與協調器的程式流程僅在裝置配置型別有些區別,其處理事件的機制是一致的,網路節點的程式流程圖如圖4-4所示:

圖4-4 網路協調器程式流程圖

ZigBee的協議棧採用任務通訊機制,本次實驗採用的任務機制如圖4-5所示:

圖4-5 ZigBee的協議棧採用任務通訊機制

部分呼叫的函式及功能如下:

uint16 SampleApp_ProcessEvent(uint8 task--id,uint16 events)

//定義優先順序最高的事件

switch (MSGpkt->hdr.event)

//分情況呼叫不同的函式處理事件

void SampleApp_HandleKeys(uint8 shift,uint8 keys)

//外部訊息事件處理

void SampleApp_SendPeriodicMessage(void)

//通過OSAL定時器,定時傳送週期資訊

AF_DataRequest()

//用來發送資料

下面具體講解CC2530將採集到的溫度資訊傳送給上位機的程式碼實現過程。

/**************************************/

#include

#include ''InitUART_Timer.h'' //注意在option裡設定路徑

#include ''stdio.h''

/****************************************************************

溫度感測器初始化函式

****************************************************************/

void initTempSensor(void)

{

DISABLE_ALL_INTERRUPTS(); //關閉所有中斷

InitClock(); //設定系統主時鐘為 32M

TR0=0X01; //set '1' to connectthe temperature sensorto the SOC_ADC.

ATEST=0X01; // Enablesthe temperature sensor

}

/****************************************************************

讀取溫度感測器 AD 值函式

****************************************************************/

float getTemperature(void){

uint value;

ADCCON3 = (0x3E); //選擇1.25V為參考電壓;14位解析度;對片內溫度感測器取樣

ADCCON1 |= 0x30; //選擇ADC的啟動模式為手動

ADCCON1 |= 0x40; //啟動AD轉化

while(!(ADCCON1 0x80)); //等待 AD 轉換完成

value = ADCL >> 4; //ADCL 暫存器低 2 位無效

value |= (((UINT16)ADCH) << 4);

return (value-1367.5)/4.5-5; //根據 AD 值,計算出實際的溫度,溫度係數為4.5 /℃

//減去5℃,進行溫度校正

}

/****************************************************************

主函式

****************************************************************/

void main(void)

{

char i;

char TempValue[5];

unsigned short* bufptr=(unsigned short*)(TempValue+2);

float AvgTemp;

InitUART0(); //初始化串列埠

initTempSensor(); //初始化 ADC

while(1)

{

AvgTemp = 0;

for(i = 0 ; i < 64 ; i++)

{

AvgTemp += getTemperature();

AvgTemp=AvgTemp/2; //每次累加後除 2

}

/****溫度轉換成ascii碼傳送****/

/* TempValue[0] = (unsigned char)(AvgTemp)/10 + 48; //十位

TempValue[1] = (unsigned char)(AvgTemp)%10 + 48; //個位

TempValue[2] = '.'; //小數點

TempValue[3] = (unsigned char)(AvgTemp*10)%10+48; //十分位

TempValue[4] = (unsigned char)(AvgTemp*100)%10+48; //百分位

TempValue[5] = '\0';*/ //字串結束符

TempValue[0]=0x0EA;

TempValue[1]=0x55;

*(bufptr)=(unsigned short)(AvgTemp*100);

unsigned char sum=0;//校驗和

for(i=0;i<4;i++)

{

sum+=TempValue[i];

}

TempValue[4]=sum;

UartTX_Send_String( TempValue,5);

Delayms(2000); //使用32M晶振,故這裡2000約等於1S

}

}

將基於ZigBee協議棧Z-Stack編寫的SampleAPP程式中的router project以及coordinator project分別燒寫到兩個ZigBee模組中,然後,先給作為協調器(Coordinator)的ZigBee模組上電,再給作為路由器(Router)的ZigBee模組上電,以保證其可以正確組網,此時,開啟串列埠除錯介面,我們可以看到如圖4-6所示的結果:

圖4-6 ZigBee模組間通訊實現

結果分析:我們用計算器將串列埠顯示的十六進位制數轉換為十進位制數,並與室內的溫度計顯示資料作比較,可知在誤差允許範圍內,圖中顯示資料確實為當前室內溫度,當用手觸控溫度感測器晶片時,串列埠顯示的資料也會明顯升高。這說明兩個ZigBee模組已經正確組網,且作為路由器(Router)的ZigBee模組能夠將採集到的當前室內溫度實時無線傳輸給作為協調器(Coordinator)的ZigBee模組,達到了預期效果。

4.2 ZigBee模組與閘道器通訊實現

實現ZigBee連通區與閘道器的通訊,其實質就是實現閘道器與ZigBee網路協調器的通訊。因為對於星形的ZigBee網路拓撲結構,所有的節點都跟協調器互動。首先我們來討論ZigBee模組與ARM9開發板是如何實現通訊的。ZigBee與ARM9開發板通過串列埠相連線,如圖4-7所示:

圖4-7 ZigBee與ARM9開發板通訊的方式

串列埠通訊滿足嵌入式系統低功耗、高頻寬利用率的基本硬體要求。串列埠所呼叫的公共函式結構體列表如表4-8所示:

表4-8串列埠所呼叫的公共函式結構體

本文ZigBee模組採用TI公司生產的CC2530,ZigBee協議棧對串列埠進行了很好的封裝並設計了一套API供使用者對串列埠進行方便的操作,而避免了直接操作暫存器帶來的麻煩,其功能如表4-9所示:

表4-9 ZigBee協議棧

一旦ZigBee協調器接收到其他節點發來的資料後,就會自動產生一個事件,根據任務通訊機制,該事件就會告知應用層,其串列埠傳送流程圖如圖4-10所示:

圖4-10串列埠傳送流程圖

在接收端採用中斷模式來驗證是否收到位元組,當串列埠接收到一個位元組後,就會產生中斷,呼叫接收函式,接收是否完成是根據收到位元組數是否等於UARTMessage Type_t結構體中資料長度來判斷,串列埠接收流程如圖4-11所示:

圖4-11 串列埠接收流程圖

halUARTCfg_t uartConfig;

uartConfig.configured =TRUE; //2530 don’t care.

uartConfig baudRate =0x08; //設定波特率為115200,

uartConfig.flowControl =FALSE;

uartConfig.flowControl Threshold=SERIAL_APP_THRESH;

uartConfig.rx.maxBufsize=SERIAL_APP_RX_MAX;

uartConfig.tx.maxBufsize=SERIAL_APP_TX_MAX;

uartConfig.idleTimeout=SERIAL_APP_IDLE; //2530 don’t care.

uartConfig.intEnable =TRUE; //2530 don’t care.

一旦閘道器收到因特網傳來的資料後,根據UARTMessageType格式打包,儲存在UART0 SendMessage變數裡,如果uartTask()檢查到此變數非空時,就和協調器互動後傳送資料。程式流程如圖4-12所示:

圖4-12 接收流程圖

UARTO查詢方式傳送資料:

void UART0_SendByte(uint8 data)

{

UOTHR=data;

while((UOLSR0x40)==0);

}

採用查詢方式接收一位元組資料,如:

Uint8 UART0_RcvByte(void)

在ZigBee連通模組與閘道器的串列埠間主要是通過三根線相連,一條是接收線(RXD),一條傳送線(TXD),另一條地線(GND),本設計傳送一組資料在串列埠除錯助手中顯示,測試結果圖如圖4-13所示:

圖4-13 ZigBee與ARM9通訊測試結果圖

該測試結果說明ZigBee模組與ARM9開發板通過串列埠連線能夠很好地實現通訊。下面我們來介紹本設計系統中ZigBee模組組網後與閘道器是如何實現無線資料傳輸的。ZigBee模組與閘道器通訊實現連線方式如圖4-14所示:

圖4-14 ZigBee模組與閘道器通訊連線方式

在上一節兩個ZigBee模組正確組網的基礎上,用串列埠線一端與ARM9開發板COM口相連,另一端與ZigBee協調器(Coordinator)模組相連,此時開啟串列埠除錯介面,顯示如圖4-15所示的資料。

4-15 ZigBee模組與閘道器通訊實現

結果分析:串列埠顯示資料即為當前室內溫度,這說明兩個ZigBee模組組網後與ARM9開發板(閘道器)連線,可以實現無線資料傳輸,實驗達到了預期效果。本實驗我們實現了資料的無線傳輸,由此還可以擴充套件很多應用,我們可以在ZigBee模組上連線各種感測器(如溫溼度感測器,光照度感測器等)並在協議棧應用層加以相關引數配置,然後把採集到的資訊傳送給協調器,進而傳送給電腦。

4.3閘道器與因特網通訊模組實現

閘道器與因特網通訊模組實現連線方式如圖4-16所示:一方面,閘道器通過RJ45與因特網連線,另一方面,通過串列埠線與PC機連線,此時,乙太網將自動給ARM9開發板(閘道器)分配一個IP地址,且與PC機的IP地址在同一網段。

圖4-16 閘道器與因特網通訊模組實現連線方式

閘道器和PC是實現本模組通訊的兩個重要方面,而網路通訊分為兩種結構,分別是:B/S和C/S。在本設計中,考慮到小型化、低能耗以及系統資源利用率等要求,我們採用的ARM9 Smart210的開發平臺,採用C/S(Client/Server)結構的通訊方式,即客戶端與伺服器結構。Client將使用者的需求提交給Server,再將Server返回的結果以特定形式提供給使用者。Server的任務是接收Client提出的服務請求,進行相應的處理,並將結果返回給Client。而伺服器程序大部分情況下處於“休眠”狀態,直到客戶端對該伺服器發出連線請求,將其“喚醒”。

閘道器能夠同時響應多個客戶端,就是說不同的IP地址客戶端傳送的請求,可以滿足使用者在不同地方對ZigBee節點進行的控制,基於這個原因,我們將閘道器與因特網的通訊模組設計成C/S結構,考慮到本設計中閘道器與因特網的通訊模組所傳輸的並非大資料包,