您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术基于RTCORBA技术的嵌入式代理服务器设计 正文
基于RTCORBA技术的嵌入式代理服务器设计

基于RTCORBA技术的嵌入式代理服务器设计

点击数:7249 次   录入时间:03-04 11:35:59   整理:http://www.55dianzi.com   嵌入式系统-技术
   摘要:使用Linux+RTCORBA的系统架构设计一个嵌入式代理服务器,实现了LON网到Ethernet的互联;具有数据透明传输、无缝互操作、实时的特性。

    关键词:RTCORBA 代理服务器 现场总线

引言

现场控制网络技术、信息网络集成技术和分布式实时技术的发燕尾服和成熟,使集成信息网络和现场控制网络的分布式实时测控网络成为未来工业测控系统的发展方向。在这这样一个测控网络中,实现异构网络无缝互联的关键是代理服务器。使用基于实时中间件的代理服务器,既能满足实时互联的要求,又使代理服务器屏蔽了底层测控设备的实现细节,减少了系统开发的难度;同时,基于面向对象技术,各种测控设备的连接与安装难度也大幅度降低。

本文使用Linux+RTCORBA的系统架构设计一个嵌入式代理服务器,用于LON网到以太网的互联,并且使用基于ARM7的单片机实现了该嵌入式代理服务器。

1 RTCORBA技术简介

CORBA是OMG推出的一个重要的工业规范,是OMA(Object Model Architecture)的核心部分。OMA所采用的方法,是为面向对象的应用提供一个公共框架,如果符合这一框架,就可以在多种硬件平台和操作系统上建立一个异质的分布式应用环境。

OMG在制订CORBA规范时,首先考虑的是互操作性,用以解决异种平台上的不同对象的协作问题;所以,需要将CORBA规范进行扩展,以满足分布式实时应用的需要和测控系统的实时性要求。在1999年3月,OMG发布了实时CORBA1.0规范。OMG已将它作为CORBA3.0规范的一部分。

实时CORBA对原有的规范进行了扩展,定义了标准的接口和QoS策略,其扩展的具体内容为:

*将客户的CORBA::Current接口扩充为RTCORBA::Current接口;

*将服务器的PDA扩充为RTPOA;

*将ORB扩充为RTORB;

*增添了RTCORBA::Priority接口和RTCORBA::PriorityMapPINg接口;

*增添了RTCORBA::Threadpool接口;

*增添了Scheduling ServICe。

这些扩展可具体分为对处理器资源、内存资源和通信资源的管理三个部分。

2 嵌入式代理服务器设计与实现

代理服务器屏蔽了底层测控设备的实现细节,向上层提供统一的数据服务,在测控网络中起着纽带的作用。为了实现分布式实时测控网络,其中核心的问题之一就是实现一个代理服务器。由于代理服务器需要应用于工业现场,要求能在较宽温度范围内工作,并且还要求封装牢固(抗振和防冲击)、导轨安装、电源冗余、DC供电等。另外,从低功耗、低成本、小何种的角度来看,使用嵌入式系统都优于使用通用系统,故本文选用嵌入式系统来实现代理服务器。

整个代理服务器可以分为硬件平台层、操作系统层、实时中间件层和应用程序四个层次来实现,如图1所示。

2.1 硬件平台

在这种方案中,代理服务器一方面通过各种驱动或服务程序与现场设场设备实时交换数据,另一方面通过ORB与应用程序交换数据。代理服务器可以提供对LON现场总线、常规通用工业串行通信总线RS485/RS232、常用DCS/PLC等多种现场控制协议的支持,其硬件框图如图2所示。通过使用代理服务器,屏蔽了底层的现场总线通信协议,使用面向对象的方法将每一个现场设备都实现为网络中的一个分布式对象;通过对象方法调用向上层应用提供统一的服务,使得上层应用可以直接通过调用代理服务器中的对象方法来控制底层测控设备。

(1)微处理器模块

微处理器模块包含所有使得微处理器能够正常工作的部分。它包括微处理器、Flash、SDRAM、电源、JTAG接口电路、复位电路和晶振电路。根据需求,我们选用三星公司的基于16/32位ARM7TDMI核的S3C4510B微处理器。它专为以太网通信系统而设计,具有低成本和高性能的特点,并集成了多种外围器件。

(2)10M/100Mbps以太网通信模块

这个模块用来与以太网通信。S3C4510B内嵌了一个以太网控制器,支持媒体独立接口(MII)和缓冲DMA接口(BDI),可在半双工或全双工模式下提供10M/100Mbps以太网接入。实际上芯片已经包含以太网MAC控制,但未提供物理层接口,需要外接一块物理层芯片。

本系统使用RTL8201作为以太网的物理层接口芯片。它的主要功能包括物理编码子层、物理媒体附件、双绞线物理媒体子层、10BASE-TX编码/编解码器和双绞线媒体访问单元等;同时,带有MII接口,可以简单方便地与S3C4510B连接,如图3所示。

S3C4520B的MAC控制器可以控制31个RTL8201,每个RTL8201都必须有不同的PHY地址(00001B~11111B)。系统复位时,由锁存引脚9、10、12、13、15的初始状态确定PHY地址。但是,由于锁存引脚也复用为LED引脚,故不能直接接电路或地。

(3)LON现场总线通信模块

代理服务器作为LON现场总线中的一个节点与现场检测设备通信,所以LON现场总线通信模块要包括与LON网络通信和与S3C4510B通信的功能。

LonWorks总线通信模块主要由神经元芯片、LonWorks双绞线网络收发器、程序存储器、数据存储器等组成。在该代理服务器的应用中,实际上仅仅把Neuron(TMPN3150)芯片作为通信处理器用,由其按照LonTalk协议与LonWorks网络上的所有智能节点进行通信,同时将通过并行口与主CPU通信。它将从S3C4510B接收到的来自以太网络的其它网段数据或上层控制命令通过特定的寻址方式由LonWorks收发器传向LonWorks网,或将从LonWorks网上接收到的LonTalk协议报文由通用I/O发给S3C4510B,再由S3C4510B进行处理。由于开发Neuron芯片时采用的Neuron C(专门为Neuron芯片设计的编程语言,从ANSI C中派生出来的)语言,故内存占用大。另外,作为通信协议处理器使用要求有大量的数据缓冲区进行数据交换,而仅仅利用TMPN3150内部的2KB RAM容量是均无不够的,因此我们扩展了外部存储器Flash和RAM。由于采用Flash,可以非常方便地修改用户程序。

LON现场总线通信模块原理如图4所示。

2.2 操作系统层

操作系统层不仅仅是操作系统软件,它一般包括两个部分:

①引导加载程序,包括固化在固件(firmware)中的boot代码(可选)和Boot Loader两大部分;

②内核和文件系统,包括 Linux内核、根文件系统和建立于Flash内存设备之上的文件系统。

(1)Linux内核

作为候选的一种嵌入式操作系统,嵌入式Linux以其引入注目的优势,极大地吸引电子设计工程师从自己书写的或专用的RTOS转移到Linux。UClinux是专为那些没有MMU(内存管理单元)的嵌放式处理器开发的嵌入式Linux。

图3

    www.uclinux.org为uClinux提供了GNU的交叉编译器,包括以下组件:

*GCC交叉编译器,即在宿主机上开发编译目标上可运行的二进制文件;

*Binutils辅助工具,包括objdump、as、ld等;

*Gdb调试器。

使用这些工具搭建了嵌入式应用开发平台后,就可以在标准的Linux平台上开发应用了。搭建了开发平台主要有以下几步:

①获得uClinux-dist的源码包;

②建立ARM交叉编译环境;

③针对硬件修改配置;

④编译内核;

⑤内核加载运行。

(2)BootLoader

引导加载程序是系统加电后运行的第一段软件代码。在PC中引导加载程序由BIOS(其本质就是一段固件程序)和位于硬盘MBR中的OS Boot Loader(如LILO和GRUB等)一起组成。而在嵌入式系统中,通常并没有像BIOS那样的固件程序(有的嵌入式CPU也会内嵌一段短小的启动程序),因此整个系统的加载启动任务就完全由Boot Loader来完成。在一个基于ARM7TDMI核的嵌入式系统中,系统在上电或复位时都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的Boot Loader程序。

通过Boot Loader,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。Boot Loader是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,我们需要设计与实现自己专有的Boot Loader。

[1] [2]  下一页


本文关键字:技术  嵌入式  代理服务器  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术