工控网首页
>

应用设计

>

工业总线设备网络化改造的实现

工业总线设备网络化改造的实现

2005/3/14 16:52:00
摘要:本文介绍了利用低成本单片机与以太网控制芯片设计并实现了串口转以太网TCP/IP模块,并且专门为单片机设计了由RTOS(嵌入式实时操作系统)与TCP/IP协议栈构成的单片机嵌入式系统,TCP/IP协议栈工作稳定,在局域网与广域网下测试通过,能够满足工业控制领域中低速率通信的要求。本系统(包括TCP/IP协议栈)能够方便移植上各种8位、16位、32位处理器平台,实现各种嵌入式网络服务。成果对于工业设备的网络化提供了串口转以太网的网关服务,以及工业设备网络化实现提供了低成本、高可靠性与可移植性的产品与方案。 关键词:单片机 TCP/IP 嵌入式系统 Ethernet 1. 工业以太网:下一带现场总线 随着现代工厂信息自动化进程的加快,企业逐渐将管理、决策、市场信息和现场控制信息结合起来,实现企业资源规划(ERP)、生产执行系统(MES)、生产控制系统(PCS)三层信息一体化的解决方案。在PCS设计过程中,通常采用的是现场总线控制系统(FCS)。应该说,现场总线的出现确实给工业自动化带来一场深层次的革命,但由于现场总线相互之间兼容性差、生产现场自控设备种类繁多,导致不同的总线产品之间无法实现互连、互换、统一组态及互操作,信息网络存在协议上的鸿沟导致出现“自动化孤岛”等,促使人们开始寻求新的出路。 近几年,当现场总线大战硝烟正浓时,以太网在控制领域发展迅速,究其原因,是由于工业自动化系统正向分布化、智能化的实时控制方面发展。另一方面,Intranet/Internet等信息技术的飞速发展,要求企业从现场控制层到管理层能实现全面的无缝信息集成,并提供一个开放的基础构架。但目前的现场总线尚不能满足这些要求。 以太网因其结构简单、投资经济、使用方便等优点将不断深入地应用到工业现场,在现场总线控制网络中,将价廉物美的Ethernet设备应用到现场控制网络已成为必然趋势。 目前的工业智能设备大多数还处于单独应用的阶段,以微控制器(MCU)为核心的嵌入式系统与一些监测、伺服、指示设备配合实现一定的功能。在一些工业和汽车应用中,为了实现多个MCU之间的信息交流,利用CAN、RS-232、RS-485等总线将MCU组网,但这种网络的有效半径比较有限,有关的通信协议也比较少,一般是孤立于Internet以外的“孤岛”。Internet现已成为社会重要的基础信息设施之一,如果现场控制网络能够连接到Internet上面,则可以方便、低廉地将信息传送到几乎世界上的任何一个地方。将嵌入式系统与Internet结合起来的想法其实很早以前就有了,主要的困难在于,Internet上面的各种通信协议对于计算机存储器、运算速度等的要求比较高,而嵌入式系统中除部分32位处理器以外,大量存在的是8位和16位MCU,且片上资源有限。如何使嵌入式系统支持TCP/IP等Internet协议的研究是非常有意义的,因为嵌入式Internet技术具有广阔的应用前景。目前已经有大量的8、16、32位嵌入式微控制器在应用中,网络化是提高生产效率和产品质量、减少人力资源的主要途径。 本设计就是实现基于单片机嵌入式系统实现可靠的网络传输信道,保证工业数据的可靠传输与远程控制,实现工业控制网络广域化。数据在IP网络上面传输,必须遵守TCP/IP协议才能实现各点之间流畅的数据传输,要实现现场设备网络化,引入以太网,必须要有可靠的TCP/IP协议栈作为保障,所以是否能够成功移植TCP/IP协议成为设备网络化进程中最重要的问题。 2. 系统总体结构 2.1 硬件总体结构设计 核心处理器的选择 目前在工业控制领域有核心处理芯片品种多,技术都比较成熟,稳定性好,给我们的选择余地比较大。8位单片机,以51内核单片机为代表,16位单片机以TI MSP430为代表,32位单片机以ARM7、ARM9内核嵌入式处理器为代表。 51内核单片机是目前应用最广泛,工程师涉足人数最多的单片机,工业控制的产品大多数是基于51内核单片机开发的,它的最大优点是技术成熟,电磁兼容性好,价格便宜,开发成本低,开发的人数比较多。目前有许多公司开发了以51为内核功能强大、片上资源比较丰富单片机,如Cygnal, Atmel, SST, Dallas等公司开发的新型单片机,不但使用51内核,而且有的单片机的工作频率提高到100Mips,有的单片机提供片内大容量的程序存储FLASH,有的单片机带USB接口,有的单片机提供在线调试、在线下载功能,大大的减轻了开发人员对仿真实验平台的依赖,方便了开发人员的开发和在线调试,由于都是基于51内核结构的单片机,所以这些功能强大的单片机的指令都是兼容的,在程序可以不需要修改就可以在不同的单片机中运行,程序的可移植性比较强。51内核单片机相对于目前高端的处理器而言,它的最大的缺点是寄存器位数少、可寻址空间范围小,不利于做一些比较复杂的算法运算,或者一些外围设备比较多的应用。但其开发及应用成本,个人或者一般的企业都可以承受。 基于以上的考虑,我们选择SST公司的SST89E564RD单片机作为系统核心处理芯片。SST89E564RD单片机最大的特点是有在线调试和在线下载功能,为开发工程中的调试提供了最大的方便。内部程序FLASH64K,达到51内核单片机寻址最大范围,能够满足容纳裁剪后TCP/IP协议。外部接口丰富,有一个SPI口,一个UART口,带一路PWM输出,可以作为扩展外部电机控制。 TCP/IP最先是在UNIX系统里实现的,随后被移植到嵌入式的处理器上。 TCP/IP协议的最底层IP层,很多定义都是16位或32位的,这样使得能够处理16位、32位运算的CPU,比如80286、80386……,ARM、MIPS、DSP,就有很大的速度上的优势。由于指令的原因,以及资源上的原因,在UNIX上实现的TCP/IP协议的原代码并不能够直接移植到8位的单片机上。所以如何裁剪TCP/IP协议、合理分配单片机内外部资源、优化代码提高单片机程序执行效率与提高程序代码的可移植性是本课题中的研究重点。 网络接口芯片的选择 目前的网络接口芯片有两大种类,一类是以PCI总线接口芯片为主,这类芯片的接口速率可以达到100Mbit/s,数据传输速度比较快,但是芯片接在PCI总线上面,需要PCI桥作为地址和数据的处理。一类是以ISA总线接口芯片为主,接ISA总线,数据和地址线可以直接接芯片,并且能够非常方便的控制,但是接口芯片的速度只有10Mbit/s。通过计算,10Mbit/s的数据流大于SST89E564RD单片机的处理能力,所以选择价格低廉的10Mbit/s ISA总线接口的网络芯片RT8019AS是比较合适的,目前在工业以太网领域网络接口芯片大多选择10Mbit/s的芯片。 其他外围器件的选择 由于需要处理网络数据包,一个最大网络数据包有1514字节,而SST89E564RD内部的RAM只有256个字节,所以需要考虑外扩RAM。同时TCP/IP协议栈需要考虑数据阻塞,超时重发等,需要比较大的数据空间作为数据缓存,选择UT62256 32K*8bit 动态RAM作为数据缓存。 考虑模块产品化的要求,在模块设计的时候要考虑看门狗和电源复位电路,防止单片机由于外部干扰进入死循环以及保证上电复位准确,还需要考虑模块的配置信息保留在模块内部,所以使用了X25045看门狗复位芯片。这个芯片集合了上述的3种功能,能够准确复位单片机,有看门狗计数器,内部还有4Kbit的EEPROM的存储空间,可以用来存储模块的一些配置信息,如模块的MAC地址、IP地址、网关、端口、远端服务器地址等在模块使用前需要配置的信息。 硬件的总体结构如图一,硬件模块保障了基本功能的完成。
图一图一 硬件框图
2.2 软件总体结构设计 从模块功能上分析,主要有以下几个功能模块: 串行通信模块 用于与外部的串行总线进行通信,所有数据收发都是在模块内部完成,对其他的模块不构成影响。模块收发数据的处理参考双口RAM的概念。 TCP/IP协议栈 这是整个协议转换模块中最重要的部分,这个模块主要是将数据封装TCP/IP协议,然后通过以太网接口芯片发送至以太网中,模块内部的设计考虑使用透明模块的设计方法,模块的输入输出数据都由模块自动完成,无须外部干预,对于来自网络的数据包的处理,自动完成IP地址的分析和端口筛选。整个TCP协议的实现,基于TCP状态机,每个状态机对应各自的处理函数。在TCP协议中用计时器判断数据包发送是否超时,计时器使用系统的时钟,单片机内部的时钟有3个,一个作为串口波特率发生器,用另一个作为系统时钟,由于考虑使用实时操作系统,所以TCP计时器的时钟使用操作系统的时钟,就是将一个计时器,分为多个操作系统时钟源,这样TCP计时器的中断由操作系统产生,而且这个时钟可以被多个任务同时使用,由操作系统分配时钟间隔,和产生中断向量。这样的使用方法比较灵活,可以有效的扩展其他的时钟中断源。 任务调度模块 串口模块、TCP/IP协议栈和RT8019AS驱动程序需要有一个调度程序进行任务调度,系统的时钟源和中断向量也由这个部分产生,所以这个主控模块的任务调度能力,以及中断响应的实时性都要比较好。本设计中,采用实时嵌入式操作系统的概念完成这个主控模块的设计,以保证任务调度的正确,系统内部资源不易溢出,能够处理异常的错误,保证整个模块工作的稳定、实时、高效。 外围设备驱动 外围设备包括RT8019AS,X25045这两个设备,通过设备驱动的接口函数对这些外设进行读写,从而达到将整个系统融为一体的效果,使单片机内部对这些设备操作,如同操作内部寄存器一样方便。驱动程序是否正确,直接关系到对网络数据收发的正确性。芯片的上电初始化和保证接口函数正确读写数据,都要求规范正确的驱动程序。 2.3 系统任务调度模块的设计与实现 这个部分是整个程序的核心部分,称为内核。内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通讯。内核提供的基本服务是任务切换。之所以使用实时内核简化应用系统的设计,是因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。 网络部分和串口部分都有比较多的任务需要通过系统调<
投诉建议

提交

查看更多评论