




已阅读5页,还剩50页未读, 继续免费阅读
(微电子学与固体电子学专业论文)sdio接口的软硬件实现及性能评估.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着移动手持设备功能的不断增加,在设计专用系统芯片时,为满足用户对新 功能的要求,芯片要不断增加新的功能模块。从设计、制造周期和成本方面考虑, 在芯片上增加功能扩展接口来实现新功能也是一种好的解决方案。本文介绍的是一 种极具发展前景的功能扩展接广| 安全数字输入,输出( s d i o ) 接口。 本文首先介绍了s d i o 控制器的设计需求,包括s d i o 的命令与数据流格式、 重要命令和s d i o 卡内部存储区的结构。阐述了s d i o 控制器的硬件设计方案,硬 件包括命令控制器、数据控制器、中断控制器与时钟功耗控制器四个主要部分,具 体论述了上述各模块的主要功能和实现方法。实现了s d i o 控制器软件驱动,包括 命令控制与数据传输驱动、对即插即用的支持和文件系统。建立了基于a r m u l a t o r 的高层模型,通过高层模型仿真,评估了s d i o 控制器f i f o 的性能和参数。最后 本文详细验证了s d i o 设计,采用基于覆盖率驱动的受限随机验证方法全面验证 s d i o 控制器的r t l 设计;利用f p g a 从系统和卡兼容性的角度验证了s d i o 控制 器。 验证结果表明:s d i o 控制器各部分控制模块设计合理、工作f 常,在2 5 m h z 时钟、多数据线传输模式下的s d 存储卡读写传输平均速度分别达到8 1 1 6 9 8 k b y t e s 和7 4 6 1 0 6 k b y t e s 。 关键词:系统芯片,s d i o 接口,设计,评估,验证 东南大学硕士学位论文 a b s t r a c t w i t ht h ed e v e l o p m e n to fm o b i l ee q u i p m e n t ,n e wf u n c t i o nm o d u l e ss h o u mb ea d d e d t ot h es o cc h i p st os a t i s f yt h en e e do fc u s t o m e r s h o w e v e li tt a k e sal o n gt i m et o a c c o m p l i s ht h ed e s i g no f t h en e wf u n c t i o nm o d u l e s s oi t sag o o di d e at oa d d f u n c t i o n e x t e n s i o ni n t e r f a c et ot h ec h i p s d i oi n t e r f a c ei ss u c hak i n do ff u n c t i o n e x t e n s i o ni n t e r f a c e f i r s t l y , t h es p e c i f i c a t i o n o fs d i oc o n t r o l l e ri si n t r o d u c e d ,w h i c hi n c l u d e st h e c o m m a n da n dd a t af o r m a t ,i m p o r t a n tc o m m a n d sa n dt h er e g i s t e rc o n s t r u c t i o no fs d i o d e v i c e t h e nh a r d w a r ed e s i g no fs d i oh o s tc o n t r o l l e ri sp r o p o s e d ,w h i c hc o u l db e p a r t i t i o n e di n t of o u rp a r t s :c o m m a n dc o n t r o l l e r , d a t ac o n t r o l l e r , i n t e r r u p t c o n t r o l l e r , c l o c ka n dp o w e rc o n t r o l l e r , t h ed e t a i li n f o r m a t i o ni sd e s c r i b e di nt h i sa r t i c l e s o f t w a r e a r c h i t e c t u r e ,i n c l u d i n gc o m m a n da n dd a t at r a n s f e r ,p l u g - a n d p l a ya n df a t l 6f i l es y s t e m , i sa l s oi n t r o d u c e d ah i g h - l e v e ls i m u l a t i o nm o d e lb a s e do ni s ss i m u l a t o r - a r m u l a t o r i su s e dt oe v a l u a t es d i oh o s tc o n t r o l l e rp e r f o r m a n c ea n df i f op a r a m e t e r t og u r a n t e e t h ec o r r e c t n e s so fs d i oh o s tc o n t r o l l e r s p e c m a ne l i t ev e r i f i c a t i o n t o o la n df p g a v e r i f i c a t i o ns y s t e ma r eu s e dt ov e r i f yi t f p g av e r i f i c a t i o nd e m o n s t r a t e st h a tf u n c t i o no fs d i oh o s tc o n t r o l l e r i s c o m p a t i a b l e w i t hs d i os p e c1 0 1 t h e s p e e do f r e a d t r a n s m i s s i o nb e t w e e nh o s t c o n t r o l l e ra n ds dm e m o r yc a r di s8 1 1 6 9 8 k b y t e sa n dt h a to fw r i t e t r a n s m i s s i o ni s 7 4 6 1 0 6 k b y t e s k e y w o r d :s y s t e mc h i p ,s d i oi n t e r f a c e ,d e s i g n ,e v a l u a t i o n ,v e r i f i c a t i o n n 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文巾不包含其他人已经发 表或撰写过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用 过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明 并表示了谢意。 研究生签名:! 肆起日期:珥 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家国书馆有权保留本人所送交学位论文的 复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内 容和纸质论文的内容相一致。除在保密期内的保密论文外,允许沦文被查阅和借阅,可 以公布( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东南大学研 究生院办理。 研究生签名:蜒导师签名:盔圆轻日期:幺堡! 互 第章绍论 1 1 论文背景 第一章绪论 s o c ( s y s t e mo nac h i p ) 技术是集成电路领域的一项尖端技术,它能够将微处理器( m p u ) 、数 字信号处理器( d s p ) 、存储器、模拟及射频等电路集成在同一芯片上,将原来由许多芯片完成的功能 集成到单一芯片中,冈此s o c 芯片集成度更高。目前,s o c 芯片已经成为提高移动通信、网络、 信息家电、高速计算、多媒体应用及军用电子系统性能的核心器件。 g a r f i e l d t lj 是由东南大学国家专州集成电路系统i 程技术研究中心设计的3 2 位r i s c 微控制器, 面向中低端手持设备和其它通用嵌入式设备。g a r f i e l d 使用t s m c 的0 2 5 p r o 标准的c m o s 工艺设 计,采用a r m 7 t d m i t 2 t 3 1 处理器内核,具有低功耗、低成本的优点。g a r f i e l d 系统级芯片的体系架 构如图1 1 所示: 图1 - 1g a r f i e l d 处理器体系架构 随着s o c 技术的进步,基于s o c 芯片的移动手持设备发展日新月异,其中许多新的功能不断 被加入其中,使得移动手持设备的功能越米越多也越来越强人。因此必须在原有的s o c 芯片基础上 添加新的功能模块,满足h ;i 户对新功能的要求。但随着集成电路设计与制造的周期越来越长,通过 集成新的片上模块很难跟上市场需求的快速变化。因此在s o c 芯片中集成通用扩展接口,通过该接 口扩展片外功能,可实现对市场需求变化的快速反应。 目前,市场上山现了众多扩展接口,如c f 接口和s d i o 接口,这些接口都有其各自的特点。 其中s d i o 接口以其传输速度快、兼容性好等优点被广泛府用于移动手持设备中,出现了多种基于 s d i o 接口的设备,如s d l 0 蓝牙耳机和s d i og f s 。考虑剑s d i o 的诸多优点及其与g a r f i e l d 芯片 原来支持的m m c 卡的兼容性,本文选择s d i o 接口作为g a r f i e l d 芯片的通_ l j 扩展接口 1 2论文的主要工作 东南大学颀士学位论文 介绍s d i o 接口的主要功能及其数据、命令格式和s d i o 卡内部存储区结构。 完成s d i o 控制器的硬件设计与实现。 完成s d i o 控制器的软件设计。 对s d i o 控制器进行评估和验证。 1 3 论文的结构 论文主要分为六章。第一章为前言;第二章介绍了s d i o 接口的主要特点;第三章为s d i o 控 制器的硬什设计与实现;第四章为s d i o 控制器的软件设计;第五章为s d o 控制器的验证与评估, 包括评估方案及其结果、功能验证平台的介绍以及验证计划和结果、f p g a 验证等;第六章为总结 与展望。 2 第二章s d l 0 接口介绍 第二章s d i o 接口介绍 2 1 s d i o 接口的主要功能和特点 s d i o 接口是由s d 存储忙删的接1 :3 信号s d 总线发展而来,它在机械、电路、功耗、信号 与软件上与s d 存储卡完全兼容,但s d i o 接口可扩展性更强,传输速度更快。另外s d i o 接口还具 有以下特点: 1 面向各种移动与同定设备的应用 2 对s d 总线兼容性非常好,只需少量改动 3 支持即插即用 4 兼容多种存储卡及s d i o 设备,支持s d i o 卡、复合s d i o 卡、s d 存储卡和m m c 卡 5 每个s d i o 卡最多支持7 个v o 功能模块和1 个存储区 6 允许s d i o 卡向控制器发出中断申请 7 初始化电压:2 0 3 6 v 8 工作电压:3 1 - 3 5 v s d i o 接口硬件主要由三个部分组成:s d i o 控制器、s d 总线和s d i o 卡。s d i o 控制器是s d i o 接口与系统连接的部分。与内部系统总线相连;s d i o 卡是具体功能的实现单元;s d i o 控制器通过 s d 总线与s d l 0 卡进行命令和数据的交互。软件部分主要由控制器驱动、s d i o 卡驱动和应用稃序 组成。s d i o 接口的软硬件结构如p 图所示: 应用程序与驱动的结构 囝囝囝圈 爵l 乜c p s 动。ei 乜p h $ 动- 旨lim o 驱d e 动m 卡l 3 e s 。- 。h 。醴驱动 s d i oh o 科硬件控制器 2 2 s d i o 命令与数据 s d i o 卡连接 图2 - 1s d i o 接口软硬件结构 3 东南大学硕士学位论文 2 2 1 命令与数据格式 s d 总线传输命令、响应和数据。命令是由控制器通过命令线发往s d i o 卡,是控制器通知s d i o 卡动作的承载体,包括向s d i o 卡传输的地址信息和参数,其格式如图2 - 2 所示: 传输位。 开始位:总 命令内容:命令与地址 信息或参数 7 b i t c r c 码 结束位i 总 j r1 厂矿1 。1c o n t e n tc r c l l 一 总长度:4 8 m t 一 图2 - 2s d 总线命令格式 响应是由s d i o 卡发通过命令线往控制器,传输内容包括s d i o 卡寄存器值、c r c 校验码反馈信息 等,其格式如图2 3 所示: 刚褂 图2 - 3s d 总线响应格式 s d 总线的数据传输主要有两种模式:单数据线模式与多数据线模式。当传输数据茸较小的情况下, 可以选择单数据线传输模式,在此模式下,数据传输仅使用d a t 0 数据线。在传输数据量很人的情 况下,可选择多数据线传输模式,数据传输使用全部四根数据线d a t 0 - - d a t 3 。s d 总线在数据传 输时,可以进行块( b l o c k ) 传输。图2 4 为单数据线模式,传输人小为5 1 2 字节的数据块的传输格 式: 脯亿肭弋广锄4 哟啪弋秽、厂 、誓乒 标准总线;仅用d a t 0 数据线 0 o k l f 一 数据块长度 图2 _ 4s d 总线单数据线传输时的数据格式 当使用多数据线模式传输数据时,要使用全部四根数据线。此时对于传输的数据块而言,要将块内 的数据按顺序从四根数据线上传输。图2 5 为多数据线模式下,传输大小为5 1 2 字节的数据块的传 4 第二章s d i o 接口介绍 输格式: 蒜、rl1sn0 声。, 总为、夕二l 1 豫蠹d a t j 团互 二二二 圃 根数据线o l _ j j _ j l j d a t 2 一叵叵 二二二 丑珂 眦皿叵叵 二二二 卫珂 i 堂蜇丝些照丝j 图2 5s d 总线多数据线传输时的数据格式 2 2 2 重要的命令与响应 c m d 5 ( i o _ s e n do pc o n d ) ,这条命令的作h j 是确认s d i o 卡的t 作电压。对应于c m d 5 命令, s d i o 卡所发同的响应为r 4 ,l 鳘i2 - 6 和图2 7 所示为c m d 5 和r 4 的数据结构图: c o m m a n d s t u f f sd j n d e xi 船o c rc r c 7 e 咖1 0 1 b 嫡缸 82 4l 图2 - 6 命令c m d 5 结构 s ( t a r tb i t ) :开始位,表示传输的开始总是为0 ; d ( i r e c t i o n ) :方向位,为0 ,表示传输是从控制器到卡; c o n m - , a n di n d e x :0 0 0 1 0 1 b ,表示命令为c m d 5 ; s t a f f b i t s :缺省位,全部为0 ; i o o c r :操作状态寄存器( o p e r a t i o n c o n d i t i o n r e g i s t e r ) 的值,表示控制器所支持的电压范围; c r c :7 位的c r c 校验码; e ( n d b i t ) :结束位,总是为l 。 n i i m0 f m e m o r ys t i 正f e sd r e s e r v e d c or e s e r v e dc r c 7 f u n e t l e m p r e s e n t k t s 1 3 1 3 2 4l 图2 7 响应r 4 的结构 s ( t a r tb i t ) :开始位,表示传输的开始,总为o ; d ( i r e c t i o n ) :方向位,为l ,表示传输是从一g - 到控制器; r e s e r v e d : 缺省位,全部为1 ; 5 东南大学硕士学位论文 c :如果忙在初始化后已经进入工作准备状态,该位将被置为1 ; m e m o r yp r e s e n t :如果卡不仅包含i o 接口,而且包含了存储区,该位为1 。如果膏中仅包含i 0 接 口,则该位为o ; n u m b e ro f i of u n c t i o n :表示该膏所包含的i o 功能模块的数目,范围从0 7 : c r c 7 :7 位的c r c 校验码; e ( n d b i t ) :结束位,总为1 。 一旦s d i o 卡收到控制器所发出的c m d 5 命令,那么这块卡的i o 接口部分就可以正常工作。 可以对控制器发出的进一步的命令做出响应,同时卡中的功能模块被使能直到有重置信号或c m d 5 2 命令所发出的重置命令将其重置。 在s d i o 协议中,对s d i o 卡寄存器的读,写操作最简单也最常用的命令是i o _ r wd i r e c t ,即 c m d 5 2 ,该命令只需要一个命令,响应组合就可以对s d i o 卡读取或写入一个字节的数据,所以通常 被用来初始化s d i o 卡或检查s d i o 卡中寄存器的值。c m d 5 2 的数据结构如图2 - 8 所示: c o m m a n d r ,wf r a c t i o nr a w & 正f r e 画s t e r s n 吖 w r i 忙d a t a di n d e x f l a g n e m b e r f l a g a d 如讲s t u f fb l 堪 c r c 7e l l o l o o b 11 6 13 111 7 1871 图2 8 命令c m d 5 2 结构 s ( t a r tb i 0 :开始位,表示传输的开始,总为0 ; d ( i r e c t i o n ) :方向位,为0 ,表示传输是从控制器到卡; c o m m a n di n d e x :用来说明i o r w d i r e c t 命令,值为1l o l o o b 。 r w f l a g :该位表示i o 接口操作的方向。如果该位为0 ,表示该命令要从s d i o 卡中读取数据到控 制器,数据所在的地址由功能序列号( f u n c t i o nn u m b e r ) 和寄存器地址( r e g i s t e ra d d r e s s ) 决定,读取的数据由响麻r 5 的数据域返同控制器;如果该位为1 ,表示控制器要将一个 字节写入由功能序列号和寄存器地址所指向的寄存器; r a w f l a g :写后读标志位。如果该位与读,写标志位( r w f l a g ) 都为1 ,那么该命令执行的操作是 将数据写入卡中相应寄存器后,再将该寄存器的值通过r 5 响应的数据域返同给控制器。 这样做的好处是通过返回寄存器值,直接检测数据是否正确的写入寄存器; f u n c t i o nn u m b e r : 命令所要读写的i o 接口中相应功能模块的序号。需要注意的是如果序号为o , 选中的将是公用i o 区域( c t a ) : r e g i s t e ra d d r e s s :s d i o 卡功能模块的寄存器地址。该地址为1 7 位,对应每个功能模块的1 2 8 k 地 址空间; w r i t ed a t a s t u f fb 砥:对于写命令,该数据域表示将要写入寄存器的数据;对于读命令,该数据域的 值为0 ; c r c 7 :7 位的c r c 校验码; e ( n d b i t ) :结束位,总为l 。 对于控制器发出的命令c m d 5 2 ,s d i o 卡给出的响应是r 5 。r 5 的数据格式如图2 - 9 所示; c o m m a n d di n d e x s n 时r r e s p o n s eh a g s r e a d o f w 一屺 c r c 7e b t td a l a 1 1 0 1 b 7o 1 688 71 图2 - 9 响应1 7 , 5 的结构 6 第二卓s d l 0 接口介绍 s ( t a r tb i 0 :开始位,表示传输的开始,总为0 : d ( i r e e t i o n ) :方向位,为1 ,表示传输是从卡到控制器; c o m m a n di n d e x :表明命令为c m d 5 2 ,值为1 1 0 1 0 0 b | ; s t u f fb i t s :全为0 ; r e s p o n s ef l a g s :8 位的响应标志位,表明s d i o 卡的状态,这些标志位的含义如表2 - l 所示; r e a do rw r i t ed a t a : 当进行写操作并且r a wf l a g 为l 时,该数据域的值表示写入寄存器后又从该 寄存器读取的值;当r a wf l a g 位为0 时,该数据域的值为写入寄存器中的值。 当进行读操作时,该数据域为从s d i o 卡寄存器中读取的数值; c r c 7 :7 位的c r c 校验码; e ( n d b i 0 :结束位,总为1 。 表2 - 1 响麻标志位的定义 位名称值说明 7 命令c r c 校验错0 = - 无错误前一个命令的c r c 校验是否 误1 = 错误错误 6 非法命令0 = - 无错误相应于当前s d i o 卡状态,命 1 = 错误令是否带法 5 4 f o 当前状态0 0 = - 未使能朱使能: 0 1 = 数据线空闲卡处于初始化状态、等待状 0 2 = 数据传输中态或未选择状态 0 3 = 缺省数据线空闲: 1 s d i o 卡正在等待命令 2 s d i o 卡正在执行 c m d 5 2 命令 数据传输中: s d i o 接口正在进行需要使 h j 数据线的命令 3错误 o = 无错误操作中发生的任何错误 l = 错误 2缺省州定为0 l 功能模块号 o = 无错误 使用了不可用的功能模块序 i = 错误号 0 o u t _ o f _ r a n g e0 = - 无错误超出了卡的地址空间界限 1 = 错误 为了简化读写操作并提高数据传输效率,s d i o 接口协议定义了命令i o r w e x t e n d e d ,即 c m d 5 3 。该命令可以进行多块或多字节地读写操作,使得大量数据可以进行连续传输,大大提高 了数据传输效率。该命令是进行大数据鼍传输时最常刚的命令。下图所示为c m d 5 3 的数据格式: c o m m a n d di n d e x r wf t m e f i o nb l e e ko p r e 垂s t e r b y t e b l o c k c r c 7 f l 砧 n u m b e rm o d cc o d ea d d x e 站c o l m t 1 1 0 1 0 1b l l6l3111 7971 图2 1 0 命令c m d 5 3 的结构 7 东南大学硕士学位论文 s ( t a r tb i t ) :开始位,表示传输的开始,总为0 ; d ( i r e c t i o n ) :方向位,为0 ,表示传输是从控制器到卡; c o m m a n di n d e x :表明命令为c m d 5 3 ,值为l1 0 1 0 1 b ; r wf l a g :该位表示数据的传输方向。如果该位为0 ,表示为读操作,将从功能模块序号和寄存器 地址所指向的功能模块寄存器中读取数据,然后传输给控制器。所读取的数据将通过数据 线进行传输。如果该位为l ,表示为写操作,将通过数据线把数据写入指定的功能模块寄 存器中; f u n c t i o nn u m b e r :读写操作的功能模块的序号。如果该值为0 ,表示读,写的是卡的公用i o 区域, 否则为普通功能区域; b l o c k m o d e ;表示传输的数据块模式。如果该位为1 ,表示要进行的读写操作是以数据块为单位的, 而不是以字节为基础的,此时字节,块计数位所指示的是写入或读出的数据块的个数, 而数据块的大小由每个功能模块的块大小寄存器来决定,这些寄存器的值由控制器 驱动来写入。0 号功能模块的数据块大小由昔共用控制寄存器组( c c c r ) 中的块大 小( b l o c ks i z e ) 寄存器决定。控制器通过读取卡共用控制寄存器组中的s m b 寄存器 可以知道该s d i o 卡是否支持数据块传输;如果该位为0 ,表示传输是以字节为单位 的; o p c o d e :操作模式位。该位为0 ,表示控制器要从s d i o 卡中的某个寄存器读取或写入多个字节的 数据。当需要从i o 接口设备的f i f o 中读取或写入多字节的数据时,这个操作是非常 有用的。在这种情况f ,f i f o 的地卅保存在地址寄存器中,数据通过数据线进行传输, 读取或写入的字节数由字节计数位的值决定;当该位为1 时,表示控制器要从s d i o 卡 的多个寄存器读取或写入数据。在这种情况下,读写操作的起始地址由地址寄存器中 所存储的地址决定,然后每完成一个字节的读写操作后,地外寄存器将自动加1 ,指 向下一个读,写地址。当对s d i o 卡的存储区进行大数据量的读,写传输时,这种操作是 十分有效的; r e g i s t e ra d d r e s s :指示读,写操作的起始寄存器地址; b y t e b l o c kc o u n t :字节,块计数值。该值在不同的传输模式有不同的意义。当进行数据块传输时, 该值表示要传输的数据块数。特别要指出的是如果此时该值为0 ,表示数据块 传输为不定长传输。当进行以字节为基础的数据传输时,该值表示传输的字节 数。表2 2 说明的是该值与实际传输数量之间的关系; 表2 - 2 计数位的值与数据传输的关系 l 计数值 0 x 0 0 00 x 0 0 l n y m ,n x l f f l 传输字1 ,数5 1 2 l 25 1 l l 传输块数 l25 “ c r c :7 位c r c 校验码; e ( n d b i 0 :结束位,总是为l 。 2 3 s d i o 卡结构 s d i o 卡有一个固定的内部寄存器区,同时还有功能模块专用区。在卡的同定区内存储的是卡 的基本信息,吲定区的寄存器分配是l 胡定的,允许任何控制器对其访问并进行读写等简单操作。功 能模块专j i i j 区的内容根据不同的功能模块有不同的定义,是由s d i o 卡制造商根据各种功能模块的 要求分别定义的。图2 - 1 1 所示为包含多个功能模块的s d i o 卡的内部寄存器结构: 8 第二章s d l 0 接口介绍 西帕咖- o x f f 西口叭。o 瓶叫f f o 帕2 - o x 0 0 f f 0 由,瓶伽f f 西帕7 瓶昕f f 0 x 0 8 0 0 m 删f f f 0 加叭0 - 0 m 1 7 f f f c i a ( f m t c f i o n 们 图2 1 1s d i o 卡内部寄存器 2 3 1 公用i ,0 区域( c 队) 在所有的s d i o 卡中都有一个公h ji o 区域。控制器可以通过发出对0 号功能模块的读,写操作 命令访问公用区域中的寄存器。这些寄存器的主要作用是使能或取消使能各个i o 功能模块的操作、 管理s d i o 卡中断以及加载软件来支持v o 功能模块的正常工作,同时这些寄存器还可以提供卡中 所有功能模块的丁作能力和需求的信息。在公用区域中有三个单独的寄存器组: 1 卡共用控制寄存器组( c c c r ) 2 功能模块基本寄存器组( f b r ) 3 卡信息结构区( c i s ) 通过访问卡共用控制寄存器组,控制器可以检查与控制s d i o 卡中的每个功能模块的使能以及 中断情况。s d i o 卡最多支持7 个功能模块,如果s d i o 忙中某个功能模块不存在,则与该功能模块 相对戍的使能寄存器将为0 并且是只读的。在上电或重置后,卡共_ h j 控制寄存器组中所有可写的寄 存器都将被置0 。在卡被初始化后,这些可写的寄存器在其所属的功能模块没有被使能的情况下也 可以被控制器访问,这样控制器就可以在初始化过程完成后通过对相应的使能寄存器进行写操作来 使能这些功能模块。 功能模块基本寄存器组。除了卡共用控制寄存器组以外,卡所支持的每个i o 功能模块还有2 5 6 字节的地址空间,使得控制器可以方便地检育每个功能模块的功能、需求或者加载功能模块所需要 的软件。该区域的地址从0 x 0 0 n 0 0 到o x 0 0 n f f ( n 代表功能模块的序号) 。下表是功能模块基本寄存 器组的具体寄存器结构: 表2 - 3 功能模块基本寄存器组的定义 地址7654 。3 21 l 0 0 x 1 0 0 功能块1 的代码存功能l 是否支持未用未刚功能块1 的标准i o 设备 储区使能位代码存储区 接口编号 0 x 1 0 1 0 x 1 0 8朱用 0 x 1 0 9 0 x 1 0 b指向功能模块l 的# 信息结构( c i s ) 区的指针 9 东南大学硕十学位论文 o x l o c 0 x 1 0 e指向功能模块l 的代码存储区的地址指针 0 x 1 0 f 功能模块1 代码存储区的数据访问窗寄存器 0 x l l m o x l l l 功能模块1 的i o 数据块大小 0 x 1 1 2 0 x l f f朱用 0 x 2 0 0 0 x 7 f f功能模块2 7 的基本信息寄存器区 o x 8 0 0 - 0 x f f f未用 卡信息结构区( a s ) 提供的是有关卡和每个功能模块的更完整的信息,是卡上所有功能模块的公 用区域。 2 3 2i o 代码存储区( c s a ) 为了支持s d i o 卡的即插即用( p l u g - a n d - p l a y ) 功能,卡中的每一个功能模块都需要一块存储 区域来存储驱动稗序和应用稃序。因为同一张 可能会连接到不同的控制器端口,为满足系统的要 求,卡的功能模块需要几个不同版本的驱动群序和应用程序,这些程序都要存储在代码存储区中。 代码存储区是一个单独的1 6 m b 的存储区,对代码存储区进行读写操作时,功能模块基本寄存器组 中的代码存储区地址指针寄存器将指向当前要访问的代码存储i 叉地址,数据访问窗寄存器将提供数 据传输通道。存储代码的另一种解决方法是将这些代码存储在一张复合s d i o 忙的存储区部分。 当控制器需要访问某个功能模块的代码存储瞬时,必须首先确认该功能模块是否支持代码存储 区。控制器要首先读取功能模块基本寄存器的0 x 0 0 n 0 0 地址寄存器的值( n 代表功能模块的序号) 。 如果该寄存器的第6 位值为1 ,表示该功能模块支持代码存储区,控制器只要再对该寄存器的第7 位写1 ,就可以将代码存储区的访问功能使能。然后控制器将读写操作的2 4 位起始地址写入地址 指针寄存器中。一旦起始地自r 被确定,就可以通过读,写代码存储区的数据访问窗寄存器来读取或写 入数据。如果需要读,写的数据苗超过一个字节,可以采刚命令c m d 5 3 并保持o p 值为o ( 表示对 同定地址读,写的操作) 来进行。这时,每次读写窗寄存器时,代码存储区地址指针会自动加l ,将 连续地址的存储区数据通过窗寄存器传输出去 2 4本章小结 本章主要介绍了s d i o 接口的主要特点。首先介绍了s d i o 控制器与s d i o 卡的控制与数据流特 点,包括命令与响应的格式;然后介绍了主要命令和响应的定义与用途命令c m d 5 及其响应r 4 , 命令c m d 5 2 和c m d 5 3 及其响应r 5 ;对s d i o 卡的通用硬件结构进行了简单的描述,包括臂中寄 存器与存储区结构的说明。 1 0 第三章s d l 0 接口的硬件设i 第三章s d i o 接口的硬件设计 3 1s d i o 接口硬件结构 s d i o 接口的硬件包括s d i o 控制器与s d i o 卡两个部分。s d i o 控制器的一端与g a r f i e l d 芯片 的a p b 总线相连接,通过a p b 总线与系统连接在一起,从系统的内存中读取或写入数据,接受c p u 的控制;另一端与s d i o 卡连接,通过s d 总线对s d i o 卡进行读写或控制操作。图3 1 所示为s d i o 接口的硬件结构: c u 【 v 肋 s d i o v s s s d i o 主控制器 卡 d m 3 d o - 3 c 卜 c m d 图3 - 1s d i o 接口硬什结构 s d i o 控制器中主要包括命令控制器、数据控制器、中断控制器、时钟功耗控制器和数据f i f o 等模块,本文将对这些模块的结构和功能将进行逐一的介绍。图3 2 为s d i o 控制器硬件结构i 璺i : a p b 总 线 3 2 命令控制器的设计 图3 - 2 控制器硬件结构 东南大学颀士学位论文 命令控制器是整个s d i o 控制器的核心部分,它是保证s d i o 控制器正常工作运转的主要模块, 作用是产生带有开始标志位、结束标志位和7 位c r c 校验码的命令,然后将其通过s d 总线发送给 s d i o 卡;接收s d i o 卡发同的响应,并且检查响应是否合法,c r c 校验码是否j e 确;在进行数据 块传输的时候,与数据控制器相互通讯,使数据传输的开始和结束符合时序要求。 当控制器驱动要发出命令时,首先将命令参数写入命令寄存器,然后命令寄存器按照命令格式 添加开始位、c r c 校验码和结束位产生命令。命令寄存器的结构如下图所示: 图3 - 3 命令控制寄存器 d 1 5 一d 1 4 :未用; d 1 3 - d 0 8 :命令的序号。s d i o 协议已经将各种命令按照顺序编排了序号,每个命令都有其唯一对应 的序号来彼此区分; d 0 7 一d 0 6 :命令类别。s d i o 协议将命令分为四种:s u s p e n d 命令,r e s u m e 命令,a b o r t 命令和普通 命令 d 0 7 ,d 0 6 1 - - 0 0 :普通命令。普通命令用丁向s d i o 卡传递操作指示等信息; d 0 7 ,d 0 6 = 0 1 :s u s p e n d 命令。s u s p e n d 命令执行以后,控制器会假定此时s d 总线已经释 放并且可以发起新的需要用到数据线的命令。如果下一个操作是读操作。 控制器会取消读等待;如果是写操作,控制器将不再检查b u s y 信号。如 果s u s p e n d 命令失败,控制器将保持现有的状态不变,重新开始上一个 传输; d 0 7 ,d 0 6 - - 1 0 :r e s u m e 命令。r e s u m e 命令用于恢复未完成的传输。当控制器驱动要重新 开始未完成的传输时,由于上一次传输的信息保存在寄存器中,驱动程 序要首先读取寄存器中的信息然后开始传输; d 0 7 ,d 0 6 = i l :a b o r t 命令。如果一个读传输正在进行的时候控制器发出a b o r t 命令,那 么控制器将不把读取剑的数据放入数据f i f o 中,同时读操作结束;如 果当写传输上e 在进行的时候发起a b o r t 命令,那么控制器将不再把数据 驱动剑s d 总线的数据线上: d 0 5 :表示该命令是否会发起使用数据线的数据传输。当该位被置l 时,表示该命令会发起数据传 输; d 0 4 * 命令序号检查使能位。当该位被置1 时,命令控制器将会检查该条命令执行后响应返回的命 令序号是否与该条命令的序号相一致,如果不一致命令控制器将会报告一个命令序号错误;如 果该伊被置0 ,那么命令控制器不会检查响应返【亓l 的命令序号; d 0 3 :命令c r c 校验使能位。如果该位为i ,那么命令控制器将会检查该命令的响应c r c 校验码是 否正确。如果响应的c r c 校验码错误,命令控制器将会报告一个c r c 错误;如果该位为0 , 命令控制器将不会检查响应的c r c 校验码; d 0 2 :未圳; 1 2 第二卓s d l 0 接口的硬件设引 d 0 1 - d 0 0 :表示该条命令的响应类型。0 0 表示该条命令没有响应:o l 表示该条命令的响应是1 3 6 位; l o 表示该条命令的响应是4 8 位;l i 表示该条命令的响应是4 8 位,并且在响应之后需要 检查忙信号。 为了保证命令在正确的时间被发起,控制器驱动向命令寄存器写入新的命令之前,必须通过检 查当前状态寄存器( p r e s e n ts t a t er e g ) 的命令禁j e ( 命令) 位和命令禁止( 数据) 位判断是否还有未 完成的命令传输或数据传输,只有在没有命令禁止的情况下,才可以向命令寄存器写入新的命令参 数。由于控制器的硬件没有设置命令保护措施,命令的j e 确写入必须由驱动程序保证。一旦命令参 数写入命令寄存器,一条新的命令就会产生,该命令将被送入命令控制器中,由命令控制器通过s d 总线发送剑s d i o 卡。 命令控制器的状态机有停j e ( s t o p ) 、等待发送( w a i t _ s e n d ) 、发送( s e n d ) 、等待接收( w a i l r e c e i v e ) 和接收( r e c e i v e ) 五个状态。停止状态为命令控制器上电或重置后的状态,当命令控制器在该状态 接到命令参数准备好的信息时,将进入等待发送状态等待接收命令参数。在接到命令参数以后,命 令控制器将把接收到的命令参数按照正确的命令格式发送到s d 总线上。对于没有响应的命令,此 次命令过程结束,状态机跳转剑停止状态。对于有响应的命令,命令控制器将进入等待接收状态, 准备接收s d i o 卡发回的响应。如果超过规定的时限仍没有接到s d i o 卡返回的响应,命令控制器 将认为该响f 超时,并进入停止状态。如果响应止常返回,命令控制器将在响应接收结束后剑达停 止状态。f 图所示为命令控制器的状态机跳转情况: 3 3 数据控制器的设计 图3 - 4 命令控制器状态机 数据控制器也是s d i o 控制器中的重要模块。数据控制器主要完成的t 作是根据控制器的驱动 指令,从写数据f i f o 中读取数据并驱动到s d 总线上或者从s d 总线上接收数据存储剑读数据f i f o 中;检查接收数据线上的中断信号。 数据控制器的状态机由停止( s t o p ) 、空闲( i d l e ) ,等待接收( w a i l r e c e i v e ) 、接收( r e c e i v e ) 、 接收c r c ( r e c e i v e _ c r c ) 、接收结束位( e n d _ b i t ) 、等待发送( w a i t _ s e n d ) 、发送( s e n d ) 、发送c r c ( s e n d _ c r c ) 和发送结束位( e n db i t ) 八个状态组成。数据控制器重置或上电后,将处于停止状态。 如果数据控制器在该状态检测到有数据需要传输,状态机将跳转到空闲状态准备进行数据传输。在 空闲状态数据控制器需要判断数据的传输方向,即数据传输是由卡到控制器还是从控制器剑卡。 在判断完成之后,将根据数据传输方向的不同进入等待接收状态或等待发送状态。 1 3 东南大学硕士学位论文 如果将要发起的是接收传输,那么命令控制器将进入等待接收状态,准备从s d 总线接收数据。 如果等待超时,数据控制器将认为此次数据传输失败,然后结束该次数据接收过程并同到停止状态, 等待新传输开始。如果在规定的时间内数据控制器在数据线上检测到了数据的开始位,数据控制器 将开始接收数据并进入接收状态。在接收状态数据控制器将把数据线上接收到的数据储存剑读数据 f i f o 中。有效数据接收完成后,数据控制器将接收并检查数据的c r c 校验码,最后接收数据传输 结束位。在接收过稃全部完成后,数据控制器将重新进入停j r 状态,等待下一次传输的开始。需要 说明的是,如果数据控制器发现数据的c r c 校验码错误,将发起中断通知中断控制器,由中断控制 器采取措施对中断进行处理。 如果将要发起的是发送传输,命令控制器将进入等待发送状态,等待写f i f o 中的数据。当数 据控制器检测剑写f i f o 中的数据已经准备好时,进入发送状态,在该状态数据控制器把写f i f o 的 数据不断发送剑s d 总线上同时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度房产抵押贷款三方借款合同
- 2025年厨房设备租赁与改造工程合同
- 2025版高空作业平台外架工程班组劳务承包合同
- 2025版汽车4S店专用汽车运输服务合同
- 2025版智慧城市建设投资借款合同
- 2025版水电工程设计与施工及维护保养协议
- 2025版土建资料承包项目施工组织设计与进度控制合同
- 2025年度港口码头施工总价合同模板
- 2025版智慧城市建设土地测绘与规划合同协议
- 2025第一部生物科技药物研发与生产合同协议书
- 农药助剂限制与剂型的发展机遇
- 中国石化起重作业安全管理规定
- GB/T 2820.1-2022往复式内燃机驱动的交流发电机组第1部分:用途、定额和性能
- 商业街物业管理的方案
- 通信专业实务:传输与接入(有线)
- 高等数学函数的连续性与间断点
- 梅毒专题知识讲座
- 实联化工(江苏)有限公司100万吨年联碱项目验收监测
- 70周岁以上老年人换长久驾照三力测试题库
- 斜视患者的护理
- GB/T 18492-2001信息技术系统及软件完整性级别
评论
0/150
提交评论