(计算机软件与理论专业论文)usb协议栈在和欣上的构件化实现研究.pdf_第1页
(计算机软件与理论专业论文)usb协议栈在和欣上的构件化实现研究.pdf_第2页
(计算机软件与理论专业论文)usb协议栈在和欣上的构件化实现研究.pdf_第3页
(计算机软件与理论专业论文)usb协议栈在和欣上的构件化实现研究.pdf_第4页
(计算机软件与理论专业论文)usb协议栈在和欣上的构件化实现研究.pdf_第5页
已阅读5页,还剩72页未读 继续免费阅读

(计算机软件与理论专业论文)usb协议栈在和欣上的构件化实现研究.pdf.pdf 免费下载

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

文档简介

阳北工业大学硕十学位沧文 摘要 本文是根据作者在科泰世纪科技有限公司参加具有完全自主知识产权的和欣操作系统 开发实践的基础上写成的,作者承担的主要任务是移植f r e c b s d 中关于l m 的低层代马, 构件化设计和欣操作系统的u s b 仂议栈,取得的主要研究成果是在详细消化u s b 仂议和 e z c o 】v l 技术的基础上,构件化实现了和欣操作系统的u s b 切议栈。目前,它已成功用于福 建新大陆集团的智能手持式二维条码识别终端上。 本文首先介绍了u s b 系统的有关知识。u s b 是种c t 鳓l l # b 设连接规范,具有即插即 用、数据传输可靠、扩展方便、f - m 成本* , d e g 点,被广泛地应用于嵌入式系统领域。 和欣是采用e z c l n 构件技术实现的全新架构的嵌入式操作系统。o z ( :( m 构件技术源于 c ( n ,但解决了开发c 删组件时繁锁的细节,并增加了新特陛。 论文最后详细介绍了u s b 协议栈在和欣上的构件化设计开发过程,包括u s b d 、h c d 和 客户端程序( 鼠标驱动) 的开发。作者在成功移植并理解f r e e i 警s d 中关于u s b 代码的基础一l , 划分模块,定义各模块的接v l ,把l s b d 、各个l e j d 和具体的客户端驱动做尉【拉的构件。 关键词:u s b 、l s b 协议栈、f s b j 、f i c d 、客户端驱动、和欣嵌入式操作系统、e z c o v 1 两北: 业大学硕士学位论文 a b s t r a c t r p a p e ri sb a s e do np r a t i c ei nt h a tt h ea u h o rj o i n e dd e v e i o p m 。n to ff , i a s t o s w il hin d e p e n d e n t p n ) 【) ( ) l yr i g h t i nk o r e t i d ec o r p t h ea u t h o r st a s ki s g t l a f t i n g r o c kb o t t o n tc o d eo n u s b ( ) t f r e e b s d d e s i g n in gu s bs t a c ki n e a s t ( 粥c o m p n n e n t t y a f t o t u n d e r s t a n d i n gu s b s t a c ka n de z c ( nt e c h n i q u ei n d e t a 【,t h ea l l t h o rs u c c e e d e d i n d e v e l o p n g l s bs t a c k a t p r e s e n t ,i i ss u c c e s s i u l l y u s e da tt w o d i m e n s i o n i n t l i ( 、h l in gn u m h e f d e n t f i c a t i o nt e r m i n t 1i nf u j i a nb m d s t a n d i n ge l e c t r i c s f i e c h n o l o g i e sc o r p t h e 啡t p e r f i r s t l v r e p r e s e n t s s o m el o r e so nu s b s y s t e m e s b 【s ak i n do i s p e c i “c a t i o n ( ) f 、c ( ) p u t e rc o n n e c t e dp e r i p h e r ds nh a st h e m e r i t s o f p n p 、r e l i a h l e d a t at r a n s j e 、e x p a n d n ge x l ) c , d e n t 【y 、1 0 wc o s ta n ds oo n i nt h e | 。e _ do fe m b e d d e d s y s t e m ,i t i s a p p li e dw i d ly e l a s t ( y si sal a t em o d e l 甜c g u t e c t i b u ce m b e d d e d0 p e r a i ,i o ns y s t e mw h i c ha p p i e s w it he z c o mt e c h n i q u e e z c ( nc o m e sf o r mc o m ,s o b e ss o m od e t a i l so fd e v e l o p n gc o m c e m p o n e t a l l ( 1a d d ss o m en e wc b i f a c t e r i s t i c s a t i s t ,t h ep a p e rp r e s e n t e sb r i e l yh o w t od e s i g nu s bs t a c ko n e l a s t o s ,i n c l u d e d u s b i ) 、i i c i ) a n dc t l e n td r i v e r ( m o u s ed r i v e r ) a tt h eb a s eo fg r a 凡i n gs u c c e s s f u i l ya n d u n d er s t a n d ir i gu s bc o d eo te r e e r s d ,t h ea u t h o rc o m p a r t m e n t a l i z e s t h em e d u l co l l s b ,d e t i n e st h e i n t e r f a c e sa n dr e a l i z e se v e r ym o d u l ea sa na b s o l u t ec m l p o n e n k e y w o r d :l s b 、u s bs t a c k 、u s b d 、i i c d 、c l i e n td r v e r 、g l a s t o se m b e d d e do p e r a ti o n s y s y t e m 、e z c ( t m 阳北【业大学硕士学位论文 第章绪论 本章要点: 通用串口总线( l s b ) 是一种新兴的计算机外围串行通信接口标准,它克服传统计算机串 l - w 并r 的缺陷,具有热插拔、即插即用、数据传输可靠、扩展方便、成本低等优点,已成 为当前计算机必备的接口之,同时也被广泛地应用于嵌入式系统领域中。和欣是科泰世 纪科技有限公司自主研发的构件化嵌入式操作系统,提供对e s b 的支持已迫在眉睫,这正 是本课题的出发点和立足点。本章主要介绍了e s b 的起源、发展、优缺点及其应用。此外, 还介绍了l s b 仂议。 在u s b 接口出现并被广泛应用以前,般的计算机系统设计都会预留两个r s 一2 3 2 串口 用来连接鼠标、键盘、游戏枰等串行接口设备,以及一个并彳亍接口用柬连接诸如打印机等 带并行接口的设备。后来又出现了p s 2 等串行接口用来连接键盘和鼠标锕氐速设备。但是 随着电子技术的迅速发展,大量的数字终端得到了普及和应用,仅仅利用l 毽一2 3 2 串行接口 和打印机并行接口等进行电子终端与计算机的互联给系统的设计和操作带来了很大的困 难。 1 很难与电话互联。显然利用计算机来i 斯亍i 引言是下一带计算机的基本应用。但机 器与人的数据交互需要一个广泛而又便宜的网络平台。现存的电话通信网成为一个必然的 选择。但从一开始,计算机工业和通信工业就是两个独立发展的产业,因而如何把计算机 与电话有效的连接起来成为计算机硬件系统设计必需考虑的问题。 2 设备安装和配置复杂。传统的计算机串口和并口都j 卜具备诊断设各插拔动作,凶 而不可能具有即插即用及外设的自动配置等特点。当一个外设连接到计算机e 时,往往需 要重新启动系统,并利用对设备g 动程序的人机交互操作来完成对设备的初始化配嚣过程。 这给外设使用带来了极大的不便。 3 系统扩展性差。无论是r s 一2 3 2 、p s 2 、还是并口,都是点对点的连接。一个预留 的接口只能用来连接一个相关的设备。当系统需要连接更多的不同属| 生及不同传输速率的 外设( 如:游戏杆,扫描仪,数码相机等) 时,就需要占用大量的计算机内部资源( 如系统 西北工业大学硕士学位论文 i 0 、中断向量、总线地址等) ,并利用计算机主板上的 s a 、p c i 等插槽来扩展相应的接口 以匹配不同的设备。 i g s b ( u n i v e r s a ls e r i a lb u s ,通用串口总线) 的出现解决了以上问题。它由i r i t e l 、 m i c r o s o 1 l 、c o m p a q 、n e c 、北方电讯( d w 拿大) 等多家世界著名的大型计算机软硬件厂商提 出束的。u s b 是种新型的、通用的计算机外设接口,使用一个4 针作为标准插头,通过 这个标准插头,采用菊花链形式可以把所有的外设连接起柬,而且不会损失带宽,提高了 设备的传输速度。u s b 总线是计算机工业和通信工业的一个结合,因而,从某些方面来看, u s b 接口更像以太网接口,但与r s2 3 2 接口有本质的区别。 u s b 标准是一个开放的标准,它的制定使不同厂家所生产的设备可以在一个开放的体 系下广泛地使用。该规范改进了便携商务和家用电脑现有的体系结构,进而为系统生产商 和外设开发商提供了足够的空间来创造更多功能的产品和开发门淘的市场,并且不必担山 由于使用陈旧的接口而失去兼容性。 1 2u s b 的优点 在短短的几年内,u s b 接口得到了广泛的普及和应用,现有的计算机系统设计一般都 扩展2 4 个u s b 接口,以供连接外设用。同时,在嵌入式系统中,如常用的数字设备、 数码相机、移动存储设备、p d a 掌上嘲卤、机顶盒等,u s b 也得到了广泛的应用。之所 以u s b 接口能得到市场的认可,主要因为u s b 有着其特有的优点。 1 速度快。为了适应不同的应用需要,u s b l 1 规范定义了2 种不同的数据传输速率: 1 j m b s 的低速数据传输、1 2 馏s 的全速数据传输,u s b 2 0 规范增加4 8 0 m f 3 s 的高速数据 传输。低速数据传输针对交互设备( 比如键盘、鼠标等) 而设计的,它具有低价位、易使用、 热插拔、支持多个外设等特点,因而可取代诸如r s - 2 3 2 、p s 2 等接口:全速数据传输针对 电话、音频、影像压缩设备( 比如i ( 肥、厂- n 、音频、麦克风等) 而设计的,它具有低价位、 易使用、热插拔、支持多个外设、保证带宽等特点,因而可取代诸如传输速度较决的并行 接口:高速数据传输针对影像存储设备( 比如图像、高速磁盘韵而设计的,它具有低价位、 易使用、热插拔、支持多个外设、高带宽等特点。 2 设备安装和配置容易。u s b 设备具有热插拔、即插即用的特点。用户可以在月机的 情况下,对设备进行插拔操作。当个u s b 设备连接到系统匕时,操作系统会自动检测到 该设备,自动加载其相关的设备驱动程序,并且利用默认的配嚣参数对该设备进行配置, 荫北i ,:业人学硕士学位论文 用户不需要重启系统便可完成操作系- 统- r 3 , - i 其初始化和配嚣工作。 3 易于扩展。根据v s b 系统规范,u s b 总线上共可以连接12 7 个u s b 设备。用,二t 只需 直接把设备连接空闲的l s b 接口上。由于 s b 接口不占用系统的l ( j 、地址总线和中断向 量,当总线上的接l l 不够时,用户只需通过u s b 集线器( h u b ) 来扩展更多的u s b 接口。 4 能够采用总线供电。u s b 总线带有+ 5 v 的电源线和地线,u s b 设备可以从系统总线 上获得+ j v 、小于等于5 0 0 m a 总线供电,因而,在u s b 设备设计时可选择采用总线供电或外 接f 乜源。具体采用何种方式,重要取决设备对电源的要求。比如:像u s b 接口的鼠标、u s b 接口的键盘等对电量要求不高的设备,般采用总线供电;而对于像u s b 接口的打印机、 u s b 接口的显示器等设备,一般都需要采用外接电源。 5 使用灵活。为适应不同的需要,u s b 总线支持4 种不同的传输方式:控制传输( c ( ) n t r n j t t a n s * 、e f ) 、中断传输( i n t e r r u p t ,l r a n s _ 1 e u ) 、块传输( b u l kt r m s 1 。r ) 和同步传输 ( s o c h r o n o u st r a n s f e r ) 。不同的数据传输方式可以适应不同的数据传输要求。 6 健壮性强。与以往的串口相比,u s b 总线的数据传输有着较强的健壮性。比如在数 据包中加入c r c 校验、在协议中包含数据包出错处理及差错恢复机制、对有缺陷设备进行 认定和根据不同的传输错误进行不同的处理。同时,对设备的热插拔处理迅速目不影响系 统的正常工作。 7 实现成本低。u s b 总线采用的是树形结构,主从工作模式,这使得开发外设的成 本大大刚氏。 8 低功耗。u s b 系统要求外设在待机状态时,自动启动省电功能来阿氐电能消耗。当 设备再次被使用时,自动恢复其原来的状态。这种省电特性,在嵌入式系统,特别是用电 池供电的系统显得特别重要。 最近几年,u s b 设备的开发应用无疑是电子行业增长最决的市场之一。从图1 1 可以 看出l s b 接口应用的快速增长趋势。当前u s b 的主要应用集中在与计算机相关的的方面, 如通过u s b 接口连接各种必要的计算机外设,通过u s b 接口将数码相机、移动存储器等连 接在计算机e ,并进行必要的数据传输。但也可使用曙b 作为数据信号的传输通道,而把 西北工业大学硕士学位论文 邑应用与数据采集、信号监控等领域。 1 9 2 0 0 02 0 0 12 0 2 0 0 3 蓁 墨量t 童雪 :_ 置 雷一量置 图1 1u s b 接口应用增长示意图 由于噶b 具有其它总线无法比以的特性,它的应用范围很广泛。表1 1 按照数据传输 率( l s b 可以达到) 进行了分类。 白9 7 年,微软推出w i n 9 7 后,u s b 进入实战阶段,但由于i 塞个版本对u s b 的支持属于 外挂式模块,因此直到w i n & ) w s 9 8 推出后,u s b 接口的支持模块才真正日趋成熟。现在生 西北l :业大学硕十学位论文 产的【几乎都配备了b b 接口,m i c r o s o t t 的w 2 k 、m 以及m a c 吣 流行操作系统都增加了对l ;s b 的支持。 目前,u s b 在嵌入式系统上的应用也越来越广泛,像m i c r o s o f t 的w in c c e 等嵌入式操 作系统都已提供了对u s b 的支持。和欣是科泰世纪科技有限公司自主研发的一款3 2 位嵌入 式操作系统,提供对is b 的支持已迫在眉睫。这正是本澡题的出发点和立足点。 1 4u s b 规范简介 【j s b 的所有标准主要包含三部分:u s b 基本规积即u s b l x 、u s b 2 0 标准等) 、u s b 设备类规范和u s b 主机控制器规范。具体规范可参见u s b 官方网站h 业;丛坠逊竖b :q 塔。 u s b 基本规范规定了u s b 总线的系统结构,物理、机械、电气特性,数据传输格式, u s bh u b 等u s b 总线的基本内容。从0 7 版本到2 0 版本,u s b 基本规范绉立了不断的发 展和完善。现在,市场上有大约j 亿多个带u s b 接口的设备,决大多数是基于u s b l 1 标准 而设计的。现在,只有少许基于u s b 2 0 产品。因而在和欣上目前只实现了u s b i 1 规范的 相关部分,本文也仅介绍u s b i 1 规范的相关部分。 u s b 设备类规范规定了不同属性u s b 设备的设备配置和数据传输特性。主要有语音设 备类( a c i d i od e v i c e ) 、通信设备类( c o n u n i c a t i o n sd e v i c e ) 、芯片智能卡接口设备类 ( c h i p s t m t r to :w di n t e r d t c ed e v i c e ) 、设备固件更新类( d e v i c ef i r n r 叭m eu p g r a d e ) 、影 像设备类( i m a g i n gd e v i c e ) 、 、机交互设备类( 1 u m a n i n t e r f a c ed e v i c e ) 、i r o a 设备类( r d a b rid g ed e vic e ) 、存储设备类( s ss t o r a g ed e v i c e ) 、物理接口设备类( p h y sic 。l i n l e c f 。l t c o d e v i ( d e ) 、电源设备类( p 0 w 。rd e v c o ) 、打印机设备类( p r i n t e rd e v i c o ) 、监视器设备类 ( m o r tm ) rd ( d v i c e ) 】2 类。在和欣e 只开发了人机设备类驱动,在后面的章节中再做介绍。 u s b 主杌控制器规范规定了u s b 主棚硬件接口。针对u s b i 1 标准,有i n t e 制定的 通用主机控制器接口忙t ) 标准和康柏、微软、松下等提出的开放式主机控制器接口kl ) 标准。针对u s b 2 0 ,l i n t e l 提出了增强型主机控制器接口( e i t c i ) 。目前和欣u s b 系统仅提 供0 t i c 驰副j 。 1 作者的工作 1 5 作者的工作及章节安排 西北。1 业大学硕十学位论文 本文作者参与了科泰世纪科技有限公司驱动组关于u s b 主机端协议软件的丌发,具体 负责以下工作: 研究l s b 1 协议、主机控制器规范和 机接口类规范。 ,研究f r e e b s d 中关于l s b 的代码,将它移植到和欣,使之正常工作。 研究和欣的驱动模型,将移植的f 师马构件化处理:划分模块,定义接l ,把各个 模块做成一个单独的构件。 2 章节安排 本文第二章介绍了l s b l 1 协议相关的内容,包括l s b 系统的体系结构,通信原理等。 第三章介绍了和欣操作系统及e z c ( m 构件技术。第四章介绍了i :s b 主机端协议软件的设计 开发,涉及到u s b i ) 、) 和客户端驱动( 人机接口类驱动及鼠标驱动) 的研发。 西北工业大学硕十学位论文 第二章u s b 通信原理 本章要点: u s b 主机、l s b 设备和主机与设备的连接是u s b 系统的三个重要组成部分。本章首先详 细介绍了u s b 系统构成,包括i j s b 主机、u s b 主饥和连接部分,接着介绍【s b 的数据流模 型和u s b 四种类型传输,其中包括u s b 传输单元、传输原理、传输类型及传输错误处理等, 最后介绍了l l s b 通信的特点。 l ;s b 系统通过具有相同接口的串行连线将不同的设备连接到起,由三部分组成:l s b 主机( t l o s t ) 、u s b 设各( d e v c e ) 和主机与设备的连接部e ( i n t e r c o n n e c t j 。 2 1 1u s b 连接部分 连接部分规定了u s b 设备与主机的连接和通信方式。i j s b 系统的物理拓扑为分层的星 型结构,如图2 1 所示。u s b 主机是星型结构的中心,它通过u s b 集线器级联更多的l s b 设备,理论上可允许同时连接1 2 7d 夕i - 设。由于总线电气性能的原因,物理上u s b 设备最 多可以通过f s b 集线器扩展6 层。从逻辑上看,u s b 主机可以与分层的u s b 设备直接通信, 好象与设备直接相连一j 样,如图2 2 所示。 r i 【j s 【 主机r l 堕一弋匣耍尹_ _ 堡鱼i j 7 n 、i | 陵i 擎 | 圈划上商 陌习i 也剑一 曲北i 业大学硕士学位论文 2 1 2u s b 主机 作为u s b 系统的主控组件,u s b 主机控制总线上所有i :s b 设备和所有集线器的数据通 信过程。它是个l s b 系统的核心,整个u s b 系统有且仅有一个控制系统的数据传输工作。 所有的数据传输都是由u s b 主机端发起的,而且如果u s b 主机嵌在一个计算机系统中,在 数据的传输过程中也不需要计算机的c k 参与传输工作。u s b 设备和主机系统的接口称为 t s b 主机控制器,通过它主机和外围的g s b 设备进行通信。在主机中还集成了一个根集线 器( r o o th u b ) ,提供u s b 的r 淞嵩口,用于连接u s b 设备或u s b 集线器。 主机所具有的功能包括:检测l s b 设备的插入和拔出、管理主机与设备之问的数据流、 对设备进行必要的控制、收集各种状态信息、对插入的设备供电。主帆上还有l s b 系统软 件( u s bs y s i ls o f l 呲l e e ) 和客户软件( c l i e n ts o f t w a r e ) 。客户软件和与其对应的u s b 设 备进行通信,实现各个u s b 设备特殊的功能匣用。系统软件对曙b 设备和客户软件之间的 通信进行管理,并完成l i s b 系统中一些共同的工作,例如:u s b 设备# , = _ r g f u 配置、参与 各种类型的数据传输、电源管理以及报告设备和总线的一些状态信息并进行处理等。 2 1 1u s b 设备 l s b 设备包括瞻b 集线器和功能设备( f u n c t _ 【o n ) 两大类。它们都具有标准的u s b 接口, 理解l s b 协议,支持标准的u s b 操作( 比如配置、复位等) 。它们的描述信息也是u s b 协议 定义的标准格式。为了体现l s b 的通用性,协议为u s b 设备定义了几种属性:描述符 ( d e s c r t p t o r ) 、类( c a s s ) 、接口( i n t e r f a c e ) 、端点( e n d p o i n t ) 、管道( h ) 和设备地址 ( d e v i c ea d d r e s s ) 。 1 描述符 描述符 已供了设备属性和特点的信息。0 s b 主机也是通过设备提供的各种描述符来区 分不同类型的设备。标准描述符包括设备描述符( d e v i c ed e s c h p t o r ) 、配置描述符 ( c o n l 、f g u r a t i o nd e s c r i p l o r ) 、接口描述符( i n t e r f a c ed e s c r i p t o r ) 、端点描述符( g n d p o i n t i ) e s c v i p e ) r ) 和串描述符( s t r i n gd e s c r i p l o r ) 五种。除此之外,u s b 设备还可以提供一些 非标准的描述符,用于补充标准描述符不足的信息。 2 类 u s b 协议以其通用性支持多种外设,为驱动这些设备,u s b 的主机端要为这些设备提供 西北工业大学硕士学位论文 客户驱动程序( c 1 e n ld r iv c h ) 。为避免客户端程序过多,协议将设备分成几种不同的设备 类,把功能相近的设备归为类,主机端只需提供类驱动程序便可驱动大多数设备。 3 接口 在u s b 协议中,接口被定义成设备具有某种能力,即具有某种功能。u s b 协议按功能 将设备分成不同的类,每种接口描述符描述的接口代表一类设备,并给出每种功能的设备 类编码。有的u s b 设备有多个接口,从e 层用户来看,就是多个不同的设备,如一个既有 键盘接口又有鼠标接口的设备。 4 端点 端点是位于u s b 设备中与u s b 主机进行通信的基本单元,设备通过端点完成和u s b 主 机端的数据通信。u s b 协议定义四种数据通信方式,即控制传输、中断传输、块传输和同 步传输,不同通信方式的设备端点各不相同。每个设备允许有多个端点,每个端点仅支持 一种传输方式。端点用4 位的端点号( e n d p o i n tn u m b e r ) 进行标识,设备厂商已为它们分配 好。除了控制端点支持数据的双向传输外,其它三种方式都是单向的,即对于另外三种传 输方式要完成设备和u s b 主机的双向通信至少要有一收一发两个端点。 5 管道 管道是u s b 没备和u s b 主机间数据通信的逻辑通道,管道的物理介质就是u s b 系统中 的数据线。在设备端,管道的主体就是端点,每个端点占据各自的管道和u s b 主机通信。 6 设备地址 主机端的客户驱动程序通过描述符来区分不同的设备,而主机控制器则是通过设备地 址来区分设备。设备地址共有7 位,理论上表示系统可同时j 奎接12 7 个曙b 设备,但在实 际应用中,由于u s b 总线带宽的限制,这么多设备不可能同时工作。u s b 主机负责为u 系统中的设备分配不同的设各地址,并通过控制传输通知设备。数据通信时,u s b 主机除 了要指明设备的地址,表示明阶设备外,还要指明设备的端点号,表示使用哪个通道。 ( 1 ) u s b 集线器 u s b 集线器是u s b 即插即用体系结构中的关键设备,它提供了用于连接u s b 功能设备 与主机的端口,也使系统的分层级联成为可能。每个l s bh u b 有一个面向主机的端口,称 为上游端口( u p s t r e a mp o r t ) ;同时还有n l 爪用于和下端u s b 设备连接的端口,称为下游端 口( d o w n s l r e a l mp o r t ) ,如图2 3 所示。h u b 可以检测到下游端口是否有设备插入,同时也 可以禁用某一个或某n 卜下游端口。每个下游端口可自由连接全速或低速设备。 西- i l l :业大学硕士学位论文 ,一舀稆辩广霜擎卧、 !# 1# 2# 3【 i 爨鎏j x 、。t + 、”。 纛喾 毪宇国 l 端口端口端口1 - 乜悲薹鼠, 图2 3h u b 端口结构 作为喳b 体系结构的专用设备,i l u b 突出的特点是支持热插拔、区分设备速度、为设 备供e 断口检测设备的各种状态并通知主机。在u s b 主机控制器内部嵌入的根l l u h ,它具有 t l u b 的除中断传输之外的全部功能。虽然u s b 主机嫡过h u b 和设备相连,但当设备被主机 端协议软件驱动完成后,相连的h u b 对主机和设备的数据传输是透明的。 ( 2 ) 咖功能设备 功能设备是具有一定特殊应用功能的设备,它能发送数据到主机,也可接收来自主机 的数据和控制信息。例如u s b 鼠标、u s b 键盘和u s b 打印机等都属于功能设备。它们以从 属的方式与u s b 主机进行通信,并受u s b 主机的控制。根据传输速度的不同,u s b 设备可 分为低速设备( 1 5 m b s ) 和全速设备( 1 2 i l b s ) 两种,在啜b 2 0 版本中还定义了高速设备, 可达4 8 0 i b s 。 每个功能设备都有自己的配置信息,描述自身的功能和资源要求。图2 4 给出了u s b 功能设备的逻辑结构。每个设备中有个或多个端点,端点在硬件上其实是一个有一定深 图2 4i 】s b 功能设备的逻辑结构 度的f i f o 。所有设备都有个端点0 ,主机与它通信,对设备进行配置和基本的控制。 西- i t :f 业大学硕士学位论文 个设备对主机表现为一组合适的端点,一组相关的端点称为一个接口( i m 耐k e ) 。一个设备 可以有多组接口,每一种接口的组合称为个配置( c o n f i 6 a t i o n ) 。个设备可以有多种配 置,但在任何时刻系统只允一种配置有效。在设备插入时,主机通过缺省管道读取设备的 各种描述符,选取一种配置。 通常隋况下,功能设备是作为一个只有单一功能的外设被实现的,但u s b 协议还规定 了类特殊的设备:复合设备( c o m p c , u n dd e v i c e ) 。复合设备是由u s b 集线器加e 其他一种 或几种u s b 设备集成的种物理设备的集合。物理上,它是一台设备,但是在主机看束, 它就是u s b 集线器和一台或多台独立的u s b 设备。它们的u s b 设备地址是不同的,每种设 备有各自独立的描述信息,只不过物理上这些设备是不能分开的。 2 2u s b 数据流模型 u s b 协议所说的数据流发生在吣b 设备和u s b 主机之间。物理上,总线上的设备j 恿过 一条物理连线和主机通信,所有设备共享这条物理链路。逻辑上,主机给每个设备提供了 一条逻辑的连接,每个设备都有这样一条点对点的连接。为了更好理解i 鼻b 数据流模型, 我们以常用的分层模型介绍u s b 系统的数据流,如下图2 j 所示 主机互连物理设备 l i 1 1 i 客竿件f 1 常唑一 功能层 tli- i i l 萼铲| 一 1l s b 逻辑ju s i n 殳 备层 t平t 7 1 i 篙禳忙 r i 。鼋差产1 l s b 总线 接口层 _ - _ - - - 卜 := = = = = := : 二 实际通信流 逻辑通信流 实现集中区域 u s b 主机在u s b 系统中是个起协调作用的实体,占有特殊的位置。主机控制所有 对u s b 的访问,一个u s b 设备想要访问总线必须由主机给予它使用权。主机还负责监督 西北r 业大学硕士学位论文 u s b 系统的拓朴结构。u s b 主机的逻辑结构可分为客户软件层( c 。n ts o l l w a r 、c - j 一l y e r ) , u s b 系统软件层( l s y s le ms o f t w a r ei 。f t y c 2 f ) 和u s b 主机控制器( 1 l o s tc o n t i 、o l l p rl ,h y e t ,) 三层。客户软件( c l i e n ts 0 1 a r e ) 是为个特定的u s b 设备而在主机上运行的软件。u s b 系统软侑u s bs y s t e ms o i = 【、 ,a r e ) 是指在某一特定的操作系统中支持u s b 的软件,主要包括 u s b d ( u s b 驱动) 、h c d ( 主机控帝4 器驱动) 。瞒1 3 主机控制器( l s b l o s tc o n i r 0 1 l e r ) 是总 线主机方的接口,用于支持嘲3 设名 连到主机上。 u s b 设备用于向主机提供一些额外的功能,所提供的功能是多种多样的,但面向主机 的接口是一致的,所有对于这些设备,主机可以用同样的方式来管理它们与u s b 有关的部 分。为了帮助主机识别u s b 设备,这些设备本身需要提供用于确认的信息,某些方面的信 息,所有的设备都是样的;而另一些方面的信息,由这些设备的具体功能决定。信息的 具体格式是不定的,由设备所处的设备级决定。u s b 设备的逻辑结构可分为u s l 3 总线接口 层( u s bb u s n l e r f a c el a y e r ) ,u s b 逻辑设备层( u s bd e v i l c el a y e r ) 和功能层( f u n e t i o n i a i y e f ) 三层。u s b 总线接口层提供了主机和设备之间的物理连接、发送连接、数据包连接。 u s b 设备层对u s b 系统软件是可见的,系统软件基于它所见的设备层来完成对设备一般 的u s b 操作。应用层可以通过与之相配合的客户软件向主机提供一些额外的功能。 实际上,u s b 数据通信是发生在主机端的客户软件和设备的端点之间。数据在主机端 经过客户软件层、u s b 系统软件层和主机控制器三仰窆辑层,在设备端经过l :s b 总线接口 层、u s b 设备层和功能层。从逻辑上看,u s b 设备层与u s b 系统软件层对应,刮门完成i _ s b 设备一些基本的、共有的工作。功能层和客户软件层通信,它们实现单个u s b 设备特有的 功能。在编程时,客户软件通过l s b 系统软件提供的编程接口操作对应的设备,而不是直 接通过操作内存或i o 来实现。下图2 6 是详细的数据通信流模型,它是在图2 5 基础上 增加了每一层的些细节。 在系统软件层和l s b 设备层之间有一条缺省管道,通过它主机与设备的端点0 通信, 实现一些u s b 设备的基本控制功能。在客户软件层和功能层有多组通信酾酋,它们实现嘲j 设备的特定通信功能。我们所述的这些通信都是从逻辑匕分析的,实际的信号物理流程图 上也表示了。以信号从主机流向设备为例:客户软件经u s b d 传送给系统软件的数据是不具 有u s b 通信格式的数据。系统软件对这些数据分帧,实现带宽分配策略,而后交给u s b 主 机控韦4 器。主机控制器对数据按u s b 格式打包,实现传输事务,再经串行接口引擎( s i e ) 后将数据最终转化为符合u s b 电气特征的差分码从u s b 电缆发往设备。数据到达设备后是 西北t 业大学硕士学位论文 一髓镐辫蠢铲 图2 6u 锄数据流通倩详细模型 一卟j 扔嘶呈。在设备层中将数据解码,发往不同端点的数据包被分开并正确排列,帧结构 被拆除,数据成为非u s b 格式的。而后数据送往各端点,实现通讯。 在主机端还有h c d 和u s b d 两个接口层。h c d 的全称为主机控制驱动( h o s tc o n t r o l d r jv e r ) ,它是对主机控制器硬件的一个抽象,提供和u s b 系统软件之间的软件接口。不同 种p c 的主机控制器硬件实瑚并不样,但有了h c d ,u s b 系统软件可以不必理会各种h ( 勋 具有何种资源,数据如何打包等问题。尤其是h c d 隐藏了怎样实现根集线器的细节,对于 西北工业大学硕士学位论文 主机的集线器控制而言,根集线器控制与一般u s bj l u b 完全一样。0 s b 【) 全称为l , h b 驱动( 3 i ) r iv e t ) ,它是客户软件和u s b 系统软件的接口,能让客户方便地对设备进行控制和通信, 是u s b 系统中十分重要的一环。实际上从客户软件的角度看,u s b i ) 控制着所有的u s b 设备, 而客户对设备的控制和所要发送的数据只要交给u s b d 就可以了。u s b i 为客户软件提供两 种软件机制:命令机制( c o m m a n d m e c h a n i s m ) 和管i 首机制( p i p e m e c h a n i s i n ) 。客户软件通过 i 葑i 令机制可以访问所有设备的端点0 ,从而实i w 对设备的配置和其它一些基本的控制工作。 管j 重机制允许客户和设备实现特定的通信功能。 2 3 1 包( p a c k e t ) 包是u s b 系统中信启专输的基本单元,所有的数据都是经过打包后在总线上传输的。 u s b 包由5 个部分妇成,即同步字段( s y n c h r o n i z a t i o n s e q t m e n c e ,简称s y n c ) 、包标识符字 段( p a c k e ti d e n t i f i c a t i o n ,简称p i d ) 、数据字段、循环e 徽c r c ) 字段和包结尾( e n do f p a c k e t ,简称e o k 字段,图2 7 显示了包格式。在u s b 数据传输中,所有的传输包者陡 始于同步序歹u ( s y n c ,接着是包标识锨p l d ) ,后面是包中所包含的数据信息,接下来是 用于检测包中数据错误的循环冗余校验信息,最后以包结尾作为结束标志。 i 同( s 步y n 字c 段) 19 j :嘉擎i 数据字段 lc 瓯字段1 包嚣孑段l 图2 7i j s b 势掳拖蝣构 为了满足不同类型的数据通信需求,u s b 总线支持不同类型数据包结构。根据p d 类 型,u s b 规范支持4 类不同类型的包:令牌包、数据包、握手包和专用包,如表2 1 所示。 表2 i 包标讽嬲 p d 类型名称编码 3 :0 描述 令牌输出( o u t ) 0 0 0 1 b 从主机到设备的数据传输 ( t o k e n )输入( 【n ) 1 0 0 1 b 从设备到主机的数据传输 帧j t - 女f i ( s ( f ) 0 l o i b帧开始标识和帧号 西北:业大学硕士学位论文 建立( s e t u p )1 1 0 1 b 从主机全u 设备,表不要进行控制传 输 数据数据0 ( d a t a o ) o ( ) l l b 同步切换为0 的数据包 ( d a 7 f a )数据1 ( d a t a i )1 0 l l b 同步切换为l 的数据包 握手确认( 胍k ) 0 ( ) “) f 接收端收到无羞错的数据包: ( t l a n c l s h l l k 曲 不确认( a k ) 1 0 i o b 接收设备不能接收数据或发送设备 不能发送数据: 停止( s 1 w 。l )l l l 0 b设备的端点挂起,或一个控制传输 命令不被支持。 专用前同步( p r e ) 1 1 0 0 b 主机发送的前同步字。打开到低速 ( g p e c i 。1 1 )设备的下行总线i 酣言。 2 3 1 事务处理( t r a n s a t i o n ) 在u s b 上数据信息的一次接收或发送的处理过程称为事务处理,事务处理类型包括输 入事务处理、输出事务处理、设氰s e “j p ) 事务处理、帧- 开女r s o f ) 事务处理和帧结尾( e o f ) 事务处理等类型。数据传输方向都是以u s b 主机为主体来描述的,输入表示主机从设备端 接收数据,输出表示主机向设备发送数据。它的整们立程一般包括令牌包、数据包和握手 包3 部分或其中的几部分,这3 部分的发送是有时间先后顺枣的,先发送令牌包,其次是 数据包,最后是握手包。为了更好地表示时间上的顺序,协议使用时相( p h a s e ) 的概念,即: 令牌时相、数据时相和握手时相,三个时相是连续的。此外,全速事务处理和低速事务处 理略有不同,如果低速事务处理的数据传输方向是从主机到设备的,则需要加个前导包。 2 3 3 帧( f r a m e ) 从时崎j 单位来看,一帧的长度为l m s 。系统中所有的事务处理过程都是在卟以帧为 单位的时间周期内完成的。帧可以容纳四种传输类型的许多事务处理过程,l s bv t d t 决 定菜段时间内和哪个设备完成一次事务处理过程。为了完成与设备的一次事务处理过程, l s l 3 主机在1 贞内根据一定的规则为总线上的设备分配一定的数据传输时间,如果剩余的 空闲时间能完成此过程,则进行分配,否则不能分配。如图2 8 显示了帧、事务处理和包 的关系。u s b 系统中不同的数据传输过程可以说是时分复用的,只不过每一卟过程不是定 长的,而且通信是半双工的,某个时刻只有一个主体在占用总线。 曲匕 业大学硕士学位论文 1 t ) 请求包( 由轻三| ) 程序i 发出) l11 加请求包【由驰动程序2 发出2 愕蚓一硎l 事臀理l降矧 事臀理j 一纠 毒妻 j j 二 帧l l帧2l- 瞳3 事务处理lo f1 事务处理2 ( ) 1 事务处理2 。i1 1 事务处理卜【 | 事务处理22 1 i 事务处理l2 f i jj 心 牌包数据包掘手包令牌包数据包 握干包 心步字段f ,f d设备地址瑞甑号 ( r ( 。5同步字段p i 数据( r c l6同步字段 p l 图2 8u s b 鼙螺i | j 赶、事务处理和蓟据包 从长度来看,帧的数据长度为1 2 0 0 0 比特( 通过1 2 m b t s 的速率得到的) ,如果所有 的事务处理不能占满整个帧长,主机会填充空闲位。理论上,一帧中可以包含1 5 0 0 个字节 的未加工的全速数据,但出于仂设的因素和位填充等原因,实际包含的数据要少。 2 4 数据传输 图2 9 示例了l s b 主机和设备通信的过程。在数据传输过程中,首先由客户驱动程宁 发起一个输入输出请求( i r ,将它提交给u s b 协议软件;协议软件将此请求划分个或多 个数据传输,每个数据传输又分成多个事务处理;当此请求所包含的所有数据都完成时, l 邮协议软件会通知客户端驱动程序请求结束。 为了满足多种不同类型设备数据通信的要求,t s b 协议提供了四种不同类型的数据传 输:控制传输、块传输、中断传渝和同步传输,其中控韦憔输建立的管道属于消息管道, 其它- - f 嫩的管道属于流管道。表2 2 介绍了不同类型传输的特点。下面对四种传输类 型逐一做介绍

温馨提示

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

评论

0/150

提交评论