来源:中国一卡通网 作者:中国一卡通收录 发布时间:2011-12-27 09:01:23 字体:[大 中 小]
摘 要:介绍了CC2430芯片的基本特性和ZigBee2006协议栈的基本内容。论述了以CC22430芯片为核心的无线通信模块的硬件设计,和以ZigB-ee2006协议栈为基础的软件设计。在实现短距离多网络节点间的无线通信的同时,使用串口实现无线通信模块与终端采集部分和本地控制部分的数据传输。
下面详细介绍串口部分和无线接收、发送部分程序。
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左右的通信和数据传输,并通过计算机串口调试软件测试正确。
推荐文章
论坛热帖