• 易迪拓培训,专注于微波、射频、天线设计工程师的培养
首页 > 无线通信 > 技术文章 > Modbus协议的ZigBee/工业以太网网关设计

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

录入:edatop.com     点击:

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 口接收报文部分程序如下。

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

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

来源:茄紫

上一篇:新一代呼叫中心技术发展展望
下一篇:软交换技术与下一代网络NGN有何区别

手机天线设计培训教程详情>>

手机天线设计培训教程 国内最全面、系统、专业的手机天线设计培训课程,没有之一;是您学习手机天线设计的最佳选择...【More..

射频和天线工程师培训课程详情>>

  网站地图