77范文网 - 专业文章范例文档资料分享平台

基于CC2530uIP1.0的矿用起重机能耗感知系统Sink节点设计1

来源:网络收集 时间:2019-08-17 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

基于CC2530/uIP1.0的矿用起重机能耗感知系统Sink节点设计

张峰 宋泊明 徐溪 徐钊

(中国矿业大学信息与电气工程学院 江苏 徐州 221008)

摘要:介绍了矿用起重能耗感知系统的构建,并且着重分析了该系统Sink节点的硬件构成与功能需求。在分析了uIP1.0协议栈的数据通信流程与特点的基础上,详细地讲述了如何在CC2530芯片上移植uIP1.0协议栈,以及Sink节点功能函数的编写。通过测试,验证了该设计方法能够准确地实现TCP数据包的传输,满足矿用起重机能耗感知系统数据传输需求。

关键词:起重机;能耗感知;uIP1.0;CC2530;

Design of Sink node of energy consumption perception system for mine crane

based on CC2530/uIP1.0

ZHANG FENG SONG BO MING XUXI XUZHAO

(School of Information and Electrical Engineering, China University of Mining and Technology, Xuzhou 221008,China) Abstract: This paper introduces the construction of energy consumption perception system for mine crane and focusing on the analysis of the hardware configuration and functional requirements of the Sink node in the system. On the basis of analysis the workflow and features of uIP1.0 protocol stack, we explain in detail how to transplant uIP1.0 protocol stack in CC2530 chip and the preparation of center aggregation node functions. Through the test, we verify that the design method can realize the exact transmission of TCP data packet and meet the demand of data transmission in energy consumption perception system for mine crane.

Key words: crane;energy consumption of perception ; uIP1.0; CC2530;

0 引言

煤矿矿用起重机是安装在提升机房内用于安装、检修提升机及其附件的桥式起重机[1]。其承担了矿井大型、重型设备的起吊安装工作[2],却难以避免成为现代社会中的能耗大户。由于之前我国对于起重机的节能与经济性重视不够,导致我国的起重机结构体积庞大,工作能效较低,再加之部分单位监管不严导致起重机事故频发,起重机的安全状态直接关系着人民群众的财产安全。在矿用起重机方面更是如此。

目前,国内对起重机有线监控系统的研究已比较成熟。但受有线传输方式的影响,在起重机工作运行状态下,难以对起重机的各方面机构进行动态信息采集,从而无法了解起重机工作中各个部件的能效状态。然而,随着物联网技术的发展,为解决起重机实时能耗监测提供了解决方案。因此,利用无线传感网络设计一套矿用起重机能耗监控系统,对矿用起重机能耗安全监控和能耗节约愈发重要。

送器对各机构的有功功率的瞬时值进行采样,其中功率因数由有功功率和视在功率的比值得出;利用压力传感器对起升机构的载荷进行测量;采用转速传感器对三个机构所用电机的瞬时转速进行测量采样;采用位移传感器对三个机构的运行距离进行实时测量采样。

本文中设计的矿用起重机能耗感知系统采用基于IEEE802.15.4的数据链路层无线传输协议,传感器将采集到的数据通过无线方式传给Sink节点。Sink节点再将收到的数据处理后、重组成以太网数据包,将数据上传至后台监控中心。能耗感知网络示意图如图1所示。

能耗感知节点能耗感知节点能耗感知节点无线传输链路Sink节点1. 能耗感知系统的构建

起重机能耗感知节点分布式布设在起重机的各个机构上,其需要采集的数据包括:依靠电压、电流传感器对起升机构以及大车、小车机构的输入电能特征的瞬时值进行采样;采用有功功率变

以太网起重机能耗监控中心

图1 能耗感知系统的结构示意图

2. Sink节点硬件设计

CC2530是符合2.4GHz IEEE 802.15.4的芯片,该具有RFID无线数据收发功能,具有最大256KB的Flash闪存储存器,可以实现大量数据的掉电无丢失存储。其无线收发器可实现最大250Kbps的传输速度,通信距离长,并且具有高接受灵敏度与强抗干扰能力等特点。经过实地测试,能够满足矿用起重机使用场合的复杂通信环CC2530和Eenc28j60的工作电压同为3.3V,考虑到矿用设备的工作在井下多噪声的环境中,决定选取TPS63031为3.3V的电压转换芯片。由于CC2530容易受到电源波纹的影响,所以在3.3V的输出后面增加了一个低压差线性稳压器(LDO)[4]

,用来滤除DC-DC模块输出的比较大的电源波纹,提高输出电压的稳定性。电源原理图如图4

2.2uh所示。 L1U1V3.74IN15L1L22V3.31312VinVoutGNDV3.25C4U2VLENVOUTVLNAPGNDRYIN58198境的要求。其丰富的接口资源能满足对各种传感器数据的采集需求。

Enc28j60是一个IEEE 802.3 兼容的,具有SPI接口的独立以太网控制器。其支持一个带自动极性检测和校正的10BASE—T端口,可在发生冲突时自动重发,并且自动拒绝错误数据包,数据传输速率高达10Mb/s[3]。

CC2530包含的USART0和USART1每个都可被选择地配置为SPI主/从模式或UART模式。本文中就是利用其SPI接口与Enc28j60以太网控制器相连组成一个Sink节点。在本文所设计的起重机能耗监测系统中,Sink节点就是采用CC2530无线射频芯片,以实现起重机工作参数的采集和无线收发。同时采用Enc28j60以太网控制器,在CC2530的驱动下,以实现将接收到的采样数据转换成以太网数据包,上传给后台监控中心。

Sink节点和各感知节点在硬件设计上基本相同。Sink节点硬件结构示意图和以太网控制器原理图分别如图2与图3所示。

Internet以太网中心汇MCUSPI接口Enc28j60聚CC2530芯片以太网控制器模块电源模块图2 Sink节点硬件结构示意图

图3 以太网控制器原理图

23CC710f3fu1fPS/SYNCFBuENGND4TuC1f17B.46ENGND9u01TPS78320TPS63031 图4 电源模块原理图 3. Sink节点软件设计

3.1 UIP简介与分析

uIP协议栈是一种保持代码大小和存储器使

用量最小的免费的TCP/IP协议栈[5]。保留了网络通信中必要的IP、ICMP、TCP、UDP协议的功能实现,而删掉了不常用的通信协议,协议具有很强的可裁剪性。与uc/IP,lwip和uc/ip等协议栈相比,其最大优缺点就是系统资源占用量少。所以对于8位或者16微处理机来说,使用uIP协议栈来实现以太网通信,是一个合适的选择。为移植工作做准备,需要进一步了解uIP的工作机制。通过分析源码,现将该协议栈对数据包的处理流程整理归纳如图4所示[5]。

图4 uIP对数据包的处理流程

3.2 uIP1.0在CC2530上的移植

BATTEuIP协议栈给用户提供了三个底层设备驱动程序:uip_periodic()、uip_init()和uip_input(),这三个函数需要根据具体的底层网卡设备来编写。Uip协议栈的应用程序是基于事件驱动模式的,TCP用户可以将系统中的接口函数UIP_APPCALL()宏定义为自己编写的应用程序函数名,将自己要实现的事件功能挂接到uIP1.0协议栈中。针对起重机的应用程序,经过编译后,HEX文件大小只有30k,而CC2530具有内部256K的ROM存储器,对于起重机能耗感知系统的应用需求已经绰绰有余了。

3.2.1底层驱动函数编写

本次设计中使用的是网卡是Enc28j60。需要创建两个C文件:spi.c和Enc28j60.c。分别实现spi接口的初始化,读写函数,和网卡的驱动。编写好后将相关文件放在driver目录下。对

Enc28j60.c的操作需要使用SPI串行通讯接口,很多移植工作都是使用I/O模拟实现的。

但是,由于CC2530内部自带了SPI接口,SPI数据的收发只要通过读写UxDBUF寄存器就可以实现,简单方便,不需要I/O口模拟。由Enc28j60的数据手册可知,在spi.c中要将SPI接口配置在CC2530的P0口的位置1,波特率设为2M。另外SPI接口需要设置为主模式,SPI接口的时钟极性和相位都要配置为0。只要按照

Enc28j60数据手册的时序要求,通过对相关寄存器的配置,便可以实现基本的读写操作。通过对读写函数的层层组装,最终在Tapdev.c文件中可以实现tapdev_init(),tapdev_read()和tapdev_send()三个函数。tapdev_init()用来实现网卡初始化函数,初始化网卡的工作模式。tapdev_read()将网卡收到的数据放入全局缓存区uip_buf中,返回包的长度,赋给uip_len。tapdev_send()将全局缓存区uip_buf里的数据(长度放在uip_len中)发送到以太网。

由于uIP协议栈需要使用时钟为TCP和ARP提供定时器服务。因此可以使用CC2530的定时器T0用作模块时钟,计时累计达20ms,在定时中断服务函数中让计数tick_cnt加1。这样,25次计数[6](0.5S)满了后可以调用TCP的定时处理程序。10S后可以调用ARP老化程序。 3.2.2系统功能函数定义与相关配置

CC2530是基于8051的内核,存储模式为小端模式,为了实现与网络字节续数据交互时的统一。需要在在uipopt.h文件中做如下改动:

#ifndef BYTE_ORDER

#define BYTE_ORDER LITTLE_ENDIAN #endif

为了保障数据通信的可靠性,本次设计采用TCP协议作为数据链路层的通信协议。在tcp.c文件中需要针对具体应用配置TCP端口号,该函数

需要在主函数运行时的网络初始化函数被调用,对特定端口号进行侦听。代码如下:

void tcp_server_init(void)

{ uip_listen(HTONS(aimsocket));}

uIP协议栈与应用程序的主要接口是

UIP_APPCALL()和UIP_UDP_APPCALL()[7],如果在tcp.h文件中已经使用了宏定义语句#define UIP_APPCALL tcp_server_appcall,那么就可以在tcp_server_appcall()函数中实现自己的需求功能。同样,在tcp.c文件中针对自身具体应用,可以将应用函数挂接进uip协议栈中。代码如下:

void tcp_server_appcall(void){ switch(uip_conn->lport) {

case HTONS(80): //http服务器 httpd_appcall(); break;

case HTONS(aimsocket): //TCP服务器

example1_app(); break;

case HTONS(8001):

example1_app();break; default: break; } }

上面的函数example1_app();就是用户需要挂接的应用函数,可以针对不同的应用给出不同的定义。在本设计中主要是用来对数据实现以太网组包发送的,具体的函数定义如下所示:

example1_app();

{

if(uip_newdata()||uip_rexmit())

{ uip_send(buf,strlen(buf));}; }

uipopt.h/uip-conf.h是配置文件,用来设置本地的IP地址、网关地址、MAC地址、全局缓冲区的大小、支持的最大连接数、侦听数、ARP表大小等。用户可以根据自身需要修改成特定的宏定义参数大小。

3.3 无线射频中断服务函数中对数据的存储

本节点完成的工作主要是将传感器节点发送的802.15.4的无线射频信号接收,处理,并转化为以太网数据包发送出去。在无线中断服务函数中所做的工作就是把接收到的无线信号存储起来,然后供uIP中的应用函数调用。每当起重机监控中心使用TCP协议向Sink节点的aimsocket端口发送数据请求时,Sink节点就会从开辟的全局环形缓存Buf中读取采样数据通过以太网发送出去。由于无线传感器网络的节点存储空间有限,为了避免数据存储时的溢出或覆盖问题,能否开辟一个大小合适的数据缓存将直接影响整个系统运行的稳定性与实时性。

假如一个Sink节点需要汇聚N个感知节点采集的数据,由起重机采样点分布的离散性可知,

每个感知节点一般只负责一项采集任务,每项采集任务的每次采集量为两字节左右。由奈奎斯特采样定理和起重机现场所用传感器的种类可知,对数据的最高采样频率为100赫兹。这样地话一秒钟采集并且需要上传的数据量为100*N*2.所以当N小于10时,每个Sink节点的数据接收速率为2KB/S。只要在CC2530的内部开辟2KB的环形队列,监控中心对Sink节点的轮询周期小于1S,整个系统就能数据包存储时无丢失地稳定运行。当实际接收数据速率增大时,可适当减小监控中心对Sink节点的轮询周期或增大环形队列。

4. 节点功能测试

在实验室测试时将使用PC机作为TCP Server端,将PC的本地IP设为192.168.39.55,本地端口设置为3524.使用uip自带的配置函数将汇聚节点的IP以及相关参数进行配置,去了掉UDP支持和其他优化选项。经过IAR8.0编译,整个汇聚节点对ROM的占用量为30KB,RAM占用量小于4KB。配置代码如下:

uip_ipaddr(ipaddr, 192,168,30,91); uip_sethostaddr(ipaddr);//设定主机地址 uip_ipaddr(ipaddr, 192, 168, 30,1);

uip_setdraddr(ipaddr);//设定默认路由器地址 uip_ipaddr(ipaddr, 255, 255, 255,0); uip_setnetmask(ipaddr);//设定子网掩码 由图5可见,通过wireshark抓包工具可以捕获,监控中心与Sink节点传输过程中TCP包的交互。并通过网络调试助手可以看到,当服务器当服务器端向汇聚节点索取数据的时候,数据能够准确地显示,如图6所示。

图5 wireshark抓包示意图

图6 数据请求效果图

另外,在徐州某煤矿进行了实地测试,测试时使用了18个感知节点,测试信道为2.14G,开辟环形队列大小为2KB,监控中心轮询周期为500ms。实验结果表明,无线数据丢包率为0.2%,但并不影响整个系统对能耗情况的实时反映。包括Sink节点在内的整个系统均能稳定地正常工作。

5. 总结

本文讲述了物联网技术在起重机行业的应用,主要介绍了矿用起重能耗感知系统的构建,并且着重分析了该系统Sink节点的硬件构成与功能需求。讲解了uIP协议栈在CC2530上的移植工作,并且实现和测试了基于TCP协议的数据通信。对矿用起重机等特种设备的检测系统数据传输具有重要的意义。但本文在Sink节点的数据通信协议方面,还未对采用UDP,HTTP等不同数据包协议的效果做比较性实验,这是下一步工作的重点。

参考文献:

[1] 邓亚丽,王金平,李文水等.矿用起重机[J].矿山机械,2010年第10期:89. [2] 茹瑞鹏,郑鑫,魏宝玉.煤矿矿用起重机转台的有限元分析及优化[J].煤矿机械,2013年第05期:125-126.

[3] 张中央,陶乃彬.基于ENC28J60的嵌入式系统以太网接口设计[J].河南科技大学学报,2007年第3期:49-53. [4] 孟海斌,张红雨.高效率RFID手持机电源设计[J].通信电源技术,2011年第3期:2096-2099.

[5] ADAM D,The uIP embeded TCP/IP stack the uIp1.0 reference manual.june 2006.

[6] 邓治国,张维新.UIP TCP/IP协议栈在51系列单片机上的应用[J].微计算机信息,2004,第20卷第3期:88-89. [7] 曹欲晓,韩磊.uIP中UDP协议实现的改进[J].微型机与应用,2010,第21期:52-54.

资金支持:1.江苏省质量技术监督局科技项目(2012QK178)

2.中国矿业大学横向科研项目 7D128670

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库基于CC2530uIP1.0的矿用起重机能耗感知系统Sink节点设计1在线全文阅读。

基于CC2530uIP1.0的矿用起重机能耗感知系统Sink节点设计1.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/jiaoyu/681152.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: