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

[09-14 00:26:26]   来源:http://www.88dzw.com  通信电路   阅读:8906

文章摘要: (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

基于CC2430和ZigBee2006协议栈的通信模块设计,标签:电路设计,http://www.88dzw.com
    (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左右的通信和数据传输,并通过计算机串口调试软件测试正确。

www.88dzw.com
    综上所述,选用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 Ω)的要求。

上一页  [1] [2] [3]  下一页


Tag:通信电路电路设计家电维修 - 单元电路介绍 - 通信电路