《无线网络传感器及其微型操作系统的研究.pdf》由会员分享,可在线阅读,更多相关《无线网络传感器及其微型操作系统的研究.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、收稿日期:2004208227;修返日期:2004210228基金项目:国家“863”高技术研究发展计划项目(2003AA1Z2080)无线网络传感器及其微型操作系统的研究3王万里,郑扣根,姚 翔,吴朝晖(浙江大学 计算机学院,浙江 杭州310027)摘 要:首先分析了无线网络传感器的基本特性,设计了无线网络传感器硬件平台ZUSensor;然后提出了架构在ZUSensor上的微型操作系统ZUOS的基本设计要求;最后总结了微型操作系统ZUOS的基本实现方法,并重点分析了ZUOS的组件模型和通信协议。关键词:普适计算;无线网络传感器;微型操作系统中图法分类号:TP316 文献标识码:A 文章编号:
2、100123695(2005)0920039204Study onW irelessNetworked Sensors andMicro Operating SystemWANGWan2li,ZHENG Kou2gen,YAO Xiang,WU Zhao2hui(College of Computer Science,Zhejiang University,Hangzhou Zhejiang310027,China)Abstract:The basic characteristics ofwireless networked sensors are anylized and a hardwar
3、e platfor m ZUSensorof such sen2sors is designed;the fundamental requirements for themicro operating system ZUOS running on ZUSensor are discussed,espe2cially its componentmodel and the communication protocol.Key words:Pervasive Computing;W irelessNetworked Sensors;Micro Operating System 计算范例(Comput
4、ing Paradigm)对计算技术的发展有着至关重要的作用。综观计算机进入人类社会的历史,可以清楚地发现计算范例已经历了主机计算(Mainframe Computing)和桌面计算(Desktop Computing)两个时代,并开始跨入普适计算1时代。普适计算是一种可以包含各种计算设备的计算模式。在普适计算时代,计算机主要不是以单独的计算设备的形式出现,而是将嵌入式处理器、存储器、通信模块和传感器集成在一起,以信息设备(Information Appliances)的形式出现。普适计算的硬件设备范围广泛,包括传统的计算设备以及目前应用越来越多的各种无线移动设备和智能设备。其中,集传感器、控
5、制器、计算能力、通信能力于一身的资源受限的嵌入式设备,即无线网络传感器2将大量应用于普适计算领域。它们跟外界物理环境交互,将收集到的信息通过网络传给传统的计算机。随着传感器技术、嵌入式计算技术、通信技术和半导体与微机电系统制造技术的飞速发展,制造微型、弹性、低功耗的无线网络传感器已逐渐成为现实。1 研究现状目前,国际上一些著名大学和研究机构都在积极开展各自带有研究性质的无线网络传感器项目,如RockwellW I NS3,M IT的AMPS4,UCLA的Medusa MK225以及UC Berkeley的TinyOS6等。这些无线网络传感器硬件平台可以分为两类:其中,UCLA的Medusa M
6、K22和UC Berkeley的TinyOS构建在AVR处理器架构上;而RockwellW I NS,M IT的AMPS构建在StrongARM(现为XScale架构)处理器架构上。这两类平台分别代表了两种不同的研究方向:基于AVR架构的研究倾向于普适计算的小型化方向,重点是支持无线网络传感器的具有多跳网络通信功能的微型操作系统及其整体解决方案的研究;基于StrongARM架构的研究则倾向于普适计算的中型实用化方向,该平台更接近于现有的PC架构,能够得到当前主要操作系统(如Linux,W indows CE)和应用软件的支持,因而研究重点是软件功能的完善。2 无线网络传感器ZUSenso r的
7、设计2.1 无线网络传感器的特性无线网络传感器一般集成一个低功耗的微控制器(MCU)以及若干存储器、无线电/光通信装置、传感器等组件,通过传感器、动臂机构,以及通信装置和它们所处的外界物理环境交互。单个传感器的功能是有限的,但是当它们被大量地分布到物理环境中,并组织成传感器网络,就可以完成强大的实时跟踪、状态监测、信息传递等功能。无线网络传感器本身具有一些独特的特性,使得它们和传统计算范例中的台式机或服务器有着天壤之别,这些特性也使得应用于其上的系统软件的设计颇具挑战:(1)小尺寸和低功耗。设备物理尺寸和功耗直接决定了其处理能力、存储能力和互连的能力。从系统软件的角度看,单个无线网络传感器的物
8、理尺寸和功耗都是非常有限的,因此必须尽可能高效地使用它们。(2)密集的并发操作。无线网络传感器的一个重要任务就是相互之间能快速地传递信息。一方面,信息必须能即时地从传感器上捕获,经过处理后向其他节点传送;另一方面,信息也可以从其他节点接收到,然后通过网络转发。这些操作都具93第9期王万里等:无线网络传感器及其微型操作系统的研究有实时性的要求,而且并发的可能性非常大,这就迫使系统软件能正确即时地处理它们。(3)有限的控制层次。传统的计算系统是把与一组设备相关的并发处理分布到总线结构连接的多层次控制器上。而在无线网络传感器中,控制器的数量远比传统的系统少,并且其处理能力和外接能力也更弱,因此传感器
9、和其他执行器件(如RF),通常直接和主微控制器连接,且完全由主微控制器负责控制。(4)面向具体应用的设计。无线网络传感器主要倾向于针对具体的应用。因此它们往往只集成某个具体应用所需的硬件,不同应用也要求不同的硬件组合,这就要求系统软件的设计高度模块化,能够非常容易地将这些软硬件组合在一起。(5)健壮的运行要求。实际应用中的无线网络传感器可能数量巨大,且多是在无人职守的场合,因此健壮的运行能力是非常重要的,一方面要尽量增强单个无线网络传感器的可靠性;另一方面也要增强整个网络的可靠性。2.2ZUSensor的结构针对上文所描述的关于此类网络传感器的基本特性,设计了一个小型、实用的网络传感器硬件平台
10、ZUSensor,并以此作为研究工作的目标平台。ZUSensor的结构如图1所示,它包含一个具有内部Flash程序存储器、内部EEPROM数据存储器的微控制器,外接若干LED,一个短距离射频器件(RF)和一个数字温度传感器。ZUSensor采用的主微控制器(MCU)是8位哈佛体系结构(Harvard Architecture)的AT MEL AT90S12007,16位寻址能力,共有32个8位通用寄存器,工作频率1MHz,工作电压5V。AT90S1200自带的系统内部存储空间非常有限,只有1KBFlash程序存储器和64字节的EEPROM数据存储器。此外,AT90S1200还集成了通用定时器和
11、看门狗定时器(WatchdogTi mer)以及两个通用I/O接口(共15条I/O引脚)。数字温度传感器(AD7418)代表了一大类数字传感器,这些数字传感器一般都有内部A/D转换器,以及标准通信协议接口。ZUSensor使用了同步双线的I2C协议,同时主MCU的系统软件利用其I/O引脚模拟I2C协议与AD7418通信。一般情况下,最多可有8个不同的I2C设备挂接在这个串行总线上,当然多个设备之间的仲裁也必须由主MCU上的系统软件来完成,不过目前ZUSensor并没有使用这么多的I2C设备。短距离射频器件(RF)是ZUSensor中非常重要的器件,采用RFM公司的TR1000。TR1000外围
12、电路简单,具有睡眠模式以降低功耗,可达到115.2 kbps的数据传输速率,理想传输环境下有效通信距离为1 000m。射频器件并没有缓冲,因此系统软件必须即时地处理接收或发射事件。发光二极管(LED)用于在通用I/O引脚上模拟I/O数据的输出情况。ZUSensor采用电池供电,电池采用Panasonic公司的CR2054。CR2054储存了560mAh的电能,在连续收发数据的工作状态下可以供电35个小时,而处于休眠等节能状态下能够供电至少一年。由于电池无法支持ZUSensor长时间处于工作状态,因此大部分时间里ZUSensor的多数组件(包括主MCU)都处于idle状态,而仅保留通信组件活动,
13、以便及时接收外界信息,并唤醒主MCU作进一步处理。随着研究工作的不断深入,ZUSensor还可以进一步改进,如采用处理能力、存储能力更为强大的微控制器,增加更多的传感器件(如电池容量监控器件、无线信号强度传感器等),以提高ZUSensor的实际工作能力。3 微型操作系统ZUO S的设计3.1ZUO S的设计要求无线网络传感器研究面临的主要问题是如何在资源受限的条件下完成感知、通信、控制和计算的工作。这些限制包括:有限的能量供应、有限的计算能力、有限的存储空间和有限的通信能力等。目前最缺少的关键技术就是系统软件对管理和操作这类设备的支持,因此支持无线网络传感器的微型操作系统8的研究是无线网络传感
14、器技术研究的核心。而且,此操作系统还必须能够充分有效地利用有限的能量、计算能力、存储空间和通信能力以完成特定的应用需求。ZUOS是架构于无线网络传感器(以ZUSensor为例)上的微型操作系统。如上所述,ZUSensor充分体现了无线网络传感器的典型特性,而这些特性对设计其上的微型操作系统提出了挑战。我们在仔细研究ZUSensor硬件特点的基础上,提出了ZUOS的基本设计要求如下:(1)精巧的核心调度模块。要求系统能在低于几百字节的指令空间和低于几十字节的数据空间内运行。(2)支持事件(event)和任务(task)两级调度算法。事件优先级高,用于处理中断,可抢占任务执行;任务不具有抢占性,以
15、先进先出的方式执行,用于计算相对集中的操作。(3)支持组件化的系统功能设计。(4)支持精简高效的通信协议,支持应用通信安全策略。(5)支持传感器节点间的对等通信和广播通信模式。(6)支持基于事件的异步通信处理模式。3.2ZUO S的结构ZUOS采用组件化的设计思想,整个系统由一个精巧的调度模块(包括一组操作系统原语)和若干组件构成。组件分为两种,一种以主MCU外接的硬件设备为单位,即一个硬件设备对应一个组件;一种以逻辑应用为单位,即一组相关的逻辑操作对应一个组件。每个组件都由以下四个部分中的一个或几个组成:一组事件处理函数(event handlers);若干可调度的任务(tasks);一组命
16、令(commands);组件的状态(states)。其中,事件处理函数用于表示对发生的底层硬件事件的处理,如MCU外部中断、定时器中断等,它可以向调度模块提交任务,但并不等待任务的执行;任务用于表示组件中计算相对集中的操作,任务可以调用自己或其他组件的命令,任务不具有04计算机应用研究2005年抢占性,且可以被事件处理函数抢占,但任务与任务之间是原子化的,即一个任务必须执行完之后才能执行下一个任务;命令用于执行对底层硬件的操作,是非阻塞的,且必须向调用者返回命令执行的结果(成功或失败);组件的状态用于表示组件当前的工作状态,可以被自己或其他组件所参考。ZUOS中的组件结构如图2所示。下面以TR
17、1000组件(硬件组件)和Message组件(逻辑组件)的伪代码为例进行说明:TR1000组件有两个命令,分别是tr1000_init和tx_data,tr1000_init初始化射频器件TR1000,tx_data利用射频把字节数据按bit发送。TR1000组件有一个事件处理函数rx_data,它利用射频器件接收bit信号,进行奇偶校验并组合成字节数据,然后向调度模块提交recv_msg任务进行详细的消息处理,但rx_data并不等待此任务的执行。TR1000组件本身并不包含任务,这是为了保持硬件组件尽可能简单,与具体的应用逻辑分开,而把其上的逻辑操作再抽象成一个新的组件,因此事件处理函数提
18、交的recv_msg任务是属于Message组件的。需要注意到的是,由于任务可以调用命令,因此为了防止被任务调用的命令再次调用事件处理函数而出现event handler22 task22 command22 event handler循环,在设计中不允许出现命令调用事件处理函数的情况。TR1000组件的状态量tr1000_state用于记录当前射频器件的状态:发送、接收或是空闲。COMPONENT TR1000COMMAND:tr1000_init;COMMAND:tr_data;EVENT_HANDLER:rx_data;STATE:tr1000_state;COMPONENTMessag
19、eTASK:recv_msg;TASK:send_msg;逻辑组件Message主要负责对消息的详细处理,它只包含两个可提交的任务:recv_msg任务负责处理系统消息接收队列中的消息,根据消息的具体含义再向调度模块提交其他任务或直接调用其他命令;send_msg任务负责处理系统消息发送队列中的消息,它调用TR1000组件的tx_data命令把消息按bit发送。TR1000组件和Message组件充分体现了ZUOS所采用的基于事件的异步通信处理模式,这样处理模式是基于如下的考虑:消息接收是非常重要的,接收动作要尽量简单、迅速;而对消息的处理属于计算相对集中的工作,可在空闲时进行。采用组件化设计
20、思想的好处是使得ZUOS的层次结构非常清晰,各组件之间只通过有限的方式联系(task和com2mand)。由于无线网络传感器多面向具体应用,而不同的应用需要集合不同的组件,因此一个完善的组件库对ZUOS的开发是非常重要的。目前,ZUOS包含如表1所示的一些组件。表1ZUOS中的组件组 件描 述AD7418组件提供配置、读取数字温度传感器的命令:7418_ctrl和7418_read以及记录当前传感器温度信息的状态量7418_tempLED组件提供控制LED的命令led_on,led_off以及记录当前LED开关情况的状态量led_stateTR1000组件提供初始化TR1000和发送数据的命令
21、tr1000_init和tx_data,处理数据接收事件的处理函数rx_data以及一个记录TR1000状态信息的状态量tr1000_stateI2C组件提供利用主MCU的I/O引脚模拟I2C通信协议的命令,包括iic_start,iic_stop,iic_ack,iic_noack,iic_rbyte,iic_wbyte,ii_waddrMessage组件提供可提交的任务recv_msg和send_msgTemparature组件提供可提交的任务read_temp,把从AD7418读出的2字节温度数据加工成1字节(只用低7bit)的数据,此任务将提交send_msg任务发送温度数据消息ZUO
22、S的调度模块非常简单,仅采用一个FIFO的任务执行队列,即所有的任务优先级都是相同的。各组件通过操作系统原语post_task向执行队列添加任务,然后由调度模块从中顺序执行。随着硬件的发展和具体应用的需要,也可以设计更为复杂的基于优先级的任务调度模块,当然这也对主MCU的处理能力、存储器的容量等提出了更高的要求。ZUOS的操作系统原语主要用来维护ZUOS自身所需的数据。目前,ZUOS有五条操作系统原语,如表2所示。表2ZUOS中的操作系统原语原 语描 述post_task向ZUOS的任务执行队列添加任务,如果队列已满则不允许提交新的任务。由于ZUOS中的任务都是以静态链接好的函数形式存在,因此
23、系统维护8个entry的函数入口地址数组(每个地址为16 bits)来记录提交的任务,此队列共需16个字节数据空间add_rx_msg向ZUOS的消息接收队列添加一条消息,如果消息队列已满,则最后一条消息被覆盖。队列长度为4个entrymove_rx_msg从ZUOS的消息接收队列中移出一条消息到寄存器,后面的消息前移,如果消息队列为空,则获得4字节全0的消息add_tx_msg和add_rx_msg类似,操作的是ZUOS的消息发送队列,队列长度为2个entrymove_tx_msg与move_tx_msg类似,操作的是ZUOS的消息发送队列3.3ZUO S的通信协议无线网络传感器ZUSens
24、or的一个重要任务就是接收、发送无线信息。由于硬件条件的制约,传统计算范例中使用的很多通信协议在此并不实用。因此,为ZUOS设计一个简单、高效的通信协议9显得十分必要。ZUOS的通信协议采用长度4字节的消息格式,固定消息长度使rx_data事件处理函数的设计更加方便。由于无线传输中干扰的情况经常存在,因此需对接收到的数据进行校验。鉴于ZUSensor的硬件能力,采用的是计算量较小的奇偶校验。奇偶校验分字节进行,每个字节的最高位是校验位,所以一个字节中只有7位才是真正的数据。消息格式如图3所示。Dest I D和Source I D分别是目的节点和发送节点的I D号,处于传感器网络中的每个ZUS
25、ensor节点都有一个唯一的I D号,I D号保存在主MCU的数据存储器中,可在生产硬件时烧录进去。Command/Result字段是消息的主要内容,消息接收者根据Command字段执行相应的处理,消息发送者把某些操作的结果放入Result字段后再发送消息。Count字段表示消息在传感器网络的传输过程中可以经历的节点数目,消息每到14第9期王万里等:无线网络传感器及其微型操作系统的研究一个节点后Count值减1,直到消息到达目的节点或Count值减为0时,消息就不再继续转发。由于需要保留一个特殊I D以支持广播通信模式,因此所有可用的I D号数目是125个(即低7位不是全0或全1),而广播I
26、D号的值是127(即低7位全1的情况)。当传感器网络中的某一节点发送消息时,所有处在射频覆盖范围内的节点都会收到此消息,并调用各自的事件处理函数rx_data接收并组合消息,然后提交recv_msg任务对消息进行处理,若允许提交新的recv_msg任务,则再通过原语add_rx_msg向系统消息接收队列添加消息。而recv_msg任务则通过原语move_rx_msg从消息队列中移出一个消息进行处理,当recv_msg任务在处理一个消息时,会出现以下情况:(1)如果是全0消息,则不作任何处理。(2)Dest I D表明这是一个广播消息,则recv_msg任务提交send_msg任务转发这一消息,
27、为避免广播风暴,Count值也需要减1,即广播消息也是有范围限制的。(3)Dest I D等于自己的I D,则说明这个消息是发送给自己的,则不再提交send_msg任务进行消息转发,而根据其中的Command字段进行具体处理。(4)Dest I D不等于自己的I D,说明这个消息不是发送给自己的,递减消息中的Count字段,若不为0,则提交send_msg任务转发消息,否则不再进行消息转发。ZUOS的消息发送则相对简单:send_msg任务只需判断原语move_tx_msg获得的是否是全0消息,对于正常的消息,send_msg调用TR1000组件中的tx_data命令把消息按bit发送出去。由
28、于ZUSensor硬件条件的制约,ZUOS的通信协议是十分简单的,如ZUOS只能维护分别为四个entry的消息接收队列和两个entry的消息发送队列,因此会出现消息覆盖而导致消息无故丢失的情况,另外由于主MCU计算能力的不足以及没有足够的存储空间维持一张路由表,ZUOS的通信协议没有路由的能力,这也会导致传感器网络之间大量的转发操作。3.4ZUO S评价对照2.1节中关于无线网络传感器的基本特性以及3.1节中对ZUOS提出的基本设计要求,对ZUOS作一评价:(1)整个ZUOS仅占用898字节的程序空间和60字节的数据空间。(2)采用FIFO的任务调度队列,调度模块非常精简,且支持事件和任务两级
29、调度,事件的优先级比任务高,可以抢断任务的执行。(3)采用组件化的设计方法,使得ZUOS的层次结构非常清晰,并有助于在长期开发的过程中形成一套组件库,这样在针对不同应用时只需组合适当的组件即可生成适用于不同应用的ZUOS。(4)采用了简单的通信协议,支持对等通信和广播通信模式。利用事件和任务两级调度完成基于事件的异步通信处理模式,即把消息的发送、接收和消息处理分开进行。(5)在无任务可以调度的情况下,执行sleep指令进入主MCU的power2down模式,以节省电能,在这种模式下主MCU只在外部中断(即有消息接收到)发生时才会被唤醒。(6)利用主MCU自带的Watchdog Timer避免Z
30、UOS因为意外情况进入死循环,从而在一定程度上增强了单个ZUSensor的健壮性。尽管ZUOS已经可以成功地运行在ZUSensor上,但目前还是相当不成熟的。一方面,ZUOS网络通信协议非常简单,缺乏路由能力,尤其是安全策略方面还需要开展进一步的研究工作,即如何防止被窃听或冒充网络中的某个节点10;另一方面,则是通用开发平台的不足,ZUOS是用汇编语言编写的,只支持静态链接的系统配置框架,国外的一些研究机构在这一方面的工作已初有成效11。4 总结本文以普适计算的迅速发展为背景,在分析作为普适计算硬件平台重要组成部分的无线网络传感器的基本特性的基础上,研究了这些特性对设计无线网络传感器系统软件的
31、影响,并设计了小型、实用的无线网络传感器硬件平台ZUSensor;总结了架构在ZUSensor上的微型操作系统ZUOS的基本设计要求,并重点研究了ZUOS的整体结构,以及组件模型和通信协议的实现方法;概括了ZUOS的特点及今后研究工作的方向。此外,特别感谢惠普移动计算2003大学合作项目的资助。参考文献:1 MarkWeiser.Hot Topics:Ubiquitous Computing J.IEEE Com2puter,1993,26(10):71272.2B Warneke,et al.SmartDust:Communicatingwith a Cubic2Millime2terCom
32、puter J.IEEE ComputerMagazine,2001,34(1):44251.3RockwellAutomation.W ireless Sensing Networks EB/OL.http:/ M IT.M ITAMPS Project EB/OL.http:/www2mtl.mit.edu/re2search/icsystems/uamps/,2003210.5UCLA.Medusa MK22 Programming Resource EB/OL.http:/nesl.ee.ucla.edu/projects/ahlos/mk2/,2003210.6 UC Berkele
33、y.TinyOS:An Open2source Operating System DesignedforW ireless Embedded SensorNetworks EB/OL.http:/ MEL.82bit AVR Microcontroller with 1K Byte of In2System Pro2grammable Flash EB/OL.http:/ Hill,Robert Szewczyk,Alec Woo,et al.System ArchitectureDirections for Networked Sensors C.Cambridge,Massachusett
34、s,USA:Proceedingsof the 9th InternationalConference onArchitecturalSupport for Programming Languages and Operating Systems,ACMPress,2000.932104.9 T Von Eicken,et al.Active Message:A Mechanism for IntegratedCommunication and Computation C.Gold Coast,Australia:The19th International Symposium on Comput
35、erArchitecture,ACM Press,1992.2562266.10 C Karlof,D Wagner.Secure Routing in W ireless Sensor Networks:Attacks and Countermeasures C.Anchorage,AK,USA:The 1stIEEE InternationalWorkshop on SensorNetwork Protocols and Appli2cations,IEEE,2003.1132127.11 David Gay,Phil Levis,Robert Von Behren,et al.The N
36、esC Lan2guage:A Holistic Approach to Net2worked Embedded Systems C.San Diego,California,USA:ACM SIGPLAN Conference on Program2mingLanguage Design and I mplementation,ACM,2003.1211.作者简介:王万里(19802),男,安徽芜湖人,硕士研究生,主要研究方向为嵌入式系统、Linux;郑扣根(19642),男,江苏镇江人,教授,博士,主要研究方向为操作系统、人工智能、地理信息系统(GIS)、并行算法等;姚翔(19832),男,浙江嘉兴人,本科生;吴朝晖(19662),男,浙江温州人,教授,博士生导师,博士,主要研究方向为分布式人工智能、网格计算、生物认证与嵌入式系统。24计算机应用研究2005年