LON现场控制网络到以太网互连适配器的设计
摘要:以51单片机为核心连接LON现场控制网络与以太网互连适配器的设计方案,描述了神经元芯片使用并行I/O模式与51单片机通信的方法,介绍了51单片机控制以太网控制芯片8019as的方法。并采用C51语言实现UDP传输,完成了系统的调试与验证。
关键词:Lonworks以太网RTL8019as80C51单片机
随着互联网的发展,在使用计算机进行互联的同时,各种智能家电、工业控制、智能仪器仪表、数据采集都在逐步趋向网络化。但由于以太网在实时性和可靠性的先天不足,各种现场总线技术应运而生;更因为其彻底的开放性、分散性和完全可互操作性等特点,正成为未来新型工业控制系统的发展方向。以太网以其应用的广泛性和技术的先进性,逐渐垄断了商用计算机的通信领域和过程控制领域的上层信息管理与通信。为实现上层管理网络与下层控制网络的集成,在实际中必须实现现场总线与以太网互联。
Lonworks现场总线是美国Echelon公司1991年推出的局部操作网络。Lonworks现场总线在网络通信方面具有突出优点,如网络物理层支持多种通信介质,支持多种网络拓扑结构等。目前使用Lonworks技术的产品广泛应用于工业、楼宇、家庭、能源等自动化领域。本文提出的适配器连接方案,能将LON控制网与以太网无缝连接,实现透明传输。
1互连适配器硬件电路设计
适配器使用的主要芯片为神经元芯片TMPN3150、51单片机89C51RD和以太网控制器RTL8019as。主要分为Lonworks控制模块、协议转换模块和以太网通信模块。其中,协议转换由单片机内部软件完成。
1.1Lonworks控制模块
Lonworks控制模块主要完成对LON网数据的管理并向单片机传输数据,其核心是神经元芯片。神经元芯片与其他设备的互连是通过其11个I/O口,编程人员可以定义多个引脚为输入/输出对象。用户程序可通过io_in()和io_out()访问这些I/O对象,并在程序执行期间完成输入/输出操作。本文设计的适配器采用Neuron芯片预定义的并行I/O对象,实现了高数据速率和全双工工作方式。
并行I/O对象利用Neuron的11个I/O口进行通信。其中IO0~IO7为双向数据线,IO8~IO10为控制信号线。借助令牌传递握手协议,并行I/O口可外接处理器,实现Neuron芯片与外接各类微处理器之间的双向数据通信。并行口的速率可达3.3Mbps,工作方式有三种,即主模式、从A模式和从B模式。不同的模式下,IO8~IO10这三根控制信号线的意义不同。本文应用从A模式与单片机连接如表1所示。
表1Neuron芯片与单片机的连接
从A模式中,Neuron芯片为从机,51单片机为主机。主机与从机间的数据传输通过虚拟的写令牌传递协议(VirtualWriteToken-PassingProtocol)实现。主机和从机交替地获得写令牌,只有拥有写令牌的一方可以写数据(不超过255字节),或者不写任何数据传送一个空令牌。传送的数据要遵从一定的格式,即在要传送的数据前面加上命令码和传送的数据长度。命令码有CMD_XFER(写数据)、CMD_NULL(传递空令牌)、CMD_RESYNC(要求从机同步)、CMD_ACKSYNC(确认同步)四种,最后以EOM字节结束。写数据和传递空令牌的格式分别如表2、表3所示。
表2写数据的格式
表3传递空令牌的格式
1.2以太网通信模块
以太网通信模块由51单片机和RTL8019as组成。以太网控制器RTL8019as由台湾Realtek公司生产,100脚PQFP封装。它支持8/16位数据总线及16个I/O基地址选择,使用Ne2000兼容的寄存器结构。它有一块16K字节的RAM,地址为0x4000~0x7fff。实际上它是双端口RAM,可以同时被网卡读/写和用户读/写,相互之间不影响。网卡读写比用户读写的优先级高。RAM分页存储,每256字节称为一页。将前12页作为发送缓冲区(0x4000~0x4bff),后52页作为接收缓冲区(0x4c00~0x7fff)。
以太网的介质访问控制、CRC校验及数据帧的接收和发送都由网卡自动完成,只需将IP包加上目的MAC地址和源地址,再通过远端DMA接口对RTL8019as内部RAM进行读写即可。网卡的地址线共20根。用到的网卡地址为十六进制的0240H~025FH,基地址为0240H,从地址240H~25FH。地址线的A19~A5是固定的000000000010010,只需5根地址线即可。所以RTL8019as输入输出地址共32个,地址偏移量为00H~1FH(对应于240H~25FH)。对于8位操作方式,32个地址中只有18个有用:00H~0FH共16个寄存器地址,10H为DMA地址,1FH为复位地址。本适配器采用轮询方式,不使用中断。故RTL8019as与单片机的连接如表4所示。
表4RTLas单片的连接
表5单片机发往RTLas的数据格式
本适配器使用UDP传送数据,同时支持ICMP的回应应答和回应请求报文(Ping命令),单片机发往RTL8019as的数据帧格式如表5所示。
用单片机实现UDP协议要作一些简化,不考虑数据分片和优先权。因此,在IP首部中不讨论服务类型和标志偏移域,只需填“0”即可。
1.3互连适配器的硬件电路设计
由于P89C51RD2只有四个8位I/O口,无法同时与RTL8019as和TMPN3150通信,故使用P0口作为数据总线。P2.5作为片选信号,高电平为RTL8019as,低电平为TMPN3150。图1给出了互连适配器的电路框图。其中3150和RTL8019as复用同一条8位数据线,依靠P2.5进行片选。当P2.5高电平时,RTL8019as地址(1XXXXX)有效,被选中。Max232作为单片机的下载线,互联适配器也可使用RS232口与计算机通信。
2互连适配器的软件设计
适配器的软件编写包括两部分:一部分是TMPN3150上用NeuronC语言编写;另一部分是在P89C51上用C51语言开发TCP/IP协议栈和与TMPN3150、RTL8019as的通信软件,可读性强,可方便地移植到其他51核心单片机上。
2.1适配器的初始化
P89C51单片机和TMPN3150之间先建立握手信号,即HS信号有效(由TMPN3150的固件自动实现);然后,主机发送一个CMD_RESYNC命令,要求从机同步,而从机接收到这个信号后,则发送CMD_ACKSYNC,表示已同步,可以通信了。RTL8019在通信前要先读取93C46的内容并设置内部寄存器的值(配置寄存器CONFIG1~4,网络节点地址),再由89C51对RTL8019的页0与页1相关寄存器进行初始化,即可正常工作。
2.2适配器工作流程
考虑到LON网主要作为监控网络,特别在楼宇自动化中的监控,由LON网发往以太网的数据较多,应首先保证其优先权。且89C51RD只有1024字节的内存,无法处理大的以太网帧。经过实验比较,在最后具体实现时,选择LON最大为每帧64字节,尽量做到每收10个LON帧,发一个以太网帧,流程如图2所示。
2.3服务器监控软件的设计