您的位置:控制工程论坛网论坛 » 嵌入式系统 » 基于单片机的以太网嵌入式控制器设计

jshfq

jshfq   |   当前状态:在线

总积分:17995  2024年可用积分:0

注册时间: 2007-08-06

最后登录时间: 2013-11-04

空间 发短消息加为好友

基于单片机的以太网嵌入式控制器设计

jshfq  发表于 2008/7/18 19:41:25      878 查看 0 回复  [上一主题]  [下一主题]

手机阅读









基于单片机的以太网嵌入式控制器设计

 
摘  要: 本文设计了基于SX52BD网络单片机的嵌入式控制器的硬件结构和相关软件,设计了嵌入式控制器各功能模块和相关接口电路(网络通信接口电路和控制设备接口电路),本文设计的以太网嵌入式控制器是以SX52BD为核的新型“嵌入式WebServer”,除了编写传统的控制、通信软件外,在基于以太网数据传输基础上,将传统Web功能融入控制器,给出相关的协议栈软件设计、Java Applet客户端的应用设计。以太网应用于工业控制系统是可行的。 


关键字: 以太网; 控制器; 单片机; Web


1 引言


  网络控制系统又称为控制网络,基于网络的控制系统经过近30年的发展,从原来基于模拟信号传输的控制系统DCS,发展到数字化、智能化、全分散的现场总线系统,给工业自动化带来一场深层次的革命。随着Intranet/Internet信息技术的飞速发展,现场总线新技术及应用成了科研人员关注的研究热点,研究解决从现场控制层到管理层能实现全面的无缝信息集成,并提供全面开放的基本构架。本文对以太网分布式控制系统的重要接入设备:嵌入式控制器做了详细设计。


2 硬件设计


  整个控制器的硬件构成如图1所示。




图1 控制器硬件组成示意图


  整块电路板由5V直流供电,它集成了速度达50MHz的SX52BD微处理器、24C256EEPROM芯片、RJ-45以太网接口,RS-232接口、RS-485接口、网页内容下载DEBUG接口、以太网控制芯片采用RealTek公司的RTL8019AS,该芯片是一款全双工以太网控制器,可以工作在Ethernet II和IEEE802.3, l0Base5, l0Base2, l0BaseT下,并与NE2000兼容。E2PROM主要用来存WEB页面、图像文件、PDF文档等内容,因此没有特殊要求,可自由选择,一般32 KB左右即可,我们采用24C256芯片。SX52为核心芯片,通过它控制以太网控制芯片RTL8019AS,进而完成接入网络的工作;而且可以通过编程来选择通信电路类型,如RS232, RS485, MODEM等。该控制器设计最大的特点在于:用简洁硬件构架应用平台,使原本硬件成本所需的支出可用于相对复杂的软件开发上,且该方案的I/O接口可以自由扩展和支配。应用程序放在Flash RAM或EEPROM里,其它要经常修改的参数和实时数据放在SRAM里。I/O采集的接口硬件电路和总线相连。


  2.1 微处理器选型


  SX52BD是SX系列产品,是采用CMOS工艺制造的、可配置的控制器。它的操作频率可达到50/76/100MHz,是一种高速计算机;其大部分指令为单周期指令,运行速度可达到一般MCU的20倍;灵活的I/O特性使之具有高效的实时控制功能,正因为它的高速运行特性,设备可以用软件模块(虚拟外设)替代一部分过去由硬件实现的实时功能,这是SX系列的最重要的特点。下面是SX52BD的主要性能和特点:


  ① CPU性能。基于RISC结构,采用压缩的指令系统,除branch外大部分为单周期指令;操作频率最高可达100MHz,此时指令周期为lOns,内部中断响应时间达30ns;可以通过运行时间内读代码(IREAD指令)进行快速平台查找;它能克服一般MCU运行速度慢的缺点,使得SX系列的内部程序达到硬件实时控制功能的目的。


  ② 硬件外设特性。内部包含2个(带8位预定标器的)16位定时器,运行方式有软件时钟模式、PWM模式、同步PWM/捕捉模式以及外部事件模式:有一个(带8位预定标器的)可编程的8位定时/计数器(RTCC)和看门狗计时器(共享RTCC预定标器);内部包含模拟比较器,这对于一般的应用来说显得十分方便。


  ③ 由于SX系列高速运行特性,再加上灵活的I/O功能,设备就可以用软件模块(虚拟外设)代替那些硬件所具有的准确的实时功能。目前可以实现的虚拟外设大多用于通信设备(例如通信接口和Internet连接协议等)以及作为运行速度比较高的信号发生装置和转换装置。


  ④ 编程和调试支持。可以通过串口或并口对芯片进行在线编程(例如可以接振荡器引脚进行在线串行编程),芯片具有在线调试支持逻辑。对于实时仿真、全程调试,可以由第三工具供应商提供完备的开发环境。这些软件支持包括:即时可用的虚拟外设模块库、虚拟外设综合实例以及用于通信的应用工具包等。


  SX设备在实际应用中能够提供新的思路和解决办法,一方面它可以应用于一些常规的设备,如:过程控制器、电子设备/工具、安全/监视系统、汽车用户、动力控制系统、私人通信设备等等;另一方面,SX通信控制器为SX堆栈的硬件平台,它能实现执行整个TCP/IP协议、物理层及其相关的高速通信层一虚拟外设模块,它的网络连接协议栈工具能使单片网络服务器和E-mail设备在嵌入式场合中应用,这些工具包括TCP/IP网络连接协议的物理层界面,利用这些工具可以开发出一些成本低廉的嵌入式Internet设备。


  2.2 基于SX52BD的嵌入式控制器的主要单元电路设计


  1、用SX52BD控制的执行器开关电路



点击看大图
图2 电磁开关接口电路


  现代自动化控制设备中都存在一个电子与电气电路的互相联结问题,一方面要使电子电路的控制信号能够控制电气电路的执行元件(电动机、电磁铁、电灯等);一方面又要为电子电路的电气提供良好的电隔离,以保护电子电路和人身的安全,电子继电器便能完成这一桥梁作用。图2是控制器中直接用SX52BD控制工业电路的电器开关功能单元接口电路图。RELAY_A接SX52BD的RA3引脚,控制器主板上共设计了四路控制开关电路,控制信号分别接SX52BD的RA0-RA3引脚。


  2、以太网接入电路


  要将嵌入式设备无缝接入以太网络控制系统,首先要解决的问题之一就是与以太网的接口问题,如何将通用计算网络接口器件应用于嵌入式网络控制器。我们采用了台湾Realtek公司生产的TRL8019AS以太网控制器,它具有极佳的性价比,由于其优良的性能、低廉的价格,使其在市场上10MPbs网卡中占有相当的比例。其主要性能包括:(l) 适应Ethemet11、IEEE802.3、10Base5、10Bases、10BaseT;(2) 支持8位、16位数据总线;(3) 全双工,可同时达到10MbPs的收发速率,具有睡眠模式,以降低功耗;(4) 内置16KB的SRAM,用于收发缓冲,降低对主处理器的速度要求;(5) 可连接同轴电缆和双绞线,可自动检测所连接的介质;(6) 100脚的TQFP封装,减小了PCB尺寸。


  3、与以太网通信的RS-485串行通信接口


  RS-485总线以其抗干扰能力强、支持多节点远距离通信和高接收灵敏度以及连线简单等优点在控制领域得到了广泛应用。监控系统使用基于RS-485总线构成的分布监控方式,能够完成在恶劣的现场环境中的多种监测控制功能。


  SX52BD处理器同时具有控制和通信的功能。正因为SX52BD嵌入式以太网控制模块同时具备以太网的通信、RS-485串行通信以及数据运算处理能力,可以利用其作为RS -485与工业以太网的通信转换节点。节点的作用就是将工业现场的传感器或执行器的信号转换为能在工业以太网上进行发送的数据包,从而与现场的其他节点直接进行通信,最终使TCP/IP协议能工作在控制系统的现场设备层。


  RS-485通信接口电路的总体结构框图如图3所示。SX52BD嵌入式以太网控制模块虽然内部支持RS-485的串行通信格式,但模块上没有RS-485的驱动电路,所以在控制器的模板上我们自己建立了驱动电路。本方案选用了性能较好的接口驱动芯片MAX485。MAX485为8个管脚,DIP封装,1脚RO为数据接收端;2脚RE为数据接收允许端,低电平有效;3脚DE为数据发送允许端;6、7脚为电流环回路端;它把一个三态差分线路驱动器和一个差分线路接收器组合在一起,并共用A、B两根总线。它的传输方向由DE和RE所控制,当DE=1时,驱动器优先,可进行数据发送,此时接收器呈高阻状态;RE=0时,接收器优先,可进行数据接收,此时驱动器呈高阻状态。




图3 RS-485接口驱动电路框图


  4、采用光电隔离设计的数字量输入输出电路


  整个嵌入式控制器我们设计了数字量输出和数字量输入。嵌入式微处理器是一个数字信号处理系统,它给出的控制量就是一个数字量。为了防止工业现场强电磁干扰或工频电压通过输入输出通道串入测控系统,一般要将整个控制器与外设隔离开来,即需要采用隔离技术。在数字隔离技术中,最常用的隔离手段是使用光电隔离器,因为光信号的传送不受电场、磁场的影响,能有效地隔离信号的干扰。光电隔离器把发光器件和光敏器件组装在一起通过光实现藕合,构成电-光-电转换的器件,当在发光管两端加一定电压时,放光管通过一定的电流而发光,该光信号经光敏器件接收后又转为电信号。光电隔离器输入端与输出端之间的联系是通过“光”来实现的,所以光电隔离能实现较好的电气隔离。


3 以太网嵌入式控制器的软件设计


  嵌入式控制器内的主控程序采用SASM汇编语言编写,SX系列共有65条指令,其中基本指令57条,等效指令8条。系统的开发还采用了UBICOM公司提供的汇编/编程器软件“SXKEY52.EXE”,实现软件在线仿真、调试和程序SIP方式编程下载。客户端软件采用HTML语言和Java Applet设计。


  3.1 网络协议栈的软件设计


  当数据包通过RJ-45接口传送到RTL8019As和MCU后,系统内部的TCP/IP堆栈进行数据包解析和流向判断,然后进行解包或者打包的动作,以继续进行后续工作。显然,最终的处理结果都要通过WebServer来进行。


  通常,所谓的TCP/IP协议是一个四层协议系统,包括数据链路层、网络层(含IP协议)、传输层(含TCP协议)和应用层,每一层负责不同的功能。基于TCP/IP协议可以实现多种功能应用。在我们设计的系统中,主要是分析HTTP,也就是WebServer在应用层的主要构成协议。其它的协议功能的实现就不再分析了。PI包含编址方案,并提供寻址功能;TCP则是在不同主机的对等进程之间提供可靠的进程间通信。与TCP两端口所连接的实体中,一端为应用程序进程或用户,另一端则为底层协议,如IP协议。TCP在建立连接过程中采用三次握手机制,以保证数据的可靠性。利用提供的TCP/IP协议包,可以轻松建立起TCP/IP通信。当通信建立以后,就可以在此基础上进行后续的进一步应用功能扩展。


  3.2 RS-485接入以太网的软件设计


  嵌入式控制器把传感器的RS-485通信格式数据转换为工业以太网接收的TCP/IP协议格式的数据包,可以通过两个实时的任务运行实现。一个任务是模块从RS-485串行口读取来自传感器的数据:另一任务则是将模块获得的数据从以太网接口发送到需要数据的其他网络节点,它们通过共享数据缓存区实现数据交换。


  3.3 Java Applet在客户端的应用


  Applet是运行在浏览器上的Java程序。它不能独立运行,它的字节码文件必须嵌入到另一种语言HTML的文件中,并由浏览器采用调用Applet方法来解释执行,Java Applet字节码程序可以完成特殊的Applet任务。本系统客户端软件实际上就是Java Applet的一个应用,用户界面的内容可以由Applet来实现。


  可以通过控制界面显示控制参数的开关状态,并通过控制面板的选取控制系统,并进行查询。客户端与服务器通信过程通过创建socket来实现。Socket类和ServerSocket类是用Java实现Socket通信的主要工具。创建一个ServerSocket对象就创建了一个监听服务,创建一个Socket对象就建立一个Client与Server间的连接。用下面的语句创建一个ServerSocket类,同时在运行该语句的控制器的指定端口外建立一个监听服务:


  ServerSocket MyListener = new ServerSocket(8000);


  为了随时监听可能的Client请求,还应该执行如下的语句:


  Socket LinkSocket = MyListener. accept();


  当Client程序需要从Server端获取信息及其他服务时,创建一个Socket对象:


  Socket MySocket = new Socket(“SevrerComPuterName”,8000);


  本文作者创新点:在本嵌入式控制器中,嵌入式控制器的设计包括硬、软件两部分设计,向上与计算机通信,设计了RJ-45接口、存储器接口等,向下与控制设备通信,设计了相应RS-232接口、RS-485接口、电磁控制开关接口等。客户计算机上只要有SQL SERVER,SOCKET,EXPLORER等即可与嵌入式控制器通信,而嵌入式控制器上有WebServer,SOCKET,系统软件网页服务器程序等。

1楼 0 0 回复