当前位置:首页 > 通信技术 > 通信设计应用
[导读]CC2430和ZigBee2006协议栈的通信模块设计 摘要:介绍了CC2430芯片的基本特性和ZigBee2006协议栈的基本内容。论述了以CC22430芯片为核心的无线通信模块的硬件设计,和以Z

CC2430和ZigBee2006协议栈的通信模块设计

摘要:介绍了CC2430芯片的基本特性和ZigBee2006协议栈的基本内容。论述了以CC22430芯片为核心的无线通信模块的硬件设计,和以ZigB-ee2006协议栈为基础的软件设计。在实现短距离多网络节点间的无线通信的同时,使用串口实现无线通信模块与终端采集部分和本地控制部分的数据传输。

引言
    随着微电子技术、汁算技术和无线通信等技术的进步,无线传感器网络被列为21世纪最有影响的21项技术和改变世界的10大技术之一。它能够实时监测、感知和采集各种环境或监测对象的信息,并对其进行处理。传感器节点是组成无线传感器网络的基本单位,是构成无线传感器网络的基础平台。
    ZigBee是一种新兴的短距离、低速率无线网络技术,是一组基于IEEE 802.15.4无线标准研制开发的,有关组网、安全和应用软件的技术标准。它具有功耗低、成本低、安全、工作频段灵活等优点,通过和传感器组成无线传感器ZigBee网络,使得数据的自动采集、分析和处理变得更加容易,可以作为决策辅助系统的重要组成部分。

1 CC2430及ZigBee协议栈体系结构
    CC2430是真正的系统芯片(SoC)CMOS解决方案,能够提高性能并满足以ZigBee为基础的2.4 GHz ISM波段应用对低成本、低功耗的要求。它结合了高性能的2.4GHz DSSS(直接序列扩频)射频收发器核心和1颗工业级小巧高效的8051控制器。CC22430在单个片上集成了ZigBee射频(RF)前端、内存和微控制器,使用1个8位MCU(8051),具有32/64/128 KB的编程闪存和8 KB的RAM,还包含模/数转换器(ADC)、定时器(TImer)、AES128安全协处理器、看门狗定时器(watchdog TImer)、32 kHz晶振的休眠模式定时器、上电复位电路、掉电检测电路以及21个可编程I/0引脚。CC2430的8051内核的目标代码兼容标准8051微处理器,可以使用标准8051的汇编器和编译器进行软件开发。其21个可编程I/O引脚均可以通过软件设定1组SFR寄存器的位和字节,使这些引脚作为通常的I/O口或者作为接ADC、定时器或USART部件的外围设备I/O口使用。
    ZigBee协议栈由一组子层构成,每层为其上层提供一组特定的服务:数据实体提供数据传输服务,管理实体提供全部其他服务。每个服务实体通过一个服务接入点(SAP)为上层提供服务接口,并且每个SAP提供一系列的基本服务指令来完成相应的功能。ZigBee协议栈的体系结构模型如图1所示,IEEE 802.15.4标准定义了物理层(PHY)和介质接入控制子层(MAC);ZigBee联盟定义了网络层和应用层(APL)框架的设计。


    ZigBee协议栈于2004年发布第1版,称为ZigBee2004。ZigBee2004是全源代码的协议栈,这个协议栈已经有了网络的概念,并能完成一些简单的通信。但它只能组建串状网络和星状网络,如果需要组建网状网络必须外加程序,另外在安全和路由方面也做得不是很理想。ZigB-ee2006协议栈很好地解决了网络组网问题,整个协议栈的安全性更好,层次性更强,功耗方面也有了进步,并实现了网状网络。在ZigBee-2006协议栈中已经将CC2430的底层驱动全部固化在协议栈中,可以直接调用。

    综上所述,选用CC2430芯片作为无线通信模块硬件核心芯片,软件部分选用ZigBee2006协议栈来实现无线模块之间的通信功能。


2 硬件设计
    无线通信部分作为监测系统中重要的数据传输通道,不仅需要实现无线通信模块之间的数据接收和发送功能,同时还需要提供数据接口与终端数据采集部分及本地主控制系统以进行连接。系统结构如图2所示。


    图3所示为无线模块硬件原理图。电路选用CC2430芯片作为无线传感器网络节点的核心CPU。选用1个32.768 kHz的石英谐振器(X2)和2个电容(C441和C431)组成32.768 kHz的晶振电路;选用1个32 MHz的石英谐振器(X1)和2个电容(C191和C211)组成32 MHz的晶振电路。电压调节器可为所有要求1.8 V电压的内部电源供电,电容C241和C421是用来作为电源滤波的去耦合电容,以提高芯片工作的稳定性。电路中J1是10引脚JTAG仿真器接口,J2是3.3 V电源接口,J3是CC2430芯片扩展输出口,在扩展输出口上主要预留了SPI口和整个PO I/O口。设计了2个发光二极管指示灯,作为电路调试指示灯。使用1个非平衡天线,为了使天线性能更好,在天线与CC2430之间连接了1个非平衡变压器。非平衡变压器由电容C341和电感L321、L331、L341以及1个PCB微波传输线组成,整个结构满足RF输入/输出匹配电阻(50 Ω)的要求。

3 协议栈软件设计
    软件开发的软件环境:IAR 7.30B、数据分析仪、串口调试工具以及各硬件驱动软件等;硬件环境:计算机、CC2430开发板等。
    系统软件基于TI/Chipcon公司免费提供的ZigBee2006协议栈,以ZStack-1.4.3-1.2.1版本中GenericApp例程为基础。GenericApp例子基本功能很齐全,而且在ZStack上实现了无线网络数据传输。例程没有多余的功能,所以是典型的ZStack模板,即为用户提供了一个通用模板,可以通过它建立自己的应用程序。因此,建立一个项目的方法主要是改动应用层(APP)程序。
    无线通信模块通过串口分别实现与数据采集部分及本地主控制部分的连接。因此,应用层软件主要功能是实现串口数据的收发和无线网络数据传输。在ZStack程序中嵌入了实时操作系统,用于统一调度网络组建、节点加入、数据收发等功能运行。其工作机制主要是多任务事件运行机制,对于同一个任务可能有多种事件发生,需要执行不同的事件处理。为了方便,对于每个任务的事件处理函数都统一在一个事件处理函数中实现,然后根据任务ID号(task id)和该任务的具体事件(event)调用某个任务的事件处理函数。进入该任务的事件处理函数之后,再根据event来判别是该任务的哪一种事件发生,进而执行相应的事件处理。任务处理部分具体流程如图4所示。


    下面详细介绍串口部分和无线接收、发送部分程序。

3.1 串口部分程序
    (1)串口初始化
    主要是设置halUARTCfg_t结构体成员值:

    通过对halUARTCfg_t赋值,可以设置波特率、字符数、数据位、停止位、奇偶校验位和硬件流控等。其中call-BackFunc是自定义设置串口回调函数,即一旦串口有数据传送,OSAL会就自动转到自定义的回调函数,执行自定义的操作。
    (2)串口回调函数
    首先调用Hal_UART_RxBufLen(uint8 port)函数确定串口数据的长度,然后再调用HalUARTRead(uint8 port,uint8*buf,uintl6 len)读取串口数据到自定义的串口数据缓冲区,并调用osal_set_event(byte task_id,UINTl6 event_flag)函数发送事件信号,进行数据的无线发送。
3.2 无线接收、发送部分程序
    (1)无线接收
    当有数据通过无线发送到应用层时,应用层会发送1个AE_INCOMING_MSG_CMD消息事件。
case AF_INCOMING_MSG_CMD:
    GenericApp_MessageMSGCB(MSGpkt);
    break:
    这里表示收到AF_INCOMING_MSG_CMD消息事件,然后调用收到消息事件的信息处理函数GenericApp_MessageMSGCB(MSGpkt),开始接收数据并通过涮用串口HalUARTWrite(uint8 port,uint8*buf,uintl6 len)写函数发送接收到的数据。
    (2)无线发送
    在串口回调函数中当串口有数据输入时,应用层会发送1个GENERICAPP_SEND_MSG_EVT消息事件。

    调用GenericApp_SendThmMessage()数据发送函数,具体到TI/Chipcon公司所提供的ZigBee2006协议栈中即为AF_DataRequest()函数,具体形式如下:


结语
    本文以CC2430为主体设计了无线通信模块的硬件,并选用TI/Chipcon公司免费提供的ZigBee2006协议栈作为软件开发平台。通过实验验证,设计的硬件节点基本达到了项目要求。经调试,串口能够正确地接收和发送数据,能够实现多个无线节点(1个协调器,3个终端设备)在50 m左右的通信和数据传输,并通过计算机串口调试软件测试正确。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭