(机械电子工程专业论文)通用串行总线体系(usb)结构研究及其实现.pdf_第1页
(机械电子工程专业论文)通用串行总线体系(usb)结构研究及其实现.pdf_第2页
(机械电子工程专业论文)通用串行总线体系(usb)结构研究及其实现.pdf_第3页
(机械电子工程专业论文)通用串行总线体系(usb)结构研究及其实现.pdf_第4页
(机械电子工程专业论文)通用串行总线体系(usb)结构研究及其实现.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

(机械电子工程专业论文)通用串行总线体系(usb)结构研究及其实现.pdf.pdf 免费下载

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

文档简介

摘要 本论文主要是对当翦的u s b 体系结构傲了深入的研究,从体系结襁上对u s b 标准和它的实现电路作了探悉,在研究了u s b 体系结构的前提下,选用现在市场 上楣对便宜露且能够完成u s b 系统仿真懿芯片,来实瑷u s b 黢篱竣标狴。 论文第章绪论,主要分缓了u s b 静发展背豢鞠它翡现状,款多个螽爱搽讨 了u s b 的发展和实现情况;第二章背景知识,对u s b 背景知识作简单描述,其中 主要包括设计磊标、体系结构、总线特性及u s b 的滔种传输方式的简单介绍,以 及现行技术特点。第三章硬件板体系结构设计及实现,主要描述u s b 硬件电路开 发板的基本构架和一些相关的电气特性和硬件实现手段和方法:第四章固件程 序设计和实职,主要禽绍u s b 开发投的固件程序设计,和实现的些方法。选耀 的芯片p d i u s b d l 2 是一款带有并行总线和局部d m a 传输能力的高速u s b 接 口器传,国馋浚诗熬鬟稼裁爨,使p d i u s b d l 2 在u s b 上达裂最大筑传输遮率, 使例如打印机、扫描仪、外部的海量存储器和数码相机,都可使用p d i u s b d l 2 在 u s b 主传输数据:第五章羔撬程序体系设计帮实现,主要分绍主税酌应用程序 的基本结构和实现,在基于实现者视图的前提下,完成u s b 开发板的主机程序的 开笈。 通过对u s b 体系的研究、开发板的设计、软件程序的设计,在整体上对u s b 的研究有了定的深凄,也提裹了系统知识毒开发能力。 关键词:通用串行总线、串行接口引擎、u s b 集线器、直接存储器寻址、同 步传竣、中龋传竣、控铡传埝、爨乏量传埝 a b st r a c t t h i sp a p e rm a i ni nd e e ps t u d yo fu s bs y s t e mc o n s t r u c t i o n a f t e r s t u d y i n g f r o mt h es y s t e mc o n s t r u c t i o n ,l e a r n i n g t h eu s bs t a n d a r d , d e s i g n i n gt h ee l e c t r i cc i r c u i t s ,w ec h o o s et h ec h e a p a n du s e f u lc h i pf o r t h ec i r c u i td e s i g n i n ga n dr e a l i z e t h eu s bs t a n d a r da n d s o m eo fi t s f 1 1 n c t o n s t h ef i r s t c h a p t e r i si n t r o d u c t i o no fu s b sb a c k g r o u n d a n d a c t u a lit y ,f r o mp o i n t so fv i e w ,s t u d y i n gt h e j s b sd e v e l o p m e n t ;t h e s e c o n dc h a p t e ri st h eb a c k g r o u n dk n o w l e d g eo fu s ba n ds o f t w a r eo fca n d v c 。m a i ni n c l u d et h e p u r p o s e o fd e s i g n i n g 、s y s t e ms t r u c t u r e 、 c h a r a c t e r i s t i co fb u s 、a n df o u rk i n d so fd a t at r a n s f e r r i n g :t h et h ir d c h a p t e ri st h ed e s i g n i n ga n dr e a l i z i n go fe l e c t r i cb o a r d d e s c r i b e dt h e c o n s t r u e t i o no fe l e c t r i cb o a r da n ds o m er e i a t e de l e c t r i cc h a r a c t e r s : t h ef o u r t h c h a p t e r i st h e c h i p s s o f t w a r e d e s i g n i n g a n dit s r e a l i z a t i o n ,i n t r o d u c e dt h es o f t w a r eo fc h i p ss t r u c t u r ea n dd e b u g g i n g f o rt h ep u r p o s eo fg a i n i n gt h ef a s t e s tt r a n s f e rs p e e d ,w ec h o s ep d i u s b d l 2 c h ipo fp h i1i p ,f o rt h et l s eo fp r i n t e ra n ds c a n n e ra n ds o m eo u t e rm e m o r y : t h ef i f t hc h a p t e ri 8t h eu s e ri n t e r f a c es o f t w a r ed e s i g n ,m a i ni nt h e d e s i g n i n go fa p p l i c a t i o ns o f t w a r ef o ru s e r 。 a c c o r d i n gt ot h ed e v e l o p m e n to fu s bs y s t e m 、d e v e l o p m e n tb o a r dd e s ig n a n ds o f t w a r ed e s i g n ,i m p r o v e dt h ea b i l i t yo fd e v e l o p m e n ta n dk n o w l e d g e b a c k g r o u n d k e y w o r d s :u s b ,s i e 、h u b 、d m a ,i s o 、i n t e r r u p tt r a n s f e r s i s o c h r o n o u st r a n s f e r s 、b u l kt r a n s f e r s 、c o n t r o lt r a n s f e ! 一 2 第一章绪论 1 1 课题背景 1 1 1u s b 的发展起因 i n t e l 公司开发的通用串行总线架构( u s b ) 的目的主要基于以下三方面考虑: ( 一) 计算机与电话之间的连接 ( 二) 易用性 ( 三) 端口扩充 1 1 2u s b 规范的目标 规范了u s b 的工业标准。该规范介绍了u s b 的总线特点、协议内容、事务种 类、总线管理、接口编程的设计,以及建立系统、制造外围设备所需的标准。 1 1 3 实用对象 该规范主要面向外设开发商和系统生产商。并且提供了许多有价值的信息 给操作系统b o s 设备驱动平台、i h v s i s v s 适配器,以及各种计算机生产:厂家 使用。 该u s b 版本的规范可以用来设计开发新产品,改进一些经典的模型,弗丌 发相应的软件。 1 1 4 整体概况及其发展 以下四个方面是u s b 技术得以广泛发展和应用的主要原因: 1 、方便 使用u s b 接e l 可以连接多个不同的设备,而过去的串口和并口只能接一个 没备,因此,从一个设备转而使用另个设备时不得不关机,拆下这个,安上那 个,开机再使用,u s b 则为用户省去了这些麻烦,除了可以把多个设备串接在 起之外,u s b 还支持热插拔,设备的人工切换也因此变得省时省力。 在软件方面,u s b 设计的驱动程序和应用软件可以自动启动,无需用户做 更多的操作,这同样为用户带来极大的方便( 参见下文“u s b 的应用1 。 另外,u s b 设备也不涉及i r q 冲突问题。u s b 口单独使用自己的保留中断, 不会同其它设备争用p c 机有限的资源,同样为用户省去了硬件配置的烦恼。 2 、速度 速度性能是u s b 技术的突出特点之一。u s b 接口的最高传输率可达每秒 1 2 m b ,比串口快了整整1 0 0 倍! 这使得高分辨率、真彩色的大容量图像的实时传 送成为可能。 3 、连接 u s b 接广:】支持多个不同设备的串列连接,一个u s b 口理论上可以连接1 2 7 个u s b 设备。连接的方式也十分灵活,既可以使用串行连接,也可以使用中枢 转接头( h u b ) ,把多个设备连接在一起,再同p c 机的u s bl 相接。 4 、电源 普通的使用串口、并口的设备都需要单独的供电系统,而u s b 设备则不需 要,凶为u s b 接口内部提供了u s b 设备,如扫描仪、数码相机等所需的电能。 1 1 5u s b 存在的问题 尽管在理论上,u s b 可以实现高达1 2 7 个设备的串列连接,但是在实际应 用中,也许串联3 到4 个设备就可能导致一些设备失效。而且,实际的u s b 产 l 铺中,只有键盘是有一个输入口、。个输出口的设备,其它的则只有一个输入口 而已,根本无法再连接下个u s b 设备,所以当前的u s b 应用中,使用h u b 来连接多个u s b 设备是必需的。 另一个问题出在u s b 的电源上,尽管u s b 本身可以提供5 0 0 m a 的电力, 但一旦碰到高电耗的设备,就会导致供电不足。解决这个问题的办法仍然是使用 h u b 。网此,配置一个包括键盘、数码相机( 摄像机) 和扫描仪在内的u s b 系统, 用户还要额外花费七、八百元人民币来购买h u b 。另外一个变通的方法,就是串 接两个u s b 设备,对其它的u s b 设备进行热插拨,不过,这虽然省了钱,却费 了事儿。 至于产生问题的原因,u s b 的丌发商认为问题不在于u s b 接口本身,而是 由于u s b 设备的产品不符合标准造成的。 1 1 6 升级到u s b 一些早期的p c 机没有内置u s b 接口,但这并不等于u s b 把这些p c 机抛 到九霄云外置之不顾。使用这些早期p c 机的用户可以通过购买u s b 接口每来 升级自己的电脑,使之具备u s b 功能。 通常的u s b 号都是p c i 卡,带有两个u s b 口。只要把这张卡插入p c i 插槽 中,并安装上驱动软件,虢可醣达到雪瓣了。嗣莳,市诖;! l 上提供u s b 卡的著名 厂商有两家,一个是e n t r e g a ,另一个是b e l k i n 。 1 1 7u s b 的应用 到鞫前为止,u s b 已经在p c 机的多种外设上得到应用,包括扫撼仪、数码 相机、数码摄像机、音频系统、显示器、输入设备等等。 扫攒仪移数鹦提枧 9 9 ) 的全扫描设计确保了高品质 ”双电源操作3 3 + 0 3 v 或扩展的5 v 电源,范围为3 6 - 5 5 v ! ”多中断模式实现批量和同步传输 3 2 1 p d i u s b d l 2 功能框图及其描述 模拟收发器 集成的收发器接口可通过终端电阻直接与u s b 电缆相连 电压调整器 片内集成了一个3 3 v 的调整器用于模拟收发器的供电该电压还作为输出连接 到外部1 5 k 的上拉电阻可选:j 犀p d i u s b d l 2 提供的带1 5 k 内部上拉电阻的软件 连接技术 p l l 片内集成了6 m 到4 8 m 时钟乘法p l l 这样就可使用低成本的6 m 晶振e m i 也随之降 氏p l l 的工作不需要外部元件 位时钟恢复 位时钟恢复电路使用4 x 过采样规则从进入的u s b 数据流中恢复时钟它能跟踪 u s b 规定范围内的抖动和频漂 p h i l i p s 串行接口引擎p s i e p h i l i p ss i e 实现了全部的u s b ,协议层完全由硬件实现而不需要固件的参与该 模块的功能,包括同步模式的识别,并t ? 串行转换位填充解除,填充c r c 校验 产生p i d 校验产生地址识别和握手评估产生 s o f t c o n n e c t t m 与u s b 的连接是通过1 5 k 上拉电阻将d + 用于高速u s b 器件置为高实现的 1 5 k 上拉电阻集成在p d i u s b d l 2 片内默认状态下不与v c c 相连,连接的建立,通 过外部系统微控制器发送命令来实现,这就允许系统微控制器在决定与u s b 建 立连接之前,完成初始化时序u s b 总线连接,可以重新初始化而不需要拔出电缆, p d i u s b d l 2 在连接可以建立之前会检钡o u s bv b u s 是否可用,v b u s 可通过g o tn 管脚进行检测需要注意的是内部电阻的误差2 5 大于u s b 规格的5 ,但用于连 接的v s e 电压规格仍然有足够的余量,s o f t c o n n e c t t m 是p h i l i p s 半导体一项尚 未获批准的专利技术 g o o d l i n k t m g o o d l i n k t m 技术可提供良好的u s b 连接指示在枚举中l e d 指示根据通信的 状况间歇闪烁,当p d i u s b d l 2 成功地枚举和配置后,l e d 指示将一直点亮随后,与 p d i u s b d l 2 之问成功的传输带应答,将关闭l e d 处于挂起状态时l e d 将会关闭 该特性为u s b 器件集线器s n u s b 通信状态提供了用户友好的指示作为一个诊断 工具它对隔离,故障的设备是很有用的该特性降低了现场支持和热线的成本存储 器管理单元m m u 和集成r a m ,在以1 2 m s 的速率传输并与微控制器并口相连时,m m u 和集成r a m 作为u s b 之间速度差异的缓冲区,这就允许微控制器以它自己的速率 对u s b 信息包进行读写 并行和d m a 接口 一个普通的并行接口定义成易于使用快速而且可以与主流的微控制器直接 接口,对一个微控制器而言,p d i u s b d l 2 看起来就象一个带8 位数据总线和一个 地址位占用2 个位置的存储器件,p d i u s b d l 2 支持多元和非多元的地址和数据总 线,还支持主端点与本地共享r a m 之间直接读取的d m a 传输支持,单周期和突发模 式的d m a 传输 d m a 传输 直接存储器寻址( d m a ) 允许在主端点和本地共享存储器j 旬,实现数据块的有 效传输,使爝。翳a 控潮嚣,p d i u s b d l 2 薅主端点窥本逡莛享存谐器闽静鼗摆传羚, 可岛主进行而不需要本地c p u 的干预要处理任何d m a 传输本地c p u 从主机接收必 要的建立信息,并x , 于d m a 控案# 嚣进行橱应的编程,典型兹对d m a 控摹l 器游传输模式, 字节计数寄存器和地址计数嚣进行姬确的编程,在该模式下p d i u s b d l2 发出淆求 时,1 :始传输当字节计数器减少为零时终 :,庄d m a 控制器编程之厩,本地c p c 在 镪始他转输对,将p d i u s b d i2 中的蹦a 使能慢髓位, p d i u s b d l 2 可编程为荦周期d m a ,或突发模式d m a ,在单周期d m ar 和,d m r e q 在 每攀拿应豁后,直裂被d a c kn 重簇澈活之魏,缳撼恶效在突发模式,p 凇中0 臻r 鞠 在器件中突发编程时一直保持有效浚过槲持续到p d i u s b d l 2 通过e o tn 接收到 一个秘轰终止荣息,这时产生一个巾蘸,指示本趣c p u 溯a 撩俸已经完成 在d m a 读操作时,d m r e q 仅当缓冲区完全表示主机成功的发邀了一个信息包 至g p 0 1 晒b p l 2 孵才裔效出于具有疆缓冲配黉,主枕可以在第一个缓冲区被读出 时对第二个缓冲区进行填充,这神 :行的处理,有效的增加了数据吞吐量,当毛机 没有完全填满缓冲区的情况下,荦l t , i s o 蔼已餐对小于融或1 2 8 字节d m r e q 会在缓 冲区豹最螽一个字节时无效,甄不篱当麓黔0 臻a 突发计数,在里薮了d m a 突发诗数 的下一个龟发送时d m r e q 再次被激活 d m a 的篝操律与之耀似当缓冲区来装满黠,d 蓊r b q - - 蛊有效,当缓肄区填满黠 在下一个i n 标志将信息包邀入主机,当传输完成之后d m r b q 变为无效,同样的双 缓冲琵嚣在这篷改善了数摄鳆吞吐鼙,在非感步簧输串魏量模式和巾鳜森数爨被 发送到主机之前,缓冲区需要通过d m a 写操作完全裟满唯的例外煺,在d m a 传输 结束时羽l n 接收的信号涛会停止1 ) 凇写操作并且在下一个i n 标志鬣位对褥缓舞 区的内容传送到主机 在同步模式中,本地c p u 和d i a 控制器必须保证它们在一个u s b 帧( 1 n l s ) 噜 毯蟮霉蛙艇虽大售怠包麴缎模,d m a c k j 麴澈涎憋自动选撂主端点( 蠛点) ,甄不 管溺前选择的端点。p d i u s b d l 2 的d m a 操作可通过普通的i 0 对其它端点的存舣实 现交叉存取,陡a 操f # 可通过驭下方式终噩:复谴d m a 健韪,寄存器位或e o tn 加。芝 d m a c kn 以殿r dn w r u 的馓活 p d i u s b d l 2 支持荤遗蜓模式中的d m a 傣输,遣可以在d m a 控裁器的双遗址模式 中,工作在单地址模式中,d m a 通过d r e q ) m a c kn ,b o t _ n ,w r n 和r f j n 控制线实 现传输:在双地址模式中,d m r e q ,d m a c kn 着h e o tn 未用,取而代之的是c s ,w r _ n 和r d n 控制信号,需要遵循p d i u s b d l 2 的i o 模式传输协议在读周期中对d m a c 信 号源进行访问,在写周期对目标进行访问传输需要两个单独的总线周期来储存暂 存在d m a c 中的数据 端点描述 p d i u s b d l 2 的端点适用于不同类型的设备,例如图像打印机海量存储器和通 信设备端点可通过主端点s e tm o d e 命令配置为4 种不同的模式分别为 模式0n o n i s o 模式非同步传输 模式1i s o o u t 模式同步输出传输 模式2i s o i n 模式同步输入传输 模式3i s o 1 0 模式同步输入输出传输 碳式o 、非蠲些缦式 荣 7 i 枣包规 端点嚣端点鬻0 l传稚囊坠磷点啦型矗向 格i 串书) 0f 。i4 确一j :舞,jl o 01 联i 1卜制鞠k嚣,i 卅翅精4 :惭m 一 ji o i 豫,、 】o3 i ¥触桷凡泞耀 4搀琏钨t l州0。,- l“4 舟趣褊凡羚越豫 4 唆式1 i 阿多输m 攫式 舔 憾恩龟婉 端点数避点索日l传雅类型键点挺型矗向 撸【! # 曲一 n、,明蝻嚣。,: i “ ( , 甄i l 1 | j 捌 褊 l “ 指t j 川;” 翘麓。j m i m 镰一刖aj j i “ 4”。1 ,翰,j - i j 一 一:毒lli 二 磺式瓤同步输入镘式j 躐天憾恩觏艘 揣悫擞端点鬻 f体稚樊缆杰燮型,:l 向 浴 = = ;:_ 苷j 0p 划 _ _ j f i l t i l i p ,j 瞻1 、! l ( 、 ;性n 钢f辫棚齄,c ;l “ j 3 i :i t l 舟埔嚣,、 】( 、 4一, 铀人 ,卜0 磬。、i 二一 镘武30 司譬滴人铺出蠼式 端天,连尊塑舰 鹊悫数拣点鬻日l伟稚薹l 整蠕意燮型矗向 嫱【窜苇l “ “删铂1 | 5终。r “、 0致讽 l 护制鳓,、j h 、l b r f i i 【l 蚋1 | r 十均豫,5 “、 i i 棚韵,1 | 、啪女砖# 、 1 b 4一,;,蝻t | n 州, uj。 n ;,钧,| 、刈b,6 凡“4 。 主端点( 端点2 ) 在有些方面是比较特别的,它是进行吞吐大数据的主要端点 同样地它执行主机的特性以减轻传输大数据的任务 l :双缓冲允许u s b 与本地c p u 之间的并行读写操作,这样就增加了数据的吞吐 量,缓冲区切换是自动处理的这导致了透明的缓冲区操作 2 :支持d m a 直接存储器访问操作可以和对其它端点的正常i o 操作交叉进行 3 :d m a 操作中的自动指针处理在跨过缓冲区边界时不需要本地c p u 的干预 4 :可配置为同步传输或非同步( 批量和中断) 传输 管脚配置 | _ ) t a o d t t :1 - , 【_ ) i a 2 ) d 1 r a 3 g n d i - i a :a ( 4 d a 下a 5 o a r c 6 o a i a _ 7 a l c sn s u s p e n l ) c l k o l j l n 甲n 管脚描述 a 0 v o u t 3 3 o + d v d d x i a l 2 x t al 1 gl n r e 3 e n o l 一 o m _ a c kh o m r e o w r l n r d n 管脚符号类型描述 ii ) a j a ,( 1 ,1 0 2f t 州数拶“j0 i ) a 1 aj 、1 0 2越觳拟似i 3d 1 1 l a 二,1 0 2 z 融效捌1 j2 4d a i a 二3 、1 0 2坝瞄致橱“03 ( j n i )p建 “ d a l - a ,4 、1 0 2妖囱数拦“f ? i4 da - r m p1 0 2舣向效:似5 s d a l an ,1 0 2议向数捌f 一6 ( ) i ) a l r7 )1 0 2坂雕数捌f 07 j 垂,“一疗“、:强。九彰簪i 世j 盯数驯啦线,j 降? 蠢j :喇1 巴川、1 l )。、l - ei 娥f 。拦;j - r ;:? 为i “:,1 j 卜幽,滋蛰尊线“l 并。 j l( 、sn lr 毽( 骢 故) l !s lt s p e n di ( ) i ) 4i 。“ 4 j 、,。ji ;:、! :o t 菇 l jt ,k o it0 2 川? “阳q 蜘辘i 45 ( ) 1 4i n tn( ) d 4 ( 。墨f 设) l5 r d n i囊您避强“效, 1 0 w r n lt ,避锺( 嚣设 i71 ) m r f q0 4f ) m a :i j 羟 l 韩i ) f ( k n ld m a ;o ,7 ;- “峨散 d m aj i 弦毙墩( j ;如设) 。e 0 1 - _ n 漩”1d m a k n1 | _ lr l n i # ( h n l ,l w rn 魏激:,i - 1 4n 设- “f - 1 j t f i i ;0 、i 。j ) 。i 趣5 ”f o l j i # ,矗 j 移,j i :j :、* t :( 1 r e j ;e 1 一n l y 一 : ( 罐一k 越) 采( i 悱硝l l k te 1 ) 箝,l 、撵( 躲n 教) x 1 l f 巷;土羔 膏j t ( m l d z ) i i 纵理垃:高2 ( m i z ) 。2 l 朱袋,;j 饼、球;7 站m 。墩j 、! 孙+ i 三 ) c i a i2 ) x i a l 1 。x i a l2 ;知1 m 。 f j :澍垃i 、( 4 o v t 55 v j ,爱他器要;轩,13 j v ,qkf _ f f 、5 “_ ? : 2 4v “、p 尊9 蔓。 j td t3j v 。 2 5i ) at ;s bd “援井:? 2 6d o a0 s b du 数贽j 技 3 1 、l 冀壁辅描。1 姿:嚣律! 印卉j3 3 v ,tu 1 - l 、0 1 j j 朝撵一 v ( l p j13 j 、1 。 ,土j i7 j 。a 01 。鱼l f ;智 | _ r 夸,a o ” jj 鱼j t 酸知。:;、。“ 一j j 二8a nl f 、致彭泣强二乏强,o 忽略,”j 善i j 眩;毫 、一+ | 。; 1 _ 0 2 :2 m a l 、堪j 输, ; ( ) d r :8 1 1 l a l 弘f 曲j ! # “ 是 念令汇总 0 1 ) 4 :4 m a :射z 巩j t ;靶i 翻 1024ma4 采 : 命令名 l 按岐糟i 编鹳数播 # j 。t 每 i z i 电n | 愆矗= 圳 1 ) n f i ,。 j j :o 一+ j f 。,陡搿f i i ) 8 h jl ,j i3 7 :, 茹到 l :j | l 。j2 ;。 o f ) m a 搿辩 f f l h 1 j 、 j 。* 致搿溉船分 曩l 瓤鼍“譬嚣j l i ;4 h i 鬟2j ,l j 二, 曩;j 电;:j 目祷 承m 叫l ;1 ( f “至) 辛;,i 输,、 0 l | l 矗 ;5 j ( ,tj t 二) , j ii ,51 1 2 h 蠢1jj ( s :i 二。 _ l j i 譬 g h t ,t rt ;: 。二 曩 一二i2 自7 0 4 h ir l ej 。二。) ? - u o :瓣【) 5 h i 二i ,j ( 川,k 、i 3 ;:- p ”ll 、: 势翻翁津 4 0 h 砖ij ;j :j 剖虢卫、 4 l h 。tlj + ;j 。l ii = ! :i + j 4 2 h 眩l ! “二 t c ,;j ? 喾, 4 3 h t ;l , 一一,f 、蔓、i ,:4 4 h :ffj _ j 。, 2 i1 ;寸 。 4 j h i ? ij ;缓弹; 溢抒1 0 ;o h 曩n ,“c 。1 ;,戮;j 主 麴矗t il :o h + ,n ,昔 【一;一:j 像冬:? 唔i 虢m4 0 h t ;、! j :j ,+ 、, 虢凡 4 l j jl _ ;_ 袖 珐蛊i 盼汜 4 2 h ;t1 7 ? “0l ;争 4 3 h ,。i ? “ “n ? :j i j : 4 4 h ji ? i 一二,”6 p 4 i h ,l5 j i 。,尊爱l :?t 童抒t 托;, f ? 1 l l ? i ,卜f l 。,蠢扑嚣;“。il :2 h , 擘j i l 、h7 。二j # 曩,”, i :a h 命令描述 有3 种基本的类型的命令初始化数据流和通用命令 初始化命令在u s b 网络进行枚举处理时使用,这些命令用于使能端点的功能, 还可用来设置u s b 分配的地址 设置地址使能 命令d o h 数据写i 字节 该命令用于设置u s b 分配的地址和使能功能 恐l :;入妨能潮为i 色腱 键澄鞭“惠糍:嚷功稔 设置端点使能 命令d 8 h 数据写1 字节 通过设置设置地址使能命令后才可使能普通同步端点 恐眨 使隧 设置模式 命令f 3 h ;入韵缎鞠l 为地蟪 鞭i 缆绳浚功畿 数据写2 字节 设置模式命令后跟2 个写入的数据第一个字节包含配置字节信息第二个字节 是时钟分频因素字节配置字节 点三l 盎z y ( 1 0 c kt 淼永c i k o u i d ;会谰换鲷l a 州1 l 饿k 。0 爱球c i k o u l 卉s u s p e n d 鄹受i 岛之瓤v ;_ j 援 颤蜒式 s o r c o n n :| 筑i a z y c l o c k ti , , a z y ( 1 0 c k 麴警楚3 0 k h z j :4 t 戡, 。犏爨稽鞠l :过会效毒薹浅疑位i i i | i 变。 1 荻一、内簿i 叶静稚ip l l 攀缝舟挂趣敞奄f 掰然运行。0 捉乐 l 瘿i 镒震时,;越嚣:时钟、 晶擞霹;p l ,溉尊m 迈;。为f 漤赴,坷臻的挂越 馥浚偻求法袋罐簦躞麓为0 。缡书 豹侬l :套皱毖缝簸怒i 韩淑爱; l 爱小搬嚣f 斯仃的镪j ; i i ”n a k i n g ”露产俸 个- t 嘲。0 裁承j 彳i ( ) k 凝,| 1 :。鳓幸l _ 懿、会被总线簸能掰戌赍。 1 1 蓖帮翰黑v b u s 训闭一p i ,致粼 :抛电黼溉被琏援。0 裁夺l :连援。已缝瓣的嚣;l : 会敝憩线毙挝n i 段蹙。 豫2 照泣程蠖点粼髓翻lf 骥妓0 ( 氆潮步艇或) 睾建成i l ;多构; i 模式, 筏式2 鲥涉输入裁式) 搂一3 蹦多辅入礴自班竣式j 时钟分频系数字节 s i 。f - f o 一0 n 嵌熊羽采裁0 ( e 。k o u l 瀚秘 | 分燕囊蕞数。掰n 柱口:强蚓,承数i 群幺秧1 1 * l 瞽搿:对 4 8 m j i * 【n ,i 。蛭挺钠为】1 。这,“g - 4 m i z 能瓣鞫磷t 然怨;朋 j “l _ ,划社。、 n 勾0 时。搿j 、t 最凡嗣j 私4 8 m h z 。 n 敬域凡i 雩荆制越,j 、灏串4 m l t z p d r ! s i i d l 2 娓啦引确辣j 。蠹r 救蹙瓣! 帮 l 寸夺允m 避钱。l 三皴糕的饿,1 i 盘敞藕线瓴能陵t 气馁。 限髓般曩陌r q 】) m 礁戏j 擞雏之| i 矬为1 。i :羲纯曲;: 乜艇钯f i i c 为t 。蹙柠蝣l q 替 强;“譬为1 。 蝌磴式稿瑗他霹1 曩:,饭”辩z f t ; i ! _ ( j 缸赫( s o r ) i i , 博 哼 越小黼l j :j ,h 盹夺盼0 l 辫 辩 = c = 戒的i 蹙鬻拭融 矬褥d m a 纯5 ) 。 2 4 设簧d m a 命令f b h 数据读写1 字节 设鬣d m a 命令后跟1 个字节数据写入读出d m a 配置寄存器 d m a f l 0 置寄存器 在d m a 操作中两字节的缓冲区头( 状态和字节长度信息) 不参与传送,遮就允 许t d m a 数据的连续性,不捶入信息头d m a 读操作时信息头被p d i u s b d l 2 跳避,在 d m a 写操作时,信息头由p d i u s b d l 2 自动添加这就提供了一个简洁的d m a 数据传输 d m a 突发串选择d m a 操作的突发串长度 攀溪期d m a 0 l 突发串4 周期d m a 1 0 突发串8 周期d m a l i 突发串1 6 周期d m a d m a 使能 肉该位写a i 会通过激活嘲r 鼹扁动d m a 操作,在激 活d m r e q 之前,霭要装滤 ( d m a 读操作) 或清窀( d m a 写操作) 主端点缓冲区在单周期d m a 模式中,d m r e q 在 突发串数弱耗尽磊无效,然焉下一个突发串辩重瑟激活这个过程,一矗簿续到 f o t n 和d m a c k n 以及r d n 或w r n 起被激活,此时将该位置0 并终止d m a 操作,d m a 操份也可邋过直接扁该霞写入0 来终止 d m a 方向 该位决定t d m a 传输时数据流的方向l 表示从外部共享存储器至o p d i u s b d l 2 ( d m a 写 操作) ;o 表示从p d i u s b d l2 到外部共攀存储嚣d m a 读操作 鸯动萋装 当该位设为ld m a 操作会自动重新扁动 中繇辩模式 中鞭接龙 黔镑分薮聚数鬻簿瓣毽7 :浚萎8 鼢蔫襻擂髓5 : 仅稻s o f 中搿檬式常断脚横浅 中辩i 瓣型 拧 辞 敷定 i 鞭 o n j 0 ; :辩i 睁辍) j : 1 x 缴ns o f ;t 衢 o 表示砸常的中断脚模式,中断寄存器所有位的逻辑或产生中断,当该位写入 l 时,袭示中蟥会在醛b 总线上行数摇流出瑷帧对镑( s o f 、起始位羁李产生中戥,其 它中断仍然有效 3 ,2 。2 电黪漂理匿黎基本翦按木瓣越簿决方法 d 1 2 与8 9 c 5 2 的接口 a l e 接为低电平,袭示个独立的地址和数据总线龊置,p d i u s b d l 2 的a 0 脚与 8 艇l 戆任意一个! 内西枢莲,该潺霹控豢归激鞋鼹0 1 2 鹣螽令葶孬数据状态,8 0 c 5 1 的多位地址和数据总线可直接与p d i u s b d l 2 的数据总线相连,8 0 c 5 t 的频率输入 出p d i u s b d l 2 魏c l k o u t 提供 挂起和复位电路 黧嗣娜渤麟z 瓣穗珊 挂起和复位电路被设计在一起,允许器件进入挂起模式还可以达到在u s b 规格r e v 1 1 中所陈述的挂起限制电流 执行此功能以后将强迫m c u 进入掉电模式m c u 振荡器停止工作,只有硬 件复位才能唤醒m c u 工作,从这个电路中复位信号是连接到复位电路的,当上位 p c 机从挂起状态恢复时,将导致d 1 2 触发挂起信号,并通过上面的电路而产生 复位信号,仅通过i o 口方式访问的电路板能够达蛩j s o oa 的挂起电流,在使用 c p l d 的方案中,它是不可能达n u s b 挂起电路规格的,这是因为c p l d 不可能 被挂起在其工作过程中将消耗超过1 0 0 m a 的电流,在p c 挂起模式下供给 c o m p a c tf l a s h 卡的电源将同样被切断 开发板原理图结构 下面是设计u s b 的开发扳的原理图,主要描述了基于d 1 2 的开发板的各个元 器件的接口电路和相关外围电路,后面章节的固件和应用程序代码都是基于这个 开发板的这里暂时贴出主要部分的原理图,以备后面讲述时使用 本原理图的主要器件是d 1 2 和一片8 9 c 5 2 的芯片,本系统整体结构的软件硬件 设计都是在这个基础上的,其中硬件代码是写入至t j 8 9 c 5 2 里面的,而应用程序是在 d 1 2 器件驱动程序的基础上,利用各个通道实现各种传输的测试的主要的测试通 道有同步传输通道,中断传输通道,控制传输,批量传输等,其中主要是控制传输 的使用 = _ e :搴 翟氛x 3 :走 第四章固件程序设计和实现 4 1 本章小节 本章主要介绍u s b 开发板的固件程序设计,和实现的一些方法p d i u s b d l 2 是一款带有并行总线和局部d m a 传输能力的高速u s b 接口器件,固件设计的目 标就是,使p d i u s b d l 2 在u s b 上达到最大的传输速率,外围设备,例如打印机、 扫描仪、外部的海量存储器和数码相机,都可使用p d i u s b d l 2 在u s b 上传输数 据这些设备的c p u 要忙于处理许多设备控制和数据,以及图像处理等任 务,p d i u s b d l 2 的固件设计成完全的中断驱动,当c p u 处理前台任务时,u s b 的传输可在后台进行,这就确保了最佳的传输速率和更好的软件结构同时简化了 编程和调试 后台i s r 中断服务程序和前台主程序循环之间的数据交换,通过事件标志和 数据缓冲区来实现,例o l j p d i u s b d l 2 的批量输出端点,可使用循环的数据缓冲 区当p d i u s b d l 2 从u s b 收到一个数据包,那么就对c p u 产生一个中断请 求,c p u 立即响应中断在i s r 中固件将数据包从p d i u s b d l 2 内部缓冲区移到循 环数据缓冲区,并在随后清零,p d i u s b d l 2 的内部缓冲区以使能接收新的数据 包,c p u 可以继续它当前的前台任务,直到完成例如打印当前页然后返回到主 循环检查循环缓冲区内是否有新的数据,并开始其它的前台任务 由于这种结构主循环不关心数据是来i 刍u s b 串口还是并口,它只检查循环 缓冲区内需要处理的新数据,这个概念很重要,这样主循环程序专注于数据的处 理,而i s r 能够以最大可能的速度进行数据的传输 相似的控制端点在数据包处理时,采用了同样的概念,i s r 接收和保存数据 缓冲区中的控制镥输,并设置相应的标志寄存器,主循环囱协议处理程序发出请 求,由于所有的标准器件级别和厂商请求都是在协议处理程序中进行处3 臻i s r ,得 以保持它的效率,而且一旦增加新的请求,只需簧在协议瑶进行修改。 固件结构 4 2 基于d i d a 模试的数据传输 这晕在做u s b 体系开发时,根据选用的芯片,充分利用芯片的长处和优势,采 用特有的d m a 模式编写了硬件程序。它的特点是读写速度炔 p d i u s b d l 2 有6 个端点其中2 个控制端点2 个普通端点和2 个主端点主 溅点支持d m a 传羧。在篓子协议瓣d m a 操作中,主枫应鬻程序谬润器 串静国 件,以通过由控制端点发送的厂商请求建立d m a 传输,在主端点上执行实际的 拙耋数据俦输在d m a 控稍器建立之后,主税可囱器件传输最多为6 4 k 字节的数 搬,不需要任何固件的干预 个完整的d m a 传输臻求以下两个步骤 1 ) 通过主管道发送一个请求并允许器件用d m a 抟输,方趣起始地址和传辕趣 格对d m a c 进行编程 2 ) 在主蠛点上发送或接收数据包 器件d m a 状态 建, 寺d m a 请求遗过控铡管道捧为厂商请求从主孝蔻发出,器件的嗡应和动作依 赖于d m a 操作的状态 下图所示为器件中d m a 的3 种状态,i d l er u n n i n g 矛t l p e n d i n g ,如果 没有运行或推迟d m a ,操作器件处于i d l e 状态,那么建立d m a 请求由a c k 进行响应,如果器件在d m a 传输的过程中就是r u n n i n g 状态,建立d m a 请 求由n a k 进行响应,并导致器件进入p e n d i n g 状态,这表示有一个推迟的,建 立d m a 请求,如果器件在p e n d i n g 状态中接收到另一个,建立d m a 请求新的 请求将覆盖旧的请求p e n d j n g 。 4 3 建立d m a 请求和e o t 的程序流程图 d m 矗配鬣寄存舔 d 1 2 豹d m a 操作囊其d m a 配置餐存器逃行控制,该寄存嚣出设攫 d m a 命令设置,寄存器中不是所有的位都和d m a 操作商关,位4 中断脚模式 秘链7 辩镑分频系数控鑫j d l 2 熬錾源 下表所永为推荐的寄存器编程汇总 谴名称0 黏禳式菲澈模式 0 l d m a 孚蟹枣 、i 、1 l 戈荚 2 d m a 蘩麓 l 奄 3 d m a 巷翔。l 、懑,讯蝽志戈跫 1 。溪1 l :o u t 辆耋 4 门或蕺装 o 戈篾 、 t t 鼙辫摸武 4 搭巷1 * 6 鬻点4 i ;t 矫登爱 o 、 ? 蠛盛5 ; 姆蹙篷 0 l 默认情况下d 1 2 和d m a c 都不处于自动重装模式,不想让器件的d m a 自 动重新启动是因为,这是一个协议层的操作,也就是说在主机的控制之下,在e o t d 1 2 和d m a 控制器的d m a 都被禁止,固件需要重新使能,以使它们在接收到 主机的建立d m a 请求时,重新启动d m a 传输 需要注意的是,在d m a 模式中来自端点4 和5 的中断被禁止,这些端点上 的中断服务是不必要的,而且使d m a 传输中有潜在的缺陷,d m a 可以看作是 最高级的中断,可以在任意两条c p u 指令之间执行,甚至在i s r 中,由于在传输 当中d m a 的状态任何时候都有可能改变,因此任何想要用来检测d m a 状态 的程序都是不可靠的 以下是一个i n 标志d m a 传输编程示例,d m ad i r 和d m at r a n s f e rs i z e 已通 过建立d m a 请求设羲 d m a _ s t a r t ( d m a _ d i r ,m a i n d m a b u f ,d m at r a n s f e r _ s i z e ,3 ) : d m a b i t s d m a _ b u r s t = 3 : d m a b i t s d m a _ e n a b l e = 1 : d m a b i t s d m a _ d i r e c t i o n = d m a _ d i r : d m a b i t s a u t o r e l o a d = 0 : d m a b i t s n o r m a l _ p l u s s o f = 0 : d m a

温馨提示

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

评论

0/150

提交评论