历史上的今天
返回首页

历史上的今天

今天是:2025年02月05日(星期三)

正在发生

2018年02月05日 | 基于ZigBee与μIP协议栈的嵌入式网络监控系统设计

2018-02-05 来源:eefocus

    本文针对传统远程通信方式在嵌入式监控系统中的低速、传输距离短、布线复杂等问题,提出了一种基于ZigBee与μIP协议栈的嵌入式网络监控系统。选用STM32F103C6作为监控系统下位机的主控芯片,与ENC28J60以太网控制器通过SPI接口相连,在μIP协议栈的基础上实现下位机与远程监控主机的网络通信功能,并在ZigBee协议栈的基础上通过CC2530芯片组建无线传感器网络,通过串口与主控芯片通信。


    嵌入式系统因具有低功耗、实时性强、可靠性高等优点而日益普及,随着网络对人们的生活越来越重要,网络通信功能也成为嵌入式系统的发展趋势。传统的远程监控系统多采用8位或16位主控芯片,通过485总线、红外线等方式进行远程通信。这样的远程监控系统存在反应速度慢、数据传输速率低、布线复杂、易受干扰等缺点。本系统采用32位的STM32F103C6作为主控芯片,现场采集的数据通过ZigBee无线传感器网络,用ENC28J60以太网控制器实现嵌入式系统与远程监控主机的网络通信。该系统可以广泛应用于工业现场、楼宇等需要进行远程监控的场所,具有实时性强、多用户、监控方便、成本低等优点。

    1 系统总体结构设计

    根据系统的功能,可以把整个监控系统分为3部分:数据采集部分、数据处理与控制部分、远程监控部分。监控系统总体结构如图1所示。

a.JPG

    
    数据采集部分采用CC2530芯片与ZStack协议栈组建的ZigBee无线传感器网络。终端设备对现场的温度、湿度等数据进行采集,通过路由器把数据传送到协调器。协调器与主控芯片STM32F103C6通过RS-232串口通信。
    数据处理与控制部分(嵌入式服务器)是整个监控系统的核心,负责接收ZigBee网络采集的数据,并通过以太网把数据发送给远程监控主机,接收远程监控主机发送的命令并执行相应的控制功能。嵌入式服务器由STM32F103C6芯片与ENC28J60以太网控制芯片组成,采用μIP协议栈实现可靠的端到端服务。
    远程监控部分由PC机与应用软件组成。应用软件为Visual Studio 2010开发的监控软件,可供用户实时地查看监控对象的参数,并控制远程设备。

2 硬件设计
2.1 数据采集部分
    该部分采用TI公司的CC2530芯片。CC2530通过I/O口与数据采集芯片相连,把采集到的数据经过ZigBee无线传感器网络传到数据处理与控制部分。
    CC2530除具有代码预取功能的低功耗8051微控制器内核外,还具有8 KB内存、最高128 KB闪存、5通道DMA、一个16位定时器和一个8位定时器、8路输入和可配置分辨率的12位ADC、2个支持多种串行通信协议的强大USART,21个通用I/O口,适应2.4 GHz IEEE802.15.4标准的RF收发器。其具有极高的接收灵敏度和抗干扰性能,只需要一个晶振和极少的外接元件即可正常运行。CC2530与外围器件的连接关系如图2所示。

b.JPG

2.2 数据处理与控制部分
    该部分是整个监控系统的核心,主要由STM32F103C6芯片与ENC28J60芯片组成。数据处理与控制部分的连接原理如图3所示。STM32F103 C6接收CC2530采集的数据,并在μIP协议栈的基础上把数据封装成符合以太网格式的数据包发送给远程监控主机。同时,控制ZigBee无线传感器网络、接收远程监控主机的命令,对电动机、电灯、风扇、空调、总开关等设备进行控制。


c.JPG

    STM32F103C6采用ARM Cortex-M3(32位RISC)内核,最高运行频率可达72 MHz。具有丰富的片上资源:32 KB的Flash、10 KB的SRAM、2个通用定时器和1个高级定时器、1个SPI接口、1个I2C总线接口、2个USART接口、1个USB接口、1个CAN总线接口、2个12位同步ADC模块。

    ENC28J60集成了10BASE-T PHY和MAC,带接收器和冲突抑制电路,是兼容IEEE 802.3的以太网控制器。支持一个带自动极性检测和校正的10BASE—T端口,支持全双工和半双工模式,具有可编程在发生冲突时自动重发、可编程填充和CRC生成、可编程自动拒绝错误数据包的特性,并带一个最高速度可达10 Mbps的SPI接口。具备8 KB发送/接收数据包双端口SRAM,支持单播、组播和广播数据包,可以自动收发、过滤数据包。ENC28J60通过SPI接口与STM32F103C6连接,接收STM32F103C6的数据并把数据转化成符合IEEE 802.3标准的以太网数据包,实现网络通信。

    HR911105A是单口RJ45插座,符合IEEE802.3、IEEE802.3ab标准,自适应10/100/1000M以太网,内部集成了网络隔离变压器,具有强大的电磁干扰抑制功能。

    2.3 远程监控部分

    该部分由PC机组成,PC机数量可以根据用户的数量确定,可以分布于不同的地理位置,通过网线与嵌入式服务器连接,获取嵌入式服务器的数据并发送用户的控制命令给嵌入式服务器。

    3 系统软件设计

    3.1 嵌入式服务器软件总体设计

    嵌入式服务器程序是本系统中最重要的功能实现模块。主要实现3部分功能:接收ZigBee无线网络的数据和传输数据采集控制命令,建立客户机一服务器(C/S)模式的网络通信机制以及控制外围器件。

    在本系统中,由STM32F103C6组成的嵌入式服务器即为C/S模式中的服务器,监控PC为客户机。嵌入式服务器软件系统是由μC/OS嵌入式实时操作系统、μIP协议栈、应用程序组成的。嵌入式服务器上电后对系统进行初始化,等待ZigBee网络就绪,接收监控PC发送的命令,根据命令采集数据或控制外围器件。嵌入式服务器软件的流程如图4所示。

d.JPG

    
3.2 ZigBee无线传感器网络
    ZigBee协议是基于国际标准化组织(ISO)的开放系统互连(OSI)基本参考模型,ISO/OSI模型有7层,而ZigBee仅实现了低功耗、低数据传输率的无线网络必需的部分:物理层(PHY)、介质访问控制层(MAC)、网络层(NWK)和应用层(APL)。最低的两层:物理层和介质访问控制层,由IEEE 802.15.4标准定义。网络层和应用层由ZigBee标准定义。在应用层内提供了应用支持子层和ZigBee设备对象。
    ZigBee网络包含3种设备类型:协调器(ZC)、路由器(ZR)、终端设备(ZE)。ZigBee无线传感器网络拓扑结构如图5所示。

e.JPG

    
    协调器负责启动和控制网络,存储关于网络的信息;路由器负责中转数据包,扩展网络覆盖面,提供备份路由以防网络拥挤和设备通信失败,支持子设备。终端设备可以发送或接收信息,但不能执行路由操作,必须被联系到协调器或者一个路由器,并且终端设备不支持子设备。在本系统中终端设备负责采集温度、湿度、烟雾、光照等数据,协调器通过RS-232接口与嵌入式服务器连接,把采集到的数据传送到嵌入式服务器。

    本系统采用TI公司符合ZigBee2007协议栈标准的Z—Stack协议栈实现ZigBee无线网络。系统上电后,各结点首先实行硬件初始化,然后初始化ZigBee无线网络,网络组建完成并且运行正常后,终端设备进行数据采集,并通过路由器结点把数据传递给协调器。ZigBee无线网络的工作顺序如图6所示。

f.JPG


3.3 μIP协议栈
    μIP协议栈是由瑞典计算机科学研究所的AdamDunkels开发,并在BSD风格的许可证下发布的免费、开放源代码的协议栈。完整TCP/IP协议栈的实现分别需要几百KB的程序存储空间和内存,这对8位或16位芯片组成的系统来说,需消耗太多的资源而无法得到应用。对于大多数应用来说,实现完整的TCP/IP协议栈是没有必要的。μIP设计成仅仅实现完整TCP/IP协议栈里必需的特性,其中包括IP、ICMP、μDP和TCP协议,整个协议栈是用C语言实现的,并且只能处理一个网络接口。
    应用程序调用μIP协议栈提供的用户接口函数实现网络通信功能。发送数据时,μIP协议栈把应用程序的数据封装成符合以太网标准的数据包,再调用底层驱动程序把数据发送到以太网中的目标机器。一旦以太网控制器接收到符合要求的数据包,则μIP协议栈提取包中的有效数据传递给应用程序。μIP协议栈与底层驱动、应用程序的调用关系如图7所示。

g.JPG

    
3.4 监控系统测试结果
    把程序下载到嵌入式服务器,硬件连接完毕后整个系统上电。在远程监控主机中打开监控程序,对本系统进行测试,结果如图8所示。

h.JPG

    结语
    通过对该监控系统进行运行测试,本系统可以接收远程监控PC发送的监控命令,并根据命令将ZigBee无线传感器网络采集到的数据通过以太网发送给远程监控PC、控制现场设备,实现了远距离监测与控制功能。本设计解决了传统远程监控系统中传输距离短、布线复杂与实时性差等问题,具有重要的实际意义。


推荐阅读

史海拾趣

FETek Technology(东沅)公司的发展小趣事

在半导体测试领域取得成功后,东沅并没有停止前进的步伐。他们开始关注新兴的电子行业趋势,并决定拓展新的业务领域。例如,他们开始研发和生产与电源管理相关的Power Mosfet产品,这些产品具有高效能、高可靠度和价格优势等特点,迅速在市场上占据了一席之地。此外,东沅还积极拓展射频和模拟芯片领域的研发和销售,为客户提供更全面的解决方案。

CSR plc(剑桥硅晶无线电)公司的发展小趣事

除了自主研发和收购外,CSR plc还积极与其他企业进行技术合作与转让。例如,2012年7月,三星电子以3.1亿美元的价格收购了CSR Plc的无线技术部门,包括该部门的310名员工和相关的21项技术专利。这次技术合作不仅为CSR plc带来了可观的收益,也推动了整个行业的技术进步和发展。

通过以上五个故事,我们可以看到CSR plc在电子行业中的发展历程充满了创新与挑战。从初创时期的音频技术突破,到后来的多元化发展、重要收购和技术合作,CSR plc不断适应市场变化,拓展业务领域,最终在电子行业中取得了显著的地位和成就。

CR Magnetics公司的发展小趣事

随着技术的不断进步和市场的不断变化,CR Magnetics意识到只有不断创新才能在竞争中立于不败之地。因此,公司加大了研发投入,积极引进新技术和新材料,不断推出具有创新性和竞争力的新产品。例如,公司研发的直流传感器在行业内享有很高的声誉,广泛应用于电池充电等领域。此外,公司还推出了一系列模拟量传感器、ANSI和商业级电流互感器等,满足了不同客户的需求。

BEI Sensors公司的发展小趣事

近年来,全球经济形势复杂多变,Beckhoff也面临着诸多挑战。然而,公司始终坚持创新驱动的发展战略,不断研发新产品、新技术,以应对市场的不断变化。同时,公司也积极调整业务结构,优化供应链管理,降低运营成本,以应对经济下行的压力。在这样的背景下,Beckhoff依然保持着稳健的发展态势,为电子行业的持续进步做出了重要贡献。

这五个故事从不同角度展示了Beckhoff Automation GmbH公司在电子行业中的发展历程和成就。从创始与早期发展,到基于PC控制技术的创新,再到全球业务拓展和中国市场的发展,以及应对经济挑战与持续创新,Beckhoff始终保持着对技术创新的追求和对市场变化的敏锐洞察。这些故事不仅展现了公司的实力和成就,也体现了其在电子行业中的重要地位和影响。

Horizon Electronics Enterprises Group公司的发展小趣事

为了应对市场需求的多样化和技术发展的快速变化,Horizon开始实施多元化产品布局战略。公司不仅继续深耕半导体芯片领域,还逐步拓展至电子元器件、智能设备、物联网解决方案等多个领域。通过自主研发和合作并购等方式,Horizon不断丰富产品线,满足不同客户的多样化需求。这一战略的实施不仅增强了公司的市场竞争力,也为公司的持续发展注入了新的动力。

GarrettCom公司的发展小趣事

布局:随着全球化进程的加速推进,GarrettCom(现为Belden的一部分)积极实施全球化战略。公司在全球范围内设立了多个分支机构和服务中心,以便更好地服务全球客户。同时,公司还加强了与国际知名企业的合作与交流,共同推动电子行业的发展和进步。

成果:通过全球化战略的实施和市场拓展的努力,GarrettCom(现为Belden的一部分)在全球市场上取得了显著的成绩。公司的产品和解决方案被广泛应用于全球各地的工业项目中,赢得了广泛的好评和认可。同时,公司还积极参与国际竞争与合作,不断提升自身的品牌影响力和市场竞争力。

问答坊 | AI 解惑

Windows Mobile取消自动休眠问题

Windows Mobile系统怎么取消自动休眠,就是要关闭掉 请大家要看是,windows mobile系统的 …

查看全部问答>

求助:vxworks启动盘 总是不成功

                各位大侠帮帮忙啊! 我把启动盘插入后,显示器上显示:v1.6+++++++++++++++。几行加号以后就停在那里不动了。 我的目标机处理器是p3的,网卡类型是Intel 8255x ethernet interface. ...…

查看全部问答>

LM3SLib_QEI

LM3SLib_QEI 我记不得中文叫啥了, [ 本帖最后由 yuhua8688 于 2010-8-24 12:44 编辑 ]…

查看全部问答>

verilog -- inout 测试问题

verilog 的代码: module bi4b(q,dout,din,ctr1); parameter wide = 3; inout[wide:0] q; input ctr1; input[wide:0] din; output[wide:0] dout; wire[3:0] q,dout; assign dout = (!ctr1) ? q : 4\'bz; assign q = (ctr1) ? din : 4\'bz; ...…

查看全部问答>

模电知识

1.为什么当D1开路是T1、T2管会因功耗过大而损坏? 2.为什么当T1管集电极开路T2管会因功耗过大而损坏? 麻烦各位大侠帮忙讲解一下,谢谢喽 …

查看全部问答>

请教:LM3S9B96以太网发送函数调用问题

EthernetPacketPut这个函数要怎么用啊?它里面的参数都要怎么设置呢?我要发送一个1214大小的以太网包,可是fcs校验总是0000,不知道为什么?…

查看全部问答>

小弟准备升大三,想搞嵌入式,纠结考研呢,大家帮我,对编程有兴趣,想搞嵌入式 LINUX

请教前辈们 小弟准备升大三,想搞嵌入式,纠结考研呢,大家帮我,对编程有兴趣,想搞嵌入式 LINUX,这些偏软的工作, 现在经常参加竞赛,明年有个全国电子设计大赛,如果考研就没时间参加了。还有就是,很多人说考研对以后长远发展还是很有好处的 ...…

查看全部问答>

Beaglebone学习之外围电路设计参考资料最全汇总贴

我把外围电路设计过程中的参考资料全部汇总了放上来,欢迎大家下载,有商业板的资料,有开源的资料,有原厂的资料,有我们坛子里网友分享的资料,下一步准备把全部原件库和封装库发上来,这个我还在整理,等我画完了就上传,希望大家都更贴补充 ...…

查看全部问答>

低级bug耗费12小时Fix

本帖最后由 lzwml 于 2016-5-4 16:34 编辑 调试某程序非常简单的程序,简单到认为不可能存在缺陷,但该BUG处理时间超过12小时: 程序属于后台进程,监控系统每隔15秒检查外设IO状态,IO异常后发出报警或复位外设,外设都在linux下有/sys/class等 ...…

查看全部问答>