在现场总线控制器中实现网络通信的研究

   2013-03-23 工控之家网工控之家280
摘  要: 现场总线控制系统,正以迅猛的势头快速发展,己成为目前世界上最新型的控制系统。本文是在MCU上实现TCP/IP协议,形成一个结合嵌入式系统的现场控制器。从而实现了嵌入式设备方便的接入Internet,降低了构成系统成本,是嵌入式设备接入Internet的一种尝试。本文详细描述了在现场总线控制系统中实现TCP/IP协议的过程。

关键字: 嵌入式系统, TCP/IP, 现场总线

1 引言

  现场总线控制系统是目前自动化技术中的一个热点,正受到国内外自动化设备制造商与用户越来越强烈的关注。现场总线控制系统用现场总线这一开放的,具有可互操作的网络将现场各控制器及仪表设备互连,构成现场总线控制系统,同时控制功能彻底下放到现场,降低了安装成本和维护费用。因此,FCS实质是一种开放的、具有可互操作性的、彻底分散的分布式控制系统,有望成为21世纪控制系统的主流产品。

  当IP地址的分配不再成为将嵌入式系统接入到Internet上的主要限制后,可能每个现场控制器都要将不同种类的设备接入到Internet上以便于远程控制或远程监测。

2 系统整体设计框架

  本文围绕着如何使现场控制器能在Internet上进行通信,采用的方法是利用微处理器所提供的系统资源和处理能力,加上ISA网卡芯片RTL8019AS,通过编写运行在单片机上的一套精简的TCP/IP协议栈, 实现了一个低成本、可靠连接Internet的控制器。在详细地分析了将嵌入式系统接入到Internet所面临的问题后,提出了嵌入式设备接入Internet的一种实际解决方案。系统整体设计如图1所示。


图1 现场处理的具体设计图

  把具有遵循TCP/IP协议通信功能的控制器的放到现场,那么这个控制器乃至于整个系统都挂在网络上,可以通过Http的方式进行控制整个的现场控制系统。

  2.1 嵌入式系统的网络接口层设计

  网络接口层设计涉及到的硬件设计问题和软件问题,这里对应到网络协议中的物理层和逻辑链路层。

  2.1.1 网络接口的物理层的设计

  在物理层的设计方面直接和网络介质很有关,这里主要探讨在办公室和楼宇应用比较广泛的双绞线IEEE10-BASET。在网络接口的物理层设计中,这里主要是设计符合前面介绍的IEEE80.23标准局域网络使用的网络接口。

  物理接口是和双绞线相连的接口,一般使用的是RJ-45接口,一共可以用8根线,在IEEE的10BASE-T里面用了1、2线作发送TD+和TD-, 3、6线作接收RD+和RD-,还有四根没有用。需要注意的是用于网络的物理介质有很多种,这里仅考虑了最常用的双绞线方案。

  在这里,一般还要考虑驱动电路的设计和电路的电气隔离等问题,例如采用YCL的20F001N作电气隔离。

  对于物理层和数据链路层的其它设计问题由于是网卡芯片自动支持,所以在设计采取使用网卡芯片的方案中,只需考虑怎样控制网卡芯片。主要包括网卡与网络电缆的物理连接、介质访问控制(如CSMA/CD)、数据帧的拆装、帧的发送与接收、错误校验、数据信号的编/解码(如曼彻斯特码和NRZ码的转换等)、数据的串、并行转换等功能。而要实现这些功能,必须要对网络接口芯片进行正确的配置。

  2.1.2 网络接口层的实现

  以太网协议由芯片硬件自动完成,对程序员透明,网卡驱动程序实现三种功能:芯片初始化,收包和发包。

  按数据链路的不同,可以将RTL8019AS内部划分为远程DMA (remote DMA)通道和本地DMA(local DMA)通道两个部分。本地DMA完成控制器与网线的数据交换,主处理器收发数据只需对远程DMA操作。当主处理器要向网上发送数据时,先将一帧数据通过远程DMA通道送到RTL名019户名中的发送缓存区,然后发出传送命令。RTL8019AS在完成了上一帧的发送后,再完成此帧的发送。RTI另019AS接收到的数据通过MAC比较、CRC校验后,由RFO存到接收缓冲区,收满一帧后,以中断或寄存器标志的方式通知主处理器。原理框图如图2所示。


图2 RTL8019AS中断方式工作原理图

  2.2 驱动程序设计

  先介绍RTL8019AS的基本情况:输入输出地址共32个,地址偏移量为00H0-1FH。其中00H-0FH共16个地址,为寄存器地址。10H-17H共8个地址,为DMA地址。18H-1FH共8个地址,为复位端口。执行网卡初始化的子程序是:网卡芯片复位,它先对网卡的RSTDRV管腿置1,保持100ms以上,然后变低,这就完成RTL8019AS的复位。完成复位之后,要对网卡的工作参数进行设置,即设置网卡芯片功能寄存器,设置完成后,网卡芯片才能收发数据。

  对RTL8019AS的软件操作,有查询和中断两种方式。由于单片机的运算速度较慢,在响应中断时的处理消耗时间较多,如果频繁产生中断,单片机将无法正常工作。因此,采用了查询方式对8019中的数据进行读取。

  在查询方式下,主程序通过CURR和Boundary两个寄存器的值来判断是否收到一帧数据。当Boundary与CURR不等时,说明接收缓冲区接收到了新的帧,主程序读取数据后,以读取帧的第二个字节(下一帧的页地址)更新Boundary,主程序循环跟踪UCRR和Boundary达到数据的接收目的。主程序在发送一帧数据时,先要查TSR寄存器判断上一帧是否发送完毕。程序流程图如图3所示。


图3 RTL8019收发数据流程图

3 嵌入式TCP/IP协议的实现

  完整的TCP/IP协议栈及其应用层的关系,如下图4所示。


图4 TCP/IP各层协议

  网络接口层的函数设计,与网络接口层相关的是发送函数和接收函数,在这里介绍控制器上用TCP/IP协议实现数据传输。主要介绍的几个协议包括:IP协议、ICMP协议、ARP协议、TCP协议。

  以太网报头中的前两个字段是以太网的源地址和目的地址。目的地址为全1的特殊地址是广播地址,电缆上的所有以太网接口都要接收广播的数据帧;对于ARP请求或应答来说,帧类型字段的值为0x0806;硬件类型字段表示硬件地址的类型,它的值为1即表示以太网地址;协议类型字段表示要映射的协议地址类型,它的值为Ox0800即表示PI地址;硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4;操作字段指出四种操作类型,它们是ARP请求(值为1)、ARP应答(值为2)、RARP请求(值为3)、RARP应答(值为4)。

  其中,协议版本号是4;首部长度指的是首部占32bit字的数目,普通的IP数据报(没有任何选择项)字段的值是5。服务类型(TOS)字段包括一个3bit的优先权子字段(现在己被忽略),4 bit的TOS子字段和l bit未用位(必须置0),其中4bit的TOS分别代表:最小时延、最大吞吐量、最高可靠性和最小费用。4bit中只能置其中l bit。

  如果所有4bit均为0,那么就意味着是一般服务;总长度字段是指整个IP数据报的长度,以字节为单位;标识字段用于唯一地标识主机发送的每一份IP数据报;3位标志中,首位保留位(必须置0),接着第二位用于标示本IP数据报不进行分片,第三位用于表示还有进一步的分组;接着的13位片偏移是指分组在当前数据报的位置;TTL(time-to-live)生存时间字段设置了数据报可以经过的最多路由器数,通常为32或64;首部检验和字段是根据IP首部计算的检验和码,采用的算法是行二进制反码求和;最后一个字段是任选项,是数据报中的一个可变长的可选信息。

  TCP提供一种面向连接的、可靠的字节流传送服务。TCP数据包的结构如图5所示。


图5 TCP数据包的结构

  每个TCP段都包含源端和目的端的端口号,用于寻找发端和收端应用进程。这两个值加上IP首部中的源端IP地址和目的端IP地址唯一确定一个TCP连接。序号用来标识从TCP发端向TCP收端发送的数据字节流。它表示在这个报文段中的第一个数据字节。确认序号包含发送确认的一端所期望收到的下一个序号。首部长度给出首部中32bit字的数目。紧急指针是一个正的偏移量,与序号字段中的值相加表示紧急数据最后一个字节的序号。

本文作者创新点

  实现TCP/IP协议的通信是控制器能进行网络通信的关键。本文详细描述了实现这个协议的过程。首先介绍了数据通信的格式和嵌入式系统的网络接口层设计。然后进行了RTL8019AS的初始化程序设计。最后介绍在嵌入式系统怎样在基于TCP/IP协议下进行通信。

参考文献:

  [1] 邬宽明.现场总线技术应用选编[M].北京:北京航空航天出版社,2003.

  [2] Douglas E Comer-David L Stevens.用TCP/ IP进行网际互连(第一卷)[M].北京:电子工业出版社,1998.

  [3] 林伟, 黄康. 基于S3C44B0X的嵌入式网络通信研究[J]. 微计算机信息, 2007, 8-2: 35-36

  [4] 姜沫歧,林伟. Protel2004原理图与PCB设计实例[M]. 机械工业出版社,2005.

作者资料:

  牛荣 (1974.04- ), 女(汉), 河南淮阳人, 讲师, 主要从事, 计算机教学与研究

 
举报收藏 0打赏 0评论 0
更多>相关评论
暂时没有评论,来说点什么吧
更多>同类环保知识
推荐图文
推荐环保知识
点击排行
网站首页  |  免责声明  |  联系我们  |  关于我们  |  隐私政策  |  排名推广  |  广告服务  |  积分换礼  |  帮助中心  |  网站地图  |  违规举报
鲁ICP备12015736号-1