(机械制造及其自动化专业论文)wincenet系统下usb总线客户端设备驱动程序的研究与开发.pdf_第1页
(机械制造及其自动化专业论文)wincenet系统下usb总线客户端设备驱动程序的研究与开发.pdf_第2页
(机械制造及其自动化专业论文)wincenet系统下usb总线客户端设备驱动程序的研究与开发.pdf_第3页
(机械制造及其自动化专业论文)wincenet系统下usb总线客户端设备驱动程序的研究与开发.pdf_第4页
(机械制造及其自动化专业论文)wincenet系统下usb总线客户端设备驱动程序的研究与开发.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

(机械制造及其自动化专业论文)wincenet系统下usb总线客户端设备驱动程序的研究与开发.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

捅要 捅要 本课题所涉及的研究方向是探索在w i n c e n e t 嵌入式系统下进行u s b 总线设 备客户端驱动程序开发相关原理。课题来源于北京首科集团凯奇电气有限公司以 w i n c e n e t 系统为新型数控设备主机系统的研究开发中的一个分支应用方向。u s b 总线已经成为微机与功能繁多的外部设备连接的重要标准手段,所以以 w i n c e n e t 为系统的数控主机具备对u s b 总线的支持将能连接更多的具有u s b 总 线接口形式的功能设备,扩大产品的应用领域,成为该产品的一个突出竞争优势。 因此本课题的研究内容具有很大的理论意义以及实际应用价值。 在研究过程中,由于在嵌入式系统下开发u s b 总线驱动的相关成果资料较 少,本课题横向类比了相关领域如w i n d o w s ,l i n u x 等系统下u s b 总线设备驱动 程序开发的各类成熟和较成熟思想,结合与w i n c e n e t 系统开发相关的各种中英 文资料,分析该系统自带的各种驱动源代码示例,从而提出以流驱动模式为策略 的框架下具体开发该类总线设备驱动程序的流程,总结如下: ( 1 ) u s b 总线体系与其它传统的串行总线不同,其主机端和设备端是一个互相 联系的有机整体,功能设备的制作需要遵循同一的设备类规范,从而设备驱动程 序要以该规范所制定的u s b 总线设备特征和协议内容为基础进行开发。 ( 2 ) 分析w i n c e n e t 系统对于u s b 总线的支持程度,提出并阐述了u s b 总线客 户端驱动程序开发策略,并根据该策略开发出u s b 总线实验设备的驱动程序,这 是本课题的主体部分。由于针对的应用领域不同,相对于成熟的如w i n d o w s ,l i n u x 等大型操作系统,w i n c e n e t 嵌入式系统中设备驱动程序开发机制较为精简,可 以根据不同的功能设备灵活的实现二者的通信。本文所总结的驱动开发策略是流 驱动的形式,可以运用于产生流式数据的设备或者与这种方式相关相近的设备驱 动程序开发中。 ( 3 ) 分析出系统协议栈与u s b 总线设备的配置交互过程以及设备驱动程序与 设备对应接口的匹配过程。这两大过程的分析结果是本课题的重要成果之一,可 以作为一般性原理适用于所有u s b 总线设备。在设备驱动程序能够控制设备之前 必须经过协议六种状态阶段主机才能配置好设备,并且只有通过协议后续的指定 设备功能接口和设备驱动程序匹配过程,主机才能控制目标设备。 关键词u s b 总线客户端驱动程序;w i n c e n e t 嵌入式操作系统;流驱动架构 u s b 总线设备配置交互过程;匹配注册表过程 北京工业大学工学硕士学位论文 i i a b s tr a o t t h ed i r e c t i o no ft h er e s e a r c hi nt h i sp a p e ri s t os t u d yt h er e l a t e d t h e o r yi nd e v e l o p i n gu s bb u sd r i v e r si nw i n c e n e te m b e d d e do sa n dt h i s i t e mc o m e sf r o mo n eo ft h e 卸口l i c a t i o n si nt h ei n d u s t r i a lc o n t r o l l e rf i e l d s t u d y i n gb yb e i j i n gs h o u k ec a t c he c l e t r o n i c sc o r p u s bb u si st h em o s t i m p o r t a n ts t a n d a r dc o n n e c t i o nm e t h o db e t w e e nt h ec o m p u t e r sa n dt h e m u l t i f a r i o u sf u n c t i o n a ld e v i c ep r o d u c t s s ot h ea b i l i t vt os u p p o r tu s bb u s o ft h ei n d u s t r i a lc o n t r o l l e rw i t hw i n c e n e ti sas oo u t s t a n d i n ga d v a n t a g e t h a tt h e yc a nh a v em o r ec h o i c e st oc o n n e c tu s bb u sf u n c t i o n a l d e v i c e s c o n s e q u e n t l y ,t h i st e c h n i q u e i so fa c a d e m i ca n d a p p l i c a t i o n s i g n i f i c a n c e d u r i n gt h ep e r i o do ft h er e s e a r c h ,s i n c et h ep r o d u c ta b o u tt h i sj u n c t u r e i sr e l a t i v e l yf e w ,t h ep a p e rm a d ea n a l o g i e sd u r i n gd e v e l o p i n gu s bd e v i c e d r i v e rb e t w e e nw i n c e n e ta n dt h ei n t e r r e l a t e do ss u c ha sw i n d o w s l i n u x e t c a n dt h e ns t u d i e dt h eo n l i n ee n g l i s ha n do t h e rr e l a t e dd o c u m e n t sw h i l e a n a l y z i n gs o r t so fs o u r c ec o d e so fd r i v e r si nt h eo s ,b a s e do nw h i c h ,t h e p a p e rf o u n dt h em e t h o dt od e v e l o pu s bb u sd e v i c ed r i v e ru n d e rt h es t r e a m i n t e r f a c es t r a t e g y t h em a i nr e s u l t sa r et h ef o l l o w i n g : ( 1 ) u s bb u ss y s t e md i f f e r sf r o mo t h e rc o n v e n t i o n a ls e r i a lb u si nt h a t i t sh o s ta n dd e v i c ea r ea no r g a n i cu n i t a n dt h ef u n c t i o n a ld e v i c ei sm a d e w i t ht h ea p p o i n t e dd e v i c ec l a s sd e f i n i t i o n ,s ot h ed e v i c ed r i v e rs h o u l d b ed e v e l o p e da c c o r d i n gt ot h ed e v i c ed e f i n i t i o na n dt h ep r o t o c 0 1 ( 2 ) a f t e ra n a l y z i n gt h ea b i l i t yo fw i n c e n e tt os u p p o r tt ou s bb u s ,t h e p a p e rp u t sf o r w a r dav i a b l es t r a t e g yt od e v e l o pu s bb u sd e v i c ed r i v e ra n d i m p l e m e n tar e a ld r i v e ra c c o r d i n gt oi t s i n c et h ea p p l i c a t i o na r e a sa r e d i f f e r e n t ,i nc o n t r a s t w i t ho ss u c ha sw i n d o w s ,l i n u xe t c ,t h ed r i v e r d e v e i o p m e n tm e c h a n i s mo ft h ee m b e d d e do si ss i m p l e rt h a nt h e ma n dw ec a r l ,i n f a c t ,d e v e l o pt h ed e v i c ed r i v e r sa c c o r d i n gt ot h ea c t u a lc o n d i t i o n sw i t h f l e x i b l ew a y s t h es t r a t e g yi s s u e db yt h i sp a p e ri s “s t r e a mi n t e r f a c e d r i v e r s ”,w h i c hc a nb eu s e da sau s u a ld e v e l o p i n gm e t h o do nt h eu s bb u s d e v i c e so fs t r e a md a t aa n dt y p e r e l a t e d ( 3 ) t oa n a l y s et h ec o n f i g u r a t i o np r o c e s sb e t w e e no sp r o t o c o ld r i v e ra n d u s bb u sd e v i c ea n dt h em a t c h i n gp r o c e s sb e t w e e nd r i v e ra n dt h ec o r r e s p o n d d e v i c ef u n c t i o ni n t e r f a c e t h e ya r e 。o n eo ft h em o s ti m p o r t a n ta n dc r e a t i v e p r o d u c t si nt h i sp a p e ra n dc a nh a v ee f f e c t so na l l t h eu s bb u sd e v i c e s a s ag e n e r a lr u l e b e f o r et h ed e v i c ed r i v e rc a nc o n t r o lt h ed e v i c e ,t h e d e v i c em u s tp a s ss i xp r o t o c o lp h a s e sd u r i n gc o n f i g u r a t i o np r o c e s sa n d a f t e rt h a t ,w h e nt h ed e v i c ed r i v e ri sm a t c h e db y p r o t o c o lw i t ht h e c o r r e s p o n d i n gd e v i c e ,t h eh o s tc a nc o n t r o lt h er e a lt a r g e td e v i c e k e y w o r d s u s bb u sc l i e n td e v i c e d r i v e r ;w i n c e n e te m b e d d e do p e r a t i n g s y s t e m ;s t r e a mi n t e r f a c ed r i v e r s s t r a t e g y :c o n f i g u r a t i o n p r o c e s s :m a t h c h i n gt h er e g is t r yp r o c e s s i i 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他 人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构 的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均 已在论文中作了明确的说明并表示了谢意。 虢辑隅上 关于论文使用授权的说明 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 签名:驾i 生璋导师虢庄趣蹶! ! :茎 1 1 课题背景 第1 章绪论 由嵌入式系统所控制的嵌入式产品越来越普及的应用到人们的日常生活中, 与我们的生活息息相关。大到航空航天领域和工厂流水线,工业机器人,小到手 机、m p 3 、掌上通,日常生活中的扫描仪,数码相机,触摸屏,机顶盒,银行a t m 等等各种形态的产品极大满足了人们的日常需求。由多媒体信息构成的家庭小型 网络、未来数字家庭、汽车电子、平板电视和信息安全将成为未来嵌入式应用的 主要领域“。3 c ( c o m p u t e r ,c o m m u n i c a t i o n ,c o n s u m e r ) 与3 g 都将为嵌入式系统 在消费电子领域提供更多商机。1 。所以嵌入式应用领域市场是具有相当大的深度 和广度的,有着无比广阔的市场需求和发展前景。 本课题以嵌入式系统应用为背景,在工业领域中以嵌入式系统为主机端平台 进行u s b 总线设备驱动程序的开发研究工作。嵌入式系统是相对于常见的个人 p c 和专用的大型、小型机系统而言的,是一种应用广泛的系统软件。通常所说 的嵌入式系统( e m b e d d e ds y s t e m s ) 的含义为:以具体的产品为形态,以计算机技 术为基础,软件硬件可裁剪,适应应用系统具体需求,对功能、可靠性、成本、 体积、功耗严格要求的专用计算机系统”1 。从八十年代末开始,陆续出现了一些 嵌入式操作系统,比较著名的有v x w o r k 、p s o s 、n e c u l e u s 和w i n d o w sc e ,嵌入 式l i n u x 等“1 。w i n c e n e t 是微软公司推出的一种嵌入式操作系统,主要是面对 低端的智能化移动电子设备如通信设备、消费类电子产品、嵌入式应用等非p c 领域。w i n c e n e t 包含大量的新增特性和改进特性,如蓝牙( b h e t o o t h ) 和8 0 2 il 零配置设定等无线技术;设备仿真特性可以对完整的设备环境进行仿真而无需任 何额外的硬件投资;可以利用平台向导特性从众多的预置设备设计中进行选择; 丰富的多媒体和w e b 浏览功能以及强大的联网能力,强劲的实时性和小内存体积 占用使得w i n d o w s c e n e t 成为各个不同领域嵌入式操作系统的首选”1 。此外由于 w i n c e ,n e t 系统的开发环境及流程与桌面操作系统w i n d o w s 有很多的相似性,因 此受到广大从事嵌入式领域开发的程序员的欢迎。 工业控制领域是嵌入式系统的传统应用领域,也是嵌入式市场需求较多,增 长较快的市场。在桌面p c 系统正在向多媒体、通信及大容量存储等高端应用的 领域发展的时候,源于二者的应用需求不同,工控领域的嵌入式系统设计者需要 的是小尺寸和低功耗以及软件与桌面p c 兼容这样的特性。工业控制操作系统需 要严格的实时处理功能,高可靠性,良好的开放性,对人机界面、开发环境、可 操作性、成本等也有特别的要求。鉴于此,嵌入式市场将遵循它特定的发展方 向。工业控制领域正在开始从微型控制器向嵌入式p c 转变。两u s b 总线是由 i n t e l 、m i c r o s o f t 、c o m p a q 、n e c 等几家大型的计算机软硬件厂商联合推出的新 型的计算机外围设备串行通信接口标准。短短的十几年中,u s b 总线已经成为微 机外设连接的重要标准手段,其技术得到了广泛的应用。随着u s 8 设备的普及, 特别是对于一些嵌入式开发厂商来讲,由于设备所采用的操作系统不同,相应的 硬件接口也不一样,嵌入式开发人员的驱动程序开发任务也变得越来越繁重。能 够支持已有的各种u s b 总线功能设备,将扩大嵌入式产品的应用领域和不同的市 场需求“1 ,因此开发相关操作系统的u s b 总线设备驱动程序具有很大的实际意义。 1 2 课题来源以及研究的主要内容 本课题来源于北京首科集团凯奇数控设备成套有限公司“新型数控设备平台 的研究开发”整体战略研发项目中的子项目“基于w i n c e n e t 新型数控平台下 u s b 总线设备驱动程序开发的研究”。结合工控领域的最新技术趋势,凯奇公司 力求在成套数控设备领域的软体及硬体方向都有独立的核心技术。在以 w i n c e n e t 嵌入式操作系统为新型数控系统平台的战略前提下,围绕该战略的相 关领域研究也具有重要的作用,因此选择在计算机相关领域中外部功能设备应用 广泛的u s b 总线作为研究方向。该课题要求研究分析u s b 通用串行总线协议的基 本原理以及如何在该嵌入式系统下开发u s b 总线设备客户端驱动程序原理,并提 出一定可行的实施方案。 1 3 课题研究的理论与实际意义 凯奇公司长期专注于工业控制领域中体现综合科研及生产能力的成套数控 设备方向的研究开发,积累了丰富的数控平台开发经验。选择w i n c e n e t 系统作 为工控主机系统,既是对主流技术的一种探索,也是未来数控成套设备的一个鲜 明的技术吸引点。在个人p c 领域将u s b 接口集成在主板m a i n b o a r d 上已经成 为一种标准,u s b 总线是近十几年来应用非常广泛的计算机外部设备接口标准。 嵌入式应用的开发需求是多种多样的,针对不同的功能应用领域同样需要相应的 功能设备。所以能够将目前市场上p c 领域中大量的具备u s b 总线接口形式的功 能设备转化为在嵌入式领域中使用其意义是重大的。在工控主杌嵌入式操作系统 w i n e e n e t 下实现系统支持u s b 总线设备将会大大增加主机挂接外部设备的能 力,使主机具备多种多样的功能,无需厂商另行开发专用设备,大大减少了产品 成本。甚至可以根据客户的需求直接挂接上其它厂商的电子产品消费领域的外部 设备,减短产品研发时间并抢先进入市场。所以二者的结合具有非常实际的应用 价值以及市场价值。 1 4 课题相关领域技术的现状以及发展 在应用需求和方向纷繁众多的嵌入式领域,嵌入式操作系统可以用“百花齐 放”来形容,很多公司,科研院所都根据不同的领域研发出各具特色的嵌入式操 作系统。因为具体应用的对象和针对的领域不同,所以就嵌入式操作系统本身而 言是各有特点的。比如老牌的v x w o r k s ,它是目前嵌入式系统领域中使用最广泛, 市场占有率最高的系统,应用在通信、军事、航空、航天等高精尖技术及实时性 要求极高的领域中,甚至1 9 9 7 年7 月人类第一次在火星表面登陆的火星探测器 上也使用到了v x w o r k s 。它支持多种处理器,如x 8 6 、i 9 6 0 、s u ns p a r e 、 m o t o r o hm c 6 8 x x x 、p o w e rp c 等等。大多数的v x w o r k sa p i 是专有的,采用g n u 的编译和调试器;比如3 c o m 公司的p a l mo s 系统,该操作系统在p d a ( p e r s o n a l d i g i t a la s s i s t a n t ) 市场上获得了巨大的成功,占有很大的市场份额。作为小 型个人数字移动设备上软件系统的始作俑者,它开辟了一个时代。p a l mo s 有开 放的操作系统应用程序接口a p i ,开发商可以根据需要自行开发所需要的应用程 序;还有近期新兴的嵌入式l i n u x ,这是嵌入式操作系统的一个新成员,其最大 的特点是源代码公开并且并且遵循g p l 协议,无须为每例应用交纳许可证费。大 量可用的应用软件基本都遵从g p l ,可以稍加修改后应用于用户自己的系统,也 有大量的免费的优秀的开发工具。其优秀的网络功能,在i n t e r n e t 时代尤其重 要。这些优势使其具有较大的发展潜力。1 。 本课题所涉及的w n c e n e t 系统是微软公司于2 0 0 2 年推出的。在工业控制 领域由于w i n d o w sc e2 1 及以前版本的实时性较差,所以主要应用在移动式( 或 便携式) 产品和信息家电领域。随后的w i n d o w sc e3 o 的出现极大地改善了它的 实时性能,为w i n c e n e t 进入工业控制领域奠定了基础。虽然w i n e e n e t 作为嵌 入式系统平台在工业控制领域还未被广泛采用,但前景非常广阔。许多著名的工 业控制器生产商已经开发出相应的工业控制产品,如西门子a g 公司的多功能操 作面板m p 系列,c y b e e t e c 公司的变电站现代化平台s m p ( s u b s t a t i o f l m o d e r n i z a t i o np l a t f o r m ) 等。u s b 总线现今已经成为计算机外设非常通用的接 口总线,所以这些工业产品对于u s b 总线接口也有着不同层次的支持。神州数码 网络计算机d n c 一3 0 0 0 w 采用w i n e e n e t 系统使网络计算机真正实现1 6 位真彩显 示,支持支持u s b 键盘,鼠标,u 盘和打印机;北京昆仑通态自动化软件科技 有限公司的n t o u c h 嵌入式一体化工控机可以预装w i n c e n e t ( 中文版) 和m c g s 嵌 入版组态软件( 运行版) ,配置两个u s b 接口;铂杰p o c k e tp c 号称全球首款内嵌 w i n e e n e t 中文版的掌上电脑,支持u s b 接口。国内在开发w i n e e n e t 系统产品 其它厂商如台湾的研华,泓格公司,俄华通公司,以及深圳的各个厂商等都形成 了一定的技术规模”。 在u s b 总线驱动程序开发方面各有各自的优势,有的公司开发如专用的视频 输入,有的仅仅是利用了系统本身自带的u s b 驱动支持u 盘,打印机以及鼠标等。 开发的成果并不是非常多。所以能否支持多种多样的u s 8 总线外围设备成为了一 个很有潜力的技术吸引点。相比之下国外相关机构以及公司的研究成果和产品规 模要比国内更丰富,广泛一些,其技术已经形成产业化。国内相关领域虽然也有 研究成果,但在整体技术上和规模上还需要进一步的努力。但是在民族产业已经 蓬勃发展的今天,这方面的差距正在不断缩小。 北京工业大学工学硕士学位论文 第2 章w in o e n e t 系统下u s b 总线驱动程序开发 的基础 驱动程序是硬件设备与操作系统以及应用程序之间的连接桥梁。在 w i n c e n e t 下开发u s b 总线设备驱动程序需要对u s b 总线协议,u s b 总线设备的 特征以及该嵌入式系统的驱动程序原理进行深入的分析。因为u s b 总线的主机端 和设备端是一个统一的体系,所以本章节将结合u s b 总线协议以分析u s b 总线设 备的设备特征为切入点,阐述w i n c e n e t 系统对于u s b 总线的具体支持程度以及 系统驱动程序的架构,做好基础理论的铺垫。 2 1u s b 总线介绍 u s b 总线标准是一种开放的标准。它力求在同一个系统框架下统一软件与硬 件的接口与开发,从而使驱动程序设计简化,不同厂家的设备能够被交换使用, 改变了计算机夕卜围设备的体系结构。其中u s b 标准所制定的设备类规范在具备 u s b 总线接口形式的设备产业中起到相当重要的作用,它使众多的公司在研制种 类多样的各种功能设备时能够按照统一的标准进行生产,制造,维护和开发,大 大增加了生产效率和使用效率。在主机端,u s b 总线设备驱动的过程与传统的设 备驱动过程如r s 2 3 2 的等有着本质的区别,需要具备单独的u s b 主机控制器硬件, 在相关的u s b 协议栈的支持下才能实现对设备的控制和通信。 图2 一l 是u s b 总线系统通信模型9 。系统中的通信全部由主机来控制。主机 和设备在逻辑上均被分成清晰的层次,两端实际传输的数据流是竖直方向。横向 的数据流是逻辑上主机与设备的某个层次的交互。 设备 1 = 设备一 主机 6 命令的类型0 = 标准命令 l = 类命令 5 2 = 厂商的命令 3 = 保留 4 接收对象o = 设备 3 1 = 接口 2 2 = 端点 l3 = 其他 o 4 3 l = 保留 如较常用的u s b 标准命令g e t - d e s c r i p t o r ,作用是获得指定的设备的有关 符信息。它的通用格式如下表2 - 5 “: 表2 一g e t d e s c c i p t o r 的命令清求含义 1 0 0 0 0 0 0 0 b0 6 h 描述符类型和语言i d 或0 描述符长度 描述符索引 b m r e q u e s t 表明:符数据由设备传向主机,标准命令,接受者为设备;b r e q u e s t 命令编号为固定的0 6 h ;w v a l u e 的高字节表示描述符类型类型表2 2 ,低字节表 示描述符索引:w l n d e x 表示若为字符串描述符则指出其语言皿,其它符则为0 ; w l e n g t h 表示传回的符的数据长度。举例实验采用的u s b 总线设备在使用该命令 获得设备信息时候的命令格式为: ( 1 ) 8 00 60 00 i0 0 0 01 20 0 获取设备的设备描述符信息见表2 - 6 表2 - 6 获取设备描述府命令请求l t a b 2 - 6r e q u e s tlo fg e l d e s c r i p t o r 命令请求字段二迸制数据含义 b m r e q u e s t t y p e 8 0 b i t 7 = l 表示数据传输方向设备一 主机 b it 6 5 = 0 表示为标准命令 b i t 4 0 = 0 表示命令发向设备 b r e q u e s t 0 6 g e t - d e s c r i p t o r 固定编号 w v a l u e0 0 ( l )低字节o o 表示没有索引值 0 i ( h )高字节0 l 表示设备描述符 w 【n d e x o o ( l ) 设备描述符该值为0 0 0 ( h ) w l e n g t h 1 2 ( l ) 返回o x o o l 2 b y t e s 长度的信息 0 0 ( h ) ( 2 ) 8 t0 60 02 20 00 0a 50 0 获取h i d 类设备报表信息见表2 7 : 表2 7 获取设备描述府命令请求2 t a b 2 - 7r e q u e s t2o fg e td e s c r i p t o r 命令请求字段二进制数据 含义 b m r e q u e s t t y p e 8 1 b i t t = l 表示数据传输方向设备一 主机 b it 6 ,5 = i 表示为类命令 b i t 4 0 - - 0 表示俞令发向设各 b r e q u e s t 0 6 g e t d e s c r i p t o r 固定编号 w v a l u e0 0 ( l )低字节o o 表示投有索引值 2 2 ( h ) 高字节2 2 表示r e p o r t 报表符n 6 3 w i n d e o0 0 ( l ) 设备描述符该值为0 0 0 ( h ) w l e n g t h a 5 ( l ) 返回o x o o a 5 b y t e s 长度的信息 0 0 ( h ) 2 8 8u s b 总线的管道和端点 u s b 总线支持四种数据传输方式,分别是控制传输,批量传输,中断传输与 等时传输。这四种传输方式制定的依据是来源于大多数功能设备在进行数据传输 时所采用的普遍方式。比如控制传输方式是为传输u s b 协议各种控制命令请求而 设定的;批量传输则适用于不定时的大批量数据的传输设备,如常用的u 盘,打 印机等;中断传输适用于小量数据传输的设备,只是加了主机定时轮询设备的“中 断”,如鼠标等;等时传输则适用于对传输时间间隔有要求的大量数据传输,如 北京工业人学工学硕士学位论文 各种影像传输设各摄像头等。 不管怎样的数据传输方式,主机与设备的交换的数据都是在“管道”上进行 的。“管道”是u s b 总线协议的一个概念,它并不是一个实际的对象,只是从逻 辑上描述了主机与设备进行数据传输的载体,真正的数据流都是在物理形式的总 线电缆上传输的。管道的两端分别是主机与设备,设备的一端对应着“设备端点”, 主机的一端对应着驱动程序所设定的“数据缓冲区”,逻辑关系如下图2 4 “: 图2 4主机端数据缓冲区与端点及管道的逻辑关系 f i g 2 - 4l o g i c a lr e l a t i o n s h i po f h o s t d a t ab u f f e ra n de n d p o i n ta n dp i p e 根据前面所叙述的设备符集合的树状“一对多”特点,这里由外及内的逐步 细化出主机与设备在各个管道上的通信主体分别是哪个指定的端点和缓冲区,如 图2 5 ,从而能够准确控制设备功能。其了解顺序为设备描述符,配置描述符,接 口描述符,端点描述符。 u s b 总线功能设备 配置n 配置1 接口n 接口1 e p n ( i n )e p n ( o u t ) e p i ( i n )e p l ( o u t ) e p o ( i n )e p o ( o u t ) 厂户童 u s b 总线主机端 图2 - 5u s b 总线设备的i o 逻辑 f i g 2 - 5i ol o g i co fu s bb u sd e v i c e 第2 章w i r i c e n e t 系统下u s b 总线驱动程序开发的基础 2 4u s b 总线设备配置过程 在u s b 总线设备连接到主机上时,主机端的协议栈会对设备按照协议规定的 内容进行配置。设备配置过程是u s b 协议独有的,每一个设备在正常工作之前必 须完成主机对设备的配置过程,这是u s b 总线设备与传统的通信的不同之处。深 入理解u s b 总线设备的配置过程,对编写主机的协议栈和客户端的驱动程序有着 重要的意义。 设备配置过程也称为设备枚举( b u se n u m e r a t i o n ) 。1 ,适用于所有的u s b 总 线设备,由主机的协议软件负责完成。这个过程中主机在集线器的配合下才能完 成。配置过程完成后对功能设备进行的操作就在设备的客户端驱动程序中完成。 这里u s b 总线所使用的“h u b ”也起到了类似网络中的h u b 的连接作用,目 的是使多个u s b 设备可以互连成网,如键盘上具有集线器,鼠标,音箱。游戏操 纵杆等就可以直接连接到键盘上,形成一个小网络,但协议规定该互连的层次不 能超过5 层深度。实际上h u b 集线器也是一种1 最备,在u s b 主机端软件层次结构 中它从属于客户端驱动程序层次,只是因为它的作用比较特殊,才单独提出来进 行分析。在概念上它是一个独立的设备驱动程序,但实际上在操作系统做u s b 协 议栈的时候可以将对集线器的相关驱动操作写和在一起。分层的概念有助于理解 起作用,具体实现时在理解u s b 协议的基础上可灵活编写。u s b 总线的主机控制 器必须通过其上的“根集线器”( r o o th u b ) 才能连接识别外围u s b 设备,所以集 线器设备必须能够被配置,而且还要能够识别与其端口连接的其它设备。一般主 机系统都会在协议栈的部分编写了对根集线器的驱动控制。本课题所涉及的 w i n c e n e t 系统支持根集线器,根集线器在设备配置过程中起到了识别设备作用, 所以这里只对集线器部分做一个简要的介绍,有关开发集线器的相关资料可参阅 u s 8 集线器标准。根集线器与主机的配合下在实现设备枚举的过程中,应该完成 以下基本的任务“: ( 1 ) 发现设备连接; ( 2 ) 给请求的设备分配地址; ( 3 ) 从设备中获得所需要的描述符; ( 4 ) 根据设备所反映的数据来决定设备的最终配置; ( 5 ) d n 载相应的设备驱动程序。 检查完设备配置的u s b 总线带宽以及电流情况都可以满足后,总线枚举过程 以发定设备某个可操作配置为标志表明设备当前配置中的接口和端点都有了默 认的工作配置,从设备的角度来看,设备本身已经准备就绪可以工作了。但从主 机端的角度来说,还没有完成对设备的匹配配置工作,主机端还要对设备不同的 接口功能分配相应的客户端驱动程序,从而真正的控制并实现设备的功能。这部 分的动作实际上是由具体的u s b 协议栈所制定的,所以会因系统而异。基本的 步骤可如下思路参考: ( 1 ) 主机端的协议栈软件从注册表中存储的客户端驱动程序信息库中按照一 定算法为设备接口找到对应的驱动程序。 ( 2 ) 一个客户端驱动程序与设备的一个接口匹配上后会从该接口的多种接口 设置中挑选出来最合适的一个设置,使其工作于有效的工作状态并且为接口的不 同端点配置管道。 ( 3 ) 配置完一个接口后,继续配置其他的接口。 至此,设备的配置工作才彻底完成。整个配置过程所传输的命令和数据都是 由设备的默认控制端点0 通过默认管道传输的,默认控制管道由系统的协议栈自 动创建,所以每一个u s b 设备都有一个默认的控制管道。 2 5w i n o e n e t 系统中u s b 总线的软件体系结构 不同的操作系统对于u s b 总线的支持是不同的,应掌握具体操作系统对于 u s b 总线的支持。如前所述,w i n d o w s 操作系统的下的分层驱动支持模式应用比 较成熟,w i n c e n e t 对u s b 总线的支持也大致采用了如此的模式。本节分析 w i n c e n e 系统下所支持的u s b 总线软件体系层次,并定位本课题的研究对象,如 图2 6 1 。 应用层 系统层 软件层 硬件层 系统提供 图2 - 6w i n c e n e t 系统u s b 总线驱动框架 f i g2 - 6s tr u c t u r eo f u s bb u sd r i v e r s i nw i n c e n e t 系统内部可以将u s b 总线的驱动程序分为两部分。上层为u s b 设备客户端驱 动程序,该层次的驱动是由具体的设备厂商来实现,即本文的主要研究内容:底 层为u s b 功能的实现层,包括主机控制器驱动h c d 以及u s b 协议栈u s b d 两部分, 这一层次由w i n c e n e t 操作系统本身所提供。这样的架构结构导致了上层的客户 端设备驱动程序并不是直接与硬件通信,而是必须利用下层的u s b 总线的功能实 现层柬与设备建立连接,进行配置并进行各种功链控制。w i n c e n e t 操作系统按 照u s b 总线的协议提供些数据结构供驱动开发人员使用,在底层h c d 以及u s b d 协议栈方面系统则实现了u s b 传输功能,u s b 管道管理,u s b 帧管理,u s b 设备 特征管理以及其它一些与u s b 系统软件相关的函数功能。所以。在编写设备驱动 1 4 第2 卷w i r i c en e t 系统下u s b 总线驱动程序开发的基础 程序的时候,必须了解与其交互的u s b d 协议栈的功能以及各种函数的含义,利 用协议栈提供的函数来与设备通信。 经过分析归类,有以下五类协议栈提供的接口函数。在编写客户端驱动程序 时应根据处理流程的需要使用正确的协议栈函数,具体可参阅文献 1 9 。 ( 1 ) 传输函数负责初始化主机与设备间数据传输,将设备数据传送到主机端 数据缓冲区或者由主机端数据缓冲区传出到设备端点,如数据传输 i s s u e x x x t r a n s f e r ( ) 等函数: ( 2 ) 管道函数负责操作u s b d 和u s b 设备之间传输数据的管道,从而能够控 制通信。如打开管道o p e n p i p e0 ,复位管道r e s e t p i p e0 等函数; ( 3 ) 配置函数 负责设置设备,获取设备特定信息。如获取设备描述符 g e t d e s c r i p t o r ( ) ,设定设备接口s e t i n t e r f a c e 0 等函数; ( 4 ) 帧函数 负责对u s b 总线上的传输单元帧进行设置。如获取帧长度 g e t f r a m e l e n g t h ( ) 等函数; ( 5 ) 其它相关的多任务函数负责一些其它方面的功能和任务。如注册设备的 回调函数r e g i s t e r n o t if i c a t i o n r o u t i n e0 等函数。 本文所涉及的驱动程序的位置位于u s b d 协议棱层之上,属于控制具体设备 功能的客户端驱动程序层次,可以分为类驱动程序和具体设备驱动程序。类驱动 程序的内容是实现u s b 总线的设备类规范中所包含的内容,即实现这类设备的基 本功能。如果主机端提供了设备类驱动程序而各个厂商又是严格按照设备类规范 所制造的,那么该漫备可以直接连接到主机上使用,设备厂商可以不用额外编写 驱动程序,这也是体现u s b 总线是开放性体系的一个方面。但如果需要实现某些 厂商设备的专有功能,则需要厂商自己编写相应的设备驱动程序,从而充分实现 该设备的所有功能,也可以在类设备驱动程序的基础上再进行具体的客户端驱动 程序扩展开发。 2 6w i n o e n e t 系统驱动程序结构 广义上来讲,在w i n c e n e t 中“设备”的概念可以是指任何需要控制资源的 物理硬件或者逻辑的软件系统实体,所以驱动程序是个驱动硬件设备、驱动软 件服务或协议的软件模块。在这里,本课题所涉及的领域都是以硬件u s b 总线没 备为对象开发驱动程序的。 设备驱动程序是连接操作系统,应用程序和设备的桥梁,以便三者进行通信。 设备驱动程序的职责是要实现特定设备的中断相应、中断引发的数据传送和处 理、设备的文件流接口以及设备专用接口等。中断响应以及中断处理可以由中断 处理进程i s r ,中断处理线程 s t 实现,设备的流文件接口以及设备专用接口由 设备驱动程序本身提供函数。w i n c e n e t 使用注册表可以访问设备的驱动信息并 通过设备管理的几个部分协作使得设备驱动程序得以正常工作。在设备描述链表 中的每一个节点有若干函数指针,这些指针所指向的函数实体就是由相关的具体 设备驱动程序实现的。用户可以通过注册表的相关项目查询一个设备驱动程序所 le 能提供的接口,w i n c e n e t 通过设备接口提醒应用程序、服务和设备驱动器注意 设备接口的出现和消失。 从复杂性角度,设备驱动程序可以分为:分层模式的驱动和单体结构的驱动 如图2 7 “0 1 。单体驱动一般只用在非常关键的系统特性上,因为它可以把驱动程 序多个主要的功能都集成在一起实现为中断处理例程,这对于实时性要求很高的 设备来说是可以得到好处的。绝大部分实际的w i n c e n e t 设备驱动程序都是分层 的驱动。w i n c e n e t 针对多个类别的设备做不同的类型驱动程序的体系结构,使 同类设备可以共用大部分代码。分层结构使代码复用成为了可能。 图2 7 单片驱动和分层驱动架构 f i g 2 - 7s t r u c t u r eo fm o n o l i t h i ca n dl a y e r e dd r v e r s 在分层模型中,设备驱动程序分成了两个层次:平台相关驱动p d d ,( p l a t f o r m d e p e n d e n td r i v e r ) 和模型设备驱动m d d ( m o d e ld e v i c ed r i v e r ) : ( 1 ) p d d 部分在o a l 中实现,和具体的设备绑定,靠近硬件层,所以这部分的 编写很大程度上是由具体开发硬件的厂商进行处理的。比如周边i 0 设备的地址 映射,芯片的初始化等等。在平台移植的过程中这部分的相关修改较大。 ( 2 ) m d d 针对类驱动设计,目的是同类型驱动程序代码复用,主要由w i n c e n e t 的系统支持提供,第三方开发商也可以提供这样的类驱动程序。m d d 通过调用p d d 中的特定例程访问硬件的具体特性。m d d 一般提供如下的处理:定义设备驱动服 务提供接口( d d s i ,d e v i c ed r i v e rs e r v i c ep r o v i d e ri n t e r f a c e ) ,这些接口是 m d d 对相应p d d 的需求:向系统范围提供设备驱动接口d d i ( d e v i c ed r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论