带定位引擎的射频芯片--CC2431

带定位引擎的射频芯片--CC2431,第1张

带定位引擎的射频芯片--CC2431

CC2431是Chipcon公司继CC2430之后推出的,带硬件定位引擎的符合ZigBee/IEEE 802.15.4技术的2.4 GHz射频系统,适合于各种ZigBee相关的无线网络节点,包括调谐器、路由器和终端设备等。本文介绍了CC2431芯片的主要特点和应用领域,重点介绍了CC2431的定位引擎及其使用方法。

关键词 CC2431 定位引擎 ZigBee

  CC2431是TI公司推出的带硬件定位引擎的片上系统(SoC)解决方案,能够满足低功耗ZigBee/IEEE 802.15.4无线传感器网络的应用需要。CC2431定位引擎基于RSSI技术,根据接收信号强度与已知参考节点位置准确计算出有关节点位置,然后将位置信息发送给接收端。相比于集中型定位系统,RSSI功能减小了网络流量与通信延迟,在典型应用中可实现3~5 m定位精度和0.25 m的分辨率。

1  CC2431的主要特点

  CC2431片上系统(SoC)由CC2430加上Motorola公司基于IEEE 802.15.4标准的无线定位引擎组成,具有2.4 GHz DSSS(直接序列扩频)射频收发器核心和高效的8051控制器。其中,MCU包括存储器及其外围,其他模块提供电源管理时钟分配和测试等重要功能。

  CC2431的设计结合了8 KB的RAM及强大的外围模块,并且有3种不同的版本。它们根据不同的闪存空间32 KB、64 KB和128 KB来优化复杂度与成本。CC2431的尺寸只有7 mm×7 mm的48脚封装,采用具有内嵌闪存的0.18 μm CMOS标准技术。针对协议栈、网络和应用软件执行时对MCU处理能力的要求,CC2431包含一个增强型工业标准的8位8051微控制器内核,运行时钟为32 MHz。CC2431还包含一个DMA控制器,可以减少8051微控制器内核对数据的传送 *** 作,因此提高了芯片整体的性能。

  在CC2431 8 KB静态RAM中的4 KB是超低功耗SRAM。32 KB、64 KB或128 KB的片内Flash块提供在线可编程非易失性存储器。CC2431集成了4个振荡器用于系统时钟和定时 *** 作,以及用于用户自定义应用的外设;具有4个定时器,此外,还集成了实时时钟、上电复位、8通道8~14位ADC等其他外设,并带有语音和定位跟踪引擎。CC2431的主要特点如下:

  ◇ 定位引擎能精确计算网络中节点位置;
  ◇ 具有高性能、低功耗的8051控制器核;
  ◇ 集成符合IEEE 802.15.4标准的2.4 GHz RF无线收发机(具有工业领先的CC2420射频内核);
  ◇ 优良的无线接收灵敏度和强大的抗干扰能力;
  ◇ 128 KB可编程闪存,8 KB RAM,4 KB带全部功耗模式数据保持功能;
  ◇ 强大的DMA功能;
  ◇ 极少的外部元器件
  ◇ 低电流损耗(微控制器运行于32 MHz时,接收和发射分别为27 mA和25 mA);
  ◇ 休眠模式时仅0.9 μA电流损耗,外部中断或RTC能唤醒系统;
  ◇ 待机模式下小于0.6 μA电流损耗,外部中断能唤醒系统;
  ◇ 低功耗模式与主动模式之间的快速切换;
  ◇ 硬件支持CSMA/CA功能;
  ◇ 较宽的电压范围(2.0~3.6 V);
  ◇ 数字化的RSSI/LQI支持;
  ◇ 具有电池监测和温度传感器
  ◇ 多达8路输入的8~14位模/数转换;
  ◇ 集成AES128安全协处理器;
  ◇ 带有2个功能强大的支持多组协议的USART;
  ◇ 集成看门狗定时器;
  ◇ 具有1个符合IEEE 802.15.4规范的MAC计时器,1个常规的16位计时器和2个8位计时器;

  ◇ 支持硬件调试,具有强大灵活的开发工具。

2  CC2431的定位引擎 *** 作

  CC2431和CC2430是引脚兼容的,除定位引擎之外,CC2430的MCU和RF部分与CC2431完全相同。为避免重复,本文重点介绍CC2431的定位引擎。

  定位引擎用于估算无线网络中节点的位置。通常参考节点坐标已知,其他需要估计坐标的节点为“盲节点”。进行定位估计时,定位引擎需要获得3~8个参考节点的坐标值以及其他测量参数,定位引擎计算后的输出是一个节点的估计坐标。在定位引擎运行之前,必须使能定位引擎寄存器LOCENG的第4位LOCENG.EN。当要停止定位引擎运行时,应往LOCENG.EN写入0关断引擎的时钟信号,从而降低CC2431的功耗。对定位引擎的 *** 作主要就是对与定位引擎有关的寄存器的 *** 作。下面详细说明各部分的 *** 作。

2.1  参考坐标

  定位引擎运行时需要3~8个参考坐标输入。参考坐标以m为单位表示各个参考节点的位置,其数值位于0~63.75,最高精度为0.25 m,以最低2位为小数部分,剩余6位为整数部分。参考坐标存放于RF寄存器REFCOORD中。在写入REFCOORD之前,寄存器LOCENG的第1位LOCENG.REFLD必须写入1,用于指示一组参考坐标将要被写入。一旦坐标写入过程开始(LOCENG.REFLD=1),8对坐标必须一次性写入。当定位引擎使用少于8个参考坐标时,要将未用的参考坐标写入0.0。

2.2  测量参数

  定位引擎除了需要参考坐标外,还需要一组测量参数。这组参数由2个射频参数和8个RSSI值组成。射频参数是数值A和n,用于描述网络 *** 作环境。在全向模式下,射频参数A被定义为用dBm表示的距发射器1 m接收到的平均能量绝对值。若平均接收能量为-40 dBm,那么参数A被定为40。定位引擎期望参数A为30.0~50.0,精度为0.5。参数A用无符号定点数值给出,最低位为小数位,而其余各位为整数位,一个典型值为40.0。

  射频参数n被定义为路径损失指数,它指出了信号能量随着到收发器距离的增加而衰减的速率。衰减与d-n成比例,这里,d是发射器和接收器之间的距离。实际写入定位引擎的参数n是一个可通过查表得到的整数索引值,如表1所列。

表1  参数n查询表
带定位引擎的射频芯片--CC2431,第2张

  例如,通过测量得到n=2.98,查表得到最接近的有效值为3.000,相应的索引值是13。因此,整数13作为参数n写入到定位引擎中。参数n以[0,31]之间的整数索引写入定位引擎,索引用整数表示。如n=7,即写入000000111。n的典型值是13。RSSI值是相应于一组参考坐标的RSSI测量值。

  RSSI值为[-40 dBm,-95 dBm],精度为0.5 dBm,写入值中应去掉负号。如RSSI的值为-50.35 dB,则写入到定位引擎中为50.5。注意,未用的参考坐标必须用0.0作为RSSI值写入。如果仅有部分参数写入,则定位引擎不能正确工作。

  所有的测量参数应写入RF寄存器MEASPARM中,在写入MEASPARM之前寄存器LOCENG的第2位LOCENG.PARLD必须写入1,表示一组测量参数将被写入。一旦参数写入开始(LOCENG.PARLD=1),所有10个参数必须一次性全部写入。测量参数必须按[A,n,rssi0,rssi1,…,rssi7]顺序写入MEASPARM寄存器,任何未使用的位必须写0。10个参数全部写完之后,LOCENG.PARLD必须写入0。

2.3  定位估计

  参数坐标和测量参数写入之后,通过将寄存器LOCENG第0位LOCENG.RUN写入1,启动定位估计计算。通常,LOCENG.RUN被置1后的1 200个系统周期之后,LOCENG的第3位LOCENG.DONE被置1。此时,估计坐标可从LOCX和LOCY寄存器读出。定位引擎不产生任何中断请求。在新的结果被计算出来或下一次重新启动之前,估计坐标值在LOCX和LOCY中保持有效。CC2431定位引擎 *** 作流程如图1所示。

带定位引擎的射频芯片--CC2431,第3张
图1  定位引擎 *** 作流程

2.4  软件编程

  下面介绍定位引擎 *** 作的源代码。

void CalcultePosTITIon(LOC_REF_NODE refNodes[LOC_ENGINE_NODE_CAPA],uint a_val,uint n_index,uint *locX,uint *locY) {
  uint i;
  //启动定位引擎
  LOC_DISABLE();
  LOC_ENABLE();
  //使能LOC_REFERENCE_LOAD,准备写入参考坐标
  LOC_REFERENCE_LOAD(TRUE);
  //写入参考坐标
  for(i=0;i    REFCOORD=refNodes[i].x;
    RERCOORD=refNodes[i].y;
  }
  //参考坐标写入完成
  LOC_REFERENCE_LOAD(FALSE);//使能LOC_PARAMETER_LOAD,准备写入测量参数
  LOC_PARAMETER_LOAD(TRUE);
  MEASPARM=a_val;
  MEASPARM=n_index;
  for(i=0;i    MEASPARM=refNodes[i].rssi;
  }
  //测量参数写入完成
  LOC_PARAMETER_LOAD(FALSE);
  //启动定位估计计算
  LOC_RUN();
  //等待完成后读出坐标值
  while(!LOC_DONE());
  *locX=LOCX;
  *locY=LOCY;
  //关闭定位引擎
  LOC_DISABLE();
}

结语

  本文主要介绍了带定位引擎的射频芯片CC2431,重点介绍了其定位引擎的使用方法。CC2431是一款真正的片上系统(SoC)解决方案,它针对无线传感器网络ZigBee/IEEE 802.15.4,具有定位检测引擎,可以实现3 m左右或更高的定位精度,有效降低了ZigBee节点成本;并且结合了市场领先的ZStack ZigBee协议软件,提供了市场上最具竞争力的ZigBee解决方案。在未来几年内,其应用必将扩展到更多领域。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2436594.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-03
下一篇 2022-08-03

发表评论

登录后才能评论

评论列表(0条)

保存