基于ATmega128的以太网与Lon总线的网关设计与实现-PLC技术网(www.plcjs.com)-可编程控制器技术门户


基于ATmega128的以太网与Lon总线的网关设计与实现

 (点击题目可以 在互联 网中搜索该题 目的相关内容)
日期:2006-10-22 22:20:48     来源:本文摘自《PLC&FA》   作者: 点击:
点击【 大  中  小 】,可以选择字体的大小,以便你阅读.

1  引言
 目前在工业控制网络的底层(设备层),控制信息流的传递主要采用现场总线技术,它具有良好的数据采集有效性和实时性,而在工业控制网络中间的控制、管理层大多采用以太网技术互联,它具有开放的统一协议标准,互联成本低廉的优点,使得现场总线控制系统通过以太网与企业信息网集成实现工厂管控一体化成为大势所趋[1]因此着力解决工业控制以太网与现场总线之间互联存在的问题,如统一底层之间的传输协议,降低衔接难度,提高总线的传输速率,缩短调试时间、降低维护成本和二次开发的难度,有着十分现实的意义。
  LonWorks现场总线的标准完全开放、即插即用互联方便、多通讯媒介、自由拓扑网络等性能在自动化系统中占有重要的地位。Lon总线与以太网相连需经过一个网关,Echelon公司提供了这种产品,但因为成本较高,使用范围有限。如果采用单片机开发这种网关,则具有投资少,成本低,开发周期短,应用范围广的优点。本文在对以太网协议与LonTalk的协议分析的基础上,自行设计了两者之间的转换协议格式,在ATmega128控制器的基础上完成了系统的各部分硬件模块的设计,实现了以太网与Lon总线互联。

2  以太网与LonWorks现场总线的协议转换
  以太网是遵照IEEE 802.3标准的局域网,使用带冲突检测的载波监听多路访问(CSMA/CD)技术,采用以太网的介质访问控制(MAC)算法。它的帧格式如表1所示。

表1     以太网帧格式


  LonTalk协议是LonWorks技术的网络通信协议,它遵循由国际标准化组织(IS0)定义的开放系统互连(OSI)参考模型。它提供参考模型所定义的全部七层服务,Neuron芯片的三个处理器分别承担七层协议的服务功能,它们之间的对应关系如表2所示[2]    

表2     LonTalk协议与OSI模型的对应关系  


  以太网与LonWorks互联关键是在网络层完成以太网TCP/IP协议与Lon网LonTalk协议的转换,实现以太网与Lon网间的互联。其中ATmega128单片机是通信控制主体,通过对ATmega128单片机编程控制网络接口控制器RTL8019AS的各种寄存器实现对以太网数据帧的发送和接收,完成以太网与主CPU(ATmega128单片机)间的数据传输,并向下与神经元芯片通信,它将从神经元芯片读到的数据封装成以太网帧发送,或将从以太网接收数据帧解包读出数据并封装成LonWorks协议报文发送给神经元芯片。为了使它们之间的数据能相互传送,自行定义了一种神经元芯片Neuron3150与ATmega128相互通讯的协议,协议的格式如表3所示:

表3     ATmega128与Neuron3150通信的数据包协议格式


  表3中格式定义:
  (1) ‘E’(即字母E换成十六进制的ASCII)为同步头,长度为8bit;
  (2) TYPE为后续数据的意义,长度为8bit。0xCC为复位,ATmega128复位后,第一个数据包的TYPE必须是复位,NEURON不对TYPE为复位的数据进行处理。0xAA为正常收发,(NEURON复位也发0xAA,只是其不对复位后第一个收到的数据包进行处理);
  (3) DO_LEN为其后表示DO字节的个数;
  (4) DO_Data反映DO端口的状态,为字节类型,每个字节表示8个DO端口状态,第一个字节的最低位为DO01;
  (5) DI_LEN为其后表示DI字节的个数;
  (6) DI_Data反映DI端口的状态,为字节类型,每个字节表示8个DI端口状态,第一个字节的最低位为DI01;
  (7) AO_LEN为其后表示AO字节的个数;
  (8) AO_Data反映AO端口的状态,为16bit数据,每个数据表示1个端口,第一个数据为AO01。先高字节,后低字节;

本新闻共4页,当前在第11 2  3  4  

上一篇: 嵌入式实时操作系统与网络构件的设计
下一: 基于ARM7处理器的CAN总线网络设计