为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

汽车导航仪的SD卡驱动程序设计

2010-04-26 2页 pdf 144KB 187阅读

用户头像

is_873437

暂无简介

举报
汽车导航仪的SD卡驱动程序设计 ·制造业信息化· 收稿日期:2007-11-26 作者简介:王斌(1983-),男,硕士研究生。研究方向:嵌 入式系统设计。 0引言 GPS导航仪现已广泛应用于汽车导航,但普通导航 仪设备的功能单一,因此有必要为导航设备添加娱乐功 能,如播放音频,视频等。而音频、视频的文件一般比 较大,需要比较大的存储空间。SD卡的价格低廉,存储 容量大,存储速度较快,且有数据加密功能,适用于存 储多媒体文件。而 WindowsCE是嵌入式操作系统,由 于其界面酷似桌面操作系统,故容易被用户接受。要在 windows...
汽车导航仪的SD卡驱动程序设计
·制造业信息化· 收稿日期:2007-11-26 作者简介:王斌(1983-),男,硕士研究生。研究方向:嵌 入式系统。 0引言 GPS导航仪现已广泛应用于汽车导航,但普通导航 仪设备的功能单一,因此有必要为导航设备添加娱乐功 能,如播放音频,视频等。而音频、视频的文件一般比 较大,需要比较大的存储空间。SD卡的价格低廉,存储 容量大,存储速度较快,且有数据加密功能,适用于存 储多媒体文件。而 WindowsCE是嵌入式操作系统,由 于其界面酷似桌面操作系统,故容易被用户接受。要在 windowsCE上使用SD卡,就要编写合适的SD卡驱动。 1系统的硬件设计 导航仪系统总体结构。导航仪的硬件系统如图1所 示 主 要 有 : 中 央 处 理 器 CPU,GPS模 块 ,NAND FLASH,触摸屏,外扩存储卡。其中 CPU采用了 s3c2440A芯片作为 CPU。采用 ARM9内核,工作电压 1.3V,采用 0.13!mCMOS处理器,支持 WindowsCE, PalmOS,Symbian和 Linux 操作系统,提供的接口有 NAND闪存,TFT/STN液晶 屏 , USB, SD/MMC/SDIO 存储卡等接口。外扩存储 卡采用了容量为 512MB的 SD卡。 GPS模块完成对 GPS 信息的采集,并把信息反馈给CPU,CPU完成对信息的 处理,并把处理后的信息显示于触摸屏上。NAND FLASH存放 WindowsCE的内核文件,外扩存储器存储 多媒体以及其它文件。 (1)SD硬件特性。SD卡的接口可以支持两种操作 模式:SD卡模式和SPI模式 (位传输模式)。主机系统可 以选择以上其中任一模式,SD卡模式允许4线的高速数 据传输。 SPI模式允许简单通用的SPI通道接口, 但读 写速度大大降低了。SD卡的形状及引脚如图2所示。 (2)CPU与 SD卡的连接。在 s3c2440A中,有专门的SD卡的接 口,故可以把它们直接连接起来, 相应的电路如图3所示。 (3)SD卡的寄存器。在编写 SD的驱动时,主要就是对 SD卡 的寄存器进行配置,从而实现对 SD卡的读或写的操作。SD卡有六 个寄存器,分别 为:①CID卡的 识别号;②RCA 卡的相对地址; ③DSR可选寄存 器;④CSD描述 操作该卡的规则 (时序规则)。包 括,数据读/写时 间,工作电流,扇区大小,文件系统格式,卡所使用的 命令集,写保护等信息。通过该寄存器可以获取卡的容 量,访问方式;⑤SCR卡的配置寄存器;⑥OCR卡运行 汽车导航仪的SD卡驱动程序设计 王 斌,洪永强 (厦门大学 机电工程系,福建 厦门 361005) 摘 要:采用SD卡作为汽车导航仪系统的外扩存储器。根据SD卡的硬件特性,设计了CPU与SD卡的电 路连接。并了WindowsCE下流接口驱动的特点,以及SD卡驱动程序与中断的关系,提出了 基于WindowsCE下的SD卡驱动的实现方法。 关键词:WindowsCE;SD卡;驱动程序 中图分类号:TN914 文献标识码:A 文章编号:1002-6673(2008)01-101-02 Vol.21,No.1 Jan.,2008 第21卷第1期 2008年1月 机电产品开发与创新 Development&InnovationofMachinery&ElectricalProducts 图1导航仪系统结构图 Fig.1Thestructureof navigator 图2SD卡的形状及 引脚图 Fig.2Theshapeand pinsofSDcard 图32440与SD卡的硬件连接图 Fig.3Theconnectionbetween2440 andSDcard SD卡 外扩存储卡 NAND FLASH 2440 GPS 模块 触摸屏 2440 SDDATA1 SDDATA0 SDCLK SDCMD SDDATA3 SDDATA2 8 7 6 5 4 3 2 1 9 SD卡 VCC 101 ·制造业信息化· DesignoftheSDCardDriverforCarGPSNavigatorBasedonWindowsCE WANGBin,HONGYong-Qiang (DepartmentofMechanicalandElectricalEngineering,XiamenUniversity,XiamenFujian361005,China) Abstract:SDcardisusedasexternalmemoryincarnavigatorsysteminthisarticle.TheelectricalconnectionbetweenCPUandSDcardis designedaccordingtothespecialityofSDcard.AndthefeaturesofstreaminterfacedriversbasedonWindowsCEandtherelationbetween theinterruptionandthedriverofSDcardisanalysed,thentheimplementationoftheSDcarddriverispresented. Keywords:WindowsCE;SDcard;driver 条件寄存器 描述卡的工作电压范围 ,它还包含一个上电 状态标记位用于描述是否完成卡上电过程。 2WindowsCE的驱动程序 (1)WindowsCE的驱动分类。按照驱动程序接口的不 同,WindowsCE驱动有两种模型:本机设备驱动程序和流 接口驱动程序。本机设备驱动适于集成到基于CE平台的 设备,它们被静态地链接到GWES.exe,一般不需要自行 编写。而流接口驱动程序是一般类型的设备驱动程序,表 现为用户级的动态链接库DLL,所有的流接口程序都是用 同一组接口并调用同一个集。这些函数供操作系统内 核使用,主要完成的文件I/O操作和电源管理。SD卡驱 动属于流接口驱动,故它可实现为标准的流接口函数: DSK_Init, DSK_Deinit, DSK_Open, DSK_Close, DSK_Write,DSK_Seek,DSK_PowerUp,DSK_PowerDown, DSK_IOControl。 (2)WindowsCE的中断处理。当 SD卡插入时,就 会引发系统的中断。像 PC机一样,当设备需要驱动程 序的服务时,则要用中断通知操作系统。例如 SD卡的 拔出或是插入时,都会产生中断信号。WindowsCE.net 中断处理分两个部分,中断服务例程ISR和中断服务线 程 IST。中断服务例程通常要求很小,处理速度快,所 以它一般只是把物理中断号映射为逻辑中断标识符,并 返回给操作系统。IST则负责具体的事件处理。 与 SD卡相关的中断有:SD卡中断,SDIO中 断和DMA中断。其中 SD卡检测中断是当有 SD卡插入 时引发的;SDIO中断是SDIO卡有数据需要与总线交换 时引发的;DMA是SD卡的DMA数据传送。 3SD卡驱动程序设计 (1)编写完整的驱动源代码,主要完成流接口函数 的编写。这些函数主要由以下组成: DSK_Init():由设备管理器调用,用来初始化SD卡 DSK_Deinit():由设备管理器调用,用来卸载SD卡 DSK_Open():打开SD卡 DSK_Close():关闭SD卡 DSK_Write():将数据写到SD卡 DSK_Seek():移动SD卡的数据指针 DSK_PowerUp():对SD卡进行供电 DSK_PowerDown():结束对SD卡的供电 DSK_IOControl():发送命令到SD卡 其中DSK_Init()调用了三个函数完成初始化工作: SD_InitializeAddress()初始化 SD的 IO地址,映射 IO 地址的物理内存,InitSD()初始化 SD相关寄存器, SD_Identify()来获取SD相关信息。代码 (略)。 本文中利用了 DSK_IOControl()来完成对 SD卡的 读,写等操作,因此在其他函数 (如DSK_Write())中只 是简单返回调试信息,未作任何的操作。部分代码 (略)。 (2)编写 def文件,导出标准流函数。要把流驱动 的接口函数导出,则要建立一个def文件。 (3)编写驱动的注册文件。一个具体的流接口驱动 程序跟注册表部分是分不开的,当设备管理器 Device. exe被加载时,它会检查 HKEY_LOACL_MACHINE\ Drivers\BuiltIn下的子键以便加载驱动。因此需要添加注 册表信息如下: [HKEY_LOCAL_MACHINE_Drivers\BuiltIn\SDCARD] “Index”=dword:1 “Prefix”=”DSK” “Dll”=” SDCARD.dll” “Order”=dword:0 其中Index指定驱动程序的索引,Prefix表明驱动的 前缀,Dll表示驱动的实现位于sampledv.dll,Order表示 驱动的加载顺序,0为第1个加载。 (4) 利用PlatFormBuilder调试驱动程序。用PB模 拟器调试驱动程序,并制作内核文件,将内核文件下载 到目标设备,完成SD卡驱动的开发。 4总结 开发SD卡驱动程序是一个复杂的过程,首先要掌握 SD卡的硬件特性,其次要了解WindowsCE的驱动分类及基 于它的SD卡驱动的协议栈,熟悉与SD相关的中断。下载 到目标设备后,该驱动程序能够正确识别SD卡,效果良好。 参考文献: [1]周酼林,等.WindowsCE.net内核定制[M].电子工业出版社,2005. [2]邵自然,吕格莉.基于嵌入式Linux的SD卡驱动程序的设计与实 现[J].ComputerEraNo.8,2006. [3]陈瑜.基于WindowsCE.NET的设备驱动程序开发[J].微型电脑应 用,2006,3. [4]李锡武,曹强,封仲淹.基于 ARM的 SD主控制器的设计与实现 [J].计算机工程与设计,2006,9. 102
/
本文档为【汽车导航仪的SD卡驱动程序设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索