基于MPC8260和VxWorks实现快速以太网通信

分享到:

        引言

       摩托罗拉MPC8260微处理器芯片因其强大的通信处理能力和多种协议的支持而被广泛应用于通信和网络领域。本文以MPC8260为例,探讨在嵌入式系统中实现基于VxWorks操作系统的快速以太网通信的方法。

       1 快速以太网通信接口的硬件实现

        MPC8260 的3个FCC(快速通信控制器)均可通过MII(媒体独立接口)支持快速以太网,实现以太网中的MAC(媒体访问控制)层功能。在设计中选用FCCl接口作为以太网接口。以太网PHY(物理层)收发器选用Intel公司的LXT971A,变压器选用中山汉仁公司的HR601680,采用RJ45标准物理接口。以太网口硬件设计如图l所示。

       LXT971 A支持10BASE-TX、100BASE-TX/FX等物理连接方式,拥有半双工、全双工、自适应等多种工作模式,拥有内嵌的LED(发光二极管)驱动显示网口的工作状态,采用通用的3.3 V供电。在本设计中,IXT971A通过MII与MPC8260的FCC1连接,MPC8260通过LXT971A的串行控制管理(MDIO(管理数据输入输出)和MDC(管理数据时钟))接口对IXT971A内部寄存器进行配置,实现工作模式的选择。但由于LXT971A是完全自适应的,因此,在实际的工作中不需要对LXT971A进行任何配置。需要注意的是,MPC8260的引脚存在复用的问题,因此,软件必须将所涉及的引脚设为对应的FCCl通信口的功能。

       2 快速以太网驱动的设计与实现

       2.1 VxWorks网络系统结构

       VxWorks 支持两种形式的网络驱动:一种是BSD(Berkeley Software Distribution)驱动;另一种是END(增强型网络驱动)是VxWorks所独有的,其主要特点是增加了一个MUX模块来管理END设备。目前比较通用的是采用END网络驱动程序。在本系统的网络驱动中选用END驱动作为以太网驱动方式,其网络系统结构如图2所示。

       收发数据时,网络协议层通过套接字(Socket)获取应用层提供的数据信息,经由MUX(多路选择)层选择END设备。Mux层将网络协议与网络设备的驱动区隔开来,使得网络协议不依赖于具体的硬件接口,而与硬件有关的代码都封装在BSP中,底层由END提供驱动。因此,在基于VxWorks的以太网通信实现的设计中,主要的工作是进行底层网络设备(硬件)设计和END驱动程序的开发。

       2.2 END驱动的实现

      以太网在VxWorks下作为END设备,由通信处理器模块通过FCC接口进行管理。END驱动的工作过程一般分为3个步骤完成,即初始化END设备、装载 END设备以及启动END设备。风河公司提供了基于大多数嵌入式微处理器的评估板的BSP参考源程序,根据实际方案修改其中与网络通信相关的部分程序,即可实现END驱动在实际设计中的应用。

        2.2.1 END设备的初始化步骤

       为了便于理解网络设备程序的装载过程,首先分析图3所示的在VxWorks映像启动时的网络初始化顺序。

       系统启动后,VxWorks首先执行usrRoot()函数,安装库程序和创建设备。接着usrRoot()调用usr-NetInit()函数完成网络的初始化,包括通过muxDev-Load()调用SysMotFccEndLoad()装载设备表end-DevTbl[]中描述的设备以及调用 ipAttach()完成网络协议的安装等。通过这些过程完成网络装载并使其处于准备接收或发送数据状态。设备装载完成后,muxDevLoad()调用 muxDevStart()启动函数,该函数通过intConnect()和intEnable()实现中断服务的注册并打开中断宏。当有数据交换时,打开中断服务程序,调用排列网络任务处理函数netJobAdd(),指派网络系统任务tNetTask,由tNetTask处理数据接收和发送任务。

        2.2.2相关BSP的配置

        在VxWorks中,网络设备驱动程序装载时,首先要通过对所处BSP中文件进行相应的配置才能实现。

        1)接口引脚的定义和使能

        以太网是由MPC8260的以太网控制器通过连接一个外部PHY芯片实现的,通过对MPC8260的可编程并行口进行寄存器设置,定义这些引脚为以太网接口信号。这部分功能在sysLib.c中实现。

        另外,需要同时配置读写以太网PHY芯片内部寄存器的信号,这可以通过修改sysFccEnetAddrGet、sysF-ccMiiWr、 sysFccMiiRd等子过程来实现,详细的配置数据可以参照MPC8260并行口寄存器的配置表,这里不一一赘述。

         2)以太网物理端口的定义

        针对以太网接口,定义使用的FCC号、TBD和RBD数目、PHY物理地址和使用的通信速率操作模式以及用户标识等。这部分功能在sysMotFccEnd.c中实现。

       3)添加驱动的调用人口

        在configNet.h中定义END设备驱动程序入口表END_TBL_ENTRY结构的数组endDevTbl[],将驱动装载函数SysMotFccEndLoad的人口点及相关参数添加到endDevTbl[]。

       3 结束语

        本文介绍了在MPC8260为核心的嵌入式系统中,基于VxWorks操作系统的快速以太网通信的硬件设计方法和驱动开发过程,该设计已在实际工作中顺利实现。

继续阅读
VxWorks环境下双冗余以太网卡技术在底层驱动中的实现

随着以太网的稳定性、抗干扰性和带宽问题的逐步改善,以太网正在大规模进入工业控制领域。 用于工业过程控制、通信、航天器和导航系统中的网络对可靠性及其响应故障的快速性要求极高。当前,冗余设计作为一种提高设备可靠性的有效方法,已经得到了广泛的应用。对于网络系统中的单个节点,常常需要对网卡进行双冗余备份,即每个节点都采用2块网卡(或2个网口),中间用集线器或交换机互连,当正常通信的网卡或线路出现故障时,该节点能自动地切换到备份网卡进行通信。图1为冗余网络的一种典型联接形式。

基于MPC8260和VxWorks实现快速以太网通信

摩托罗拉MPC8260微处理器芯片因其强大的通信处理能力和多种协议的支持而被广泛应用于通信和网络领域。本文以MPC8260为例,探讨在嵌入式系统中实现基于VxWorks操作系统的快速以太网通信的方法。

基于MPC860和VxWorks的硬件防火墙设计及实现

与传统的PC架构硬件防火墙卡相比,利用MPC860实现的硬件防火墙在系统结构、体积、功耗、成本以及应用上具有很大的优势。

Freescale T4240是何神器?未上市既得VxWorks全力支持

Wind River Simics再次展现其实力,在T4240未上市之前完成全系统模拟。在FTF2012上风河将着重展示Android车载平台、安全技术、虚拟技术以及多核技术。并将展示其完整的产品组合,如可支持iPod的Android车载娱乐系统、调试方案,彰显其技术领导地位

VxWorks下实时多任务程序的实现

随着信息技术的快速发展和应用,计算机的发展正显示出微型化和专业化的趋势。目前,嵌入式系统已得到广泛应用,实时系统在各高精尖技术领域得到迅猛发展,具有实时操作系统的计算机系统也得到了广泛的应用。实时操作系统是嵌入式应用软件的基础和开发平台,它不同于分时操作系统,它的主要任务是对事件进行实时的处理。虽然事件可能在无法预知的时刻到达,但是软件必须在事件发生时在严格的时限内做出响应。在实时操作系统下设计实时多任务程序是实现实时系统的重要一环,本文介绍了VxWorks操作系统的技术特点,给出了一种在VxWorks操