CC2530芯片无线收发深入解析

来源 :科技资讯 | 被引量 : 0次 | 上传用户:aghiiuooo
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  DOI:10.16661/j.cnki.1672-3791.2010-5042-0258
  摘  要:在智能家居和智能农业系统的感知层开发中主要运用Zigbee技术,实现Zigbee技术的硬件主要为具有射频收发功能的CC2530芯片。该文通过配置CC2530芯片的寄存器,使芯片实现无线收发的功能;通过使用寄存器的方式,编写无线发送函数和无线接收函数,实现基于Basic RF的数据传输。深入研究CC2530芯片的无线收发机制,从而掌握无线收发原理,便于更好地利用芯片,增强物联网感知层开发的能力。
  关键词:CC2530  芯片寄存器  中断函数  无线收发
  中图分类号:TN92                            文献标识码:A文章编号:1672-3791(2021)03(b)-0023-05
  Depth Analysis of CC2530 Chip Wireless Transceiver
  LIU Liangang
  (Dalian Vocational & Technical College, Dalian, Liaoning Province, 116035  China)
  Abstract: In the development of the sensing layer of smart home and intelligent agriculture system, ZigBee technology is mainly used. The hardware of ZigBee technology is CC2530 chip with RF transceiver function. In this paper, through the configuration of CC2530 chip register, the chip realizes the wireless transceiver function; through the use of registers, the wireless sending function and wireless receiving function are written to realize the data transmission based on basic RF. In depth study of CC2530 chip wireless transceiver mechanism, so as to master the wireless transceiver principle, facilitate better use of the chip, enhance the ability to develop the perception layer of the Internet of things.
  Key Words: CC2530; Chip register; Interrupt function; Wireless transceiver
  伴隨着智能家居、智能农业等发展,Zigbee技术的应用已非常广泛,在使用Zigbee技术组建无线传感网时,经常会用到芯片CC2530芯片。在使用CC2530芯片进行无线网络组建时,肯定会用到无线收发这一功能。开发者一般都会到官网下载工程模板,在开发时调用给定的接收、发送函数完成收发功能。该文抽丝剥茧,通过寄存器配置的方式实现无线收发功能,帮助读者深入了解CC2530无线收发的原理。
  通过配置寄存器的方式实现无线收发功能,要完成这样几项工作:射频相关资源初始化、编写射频发送函数、编写射频接收函数、编写射频接收中断服务子函数。完成了上述几项基本工作,就可以根据实际的业务逻辑进行程序的开发。上述几项工作都涉及到多个寄存器的配置,下面该文就针对上述几项工作进行详细的阐述,使读者深入地了解CC2530芯片射频工作的原理。
  1  射频相关资源初始化
  该项工作涉及到的寄存器比较多,该文通过表1归纳出需要配置的寄存器,并对各寄存器进行了功能的描述,具体见表1。
  通过表1归纳出的寄存器,相关人员可以看到,在射频相关资源初始化时,相关人员需要完成的工作有以下几个方面。
  (1)是否由无线电自动处理FCS字节数据。即是否由硬件完成帧校验序列。涉及寄存器FRMCTRL0。
  (2)设置获得最佳性能的值。即必须把寄存器TXFILTCFG、AGCCTRL1、FSCAL1从默认值更新到获得最佳性能的值。
  (3)中断设置。无线电与CPU的两个中断向量有关,它们是RFERR中断(中断0)和RF中断(中断12),该文主要是完成数据的发送和接收,所以使用RF普通操作的中断,用到的寄存器为IEN2。RF内核产生的中断是RF内核中若干源的组合,每个单独的源在RF内核中有自己的使能和中断标志,该文用到的中断屏蔽寄存器为RFIRQM0,标志位可在寄存器RFIRQF0中找到(后面用到)。
  (4)设置射频发送参数。寄存器FREQCTRL设置无线通讯的物理信道,IEEE802.15.4-2006指定16个通道,它们位于2.4 GHz频段之内。步长为5 MHz,编号为11~26。通道k的RF频率遵循公式fc=2405+5(k-11)[MHz]k∈[11,26],对于操作在通道k,FREQCTRL.FREQ寄存器设置为FREQCTRL.FREQ=11+5(k–11)。   通过配置PANID和SHORT_ADDR,完成网络标识和模块短地址的设置。
  (5)RF命令选通。写入该寄存器的数据被写到CSP指令存储器,命令选通/CSMA-CA处理器(CSP)提供控制CPU和无线电之间的通信。
  射频相关资源初始化使用到的寄存器的具体配置值和作用,具体见表2。
  2  编写射频发送函数
  射频发送涉及到的寄存器以及寄存器的功能,具体见表3。
  无线电RAM為发送数据有一个FIFO(TXFIFO),为接收数据有一个FIFO(RXFIFO)。这两个FIFO都是128字节长。可以通过SFR寄存器RFD(0xD9)访问TXFIFO和RXFIFO。当写入RFD寄存器时,数据被写入到TXFIFO。当读取RFD寄存器时,数据从RXFIFO中读出。射频发送具体实现步骤可参见下面的函数,函数参数为发送字符数组名。
  void RFSend(char *RFsend_str )
  {
  while (FSMSTAT1 & 0x22);//等待射频发送就绪
  RFST = 0xEE;//清除 TXFIFO 缓冲区
  RFIRQF1 &= ~0x02;// 清除发送完成标志位
  for(chari=0;i< RFsend_str [0]-1;i++)/*第一个字节为帧长度域,校验字节由硬件产生并附加到发送帧*/
  {
  RFD= RFsend_str [i];
  }  //利用循环把需要发送的数据全部压到发送缓冲区里面
  RFST = 0xE9; /*校准之后使能 TX,即该寄存器赋值为0xE9后,发送缓冲区的数据
  就被发送出去*/
  while(!(RFIRQF1 & 0x02) );//等待发送完成
  RFIRQF1 = ~0x02;// 清除发送完成标志位
  }
  注意:帧长度域定义了MPDU中的字节数,长度域的值不包括长度域本身。但是它包括帧检查序列(FCS),即使这是由硬件自动插入的。
  3  编写射频接收函数
  无线接收函数的功能是将接收到的数据存放到指定的数组中,涉及到的寄存器见表4。
  无线接收函数功能相对简单,即通过寄存器RFIRQM0和IEN2将收到一个完整的帧的中断禁用。然后读取RFD寄存器,数据从RXFIFO中读出,并存储到指定的数组中,数据读取完成后,使能收到一个完整的帧的中断。具体代码如下。
  void RFR evstr(char*RFstr_recive)
  {
  char len=0;
  RFIRQM0 &= ~0x40;
  IEN2 &= ~0x01;
  len=RFD;  //读第一个字节判断这一串数据后面有几个字节
  *RFstr_recive=len;
  for(int i=1;i<len+1;i++)  //将帧长度、数据、校验全部存放到指定数组中
  {
  *(RFstr_recive+i)=RFD;
  Delay(1);    //每次读取加一定延时
  }
  RFIRQM0 |= 0x40;
  IEN2 |= 0x01;
  }
  4  编写射频接收中断服务子函数
  利用中断完成数据的接收,涉及到的寄存器见表5。
  在中断服务子程序中关闭总中断后,判断是否产生的是接收到一个完整的帧的中断,如果是调用上述接收函数完成数据的接收,然后清除中断标志位。最后重设RFST寄存器,打开总中断即可。
  #pragma vector=RF_VECTOR
  _interrupt void RF_IRQ(void)
  {
  EA=0;
  if( RFIRQF0 & 0x40 )
  {
  RFRevstr (pRxData);
  S1CON= 0;           // Clear general RF interrupt flag
  RFIRQF0&= ~0x40; ;  // Clear RXPKTDONE interrupt
  }
  RFST = 0xED;   //清除 RXFIFO 缓冲区并复位解调器。
  RFST = 0xE3; // RX使能并校准频率合成器
  EA=1;
  }
  通过上述的讲解,可以使读者深入地理解CC2530芯片无线传输。读者可在完成射频相关资源初始化、射频发送函数、射频接收函数、射频接收中断服务子函数后,结合实际的业务逻辑完成项目的开发,也可以该文为基础更加深入地学习CC2530芯片。在进行无线传输开发时还应牢记两点:一是在RF收发器操作时,必须设置系统时钟源为32 MHz晶振,虽然16 MHz RC振荡器功耗少于晶振,但是不像晶振那么精确;二是无线收发的数据必须符合IEEE 802.15.4帧格式,否则无法完成数据传输。
  参考文献
  [1] 汪振中.基于CC2530芯片的ZIGBEE无线数据传输模块设计[J].中国设备工程,2017(14):133-134.
  [2] 严林波.基于ZigBee技术的无线通信模块研究[J].科学技术创新,2020(29):88-89.
  [3] 戚泽峰.基于CC2530的ZigBee通信网络的应用设计分析[J].中国新通信,2020(14):41.
  [4] 徐志勇.基于CC2530的ZigBeeRFID读写应用研究[J].科技资讯,2020(14):11-13.
  [5] 吴攀,曹珍贯.基于CC2530的大学图书馆和机电一体化监控系统的设计[J].科技资讯,2017(31):17,19.
  [6] 廖兵,周妮,石洋,等.基于物联网技术的农产品溯源关键问题研究与设计[J].科技创新导报,2020(3):56-57.
  [7] 黄冰霜,胡微微.基于大数据下物联网对武术训练的应用[J].当代体育科技,2016(17):43-44.
  [8] 王超.基于ZigBee技术的机房温湿度监控系统设计[D].大连理工大学,2019.
  [9] 李海锋.基于ZigBee技术的鱼塘水质监测系统研究[D].西安科技大学,2019.
其他文献
摘 要:新一轮科技革命和产业变革快速席卷全球,我国正处于新旧动能转换的关键时期,经济结构调整与产业转型升级的现实压力,均要求加快新工科专业建设进程。作为新工科建设中一项难度大、复杂程度高的关键性工作,突破新工科交叉学科专业建设的现实困境,探寻新工科交叉学科专业建设的可持续发展路径显得尤为迫切与需要。该文以哈尔滨华德学院机器人工程学院为基础,深入研究和探索机器人工程学院专业建设、实践教学平台建设、师
DOI:10.16661/j.cnki.1672-3791.2103-5042-2206  摘 要:某发电公司660 MW汽轮发电机组三抽温度随着机组启停逐步升高,最高达到508 ℃,严重影响了机组的安全。该文主要从机组结构出发,对三抽温度升高的原因进行分析,制定临时运行措施,保证运行期间机组的安全性,同时结合高中压缸检修时,对缺陷进行了处理,最终达到了预期的效果,保证了机组的经济性。该问题的处理
摘 要:网络学习空间作为当前教育信息化2.0工作的重要抓手,其优质资源的建设与整合是关键。各类资源分属于不同的平台,如何便捷地利用多平台资源是长期困惑一线教师的现实问题。不同平台间的优质资源如何整合问题成为制约网络学习空间深入普及与发展的重要因素之一。该文对资源整合问题进行追因,并思考在资源整合中应关注的问题,以推进网络学习空间资源建设与应用的深入发展。  关键词:网络学习空间 资源共享 基础教育
摘 要:当前网络技术快速地发展和应用,给社会上的生活生产造成了深远的影响,推动着社会进入网络信息化时代。计算机网络在人们的生活与生产中广泛应用,在社会活动中占据着重要的地位,所以需要关注计算机领域的技术研究,增强对于计算机网络的维护与管理,推动计算机网络获得健康发展,以更好地推动社会生产进步。该文针对当前计算机网络维护以及管理展开研究。  关键词:计算机网络 网络维护 网络管理 方法 技术 隐私
摘 要:物联网的出现改变了传统的供应链体系模式,进一步强化了供应链水平,成为推动传统制造业发展的重要推动力。该文通过分析物联网体系框架的结构及其关键技术,再以制造业产品为研究对象,对物联网物流供应体系的建设方案进行分析,并重点阐述了关于生产、采购等环节的优化措施,希望为进一步推动物流供应链体系建设提供支持。  关键词:物联网 物流体系 供应链 制造业产品  中图分類号:F274