第3章传感器技术内容提要传感器作为信息获取的重要手段,与通信技术和计算机技术共同构成信息技术的三大支柱。本章将介绍传感器的发展与应用以及软硬件平台。•第2章介绍了常见的自动识别方法和技术,重点介绍了RFID技术•IC卡系统构成,一维和二维条形码•RFID的概念和系统组成,标签的存储方式、分类以及常用频率•RFID标签防冲突方法(基于ALOHA协议/基于二进制树协议)•本章重点介绍传感器技术,涉及传感器的基本概念和典型应用,以及常用的硬件平台和操作系统等内容。内容回顾3.1传感器概述3.2传感器技术发展史3.3典型应用3.4设计需求3.5硬件平台3.6操作系统究竟什么是传感器?传感器有哪些部分组成呢?本章内容3.1传感器概述•定义我国国家标准(GB7665-2005)对传感器的定义是:“能感受被测量并按照一定的规律转换成可用输出信号的器件或装置”。•传统传感器的局限性网络化、智能化的程度十分有限,缺少有效的数据处理与信息共享能力•现代传感器特点:微型化、智能化和网络化典型代表:无线传感节点无线传感节点无线传感节点的组成:电池、传感器、微处理器、无线通信芯片;相比于传统传感器,无线传感节点不仅包括传感器部件(左上图),还集成了微型处理器和无线通信芯片等,能够对感知信息进行分析处理和网络传输。被测量敏感元件转换元件基本电路电量传感器微处理器无线通信芯片电池3.1传感器概述3.2传感器技术发展史3.3典型应用3.4设计需求3.5硬件平台3.6操作系统传感器发展的两条主线是什么?制约因素又有哪些?本章内容3.2传感器技术发展史:两条主线加州伯克莱分校SmartDust项目微型化传感器节点对无线传感器的研究始于20世纪90年代加州洛杉矶分校LWIN项目低功耗无线传感节点1996年,LWIM团队将多种传感器、控制和通信芯片集成在一个设备上,开发了LWIM节点1998年,LWIM团队和Rockwell科学中心合作开发了WINS节点1999年,该校发布了WeC节点之后,该校又发布了一系列节点,包括Mica、Mica2、Mica2Dot,MicaZ3.2传感器技术发展史:缓慢提升的性能时间硬件能力摩尔定律预测的曲线传感器节点发展曲线2004计算机硬件的发展通常遵循摩尔定律:集成电路上可容纳的晶体管数量,约每隔18个月增加一倍,性能也将提升一倍。无线传感器节点的发展并没有像摩尔定律预测的速度发展!制约传感器性能提升的因素?功耗的制约:无线传感节点一般被部署在野外,不能通过有线供电。其硬件设计必须以节能为重要设计目标。价格的制约:无线传感节点一般需要大量组网,以完成特定的功能。其硬件设计必须以廉价为重要设计目标。体积的制约:无线传感节点一般需要容易携带,易于部署。其硬件设计必须以微型化为重要设计目标。3.1传感器概述3.2传感器技术发展史3.3典型应用3.4设计需求3.5硬件平台3.6操作系统虽然传感器性能有限,但仍然得到广泛应用。本章内容军事监测中的传感器:VigilNetVigilNet是由美国弗吉尼亚大学研制的用于军事监测的无线传感系统,该系统由XSM,Mica2和Mica2Dot节点构成,其规模最大达200个节点;节点通过电池供电,铺设在道路旁边,用于检测与收集移动目标的情况。应用特点•节点自主成网、多跳传输•节点通过电池供电,通过软件节能机制延长网络的生命周期•节点智能感知、协同工作,向上提供预警的功能智能楼宇中的传感器:LoCal每年美国用电报告显示至少有30%的电量是浪费的。这些电能浪费在何处?其中哪些是可以节省的?由美国加州大学伯克利分校大学发起的LoCal项目试图通过在智能楼宇中部署无线传感器网络来解决这些问题。应用特点•传感器能实现空间和时间上的细粒度感知,可实时跟踪到单个电器•传感器能实现“多功能”的感知,能推测用户的行为•传感器能够互联互通,通过大量连续的数据则有助于分析得出更多有用的信息医疗监控中的传感器:Mercury传感器的另一个重要应用是医疗监控,哈佛大学研究组改进了传统传感器,使得其外形更小,适合穿戴在身上应用特点•传感器的设计十分人性化•传感器具有高精度的感知能力,医用的数据需要较高的采样精度供医生分析诊断•传感器能连续长期地采集数据•传感器使用无线通信方式,其数据传输是机会性的3.1传感器概述3.2传感器技术发展史3.3典型应用3.4设计需求3.5硬件平台3.6操作系统不同的应用场景对传感器软硬件提出独特的设计需求本章内容大规模长时间部署传感器的设计需求低成本与微型化•低成本的节点才能被大规模部署,微型化的节点才能使部署更加容易•节点的软件设计也需要满足微型化的需求。例如TelosB节点的内存大小只有4KB,程序存储的空间只有10KB。因此,节点程序的设计必须节约计算资源,避免超出节点的硬件能力大规模长时间部署传感器的设计需求低功耗•在硬件设计上采用低功耗芯片例如TelosB节点使用的微处理器,在正常工作状态下功率为3mW,而一般的计算机的功率为200到300W•软件节能策略来实现节能软件节能策略的核心就是尽量使节点在不需要工作的时候进入低功耗模式,仅在需要工作的时候进入正常状态大规模长时间部署传感器的设计需求灵活性与扩展性•传感器节点被用于各种不同的应用中,因此节点硬件和软件的设计必须具有灵活性和扩展性•节点的硬件设计需满足一定的标准接口,例如节点和传感板的接口统一有利于给节点安装上不同功能的传感器•软件的设计必须是可剪裁的,能够根据不同应用的需求,安装不同功能的软件模块大规模长时间部署传感器的设计需求鲁棒性(robustness,可理解为稳健性、抗变换性)•鲁棒性是实现传感器网络长时间部署的重要保障•对于普通的计算机,一旦系统崩溃了,人们可以采用重启的方法恢复系统,而传感器节点则不行,就整个网络而言,可以适当增加冗余性,增加整体系统的鲁棒性3.1传感器概述3.2传感器技术发展史3.3典型应用3.4设计需求3.5硬件平台3.6操作系统结合设计需求可得出传感器节点硬件平台的基本特征本章内容3.5硬件平台设计需求回顾•低成本与微型化•低功耗•灵活性与扩展性•鲁棒性无线传感器组成•传感器•微处理器•无线通信芯片•电池供能装置•采用电池供电,使得节点容易部署。但由于电压、环境等变化,电池容量并不能被完全利用。•可再生能量,如太阳能。可再生能源存储能量有两种方式:充电电池,自放电较少,电能利用会比较高,但充电的效率较低,且充电次数有限;超电容,充电效率高,充电次数可达100万次,且不易受温度,振动等因素的影响。3.5硬件平台设计需求回顾•低成本与微型化•低功耗•灵活性与扩展性•鲁棒性无线传感器组成•传感器•微处理器•无线通信芯片•电池传感器有许多传感器可供节点平台使用,使用哪种传感器往往由具体的应用需求以及传感器本身的特点决定需要根据处理器与传感器的交互方式:通过模拟信号和通过数字信号,选择是否需要外部模数转换器和额外的校准技术。常用传感器及其关键特性设计需求回顾•低成本与微型化•低功耗•灵活性与扩展性•鲁棒性无线传感器组成•传感器•微处理器•无线通信芯片•电池3.5硬件平台设计需求回顾•低成本与微型化•低功耗•灵活性与扩展性•鲁棒性无线传感器组成•传感器•微处理器•无线通信芯片•电池微处理器微处理器是无线传感节点中负责计算的核心,目前的微处理器芯片同时也集成了内存、闪存、模数转化器、数字IO等,这种深度集成的特征使得它们非常适合在无线传感器网络中使用。影响节点工作整体性能的微处理器关键性能包括功耗特性,唤醒时间(在睡眠/工作状态间快速切换),供电电压(长时间工作),运算速度和内存大小常用微处理器及其关键特性设计需求回顾•低成本与微型化•低功耗•灵活性与扩展性•鲁棒性无线传感器组成•传感器•微处理器•无线通信芯片•电池3.5硬件平台设计需求回顾•低成本与微型化•低功耗•灵活性与扩展性•鲁棒性无线传感器组成•传感器•微处理器•无线通信芯片•电池通信芯片•通信芯片是无线传感节点中重要的组成部分,在一个无线传感节点的能量消耗中,通信芯片通常消耗能量最多,在目前常用的TelosB节点上,CPU在工作状态电流仅500uA,而通信芯片在工作状态电流近20mA。•低功耗的通信芯片在发送状态和接收状态时消耗的能量差别不大,这意味着只要通信芯片开着,都在消耗差不多的能量3.5硬件平台设计需求回顾•低成本与微型化•低功耗•灵活性与扩展性•鲁棒性无线传感器组成•传感器•微处理器•无线通信芯片•电池通信芯片(续)•通信芯片的传输距离是选择传感节点的重要指标。发射功率越大,接受灵敏度越高,信号传输距离越远。•常用通信芯片:•CC1000:可工作在433MHz,868MHz和915MHz;采用串口通信模式时速率只能达到19.2Kbps•CC2420:工作频率2.4GHz,是一款完全符合IEEE802.15.4协议规范的芯片;传输率250Kbps常用通信芯片及其关键特性设计需求回顾•低成本与微型化•低功耗•灵活性与扩展性•鲁棒性无线传感器组成•传感器•微处理器•无线通信芯片•电池3.1传感器概述3.2传感器技术发展史3.3典型应用3.4设计需求3.5硬件平台3.6操作系统操作系统是传感器节点软件系统的核心本章内容节点操作系统VS其他操作系统节点操作系统区别于传统操作系统的主要特点是:其硬件平台资源极其有限由图可得,节点操作系统是极其微型化的。节点操作系统功能:•硬件驱动•资源管理•任务调度•编程借口TinyOSTinyOS由加州伯克莱分校开发,是目前无线传感网络研究领域使用最为广泛的OS()TinyOS开发语言:nesC•nesC语言是专门为资源极其受限、硬件平台多样化的传感节点设计的开发语言•使用nesC编写的应用程序是基于组件的•组件之间的交互必须通过使用接口•用nesC编写的应用程序一般有一个最顶层的配置文件TinyOS代码举例//BlinkC.ncmoduleBlinkC{usesinterfaceTimerTMilliasTimer;usesinterfaceLeds;usesinterfaceBoot;}implementation{eventvoidBoot.booted(){callTimer.startPeriodic(250);}eventvoidTimer.fired(){callLeds.led0On();}}左侧代码中:BlinkC就表示一个组件,它使用了三个接口:Timer,Leds,Boot。在其实现部分,它可以调用这些接口提供的服务,如Timer.startPeriodic启动一个以250ms周期触发的时钟,而Leds.led0Toggle使节点上第一个灯亮起。在上面的代码中,注意的是,event关键字表示BlinkC组件处理的系统事件。TinyOS代码举例左侧代码显示了一个典型的nesC配置文件。它必须指定当前程序使用了哪些组件。例如该程序使用了MainC,BlinkC(即代码1显示的组件),LedsC和TimerC组件。BlinkC组件中使用的接口到底是由哪个组件提供的,例如,BlinkC组件使用的Boot接口由MainC组件提供;BlinkC组件使用的Timer接口由TimerC组件提供;BlinkC组件使用的Leds接口由LedsC组件提供。//BlinkCApp.ncconfigurationBlinkAppC{}implementation{componentsMainC,BlinkC,LedsC;componentsnewTimerMilliC()asTimerC;BlinkC-MainC.Boot;BlinkC.Timer-TimerC;BlinkC.Leds-LedsC;}节点操作系统功能:•硬件驱动•资源管理•任务调度•编程借口TinyOS(续)TinyOS任务调度•TinyOS核心使用了事件驱动的单线程任务调度机制,这和传统OS的多线程调度机制截然不同•任何一个时刻,处理器只能执行一个任务。因此,如果当前正在执行一个任务,处理器