新闻中心

EEPW首页 > 物联网与传感器 > 基于CC2430的无线温度检测终端的设计

基于CC2430的无线温度检测终端的设计

——
作者:昆明理工大学理学院 王玮 樊则宾时间:2007-11-22来源:《电子工程师》收藏
       引 言

        在现代工农业生产中,常常需要对环境进行。传统的方法往往费时、费力,效率低下,不便应用在对较大环境的中。

        本文设计了一种基于射频技术的终端,它以RF(射频)芯片为核心,在温度传感器DS1822的配合下,能够高效地完成对环境温度的检测。

        1 芯片概述

        芯片为Chipcon公司生产的2.4 GHz射频系统单芯片,其结构框图如图1所示。



  

       该单芯片上整合了ZigBee RF前端,内存,微控制器。其主要特点如下:高性能和低功耗的8051微控制器核;集成符合IEEE 802.15.4标准的2.4 GHz的RF电收发机;优良的无线接收灵敏度和强大的抗干扰性;在休眠模式时仅0.9μA的流耗,外部的中断或RTC(实时时钟)唤醒系统,在待机模式时少于0.6μA的流耗,外部的中断能唤醒系统;硬件支持CSMA/CA(具有检测冲击的载波侦听多路接人)功能;较宽的电压范围(2.O V~3.6 V);数字化的RSSI(接收信号强度指示)/LQI(链路质量指示)支持和强大的DMA(直接存储器存取)功能;具有电池监测和温度感测功能;集成了14位ADC(A/D转换器);集成AES(高级加密标准)安全协处理器;带有2个强大的支持几组协议的USART(通用异步同步收发器),以及1个符合IEEE 802.15.4规范的MAC(媒体访问控制)层计时器,1个常规的16位计时器和2个8位计时器;21个可编程的I/O引脚,P0、P1口是完全8位口,P2口只有5个可使用位,可以由软件设定一组SFR(专用寄存器)的位和字节,使这些引脚作为通常的I/O口或作为连接ADC、计时器、USART等部件的外围设备口使用。

       2 DS1822结构特点与基本操作指令

       DS1822是一种一线数字温度计,它用一根信号线来实现互连通信,其内部电路的核心是一个直接数字输出的温度传感器。它可以将-55℃~125℃范围内的温度值按9位、10位、11位、12位的分辨率进行量化,其最高分辨率为0.625℃,工作电压范围为3.0 V~5.5 V。每一片DS1822都有一个唯一的且不可改写的ROM ID(标识码,即电子序列号),在实际应用中可以通过指令方便地进行查询。

        DS1822的主要操作指令如下:

       a)Search ROM指令(代码为FOh):用以读取在线的DS1822的序列号。

       b)write Scratchpad指令(代码为4Eh):将温度报警上、下限值分别写入DS1822便笺式存储器的TH与TL字节中。

       c)Convert T指令(代码为44h):启动DS1822进行温度A/D转换。

       d):Read Scratchpad指令(代码为BEh):读取便笺式寄存器中的温度值。

       3 终端硬件设计

        CC2430芯片只需少量外围部件配合就能实现信号的收发功能。图2为该温度检测终端的硬件结构。 

 
  

       电路使用一个非平衡天线,连接非平衡变压器可使天线性能更好。电路中的非平衡变压器由电容C1和电感L1、L2、L3以及一个PCB(印制板)微波传输线组成,整个结构满足RF输入/输出匹配电阻(50 Ω)的要求。内部T/R交换电路完成LNA和PA之间的交换。R1和R2为偏置电阻,R1主要用来为32 MHz的晶振提供一个合适的工作电流。用1个32 MHz的石英谐振器(XTAL1)和2个电容(C2和C3)构成一个32 MHz的晶振电路。用1个32.768 kHz的石英谐振器(XTA12)和2个电容(C4和C5)构成一个32.768kHz的晶振电路。电压调节器为所有要求1.8 V电压的引脚和内部电源供电,电容C6和C7是去耦电容,用来为电源滤波,以提高芯片工作的稳定性。温度传感器DS1822的数据输入/输出端DQ接P0_0引脚,该 引脚具有4 mA的输出驱动能力。

        4 终端软件设计

       软件部分需要解决的问题包括:温度及报警信号采集、ZigBee协议栈(z-Stack)、ZigBee通信等。

       温度及报警信号的采集可由CC2430芯片内部的MCU完成。

       ZigBee协议栈运行在一个OSAL(操作系统抽象层)操作系统上。该操作系统基于任务调度机制,通过对任务的事件触发来实现任务调度。每个任务都包含若干个事件,每个事件都对应一个事件号。当一个事件产生时,对应任务的事件就被设置为相应的事件号,这样,事件调度就会调用相应的任务处理程序。OSAL中的任务可以通过任务API将其添加到系统中,这样就可以实现多任务机制。OSAL任务调度流程如图3所示。

       NextActive Task()是一个任务事件查询函数,返回任务的事件状态Active Task。软件设计时,可通过ActiveTask的值来决定是否需执行对应的任务函数ActiveTask()。 

 
  

        ZigBee的通信或数据传输涉及到两种通信帧格式:KVP(关键值偶)帧格式、消息(Message)帧格式。在发送数据量较大时选择Message方式;当只需要发送1个字节或几个字节的命令或数据时,可以使用KVP格式,该格式是ZigBee协议定义好的一种通信方式,操作比较简单,调用相应的信息发送函数即可实现两点问的通信。该终端设计中采用后一种通信帧格式,在充分利用开发工具CC2430ZDK Pro内部现有的协议栈的情况下,可以方便地完成通信部分的软件开发工作。

      5 终端工作原理

       该终端系统设计中采用DMA向存储器内部写终端控制程序。正式使用时,终端控制程序被启动,终端首先完成其内部系统的初始化,即通信协议的初始化,各端口使能与初始化,确认温度传感器连接完好,向DS1822中TH/TL位写入最高/最低温度门限,读取该温度传感器的身份标志码(该标志码亦代表该终端设备的身份),并将该终端标志码传回管理中心,以示该终端处于就绪状态,并准备随时接受管理中心的启动指令。启动后,终端由自己内部的MCU(即CC2430内部的MCU)控制,定期向温度传感器DS1822发送温度转换指令,DS1822在完成温度转换后会自动将温度值和TH/TL寄存器中的触发门限相比较,如比较结果表明测量温度高于TH或低于TL中的门限值,则设置报警标志位。随后,MCU在读取温度值的同时也读取报警标志位,并将这些数据信号传回管理中心。这样,终端就完成了温度的检测与报警功能。

       该终端也可随时接收来自管理中心的查询指令。

       由于该类终端每一片都有自己唯一的身份标志码,所以,一个管理中心可以管理多个这样的终端,并能准确区分它们。利用多个此类终端可对较大环境的温度实现实时、无线、多点的检测。

       6 结束语

       本文设计的温度检测终端,其外围 设备简单、功耗低,传输无线化,可以用在诸如温室、仓库等场合。


评论


相关推荐

技术专区

关闭