这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 通讯及无线技术 » ZigBee和3G的远程无线测光系统设计(一)

共4条 1/1 1 跳转至

ZigBee和3G的远程无线测光系统设计(一)

菜鸟
2014-12-19 15:55:22     打赏

来源:网络


3.2 ZigBee 网络无线传送程序设计

ZigBee 协调器节点上电后,ZDO层首次进行一系列的初始化工作,然后调用ZDO层的初始化设备函数,最终触发网络初始化函数,开始构建一个新的网络。据上海.羿歌所认识,建立网络时,协调器节点首先逐个对各个信道进行扫描,根据各个信道的能量值进行排序,选择能量值达到一定大小的信道为可用信道。其次,由网络层在可用信道中选定信道,并随机选择一个在所选信道中唯一的16位网络标识符(PANID)分配给这个新建的网络[8]。协调器的软件设计流程图如图4所示。


终端采集节点上电以后进行设备初始化,然后检测周围是否有网络存在,当发现有网络存在时,网络层将给予ZDA层发现网络反馈信息,然后由网络层向能量强度相对较大的网络发出加入网络请求;加入网络成功,则网络层将给予ZDA层加入网络反馈。成功加入网络之后开始向协调器发出绑定请求,绑定成功后开始对光照数据进行采集,将采集到的数据进行预处理并无线发送至协调器节点。传感器终端采集节点软件流程图如图5所示。



3.3 3G网络无线传送部分设计

3.3.1 usb_modeswitch的移植

usb_modeswitch是一种在Linux系统下对USB设备的工作模式进行转换的工具,用于控制含有多个USB子设备的USB设备。在Linux环境下,厂家一般不会提供USB设备在Linux系统上的驱动,所以需要用usb_modeswitch工具来进行模式转换。设备模式依赖usbstorage和usbserial,所以在开发板上需要有这两种模块的支持,设备小能够正常工作于这两种模式下。


usb_modeswitch依赖于libusb提供的一系列库文件,首先需要安装libusb。解压并进入libusb1.0.6目录,使用如下命令建立子目录install,用于存放最后生存的库文件与头文件。usb_modeswitch移植过程略——编者注。


3.3.2 PPPD的移植


Linux在内核中已经支持3G模块驱动和PPP网络协议栈,需要做的工作是在内核中配置3G模块驱动和PPP网络协议栈的相关选项。PPPD的移植过程略——编者注。


在开发板文件系统/etc/ppp/peers目录下边创建三个文件,代码略——编者注。


3.3.3 主节点与上位机通信程序设计


通过PPPD的拨号,可以建立数据链路层的连接,数据链路层采用PPP协议,它是一种面向字符的协议,是为在两个对等实体间传输数据包连接而设计的,使用可扩展的链路控制协议LCP来建立、配置和测试数据链路。网络程序还需要TCP/IP协议的支持,Linux内核已经保留了对TCP/IP以及其他的网络协议的支持。最后编写嵌入式Linux上的网络客户端应用程序和Windows网络服务器端应用程序,传送想要传送的数据。主节点主控制器与上位机服务器通信的程序流程图如图6所示。


图6 主节点与上位机通信程序流程图


3.4 服务器上位机监测部分


服务器上位机软件的开发采用Microsoft Visual C++6.0开发环境,采用的是面向对象的程序设计方法,对于每一个窗口都建立了相应的类,在类的基础上创建对象,对对象的操作就是对其对应的窗口的操作。监控中心软件主要实现以下功能:建立服务器端并接收客户端的连接;接收客户端发送过来的数据并显示;实时曲线显示;历史数据查询。


4 调试测试


4.1 系统调试


在系统调试过程中,传输数据时上位机接收到的数据有个别是错误的,通过查看二进制代码发现0x11、0x13字符没有接收到。缩小范围查看问题出在哪个环节,检验发现主节点控制器S5PV210没有接收到0x11、0x13字符,而主节点CC2530单片机已经接收到了0x11、0x13字符,那么问题一定出现在串口上。


在Linux串口编程中都没对c_iflag(termios成员变量)这个变量进行有效的设置,这样传送ASCII码时没有问题,但传送二进制数据时遇到0x0d、0x11和0x13却会被丢掉。这几个字符是特殊字符,被用作特殊控制了,只需要关掉ICRNL和IXON选项即可。


具体做法是在主控制器Linux串口初始化函数中添加以下语句:


options.c_iflag &= ~(ICRNL | IXON | IXOFF);


options是之前定义的termios类型的结构体。通过以上设置就可以屏蔽掉0x11、0x13字符的特殊功能,从而能正常传送以上字符。


4.2 系统功能测试


连接好硬件设备后,配置编译内核,将编译好的内核通过USB下载到开发板上,然后重启。再将编译好的应用程序通过串口终端下载到开发板上。将3G上网卡插到USB接口上,使用如下命令建立3个TTY设备文件节点,代码略——编者注。


我们可以看到PING新浪的WEB服务器可以PING通,说明已经成功接入因特网了。然后将4个终端分节点放在不同的光照环境下,启动上位机软件,建立服务器端,开始等待接收主节点客户端的连接请求和发送过来的数据并且显示。启动主节点客户端程序来连接服务器,最后启动分节点的采集传送程序。上位机接收到并显示的监测数据图略——编者注。


结语


本文阐述了一种将低成本、低功耗的短距离无线ZigBee 技术与远距离3G移动通信技术相结合的远程无线测光系统,并完成了对采集终端节点、协调器主节点的软硬件设计,通过编写Windows平台上位机软件对采集到的数据进行实时显示与分析。




关键词: ZigBee 远程无线测光系统 3G Zig    

高工
2014-12-19 17:00:25     打赏
2楼
图好像有问题

菜鸟
2014-12-22 17:17:59     打赏
3楼
是的。什么原因呢?

菜鸟
2015-09-25 17:37:02     打赏
4楼
我公司是做无线通信模块的,zigbee模块,wifi模块,蓝牙模块等。可协同传统家居行业厂家(如:中央空调,地暖,灯饰,门锁,窗帘,家电,安防等)实现智能化联网远程控制。我公司是zigbee联盟董事会成员,产品稳定性、可靠性高,可测试验证。感兴趣的朋友可以联系我,15821616312,潘先生。上海顺舟智能科技股份有限www.shuncom.com谢谢!

共4条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]