基于CC2530F256芯片和WiFi协议栈实现双模无线网关的设计方案

基于ieee802.15.4标准的zigbee协议具有自组织、稳定性好、抗干扰性强、功耗低等优点,主要应用于农业、工业检测、军事和医疗等方面。但其控制中心多是pc,不能适应野外等特殊环境。wifi作为一种越来越普及的无线通信技术,凭借覆盖范围广、无需布线等优点,广泛存在于人们的生产生活中。以此提出一种适应于复杂环境的双模无线网关设计方案,具有良好的应用性和前瞻性。
1 系统总体结构
系统由zigbee模块、开发板模块和wifi模块组成。zigbee模块中,coordinator作为zigbee网络的中心节点,负责控制和监测zigbee路由节点,每一个路由节点携带一个传感器,负责把传感器采集的数据发送给coordinator。开发板模块作为协议转换的枢纽,用于解析 coordinator传输的数据。wifi模块,将开发板解析的数据封装成wifi帧。这样就实现双模无线网关的转换,系统结构如图1所示。
图1 系统总体结构
2 无线网关的设计
2.1 zigbee数据流分析
zb253002模块是基于cc2530f256芯片,执行zigbee2007/pro协议的 zigbee模块,它具有zigbee协议的全部特点。其主要的特点:
①自动组网。所有的模块通电即自动组网,协调器(coordinator)自动给所有的节点分配地址,不需要用户手动分配地址,网络加入、应答等专业zigbee组网流程。
②简单数据传输。zb253002模块可以理解为“无线的 rs232 连接”,通过串行端口即可在任意节点间进行数据传输。zigbee模块有两种数据的传输方式:数据透明传输,只要传送的第一个字节不是0xfe、0xfd 或0xfc,则自动进入数据透明传输方式;点对点的数据传输方式,数据传输的格式为0xfd(数据传输命令)+ 0x0a(数据长度)+(目标地址)+(数据)。由协调节点传输给开发板的数据添加以0xfe开头的15字节的节点信息,用来提供给 ti sensor monitor,观察网络结构。
zigbee模块设置命令表如表1所列。
表1 zigbee模块设置命令表
2.2 通信协调器的设计
coordinator是整个网关转换和无线传感器网络建立的中心,是数据传输的中心枢纽。因此,coordinator的设计关系到整个系统的稳定性和可靠性。coordinator cc2530采用zigbee2007协议栈。zstack是ti公司提供的一种轮询式操作系统,借助于z-stack,coordinator上电后,首先进行硬件和网络初始化,然后创建3个任务:①zigbee网络任务,该任务通过coordinator与其子节点的“绑定”完成。其绑定的过程,协调器建立网络,创建绑定表,并设定允许绑定模式,子节点发送绑定请求,coordinator更新绑定表并响应子节点。②串口协议解析任务,该任务用于解析来自开发板和子节点的数据,并将解析后的数据传输给子节点任务或发送给开发板。③子节点任务,该任务主要用于接收子节点返回的数据,并将数据传输给串口协议解析任务。这样zigbee协议帧的解析就转到开发板端,由linux操作系统完成,linux解析完成后,将有效的数据放入指定的共享内存。当 boa收到外部web请求,调用相应的cgi获取共享内存中的数据,并经由无线网卡以wifi的形式传送给用户。
2.3 传输协议的实现
本设计经由linux操作系统完成zigbee协议的解析和wifi协议帧的形成,主要的重点在于coordinator与linux串口传输协议的设计。串口传输协议自定义帧格式如下:
串口传输协议自定义帧格式
自定义帧的格式由帧头、功能号、有效数据长度、有效数据和fcs校验5部分组成。帧头定义为0x02;功能号因获取的数据类型不同而异,有关帧格式功能码定义如表2所列;有效数据长度用于标识读取有效数据的长度范围,最大值为255;有效数据存放zigbee协议帧;fcs校验用于数据段的校验。
表2 协议帧功能码
根据设计中的自定义帧格式,报文中的有效数据被封装成固定格式,通过串口进行传送。开发板和coordinator通过监听串口数据分别对收到得数据包进行解析。解析流程(以coordinator为例)如图2所示,具体解析过程如下。
step1:coordinator监听串口(以中断的方式),直到串口有数据。
step2:读取一个字节,判定是否为自定义帧头。若不是,丢弃数据,回到step1。
step3:读取两个字节,匹配功能码。匹配失败,置错误标志位,丢弃数据,回到step1。
step4:读取一个字节,若该字节数据为0,则直接跳到step6。
step5:若读到的数据值为n(0 step6:读取两个自己数据,对step1~5读到得数据fcs校验,若无差错,发送n个字节的有效数据给z-stack协议栈,由zstack协议栈发送给子节点。回到step1。
step7:若fcs校验错误,置错误标志位,丢弃已读数据,回到step1。
图2 串口协议解析流程图
3 系统软件设计
3.1 系统软件架构
无线网关软件采用模块化设计,如图3所示,由硬件驱动层、操作系统、网络协议层和应用程序组成。硬件驱动层主要描述网关节点中zigbee模块、 wifi模块以及其他外设的一些驱动;操作系统层移植arm linux,添加无线网卡驱动模块;网络协议层主要包括zigbee协议栈和wifi协议栈;应用程序层主要移植了嵌入式web服务器(boa)、嵌入式数据库(sqlite)、cgic库和图形化用户界面(qt)。
图3 系统软件架构图
3.2 系统软件流程
根据系统软件架构图,系统软件数据流详细设计如图4所示。
图4 系统数据流图
以zigbee终端节点发送至异地终端浏览器的数据为例,介绍数据传送的整个过程。当zigbee协调器接收到来自zigbee终端节点的数据后,封装成自定义帧的格式经由串口传送给linux传输协议,经协议解析,将有效数据写入共享内存。当收到外部web请求时,web服务器通过cgi实时获取共享内存中的数据,并动态更新网页,经由wifi无线网卡以无线的形式传送至终端浏览器。
3.3 测试与验证
利用嵌入式技术对两种协议进行解析,完成协议转换,最终利用手机通过wifi远程访问web页面,读取zigbee终端传感器数据,并对zigbee终端的小灯开关进行远程控制,实现双模网关的基本功能。实验结果如图5所示。
图5 实验结果图
结语
本文通过分析zigbee与wifi协议栈的特点,提出了一种双模无线网关转换的方案,该方案可以很好地完成zigbee组网、远程数据采集和远程控制等任务。实验结果表明,基于zigbee和wifi的双模网关切实可行,可以实现全无线网络的组建,为网络通信从有线向无线过渡提供了一种解决方案。


Skype推出远程技术面试的集成代码编辑器
高级硬件工程师的知识与能力要求
威马汽车寻求D轮10亿美元融资,累计融资以超230亿元
基于MSP430F149单片机和GPS+GPRS模块实现追踪器系统的软硬件设计
中国高端彩电市场竞争将越来越激烈
基于CC2530F256芯片和WiFi协议栈实现双模无线网关的设计方案
助焊膏在应用领域有哪些地方?
恩智浦携手万事达卡帮助所有设备实现无忧支付
用平衡输入电路抑制共模噪声的话筒放大器
如何用单片机电路点亮led?
固定1024点流水线FFT处理器研究
植物营养诊断仪的特点介绍
随着补贴新政过渡期的结束,新能源汽车迎来新一轮市场放量
一个小时能从武汉到北京:“超级高铁”设计原型曝光
富士康斥资一亿美金设立显示技术研究所
新一代人工智能技术将“智”领新生活
智慧建筑发展有哪些关键点还存在哪些问题
工控系统Web组态工具的特点
TMS320C6678处理器的VLFFT演示探讨与研究
区块链在土木建设数据存储中的作用