0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于网络协议实现工业以太网网关的应用设计

电子设计 来源:科技与创新 作者:许洪华,刘科 2021-06-14 17:53 次阅读

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。

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 协议。网关软件基于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 所示。

3.2 地址映射

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

char ModbusZigbee_Addr[ ]=

[{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]、Addr[ i]为对应的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 地址的数据项。

4 结束语

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

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

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网
    +关注

    关注

    40

    文章

    5005

    浏览量

    165950
  • 接口
    +关注

    关注

    33

    文章

    7573

    浏览量

    148204
  • ZigBee
    +关注

    关注

    158

    文章

    2241

    浏览量

    241075
收藏 人收藏

    评论

    相关推荐

    工业无线MQTT物联网网关

    。物通博联的工业物联网网关中有一款采用 MQTT 的物联网解决方案的工业无线MQTT物联网网关,支持将各种主流的工控协议或定制私有
    发表于 02-07 14:00

    以太网网关目前的趋势

    乘用车的以太网网关现在 哪家做的比较好,哪家的方案成熟
    发表于 03-28 21:42

    采用SAM4S如何参考设计的UART到以太网网关

    采用SAM4S参考设计的UART到以太网网关。该参考设计演示了基于ATSAM4S的UART到以太网网关。 UDP广播方案用于客户端查找以太网地址。流量控制支持平衡以太网和UART之间的
    发表于 05-20 14:45

    如何去设计一种ZigBee工业以太网网关

    文章介绍一种基于AT91SAM9260的ZigBee工业以太网网关设计。
    发表于 05-14 06:29

    工业物联网网关是什么?工业物联网网关有什么作用?

    协议解析能力。物联网网关能够采集各种PLC、仪器仪表等设备的相应数据并支持MODBUS读写,支持4G、5G、WIFI、有线以太网、光纤、LORA等联网接入方式,支持通过设备快线来实现
    发表于 01-21 19:00

    RS485以太网网关的资料分享

    描述RS485以太网网关RS485 模块系列这是 RS485(有线)MySensors 节点的以太网网关。它具有 ATmega328p MCU 和 ENC28J60 以太网芯片。SP485EE 或
    发表于 09-09 06:56

    基于Rabbit3000的以太网网关的设计实现

    本文介绍了一种采用Rabbit 3000 控制芯片为核心的嵌入式以太网网关的设计方法与实现,设计了RS232/485 总线、Lonworks 总线以及以太网的接口硬件电路,对嵌入式TCP/IP
    发表于 06-19 11:47 30次下载

    什么是Modbus工业物联网网关

    网关设备,还支持各类产家的私有协议转换,可以把分散的串行设备、主机等通过网络简易、方便的集中管理,用户可轻松实现工业物联
    发表于 12-05 09:05 2750次阅读

    以太网如何转CAN网关

    can转换以太网网关是能够将CAN总线数据转换为以太网数据进行中继的协议网关,说人话就是数据转换器。
    的头像 发表于 12-17 10:32 4088次阅读

    工业物联网网关是什么?工业物联网网关有什么作用?

    协议解析能力。物联网网关能够采集各种PLC、仪器仪表等设备的相应数据并支持MODBUS读写,支持4G、5G、WIFI、有线以太网、光纤、LORA等联网接入方式,支持通过设备快线来实现
    的头像 发表于 01-10 10:28 3153次阅读

    RS485以太网网关

    电子发烧友网站提供《RS485以太网网关.zip》资料免费下载
    发表于 08-17 09:52 3次下载
    RS485<b class='flag-5'>以太网网关</b>

    工业物联网网关的概述及工作原理

    协议解析能力。物联网网关能够采集各种PLC、仪器仪表等设备的相应数据并支持MODBUS读写,支持4G、5G、WIFI、有线以太网、光纤、LORA等联网接入方式,
    的头像 发表于 05-04 17:33 1133次阅读

    以太网网关域控制器的硬件实现

    以太网网关域控制器的硬件实现 该方案配备双MCU,其中飞思卡尔i.mx6q处理器用于复杂工况下算法的处理,恩智浦公司的S32K148处理器用于车辆信号路由;以太网网关包括CAN/CANFD和
    的头像 发表于 07-25 18:11 786次阅读
    <b class='flag-5'>以太网网关</b>域控制器的硬件<b class='flag-5'>实现</b>

    can 以太网 网关能否在汽车上应用?

    车载网络,例如车载局域网(CAN、LIN、FlexRay等)和以太网(Ethernet),实现不同网络之间的数据传输和通信。 (2)数据集成:以太网
    的头像 发表于 12-14 16:15 182次阅读

    CANopen以太网网关怎么用?

    的使用方法,包括其功能、配置和应用。 一、CANopen以太网网关的功能 CANopen以太网网关具有以下主要功能: 1. 数据传输:CANopen以太网网关可以实现CANopen
    的头像 发表于 02-02 16:59 193次阅读