基于Modbus协议的ZigBee/工业以太网网关设计

发布者:LuckyDaisy最新更新时间:2014-12-09 来源: e-works关键字:RTU  地址映射  Modbus协议  工业以太网网关 手机看文章 扫描二维码
随时随地手机看文章

1 引言

    工业无线通信技术是继现场总线、工业以太网之后,工业自动化领域又一个研究热点。 实际上,无论是场总线还是工业以太网,都已经形成了多标准并存的局面,在协议转换、异 构网络接入过程中,网关起着重要作用。工业无线通信技术要应用于工控领域,也面临诸如 开放性、互操作等技术。

    ZigBee 因其低成本、低功耗、组网灵活等众多优势,成为工业无线通信技术中备受关 注的技术之一。ZigBee 是一种低速网络,传输速度为10KB/S~250KB/S,其在工业自动化 应用中,一般要接入上层网络。本文介绍一种ZIGBEE/工业以太网网关设计,实现ZIGBEE 与工业以太网的一种接入,设计中ZigBee 和工业以太网应用层都采用自动化仪表广泛支持 的Modbus/RTU 协议。

2 网关硬件体系结构

    网关硬件体系结构如图 1 所示。系统以Rabbit3000 MPU 为核心,扩展了以太网接口、 ZigBee 无线通信接口和基本的FLASH、RAM 及电源电路。图中SST39LF040 为512KFLASH, AS7C4096 为512K SRAM,与Rabbit3000 的地址线(A0~A18)、数据线(D0~D7)、片选 线(CS0~CS2)、读写线(OE0、OE1、WE0、WE1)直接无译码相连。AX88796L 为以太 网接口控制芯片,10M/100M 兼容,3.3V 供电。AX88796L 的TPOP、TPON、TPIP、TPIN 接RJ45 连接器LF1S022。

图1  ZIGBEE/工业以太网网关体系结构

    SZ05-ZBEE 是上海顺舟公司的无线通信模块,模块将Freescale的MC13213及外围电路 布置在2.75×4.8cm的PCB板上,提供标准2.54 双排插针接口,包含电源接口、数据接口、 控制接口和系统指示灯接口和天线接口等,采用IEEE802.15.4/ZIGBEE 标准地址寻址,支持 星型、树型、链型、网状网等拓扑结构。SZ05-ZBEE通过RX1、TX1(串行通信接口)直接与 Rabbit3000的PC6、PC7(串行通信口A)连接。

3 网关软件设计

    网关的主要功能是实现Zigbee与以太网之间的数据传输。SZ05-ZBEE无线通信模块集成 了符合ZigBee协议标准的射频收发器和微处理器,初始化设置后,模块即可以实现透明串口 传输。为适应短帧实时和确定性通信发展趋势,以太网通信采用UDP/IP协议,应用层采用 Modbus/RTU主从式协议。类似于Modbus/TCP协议,也可以称以太网侧协议为Modbus/UDP 协议[3]。网关软件基于Dynamic C和μC/OS-Ⅱ实时操作系统设计。

    3.1 网关转发报文的总体设计

    Modbus 标准中规定了完整的消息、数据结构、命令和应答方式,但只是OSI 模型第7 层上的应用层报文传输协议,定义的是一种以数据帧形式表示的能使设备相互识别和使用的 消息结构。因此,可以不对数据包作任何修改,将Modbus/RTU 报文作为应用层数据在不 同网络之间传输。

    网关中即是将 Modbus/RTU 报文作为UDP 和ZigBee 应用层数据传输。主站报文通过 UDP 端口接收,去掉帧头帧尾,附加Zigbee 短地址,通过串口发给SZ05-ZBEE,转化为 ZigBee 报文发送;从站的ZigBee 报文由SZ05-ZBEE 转为串口数据接收,去掉ZigBee 短地 址,附加UDP 帧头帧尾,然后由以太网口转发。具体程序包括5 个任务:UDP 接收、串口 发送、串口接收、UDP 发送以及嵌入式Web Server。嵌入式Web Server 用于设备管理。系统程序结构如图2 所示。
 

图2  系统程序结构[page]

    3.2 地址映射

    对于ZigBee 设备,有其IEEE 地址和16 位短地址。设计中将ZigBee16 位短地址与Modbus 从站地址绑定,从而实现Modbus 主、从各节点之间地址定向。具体是将一系列Modbus 从 站地址和ZigBee 短地址以配置文件config.txt 下装到FLASH,网关在初始化时,读取配置文件 内容,存储在数组中。数组形式为:

    char ModbusZigbee_Addr[ ][3]=

    [{ModbusAddr0,shortAdd0H, shortAdd0L},……{ ModbusAddrn,shortAddnH,shortAddnL}]

    接收UDP 报文后,读取报文中的Modbus 从站地址,检索数组得到与之匹配的 ModbusAddrx(ModbusAddr0 到ModbusAddrn 中查找),从而读取该从站ZigBee 短地址 shortAddxH、 shortAddxL。该短地址将附加在所接收的UDP 报文之前,一同作为串行通信 口的转发报文。

    config.txt 文件中,Modbus 从站地址和ZigBee 短地址在存储时以空格间隔,文件以#结 束。数组的第一维长度在读取文件后确定,定义为Device_Number。检索ZigBee 短地址函 数如下:

    int ZigBee_Search(char Modbusaddr)

    {int i=0;

    For(i=0;i

    {If(Addr[i][0]== ModbusAddr)

    return i ;

    }

    return Device_Number }

    Addr[i][1]、Addr[i][2]为对应的ZigBee 短地址。返回值为Device_Number 表示未检索到。

    3.3 缓冲区设计及数据接收转发

    为了解决以太网口和串行通信口速度配合上,以及解除串口与以太网口耦合,设计了两 个环形队列作为UDP 接收缓冲区和串口接收缓冲区(用宏Buffer_Size 定义)。缓冲区仿双口 RAM 思想、按照先进先出(FIFO)原则设计。 UDP 接收缓冲区同时是串口发送数据区。 缓冲区结构为:

    char UDP_ReceiveBuffer[Buffer_Size]=

    [SendNumber1,shortAddxH,shortAddxL,ModbusAddrx,Funcodex,……

    ……SendNumbern,shortAddxH,shortAddxL,ModbusAddrx,Funcodex]

    ModbusAddrx 开始为所接收的UDP 报文,即完整的Modbus/RTU 数据。shortAddxH 和shortAddxL 为ZigBee 短地址,SendNumberx 为UDP 报文长度加2,即串口要转发的数据长 度。每次接收的UDP 报文都附加ZigBee 短地址和SendNumberx 这3 个字节存放在缓冲区 中。UDP 接收缓冲区设置了当前存储数据指针(int UDP_Location),始终指向当前存储数据 尾部。类似,针对串口转发,设置了当前发送数据指针(int Serial_Location)始终指向已经 发送数据尾部。系统默认Modbus/RTU 数据帧长度不大于256。指针大于Buffer_Size 以后 均回零,此后,原来的报文陆续被覆盖。“串口发送”任务判断两指针是否重合,决定是否 启动串口转发。UDP 口接收报文部分程序如下。

    串口接收缓冲区设计类似。由于数据通过固定的端口和IP 地址转发,存储数据中不再 包含类似于Zigbee 地址的数据项。

3 结束语

    本文设计适当调整可以用于更多场合。如,动态管理地址绑定数组,可以适应动态组网;数组中增加IP 地址、端口号等可适应其他类型报文;调整缓冲区大小可以适应不同尺寸报 文收发等。 经过多年的重点扶持,我国工业以太网研究已经取得大量成果并广泛应用。目前,工业 无线通信技术也列为我国“十一五”863 重点研究项目,ZigBee 等技术也将逐步广泛应用于 工业自动化领域。本系统开发基于市场现有的通用技术,对中小型控制系统开发和改造有借 鉴意义。

    文章创新点:提出了一种简洁方便的 Zigbee/以太网接入方案,应用地址映射、环形缓 冲队列等解决了Zigbee 通信与以太网通信速度协调技术。

关键字:RTU  地址映射  Modbus协议  工业以太网网关 引用地址:基于Modbus协议的ZigBee/工业以太网网关设计

上一篇:基于高速串行接口的高效时钟解决方案设计
下一篇:总线系统与DSP硬件接口设计

推荐阅读最新更新时间:2024-05-02 23:21

基于ARM与μClinux的RTU设计
在电力系统变电所以及电气化铁道牵引变电所远动控制系统中,远程数据采集与监控终端(RTU)是关键设备,实现遥控、遥测、遥信等功能。 采用工业控制计算机,扩展测控硬件接口电路,是RTU设计常见的方法,但是这种方法设计的RTU成本高、体积大、耗电大。采用80C196等单片机设计RTU,由于单片机的运算处理和硬件扩展等能力较低,影响RTU的性能。而基于ARM处理器设计的RTU,硬件上具有成本低、体积小、耗电省、处理能力强等优点;软件上由于采用μClinux操作系统,有许多优秀的应用程序成果可以利用。正是由于这些优势,采用ARM和μClinux设计RTU已经成为一个热点。 1 RTU硬件电路设计 1.1 RTU总体结构 RTU的核心
[单片机]
基于ARM与μClinux的<font color='red'>RTU</font>设计
为什么中断向量表重映射到高地址
MMU给我感觉是个很复杂的东西,网上看了一些资料,勉强知道了一些表面的东西。它有两个作用:1、把虚拟地址映射到物理地址;2、对内存访问提供控制机制。 我主要记录下我对映射表变换的理解。 在ARM中,MMU另外提供了一张映射表(MVA),用于程序虚拟地址(VA)到物理地址(PA)的映射。MVA称为变换后的VA。在程序运行时,CPU只看到VA,而MMU和cache们只看到PA和MVA。应该说,在进程运行切换过程中,映射关系是动态变化的,因为不同进程和内存之间需要不同的映射关系,就需要不断的重做映射表,这个代价是很大的。所以,有必要让映射表中需要更新的内容很少,以减少性能开支,这就出现了“变换后的”VA,即MVA,如果VA 32
[单片机]
基于腾控RTU的工厂电监控系统方案
       1.前言   工厂用电监控实质是 SCADA 系统(数据采集与监视 控制系统 ),主要由监控中心计算机主站系统、通讯通道和现场的各种远程终端单元构成(即RTU,英文名称Remote Terminal Unit),对工厂的重要电器和供电回路的进行远程监测、控制以及保护,即完成遥信、遥测、遥控、遥调“四遥”功能及保护在内的综合自动化,通过与工厂MIS系统联接,提高工厂管理的自动化水平。        工厂用电监控的包括:   (1). 工厂自备变电站的高压进线的三相电压、三相电流、有功功率、无功功率、频率、功率因数、积分电度等电参量的测量,断路器位置判别,断路器的遥控。   (2). 工厂自备变电站的变压器的温度和瓦斯信号
[嵌入式]
基于LabVIEW的Modbus协议两种校验码的实现方法
Modbus协议简介   下面仅讨论与本文有关的Modbus协议的内容。 1.1Modbus协议的数据传输方式   Modbus协议定义了两种数据传输方式,即ASCII模式和RTU模式(表1、表2)。控制器可以设置为两种传输方式(ASCII或RTU)中的任何一种,在标准的Modbus网络中进行通信。用户可选择想要的模式,包括串口通信参数(波特率、检验方式等);在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。 1.2 Modbus消息帧   两种传输模式中(ASCII或RTU),传输设备将Modbus消息转为有起点和终点的帧,这就允许接收的设备在消息起始处开始工作,读
[测试测量]
PIC单片机与触摸屏串行通信的MODBUS协议实现
摘要:介绍一种在PIC单片机与触摸屏之间采用Modbus协议实现异步串行通信的方法。简单介绍了Modbus通信协议,给出了硬件电路连接图、程序流程图以及用PIC单片机C语言编写的部分通信程序。实际使用证明该方法数据传输稳定可靠,并提供了良好的人机交互环境。 关键词:触摸屏 PIC单片机 Modbus协议 通信 工控中经常需要观察系统的运行状态或者修改运行参数。触摸屏能够直观、生动地显示运行参数和运行状态,而且通过触摸屏画面可以直接修改系统运行参数,人机交互性好。单片机广泛应用于工控领域中,与触摸屏配合,可组成良好的人机交互环境。触摸屏和单片机通信,需要根据触摸屏采用的通信协议为单片机编写相应的通信程序。Modbus协议是美国M
[工业控制]
HMS Networks推出紧凑型Intesis™ Modbus RTU转KNX网关
HMS Networks宣布推出一种新的紧凑型Intesis™ Modbus RTU转KNX网关,该网关可轻松快速地将Modbus RTU从站集成到KNX系统。它能使用标准ETS工具进行全面配置,针对具有最高达100个数据点的小型房间控制应用。 用于小型Modbus转KNX集成项目的紧凑型网关 商业应用(例如旅馆或办公楼)中的房间自动化项目通常规模较小,仅需要将来自暖通空调(HVAC)和计量设备的数量有限的信号集成到KNX系统。在这里,集成商通常会需要连接屋顶单元、风机盘管或仪表,但这些通常标配Modbus RTU从站连接。 针对这种情况,新的Intesis Modbus RTU转KNX网关是一种经济高效的协议转
[网络通信]
HMS Networks推出紧凑型Intesis™ Modbus <font color='red'>RTU</font>转KNX<font color='red'>网关</font>
Modbus协议的传输方式
  控制器能设置为两种传输模式(ASCII或RTU)中的任何一种在标准的Modbus网络通信。用户选择想要的模式,包括串口通信参数(波特率、校验方式等),在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。   所选的ASCII或RTU方式仅适用于标准的Modbus网络,它定义了在这些网络上连续传输的消息段的每一位,以及决定怎样将信息打包成消息域和如何解码。   在其它网络上(象MAP和Modbus Plus)Modbus消息被转成与串行传输无关的帧。    1、ASCII模式   当控制器设为在Modbus网络上以ASCII(美国标准信息交换代码)模式通信,在消息中的每个8B
[嵌入式]
地址映射在S3C4510B系统中的实现
摘要:介绍基于S3C4510B系统的启动流程;详细介绍Remap(重映射)的实现过程及部分关键代码,给出启动代码中异常中断向量的处理。 关键词:Remap 地址重映射 S3C4510B 异常中断 近年来,随着32位芯片制造技术的不断完善,制造成本不断降低,国内的32位MCU市场也开始火爆起来。越来越多的工程师开始将开发目光从8位转移到32位微处理器上,基于32位MCU的产品如雨后春笋般层出不穷,应用领域涵盖了掌上设备、家用电器、网络设备、无线通信、工业控制等。在32位微控制芯片领域,ARM架构的芯片占了近70%的市场。本文中所用到的处理器正是Samsung公司生产的基于ARM架构的S3C4510B。 1 S3C4510B简介
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved