嵌入式系统设计课程论文.doc_第1页
嵌入式系统设计课程论文.doc_第2页
嵌入式系统设计课程论文.doc_第3页
嵌入式系统设计课程论文.doc_第4页
嵌入式系统设计课程论文.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

嵌入式系统设计课程论文专业:测控技术与仪器姓名:林 治 冰学号:0803020317 目录1SD卡概述12系统设计方案12.1 S3C44B0X的特点12.2 W86L388D的特点12.3 硬件设计23驱动程序设计33.1 控制协议33.2 核心驱动程序44结束语4参考文献4基于ARM7的SD卡控制系统的设计摘要提出了一种基于ARM7处理器 S3C44B0X、以SD卡主控芯片W86L388D 为核心的设计方案,为低端嵌入式产品提供SD卡功能。设计出了硬件电路图,并分析了SD卡的控制协议,给出了相应的软件设计方法,编写出了底层的驱动程序。通过实际测试分析了该方案的性能。关键词: 嵌入式系统;S3C44B0X;SD卡;W86L388D1 SD卡概述SD卡(Secure Digital Memory Card)是一种基于半导体快闪记忆器的新一代记忆设备,其最大的特点就是通过加密功能,保证数据资料的安全保密;SD卡拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。目前市场上基于ARM 的嵌入式产品多数不支持SD卡,尤其是基于ARM7的低端嵌入式产品。鉴于SD卡的诸多优点,以及ARM7的广泛应用,考虑通过增加额外的芯片作为扩展模块,为这类低端嵌入式产品提供SD卡功能。SD卡通信基于9芯的接口(Clock,Command,43 Dat,33 Power Lines),其最大工作频率25MHz,拥有高达10Mb/s的读写速率,SD卡系统支持SD和SPI模式的两种通信协议。模式的选择对主机是透明的,由SD卡自动检测复位命令的模式,在此后的通信过程中始终使用此种通信方式。SD卡在结构上使用一主多从的星型拓扑结构,并高度集成闪存,具备串行和随机存取能力。可以通过专用串行接口访问,数据传输可靠,并允许几个卡垛叠。接口完全符合最新的消费者标准,叫做SD卡系统标准,由SD卡系统规范定义。2 系统设计方案2.1 S3C44B0X的特点S3C44B0X微处理器是Samsung公司为低成本、低功耗的应用产品而设计的,可以使用在移动手持终端设备和互联网产品中。该芯片采用0125mCMOS工艺和SAMBA11总线结构(SAMSUNGARM CPU嵌入式控制器总线结构)设计,核心逻辑部件建立ARM公司的ARM7TDMIRISC处理器上,最高运行时钟频率达66MHz,并带有8kB的指令和数据Cache,由于ARM7TDM中没有集成存储管理部件,特别适用于uClinux和uCos操作系统.2.2 W86L388D的特点SD卡与ARM CPU的通信采用Winbond公司的芯片W86L388D,这块芯片能够使用1线或4线传输数据及指令,工作频率最高达25MHz。W86L388D有如下特性:兼 容MMC spec1 Version 212和SD spec1 Version 110;支持两种类型的主机微控制器间的接口访问同步和异步模式;支持DMA和中断传输方式;具有主机微控制器8/16位数据总线;内置晶体驱动电路,支持外部时钟或晶体时钟;支持额外的5路可编程 GPIO;输入时钟宽度为3158M H z25M H z;313V工作电压。其内部结构见图1。图1 W86L388D内部结构图在本设计中,通过几根控制线和1根中断请求线与一片桥接控制芯W86L388D相连,利用W86L388D控制芯片完成对SD卡命令的发送和数据的传输。CPU通过给其相应的寄存器中写入控制命令来驱动读/写SD 卡,从SD卡中读取的数据通过CPU相连的16位数据总线发送给CPU处理。SD卡与CPU 的通信是通过中断方式来进行应答的,W86L388D的中断控制器显示SD卡的各种中断请求,CPU只须读取其状态就能判断对SD卡进行如何处理。2.3 硬件设计图2为W86L388D硬件电路图。W86L388D提供了总线方式的接口,所以与处理器的电路设计相对比较简单。从图2可以看出,与处理器的接口可以是异步(TYPE1)或同步(TYPE2)模式。XTYP2引脚接地使得W86L388D工作在TYPE1模式,这样所有的工作时序由S3C44B0X芯片提供。W86L388D与SD卡的连接也比较方便,芯片的SD1SD6引脚与SD卡的4根数据线、1根命令线和1根时钟线相连。XINT接S3C44B0X的外部中断ExINT4,XCSN接从S3C44B0X扩展出来的片选管脚nCS_SD,XRDN/XRDWRN和XWRLN/XBELN分别接芯片的nOE和nE,来控制当前的总线周期为读周期或者写周期。W86L388D还有5个GPIO引脚可供系统使用,在此电路中,GIO0连接SD卡的CD端,用于对卡是否插入的检测;GIO1和GIO2分别外接一个发光二极管,用来指示SD卡的插入和读写;GIO3外接SD_ PWEN电路,SD_PWEN电路利用其中的一个场效应管保护卡的热插拔;GIO4外接SD卡的WP脚,用来允许对SD卡进行读写。图2W86L388D硬件电路图 图3 SD卡读写流程示意图3 驱动程序设计3.1 控制协议SD卡有两种总线协议:SD协议和SPI协议。现在绝大部分微控制器都集成 SPI接口,所以利用这种方式与SD卡通信相对简单方便,但SPI协议在数据交换时只允许1位数据串行传输,所以其速度受到限制。在SD协议下,允许强大的1线到4线数据传输,这样就提高了其传输速度。但SD总线时序要求严格,如果用软件模拟不仅复杂烦琐,而且可靠性也不高,W86L388D支持SD方式的4线数据传输,并且根据所收到的命令能自动产生相应的SD时序,从而方便用户的使用,提高了系统的性能。与SD卡通信的命令(CMD)和数据(DATA)由一个起始位开始,由一个结束位终止发给SD卡的命令采用6字节的格式,命令由主机通过CMD线串行发给SD卡,标志SD卡的行为动作,部分命令要求卡返回一个应答信号,应答信号同样是通过 CMD线由卡传送给主机的。当主机发送给卡的命令要求有数据交换时, DATA0 DATA3线将进行相应的数据传输。每张SD卡内部都有一组寄存器存储此卡的相 关信息,在访问SD卡的过程中,所有的操作都由主机发起,主机发起的命令(CMD) 有两种类型:广播命令和点对点命令。广播命令对系统中所有的卡都有效,只有被选定的卡才能接收点对点命令1。SD卡读写数据的流程见图3。结合SD卡桥接芯片,下面给出对SD卡进行读/写操作的步骤:读操作:首先进行W86L388D中断允许设置;其次对选定的卡写入CMD17命令,当卡收到有效的命令后,将在数据线上把所操作块的数据传送给主机;最后写入CMD12命令停止数据的传输。写操作:首先进行W86L388D中断允许设置;然后对选定的卡写入 CM D 24 命令,主机在确认卡收到正确的命令后,在数据线上把数据传送给卡中的操作块;最后写入CMD12命令停止数据的传输。至此,通过桥接芯片W86L388D对SD卡进行数据传输的操作已经顺利完成。实际使用SD卡时,可以考虑在此基础上移植文件系统,这样可以更加方便用户的使用。3.2 核心驱动程序SD卡是可拔插的设备,在系统启动的时候,卡片可能并不在系统当中。因此,本文在实现驱动程序的时候,将它分为总线检测模块和SD卡操作模块。总线检测模块静态的编译进内核,在系统初始化时就注册中断服务程序。当SD卡插入,中断发生之后,就把SD卡操作模块加载进内核。总线检测模块检测到SD卡插入系统后,会调用SD卡操作模块的模块初始化函数,从而完成驱动的注册,下面是初始化的部分代码:void Target_Init(void)/目标板初始化函数Uart_Init(0,115200,0);/对串口进行初始化,以便显示所有操作信息Port_Init( );/端口进行初始化Exep_S3cINT_Init( );/中断初始化Cache_Init ( );/对缓存区进行初始化SDINT_Init( );/对 SD 卡进行初始化StartInterrupt( );/打开中断4 结束语采用普通SPI模式操作SD卡虽然电路简单,但速度相对较慢,而且驱动程序编写非常复杂。本设计通过桥接芯

温馨提示

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

评论

0/150

提交评论