王 榮
(無錫職業技術學院,江蘇 無錫214121)
物聯網的應用在近幾年成為了信息領域的熱門話題。無線傳感網(Wireless Sensor Network,WSN)是提到最多的短距離無線通信網絡。無線傳感網主要通過各類微型傳感器節點 (Node)組成無線個域網(Wireless Personal Area Network,WPAN),用于感知和監控綜合環境信息[1]。類似的技術主要有ZigBee以及6LoWPAN協議。盡管兩者均是基于IEEE 802.15.4設計,由于ZigBee協議在連入互聯網的時候需要專門的網關(不直接支持IP地址),為了實現WSN和IP網絡的無縫對接[2],支持IP通信協議的6LoWPAN被越來越多的項目及科研所使用[3]。本文主要探討關于6LoWPAN在工程項目中應用時的幾種軟硬件解決方案,旨在為廣大工程項目開發者提供幾種思路。
6LoWPAN技術作為一種短距離低速率無線網絡通信技術,通常應用于嵌入式設備中。由于6LoWPAN協議棧一般運行在微控制器芯片中,通常有3種解決方案:單芯片模型、雙芯片模型以及網絡處理器方案。單芯片模型采用SoC芯片,即片上系統,將射頻模塊和微控制器(Microcontroller,MCU)集成在一片芯片上。雙芯片模型采用通用微控制器和一片射頻收發芯片共同工作。而網絡處理器方案則采用固化了協議棧的射頻芯片,一般和一個單獨的運行著應用軟件的微控制器共同使用[4]。
當設備的尺寸和成本控制作為首要考慮條件,并且要實現的功能相對簡單時,單芯片模型的解決方案最為合理。單芯片模型采用SOC芯片,集成了射頻收發器和微控制器兩大核心模塊,一般帶有FLASH單元、內存以及一些常用的外設。典型的模型如圖1所示。采用SoC的無線節點僅需少許元器件和一些簡單的電路即可實現,通常包括RF匹配電路、天線、晶振、電源模塊以及傳感器等。軟件存儲在FLASH中,一般包括硬件驅動、6LoWPAN協議棧、應用軟件,當然也可能有一個簡易的嵌入式操作系統。常見的SOC解決方案有TI公司的CC2530、CC1110,Jennic公司的JN5139等。大多數的6LoWPAN協議棧都可以移植到單芯片模型中。

圖1 SoC射頻模型
單芯片方案的帶來的一大缺點是軟件開發周期的延長以及難度的增加。由于SoC都是采用小型定制的微控制器內核,內存的保護機制一般不完善,因此要把應用程序、嵌入式操作系統以及協議棧都集成到一起需要花費更多的測試與調試周期。同時,由于每種SoC都采用單獨的編譯器和開發環境,對軟件的可重用性限制很大。
如果應用程序復雜度較高,或者對性能要求較高,那么雙芯片模型將成為首要選擇。圖2給出了一個雙芯片模型的框圖。在雙芯片模型中,微控制器和射頻收發器是分離式的。特別地,當該射頻收發器內部已經固化了網絡協議棧的話,它一般就被稱為網絡處理器,下一節會單獨討論這一方案。在雙芯片模型中,微控制器通過SPI接口或者UART接口和射頻芯片通信。6LoWPAN協議棧、硬件接口以及操作系統則完全運行于微控制器內部,因此開發者可以選擇自己最熟悉的、最適合項目的微控制器來使用,以便同時滿足性能、嵌入式控制、信號處理等需求。典型的射頻芯片可以是TI公司的CC2520,Atmel公司的AT86RF231等。

圖2 雙芯片模型結構圖
如果某些產品的應用程序已經完善了,所有的用戶功能也已正常運作,只是需要額外給它添加網絡通信功能(即協議棧)的時候,使用網絡處理器方案是一種合理的途徑。該方案能夠有效減少開發者學習使用一種全新芯片的時間。一般而言,網絡處理器需要配合微控制器共同使用,因此它是一種特殊的雙芯片方案。不同的是,在網絡處理器內部不僅有無線收發器,而且已經固化了6LoWPAN的協議棧。典型電路圖如圖3所示。

圖3 網絡處理器方案結構圖
和網絡處理器的通信可通過UART接口或者SPI接口,通信命令類似于套接字協議。因此該模型的使用方式不再需要將6LoWPAN協議棧集成到微控制器中,而僅僅只需通過軟件通信接口即可實現。如果實際采用了操作系統,比如LINUX來運行應用程序,則只需要很小的改進便可將6LoWPAN通信功能添加進去。
該方案的缺點如同雙芯片方案,他同樣需要兩個芯片來實現。因此對電路板尺寸嚴格控制的項目將難以實施。由于網絡處理器內部集成了內存、FLASH、微處理器內核等模塊,它的價格相對昂貴。典型的6LoWPAN網絡處理器有TI公司的CC1180。
要實現6LoWPAN網絡通信協議,最簡單的方法是采用現成的通信協議棧。協議棧一般由企業、科研機構、大學以及個人開發,主要有幾種運行模式:
(1)固化在網絡處理器內;
(2)包含在操作系統中;
(3)集成在嵌入式軟件內。
本節將重點討論幾種開源的以及商業化的協議棧,它們運行于上節中介紹的一個或多個模型中。
Contiki是一個非常聞名的嵌入式開源操作系統,專為微控制器架構設計,可運行在AVR、8051以及MSP430中,由瑞典計算機科學研究所開發。Contik實現了一個微小的IP協議,稱作uIP協議棧。同時,它也實現了基于6LoWPAN的IPv6協議,稱作uIPv6協議棧。Contiki操作系統以及uIP協議棧被世界上幾百個工程項目和公司所采用。Contiki主要設計工作在低功耗的收發器中,支持IP網絡通信。它采用C語言實現,可以編譯到很多平臺。已經有非常多的微控制器和設備平臺運行了Contiki,因此有很多的例程和應用軟件可以移植到自己的項目中。
TinyOS也是一個開源操作系統,由加利福尼亞大學伯克利分校設計,應用于無線嵌入式傳感網的研究中。它廣泛傳播在學術界,有很多測試版的程序代碼。TinyOS為低功耗、低性能的處理器設計,采用模塊化結構,基于事件驅動的模型。為了實現某些面向對象的功能,它采用一種由C語言開發的新語言實現,稱作NesC。這也限制了改操作系統的可移植性,而且增加了開發者的學習周期。
TinyOS同樣支持6LoWPAN協議,一般包含于TinyOS內部,同樣由加利福尼亞大學伯克利分校開發,其命名為BLIP(Berkeley IP Implementation)。BLIP還支持Linux操作系統,主要為了實現TinyOS 6LoWPAN節點和其他IP網絡的連接。
NanoStack是一個由Sensinode開發的基于6LowPAN協議開發的商業協議棧。它是一個非常小型,且專為6LoWPAN協議經過特殊優化的協議棧,適用于SoC芯片。該協議棧可直接在TI公司生產的SoC芯片如CC2430,CC2530以及GHz頻段的CC1110上運行,如果開發者具有ZigBee的開發經歷,對這類芯片應該比較熟悉,對于該協議棧的學習使用會更容易。
NanoStack的硬件接口通過UART以及SPI接口實現,需要有一個微控制器來實現一個完整的項目。NanoStack等同于網絡處理器中的固件角色,因此微控制器只需要通過簡單的軟件接口即可實現和NanoStack的通信。開發者只需要側重于應用功能的開發,無線通信部分直接交給NanoStack即可。
Jennic公司是一個無線芯片制造商,專門開發IEEE802.15.4的SOC芯片。他們是第一家為自己的SOC產品提供6LoWPAN協議棧的廠商,稱為 JenNet。JenNet支持 6LoWPAN網絡層,UDP協議和ICMPv6協議以及IEEE802.15.4 MAC層。用戶功能應用程序通過公司提供的Jenie API接口實現,可以控制協議棧的各種功能,包括配置和管理節點等。
作為一種基于IP通信為主的短距離、低功耗無線通信協議,6LoWPAN一直都扮演著非常重要的角色。在工程項目中,硬件的設計和軟件的實現都是工程師考慮的重點。本文主要討論了實現6LoWPAN應用的幾種方案,向用戶展示了一些選擇面,相信能夠為大家提供一些工程應用時的思想方法。
[1]付蔚,陳剛,王平,張陽陽:智能家居6LoWPAN家電控制系統研究[J].自動化儀表,2013,34:62-65,69.
[2]許愷,戎蒙怡,劉濤.基于6LoWPAN的無線傳感器網絡實現與性能分析[J].2012,1,29-31.
[3]吳俊:6LowPan 技術分析[J].鐵道通信信號,2006,42,38-40.
[4]ZACH SHELBY, CARSTEN BORMANN:6LoWPAN:The Wireless Embedded Internet[J].WILEY,ISBN:9780470747995,2009.