萬(wàn)書(shū)芹,魏 斌,陳子逢,黃召軍,虞致國(guó)
(中國(guó)電子科技集團(tuán)公司第58研究所,江蘇 無(wú)錫 214035)
物聯(lián)網(wǎng)是以信息的交互、處理為目的,通過(guò)各種感知設(shè)備,網(wǎng)絡(luò)傳輸手段將信息采集并傳輸至目標(biāo)信息處理平臺(tái),并在此基礎(chǔ)上構(gòu)建出特定應(yīng)用的系統(tǒng)體系。物聯(lián)網(wǎng)是實(shí)現(xiàn)全方位信息交互和決策優(yōu)化的綜合性系統(tǒng)架構(gòu)和應(yīng)用實(shí)踐。無(wú)線(xiàn)傳感器網(wǎng)絡(luò)作為一種新興的研究領(lǐng)域,是物聯(lián)網(wǎng)技術(shù)的重要組成部分。隨著各種技術(shù)的發(fā)展,無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的研究日益深入,除了在軍事、工業(yè)、農(nóng)業(yè)、環(huán)境等多個(gè)領(lǐng)域有著廣泛的應(yīng)用,在民用領(lǐng)域的應(yīng)用研究也越來(lái)越多。
無(wú)線(xiàn)傳感網(wǎng)的快速發(fā)展所帶來(lái)的問(wèn)題是,如何才能在實(shí)現(xiàn)這些海量數(shù)據(jù)通信的高速化、低成本化、低功耗化的同時(shí),實(shí)現(xiàn)數(shù)字化、寬帶化和智能化?隨著移動(dòng)通訊技術(shù)的飛速發(fā)展,不斷涌現(xiàn)新的寬帶接入技術(shù),目前通訊行業(yè)中存在多種網(wǎng)絡(luò)結(jié)構(gòu),如電信網(wǎng)、互聯(lián)網(wǎng)、電視網(wǎng)以及物聯(lián)網(wǎng)等。因此設(shè)計(jì)一種具備多網(wǎng)接入能力的無(wú)線(xiàn)接入設(shè)備是解決上述問(wèn)題的關(guān)鍵。該無(wú)線(xiàn)接入設(shè)備應(yīng)當(dāng)分為兩部分:終端設(shè)備和網(wǎng)關(guān)設(shè)備。終端設(shè)備是具備網(wǎng)絡(luò)接入功能的各種終端,網(wǎng)關(guān)設(shè)備主要包含處理核心和各個(gè)連接模塊。網(wǎng)關(guān)設(shè)備無(wú)疑是該系統(tǒng)的核心。本文據(jù)此思想提出了一種無(wú)線(xiàn)傳感網(wǎng)網(wǎng)關(guān)的設(shè)計(jì)。文中首先提出該無(wú)線(xiàn)傳感網(wǎng)網(wǎng)關(guān)設(shè)備的系統(tǒng)設(shè)計(jì),其次對(duì)網(wǎng)關(guān)的硬件設(shè)計(jì)進(jìn)行了詳細(xì)介紹,最后對(duì)軟件的開(kāi)發(fā)作了簡(jiǎn)要介紹。
網(wǎng)關(guān)是傳感網(wǎng)絡(luò)中最大的匯聚點(diǎn),可以實(shí)現(xiàn)不同網(wǎng)絡(luò)之間的無(wú)縫融合[1]。網(wǎng)關(guān)一般采用高端嵌入式微處理器和存儲(chǔ)空間相對(duì)較大的擴(kuò)展芯片,以提高系統(tǒng)的處理速度和存儲(chǔ)網(wǎng)絡(luò)節(jié)點(diǎn)的信息量。傳感器節(jié)點(diǎn)采集感知區(qū)域內(nèi)的數(shù)據(jù),進(jìn)行簡(jiǎn)單的處理后發(fā)送至匯聚節(jié)點(diǎn),網(wǎng)關(guān)利用串行方式讀取數(shù)據(jù)并轉(zhuǎn)換成用戶(hù)可知的信息,如傳感器節(jié)點(diǎn)部署區(qū)域內(nèi)的溫度、濕度、加速度、坐標(biāo)等,接著進(jìn)行遠(yuǎn)距離傳輸,傳輸方式有以太網(wǎng)、移動(dòng)通信網(wǎng)(CDMA)、WiFi、ZigBee。本網(wǎng)關(guān)系統(tǒng)主要由以下幾個(gè)部分組成:中央處理器、人機(jī)交互模塊、存儲(chǔ)器、以太網(wǎng)模塊、CDMA模塊、WiFi模塊和ZigBee射頻模塊,如圖1所示。其中中央處理器負(fù)責(zé)分析處理來(lái)自各個(gè)不同網(wǎng)絡(luò)的數(shù)據(jù),根據(jù)標(biāo)識(shí)發(fā)送到對(duì)應(yīng)的網(wǎng)絡(luò)中,從而實(shí)現(xiàn)信息在不同網(wǎng)絡(luò)中的傳送。
圖1 網(wǎng)關(guān)系統(tǒng)結(jié)構(gòu)
根據(jù)總體方案,本無(wú)線(xiàn)傳感網(wǎng)網(wǎng)關(guān)采用嵌入式結(jié)構(gòu)。首先需要設(shè)計(jì)網(wǎng)關(guān)所采用的硬件平臺(tái),平臺(tái)上包括各種外設(shè)接口,此外還要設(shè)計(jì)各種通訊模塊。硬件平臺(tái)分核心板和底板兩部分分別設(shè)計(jì)。核心板主要由處理器、存儲(chǔ)器構(gòu)成,通過(guò)接口與底板連接。底板將核心板接口上的不同信號(hào)根據(jù)需要作相應(yīng)處理,形成所需要的各種接口以備與不同的通訊模塊及數(shù)據(jù)設(shè)備相連。網(wǎng)關(guān)的總體硬件結(jié)構(gòu)如圖2所示。其中微處理器為網(wǎng)關(guān)的核心,它負(fù)責(zé)運(yùn)行操作系統(tǒng)及各個(gè)通訊模塊所需的驅(qū)動(dòng)程序和協(xié)議棧。
圖2 網(wǎng)關(guān)硬件結(jié)構(gòu)示意圖
硬件設(shè)計(jì)中的關(guān)鍵問(wèn)題是處理速度。傳感器網(wǎng)絡(luò)主要使用嵌入式微處理器和嵌入式微控制器。網(wǎng)關(guān)作為網(wǎng)絡(luò)中的重要節(jié)點(diǎn)一般采用高性能嵌入式微處理器,并且這些微處理器一般具有集成度高、體積小、重量輕、功耗低、功能全等特點(diǎn)。因此,核心處理器我們選用三星公司的S3C6410為中央處理器。S3C6410 RISC 處理器采用的CPU是ARM1176JZF-S[2],具有JAVA加速引擎和16kB/16kB I/D緩存和16kB/16kB I/D TCM技術(shù)。在1.1V和1.2V的工作電壓下工作頻率最高為533MHz 和667MHz。該處理器集成了多種外設(shè)接口,如圖3。連接總線(xiàn)接口有I2C、I2S、UART、GPIO、SPI、HIS、USB OTG 2.0、USB Host 1.1、HS-MMC/SD卡等;系統(tǒng)外圍設(shè)備有RTL、 PLL、 Watch-Dog、 DMA和8×8的鍵盤(pán)矩陣;多媒體加速器主要有相機(jī)I/F、多格式編解碼、支持2D/3D圖形等,以及串行通信接口、以太網(wǎng)接口、相機(jī)接口。外圍電路主要包括存儲(chǔ)器系統(tǒng)、時(shí)鐘系統(tǒng)、電源系統(tǒng)和其他電路系統(tǒng)。
一般系統(tǒng)中主要使用Flash和SDRAM這兩種存儲(chǔ)器,SDRAM作為內(nèi)部存儲(chǔ)器,但隨著嵌入式系統(tǒng)處理器主頻的提高,SDRAM的速度只能工作在133MHz的主頻上,已不能滿(mǎn)足日益增速的處理器工作要求。當(dāng)前DDR技術(shù)占據(jù)了內(nèi)存技術(shù)的主流,在內(nèi)部存儲(chǔ)器的選擇上我們選用三星公司的K4X1G163PC系列中的64×16bit的DDR內(nèi)存產(chǎn)品,兩塊芯片構(gòu)成256MB的內(nèi)存空間,用于高速存儲(chǔ)系統(tǒng)運(yùn)行時(shí)產(chǎn)生的各種數(shù)據(jù)。需要注意的是,在PCB設(shè)計(jì)中要嚴(yán)格控制時(shí)鐘線(xiàn)和控制線(xiàn)等長(zhǎng),同一組數(shù)據(jù)、DQS、DQM等長(zhǎng)以及線(xiàn)間距的控制。在帶有DDR的嵌入式系統(tǒng)主板中,DDR的走線(xiàn)設(shè)計(jì)是PCB設(shè)計(jì)中最難的部分,必須按照嚴(yán)格的約束走線(xiàn),同時(shí)充分考慮信號(hào)完整性和時(shí)序匹配問(wèn)題以確保設(shè)計(jì)出的系統(tǒng)的穩(wěn)定性和可靠性。
外部存儲(chǔ)選用NAND Flash K9GAG08U0E-SCB0芯片,MLC(Multi-Layer Cell)存儲(chǔ)格式,存儲(chǔ)容量為2GB。該芯片封裝為T(mén)SOP,共有48個(gè)腳,其中8位I/O端口用于輸入命令、地址和數(shù)據(jù),在讀操作下輸出數(shù)據(jù)。Flash主要存放軟件的目標(biāo)代碼,如Bootloader引導(dǎo)程序、操作系統(tǒng)內(nèi)核、各種驅(qū)動(dòng)程序及應(yīng)用程序。在PCB設(shè)計(jì)中同樣要確保時(shí)鐘線(xiàn)和控制線(xiàn)等長(zhǎng),同一組信號(hào)的等長(zhǎng)。
(1)UART
S3C6410處理器內(nèi)置了4個(gè)通用異步收發(fā)串行接口UART0~UART3,其中UART1為5線(xiàn)串口,其他皆為3線(xiàn)串口。由于該串口采用的是TTL電平,一般的計(jì)算機(jī)及通訊模塊的串口設(shè)備采用的是RS-232電平,因此為了便于與其他設(shè)備的通訊,這里我們需要采用MAX3232CSE電平匹配模塊來(lái)實(shí)現(xiàn)電平的轉(zhuǎn)換。
(2)USB
由于常見(jiàn)的攝像頭、鍵盤(pán)、鼠標(biāo)、高速存儲(chǔ)器及通訊設(shè)備采用USB接口,為了方便擴(kuò)展外設(shè),芯片內(nèi)置了USB OTG,可以支持設(shè)備和主機(jī)兩種功能,支持高速(480Mbps)、全速(12Mbps,只用于設(shè)備)以及低速(1.5Mbps,只用于主機(jī))轉(zhuǎn)換。設(shè)計(jì)中引出該接口為mini USB 2.0。此外芯片還內(nèi)置了USB主機(jī)接口,支持低速和全速USB設(shè)備,在設(shè)計(jì)中采用了USB Hub進(jìn)行擴(kuò)展,擴(kuò)展至3個(gè)USB Host 1.1接口。
(3)SD卡
S3C6410微處理器中帶有兩路SDIO0和SDIO1接口,本系統(tǒng)中接出SDIO0,作為普通SD卡使用。該接口也可以支持高速大容量SDHC卡。S3C6410微處理器另一個(gè)特點(diǎn)是支持SD卡啟動(dòng)功能。6410從SD卡啟動(dòng)時(shí),首先要把bootloader程序燒寫(xiě)到SD卡高位地址起始處,插上SD卡,并將控制SD卡啟動(dòng)的開(kāi)關(guān)打開(kāi),此時(shí)打開(kāi)電源開(kāi)關(guān),系統(tǒng)就會(huì)運(yùn)行。
(4)LCD
S3C6410微處理器提供了觸摸屏接口,且本身自帶觸摸屏控制器,XP、XM、YP、YM為其四線(xiàn)觸摸屏接口,將此4個(gè)信號(hào)直接從CPU引出,連接四線(xiàn)電阻觸摸屏使用。LCD接口座中包含了常見(jiàn)LCD所用的大部分控制信號(hào)(行場(chǎng)掃描、時(shí)鐘和使能等)和6:6: 6模式的RGB數(shù)據(jù)信號(hào)。
本項(xiàng)目所設(shè)計(jì)的網(wǎng)關(guān)可實(shí)現(xiàn)ZigBee網(wǎng)絡(luò)、WiFi網(wǎng)絡(luò)、CDMA網(wǎng)絡(luò)和以太網(wǎng)四種網(wǎng)絡(luò)的接入功能,同時(shí)可實(shí)現(xiàn)其中任意兩種網(wǎng)絡(luò)之間的數(shù)據(jù)通信。因此,該網(wǎng)關(guān)涉及四種不同網(wǎng)絡(luò)通訊模塊,其中ZigBee射頻模塊作為獨(dú)立模塊單獨(dú)設(shè)計(jì),以太網(wǎng)模塊直接在底板上實(shí)現(xiàn),其他兩種模塊從市場(chǎng)購(gòu)買(mǎi)成熟產(chǎn)品。下面分別介紹這四種通信模塊接口。
(1)ZigBee射頻模塊
本模塊的處理芯片采用飛思卡爾公司基于ARM內(nèi)核的ZigBee無(wú)線(xiàn)單片機(jī)MC13224[3],該芯片集成了標(biāo)準(zhǔn)的ARM7內(nèi)核、2.4GHz射頻收發(fā)器、IEEE 802.15.4 MAC硬件加速器和AES硬件加速器,內(nèi)部集成了FLASH、SRAM和ROM、AD轉(zhuǎn)換等模塊,并在開(kāi)發(fā)環(huán)境中提供了最新ZigBee 2007/PRO協(xié)議棧。該芯片只需要很少的外圍配合電路即可實(shí)現(xiàn)無(wú)線(xiàn)通信。在模塊的設(shè)計(jì)中采用了低功耗設(shè)計(jì),最低功耗可達(dá)0.015mA。模塊對(duì)外提供UART、SPI、I2C、SSI接口進(jìn)行數(shù)據(jù)傳輸,可外接多種傳感器。模塊與中央處理器通過(guò)SPI總線(xiàn)以四線(xiàn)方式相連,傳送從其他支持ZigBee協(xié)議的無(wú)線(xiàn)節(jié)點(diǎn)發(fā)送過(guò)來(lái)的數(shù)字類(lèi)信息至處理器。同時(shí)中央處理器通過(guò)SPI總線(xiàn)控制ZigBee射頻模塊并接受數(shù)據(jù)、發(fā)送控制信息。
(2)以太網(wǎng)
本網(wǎng)關(guān)以以太網(wǎng)作為網(wǎng)關(guān)設(shè)備有線(xiàn)接入互聯(lián)網(wǎng),采用DM9000A網(wǎng)卡芯片[4],它可以自適應(yīng)10/100Mbps網(wǎng)絡(luò),且功耗低,輸入輸出端口工作電壓為3.3V~5V之間。提供8位和16位的內(nèi)存訪(fǎng)問(wèn)數(shù)據(jù)接口以便與不同的處理器相連接。在應(yīng)用中一般在DM9000A和RJ45之間需加一轉(zhuǎn)換器,設(shè)計(jì)中需特別注意盡可能將RJ45靠近轉(zhuǎn)換器。在器件的選購(gòu)中我們選用的RJ45連接頭內(nèi)部已經(jīng)包含了耦合線(xiàn)圈,因此不必另接網(wǎng)絡(luò)變壓器,使用普通的網(wǎng)線(xiàn)即可連接本網(wǎng)關(guān)至路由器或者交換機(jī)。
(3)CDMA
目前,國(guó)內(nèi)有三種3G無(wú)線(xiàn)網(wǎng)絡(luò)模式:WCDMA、CDMA2000和TD-SCDMA。本方案選用其中最成熟的WCDMA 3G網(wǎng),運(yùn)營(yíng)商是中國(guó)聯(lián)通。對(duì)應(yīng)此3G無(wú)線(xiàn)網(wǎng)絡(luò),市面上有不同的產(chǎn)品可用,為了簡(jiǎn)化設(shè)計(jì)并提高穩(wěn)定性,這里選用了HUAWEI E1750,帶USB接口,通過(guò)USB接口與主機(jī)通訊。
(4)WiFi
WiFi是一種可以將個(gè)人電腦、手持設(shè)備(如PDA、手機(jī))等終端以無(wú)線(xiàn)方式互相連接的技術(shù)??梢詭椭脩?hù)訪(fǎng)問(wèn)電子郵件、Web和流式媒體,它為用戶(hù)提供了無(wú)線(xiàn)的寬帶互聯(lián)網(wǎng)訪(fǎng)問(wèn)。只要有無(wú)線(xiàn)路由的存在,就可以輕松將信息傳送到互聯(lián)網(wǎng)上。本網(wǎng)關(guān)在設(shè)計(jì)中為WiFi模塊留下了接口,通過(guò)I2C總線(xiàn)與主機(jī)通訊。
在硬件平臺(tái)的基礎(chǔ)上,軟件的設(shè)計(jì)主要有建立開(kāi)發(fā)環(huán)境、移植Linux操作系統(tǒng)、設(shè)計(jì)網(wǎng)關(guān)處理程序,此處略去前一、二步,主要詳述網(wǎng)關(guān)處理程序的設(shè)計(jì)。本網(wǎng)關(guān)的處理過(guò)程主要分為:CDMA/ZigBee通信、CDMA/WiFi通信、CDMA/以太網(wǎng)通信、ZigBee/WiFi通信、ZigBee/以太網(wǎng)通信、WiFi/以太網(wǎng)通信。下面給出以太網(wǎng)/ZigBee通信的程序流程圖(如圖4),其他網(wǎng)絡(luò)間通信的處理流程是相類(lèi)似的。
CDMA網(wǎng)絡(luò)中某一個(gè)節(jié)點(diǎn)請(qǐng)求與ZigBee中某一節(jié)點(diǎn)通信,CDMA網(wǎng)絡(luò)中該節(jié)點(diǎn)首先發(fā)送一個(gè)請(qǐng)求信息給CDMA模塊,該請(qǐng)求信息里包含ZigBee網(wǎng)絡(luò)中節(jié)點(diǎn)的地址信息,CDMA模塊接收到該信號(hào)后,發(fā)送給處理器,處理器獲得該信號(hào),首先查詢(xún)地址對(duì)應(yīng)表,將請(qǐng)求信息中的地址轉(zhuǎn)化成ZigBee網(wǎng)絡(luò)節(jié)點(diǎn)的地址,然后發(fā)送一個(gè)連接請(qǐng)求信號(hào)(已經(jīng)轉(zhuǎn)化成ZigBee網(wǎng)絡(luò)中節(jié)點(diǎn)的地址)給ZigBee模塊,ZigBee模塊將請(qǐng)求信號(hào)轉(zhuǎn)發(fā)到ZigBee網(wǎng)絡(luò)中對(duì)應(yīng)的節(jié)點(diǎn)。若ZigBee節(jié)點(diǎn)可以進(jìn)行數(shù)據(jù)通信,則回送一個(gè)同意通信的信號(hào)給處理器,處理器接收到該信號(hào)后,就在CDMA網(wǎng)絡(luò)和ZigBee網(wǎng)絡(luò)間建立一條通信通道。然后處理器發(fā)送連接成功信號(hào)給CDMA模塊及CDMA網(wǎng)絡(luò)節(jié)點(diǎn),兩個(gè)網(wǎng)絡(luò)中的網(wǎng)絡(luò)節(jié)點(diǎn)開(kāi)始數(shù)據(jù)通信。
圖4 以太網(wǎng)/ZigBee通信的程序流程圖
本文設(shè)計(jì)了基于處理器ARM11的高速芯片S3C6410的傳感網(wǎng)絡(luò)網(wǎng)關(guān),該網(wǎng)關(guān)可以實(shí)現(xiàn)以太網(wǎng)、CDMA、WiFi和ZigBee四種網(wǎng)絡(luò)之間的通信。目前世界各國(guó)都在大力發(fā)展物聯(lián)網(wǎng),物聯(lián)網(wǎng)與其他網(wǎng)絡(luò)的融合是不可避免的,本網(wǎng)關(guān)的應(yīng)用前景十分廣闊。
[1]蔡皓.基于嵌入式系統(tǒng)的無(wú)線(xiàn)傳感器網(wǎng)絡(luò)網(wǎng)關(guān)設(shè)計(jì)與實(shí)現(xiàn)[D].北京郵電大學(xué),2008.
[2]S3C6410X RISC Microprocessor User’s Manual,Revision 1.10[EB/OL].http://www.samsungsemi.com,2008.
[3]MC1322x RM,Rev.0.0[EB/OL].http://www.freescale.com,2010.
[4]DM9000A-17-DS-P04[EB/OL].Jan.10,2006.