嵌入式系统SD卡接口技术分析

2009-09-29 08:16黄文超
企业技术开发·中旬刊 2009年5期
关键词:掌上电脑存储卡驱动程序

黄文超

摘要:文章在介绍SD存储卡相关技术基础上,对基于Windows CE.NET 操作系统的掌上电脑的SD卡接口的设计与实现开展深入的研究,主要集中在SD卡硬件接口的设计。

关健词:Windows CE.NET;SD卡技术;存储技术

中图分类号:TP310.89文献标识码:A文章编号:1006-8937(2009)10-0018-02

1SD存储卡技术及SD主控制寄存器概述

存储卡的最大应用领域一直是数码相机领域,而随着消费电子市场对存储容量的需要日益迫切,尤其是智能手机和掌上电脑等产品的销量不断增长,消费电子市场将成为存储卡最主要的市场。目前在手机和掌上电脑等消费电子产品上应用的存储卡有:SD卡,MMC,mini-SD,RS-MMC,MMC Plus,记忆棒,CF 存储卡等,SD和 MMC由于占有绝对的市场份额而成为事实的标准。

S3C2410A微处理上,SD主控制器接口的32bit功能寄存器物理地址从0X5A000000开始下面简单介绍SD 主控制器接口的重要寄存器。

①SDICON(SDI Control Register,SD接口控制寄存器),该寄存器中的功能位用来设置SD主控制器的时钟类型,SD主控制器的FIFO复位,读写等待条件,是否响应SD主控制器的SDIO中断和SD主控制器读写数据时候的字节顺序。

②SDIPRE(SDI Baud Rate Pre-scaler Register,SD 波特率因子寄存器),设置该寄存器中的bit 0~7,可以对系统的PCLK进行分频,然后提供给SD主控制器使用,分频公式为:Baud Rate=PCLK/2/(SDIPRE+1)。

③SDICCON(SDI Command Control Register,SD命令控制寄存器),该寄存器存放发送给SD主控制器的命令,主控制器是否等待响应,命令是否带有数据等。

④SDICSTA(SDI Command Status Register,SD命令状态寄存器),该寄存器包含命令是否正在传输,命令是否超时,响应CRC校验失败等标志位。

⑤SDISP(SDI Response Register,SD响应寄存器),共有4个,只读属性。当响应是短响应时,只用SDISP0,否则就需要使用四个响应寄存器。

⑥SDIBSIZE(SDI Block Size Register,SD数据块大小寄存器),该寄存器只使用了bit 0~11,所以数据块最大为4095字节,当使用流模式传输时,该寄存器忽略。

⑦SDIDCON(SDI Data Control Register,SD数据控制寄存器),bit 0~11为传送数据块的数目;剩下的状态位标识数据传输模式,DMA通道使能,数据总线宽度(1bit 或4bit模式),传输停止方式,传输响应,SDIO中断周期等。

⑧SDIDSTA(SDI Data Status Register,SD数据状态寄存器),包含数据收发状态,传输完成,是否超时,CRC 校验,FIFO失效,SDIO中断等状态位。

⑨SDIDAT(SDI Data Register,SD数据寄存器),该寄存器用来保存SD控制器用来传送或接受的数据。

⑩SDIDAT(SDI Data Register,SD数据寄存器),该寄存器用来保存SD控制器用来传送或接受的数据。

当需要对SD主控制器接口进行控制时,我们必须先要将SD主控制器的寄存器初始化,然后对相应的SD接口寄存器进行读写来完成工作。

2接口硬件设计

N30系统是一款针对中低端用户设计的掌上电脑,基于成本和功能的考虑,我们选择Samsung的S3C2410A 16/32bit的RISC处理器芯片,内部扩展USB、SD接口,支持红外线和蓝牙数据传输接口,努力维持一个较低成本的同时,使得整个系统有一个较高的整体性能。在此基础上使用GPIO引脚扩展的方法,对标准SD接口进行扩展,设计并实现N30掌上电脑的SD卡接口。

N30中选用的是Samsung的S3C2410A嵌入式ARM微处理器,采用ARM920T核心,内部还有液晶显示屏控制器,IIC总线和IIS总线控制单元,3通道的UART,4通道DMA控制器,电源控制单元,时钟发生电路,USB主机控制器、USB设备接口和SD主控制器等,工作频率可达到266MHz。适用于低成本的嵌入式应用,满足我们的设计需要。ARM9系列采用五级流水线和哈佛结构,提供1.1MIPS/MHz的性能,是高性能和低功耗的硬宏单元。ARM920T和ARM922T具有全性能MMU、指令和数据Cache以及高速AMBA总线接口,适用于高性能、低功耗的应用。

N30系统由于采用Samsung的S3C2410A芯片,内部支持内存控制、NAND Flash和SD卡接口等。Flash存储器采用的是一Samsung的K9F5608U0C,32MB的NANDFlash;RAM采用的是两片Samsung的K4S561633C,构成 16M*16bit*2的64MB内存空间;SD卡接口采用APLS公司的SCDA1A0100 SD卡连接插槽,通过GPIO扩展其 SD卡检测引脚信号和电源使能信号等。

N30掌上电脑的硬件系统的主要模块有:嵌入式处理器,电源模块,LCD和触摸屏,音频模块,时钟,USB 接口等,另外还有用于调试的JTAG和串行接口。

嵌入式处理器是整个系统的核心,它主要负责整个系统的运行,控制各个部件的工作和协议转换。

电源模块负责整个系统的供电,主要向嵌入式系统提供2.5V,3.3V和5V的直流电压,向LCD模块提供3.3V、5V、12V的直流电压。同时采用TI的MSP430F1111A微控制器,负责电池的温度、电量监测和电池充电,以及控制LED灯的状态。

音频模块采用 Philips的UDA1380音频编解码芯片,连接外部话筒和耳机,同时经过音频放大之后连接到内部扬声器,音频模块和CPU之间采用IIS总线连接。I2S(Inter IC Sound)总线是飞利浦半导体公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专责于音频设备之间的数据传输,广泛应用于各种多媒体系统中。I2S数据通过DMA或者PIO方式与系统内存交互。

摸屏和LCD显示屏是主要的人机交互接口,负责响应用户的触摸笔输入和显示输出,显示屏是3.5寸 65536色的TFT 液晶显示屏,分辨率为240*320,内部集成触摸屏电路和背景灯电路。

时钟模块由32.768KHz、13MHz的晶振和时钟发生电路组成。32.768KHz的时钟提供给RTC实时时钟,用于低精度的系统计时。13MHz的晶体振荡器经过时钟发生电路升频以后,输出FCLK,PCLK和HCLK三路。其中 FCLK专用于ARM920T核心;HCLK用于AHB高性能总线,提供给内存控制单元、中断控制单元、USB主机控制器单元等;PCLK用于APB高性能外部总线,提供给 SD/MMC、SPI接口等。

USB接口分为两个模块:USB主机控制器和USB设备端口。主机控制器可以连接USB鼠标、键盘等USB设备,扩展PDA的功能;USB 设备端口可以用于PDA和 PC端的USB连接,将PDA的存储设备和PC连接起来,使得PDA成为PC机的移动存储设备。

3驱动设计与实现

S3C2410A芯片内部支持SD主控制器的基本接口,通过GPIO的扩展完成了SD接口的硬件设计,本章主要针对SD卡扩展的存储接口进行分析、设计和实现。我们为 N30掌上电脑上运行的 Windows CE系统开发了SD 主机控制器的驱动程序。Windows CE下,驱动程序是用户态的动态链接库(Dynamic Link Library,DLL),这些 DLL向内核提供一些接口函数,这样设备管理模块就可以通过这些函数与具体的硬件设备进行通信。

其中,驱动软件架构分析如下。Windows CE的驱动程序模型主要有2种类型:流式接口驱动(Stream Interface Driver)和本地设备驱动(Native Device Driver)。流式设备驱动向上层提供统一的流式设备接口,而本地设备驱动可以根据具体设备要求提供相应接口。N30掌上电脑系统中,SD Host的驱动程序采用流式接口驱动模型。驱动程序要实现相应的XXX_Open( ),XXX_Close( )等响应的流式设备接口函数,其中XXX为设备驱动的前缀,应用程序可以通过文件操作来控制设备。为了减少了 SD Host驱动程序设计的复杂性,使其具有较好的可移植性,采用BSQUARE提供的SD Host DDK,它在 BSQUARE SD协议栈的基础上,提供了平台独立的总线和客户端驱动和一组标准化的API供使用。在该体系结构下,SD主控制器驱动负责检查SD卡的插拔状态,检测插入的卡的类型,设置SD主控制器时钟等SD接口的硬件操作;SD总线驱动则负责上层卡驱动的装载和移除,维护每一个插槽的总线请求队列等。该结构的设计很大程度上减少了SD Host驱动程序设计的复杂性,使SD Host控制器驱动程序设计可以专注于硬件相关的部分。总线驱动是SD卡客户端驱动程序和SD Host 驱动程序之间的一个抽象层,它为SD卡客户端驱动提供平台独立的服务接口。SD Host驱动程序需要完成处理器和硬件平台相关的处理,向上层驱动提供统一的服务接口。

参考文献:

[1] 周维,陈默.基于S3C2410的ARM开发平台[J].电子技术,2004,31(7): 4-7.

猜你喜欢
掌上电脑存储卡驱动程序
计算机硬件设备驱动程序分析
有Wi-Fi功能的高速卡 东芝FlashAirTM(W-04) 无线LAN SD存储卡试用
掌上电脑在医院信息系统中护理工作的应用
三星发布首款UFS存储卡
存储卡盒
基于MPC8280的CPU单元与内部总线驱动程序设计
“掌上”电脑
带瑞士军刀的掌上电脑