VxWorks下MPC8280网络驱动的开发

周文, 张日飞, 蒋秀波, 蔡志鹏 (北方自动控制技术研究所, 太原 030006)

摘要: 介绍了一种在Wind River Workbench 3.0的开发环境下开发MPC8280芯片网络驱动的方法。 首先简要介绍了嵌入式操作系统VxWorks的网络体系的架构,而后介绍了END开发的流程,重点落在了对END开发的核心内容和方法的介绍上。按此方法所开发的END经验证可以驱动相应的硬件使其正常工作,本开发方法较为简便,具有实用价值。

关键词: 嵌入式系统,网络栈,风河,增强型网络驱动

Exploitation of MPC8280 Network Device Driver Based on VxWorks

ZHOU Wen, ZHANG Ri fei, JIANG Xiu bo, CAI Zhipeng (North Automatic Control Technology Institute, Taiyuan 030006,China)

Abstract: A method in which the END is designed in Wind River Workbench3.0 is introduced in this paper.

At first, the structure of the embedded OS VxWorks’s network system is introduced briefly; then the process of END development is discussed; finally, the key point of this paper is the content and the way of END development. The END introduced here has been tested to be able to drive hardware successfully, and the method introduced here is simple and valuable.

Key words: embedded system, network stack, wind river, END

Files:
Date 2018-08-01
File Size 523.01 KB
Download 657

TQ3358, TI ARM Cortex-A8

产品名称:TQ335XBv2开发平台

品牌: 天嵌

CPU型号: TI 335X

架构: Cortex_A8

主频: 1GHz

内存: 512MB DDR3

存储: 1GB SLC Nandflash

核心板参数

TQ335X_COREB核心板主要由MPU(AM335xBZCZA100)、内存(DDR3,512MB)、NandFlash,RTC及其它外围电路组成。核心板使用引出功能最多的ZCZ封装的MPU,并引出了AM335x芯片的所有功能,留有各种应用的接口于底板上,满足学习或者是产品开发的所有要求。部分端口多达7种功能复用,可通过对端口资源的灵活配置,匹配不同的接口底板,快速实现产品的多样化。

类别 参数
核心板尺寸 50x41mm
核心板层数 PCB采用6层沉金工艺,布局、布线充分考虑EMC、EMI
核心板引脚数 160pin,采用B2B高速接口
CPU TI AM335X ARM Cortex A8
主频 最高1GHz
内存 512MB,DDR3 512Mx1pcs
Nandflash 1GB Nandflash
核心板工作功耗 5伏 300毫安
工作温度 -40℃~80℃

软件参数

天嵌科技在原生的 u-boot 中添加了 SD 卡的驱动,完善了 Nand Flash 的 ECC 校验,让 Nand Flash 的读写更加安全,添加了 FAT32 协议的驱动,实现了开机自动烧写镜像, SD 卡烧写支持大于内存容量的文件系统的烧写,完善了环境变量的保存方式。

VxWorks BSP

经过反复调试和验证,VxWorks 终于可以在TQ3358上顺利运行,带图形功能,下面是BSP源码:

摘要: 本文讨论了嵌入式实时操作系统VxWorks的I/O系统及驱动程序实现的原理, 并根据PMC FPGA转接卡的开发, 详细分析了VxWorks下PCI9030设备驱动程序的实现过程及相关代码。同时就该驱动程序对系统性能及实时性的提高作了必要的分析和讨论。

关键词: VxWorks, I/O系统, PMC-FPGA, PCI9030

随着通信技术、计算机技术的飞速发展, 嵌入式实时操作系统越来越广泛地应用到无线通信、交通、工业控制、军事、航空航天、卫星通信等各个领域。由于这些领域对实时性、可靠性要求很高, 从而使得实时操作系统迅速发展起来。其中VxWorks 是目前公认的最出色的一种实时操作系统。VxWorks 具有可裁减的微内核; 高效的任务管理; 优先级抢占和时间片轮转调度; 准确的上下文切换; 快速灵活的任务间通信等优点。

它已成为实际的嵌入式实时操作系统的工业标准和军用标准[1]。嵌入式系统特别强调“量身定做”的原则, 基于某一种特殊用途, 可以针对这项用途开发出截然不同的一项系统,这就是所谓的客制化[2]。通常需要根据系统的功能、成本、尺寸及用户需求等方面来定制合适的硬件系统, 这就要求用户开发自己的硬件驱动程序。驱动程序的开发是系统开发的重要组成部分, 其性能、实时性、可靠性、指令的简练性关系着应用系统的性能和可靠性, 所以驱动程序的开发显得至关重要。

本文针对以PCI9030 为接口控制芯片的PMC - FPGA(PCI Mezzanine Card)转接卡的开发, 论述了VxWorks下设备驱动程序结构及PMC- FPGA 板卡驱动程序的实现。

1 VxWorks下I/O系统及驱动程序

1.1 I/O系统简介

VxWorks下I/O系统为各种设备提供一个简单、统一、独立的设备接口, VxWorks下I/O系统的独特设计使其比其他I/O系统更快、更灵活。这是实时系统的一个重要特征。[3]I/O系统的功能是将用户的I/O请求路由到合适的驱动程序中的对应函数。它通过一个文件描述符表来实现这一功能。VxWorks设备驱动程序基本上通过I/O系统进行访问, 设备驱动程序被作为内核过程来实现, 进一步提高了系统的实时性。I/O系统把设备作为特殊文件进行处理, 提供了统一的管理、统一的界面和统一的使用方法, 并把设备、文件、网络通信组织成为一致的层次抽象。图1描述了I/O系统与驱动程序间的层次关系。

VxWorks IO System

VxWorks下I/O系统中三个主要的元素是: 驱动程序、设备和文件[3]。文件是用户访问设备的统一接口; 驱动程序是实现I/O 系统所需的七个具体基本函数; 设备是实际物理设备的抽象定义。

1.2 驱动程序的执行逻辑VxWorks下I/O系统提供七个基本的I/O函数:

MIC-3612是一款4端口RS-232/422/485 PCI 通信卡。它和PCI 2.1 bus规格兼容。MIC-3612提供4个过电压保护,RS-232/422/485端口满足用户需要。它有许多特色功能:高传输速度921.6 Kbps;4个独立的RS-232/422/485端口;可选的过电压保护等等。MIC-3612还带有高性能的128节 FIFO 16PCI954 UART以减少CPU的负荷。

PCI UART RS232 MIC-3612

特点

符合 PCI 2.1 规格

通讯速度可达 921.6 Kbps

4 端口 RS-232/422/485浪涌保护

128 字节标准的 16C954 UART

标准工业 CompactPCI® 3U 板尺寸

I/O 地址由 PCI 即插即用功能自动分配

OS 支持: Windows® 98/2000/XP, Linux, VxWorks

提高系统性能的中断状态寄存器

自动 RS-485 数据流控制

Tx/Rx LED 指示灯

规格

通讯 总线控制器: PLX9030

控制器UART: 16C954

数据位 5, 6, 7, 8

数据信号 TxD, RxD, RTS, CTS, DTR,DSR, DCD, RI, GND(用于 RS-232)

TxD, RxD, RTS, CTS(用于 RS-422)

DATA+, DATA- (用于 RS-485)

IRQ 所有端口使用由 PCI 即插即用功能分配的同一个 IRQ

校验 无校验,偶校验,奇校验

速率 (bps) 50 ~ 921.6 k

停止位 1, 1.5, 2

一般规格

PICMG 符合性 CompactPCI V2.0, R 3.0热插拔 V2.1, R 2.0

总线类型 CompactPCI V2.1

I/O 接口 DB 44孔型接口

尺寸(L x H) 160 x 100 mm (6.3" x 3.9"),带 3U/6U 把手

环境参数

工作温度 0 ~ 70° C (IEC68-2-1, 2)

储存温度 -20 ~ 80° C

工作湿度 5 ~ 95% RH, 无凝结 (IEC68-2-1, 2)

查看源码

1、问题的提出

通用串行总线(USB)作为一种中高速的数据方式,已经很普遍地应用于外设与主机的通信中。VxWorks是当今十分流行的实时操作系统,在通信、国防、工业控制、医疗设备等嵌入式实时应用领域。很多VxWorks系统中都有USB设备,可是关于USB的驱动实现并没有相关的资料可以参考,给实际工作带来了难题。本文通过详细地分析VxWorks下的USB驱动栈,具体提出了其实际应用的方法,为USB在应用VxWorks的嵌入式系统的开发扫清了技术障碍。

2、VxWorks简介

VxWorks是WindRiver公司开发的具有工业领导地位的高性能实时操作系统(Real Tim Operation System,RTOS)内核,具有先进的网络功能。VxWorks的开放式结构和对工业标准的支持,使得开发人员易于设计高效的嵌入式系统,并可以很小的工作量移植到其它不同的处理器上。

作为一种先进的实时操作系统,它具有以下特点:

  • 可裁剪微内核结构
  • 高效的任务管理
  1. 多任务,具有256个优先级
  2. 具有优先级排队和循环调度
  3. 快速的、确定性的上下文切换
  • 灵活的任务间通讯
  1. 三种信号灯:二进制、计数、有优先级继承特性的互斥信号灯
  2. 消息队列
  3. 套接字(Socket)
  4. 共享内存
  5. 信号(Signals)
  • 微秒级的中断处理
  • 支持POSIX 1003.1b实时扩展标准
  • 支持多种物理介质及标准的、完整的TCPIP网络协议
  • 灵活的引导方式。支持从ROM、flash、本地盘(软盘或硬盘)或网络引导
  • 支持多处理器并行处理
  • 快速灵活的l/O系统
  • 支持MS-DOS和RT-11文件系统
  • 支持本地盘,flash,CD-ROM 的使用
  • 完全符合ANSI C标准
  • 多个系统调用

3、USB驱动程序的结构概述

图1提供了一个USB主驱动栈结构的简单概括