找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

[嵌入式/ARM] 基于嵌入式系统的ZigBee芯片的研究与应用

[复制链接]
admin 发表于 2013-3-25 04:59:32 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
摘  要: 分析了ZigBee的特点,指出了以ARM-Linux嵌入式系统与CC2420组合作为ZigBee网络中的全功能节点的特有优势。阐述了芯片工作原理与硬件系统组成方式,并且给出了CC2420与ARM底层通信机制SPI驱动设计的方法,使得CC2420与系统间的数据交换得到保证,同时也是上层应用的基础。
关键词: ZigBee;CC2420;ARM-Linux;SPI驱动
       随着信息技术的不断发展,无线传感网络逐渐得到认同与应用。无线传感网络是由大量传感器节点通过无线通信的方式形成的一个多跳的自组织网络系统,它包括基本的传感单元、处理单元、通信单元和电源部分。符合IEEE 802.15.4标准的ZigBee协议可以很好地支持网络中的传输需要,将其与嵌入式系统相结合,可以形成无线传感网的基本单元[1]。
     ARM嵌入式系统作为当下最为流行的嵌入式系统,其在功耗、体积、可靠性与便携性方面都有很强的竞争力,而CC2420作为TI推出的符合2.4 GHz IEEE 802.15.4的射频收发器,为无线网络提供了良好的射频传输保证。在操作系统方面,嵌入式Linux系统凭借其开源性、稳定性等特点,成为众多嵌入式系统的优先选择。所以,将ARM-Linux嵌入式系统与CC2420芯片相结合作为网络中对硬件要求较高的具有完整功能的全功能设备,完全可以开发出基于ZigBee协议的无线传感网络,它同时具有低成本、低功耗、低复杂度、高性能、高通用性与移植性等诸多优势。
1 ZigBee协议的特点分析
     ZigBee(紫蜂)是IEEE 802.15.4协议的兼容版本。IEEE 802.15.4协议是针对低速无线个人局域网设计的符合IEEE规范的官方标准,工作在2.4 GHz频段,最多支持16个传输速率为250 kb/s的信道。ZigBee是一种短距离、低功耗的无线通信技术,支持星形、簇形和网状三种拓扑结构,具有短距离、低功耗、自组织、低成本、低速率和低复杂度的特点。ZigBee的网络标准共分为4层,从上到下分别为应用层、网络层、多媒体访问控制层(MAC)和物理层。每一层为它的上一层提供数据与管理服务。其中,物理层和MAC层采用了IEEE 802.15.4标准,应用层和网络层则在此基础上进行了定制。
     ZigBee标准的物理层规定了3个有效频段,分别是868 MHz、915 MHz和2.4 GHz。其中,在中国常用的2.4 GHz频段上采用直接序列扩频技术进行数据通信,从而提高了设备的抗干扰性。MAC层为传输提供可靠的数据通信链路与安全机制。在MAC层,不同的帧类型采用相同的结构,可以通过调用自定义的API函数构造不同的帧。网络层的主要功能是建立于管理网络,提供路由机制等。在应用层中,每个节点具有16位的网络地址和64位的IEEE地址,并且还有8位的应用层入口地址对应于应用对象。
     相对于Wi-Fi、蓝牙等其他无线通信技术,ZigBee技术凭借其功耗和成本上的优势,越来越广泛地用于低速率、小范围的网络。
2 系统硬件原理
     图1所示是系统硬件平台的架构示意图。S3C2440A是三星公司推出的以ARM920T为核心的32位高性能嵌入式处理器。它凭借高性能、低价格、低功耗等优势广泛应用于嵌入式系统中,并且可以稳定运行于Linux和Windows CE等诸多嵌入式操作系统。S3C2440A内置两组SPI总线,每组SPI拥有两个8位移位寄存器用于数据发送与接收。任意选取其中一组与CC2420连接即可完成微控制器与CC2420的数据传输[2]。
    20121107050351056392835.gif
       CC2420作为TI推出的首款符合ZigBee协议的射频芯片,可以与任何符合IEEE 802.15.4协议的设备实现无线互联。CC2420通过SPI接口(SCLK、CSn、SO和SI)配置为从机。SPI上所有的地址和数据都是高位优先发送。片选信号低有效,即当CSn变低时,意味着CC2420的新通信周期开始。
     CC2420共有50个寄存器,分别为33个16位配置寄存器、15个命令选通寄存器和2个用来访问独立发送和接收FIFO的8位寄存器。每个寄存器都被编址为一个6 bit地址,与第7位的RAM/Register选择位和第6 bit的读写选择位一起构成一个8 bit地址。在每个寄存器读写周期中,共有24 bit数据被发送到SI上,包括8 bit地址和16 bit数据。在发送数据的同时,SO线上将返回8 bit状态用于调试。命令选通脉冲可以看作是CC2420的单字节指令,通过编址一个命令选通寄存器可以启动内部序列。这些命令可以用于使能晶振、使能接收、启动解码等。晶振必须被首先启动并且稳定后才可以接收其他命令。命令选通与寄存器读写相似,只是没有数据传输,在CSn有效的前提下,命令选通后可以继续其他SPI操作。
     通过寄存器TXFIFO与RXFIFO可以存取发送FIFO和接收FIFO,且一次操作可以读取多个FIFO字节。SFLUSHTX命令可以激活TXFIFO,SFLUSHRX可以激活RXFIFO。
     CC2420通过CCA、SDF、FIFO和FIFOP 4条信号将工作状态反馈给微控制器。CCA信号用于清除通道,在接收状态下,如果经过8个符号周期后,信道内仍然没有数据,则CCA信号激活;否则处于非激活状态。SDF信号用于提供时序信息。在发送过程中,当帧的起始分隔符被传送后,SDF信号会被激活;当整个数据包完成传送后,SDF信号立刻处于非激活状态。在接收过程中,当检测到有效的帧起始分隔符后,SDF信号激活;整个数据包接收完成后,该信号处于非激活状态。FIFO信号用于检测RXFIFO中是否有数据,当RXFIFO中存在至少一个数据时,FIFO信号处于激活状态,直到RXFIFO为空。当RXFIFO中存入的数据超过了可写入的阈值时,FIFOP信号会被激活,另外一种情况是,当一个完整的数据包被接收到后,该信号会被激活,而有一个数据包从FIFO中读出后,该信号将立刻处于非激活状态。如果地址识别被允许,FIFOP信号会一直保持在非激活状态直到被传入的帧通过了地址识别,否则,即使RXFIFO中的数据超越了阈值,FIFOP信号仍然不会被激活[3]。
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-12-26 23:06 , Processed in 0.058320 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表