首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
嵌入式系统的SD控制器设计实现
来源:本站整理  作者:佚名  2011-09-08 06:53:39



      引言

  在目前的掌上电脑等嵌入式系统中,SD(securedigital)卡以其体积小和引脚数少的优势,提供了比CF更好的外部设备扩展解决方案。因此,如何在系统中集成SDHost控制模块,以及在嵌入式操作系统里面实现其驱动程序,都是目前嵌入式系统设计者要考虑的问题。
 

        本文实现所采用的开发平台是基于SAMSUNG公司的S3C2410AARM微处理器,利用处理内部的SD控制模块,采用GPIO扩展的方法实现SDHost控制器。

        使用S3C2410A的SD控制模块,通过对GPIO功能的扩展来完成SD的检测和写保护的功能,实现SDHost控制器相对比较灵活。在进行驱动程序开发过程中,对SD卡检测进行防抖动处理是必要的,必须根据系统电路特性来确定合适的检测时机,在驱动程序里面实现防抖动处理,保证整个系统的效率。

  1 SDHost硬件设计

  SCDA1A0100是ALPS公司生产的SD卡连接插槽,采用高可用的滑动触点开关,能够准确地检测到卡插入的时机。

  通过小型化和薄型化设计,已经广泛应用于PDA,数码相机和个人电脑。当插槽有SD卡插入时,SD卡会触动槽内的触点开关,引起卡的检测引脚和写保护引脚的相应电平变化。

  Samsung的S3C2410A内部支持SDHost的控制模块,有SDHost控制寄存器和可以用于SDHost控制器的IO引脚,可用编程的方法对其功能进行选择;但对于SD卡的检测,写保护和插槽的电源使能等功能没有专门的引脚。在本文实现中,对于卡检测、电源引脚,通过GPIO扩展来实现。部分引脚定义如表1所示。

  表1 S3C2410A部分GPIO引脚功能定义

  

S3C2410A部分GPIO引脚功能定义

  S3C2410A的GPIO引脚分为GPA,GPB等8组,每组的IO引脚有控制寄存器(GPxCON),数据寄存器(GPxDAT),Pull-Up寄存器(GPxUP)进行控制。每根引脚所在的GPxCON里有对应位控制其功能,通过对GPxCON编程来控制其功能,某一时刻,该引脚只能使用一种功能。

  对于SD卡检测引脚,需要配置成外部中断源(EINTx),对应的EXTINT0,EXTINT1和EXTINT2寄存器控制该中断源的触发模式:低电平触发,高电平触发,前沿触发,后沿触发或是前后沿触发。

  S3C2410A时钟控制逻辑有两个锁相环路PLL(phaseLOCkedloop):UPLL专用于USB时钟;MPLL能够产生系统要求的3种时钟信号:FCLK供CPU内核使用,HCLK供系统总线使用,PCLK供外部总线使用。通过对MPLL控制寄存器MPLLCON配置,可以产生需要的时钟频率。

  在时钟控制逻辑里,寄存器CLKCON用来控制如USB,LCD,UART,SD等接口模块的时钟使能。其中bit[9]用于控制SD/MMC接口的时钟。SDHost控制器不能直接使用PCLK信号。正常工作模式下,FCLK为266MHz,PCLK为66.5MHz,而SD卡的最高时钟为25MHz,MMC卡最高为20MHz。通过对SDIPRE寄存器的bit[0-7]设置可以对PCLK进行分频,选择合适SD/MMC卡的工作频率。分频公式为:

  Clockrate=PCLK/2/(SDIPRE[0-7]+1)

  2 驱动程序的实现

  2.1 驱动程序体系结构

  我们为开发平台上运行的WindowsCE系统开发了SDHost控制器的驱动程序。WindowsCE下,驱动程序是用户态的DLL,这些DLL向内核提供一些接口函数,这样设备管理模块就可以通过这些函数与具体的硬件设备进行通信。

  WindowsCE的驱动程序模型主要有两种类型:流式接口驱动和本地设备驱动。流式设备驱动向上层提供统一的流式设备接口,而本地设备驱动可根据具体设备要求提供相应接口。

[1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:142,601.60000 毫秒