关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于CC2430的无线传感器网络节点设计

基于CC2430的无线传感器网络节点设计

作者:时间:2011-04-12来源:网络收藏


  系统初始化主要是将系统的工作频率设为32MHz的晶振频率,这样RF才能正常工作。RF初始化时,先设置通信频率,再通过设置RFPWR.RREG_RADIO_PD位为1给RF供电。RF初始化的过程还包括执行下面的代码来开启Rx,清空Rx、Tx的FiFo缓冲区以及校准Radio。
  SRXON;
  SFLUSHTX;
  SFLUSHRX;
  SFLUSHRX;
  STXCALN;
  ISSTART;
  DMA的初始化阶段要为Tx分配1个空闲的DMA通道。首先要为通道0和通道1~4分别设置好通道描述数据结构的存放地址,并将首地址分别写入DMA0CFGH:DMA0CFGL和DMA1CFGH:DMA1CFGL。再为这个分配好的DMA通道设置其描述数据结构。该数据结构如下:
  typedef struct {
   BYTE SRCADDRH;//源地址
   BYTE SRCADDRL;
   BYTE DESTADDRH;//目的地址
   BYTE DESTADDRL;
   BYTE VLEN :3;
   BYTE LENH:5;
   BYTE LENL:8;
   BYTE WORDSIZE:1;
   BYTE TMODE:2;
   BYTE TRIG:5;
   BYTE SRCINC:2;
   BYTE DESTINC:2;
   BYTE IRQMASK:1;
   BYTE M8:1;
   BYTE PRIORITY:2;
  } DMA_DESC;
  当设置为Tx准备的DMA通道时,需将数据的源地址SRCADDRH: SRCADDRL设为所要发送数据的起始地址,目标地址DESTADDRH: DESTADDRL设为寄存器RFD的地址0xDFD9。然后,在LENH:LENL中设置所要发送数据的长度,并将VLEN设为0。将WORDSIZE位设为0,表示DMA数据按字节进行传输(设为1表示按字传输)。DMA的数据传送模式按照一次触发传输的数据量可分成四种,由TMODE设置选择。本例中采用Block模式,即一次DMA触发可进行一个完整数据块的传输。CC2430定义的DMA触发信号有31种之多,由TRIG位设置。将TRIG设置为0,表示采用无触发模式,这样DMA在每次接收到DMAREQ信号后才启动一次数据传输。SRCINC和DESTINC分别用于设置数据源地址和目标地址的变化方式,可设为不变、增1、增2或减1。由于采用按字节的Block模式向Radio发送数据,因此数据源地址选择增1变化,而数据目标地址则一直为寄存器RFD的地址0xDFD9,故设为不变。IRQMASK位用于设置是否在DMA数据传输完后发中断信号。本例中设为0,即禁止DMA中断。M8是按字节传输时的数据宽度,设为0表示8位传输,为1时表示只传输字节的低7位。本例中设为0。PRIORITY用于优先级设置,本例中设为2,即中等优先级。
  DMA描述设置好后,通过设置寄存器DMAARM和RMREQ的位来准备相应的DMA通道以及启动这个通道上数据块的传输。在启动DMA数据传输之前,将当前数据帧的长度、目标节点地址、源节点地址、标志字节通过直接写寄存器RFD的方式写入TXFIFO。这样在启动DMA传输后,完整的数据帧将被传输至TXFIFO。通过给CSP发送指令ISTXONCCA启动TX传输。这就完成了一帧数据的发送。
  数据接收的过程同样需要设置系统工作频率为32MHz,且应确保Rx工作在Tx相同的频道上,并设置DMA通道。其中DMA的数据源为寄存器RFD,并将DMA触发信号设为RADIO,即Radio接收到数据时触发DMA。数据接收的程序流程如图6所示。


  本文在总结归纳对芯片CC2430已有研究成果的基础上,阐述了基于CC2430的无线传感器网络节点的设计和实现,并详细介绍了两个节点之间点对点通信的实现。在实验中,节点能够采集环境的温、湿度和节点的电池电压,并将采集的数据在节点中传播。本文的研究为进一步的上层通信协议设计提供了基础,具有一定的研究意义。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭