下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、dsPIC33F系列DSC的SD存储卡接口设计引言SD存储卡(Secure Digital Memory Card) 由SD联盟(松下、东芝及美 国 SanDisk 公司)于 1999年8月共同开发研制,是一种基于半导体快闪存储器 的新一代存储设备,被广泛地使用在便携式装置上,例如数码相机、PDA和多媒体播放器等。大小犹如一张邮票的 SD存储卡,重量只有2g,却拥有高存储 容量、快速数据传输率、极大的移动灵活性以及很好的安全性。SD卡支持SD和 SPI两种传输模式,主机系统可以选择其中任意一种模 式。SD模式允许4线的高速数据传输。SPI模式使用通用的SPI接口。这种模 式相对于SD模式的不足
2、之处是丧失了速度,但是却有着接口简单易于实现的优 点。SD卡的SPI模式使得SD卡可以和市场上大部分微控制器进行通信。Microchip公司的dsPIC33F系列通用DSC数字信号控制器),是在16 位MCI架构基础之上添加了 DSP引擎,从而具有数字信号处理功能的微控制器 产品。该系列DSC集成了 DCI(数据转换器)接口,尤其适用于语音和音频的应 用。本文首先简要介绍SD卡的相关规范,之后利用dsPIC33FJ64GP706S用 DSC设计了 SD卡接口电路,最后通过 SPI模式实现了对SD卡的基本操作。本 设计可以使SD存储卡成为类似嵌入式系统产品的数据存储器。1 SD卡相关规范简介SD
3、联盟在2000年联合发布了 SD卡规范1. 0版本,包括3个部分:物 理层规范,文件系统规范以及安全规范。SD卡规范V1. 0采用FAT的文件系统,因此最大存储容量可以达到 2 GB。2006年,SD卡规范V2. 0发布。新规 范根据容量定义了两种卡,即标准容量 SD卡和大容量SD卡。前者和1. O版本 保持兼容,后者由于采用了 FAT32文件系统,存储容量突破了 2 GB的限制。新 规范定义的最大容量为32 GB。但是由于成本的原因,标准容量 SD卡仍然是市 场的主流产品。在以微控制器为核心的嵌入式系统中,主要使用SD卡的SPI。模式进行通信,这使得标准容量的 SD卡更为合适。本设计适用于2
4、GB以下任意 容量的SD卡。1. 1 概 述SD存储卡在2. 73. 6 V电压下正常工作,工作频率为 025MHz图 1是普通SD卡的外形和引脚排列。在 SPI模式时,第8和第9脚不使用。表1 列出了各引脚在 SPI 模式时的定义和功能描述。图中的WP是个机械滑片,通过滑动到不同的位置来对 SD卡进行写保 护。SD卡内部有6个和接口相关的寄存器: OCR CID、CSD RCA DSR和 SCR它们只能通过各自对应的指令来访问。 OCR CID、CSD和 SCF携带SD卡 的规范信息,RCA和 DSF作为配置寄存器装载了 SD卡的配置参数。1. 2 SPI 协议系统上电之后,如果主机在将 C
5、S线声明为低电平的同时发送复位指令 (CMDO)则SPI模式启用。SD卡在SPI模式下按字节进行通信,每一个指令和 数据块都由数个字节组成并与 CS信号对齐(也就是长度为8个时钟周期的整数 倍)。主机和SD卡之间是通过指令与响应来实现交互的。图 2 给出了 SPI 模式下基本的指令与响应的时序。图中一个方格代表一个字节,H为逻辑全“ 1”,L为逻辑全“O, X 代表未知,Z为高阻态。NCS NEC和NCR都是包含N个8时钟周期,具体N的 取值范围在SD卡规范中给出了详细的说明。SD 卡所有的指令,长度都是 6字节。表 2列出了指令格式。在有效接收到主机发来的指令之后,SD卡将会把对应的响应数据
6、段放 在总线上,主机根据响应的内容判断 SD卡的状态。所有的响应都是 MSB优先传 输。SD卡有4种类型的响应格式,分别为 R1、R1b R2、Rd除了 SEND_STATUS READ_OC指令外,其他指令的响应都是格式 R1。 格式 R1 的长度为 1 字节,并且最高位总是 0。其余每位均是错误指示,在指令 接收过程中发生了什么样的错误,对应的错误位就会是“ 1”。R1b和R1具有 相同的格式,它将伴随一个附加的 busy 信号。 busy 信号的长度可以是任意个 字节。全零表示卡处在“忙”的状态。格式 R2的长度为2字节,它是指令 SEND_STATUS向应。它的高字节和 R1相同,低字
7、节同样作为状态指示。当接 收到了 READ_OC指令时,SD卡将会产生格式R3的响应,该响应的长度为5字 节。最高字节和R1相同,其余的4字节将包含SD卡的OCR寄存器信息。在SD卡规范中详细描述了每条指令的格式内容及作用,并给出了各条 指令所对应的响应。对于每种响应的信息也有详细的说明,具体信息参阅参考 文献。2 SD 卡接口电路设计16位的dsPIC33F系列DSC具有高达40 MIPS的指令周期,继承了 Microchip公司之前8位和16位MCI产品的优点,并保持着对以往低成本开发 系统的兼容性。dsPIC33FJ64GP70是其中一款64引脚的通用产品,拥有高达 64 KB 的 Fl
8、ash 程序存储器和 16 KB 的数据存储器。该芯片集成了 2 个通用 SPI 接口,本设计使用SPI2模块来建立和SD存储卡的通信。图3所示为dsPIC33FJ64GP706W SD卡座的接口电路。为了防止在无卡 接入或卡驱动器呈高阻态时总线悬空,在每根信号线上要接一个上拉电阻,根 据SD卡规范(见参考文献,第6章),电阻的阻值可以取1090kQ。卡座的CD 引脚是SD卡检测信号引脚,当有卡插入时,该引脚对地短路。WP是写保护信号引脚,在卡插入且没有写保护时,该引脚对地短路;如果SD卡写保护或没有卡插入,该引脚通过上拉电阻接到电源正极。3 SD 卡接口的实现3. 1选择SD卡的SPI模式并
9、初始化SD卡在上电之后,主机开始发送时钟信号,此时的时钟频率不能超过 400 kHz。主机要连续发送至少74个时钟周期的“ 1”才能使SD卡准备好通信,然 后选择SPI模式。SD卡进入SPI模式之后,就可以接收来自主机的操作指令 了。这时候主机发送SEND_OP_CO指令,激活卡的初始化过程。在得到正确的 响应之后,主机再发送SEND_CS指令读取CSD寄存器的内容。正确响应之后,将SPI总线时钟频率提高到10 MHz初始化过程结束32 指令和响应交互过程的软件实现typSD_CM是自定义的结构类型,包含指令索引、CRC和响应格式。最后一个字节数据用来说明该指令有无后续数据块,例如READ_S
10、INGLE_BLOCK(数据块读指令),它需要SD卡发送一个数据块的数据,因此其后的数据为 “1”。对于指令索引,是把开始位和传输位与 6位索引值包含在一起的数据。 例如GO_IDLE_STAT的索引值是二进制“ OOOOO0,加上开始位“ O和传输位“ 1”,成为“ 01000000”,即“ 0x40, READ_SINGLE_BLO的索弓I值是 “010001”,加上开始位和传输位,成为“ 01010001”即0x51”。定义发送指令函数为 SendSDCmd(,) 返回值为从总线上读取的响应数 据。 (具体函数略编者注 )函数的第一个参数是指令列表数组中相应指令元 素的序号,函数会根据它
11、的值在指令表中查到对应的信息,第二个参数是指令 的附加内容。函数中CMD_PACKET按指令格式(见表2)定义的联合类型,程序 通过查表的方式将指令的内容装载到该类型定义的变量中,并通过函数 Write_sd()发送出去。write_sd()的作用是把一个字节的数据放到 SPI2模块的 burfer里,完成一个字节的发送。函数 ReadSd()用来读取SPI2接收的一个字 节数据。如果接收的数据是 0xff ,则不是响应数据;如果接收到的响应不为全 零,则说明有错误发生。以上程序按照图 2所示时序执行,来实现一次指令和响应数据的交互。 当某条指令有后续数据时,按照规范中的时序发送或者读取数据。
12、33 读写操作的实现READ_SINGLE_BLO是单数据块读指令,在接收到有效的读指令后 SD 卡将会送出一个响应。紧接着是一个带 16位CRC校验后缀的数据块,数据块的 长度要在之前由SET_BLOCKEN(CMC指令定义,一般为512字节,正好一个扇 区的大小。数据块的开始是1字节的开始令牌,值为“ OxFE,结束是2字节 的CRC该操作的通信过程如图4所示。WRITE_SINGLE_BLOCK单数据写操作指令,在接收到主机传来的数据 后,SD卡会发送一个值为0x5的数据响应,之后进入busy状态。该操作的通 信过程如图 5 所示。按照以上通信过程编写程序,单数据块读和写的程序流程如图 6所示。4 结果验证将容量为1 GB的SD卡插入SD读卡器,再将读卡器插入PC机的USB接 口中,此时系统出现“可移动磁盘(H:) ”根目录。打开win hex软件,点击 “工具”下拉菜单中的“打开磁盘”,选择“物理磁盘”中的“RMl: CenericSTORAGE DEVICE(O9G USB”,单击“确定”按钮,得到该 SD卡第一个物理 扇区的数据。该SD卡在偏移量从446开始的16个字节有数据“ 00 03 3D 00 06 OD ED DB F
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学语文六年级上册教案
- 企业财务审计管理中的风险控制
- 海洋资源验收管理办法
- 企业团队建设行政人事部策略
- 民生改善提案管理办法
- 互联网金融服务招投标合同模板
- 汽车物流仓储协议
- 建筑空调工程延期合同协议书
- 专利权交易合同
- 河道综合治理工程合同
- 2023年贵州黔东南州直事业单位遴选工作人员42人笔试参考题库(共500题)答案详解版
- 初三九年级英语英语英语语法填空附答案附解析
- 2022年广西建筑工程质量检测中心限公司第一批次人才招聘(79人)上岸笔试历年难、易错点考题附带参考答案与详解
- 中国煤矿粉尘危害防治技术现状及发展方向
- 书屋业务管理及管理知识培训
- 儿科肺炎喘嗽护理查房
- GB/T 16739.1-2023汽车维修业经营业务条件第1部分:汽车整车维修企业
- Excel表智能手工钢筋抽料表(傻瓜式)
- 职业生涯规划大赛 职业生涯规划书
- 储罐施工方案33
- 消毒供应中心技能考核操作评分标准
评论
0/150
提交评论