sd卡各文件代表

sd卡各文件代表
sd卡各文件代表

内存卡上各文件夹详解

Android系统中SD卡各文件夹功能详解

(注:本人推荐用Aico文件管理器管理文件,卸载程序用深度卸载。)

带.的文件夹如下

1、.webbuffer?

暂时不清楚。

2、.zdclock?

正点闹钟缓存文件。

3、.mobo?

是MoboPlayer全能播放器的缓存,可以定期清除。

4、.gameAd?

和QQ有关的,好象是微信的缓存。

5、.android_secure?

SD卡中最主要的一个文件夹,一般刷机以后默认安装在SD卡的任何东西都在里面。删了之后装到SD卡中的软件、游戏等所有东西就无法使用了,小心别误删。

6、.AdobeDigitalEditions?

是Adobe新开发的一款基于flash技术制作的电子阅读和管理工具。

7、.switchpro?

switchprowidget(多键开关)的缓存文件。

8、.ucdlres?

UC迅雷的缓存文件,可以定期清除。

9、.Estrongs?

是ES文件管理器的缓存文件,可以定期清除。

10、.DSMSearch

暂时不清楚,呵呵。

11、.0102?

安桌市场下载的缓存文件,可以定期清除。

12、.quickoffce?

手机上的迷你版Office办公软件缓存文件。

13、.switchpro?

是switchprowidget(多键开关)缓存文件。

14、.deepuninstaller

深度卸载缓存文件。

15、

16、.ads?

系统自带的,删除了还会自动生成。

17、.com.mobisystems.editor.office_with_reg?

是一套由微软公司开发的Office办公软件的临时文件夹。

18、.vle vignette?

(晕影相机)的缓存目录。

19、.MxBrowser?

遨游的缓存目录,可以定期清除。

20、.apadqq-images?

QQ forpad的缓存目录(腾讯QQ)。

21、.Camera360?

camera360的缓存目录(360相机)。

22、.yd_historys?

有道词典搜索历史的缓存目录,可以定期清除。

23、.yd_speech?

有道词典单词发音的缓存目录,可以定期清除。

24、.QQGame?

QQ游戏缓存,可以定期清除。

没带.的文件夹如下

1、etouch?

是中华万年历缓存文件夹。

2、albumart?

音乐专辑封面的缓存文件夹。

3、albums?

相册缩略图的缓存文件夹。

4、Android?

系统自动生成文件。

5、backups?

一些备份文件,比如联系人导出到SD卡时会导入到此文件夹。

6、baidu?

百度输入法程序的缓存文件夹。

7、bugtogo?

系统出现问题的时候会形成一些报告文件,存放于此文件夹。

8、cmp?

是音乐的缓存文件夹。

9、data?

同样是缓存数据的文件夹,与Android性质类似。

10、DCIM?

相机的随机缓存文件夹,一些第三方的相机软件拍出的相片会保存在这里。

11、documents?

Documents ToGo的相关文件夹(办公软件,如表格等)。

12、KuwoMusic?

酷我音乐的相关文件夹。

13、extracted?

androzip等解压缩软件默认的解压目录。

14、gameloft?

gameloft游戏数据包存放的文件夹(智乐游戏)。

15、handcent?

handcent(超级短信)数据文件夹。

16、handyCurrency?

货币汇率相关的文件夹,装了handycalc(科学计算器)之后才会有。

17、ireader?

是掌阅科技旗下的一款Android平台的读书软件的缓存文件夹。

18、KingReader?

开卷有益的缓存文件夹。

19、LazyList?

黑市场--就是applanet专门为安卓系统手机提供破解软件的地方,软件免费下载。每打开市场浏览,就会有记录产生的缓存,删除不会影响系统的。

20、LOST.DIR? ?

系统自带文件夹。

21、moji?

墨迹天气的缓存目录。

22、MusicFolders?

poweramp产生的缓存文件夹(堪称Android系统中用户体验最佳的音乐播放器)。

23、openfeint?

openfeint的缓存文件夹(游戏,象水果忍者就是一个)。

24、Picstore?

图片浏览软件建立的一个目录。

25、Playlists?

播放列表的缓存文件夹。

26、renren?

人人网客户端的缓存文件夹。

27、screenshot?

screenshot截屏软件,截屏后图片文件保存的目录,可以定期清理图片或者直接卸装程序。

28、ShootMe ?

shootme截屏工具,截屏后图片文件保存的目录,可以定期清理图片或者直接卸装程序。

29、SmartpixGames?

Smartpix Games出品游戏的缓存文件夹,比如:水晶塔防。

30、sogou?

搜狗拼音输入法的随机缓存文件夹。

31、SpeedSoftware?

RE文件管理器的缓存文件夹。

32、SystemAppBackup SystemAppremove?

(深度卸载)备份系统文件后,备份文件保存的目录。

33、TalkingFriends?

talking tom(会说话的tom猫)录制的视频文件所保存的目录。

34、Tencent?

腾讯软件的缓存目录,比如QQ、空间等。

35、TitaniumBackup?

钛备份备份的程序所保存的目录

36、Youmicache?

删除后还会自动生成,悠米广告的缓存目录,广告程序内嵌在其他程序中。

37、ttpod?

天天动听音乐播放器缓存文件。

38、Uunavi?

悠悠导航缓存文件。

39、Shuqi?

书旗免费小说缓存文件。

40、Voice?

音频文件,一般是存录音的文件夹。

41、smarthome?

这个是安卓桌面的文件夹,你可能下了些主题、壁纸什么的,放在里面,还有升级包之类的。

42、Screencutpicture?

自动生成文件,删除了自己会又生成。

43、Pococamera?

POCO相机缓存文件。

44、kaipan?

快拍二维码文件夹。

45、gomarket?

安智市场下载的时候生成的一个文件夹。

46、filedsm?

暂时不清楚,呵呵,但是删除会自动生成。

47、download?

自带浏览器下载缓存存放处,不可以安装软件。

48、dolphinbrowsercn?

海豚浏览器下载的东西和其他一些比如浏览网页时产生的图片等。

49、bluetooth?

蓝牙接收文件存放的文件夹。

50、cache?

是一个高速小容量的临时存储器,缓存用于存储一些临时的文件。在浏览网页的过程中,网页会自动存储在用户的硬盘上。下次再浏览相同的网站的时候,系统会自动从硬盘中调出该网页,既节省了时间也减少了网络的交换。缓存的种类还包括:本地服务器缓存、网页缓存、硬盘缓存、一级高速缓存、二级高速缓存。

51、com.taobao.taobao?

淘宝网缓存文件夹。

52、SystemAppBackup?

全称是system application back up系统应用程序备份。

53、DunDef?

地牢守护者的数据包。

54、ndcommplatform?

91手机助手。

55、Speedsoftware?

Root文件管理器生成文件夹。

56、rosie_scroll?

某个软件的自动生成,删了还有的。

57、ringtones?

是手机增加的MP3等音乐铃声,删除了自带播放器的必须有这个文件夹装自己想要的歌曲,不然就没有想要的铃声了。同样alarma是闹钟、notifcations是信息。

58、UCDLFiles?

UC迅雷下载文件的保存目录。

59、UCDownloads?

UC浏览器下载文件的保存目录。

60、qqmusic?

QQ音乐缓存文件。

61、CAMERA?

第三方相机缓存文件。

62、backup?

手机自带的备份文件夹,储存“备份手机储存”文件的地方。

附:系统自带铃声文件位置

来电铃声:/system/media/audio/ringtones

通知铃声:/system/media/audio/notifications

闹钟铃声:/system/media/audio/alarms

界面操作事件音:/system/media/audio/ui

刷机后系统自带软件可以卸载的如下:

(以下代替的软件都可以装在SD卡上代替系统原有软件)

文件管理器--可用Aico文件管理代替

闹钟--可用正点闹钟代替

相机--可用POCO相机代替

浏览器--可用海豚浏览器代替

音乐播放器--可用天天动听代替

视频播放器--可用Mobopiaye播放器代替

计算机----可用其他的代替

还有一些比如:任务管理器、SIM卡应用、备份、设置、联系人、拨号器、系统进程管理器以外,其他的都可以卸载,当然如果能用-深度卸载就更好了,有备份的,需要的话还可以还原,不过我见占用SD卡,所以不需要的都删除了,目前没觉得机子有什么不妥。

单片机读写SD卡API模式读写

单片机读写SD卡最简单最基本的程序 处理器:s3c44b0 (arm7) SD卡与处理器的引脚连接:MISO -->SIORxD MOSI -->SIOTxD CLK -->SCLK CS -->PE5 四个文件::用户API函数,移植时不需修改 :中间层函数,移植时不需修改 :硬件层函数,移植时需修改 :一些功能的宏定义,移植时需修改 第一次读写SD卡时,需调用SD_Init(void),然后就可以条用Read_Single_Block或者Write_Single_Block进行读写操作 注意:进行写操作时,最好不要写前700个扇区,应为这些扇区都是FAT文件系统的重要扇区,一旦误写则可能会导致SD无法被电脑识别,需格式化。 /******************************************************* 文件名: 作用:用户API函数,包括四个函数, 读取一块扇区(512字节)U8 Read_Single_Block(U32 blk_addr, U8 *rx_buf) 写一个扇区(512字节)U8 Write_Single_Block(U32 blk_addr, U8 *tx_buf) 获取SD卡基本信息,即读CSD寄存器信息(16字节):void SD_info() SD卡初始化:U8 SD_Init(void) ********************************************************/

/******************************************** 功能:读取一个block 输入:blk_addr为第几个block,rx_buf为数据缓存区首地址输出:返回NO_ERR则成功,其它则读取失败 ********************************************/ U8 Read_Single_Block(U32 blk_addr, U8 *rx_buf) { U16 rsp = 1; U8 i = 0; SD_sel(); //使能SD卡 while(rsp && (i < 100)) { write_cmd(CMD17, blk_addr << 9); //写命令CMD17 rsp = Get_rsp(R1); //获取答应 send_clk(); } if(i > 99) //如果命令超时,则执行超时处理 {

STM32读写SD卡要点

3.20SD卡实验 很多单片机系统都需要大容量存储设备,以存储数据。目前常用的有U盘,FLASH芯片,SD卡等。他们各有优点,综合比较,最适合单片机系统的莫过于SD卡了,它不仅容量可以做到很大(32Gb以上),而且支持SPI接口,方便移动,有几种体积的尺寸可供选择(标准的SD 卡尺寸,以及TF卡尺寸),能满足不同应用的要求。只需要4个IO口,就可以外扩一个最大达32GB以上的外部存储器,容量选择尺度很大,更换也很方便,而且方便移动,编程也比较简单,是单片机大容量外部存储器的首选。 ALIENTKE MiniSTM3开发板就带有SD卡接口,利用STM32自带的SPI接口,最大通信速度可达18Mbps,每秒可传输数据2M字节以上,对于一般应用足够了。本节将向大家介绍,如何在ALIENTEK MiniSTM32开发板上读取SD卡。本节分为如下几个部分: 3.20.1 SD卡简介 3.20.2 硬件设计 3.20.3 软件设计 3.20.4 下载与测试

3.20.1 SD卡简介 SD卡(Secure Digital Memory Card)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2克,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。 SD卡一般支持2种操作模式: 1,SD卡模式; 2,SPI模式; 主机可以选择以上任意一种模式同SD卡通信,SD卡模式允许4线的高速数据传输。SPI模式允许简单的通过SPI接口来和SD卡通信,这种模式同SD卡模式相比就是丧失了速度。 SD卡的引脚排序如下图所示: 图3.20.1.1 SD卡引脚排序图 SD卡引脚功能描述如下表所示: 表3.20.1.1 SD卡引脚功能表 SD卡只能使用3.3V的IO电平,所以,MCU一定要能够支持3.3V的IO端口输出。 注意:在SPI模式下,CS/MOSI/MISO/CLK都需要加10~100K左右的上拉电阻。 SD卡要进入SPI模式很简单,就是在SD卡收到复位命令(CMD0)时,CS为有效电平(低电平)则SPI模式被启用。不过在发送CMD0之前,要发送>74个时钟,这是因为SD卡内部有个供电电压上升时间,大概为64个CLK,剩下的10个CLK用于SD卡同步,之后才能开始CMD0的操作,在卡初始化的时候,CLK时钟最大不能超过400Khz!。 ALENTEK MiniSTM32开发板使用的是SPI模式来读写SD卡,下面我们就重点介绍一下SD卡在SPI模式下的相关操作。 首先介绍SPI模式下几个重要的操作命令,如下表所示:

SD卡初始化及读写流程

SD卡初始化及读写流程 默认分类2010-03-03 21:03:00 阅读264 评论0 字号:大中小 SD卡调试关键点: 1. 上电时要延时足够长的时间给SD卡一个准备过程,在我的程 序里是5秒,根据不同的卡设置不同的延时时间。SD卡初始化第一步在发送CMD命令之前,在片选有效的情况下首先要发送至少74个时钟,否则将有可能出现SD卡不能初始化的问题。 2. SD卡发送复位命令CMD0后,要发送版本查询命令CMD8, 返回状态一般分两种,若返回0x01表示此SD卡接受CMD8,也就是说此SD卡支持版本2;若返回0x05则表示此SD卡支持版本1。因为不同版本的SD卡操作要求有不一样的地方,所以务必查询SD卡的版本号,否则也会出现SD卡无法正常工作的问题。 3. 理论上要求发送CMD58获得SD卡电压参数,但实际过程中 由于事先都知道了SD卡的工作电压,因此可省略这一步简化程序。协议书上也建议尽量不要用这个命令。 4. SD卡读写超时时间要按照协议说明书书上的给定值(读超时: 100ms;写超时:250ms),这个值要在程序中准确计算出来,否

则将会出现不能正常读写数据的问题。我自己定义了一个计算公 式:超时时间=(8/clk)*arg。 5. 2GB以内的SD卡(标准卡)和2GB以上的SD卡(大容量卡)在 地址访问形式上不同,这一点尤其要注意,否则将会出现无法读写数据的问题。如标准卡在读写操作时,对读或写命令令牌当中的地址域符初值0x10,表示对第16个字节以后的地址单元进行操作(前提是此SD卡支持偏移读写操作),而对大容量卡读或写命令令牌当中的地址域符初值0x10时,则表示对第16块进行读写操作,而且大容量卡只支持块读写操作,块大小固定为512字节, 对其进行字节操作将会出错。 6. 对某一块要进行写操作时最好先执行擦出命令,这样写入的速 度就能大大提高。进行擦除操作时不管是标准卡还是大容量卡都按块操作执行,也就是一次擦除至少512字节。 7. 对标准卡进行字节操作时,起始和终止必须在一个物理扇区 内,否则将不能进行读写操作。实际操作过程中建议用块操作以提高效率。不管是标准卡还是大容量卡一个读写命令只能对一个块进行操作,不允许跨物理层地址操作。

sd卡读写程序(SDcardreadandwriteprogram)

sd 卡读写程序( SD card read and write program ) SD card read and write program Objective: To study the SD card / / operation Design / software 1, using SPI communication / / SD card 2, go to SD / / in order to 0-255 a total of 256 data, and then read back LCD1602 display / / hardware requirements: S11 ON / / dial switch Jumper J18 / / all connected #include //dsPIC30F6014 standard header file _FOSC( CSW_FSCM_O&F FX T_PLL4); //4 doubler crystal oscillator, Failsafe clock closed _FWDT (WDT_OFF); / / close the watchdog timer _FBORPO(RP BOR_OFF& MCLR_EN);/ / reset prohibited MCLRr eset enable. _FGS (CODE_PROT_OFF); / / code protection against #define CS PORTGbits.RG9 / / SD card selection pin definition #define RSL https://www.360docs.net/doc/fd17699838.html,TB4 / / definition LCDc ontrol bits (note here can only register with LATB, you cannot directly use the

SD卡读写操作

SD卡操作 一、概述 1、简介 SD卡是基于flash的存储卡。 SD卡和MMC卡的区别在于初始化过程不同。 SD卡的通信协议包括SD和SPI两类。 SD卡使用卡内智能控制模块进行FLASH操作控制,包括协议、安全算法、数据存取、ECC算法、缺陷处理和分析、电源管理、时钟管理。

2、功能介绍 2.1 特点 1)主机无关的FLASH内存擦除和编程 读或写数据,主机只要发送一个带地址的命令,然后等待命令完成,主机无需关心具体操作的完成。当采用新型的FLASH时,主机代码无需更新。 2)缺陷管理 3)错误恢复 4)电源管理 Flash每个扇区有大约10万次的写寿命,读没有限制。 擦除操作可以加速写操作,因为在写之前会进行擦除。 3 SD总线模式 3.1 Negotiating Operation Conditions 当主机定义了SD卡不支持的电压范围时,SD卡将处于非活动状态,将忽略所有的总线传输。要退出非活动状态唯一的方法就是重新上电。 3.2 SD卡获取和识别 SD卡总线采用的是单主多从结构,总线上所有卡共用时钟和电源线。主机依次分别访问每个卡,每个卡的CID寄存器中已预编程了一个唯一的卡标识号,用来区分不同的卡。 主机通过READ_CID命令读取CID寄存器。CID寄存器在SD卡生产过程中的测试和格式化时被编程,主机只能读取该号。 DAT3线上内置的上拉电阻用来侦测卡。在数据传输时电阻断开(使用ACMD42)。

3.3 卡状态 卡状态分别存放在下面两个区域: 卡状态(Card Status),存放在一个32位状态寄存器,在卡响应主机命令时作为数据传送给主机。 SD状态(SD_Status),当主机使用SD_STATUS(ACMD13)命令时,512位以一个数据块的方式发送给主机。SD_STATUS还包括了和BUS_WIDTH、安全相关位和扩展位等的扩展状态位。 3.4 内存组织 数据读写的基本单元是一个字节,可以按要求组织成不同的块。

单片机读写SD卡教程

郑重声明:本实验并不是对所有SD卡都能成功运行第一步:打开winhex软件,用读卡器读SD卡,在winhex中查看SD卡

点击查找(ctrl+F) 输入FAT(找到DBR处)

发现DBR起始于0x11200扇区地址,它必是512整数倍,因为一个扇区含512BYTE,所以在程序中读一个扇区时一定要是512整数倍,否则会出错。11200地址对应的值是0xEB,本程序读一下这个地址的值看看是否正确。注意有的winhex编址是十进制 看看程序吧 #include #define uchar unsigned char #define uint unsigned int //============================================================= //定义SD卡需要的4根信号线 sbit SD_CLK = P1^1; sbit SD_DI = P1^2; sbit SD_DO = P1^0; sbit SD_CS = P1^3; sbit Beep=P2^0;//用来调程序标志 //=========================================================== //=========================================================== //定义512字节缓冲区,,89C52直接定义成unsigned char DATA[80];,太大了RAM不够unsigned char xdata DATA[512]; void delay(unsigned int z) { unsigned int x,y; for(x=z;x>0;x--); for(y=110;y>0;y--); }

基于Atmega128单片机SD卡读写程序(免费分享)

基于Atmega128单片机SD卡读写程序实物图对照 接线图

以下是一个简单的测试SD卡读写的程序,程序是基于Atmega128单片机编写的,对于Atmega的其他单片机仅需要做管脚改动就可以使用,其他单片机更改要更大。 sd.h //********************************************************** ******** //SPI各线所占用的端口 #define SD_SS PB6 #define SD_SCK PB1 #define SD_MOSI PB2 #define SD_MISO PB3 //********************************************************** ******** #define SD_DDR DDRB #define SD_PORT PORTB #define SD_PIN PINB #define SD_SS_H SD_PORT |= (1<#define SDSS_L SD_PORT &= ~(1<#define SD_SCK_H SD_PORT |= (1<#define SD_SCK_L SD_PORT &= ~(1<#define SD_MOSI_H SD_PORT |= (1<#define SD_MOSI_L SD_PORT

&= ~(1< #define SD_MISO_IN (SD_PIN&(1

读写SD卡的设计及其程序硬件

前言 长期以来,以Flash Memory为存储体的SD卡因具备体积小、功耗低、可擦写以及非易失性等特点而被广泛应用于消费类电子产品中。特别是近年来,随着价格不断下降且存储容量不断提高,它的应用范围日益增广。当数据采集系统需要长时间地采集、记录海量数据时,选择SD卡作为存储媒质是开发者们一个很好的选择。在电能监测以及无功补偿系统中,要连续记录大量的电压、电流、有功功率、无功功率以及时间等参数,当单片机采集到这些数据时可以利用SD作为存储媒质。本文主要介绍了SD卡在电能监测及无功补偿数据采集系统中的应用方案。 设计方案 应用AT89C52读写SD卡有两点需要注意。首先,需要寻找一个实现AT89C52单片机与SD卡通讯的解决方案;其次,SD卡所能接受的逻辑电平与AT89C52提供的逻辑电平不匹配,需要解决电平匹配问题。 通讯模式 SD卡有两个可选的通讯协议:SD模式和SPI模式。SD模式是SD卡标准的读写方式,但是在选用SD模式时,往往需要选择带有SD卡控制器接口的MCU,或者必须加入额外的SD 卡控制单元以支持SD卡的读写。然而,AT89C52单片机没有集成SD卡控制器接口,若选用SD模式通讯就无形中增加了产品的硬件成本。在SD卡数据读写时间要求不是很严格的情况下,选用SPI模式可以说是一种最佳的解决方案。因为在SPI模式下,通过四条线就可以完成所有的数据交换,并且目前市场上很多MCU都集成有现成的SPI接口电路,采用SPI模式对SD卡进行读写操作可大大简化硬件电路的设计。 虽然AT89C52不带SD卡硬件控制器,也没有现成的SPI接口模块,但是可以用软件模拟出SPI总线时序。本文用SPI总线模式读写SD卡。 电平匹配 SD卡的逻辑电平相当于3.3V TTL电平标准,而控制芯片AT89C52的逻辑电平为5V CMOS 电平标准。因此,它们之间不能直接相连,否则会有烧毁SD卡的可能。出于对安全工作的考虑,有必要解决电平匹配问题。 要解决这一问题,最根本的就是解决逻辑器件接口的电平兼容问题,原则主要有两条:一为输出电平器件输出高电平的最小电压值,应该大于接收电平器件识别为高电平的最低电压值;另一条为输出电平器件输出低电平的最大电压值,应该小于接收电平器件识别为低电平的最高电压值。 一般来说,通用的电平转换方案是采用类似SN74ALVC4245的专用电平转换芯片,这类芯片不仅可以用作升压和降压,而且允许两边电源不同步。但是,这个方案代价相对昂贵,而且一般的专用电平转换芯片都是同时转换8路、16路或者更多路数的电平,相对本系统仅仅需要转换3路来说是一种资源的浪费。

SD卡读写的方式(用SD模式)

大家读写SD卡怎么不用SD模式方式读取,是SPI方式读取简单? 下面贴一段代码,是在FPGA上程序,只能用SD模式进行读,没有文件系统,没有用AVR硬件实现,电路图: 电路说明,SD_DAT3一直给高电平 程序: #ifndef __SD_Card_H__ #define __SD_Card_H__ #define High 1 #define Low 0 //------------------------------------------------------------------------- // SD Card Set I/O Direction #define SD_CMD_IN DDRX.1 = Low #define SD_CMD_OUT DDRX.1 = High #define SD_DAT_IN DDRX.2 = Low #define SD_DAT_OUT DDRX.2 = High #define SD_CLK_OUT DDRX.3 = High #define SD_DAT3_OUT DDRX.0 = High // SD Card Output High/Low #define SD_CMD_LOW PORTX.1 = Low

#define SD_CMD_HIGH PORTX.1 = High #define SD_DAT_LOW PORTX.2 = Low #define SD_DAT_HIGH PORTX.2 = High #define SD_CLK_LOW PORTX.3 = Low #define SD_CLK_HIGH PORTX.3 = High #define SD_DAT3_HIGH PORTX.0 = High // SD Card Input Read #define SD_TEST_CMD PINX.1 #define SD_TEST_DAT PINX.2 //------------------------------------------------------------------------- #define BYTE unsigned char #define UINT16 unsigned int #define UINT32 unsigned long //------------------------------------------------------------------------- void Ncr(void); void Ncc(void); BYTE response_R(BYTE); BYTE send_cmd(BYTE *); BYTE SD_read_lba(BYTE *,UINT32,UINT32); BYTE SD_card_init(void); //------------------------------------------------------------------------- BYTE read_status; BYTE response_buffer[20]; BYTE RCA[2]; BYTE cmd_buffer[5]; const BYTE cmd0[5] = {0x40,0x00,0x00,0x00,0x00}; const BYTE cmd55[5] = {0x77,0x00,0x00,0x00,0x00}; const BYTE cmd2[5] = {0x42,0x00,0x00,0x00,0x00}; const BYTE cmd3[5] = {0x43,0x00,0x00,0x00,0x00}; const BYTE cmd7[5] = {0x47,0x00,0x00,0x00,0x00}; const BYTE cmd9[5] = {0x49,0x00,0x00,0x00,0x00}; const BYTE cmd16[5] = {0x50,0x00,0x00,0x02,0x00}; const BYTE cmd17[5] = {0x51,0x00,0x00,0x00,0x00}; const BYTE acmd6[5] = {0x46,0x00,0x00,0x00,0x02}; const BYTE acmd41[5] = {0x69,0x0f,0xf0,0x00,0x00}; const BYTE acmd51[5] = {0x73,0x00,0x00,0x00,0x00}; //------------------------------------------------------------------------- void Ncr(void) { SD_CMD_IN; SD_CLK_LOW; SD_CLK_HIGH; SD_CLK_LOW; SD_CLK_HIGH;

51单片机读写SD卡

SD卡在现在的日常生活与工作中使用非常广泛,时下已经成为最为通用的数据存储卡。在诸如MP3、数码相机等设备上也都采用SD卡作为其存储设备。SD卡之所以得到如此广泛的使用,是因为它价格低廉、存储容量大、使用方便、通用性与安全性强等优点。既然它有着这么多优点,那么如果将它加入到单片机应用开发系统中来,将使系统变得更加出色。这就要求对SD卡的硬件与读写时序进行研究。对于SD卡的硬件结构,在官方的文档上有很详细的介绍,如SD卡内的存储器结构、存储单元组织方式等内容。要实现对它的读写,最核心的是它的时序,笔者在经过了实际的测试后,使用51单片机成功实现了对SD卡的扇区读写,并对其读写速度进行了评估。下面先来讲解SD卡的读写时序。 (1)SD卡的引脚定义: (2)SD卡引脚功能详述: 注:S:电源供给I:输入O:采用推拉驱动的输出 PP:采用推拉驱动的输入输出

SD卡与单片机的连接图: SD卡SPI模式下与单片机的连接图: SD卡支持两种总线方式:SD方式与SPI方式。其中SD方式采用6线制,使用CLK、CMD、DAT0~DAT3进行数据通信。而SPI方式采用4线制,使用CS、CLK、DataIn、DataOut进行数据通信。SD方式时的数据传输速度与SPI方式要快,采用单片机对SD

卡进行读写时一般都采用SPI模式。采用不同的初始化方式可以使SD卡工作于SD方式或SPI方式。这里只对其SPI方式进行介绍。 (2) SPI方式驱动SD卡的方法 SD卡的SPI通信接口使其可以通过SPI通道进行数据读写。从应用的角度来看,采用SPI 接口的好处在于,很多单片机内部自带SPI控制器,不光给开发上带来方便,同时也见降低了开发成本。然而,它也有不好的地方,如失去了SD卡的性能优势,要解决这一问题,就要用SD方式,因为它提供更大的总线数据带宽。SPI接口的选用是在上电初始时向其写入第一个命令时进行的。以下介绍SD卡的驱动方法,只实现简单的扇区读写。 1)命令与数据传输 1.命令传输 SD卡自身有完备的命令系统,以实现各项操作。命令格式如下: 命令的传输过程采用发送应答机制,过程如下: 每一个命令都有自己命令应答格式。在SPI模式中定义了三种应答格式,如下表所示:

51单片机实现对SD卡的读写

51单片机实现对SD卡的读写

51单片机实现对SD卡的读写 SD卡在现在的日常生活与工作中使用非常广泛,时下已经成为最为通用的数据存储卡。在诸如MP3、数码相机等设备上也都采用SD卡作为其存储设备。 SD卡之所以得到如此广泛的使用,是因为它价格低廉、存储容量大、使用方便、通用性与安全性强等优点。既然它有着这么多优点,那么如果将它加入到单片机应用开发系统中来,将使系统变得更加出色。这就要求对SD卡的硬件与读写时序进行研究。对于SD卡的硬件结构,在官方的文档上有很详细的介绍,如SD卡内的存储器结构、存储单元组织方式等内容。要实现对它的读写,最核心的是它的时序,笔者在经过了实际的测试后,使用51单片机成功实现了对SD卡的扇区读写,并对其读写速度进行了评估。下面先来讲解SD卡的读写时序。 (1)SD卡的引脚定义: SD卡引脚功能详述: 引脚编号SD模式 SPI模式名称类型描述名称类型描述 1 CS/DAT3 IO或PP 卡检测/数据线3 #CS I 片选 2 CMD PP 命令/回应DI I 数据输入 3 V SS1 S 电源地VSS S 电源地 4 V DD S 电源VDD S 电源 5 CLK I 时钟SCLK I 时钟 6 V SS2 S 电源地VSS2 S 电源地 7 DAT0 IO或PP 数据线0 DO O或PP 数据输出 8 DAT1 IO或PP 数据线1 RSV 9 DAT2 IO或PP 数据线2 RSV 注:S:电源供给 I:输入 O:采用推拉驱动的输出 PP:采用推拉驱动的输入输出

SD卡SPI模式下与单片机的连接图: SD卡支持两种总线方式:SD方式与SPI方式。其中SD方式采用6线制,使用CLK、CMD、DAT0~DAT3进行数据通信。而SPI方式采用4线制,使用CS、CLK、DataIn、DataOut 进行数据通信。SD方式时的数据传输速度与SPI方式要快,采用单片机对SD卡进行读写时一般都采用 SPI模式。采用不同的初始化方式可以使SD卡工作于SD方式或SPI方式。这里只对其SPI方式进行介绍。 (2)SPI方式驱动SD卡的方法 SD卡的SPI通信接口使其可以通过SPI通道进行数据读写。从应用的角度来看,采用SPI接口的好处在于,很多单片机内部自带SPI控制器,不光给开发上带来方便,同时也见降低了开发成本。然而,它也有不好的地方,如失去了SD卡的性能优势,要解决这一问题,就要用SD方式,因为它提供更大的总线数据带宽。SPI接口的选用是在上电初始时向其写入第一个命令时进行的。以下介绍SD卡的驱动方法,只实现简单的扇区读写。 1)命令与数据传输 1. 命令传输 SD卡自身有完备的命令系统,以实现各项操作。命令格式如下: 命令的传输过程采用发送应答机制,过程如下:

sd卡读写程序(SD card read and write program)

sd卡读写程序(SD card read and write program) SD card read and write program Objective: To study the SD card / / operation Design / software 1, using SPI communication / / SD card 2, go to SD / / in order to 0-255 a total of 256 data, and then read back LCD1602 display / / hardware requirements: S11 ON / / dial switch Jumper J18 / / all connected #include //dsPIC30F6014 standard header file _FOSC (CSW_FSCM_OFF & XT_PLL4); //4 doubler crystal oscillator, Failsafe clock closed _FWDT (WDT_OFF); / / close the watchdog timer _FBORPOR (PBOR_OFF & MCLR_EN); / / reset prohibited MCLR reset enable. _FGS (CODE_PROT_OFF); / / code protection against #define CS PORTGbits.RG9 / / SD card selection pin definition

51单片机与SD卡的接口电路和程序

51单片机与SD卡的接口电路和程序(1) 长期以来,以Flash Memory为存储体的SD卡因具备体积小、功耗低、可擦写以及非易失性等特点而被广泛应用于消费类电子产品中。特别是近年来,随着价格不断下降且存储容量不断提高,它的应用范围日益增广。当数据采集系统需要长时间地采集、记录海量数据时,选择SD卡作为存储媒质是开发者们一个很好的选择。在电能监测以及无功补偿系统中,要连续记录大量的电压、电流、有功功率、无功功率以及时间等参数,当单片机采集到这些数据时可以利用SD作为存储媒质。本文主要介绍了SD卡在电能监测及无功补偿数据采集系统中的应用方案。 设计方案 应用AT89C52读写SD卡有两点需要注意。首先,需要寻找一个实现AT89C52单片机与SD卡通讯的解决方案;其次,SD卡所能接受的逻辑电平与AT89C52提供的逻辑电平不匹配,需要解决电平匹配问题。 通讯模式 SD卡有两个可选的通讯协议:SD模式和SPI模式。SD模式是SD卡标准的读写方式,但是在选用SD模式时,往往需要选择带有SD卡控制器接口的MCU,或者必须加入额外的SD卡控制单元以支持SD卡的读写。然而,AT89C52单片机没有集成SD卡控制器接口,若选用SD模式通讯就无形中增加了产品的硬件成本。在SD卡数据读写时间要求不是很严格的情况下,选用SPI模式可以说是一种最佳的解决方案。因为在SPI 模式下,通过四条线就可以完成所有的数据交换,并且目前市场上很多MCU都集成有现成的SPI接口电路,采用SPI模式对SD卡进行读写操作可大大简化硬件电路的设计。 虽然AT89C52不带SD卡硬件控制器,也没有现成的SPI接口模块,但是可以用软件模拟出SPI总线时序。本文用SPI总线模式读写SD卡。 电平匹配 SD卡的逻辑电平相当于3.3V TTL电平标准,而控制芯片AT89C52的逻辑电平为5V CMOS电平标准。因此,它们之间不能直接相连,否则会有烧毁SD卡的可能。出于对安全工作的考虑,有必要解决电平匹配问题。 要解决这一问题,最根本的就是解决逻辑器件接口的电平兼容问题,原则主要有两条:一为输出电平器件输出高电平的最小电压值,应该大于接收电平器件识别为高电平的最低电压值;另一条为输出电平器件输出低电平的最大电压值,应该小于接收电平器件识别为低电平的最高电压值。 一般来说,通用的电平转换方案是采用类似SN74ALVC4245的专用电平转换芯片,这类芯片不仅可以用作升压和降压,而且允许两边电源不同步。但是,这个方案代价相对昂贵,而且一般的专用电平转换芯片都是同时转换8路、16路或者更多路数的电平,相对本系统仅仅需要转换3路来说是一种资源的浪费。 考虑到SD卡在SPI协议的工作模式下,通讯都是单向的,于是在单片机向SD卡传输数据时采用晶体管加上拉电阻法的方案,基本电路如图1所示。而在SD卡向单片机传输数据时可以直接连接,因为它们之间的电平刚好满足上述的电平兼容原则,既经济又实用。

单片机读写SD卡教程

郑重声明:本实验并不是对所有SD卡都能成功运行 第一步:打开winhex软件,用读卡器读SD卡,在winhex中查看SD卡 点这

点击查找(ctrl+F) 输入FAT(找到DBR处)

发现DBR起始于0x11200扇区地址,它必是512整数倍,因为一个扇区含512BYTE,所以在程序中读一个扇区时一定要是512整数倍,否则会出错。11200地址对应的值是0xEB,本程序读一下这个地址的值看看是否正确。注意有的winhex编址是十进制 看看程序吧 #include #define uchar unsigned char #define uint unsigned int //============================================================= //定义SD卡需要的4根信号线 sbit SD_CLK = P1^1; sbit SD_DI = P1^2; sbit SD_DO = P1^0; sbit SD_CS = P1^3; sbit Beep=P2^0;//用来调程序标志 //=========================================================== //=========================================================== //定义512字节缓冲区,,89C52直接定义成unsigned char DATA[80];,太大了RAM不够unsigned char xdata DATA[512]; void delay(unsigned int z) { unsigned int x,y; for(x=z;x>0;x--); for(y=110;y>0;y--); }

SD卡基础原理及读写程序

1、简介: SD卡(Secure Digital Memory Card)是一种为满足安全性、容量、性能和使用环境等各方面的需求而设计的一种新型存储器件,SD卡允许在两种模式下工作,即SD模式和SPI模式,本系统采用SPI模式。本小节仅简要介绍在SPI模式下,STM32处理器如何读写SD卡,如果读者如希望详细了解SD卡,可以参考相关资料。SD 卡内部结构及引脚如下图所示

2、SD卡管脚图:

3、SPI模式下SD各管脚名称为: 注:一般SD有两种模式:SD模式和SPI模式,管脚定义如下: (A)、SD MODE 1、CD/DATA3 2、CMD 3、VSS1 4、VDD 5、CLK 6、VSS2 7、DATA0 8、DATA1 9、DATA2 (B)、SPI MODE 1、CS 2、DI 3、VSS 4、VDD 5、SCLK 6、VSS2 7、DO 8、RSV 9、RSV SD 卡主要引脚和功能为: CLK:时钟信号,每个时钟周期传输一个命令或数据位,频率可在0~25MHz之间变化,SD卡的总线管理器可以不受任何限制的自由产生0~25MHz 的频率; CMD:双向命令和回复线,命令是一次主机到从卡操作的开始,命令可以是从主机到单卡寻址,也可以是到所有卡;回复是对之前命令的回答,回复可以来自单卡或所有卡; DAT0~3:数据线,数据可以从卡传向主机也可以从主机传向卡。 SD卡以命令形式来控制SD卡的读写等操作。可根据命令对多块或单块进行读写操作。在SPI模式下其命令由6个字节构成,其中高位在前。SD卡命令的格式如表1所示,其中相关参数可以查阅SD卡规范。

Micro SD卡读写时序及程序调试关键

Micro SD卡读写时序及程序调试关键 调试关键: 1.上电时要延时足够长的时间给SD卡一个准备过程,在我的程序里是5秒, 根据不同的卡设置不同的延时时间。SD卡初始化第一步在发送CMD命令之前,在片选有效的情况下首先要发送至少74个时钟,否则将有可能出现SD卡不能初始化的问题。 2.SD卡发送复位命令CMD0后,要发送版本查询命令CMD8,返回状态一般分 两种,若返回0x01表示此SD卡接受CMD8,也就是说此SD卡支持版本2;若返回0x05则表示此SD卡支持版本1。因为不同版本的SD卡操作要求有不一样的地方,所以务必查询SD卡的版本号,否则也会出现SD卡无法正常工作的问题。 3.理论上要求发送CMD58获得SD卡电压参数,但实际过程中由于事先都知道 了SD卡的工作电压,因此可省略这一步简化程序。协议书上也建议尽量不要用这个命令。 4.SD卡读写超时时间要按照协议说明书书上的给定值(读超时:100ms;写超 时:250ms),这个值要在程序中准确计算出来,否则将会出现不能正常读写

数据的问题。我自己定义了一个计算公式:超时时间=(8/clk)*arg。 5.2GB以内的SD卡(标准卡)和2GB以上的SD卡(大容量卡)在地址访问形式上 不同,这一点尤其要注意,否则将会出现无法读写数据的问题。如标准卡在读写操作时,对读或写命令令牌当中的地址域符初值0x10,表示对第16个字节以后的地址单元进行操作(前提是此SD卡支持偏移读写操作),而对大容量卡读或写命令令牌当中的地址域符初值0x10时,则表示对第16块进行读写操作,而且大容量卡只支持块读写操作,块大小固定为512字节,对其进行字节操作将会出错。 6.对某一块要进行写操作时最好先执行擦出命令,这样写入的速度就能大大 提高。进行擦除操作时不管是标准卡还是大容量卡都按块操作执行,也就是一次擦除至少512字节。 7.对标准卡进行字节操作时,起始和终止必须在一个物理扇区内,否则将不 能进行读写操作。实际操作过程中建议用块操作以提高效率。不管是标准卡还是大容量卡一个读写命令只能对一个块进行操作,不允许跨物理层地址操作。 8.在写数据块前要先写入若干个dummy data字节,写完一个块数据时,主机 要监测MISO数据线,如果从机处于忙状态这根数据线会保持低电平,这样主机就可以根据这根数据线的状态以决定是否发送下一个命令,在从机没有释放MISO数据线之前,主机绝对不能执行其他命令,否则将会导致写入的数据出错,而且从机也不会响应主机的命令。 9.在SPI模式下,CRC校验是被忽略的,但依然要求主从机发送CRC码,只 是数值可以是任意值,一般主机的CRC码通常设为0x00或0xFF。 读多块操作和写多块操作的传输停止形式不一样,读多块操作时用用命令CMD12终止传输,而写多块操作时用Stop Tran Token(停止传输令牌,值为0xFD)终止传输

单片机读写SD卡最简单最基本的程序

处理器:s3c44b0 (arm7) SD卡与处理器的引脚连接:MISO -->SIORxD MOSI -->SIOTxD CLK -->SCLK CS -->PE5 包括四个文件:sd_drive.c :用户API函数,移植时不需修改 sd_cmd.c:中间层函数,移植时不需修改 sd_hard.c:硬件层函数,移植时需修改 sd_config.h:一些功能的宏定义,移植时需修改 第一次读写SD卡时,需调用SD_Init(void),然后就可以条用 Read_Single_Block或者Write_Single_Block进行读写操作 注意:进行写操作时,最好不要写前700个扇区,应为这些扇区都是FAT文件系统的重要扇区,一旦误写则可能会导致SD无法被电脑识别,需格式化。 /******************************************************* 文件名:sd_drive.c 作用:用户API函数,包括四个函数, 读取一块扇区(512字节)U8 Read_Single_Block(U32 blk_addr, U8 *rx_buf) 写一个扇区(512字节)U8 Write_Single_Block(U32 blk_addr, U8 *tx_buf) 获取SD卡基本信息,即读CSD寄存器信息(16字节):void SD_info() SD卡初始化:U8 SD_Init(void) ********************************************************/ /******************************************** 功能:读取一个block 输入:blk_addr为第几个block,rx_buf为数据缓存区首地址 输出:返回NO_ERR则成功,其它则读取失败 ********************************************/ U8 Read_Single_Block(U32 blk_addr, U8 *rx_buf) { U16 rsp = 1;

SD卡的初始化和读写程序

/****************************************************************************** ***** SPI模式读写SD卡 SD卡初始化过程: 1. 初始化STM32的SPI接口使用低速模式 2. 延时至少74clock 3. 发送CMD0,需要返回0x01,进入Idle状态 4. 循环发送CMD55+ACMD41,直到返回0x00,进入Ready状态 5. 设置读写block大小为512byte 5. 把STM32的SPI设置为高速模式 读一个block块的过程 1. 发送CMD17(单块)或CMD18(多块)读命令,返回0x00 2. 接收数据开始令牌0xfe + 正式数据512Bytes + CRC 校验2Bytes 写一个block块的过程 1. 发送CMD24(单块)或CMD25(多块)写命令,返回0x00 2. 发送数据开始令牌0xfe + 正式数据512Bytes + CRC校验2Bytes ----------------------------------------------------------------------------- * ---------------------------------------------- * | STM32F10x | MSD Pin | * ---------------------------------------------- * | PE.3 | ChipSelect 1 | * | PA.7 / MOSI | DataIn 2 | * | | GND 3 (0 V) | * | | VDD 4 (3.3 V) | * | PA.5 / SCLK | Clock 5 | * | | GND 6 (0 V) | * | PA.6 / MISO | DataOut 7 | * ----------------------------------------------- ******************************************************************************* ****/

相关主题
相关文档
最新文档