基于CC2430的无线温度检测终端的设计
发布时间:2008/5/29 0:00:00 访问次数:980
0 引言
在现代工农业生产中,常常需要对环境温度进行检测。传统的方法往往费时、费力,效率低下,不便应用在对较大环境的温度检测中。本文设计了一种基于无线射频技术的温度检测终端,它以rf(射频)芯片cc2430为核心,在温度传感器ds1822的配合下,能够高效地完成对环境温度的无线检测。
1 cc2430芯片概述
cc2430芯片为chipcon公司生产的2.4 ghz射频系统单芯片。
该单芯片上整合了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 终端工作原理
该终端系统设计中
0 引言
在现代工农业生产中,常常需要对环境温度进行检测。传统的方法往往费时、费力,效率低下,不便应用在对较大环境的温度检测中。本文设计了一种基于无线射频技术的温度检测终端,它以rf(射频)芯片cc2430为核心,在温度传感器ds1822的配合下,能够高效地完成对环境温度的无线检测。
1 cc2430芯片概述
cc2430芯片为chipcon公司生产的2.4 ghz射频系统单芯片。
该单芯片上整合了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 终端工作原理
该终端系统设计中