PPC4XX平台下VxWorks嵌入式USB驱动程序开发
VxWorks下USB设备驱动程序设计
VxWorks下USB设备驱动程序设计作者:王浩来源:《电脑知识与技术·学术交流》2008年第24期摘要:介绍了VxWorks下USB驱动的层次结构,分析了USB设备驱动程序开发的一般方法和关键技术。
在此基础上实现了VxWorks下LM9833设备驱动,达到了预期目标。
所给出的VxWorks下USB设备驱动设计的一般步骤为在VxWorks下开发其它USB设备驱动提供了参考。
关键词:VxWorks;USB设备驱动;管道;回调中图分类号:TP316文献标识码:A文章编号:1009-3044(2008)24-1200-04Design of USB Device Driver Based on Real Time Operation System VxWorksWANG Hao(College of Computer, Xidian University, Xi'an 710071, China)Abstract:The architecture of USB dirver based on VxWorks is given, general method and key technology in developing USB device dirver are analyzed.Then the device driver of LM9833 is implemented, expectant performace of target system is achieved. The general process of developing USB device dirver used in this paper can be refered by others USB device driver developing based on VxWorks.Key words: VxWorks; USB device driver; pipe; callback1 VxWorks下USB驱动概述VxWorks是WindRiver公司开发的具有工业领导地位的高性能实时操作系统(Real Time Operation System, RTOS)内核。
基于嵌入式操作系统的VxWorks设备驱动程序设计
基于嵌入式操作系统的VxWorks设备驱动程序设计VxWorks是WindRiver公司开发的一种高性能的嵌入式实时操作系统(RTOS),以其优良的可靠性、开放性、实时性和易用性赢得了大量的客户。
VxWorks是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统,被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。
在目前多数操作系统中,用户必须通过驱动程序才能与设备进行交互,正是设备驱动程序为其提供了可访问性和可操作性,而设备驱动程序本身跟操作系统的相关性特别密切。
本文针对VxWorks操作系统特点,分析设备驱动程序的功能、组成和开发过程,并给出END 网口驱动程序的一个设计实例。
1 嵌入式实时操作系统VxWorks下面首先围绕VxWorks的特点和结构这两个关键问题进行阐述。
1.1 VxWorks的特点1)可靠性操作系统的用户希望在一个工作稳定、可以信赖的环境中工作,所以操作系统的可靠性是用户首先要考虑的问题。
而稳定、可靠一直是VxWorks的一个突出优点。
自从对中国的销售解禁以来,VxWorks以其良好的可靠性在中国赢得了越来越多的用户。
2)实时性实时性是指能够在限定时间内执行完规定的功能并对外部的异步事件做出响应的能力。
实时性的强弱是以完成规定功能和做出响应时间的长短来衡量的。
VxWorks的实时性非常强,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,它们造成的延迟很短。
VxWorks提供的多任务机制中对任务的控制采用了优先级抢占(Preemptive Priority Scheduling)和轮转调度(Round-Robin Scheduling)机制,也充分保证了可靠的实时性,使同样的硬件配置能满足更强的实时性要求,为应用的开发留下更大的余地。
3)可裁减性用户在使用操作系统时,并不是操作系统中的每一个部件都要用到。
PPC4XX平台下VxWorks嵌入式USB驱动程序开发
1 V Wo k B 主 机 驱 动栈 结 构 x rs US
Vx r s US Wok 下 B主 机 驱 动 栈 框 架 结 构 如 图 1 。 图 l中 ,在 栈 的 最底 层 是 US B HC,是 主 系 统 中控 制 每 一 个 U B 的硬 件 部分 。目前 ,市 场 上 主要 S 有 2大 类 US 主 控 制 器 : 一种 是支 持 由 itl 司 B ne 公
/ Re d n a a d s o e a h ie d n t PCI t r e c f l i he c onfgu a i n he de . / i r to a r
图 2 V wok x rs系 统 US 块 设 备 结 构 B
pCf Hdr>v nd I g - e ord pCf H d 一 e c I g r>d vi e d = 0 02 x0 2;
/ B u m be e c s nu r of d vi e
U I T8 d vi e o / D e c n N e cN , vi e um be of r de c / vi e U I T8 f N unc o / N , Fu ton nu be of nc i m r
康 柏 和 国家 半 导 体 公 司联 合 设 计 提 出的 开放 主 控制 器 接 口 ( p nh s c nrl ritrae o e ot o t l efc ,OH I 。笔 oe n C) 者 采 用 的 是 开 放主 控 制 器 接 口, 对 这一 类 型 的 主控 制 器 , 一 个 与硬 件 独 立 的 US 有 B主 控 制 器 驱动 ( ot hs c nrl r r e o t l d i r, H D ), 主 要 代 码 段 在 oe v C
基于VxWorks操作系统的USB驱动分析与实现
收稿日期 ! % # # U ( % # V
)W R ? 4 G S K操 作 系 统 广 泛 应 用 在 国
内通信 & 国防 & 工 业 控 制& 医 疗 设 备 等 嵌 入 式 应 用 领 域# 在 很多 W R ? 4 G S K嵌 入 式 系 统 中 都 是 用 了 @ C + 设 备) 本 文 分析了 @ 将软件设计分为 . C + 主 机 驱 动 协 议 栈# E 9 8 5 L # 关于 @ X G 9 J 8 G @ C + X 和 /. X 三 层# C + X 的典型应用已有
9! 引 ! 言
通用串行总线 ! 是一种计算机外围串行通信接 @ C +" 口标准 # 与常用的计算机接口 ! 如串 口 & 并 口 等" 相比# 具有 热插拔 & 即插即 用 & 数 据 传 输 可 靠& 扩 展 方 便& 低成本等优 点# 作 为 一 种 中 高 速 的 数 据 方 式# 已经很普遍地应用于外 设与主机的通 信 中
图 (!@ C + 主机驱动协议栈结构及各模块之间功能关系图
! "@ % C + X 通过: b ’得到此设备#34;
总 线 与 网 络
冯文江等: 基于 W R? 4 G S K操作系统的 @ C + 驱动分析与实现
嵌入式VxWorks系统下的CPCI设备驱动程序开发
得到设 备基 地 址后 必 须要 完 成设 备 在 Vx Wo rks 中的地址映射, 以便应用程序可以正常的访 问设备[ 3] 。在 V x Works 中有 MM U 管理组件, 该 组件完成 PCI 设备在 Vx Wor ks 系统中的 自动地 址映射。如果系统中只包含了基本的 M MU 功能 时, 系统不会对设备进行自动配置, 这时可以用手 动配置和半自动配置的方法[ 4] 。
设备标识
厂商标识
00h
状态字
命令字
04h
分类代码
修订版本标识 08h
内置自 头标 测试 类型
等待时间 定时器
Cache 行长 0ch
基地址寄存器
10h
Card bus 卡的卡信息结构指针
28h
子系统标识
子系统供应商标识
2ch
扩充 RO M 基地址
30h
保留
34h
保留
38h
最长等待 时间
最短获准 时间
* 收稿日期: 2010 年 8 月 10 日, 修回日期: 2010 年 9 月 20 日 作者简介: 唐力强, 男, 硕士, 工程师, 研究方向: 嵌入式和控制软件开发。
18 4
唐力强等: 嵌入式 Vx Wo rks 系统下的 CP CI 设备驱动程序开发
第 39 卷
行识别和监控。头标区的布局如图 1 所示。
中断引脚
中断线
3ch
图 1 PCI 配置空间头标区
配置空间中的一个重要部分是基地址寄存器 ( BAR) , 它的内容是 PCI 设 备的地址空间 映射到 系统地址空间的起始物理地址, 在初始化 PCI 设备 时, 还可以通过对该地址写和读, 来确定设备需要 的资源大小, 方法是向设备配置空间的基地址寄存 器全写 1( 0x FF FF FF FF ) , 然后再读出 来, 看 有多 少 bit 位变为 0, 就可得到该设备需要的 PCI 内存 空间或 I/ O 空间的 bit 位数。基地址寄存 器通过 寄存器的最低位来标识该空间是存储器空间还是 I/ O 空间, BAR 的 bit0 为 1 表示 I/ O 空间映 射, bit 0 为 0 表示为存储空间映射。
嵌入式VxWorks系统下的CPCI设备驱动程序开发
Ab ta t Fis l ,t ePCI o fg r to p c r h t c u e a d a d e sm a p n r n l z d,a d t e src r ty h n iu a in s a e a c i t r n d r s p i g a ea ay e c e n h n,a c r ig t c o d n o a
数 据 采 集 处 理 系 统 的工 程 实 例 , 细 阐述 了 Vx ok 下 C C 设 备 驱 动 程 序 的开 发 实 现 方 法 和 具 体 步 骤 , 给 出 了 部 分 关 详 W rs P I 并 键 代 码 。应 用 结 果 表 明 , 方 法 可 移 植 性 较 高 , 操 作 性 强 , 于 了 解 和 开 发 C C 驱 动程 序具 有 一 定 的 参 考 价 值 。 该 可 对 PI
和处 理系统 , P C U模 块 是 x 6体 系 结 构 , 统 中的 8 系 几 块数 据 采 集 板 卡 和 信 号 产 生 模 块 都 基 于 C C P I
总线 , 使用 P I0 4接 口芯片作 为 P I C 95 C 总线 和本 地 总线通 信 的介 质 。Vx r s 作 系统 专 门对 P I ok 操 C 设 备提 供支 持 , 包括对 P I C 总线 的底层 操作 函数 。
Ke o ds Vx o k ,C yW r W r s PCI 0 4 e ie d ie ,9 5 ,d v c rv r Cls m b r TP 3 a s Nu e 34
1 引 言
Vx r s Wok 是一 款微 内核 高性 能 可 裁 剪 的嵌 入 式 实时操作 系统 , 以其 卓 越 的实 时性 和 良好 的可 它
基于VxWorks的USB驱动研究与实现的开题报告
基于VxWorks的USB驱动研究与实现的开题报告一、选题背景及研究意义随着计算机技术的不断发展,USB已经成为了现代计算机系统中最重要的输入输出设备之一。
在嵌入式系统中使用USB,特别是在工业控制、医疗器械等领域,具有非常广泛的应用前景。
而作为嵌入式实时操作系统领域的一款经典系统,VxWorks在USB驱动方面也有其独特之处。
因此,研究基于VxWorks的USB驱动实现,对于完善嵌入式系统的功能,提升嵌入式系统的实时性,提高嵌入式设备的稳定性和安全性,具有非常重要的意义。
二、研究内容和目标本研究的主要内容是基于VxWorks实现一个USB驱动程序,具体目标包括:1. 研究USB协议相关知识,选择适合VxWorks使用的USB协议栈2. 分析VxWorks提供的USB相关API函数,确定驱动程序的实现方式3. 实现USB驱动程序,包括数据传输、设备枚举、错误处理等功能4. 进行测试和验证,确保USB驱动程序的稳定性和安全性三、研究方法和步骤1. 文献调研:对USB协议相关知识进行调研和学习,并寻找适合VxWorks使用的USB协议栈。
2. 系统设计:根据USB驱动的功能需求,确定驱动程序的工作流程和实现方式。
分析VxWorks提供的USB相关API函数,选择合适的函数进行实现。
3. 驱动程序实现:根据系统设计,使用C语言编写USB驱动程序。
在实现过程中,需要注意驱动程序与硬件的交互方式以及异步数据传输等问题。
4. 系统测试:对USB驱动程序进行系统测试和性能测试,确保驱动程序的稳定性和安全性。
测试重点包括数据传输速度、兼容性、可靠性等方面。
四、预期成果1. 实现基于VxWorks的USB驱动程序,能够实现数据传输、设备枚举、错误处理等功能。
2. 对驱动程序进行测试和验证,确保驱动程序的稳定性和安全性。
3. 撰写毕业论文和开题报告,总结和展示研究成果和经验。
五、研究难点和挑战1. USB协议复杂,开发难度较大。
VxWorks实时操作系统的USB驱动程序原理与分析
VxWorks实时操作系统的USB驱动程序原理与分析1、问题的提出通用串行总线(USB)作为一种中高速的数据方式,已经很普遍地应用于外设与主机的通信中。
VxWorks是当今十分流行的实时操作系统,在通信、国防、工业控制、医疗设备等嵌入式实时应用领域。
很多VxWorks系统中都有USB设备,可是关于USB的驱动实现并没有相关的资料可以参考,给实际工作带来了难题。
本文通过详细地分析VxWorks下的USB驱动栈,具体提出了其实际应用的方法,为USB在应用VxWorks的嵌入式系统的开发扫清了技术障碍。
2、VxWorks简介VxWorks是WindRiver公司开发的具有工业领导地位的高性能实时操作系统(Real Tim Operation System,RTOS)内核,具有先进的网络功能。
VxWorks的开放式结构和对工业标准的支持,使得开发人员易于设计高效的嵌入式系统,并可以很小的工作量移植到其它不同的处理器上。
作为一种先进的实时操作系统,它具有以下特点:1.可裁剪微内核结构。
2.高效的任务管理:①多任务,具有256个优先级。
②具有优先级排队和循环调度。
③快速的、确定性的上下文切换。
3.灵活的任务间通讯:①三种信号灯:二进制、计数、有优先级继承特性的互斥信号灯。
②消息队列。
③套接字(Socket)。
④共享内存。
⑤信号(Signals)4.微秒级的中断处理。
5.支持POSIX 1003.1b实时扩展标准。
6.支持多种物理介质及标准的、完整的TCPIP网络协议。
7.灵活的引导方式。
支持从ROM、flash、本地盘(软盘或硬盘)或网络引导。
8.支持多处理器并行处理。
9.快速灵活的l/O系统。
10.支持MS-DOS和RT-11文件系统。
11.支持本地盘,flash,CD-ROM 的使用。
12.完全符合ANSI C标准。
13.多个系统调用。
3、USB驱动程序的结构概述图1提供了一个USB主驱动栈结构的简单概括。
VxWorks实时操作系统的USB总线驱动分析与开发
摘要 : 针对 V w0k x rs实时操作 系统 下 U B应 用广泛 , U B驱动 开发 难度 高等 问题 , S 但 S 具体分析 了 V Wo x  ̄s下 U B总线驱 S
动 模 型 的 结构 及 功 能 , 细说 明 了其 U B 驱 动 栈 。 同时 , 此 U B 总 线 驱 动 模 型 的 基 础 上 详 细 介 绍 了 U B字 符 设 备 驱 详 SD 在 S S
r u d y I i e y u eu o e l i g a d d v lp n B di e . o n l . t sv r s f l rr ai n n e eo i g US r r f z v
Ke r s V Wo ; S ; l n d l; B y wo d : x  ̄s U B ci tmo u e US D e
t e US r e d l n Vx  ̄ so e aig s se . e a ay e . h n t e US r e tc s e p an d i eal B s d o h h B d i rmo u e i Wo p r t y t m a n z d T e h BD d i rsa k i x li e n d ti a e n t e v n r l v .
文章编号 :0 0— 8 9 20 )0—05 0 10 8 2 (0 8 1 0 5— 3
I lm e t t n o B Drv r o W o k a — m e Op r t n S se mp e n a i fUS i e n Vx o r s Re lTi e a i y tm o
US d v rm o M e t e USB drv rd v lpme tfrc rc e e ie i nto uc d B r e d , h i i e e eo n o ha a t rd v c s i r d e ,wh c s wst B v n r nse c n s ih ho he US e e tta fr me ha im
嵌入式系统VxWorks串口驱动程序的设计与实现
文章编号 : 1 6 7 4 — 4 5 7 8 ( 2 0 1 3 ) 0 5 — 0 0 6 3 — 0 2
软 件 技 术
嵌 入 式 系统 V x Wo r k s串 口驱 动程 序 的设 计 与 实现
张安 青
( 国营第七 八五 厂 , 山西 太原 0 3 0 0 2 4 )
D r v l n s t a l l ( ) 和i o s D e v A d d ( ) 。i o s D r v l n s t a l l 将设 备 驱 动程序
所 有设备 的操作 与控 制 , 如串 口波特率 的设置 、 停止位 、 校验
位等数据通 讯格式 的设置 。x r p c i D r v ( )用来将 设备 驱动 程
设备列表都是事先存 在设 备相 关信 息的情 况下才 能够 由 0系统访 问, 这 就 需要 依 靠 I / 0 系统 提 供 的两 个 函数 : i o s -
统一的接 口方便 管理 。
驱 动管理的 I / O系统 由设 备 列表 、 文 件描述 符表 、 设 备
驱 动程序表 组成 。V x Wo r k s 可 以为 每一 个 驱动 程序 分 配一 个 索引号 , 以便查找设备 驱动程序。这里 的索引号就是设 备
列 表中的驱 动程 序索 引号。通过 设备 列表所 对应 的设备 即
引查找驱动程序 表 , 从而得到相应 的设备操作 函数入 口。此 外, 对于块设备来说读写操作最后还要通过文件系统读写 人 口函数 。编写设 备驱 动程序 只需编 写 相应设备 的 x r p c i C r e —
a t e() , x r p e i O p e n () , x r p c i D e l e t e( ) , x r p c i C l o s e() ,
vxworks usb 驱动精辟演示(有图)
VxWorks下USB 1.1协议栈与驱动学习笔记(一)协议栈剥离与驱动调试tearing @ /bbs 很多朋友可能还不清楚USB设备客户端驱动以及USB协议栈的相关调试方法。
先借用风河USB文档的图片来看下USB1.1协议栈的层次结构吧。
(栈,多么美好的一个字-。
-)USB HC层:为栈最底层的硬件-USB主控制器(USB Host Controller),实现USB主机功能。
目前,USB控制器主要有3类:¾UHCI,Universal Host Controller Interface通用的主控制器,由Intel最先设计并制定相应规范;¾OHCI,Open Host Controller Interface开放的主控制器,由Microsoft,Compaq和National Semicondtlctor最先设计并制定相应规范;¾EHCI,Enhanced Host Controller Interface增强的主控制器,该控制器支持USB2.0.。
且它是一种为联合设备companion type。
简单来说内部包含了UHCI。
如果有2.0设备接入,则EHCI工作,如果1.1设备接入,则UHCI工作。
例如我的本本里的USB控制器如图所示:电脑常见USB控制器HCD层:每一主控制器在其上都有相对应的主控制器驱动程序(HCD),这些设备驱动程序与底层的硬件相关,为上层提供统一的功能接口。
相应的驱动分别在usbHcdOhciLib.c 和usbHcdUhciLib.c中定义。
USBD层:USB主机驱动(USB Host Driver)与底层硬件无关,通过HCD与底层控制器通信。
USBD管理连接到主机上的每一个USB连接,并提供高层与USB设备通信的通道。
除此之外,USBD还自动对USB设备进行电源管理和分配带宽。
USB CM:在协议栈的最顶层是USB设备驱动程序Client Module。
Vxworks嵌入式操作系统下网络设备驱动程序设计
摘要:本文主要介绍在Vxworks操作系统下网络设备驱动程序设计、调试方法以及将其加入系统内核的配置方法。
关键词:Vxworks 嵌入式操作系统网络设备引言VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。
良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。
它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。
1 嵌入式系统嵌入式系统是以嵌入式计算机为技术核心,面向用户、面向产品、面向应用,软硬件可裁减的,适用于对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。
和通用计算机不同,嵌入式系统是针对具体应用的专用系统,目的就是要把一切变得更简单、更方便、更普遍、更适用;它的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能。
嵌入式系统主要由嵌入式处理器、外围硬件设备、嵌入式操作系统以及特定的应用程序等四部分组成,是集软硬件于一体的可独立工作的“器件”;用于实现对其它设备的控制、监视或管理等功能。
嵌入式系统应具有的特点是:要求高可靠性;在恶劣的环境或突然断电的情况下,要求系统仍然能够正常工作;许多嵌入式应用要求实时处理能力,这就要求嵌入式操作系统(EOS)具有实时处理能力;嵌入式系统中的软件代码要求高质量、高可靠性,一般都固化在只读存储器中或闪存中,也就是说软件要求固态化存储,而不是存储在磁盘等载体中。
2 设备驱动程序Vxworks5.4中驱动程序主要分为三种:字符、块以及网络驱动程序。
本文所介绍的网卡驱动程序则属于网络设备驱动程序。
2.1 网络设备驱动程序设计网络的各功能部件图1所示,网络设备驱动程序实际上是处理硬件和上层协议之间的接口程序。
基于VxWorks系统的USB打印机驱动设计与实现
}
— _
l・ ・ - ・ ・ ・
— _
—
U S B PRN S I O C HAN, p US B PRN SI O C HAN;
—
U I N T 1 6 i r p L e n ; /{ I R P包长度 /
I RP
_
驱 动结 构初 始化 的 主要工 作是 为打 印机 数据结 构 分 配资 源 和 针 对 打 印 机 当前 状 态 初 始 化 数 据 结 构 成 员, 如设 置连 接状 态 、 清空 输 出缓 冲 等 。 3 . 1 . 3 配 置信 息枚举
—
U I N T 1 6 i n t e r f a c e ;/ 打印机接 口值 / U I N T 1 6 p r o t o c o l ; / 打 印机协议码 { / B O O L c o n n e c t e d ; / 打 印机连接状态 / U S B D PI PE HA N D L E o u t P i p e Ha n d l e ; / U S B D 传 输 管道句柄 /
C A I , I R . A C K u s b d C a l l b a c k ; /¥ U S B D 回调 函数 /
I RP
_
C A L L B A C K u s e r C a l l b a c k ; /¥ 用 户回调函数 / U I N T 1 6 l f a g s ; /¥其他 I R P处理选项 ¥ / U I N T 3 2 t i m e o u t ; /}I R P超 时 时 间 / U I N T 1 6 s t a r t F r a m e ; / 发送数据起始帧 /
U I N T 1 6 d e v i c e S u b C l a s s ,/ / 设备子类码
嵌入式VxWorks下基于PCI总线的USB接口主机端设计
US B主 机 端设 备 , 简 化 了 主 处 理 器 与 US B控 制 器 的 交互 。在 V x Wo r k s操 作 系 统 下 进 行 了 U S B 主 机 端 驱 动 的 设 计 和 实现 , 并 通 过 试验 对 U S B 主 机 端 的 功 能 和 读 写 速 率 性 能 参 数 进 行 了测 试 验 证 。 测 试 表 明, 能 够稳 定 地 支持 对 U S B接 口存 储 外 设 的 读 写 访 e r a t i n g s y s t e m .F i n a l l y ,t h e US B h o s t f u n c t i o n a n d t h e s p e e d o f r e a d / w r i t e a r e t e s t e d o n U S B s t o r a g e d e v i c e .T h e r e —
K e y wo r d s:US B h o s t ; P CI b u s; Vx Wo r k s
通 用 串行 总 线 ( U S B) 是 一 种 用 于 连 接 计 算 机 与 外 围
1 USB 接 口 主 机 端 分 析
U S B 总 线 系 统 由 US B主 机 、 U S B外 设 及 U S B互 联 总
s u l t s s ] o w t h a t t h i s d e s i g n c a n s u p p o n r e a d i n g a n d w r i t i n g U S B s t o r a g e p e r i p h e r a l d e v i c e s t e a d i l y .
PPC4XX平台下VxWorks嵌入式USB驱动程序开发
USB 设备
图 2 Vxworks 系统 USB 块设备结构
2.1 驱动基本设置及修改
由于 VxWorks 下 USB 驱动是基于 PCI 总线的, 会使用到 PCI 总线驱动库,而在 PPC460ex 处理器 上 , USB 控 制 器 是 基 于 本 地 总 线 的 , 为 了 借 用 VxWorks 下的 USB 驱动程序,需要修改 PPC460ex bsp 包中 usbPciStub.c 文件和硬件的接口部分。本驱 动是 ohci 的接口,有 2 个函数需要修改:
pCfgHdr->intLine = 1;
pCfgHdr->intPin = 30;
·90·
兵工自动化
第 30 卷
pCfgHdr->minGrant = 0x00;
pCfgHdr->maxLatency = 0x00;
}
else
return;
}
2) STATUS usbPciIntConnect
(
*/
pPCI_CFG_HEADER pCfgHdr /* Buffer
provided by caller */
)
这个函数的主要功能获取 pci 结构设备的头信
息。如果 USB 是 pci 接口的则直接使用这个函数。
如果不是基于 pci 接口的可以直接给 pCfgHdr 赋值。 最主要的就是 USB 设备的基地址和中断号一定要 赋值正确。否则设备无法操作。应用中修改如下:
·88·
兵工自动化 Ordnance Industry Automation
2011-04 30(4)
doi: 10.3969/j.issn.1006-1576.2011.04.029
嵌入式VxWorks下基于PCI总线的USB接口主机端设计
嵌入式VxWorks下基于PCI总线的USB接口主机端设计摘要:分析了USB主机端的层次结构,采用PowerPC8270处理器设计了一种基于PCI总线的USB主机端设备,简化了主处理器与USB控制器的交互。
在VxWorks操作系统下进行了USB 主机端驱动的设计和实现,并通过试验对USB主机端的功能和读写速率性能参数进行了测试验证。
测试表明,能够稳定地支持对USB接口存储外设的读写访问。
关键词: USB主机;PCI 总线;VxWorks通用串行总线(USB)是一种用于连接计算机与外围设备的串行接口标准,具有结构简单、配置灵活、即插即用、支持热插拔、可靠性高、成本低等优点[1]。
USB接口主机端为支持USB 主机协议的计算机系统,在机载计算机领域,USB接口主机端一般为嵌入式的控制设备。
USB 接口主机端在USB总线上占控制地位,可以挂载USB外设,所有的USB接口传输事务由主机端发起,控制整个USB总线工作。
本文提出一种适用于机载计算机领域的USB接口主机端设计,采用PowerPC系列处理器作为USB主机端的控制器,基于PCI总线与USB控制器连接,构成基于PCI总线的USB接口主机端嵌入式设备。
基于VxWorks操作系统完成USB接口主机端的驱动程序设计和开发,实现了一套完整的USB接口主机端软硬件产品。
利用U盘作为USB外设,对所设计的USB接口主机端进行了测试和验证。
结果表明,本文设计的USB接口主机端能够很好地支持与USB外设的USB通信访问和控制。
1 USB接口主机端分析 USB 总线系统由USB主机、USB外设及USB互联总线三部分构成。
USB主机作为USB通信主控设备,主动发起对USB外设的访问、控制及通信操作。
USB总线作为一种标准通信协议,其主机端层次结构[2]。
,USB主机端采用分层结构,其层次包括USB硬件层、USB主机控制器驱动层、USB主机协议驱动层和USB主机应用层,其中USB硬件层功能由硬件USB控制器完成,之上3层由软件完成。
vxworks-usb-mouse-driver分析
Vxworks usb mouse 驱动分析概述:最近在做嵌入式vxworks 下usb 触摸屏设计,参考了vxworks 里面的usb mouse 驱动的代码,分析了usb mouse 驱动,根据自己的理解,写这个文档。
如有任何问题请联系yxj_5421@ ,转载请标明出处。
系统资源:Vxworks6.71、USB 主机驱动栈模型原理USB 主机驱动栈模型下图所示:应用层设备驱动层USB 核心驱动层主机控制器驱动层硬件层1.1硬件层在USB 主机驱动栈的最底部是USB 主控制器(USB HC ,即USB Host Controller)。
目前,USB 主控制器可分为三类:通用型主控制器接口(UHCI)、开放型主控制器接口(OHCI)和增强型主控制接口和增强型主控制接口(EHCI)。
其中,UHCI 和OHCl 支持USBl .1低速接口,EHCl 支持USB2.0高速接口。
1.2主控制器驱动层对予每一类型的主控制器都有一个与硬件独立的USB 主控制器驱动(Host Controller Driver ,简称 HCD)。
WindRiver 提供了两个驱动:usbHedUheiLib (UHCI 主控制器库)和usbHcdohciLib(OHCl 主控制器库)。
该模块向下直接与USB 主控制器硬件进行交互操作,向上与USBD 层的功能接口,提供各种功能函数的调用,支持对上层模块封装具体的HCD 驱动的实现。
1.3 USB核心驱动层USB核心驱动(USB host driver,简称USBD)模块实现USB的核心驱动,包括USB总线的枚举、总线带宽分配、传输控制等操作。
该模块向下调用HCD接口模块,实现与HCD层的通信,将设备驱动的功能请求转化为相应功能模块的调用。
USBD管理每一个与主机相连的USB设备,还负责自动处理USB电力管理和带宽管理及USB hub和设备的动态插拔。
1.4USB设备驱动层USB设备驱动层负责管理连接到USB上的不同类型的设备,它们依靠USBD来提供与每个设备的通信路径,主要实现USB设备的一些特定初始化工作,并将上层用户应用程序的请求转化为对相应的USBD驱动程序的调用。
VxWorks实时操作系统的USB驱动程序原理与分析
VxWorks实时操作系统的USB驱动程序原理与分析
朱泽诚;王兴元;李洁
【期刊名称】《计算机工程与应用》
【年(卷),期】2003(039)022
【摘要】VxWorks是一种由WindRiver公司开发的先进的实时操作系统,广泛地应用于各种嵌入式实时应用领域.论文是作者实践的结果.首先在简单介绍了VxWorks这种先进的实时操作系统后,具体地分析了VxWorks下的USB驱动程序模型的结构以及功能,详细地说明了其USBD驱动栈.同时,按照USB事件的调用过程,列出了相关的操作函数,并给出了其相应的调用方法.论文侧重于分析USB协议栈的内核,在此基础上完全可以实现一个稳定的USB驱动程序.
【总页数】4页(P122-125)
【作者】朱泽诚;王兴元;李洁
【作者单位】上海六合路98号港陆黄浦中心14层,上海,200001;大连理工大学信息学院,大连,116001;东北大学信息学院生物医学工程实验室,沈阳,110004
【正文语种】中文
【中图分类】TP316.2
【相关文献】
1.VxWorks实时操作系统的USB总线驱动分析与开发 [J], 皇甫祯;陈怀民;段晓军;吴成富
2.实时操作系统VxWorks环境下CAN控制器驱动程序的设计 [J], 谢火明;唐涛
3.基于VxWorks操作系统的HID类USB驱动程序分析与实现 [J], 常明志
4.嵌入式实时操作系统Vxworks串口驱动程序的设计与实现 [J], 徐伟;鞠晓东
5.实时操作系统VxWorks下驱动程序的设计 [J], 周雪峰
因版权原因,仅展示原文概要,查看原文内容请购买。
基于嵌入式操作系统的USB设备驱动程序的开发的开题报告
基于嵌入式操作系统的USB设备驱动程序的开发的开题报告一、课题的背景及研究意义随着计算机技术的不断发展,USB接口已经成为了现代计算机主机和外部设备之间的主要接口标准。
USB设备驱动程序作为一种连接计算机主机和外部设备的软件程序,对于USB设备的操作和管理起着至关重要的作用。
为了满足不同应用环境下的设备操作需求,基于嵌入式操作系统的USB设备驱动程序逐渐成为了研究的热点领域。
本课题旨在基于嵌入式操作系统,探索开发适用于USB设备的驱动程序,具体研究内容包括:USB设备驱动程序的开发原理、功能实现和优化方法,为嵌入式设备的USB接口开发提供参考框架,具有重要的研究和应用价值。
二、研究内容1. USB设备驱动程序的开发原理:介绍USB设备的工作原理、USB 标准和驱动模型,阐述USB设备驱动程序的基本功能和架构原理。
2. USB设备驱动程序的功能实现:针对常见的USB设备类型(如打印机、扫描仪、音频设备等),分别设计和实现相应的USB设备驱动程序,包括设备识别、数据传输、数据处理等功能,以及与操作系统的接口。
3. USB设备驱动程序的优化方法:提出USB设备驱动程序优化的思路和方法,包括代码优化、内存管理、任务管理等方面,以提高驱动程序的性能和效率。
三、研究方法本课题采用的主要研究方法包括文献调研、理论研究、实验研究和分析比较等方法。
通过对现有的USB设备驱动程序开发经验和相关理论知识的研究,结合实际场景进行实验和模拟分析,以确定USB设备驱动程序的最优实现方案,并进一步提出优化思路和方法。
四、预期成果本课题的预期成果包括:1. 基于嵌入式操作系统的USB设备驱动程序的开发技术文档;2. 针对常见USB设备类型的驱动程序实现代码;3. USB设备驱动程序优化的方法总结及效果评估报告。
五、研究进度安排1. 第一阶段(一个月)开展相关文献调研,了解USB设备驱动程序开发原理和优化方法,确定研究方向和研究内容。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
pCfgHdr->intLine = 1;
pCfgHdr->intPin = 30;
·90·
兵工自动化
第 30 卷
pCfgHdr->minGrant = 0x00;
pCfgHdr->maxLatency = 0x00;
}
else
return;
}
2) STATUS usbPciIntConnect
(
USB Client Module (例如 USB Class Driver)
USB Host Driver (USBD)
USBD 接口
USB Host Controller Driver (HCDr)
USB Host Controller (USB HC)
USBD/HCD 接口
软件 硬件
图 1 USB 主机驱动栈框架结构
PPC4XX Platform Embedded VxWorks USB Driver Development
Mei Yong, Guan Qin (Dept. of Military Electronic, No. 58 Research Institute of China Ordnance Industries, Mianyang 621000, China)
pPCI_CFG_HEADER pCfgHdr
/* Buffer provided by caller */
)
{
/* Do nothing if CfgHdr is NULL */
int i;
if(busNo==0&& deviceNo==1&& funcNo==0)
{
if (pCfgHdr == NULL)
Keywords: VxWorks; universal serial bus; USB interface
0 引言
VxWorks 操作系统是美国 windRiver(风河)公 司推出的一种嵌入式实时操作系统,以其高性能、 高可靠性、高实时性等特点,成为实时操作系统中 最 具 特 色 的 系 统 之 一 。 通 用 串 行 总 线 ( universal serial bus,USB)是一种计算机外围串行通信接口 标准,它克服了传统计算机串、并口的缺陷,具有 热插拔、即插即用、数据传输可靠、扩展方便、低 成本等优势,已成为当前计算机系统必备的接口之 一,也被广泛应用于嵌入式操作系统中。
梅勇,等:PPC4XX 平台下 VxWorks 嵌入式 USB 驱动程序开发
·89·
类协议的移动存储设备。U 盘的数据传输是按 USB 大 容 量 存 储 设 备 类 规 范 的 子 规 范 CBI (control/bulk/interrupt)传输协议或 bulk-only 传输 协议进行的。批量传输用于大容量的数据传输,没 有固定的传输速率,不占用固定带宽,因此,笔者 使用的大容量存储设备 U 盘采用 bulk-only 传输协 议 , 在 VxWorks 下 提 供 usbBulkDevLib.c, 实 现 Bulk-only 类设备驱动。
6) operation system components->IO system components->dosFs FileSystem Components
其中,组件 1)、2)主要是 HCD 和 usbd 的初始 化。HCD 具有唯一的执行入口点,对 HCD 发出的 所 有 请 求 都 是 通 过 把 数 据 结 构 主 机 请 求 块 ( host request blocks,hrb)传递给 HCD 执行入口点,使 相关请求得到处理。HCD 要能对 USB 根 hub 进行 枚举,即能解释到达根 hub 的传输请求并对它做出 回应。HCD 负责识别主机发送的各种请求并对他们 做出回应。Usbd 主要功能是完成 USB 主机栈对 ohci 型 usb 主控制器的挂载。Ohci 型主控制器被挂载时, HCD 创建的任务“tOhciInt”监视主机控制器事件 的发生。这个任务处于休眠状态,不占用 CPU 时间。
4) hardware->peripherals->USBDevices->USB DeviceInit->Bulk Mass Storage Init
5) operation system componenets->IO system components(libc)->File System and Disk Utilities
USB 设备
图 2 Vxworks 系统 USB 块设备结构
2.1 驱动基本设置及修改
由于 VxWorks 下 USB 驱动是基于 PCI 总线的, 会使用到 PCI 总线驱动库,而在 PPC460ex 处理器 上 , USB 控 制 器 是 基 于 本 地 总 线 的 , 为 了 借 用 VxWorks 下的 USB 驱动程序,需要修改 PPC460ex bsp 包中 usbPciStub.c 文件和硬件的接口部分。本驱 动是 ohci 的接口,有 2 个函数需要修改:
VOID usbPciConfigHeaderGet
(
UINT8 busNo, /* Bus number of device
*/
UINT8 deviceNo, /* Device number of
device */
UINT8 funcNo, /* Function number of
device */
0x0011;
pCfgHdr->deviceId = 0x0022;
pCfgHdr->command =
0xff;//usbPciWordGet (busNo, deviceNo, funcNo,
PCI_CFG_COMMAND);
pCfgHdr->status = 0xff;
pCfgHdr->revisionId = 0x00;
2.2 VxWorks 组件的选择
选择如下组件:
1) hardware->buses->USB Hosts->OHCI
2)
hardware->buses->USBHosts->USBHost
Init->OHCI Init 和 USB Host rals->USBDevices->Mass Storage-Bulk
VOIDFUNCPTR func, /* new interrupt handler
*/
VOID * param, /* parameter for int handler
*/
UINT16 intNo
/* interrupt vector number
*/
)
该函数的主要功能是将中断号连接到中断向量
表。由于它是通过 PCI 总线库获取对应的中断号,因 此其中的中断号也需要按照硬件手册的说明直接赋 值而不是通过 PCI 库直接获取,否则中断无法使用。
1 VxWorks USB 主机驱动栈结构
VxWorks 下 USB 主机驱动栈框架结构如图 1。 图 1 中,在栈的最底层是 USB HC,是主系统 中控制每一个 USB 的硬件部分。目前,市场上主要 有 2 大类 USB 主控制器:一种是支持由 intel 公司
最 先 提 出 的 通 用 主 控 制 器 接 口 ( universal host controller interface,UHCI);另一种是支持由微软、 康柏和国家半导体公司联合设计提出的开放主控制 器接口(open host controller interface,OHCI)。笔 者采用的是开放主控制器接口,对这一类型的主控 制器,有一个与硬件独立的 USB 主控制器驱动(host controller driver , HCD ), 主 要 代 码 段 在 usbHcdOhciLib.c 中。USB 主驱动(USB host driver, USBD)和 HCD 之间的接口允许一个或超过一个的 底层控制器。
*/
pPCI_CFG_HEADER pCfgHdr /* Buffer
provided by caller */
)
这个函数的主要功能获取 pci 结构设备的头信
息。如果 USB 是 pci 接口的则直接使用这个函数。
如果不是基于 pci 接口的可以直接给 pCfgHdr 赋值。 最主要的就是 USB 设备的基地址和中断号一定要 赋值正确。否则设备无法操作。应用中修改如下:
Abstract: Based on VxWorks operating systems high performance, high reliability, and real-time characteristics, develop ppc4xx platform VxWorks embedded USB driver. On the basis of introducing VxWorks USB, put forward key steps in the development processes. The results show that the method is easy to operate, and provides a reference for the related personnel.
笔者开发 PPC4XX 平台下 VxWorks 嵌入式 USB 驱动程序。采用的软件平台是 VxWorks 操作系统, 编译软件为 Tornado Version2.2,硬件使用 PowerPC 构架,CPU 芯片型号为 PPC460ex(简称 PPC460 主板)。PPC460 主板的主频为 1 000 M,其功能接 口为 2 个 KM 网口,1 个 USB 接口,2 个串口和 1 个 VGA(video graphics array)接口。