基于CC2530的SDHC卡读写设计

RF/无线

1776人已加入

描述

  0 引言

  提出了将SDHC卡作为CC2530的外部存储设备实现数据存储的方法。SDHC卡具有体积小、存储容量大的特点,通过CC2530组建的无线传感网络适用于工业监测,而将SDHC卡与CC2530相结合,则能够长期连续工作并记录大量数据,可以满足各种长期监测状态场合的需要。

  关键词:SDHC卡;CC2530;SPI模式;FAT32

  1 硬件设计

  1.1 SDHC卡简介

  SDHC卡有SD总线模式和SPI总线模式。SD总线模式采用四条数据线并行传输数据,传输效率高,但传输协议复杂,且不易用软件模拟;而SPI总线模式工作时只用一条数据传输线,虽然数据传输效率低,但很容易用软件来模拟,而且SPI总线模式传输协议简单。所以采用SPI总线,由主控制器在每次传输时产生8个时钟脉冲给SDHC卡作为同步时钟,即可控制数据的输入与输出。

  1.2 CC2530简介

  CC2530集成了一个高性能的RF收发器和一个低功耗的8051内核,其RAM达8 KB,具有两个USART、12位ADC和21个通用GPIO。其本身自带2.4 GHz高性能RF收发器,配上适合的天线就构成了无线通信模块。CC2530可配备TI的RemoTI、Z-Stack或SimpliciTI等专有或标准兼容的网络协议栈来简化开发。

  1.3 主控电路接口设计

  CC2530与SDHC卡的接口连接图如图1所示。

SDHC卡

  CS为SDHC卡使能端,DI为写命令和写数据端,DO为读响应与读数据端,CLK为SPI时钟输入端。CC2530的P0口与SDHC卡的对应端口相连,口线之间需要连接上拉电阻。

  2 软件设计

  2.1 SDHC卡初始化程序设计

  为完成SDHC卡的上电过程,CC2530必须向SDHC卡发送至少74个时钟周期,之后SDHC卡会自动进入SD总线模式。若在SD总线模式下,使片选信号CS处于低电平状态,向SDHC卡发送复位命令(CMD0),SDHC卡将进入SPI总线模式,否则SDHC卡工作在SD总线模式。SDHC卡进入SPI工作模式之后,使用CMD8命令识别卡的版本,然后主机不断地向SDHC卡发送命令ACMD41(CMD55与CMD41的组合),使卡处于空闲状态,最后通过CMD58命令区别是标准容量卡还是大容量卡。SPI模式的一般初始化流程如图2所示。

SDHC卡

  CMD指令是6字节指令,第1字节高两位分别为起始位(对应0)、传输位(对应1),剩余6位为命令号,如CMD0的命令号为000000,合起来第1字节就是40H。因为SPI模式是无需CRC校验位的,所以在CMD0与CMD8之后的CMD命令,是无需关心CRC校验位的。命令的具体内容见表1所列。

SDHC卡

  2.2 SDHC卡的读写程序设计

  SPI模式支持单块和多块读写操作。当初始化完成后,用CMD16命令设置SDHC卡读写长度为单块512字节。设置好之后,向SDHC卡发送单块写命令CMD24,在接收到正确的响应信号后,发送数据起始标志(0xFE)和512字节的数据,并跟两字节的CRC校验码。当SDHC卡的回应信号为05H时,即表明SDHC卡接收到正确的数据,若SDHC卡的输出口变为低电平,表明正在向SDHC卡写数据,当输出口变为高电平时表明写操作完成,SDHC卡的单块写数据软件流程如图3所示。单块读操作与单块写操作类似,也是先接收起始位,然后接收数据。

SDHC卡

  3 结语

  本文给出了CC2530对SDHC卡读写操作的方法。通过实验验证了将体积小、容量大的SDHC卡用于CC2530,能使CC2530适应各种需要长期记录大量数据的场合,满足实际的需要。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
2011shengjun 2013-02-25
0 回复 举报
能不能将具体的程序贴出来,供大家借鉴与下载!! 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分