基于VxWorks和MPC860T平台的嵌入式串口通信服务器的解决方案
扫描二维码
随时随地手机看文章
1.引言
随着IP技术的迅速发展,“Everything over IP”的观念已深入人心。如何有效的将物理上分布于各个地方的串行设备接入互联网,以实现基于IP技术的遥测遥控成为当前研究和应用的一个热点。论文以嵌入式实时操作系统VxWorks和高性能的嵌入式微处理器MPC860T为软硬件平台,提出了一个适合各种速率的串行设备接入IP网络的高性能通信服务器的解决方案,它充分发挥了操作系统VxWorks的实时性以及嵌入式微处理器MPC860T在网络、通信方面的卓越性能。利用该通信服务器不但可以将低速率的串行设备接入互联网,也可以将具有较高速率、对实时性有较高要求的串行设备接入互联网。
2.串口通信服务器的体系结构
在实际应用中,各种监测、控制设备多以串行通信的方式的和外界通信。而串行设备千差万别,特别是在数据的传输速率和数据格式方面有很大的不同:既有利用UART(universal asynchronous receiver transmitter,通用异步收发)协议传输的低速率数据,又有利用HDLC(high-level data link control,高级数据链路控制)等协议传输的高速率数据;对数据传输实时性的要求也有很大区别:既有非实时性的串行数据传输,也有对实时性要求比较严格的串行数据,如音、视频数据,高速设备的实时监控数据等。如何有效的将各种串行设备合理的接入IP网络,以实现基于互联网的分布式远程监控呢?论文根据这一需求,提出了一种如图1所示的串口通信服务器的体系结构,该串口通信服务器能够较好的将各种串行设备接入IP网络,并且在实时性方面有比较突出的表现:能够将各种高速、实时性的音视频数据快速接入IP网络,以实现基于IP网络的遥测遥控。
500)this.style.width=500;" border="0" />
在图1所示的串口通信服务器体系结构中,服务器配置程序为用户提供了一个基于C/S模式的服务器通信参数配置接口,用户可以利用运行于个人计算机上的客户端配置程序与通信服务器的配置串口通信以随时改变通信参数;嵌入式实时操作系统主要完成各种任务的实时调度、中断管理、系统资源管理等功能;所谓BSP(Board Support Package,板级支持包)就是针对该通信服务器特定的硬件平台所编写的底层程序,它依赖于硬件,主要包括初始化代码和部分驱动程序;FEC(Fast Ethernet Controller,快速以太网控制器)驱动程序提供双工100/10M自适应以太网控制器驱动;双内核的嵌入式微处理器用于运行操作系统、应用程序、配置程序以及通信协议的底层微码;外围接口层对外提供各种标准的通信接口,如RS-232、RJ-45等。
3.串口通信服务器的硬件实现
在串口通信服务器中,嵌入式微处理器的性能无疑是影响整个通信服务器性能的一个关键
因素,根据图1所示的通信服务器体系结构,论文选用Freescale公司的双内核嵌入式微处理器MPC860T。它是一款集成了双内核和丰富的外围设备的微处理器,可广泛应用于各种控制领域,特别是在通信和网络领域有着优异的性能,其组成如图2示。基于PowerPC体系结构的MPC8xx内核主要负责操作系统和应用程序的运行;CPM模块拥有独立的基于RISC的通信处理器,该通信处理器主要为SCC(Serial Communications Controllers,串行通信控制器)、SMC(Serial Management Controllers,串行管理控制器)等通信信道提供服务、执行通信协议的底层代码以及控制DMA。SIU主要负责系统的启动、初始化、中断以及外部总线功能等。FEC提供10/100M以太网控制功能,它提供独立的FIFO和突发DMA,因此可以在不影响CPM性能的情况下提供10/100M以太网连接。其中4个SCC通道可以独立配置成HDLC模式、异步HDLC模式、10M以太网模式等;2个SMC通道可以配置成UART模式、透明传输模式等。
500)this.style.width=500;" border="0" />[!--empirenews.page--]
在实际应用中UART协议和HDLC协议是串口通信常用的两种通信协议,并且HDLC是其它众多协议(如SDLC、SS#7等)的基础,因此该通信服务器的串口协议采用HDLC和UART。基于MPC860T的串口通信服务器的硬件组成如图3所示。在该串口通信服务器中,
500)this.style.width=500;" border="0" />
4个SCC通道分别独立工作于双工的HDLC模式,以提供高速实时的串行数据传输,快速接入以太网;2个SMC通道独立工作在UART模式提供低速率的数据通信,SMC1提供系统级和任务级调试用串口,用户可以利用SMC1通过运行在个人计算机上的程序来配置服务器的相关参数,SMC2提供低速的串口通信。FEC接口提供双工100/10M 以太网接入端口;4M的Flash用来存储操作系统、用户应用程序、服务器配置程序等;32M的SDRAM用来运行应用程序、存储运行过程的数据等。BDM端口供软硬件仿真调试使用,利用VisionProbe通过BDM口可以对软硬件进行调试。
4.串口通信服务器的软件实现
在串口通信服务器中,操作系统也是影响通信服务器整体性能的另一个关键因素。根据
图1所示的体系结构和所使用的微处理器,论文选用美国风河公司的嵌入式实时操作系统VxWorks。VxWorks是美国风河公司推出的一款实时操作系统。它以模块化构造并可高度裁减,这使其能够在较小的存储空间中高效稳定的运行,非常适合于各种高性能、多任务嵌入式实时系统的开发,广泛应用于通信、航空航天等领域。VxWorks系统的构成主要有Wind内核、I/O系统、BSP以及网络协议栈等。
基于VxWorks操作系统构建的串口通信服务器软件系统层次结构如图4所示。在该软件
500)this.style.width=500;" border="0" />
系统中,由底向上依次是依赖于通信服务器硬件系统的BSP(包括UART驱动、HDLC驱动、config.h配置文件、makefile编译规则文件等)和以太网驱动程序;与硬件无关的操作系统层;属于应用层的通用服务器配置程序。其中操作系统层由VxWorks提供,服务器配置程序和BSP需要根据系统硬件具体实现。FEC驱动需要作为BSP的一部分集成进整个软件系统,之所以将FEC驱动单独列出,是因为FEC驱动是通用的,仅仅需要在BSP中进行集成。下面主要讨论BSP和服务器配置软件的实现方案。
4.1 通信服务器BSP设计与实现
嵌入式系统中的BSP一般都是参考一个经过了严格测试的、功能比较类似的BSP来设计和实现的,串口通信服务器的BSP就是参考ADS860评估板的BSP来实现的。根据串口通信服务器的体系结构和硬件实现,BSP的实现需要做以下工作:
将MPC860T的SCC1~SCC4通道设置成HDLC模式,实现HDLC驱动并将其挂接到VxWorks的TTY系统;
新建sysSccSerial.c文件以支持HDLC驱动模式;
根据实际需要修改usrconfig.c或是usrSerial.c文件以便将HDLC通道作为标准的I/O设备;
修改config.h、configNet.h、makefile、apc860.h等文件使相关的配置参数符合串口通信服务器的具体要求,去除对10M以太网的支持、添加对100/10M FEC以太网的支持;
其中HDLC驱动程序的实现是BSP开发中的重要一环,因为SCCx通道的HDLC驱动需要满足高速率、高实时性的要求,它的性能直接决定着整个通信服务器的性能。[!--empirenews.page--]
4.2 通信服务配置软件设计与实现
串口通信服务器配置软件是为用户实时设置通信服务器的通信参数而提供的应用程序。它基于C/S模式构建:由运行于串口通信服务器上的服务器端配置软件和运行于用户个人计算机上的客户端软件组成,它们通过计算机的串口和通信服务器的SMC1串口通信。通信服务器的通信参数主要包括SMC2 的UART协议相关参数和SCCx 的HDLC协议相关参数。
5.结束语
利用VxWorks实时操作系统和MPC860T嵌入式微处理器设计和实现的串口通信服务器
性能稳定、配置方便,具有很好的实时性,能够较好的满足各种串行设备接入互联网的要求,特别适合于对数据传输速率和实时性要求较高的串行设备。利用串口通信服务器可以方便的将各种串行设备接入IP网络,从而实现基于互联网的远程实时监测和控制。
本文作者创新点:充分利用了VxWorks 的实时性和MPC860T SCC通道提供的高速HDLC串口接入功能,实现了将串行监控设备高速接入IP网络和远程实时监控技术。