




已阅读5页,还剩77页未读, 继续免费阅读
(信号与信息处理专业论文)usb20ip核的主控制器设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 u s b 2 0 设备应用非常广泛,设计具有自主知识产权的u s b 2 o t p 核具有很大 的意义。本文介绍种u s b 2 0 设备控制芯片i p 核的设计,并且主要对其中的主 控制器的设计进行介绍。 该u s b 2 o i p 核通过u t m i 接口与u s b 2 0 总线进行通信。在硬件上分为六个 部分:微处理器( m c u ) 、串行接口引擎( s i e ) 、端点缓冲区( e p b ) 、主控制模块 ( m c t l ) 、通用可编程接口及多总线接口( g p m b ) 、m c u 总线接口( m i t f ) ,其中g p m b 模块内部还嵌入了f l a s h 控制器模块。m c u 模块控制整个芯片的运作。e p b 模块 作为各个端点的数据缓冲,用于暂存与u s b 总线通信的数据。g p m b 模块为外围 接口模块,用于连接外围设备,其中的f l a s h 控制器可以用于与f l a s h 芯片进行 接口。主控制器模块用于端点缓冲区数据的存取,其中的d m a 控制器可以在m c u 不参与的情况下传输数据,提高效率。串行接口引擎( s i e ) 模块为u s b 2 0 的链路 层协议处理模块,为整个i p 核的核心部分,分为两个子模块s i e p k t ( 包处 理模块) 和s i e s i l ( 系统接口逻辑) os i e p k t 负责处理u s b 包,s i e _ s i l 用于 与m c u 进行接口,包含m c u 可访问的用于协议控制的寄存器,同时产生s i e p k t 所需要的一些控制信号。最后m i t f 模块用于各个模块与m c u 模块之间的总线控 制。 通过软件的仿真和验证,并且已经在一个f p g a 系统上得到了实现。这个f p g a 系统可以正确的工作,表明了u s b 2 o i p 核设计是正确的。 关键词:通用串行总线、串行接口引擎、主控制器 a b s t r a c t u s b 2 0d e v i c eh a v eb e e nu s e dw i d e l y i ti s i m p o r t a n tt od e s i g nau s b 2 0 l pc o r ew i t ho u ro w ni n t e l l e c t u a ip r o p e r t y t h i st h e s i si n t r o d u c e st h ed e s i g n o fu s b 2 0lpc o r ef o ru s bd e v i c ec o n t r o l l e r , a n dm a i n l ya b o u tt h ed e s i g no f t h em a i nc o n t r o l l e ro ft h el pc o r e t h i su s b 2 0l pc o r ec o m m u n i c a t e sw i t hu s bb u st h r o u g hu t m l i n t e r f a c e t h i sl pc o r ei sc o m p o s e do f6p a r t :m i c r o c o n t r o l l e ru n i t ( m c u ) : s e r i a i i n t e r f a c ee n g i n e ( s i e ) ;e n d p o i n tb u f f e r ( e p b ) ,m a i n c o n t r o l l e r ( m c t l ) g p i oa n dm u l t i b u s ( g p m b ) ,m c ub u si n t e r f a c e ( m i t f ) ,a n dt h e r ei saf l a s h c o n t r o l l e ri ng p m b t h em c uc o n t r o it h eo p e r a t i o no f t h ew h o l ei pc o r e t h e e p bi st h ed a t ab u f f e rf o re a c he n d p o i n t 1 ts t o r e st h ed a t at h a tw i ljb es e n tt o o rh a v er e c e i v e df r o mt h eu s bb u s g p m bm o d u l ei st h ep e r i p h e r a id e v i c e i n t e r f a c et h a tc o n n e c t st h ep e r i p h e r a id e v i c eo u t s i d eo ft h el pc o r e t h e f l a s hc o n t r o l l e ri nt h eg p m bc a nc o n t r o it h ef l a s hc h i po u t s i d eo ft h ei p c o r e t h em a i nc o n t r o l l e ra c c e s st h ed a t ai ne p b t h ed m ac o n t r o l l e ri nt h e m a i nc o n t r o l l e rc a nt r a n s f e rd a t aw i t h o u ti n t e d e r eo fm c u t h a tw i l ii m p r o v et h e t r a n s f e re f f i c i e n c yg r e a t l y t h es e r i a i i n t e r f a c ee n g i n e ( s i e ) i st h em o d u l et h a t d e a l sw i t ht h eu s b 2 0l i n kl a y e rp r o t o c 0 1 i ti st h ek e r n e im o d u l eo ft h ew h o l e i pc o r e t h es i ei sc o m p o s e do f t w op a r t :s l ep k t ( s l e p a c k e t t r e a t m e n t ) a n ds i es i i ( s i es y s t e mi n t e r f a c ei o g i c ) t h es i ep k ti si n c h a r g eo ft h e p r o c e s st h eu s bp a c k e t s i es i li su s e dt oi n t e r f a c et h em c u i ti n c l u d eal o t o fr e g i s t e r sf o rp r o t o c o ic o n t r o ia n dm c u c a na c c e s st h e s er e g i s t e r s s i es i l a l s og e n e r a t es o m ec o n t r o is i g n a lt h a ts l ep k tw o u l dn e e d a ti a s t t h em i t f i su s e dt oi n t e r f a c et h em c uw i t ho t h e rm o d u l ew i t h i nt h eipc o r e t h el pc o r eh a v ep a s st h es o f t w a r es i m u l a t i o na n dv e r i f i c a t i o n a n di t a l s ob e e ni m p l e m e n ti n t oo n ef p g as y s t e m t h i sf p g as y s t e r nc a rw o r k p r o p e r l yw h i c hp r o v e t h es u c c e s so fu s b 2 0i pc o r e d e s i g n k e y w o r d s :u s b 、s l e 、m a i nc o n t r o l l e r i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:型日期:矽节年占月相 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 虢盟导师躲望座 日期:脚牛年f 月午日 u s b 2 o i p 核的主控制器设计 1 1 本研究工作的意义 第1 章引言 u s b2 0 ( 通用串行总线) 是由c o m p a q 、h p 、i n t e l 、l u c e n t 、m i c r o s o f t 、 n e c 和p h i l i p s 制定的一种计算机外设连接规范,在原来的u s b i 1 的1 5 m b i t s 和1 2 m b i t s 基础上增加了4 8 0 m b i t s ( 6 0 m b s ) 的高速数据传输模式,使u s b 的应用范围得到进一步扩大。 u s b 接口是随着电脑的发展而产生的。随着电脑的广泛应用,外设的使用也 越来越多,但是个人电脑上原有的串口和并口却限制了外设的使用,不仅性能无 法满足要求,而且数量上也很难扩展。这时u s b 接口应运而生,无疑从根本上解 决了这一问题。它不仅可以支持热插拔技术和高级即插即用功能,而且不使用 i r q 的中断控制以及输入输出的地址资源,最多可以级连1 2 7 个设备。而且u s b 接口还有一个最大的优点就是速度快,在u s b i 1 版本中,速度可以达到1 2 m b p s , 而在u s b 2 0 中,速度可以达到4 8 0 m b p s 。因此u s b 外设迅速流行起来,从优盘 到m p 3 播放器,从数码相机到打印机,u s b 接口几乎应用到了所有种类的外设上 面。 由于u s b 接口的广泛应用,设计u s b 2 0 接口i p 核具有巨大的使用价值和应 用前景。目前的u s b 接口芯片都是国外的产品,国内尚未有u s b 接口芯片问世。 因此完成u s b 2 0 接口i p 核对于打破垄断,掌握核心技术和自主知识产权具有重 要的实用价值。 1 2 本研究工作要达到的目标 本课题是国家8 6 3 计划“超大规模集成电路设计”专项基金资助的,本论文 属于该课题的一部分。 本研究工作中的u s b 2 0 接口i p 核主要实现以下功能: 与高速u s b 2 0 规范兼容,并可使设备能向下兼容u s b i i 产品; 与u s b 2 0u t m i ( t r a n s c e i v e rm a c r o c e l li n t e r f a c e ) 接口规范兼容, 适应u s b 2 o p h y 操作; 芯片内部的u s b 传输支持1 2 m b s 、4 8 0 m b s 模式; 内置d m a 控制器: 灵活的端设备配置; u s b 2 0 i p 核的主控制器设计 一 节约外围器件,尽量将所需的外围器件集成到芯片中; 支持w i n d o w s x p 2 0 0 0 m e 9 8 等操作系统a 2 u s b 2 o i p 核的主控制器设计 第2 章u s b 2 0 协议原理 本设计是设计u s b 2 0 接口i p 核,必须按照u s b 协议进行设计,因此在对该 i p 核设计进行讲解之前,有必要先对u s b 2 0 的协议原理进行简单的介绍。 2 1u s b 协议总揽 u s b 2 0 接臼是一个传输速率可以达到4 8 0 m b p s 的串行接口,并由不同类型 的外围设备共享这个接口总线。一个主机最高可以通过u s b 总线控制1 2 7 个外设。 u s b 主机是整个总线的主控者,掌握所有的控制权,总线上的通信都是由主机来 发起。主机负责向各个外设发出各种命令和配置。u s b 是基于令牌包的通信协议。 主机在总线上发送含有设备地址和命令的令牌包,这时总线上符合该地址的设备 将接收这个包,并且按照令牌包的内容进行相应的操作。另外主机会定时发送帧 开始包,将总线时间分割为1 2 5 u s 一帧( u s b l 1 为i m s 一帧) 。所有总线上的设 备就会以时间分割的方式来分享总线带宽。 2 2u s b 的电气特性 u s b 总线通过4 线电缆来传输信号,如图卜1 所示。其中v b u s 和g n d 是电 源线,d + 和d 一是差分信号线。u s b 主机通过v b u s 和g n d 两根电源线提供设备所 需的电流。 v b u s d d g n d 图2 1u s b 电缆 u s d l + d g n d u s b 支持热插拔,因此需要有机制检测u s b 设备的插入和拔出。当主机检测 到信号线上电平升高到一定电平可以判断设备已经连接。当主机检测到信号线上 电平都降低到一定电平可以判断设备的移除。 u s b 总线的差分信号线以总线的差分状态表示“i ”或者“o ”。采用差分方 式可以降低干扰,提高总线速度。 由于u s b 2 0 需要和u s b i i 互相兼容,并且u s b 总线要求在总线空闲的时候 挂起总线以便于省电。因此u s b 总线定义了总线复位,挂起和恢复协议。用于主 机和设备相互确定双方的运行模式以及如何挂起设备和如何使挂起设备恢复到 正常状态。 u s b 2 o i p 核的主控制器设计 2 3u s b 的系统结构 一个u s b 系统是一个结构很清晰的系统,可以从不同角度和层次上来理解。 2 3 1 总线的拓扑结构 u s b 系统的总线拓扑结构是一个金字塔结构,包括以下三个部分:u s b 主机 ( 唯一) 、u s b 内连中继器( h u b ) 、u s b 设备。其总线拓扑图如图2 2 所示。 2 3 2 内部层次关系 图2 - 2u s b 系统总线拓扑图 7 在实际的应用系统中,不同层次的实现者对u s b 的有不同要求,这使得我们 必须从不同的层次观察u s b 系统。o s b 系统的分层概念能使不同层次的实现者只 关心u s b 相关层次的特性功能细节,而不必掌握从硬件结构到软件系统的所有细 节。一个u s b 设备对于u s b 系统来讲就是一系列端点的集合。不同的端点集合组 成了不同的接口。客户软件对接口进行操作,系统软件通过u s b 设备的端点0 对系统进行设置,而在底层,主机和设备通过u s b 电缆进行数据交换。如图2 - 3 所示: 4 u s b 2 ,o i p 核的主控制器设计 f m h l f p 咐l o ) h 口“】“k w 伸n t d p 脚s i c m l 舢j 妊 i寻l hf u h 0 u c l k ms w m _ h i:ll p b q ;螽7 1 宰t 罪 驰啤l l 黼一韶l 捧篙 u s bl 明i d d u s bs y n e m w d e v m e m - 嘲- 由恤_m * h d “啦p i 耻 b “d m m - m 端l i 哿u b b 1 i 。蜀r u s bb u s2 。u s b b m “d m ii n t 一* 渊叫熘一 ,卜1 崤吾蠢蒯”i 图2 - 3u s b 系统层次结构图 图2 4 说明了数据如何在主机侧中的内存缓冲和设备中的端点中传送。主机 上的软件通过一系列的通信流与逻辑设备进行通信。这一系列的通信流是由u s b 设备的软件和硬件设计者选择的,使设备能传送由u s b 提供的字符。 图2 4u s b 通信流 | | 。”= j o u s b 2 o i p 核的主控制器设计 u s b 是为主机软件和它的u s b 应用设备间的通信服务的,对客户与应用间不 同的交互,u s b 设备对数据流有不同的要求。u s b 允许各种不同的数据流相互独 立地进入一个u s b 设备,每种通信流都采取了某种总线访问方法来完成主机上的 软件与设备之间的通信。每个通信都在设备上的某个端点结束。不同设备的不同 端点用于区分不同的通信流。 2 4 u s b 传输模式 u s b 协议规定了4 种传输模式以适应不同的应用环境,这几种传输方式在数 据格式,总线访问的限制,延时的限制,出错处理等方面都有不同的特征。每种 传输方式一个完整的传输通常包含几个阶段,如设置阶段,数据阶段和状态阶段。 但并非所有的传输方式都包含所有的阶段。以下为4 种传输方式: 2 4 1 控制传输 是可靠的、非周期性的、由主机软件发起的请求或者回应的传送,通常用于 命令事务和状态事务。主机通过端点o 对设备进行配置都是通过控制传输来完 成。 一个控制传输由设置阶段,数据阶段和状态阶段组成。如图2 5 所示。其中 数据阶段是可选部分,是否存在数据阶段由不同的控制命令决定。 2 4 2 同步传输 圆 图2 - 5 控制传输 s e t u p s t a g e d a t a s t a g e ( o p t i o n a l ) s t a t u s s f a g e 用于在主机与设备之间的周期性的、连续的通信。一般用于传送与时间相关 的信息。这种类型保留了将时间概念包含于数据中的能力。如影音文件的播放通 常通过同步传输模式。 同步传输只有数据阶段,而且一个特点就是数据阶段没有握手,这和同步传 6 厕蚴厕幽葡蚓 一熙二圈竺一 一圈叫:墨jnu差|一口圆一 u s b 2 o i p 核的主控制器设计 输要求连续的通信特点是相联系的。图2 6 是一个同步i n 传输。 2 4 3 中断传输 图2 6 同步传输 小规模数据的、低速的、固定延迟的传送模式。 中断传输只包含数据阶段,由主机定时向设备发i n 包来获得设备的中断信 息,从而决定下一步的操作。图2 7 为中断i n 传输。 2 4 4 批量传输 凰团圆 图2 - 7 中断i n 传输 非周期性的,大包的可靠的传送。主要用于传送那些可以利用任何带宽的数 据,而且这些数据当没有可用带宽时,可以容忍等待。 中断传输只包含数据阶段。通常用于对时间没有严格要求的数据传输。图 2 - 8 为批量i n 传输。图2 - 9 为批量o u t 传输。 图2 8 批量i n 传输 u s b 2 o i p 核的主控制器设计 2 5u t m i 接口规范 图2 9 批量o u t 传输 2 5 1u t m i 接口应用的必要性 圆 在u s b l 1 中,串行数据在全速时是1 2 m b p s ,在低速时更是只有1 5 m b p s 。 在这样低的速率下,开发者可以轻易地用硬件描述语言来完成数据恢复的工作。 a s i c 厂商只需要提供一个简单的转发器就可以了。 随着u s b 2 0 的到来,4 8 0 m b p s 的速率使设计方法必须改变,很难仅仅依靠 硬件描述语言的使用来完成设计。这时i n t e l 公司制定了u t m i ( u s b2 0 t r a n s c e i v e rm a c r o c e l li n t e r f a c e ) 接口规范来简化u s b 2 0 的设计。在这个规 范中,定义了u t m i 的接口定义和u t m ( u s b2 0t r a n s c e i v e rm a c r o c e l l ) 应该 完成的功能。u t m 完成数据的解串和串行化,时钟恢复,比特填充等功能。这样 u s b 设备的i p 开发者只需要面对6 0 m 的8 位并行数据( 或者3 0 m 的1 6 位数据) , 开发难度大大降低。最后a s i c 完成的时候,只需要将厂家提供的u t m 库添加上 去就行了,这样使用u t m 来完成u s b 设计的a s i c 如图2 1 0 所示: 图2 一l o 包含u t m 的a s i c 功能块 2 5 2u t m 结构及功能 u t m 用于消除u s b 开发者高速u s b 2 0 逻辑设计的困难,处理u s b 的底层协 议和信令。使u s b 开发者不需要面对模拟电路设计,从而加快开发的进程。u t m 具有些关键的功能,包括数据的解串和串行化,时钟恢复和同步等等。u t m 的 一些关键特性如下所示: u s b 2 o i p 核的主控制器设计 具有标准的u t m i 接口 支持4 8 0 m b p s ( 高速) 1 2 m b p s ( 全速) 模式,仅有1 2 m b p s ( 全速) 模式和仅有 1 5 m b p s ( 低速) 模式 使用8 位或者1 6 位并行接口传输u s b 2 0 数据 s y n c e o p 的产生和检测 从u s b 的串行流中进行数据和时钟的恢复 比特填充和比特解填充,比特填充错误的检测 具有保持寄存器用于暂存要发送和接收的数据 具有检测和发送恢复信号的功能 具有检测复位和挂起的功能 具有在全速和高速之间切换端接和收发器电平的特点 具有片上的锁相环用于发送高速串行数据 一个标准的u t m 宏单元结构如图2 1 1 所示: 图2 1 1u s b2 0t r a n s c e i v e rm a c r o c e l l 功能框图 u s b 2 0 i p 核的主控制器设计 2 5 。3u t m i 外围接口 u 伽通过标准的u t m i 接口和s i e 交换数据和状态,表2 - 1 为8 位u t m i 接口 详细列表所示: 表2 - 1u t m l 外围接口 名称方向说明 - u t m l 接口 d a t a 7 :0 】 双向u t m 和s i e 之间的双向数据总线 t x r e a d y输出u t m 通知s i e 可发送数据的信号 t x v a l i d输入s i e 发送数据已经有效 r x a c t i v e输出u t m 通知s i e 已检测到同步p a t t e m ,处于接收状态 r x v a l i d输出u t m 表明接收数据有效 r 3 c e i t o r输出u t m 检测到接收错误 l i n e s t a t e 1 :0 】 输出直接反映u s b 串行总线信号d p ( l i n e s t a t e 0 】) 和d m ( l i n e s t a t e 1 ) 的状态: d md p 含义 00s e 0 01“j ,状态 10 “k ,状态 l1s e l s u s p e n d m输入 通知u t m 挂起 x c v r s e l e c t 输入收发器选择信号,o :高速收发器,1 :全速收发器 t e r m s e l e e t输入终端选择信号,0 :高速终端使能,1 :全速终端使能 o p m o d e 1 :0 输入操作模式选择信号 1 】 0 】含义 00正常操作 01 n o n - d r i v i n g 10禁止比特填充和n r z i 编码 11保留 c l ks i c输出u t m 输出的时钟( 6 0 m h z ) 通过表2 - 1 可以看出来,通过u t m ,串行接口引擎( s i e ) 只需要处理6 0 m 的8 位的并行数据,并且可以通过u t m i 接口中的一些状态控制信号来获得总线状态 和控制u t m 的工作方式,来满足u s b 协议的要求,从而简化了u s b 设计者的工作 难度。 1 0 u s b 2 0 i p 核的主控制器设计 2 。6 本章小结 本章对u s b 2 0 协议的一些原理进行了简单的讲解,并且对u t m i 规范的作用 和接口进行了简要的介绍,使读者阅读本文以下部分的时候有一个基本的概念。 u s b 2 o i p 核的主控制器设计 3 1 结构框图 第3 章u s b 2 0 接口i p 核系统结构 u s b 2 0 接口i p 核在功能上的主要组成部分有: 微处理器模块m c u : 串行接口引擎模块s e r i a li n t e r f a c ee n g i n e ( 简称s i e ) ; 端点缓冲区模块e n d p o i n tb u f f e r ( 简称e p b ) ; 主控制模块m a i nc o n t r o l l e r ( 简称m c t l ) ; 通用可编程接口及多总线模块g p i o m u l t i b u s ( 简称g p m b ) 微处理器接口模块m c ub u si n t e r f a c e ( 简称m i t f ) ; 其中本文主要涉及串行接口引擎和主控制器的设计。 图3 1u s b 2 0i p 核模块框图 其中m c u 负责控制协调整个i p 核的运作;s i e 负责处理与u s b 协议相关的 1 2 u s b 2 o i p 核的主控制器设计 操作,完成发包收包的工作。端点缓冲区e p b 负责暂存要发送到u s b 总线上或者 从u s b 总线上接收下来的数据。主控制器控制对e p b 的存取权,m c u 和外围设备 对e p b 进行访问都必须通过主控制器,同时主控制器还包含d m a 控制器用于加快 和e p b 之间的数据交流。g p m b 用于和外围设备之间的接口控制,主要是数据和 控制通道的切换。同时g p m b 还内含f l a s h 控制器,因为本i p 核外接的就是f l a s h 芯片。 3 2 数据流程 理解本i p 核中的数据流程对于了解i p 核的组成和功能有很好的意义,因此 下面列出了在几种情况下的数据流程。 3 2 1u s b 2 0i p 核在非d m a 方式时处理o u t 包的数据流程 图3 2 显示了u s b 2 0i p 核在非d m a 方式下处理一个o u t 包的数据流程,首 先s i e 模块接收处理了o u t 令牌包,根据相应端点缓冲区的状态 ( s t a l l n a k n y e t ) 做出不同的回应,若既非s t a l l 也非n a k 则从接收的d a t a 包中提取出有效载荷数据放入相应的端点缓冲区e p b ,完成一包数据正确写入之 后s i e 将缓冲区的控制权标志位设为非s i e 控制,返回a c k 握手信号给主机,并 同时产生对应端点的o u t 中断请求;m c u 接收到中断后先后经过m c t l 模块、m t t f 模块将端点缓冲区的数据读出,读完之后又将缓冲区的控制权标志位设为s i e 控制( 等价于置空标记) ,然后进行分析处理。同时,在非d m a 方式下,m c u 可 以通过g p m b 模块与g p b u s 上的外设进行双向数据交换。 图3 - 2u s b 2 0i p 核处理o u t 包的流程( 非d m a 方式) 3 2 2u s b 2 0i p 核在非d m a 方式时处理i n 包的数据流程 图3 3 显示了u s b 2 0i p 核在非d m a 方式下处理一个i n 包的数据流程,首 u s b 2 o f 核的主控制器设计 先假定在s i e 模块接收处理i n 令牌包之前m c u 已经知道往相应端点缓冲区写入 数据( o u t 中断或者数据刷新中断) ,若相应端点处于s t a l l n a k ( n a k 表示端点 仍在由m c u 写入数据,控制权仍在m c u 侧) ,则返回s t a l l n a k 给主机;否则( 即 该端点缓冲区已由s i e 控制) 根据缓冲区空非空发出零个或一包数据,( 对于非 同步传输) 在主机正确接收返回确认信号之后,s i e 要求刷新端点缓冲区数据, 将缓冲区控制权交给m c u ( 设置相应标志位) ,并产生端点的i n 中断,由m c u 写 入新数据,等待下一次i n 令牌处理。同时,在非d m a 方式下,m c u 可以通过g p i o 模块与g p b u s 上的外设进行双向数据交换。 图3 - 3u s b 2 0i p 核处理i n 包的流程( 非d 方式) 3 2 3u s b 2 0i p 核在o m a 方式时处理o u t 包的数据流程 图3 - 4 显示了u s b 2 0i p 核在d m a 方式下处理一个o u t 包的数据流程,首先 s i e 模块接收处理了o u t 令牌包,根据相应端点缓冲区的状态( s t a l l n a k n y e t ) 做出不同的回应,若既非s t a l l 也非n a k 则从接收的d a t a 包中提取出有效载荷 数据放入相应的端点缓冲区e p b ,完成一包数据正确写入之后s i e 将缓冲区的控 制权标志位设为非s i e 控制,返回a c k 握手信号给主机,并同时产生对应端点的 o u t 中断请求;m c u 接收到中断后根据端点缓冲区有效数据长度及f l a s h 可写入 的数据长度( 最大不超过5 1 2 字节) 设置d m a 相关寄存器( 长度寄存器、源目 的地址寄存器) ,然后切换总线控制到d m a 方式,启动d m a 控制器读出缓冲区的 数据通过g p b u s 写到f l a s h 中,d m a 结束之后产生d m a e n d 中断,m c u 将总线切换 到非d m a 方式,通过o p i o 写入f l a s h 编程命令字,等待f l a s h 编程完毕产生中 断,m c u 再根据端点是否读空决定下一次d m a 的设置及启动,直到f l a s h 编程完 毕中断且端点数据读空,f f c u 又将缓冲区的控制权标志位设为s i e 控制( 等价于 置空标记) ,s i e 又可以往该缓冲区写下一包数据。 4 u s b 2 o i p 核的主控制器设计 图3 4u s b 2 0i p 核处理o u t 包的流程( d m a 方式) 3 2 4u s b 2 0l p 核在d m a 方式时处理i n 包的数据流程 图3 5 显示了u s b 2 0i p 核在d m a 方式下处理个i n 包的数据流程,首先 假定在s i e 模块接收处理i n 令牌包之前m c u 已经知道要往相应端点缓冲区写入 数据( o u t 中断或者数据刷新中断,上一次d m a 读f l a s h 后写入) ,若相应端点 处于s t a l l n a k ( n a k 表示端点仍在由上一次d m a 写入数据,控制权仍在m c u d m a 侧) ,则返回s t a l l n a k 给主机;否则( 即该端点缓冲区已由s i e 控制) 根据缓 冲区空非空发出零个或一包数据,( 对于非同步传输) 在主机正确接收返回确认 信号之后,s i e 要求刷新端点缓冲区数据,将缓冲区控制权交给m c u d m a ( 设置 相应标志位) ,并产生端点的i n 中断,m c u 接收到中断后根据端点缓冲区配置长 度及f i a s h 可读出的数据长度( 不要跨f l a s h 的块) 设置d m a 相关寄存器( 长度 寄存器、源目的地址寄存器) ,然后切换总线控制到d m a 方式,启动d m a 控制器 读f l a s h 的数据写到端点缓冲区中,d m a 结束之后产生d m a e n d 中断,m c u 将总线 切换到非d m a 方式,m c u 结束f l a s h 读操作,将有效数据长度写入i n 端点长度 寄存器,同时置标志位把端点控制权交给s i e ,以等待下一个工n 令牌来到时送 出。 u s b 2 o i p 核的主控制器设计 图3 - 5u s b 2 0i p 核u s b 2 0i p 核处理i n 包的流程( d m a 方式) 3 3i p 核内部模块组成 u s b 2 o i p 核由多个部分组成,下面对这几个部分做简要的介绍。 3 3 1m o o 模块 m c u 模块中主要包含了一个s y n o p s y s 公司的增强型8 0 5 1m c u 核和个自行 设计的外部看门狗,m c u 核的使用方法同d a l l a s 的8 0 0 3 2 0 。 在初期的f p g a 设计中,u s b 2 o i p 核中没有包括m c u 核,采用外置m c u ( 8 0 c 3 2 0 ) 的办法,便于调试固件。在固件调试完毕后,再将m c u 核和固件放到i p 核内部。 因此硬件版本中分内置1 i l c u 核和外置m c u 核两种版本。 d w 8 0 5 1 核通过硬件和固件来控制u s b 协议的完成,同时控制对外围接口, 以完成设备通过u s b 2 0 接口i p 核与主机的通信的功能。 m c u 模块中包含的d w 8 0 5 1 核的功能框图如图3 6 所示: u s b 2 0 i p 核的主控制器设计 图3 - 6d w 8 0 5 1 核的功能框图 d w s 0 5 1 核所提供了下列设计性能: 与工业标准的8 0 3 x 8 0 5 x 兼容: 标准的8 0 5 1 指令集; 全双工串口( 通过参数设置,可选择) ; 三个定时器( 通过参数设置,可选择) ; 具有针对标准8 0 3 x 8 0 5 xi o 端口的控制信号; 高速结构: 时钟指令周期; 平均超过标准8 0 5 1 的指令执行时间2 5 倍; 在d c 下运行超过1 2 0 m h z 的时钟:s y n o p s y s 公司推荐,在小于等 于0 2 5 u m 的工艺下,工作频率可大于1 0 0 m h z ,在0 1 s u m 的工艺下, 可满足1 6 6 m h z 的频率; 消除了多余的总线周期; 双数据指针; 1 7 u s b 2 o i p 核的主控制器设计 可用参数表示的内部r a m 地址范围 可用参数表示的内部r o m 地址范围 用户可通过特殊功能寄存器( s f r ) 来简单集成用户定义的外设 增强型存储器与1 6 b i t 地址总线接口; 可变长度的m o v x 指令来访问快速慢速r a m 外设: 完全静态的同步设计; 支持工业标准的编译器、汇编、仿真器和r o m 监视器; 支持f p g ac o m p i l e ti i 。 除此之外,d w 8 0 5 1 核在4 个时钟的总线周期里执行指令,而标准的8 0 5 1 执 行指令为在1 2 个时钟周期,因此d w 8 0 5 1 的性能更强。图3 7 为d w 8 0 5 1 和标准 8 0 5 1 的操作时序比较: 图3 - 7d w 8 0 5 1 和标准8 0 5 1 的肘序比较 d w 8 0 5 1 核在硬件特性与指令周期时序上与d s 8 0 c 3 2 0 单片机类似,因此在设 计调试的初期可以用d s 8 0 c 3 2 0 单片机来代替。但是,它们二者之间也有一些区 别。例如,d w 8 0 5 1 中不包含内部看门狗定时器,但它有个专用的输入端口( w d t i ) 提供给外部看门狗定时器。d w 8 0 5 1 同样提供看门狗定时器中断标志、使能、优 先控制位给外部看门狗定时器中断,但是不提供自动看门狗定时器复位。因为看 门狗定时器控制位( w r t f 、e w t 、r w t ) 不执行,d s 8 0 c 3 2 0 的w d c o n 特殊功能寄 存器( 在s f r 地址d 8 h ) 在d w 8 0 5 1 中命名为e i c o n ,它仅在外部中断单元执行时 刁使用。 u s b 2 o i p 核的主控制器设计 为避免软件运行时进入死循环和监视程序段运行时间是否正常,防止系统进 入死锁状态,需对软件运行的时钟周期数进行监控。若软件运行时进入死循环或 程序段运行超时,看门狗时钟模块( w d t ) 就会产生中断信号或系统复位信号, 从而保护系统。 w d t 控制模块框图如图3 - 8 所示: 图3 - 8w d t 控制模块框图 w d t 模块在启动内部计数器使能后,该计数器根据所选的计数值开始侄4 计 数,计数的间隔为系统时钟周期。 在程序正常运行的情况下,在计数器还未计到0 之前,看门狗时钟模块( 1 1 | d t ) 中的计数器应被重新装载,并开始倒计数。若计数器计到0 ,表示这时程序已出 错,看门狗时钟模块( w d t ) 就会产生复位信号和中断信号( 若复位使能和中断 使能信号有效) 。 3 3 2 串行接口引擎( s i e ) 在u s b 系统中,无论是主机端还是设备端都具有s i e ,作为与物理层相连的 最后一个模块,实现u s b 协议的许多关键性操作都在s i e 模块中完成。其在系统 中的具体位置可参见图3 - 1 。 s i e 模块可分为两个子模块:s i e p k t ( 包处理模块) 和s i e s i l ( 系统接口 逻辑) 。 其中,s ie - k t 模块负责处理u s b 包,包括:p i d 识别生成、c r c 校验生 成以及u s b 包的接收和发送控制;s i e s i1 模块则负责在s i e 侧控制u s b 包数据 的写入和读出端点缓冲区,s i e 模块中断的生成,提供s i e _ p k t 产生的相关状态 信息给m c u ,并将m c u 的相关控制传递给s i e p k t ,以及存储m c u 对端点的一些 配置信息。 s i e 模块功能框图如图3 - 9 所示: u s b 2 o i p 核的主控制器设计 图3 9s i e 模块功能框图 s i e p k t 包处理模块负责处理u s b 包,包括p i d 识别生成、c r c 校验生成 以及u s b 包的接收和发送控制。 s i e _ p k t 在接收方向,负责检测接收到的包的p i d ,进行c r c 校验,并将相 关状态传递给s i e 主控电路。在发送方向,负责生成符合包格式的数据包和握手 包。 s i e p k t 还负责检测和报告u s 8 总线事件,包括r e s e t ,s u s p e n d ,r e s u m e 等。 p k t 模块总共分成如下5 个子模块: p a ( p a c k e ta n a l y s i s ) 模块:负责从u t m i 到s i e 方向的p a c k e t 数据接收 处理,包括检测接收到的包的p i d ,进行p i d 和c r c 校验,并将相关工作状态传 递给m s 主控模块。p a 负责p a c k e t 级的数据过滤,不符合a d d r e s s 和e p 地址的 包将被自动屏蔽,各种错误状态也同时传送给m s 。此外,p a 还负责直接处理各 种d a t a 类型的包,并直接写往s “模块的缓冲区。 p f ( p a c k e tf o r m a t i n g ) 模块:负责从s i e 到u t m i 方向的p a c k e t 数据发送 处理。p f 根据m s 的不同类型的启动命令和相应p i d 向u t m i 发送不同类型的包, 在发送d a t a 类型包时s i l 模块传递过来的缓冲区状态决定何时结束发送过程, 并通知m s 此次发送结束。p f 还生成c r c l 6 校验。 m s ( m a i ns t a t e ) 模块:负责传输级的数据处理,根据p a 发过来的包信息, 对不同的t o k e n 命令进行处理。m s 跟踪接收到的s e t u p 、i n 、o u t 、s o l 命令, 通过相应中断信号通知s i l ,并在需要时启动p f 发送相应的数据包和握手。m s 还负责响应p i n g 命令。m s 的处理根据s i l 的控制线提供的控制状态,对p a 进 行错误处理,决定是否d i s c a r d 已经接收到的数据和是否更新数据。m s 还控制 t o g 模块跟踪t o g g l e 变化。 u s b 2 o i p 核的主控制器设计 t o g ( t o g g l e ) 模块:负责跟踪每个端点t o g g l e 的变化,并进行t o g g l e 错 误检测。 r s r ( r e s e ts u s p e n dr e s u m e ) :检测和报告u s b 事件,如n o d e r e s e t 、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业健康管理的新选择医疗大数据的应用
- 2025至2031年中国对开门资料柜行业投资前景及策略咨询研究报告
- 区块链在提升特定产品供应链透明度中的作用
- 护士顶岗实习总结(13篇)
- 化疗药物致骨髓抑制治疗
- 上腔静脉综合治疗方案
- 从学科教育到职业技能-医学人才培养的新方向探索
- AI在医疗健康领域的伦理培训与教育
- 创新护理服务中的医疗安全与效率
- 区块链技术助力商业项目融资的路径与策略
- 2024届广东惠城区重点达标名校中考猜题语文试卷含解析
- MOOC 离散系统建模与仿真理论基础-南开大学 中国大学慕课答案
- 杜绝形式主义-从我做起
- 学生牛奶、糕点配送服务承诺及售后服务
- 卡通风幼儿园餐前播报
- 冷库制冷负荷计算表
- 迅雷网盘最最最全影视资源-持续更新7.26
- 中国先锋戏剧研究
- 南山区土地评估咨询报告
- 12、口腔科诊疗指南及技术操作规范
- 国有企业知识产权管理
评论
0/150
提交评论