关于SD CF卡的储存原理
U盘的存储原理是:计算机把二进制数字信号转为复合二进制数字信号(加入分配、核对、堆栈等指令)读写到USB芯片适配接口,通过芯片处理信号分配给EPROM2存储芯片的相应地址存储二进制数据,实现数据的存储。
EPROM2数据存储器,其控制原理是电压控制栅晶体管的电压高低值(高低电位),栅晶体管的结电容可长时间保存电压值,也就是为什么USB断电后能保存数据的原因。只能这么通俗简单的解释了。
是否认为我跑题了?看后面的,呵呵
存储卡(SD、CF)和U盘的工作原理是完全一样的。U盘较大是因为它除了存储介质外还自带了I/O接口元件。存储卡的这些接口是安装在数码相机里的。而如果电脑要直接读取存储卡的内容也需要读卡器不是吗?简单说U盘就是把存储卡和读卡器做在一起了。
下面给你一个CF卡的储存原理吧:
看到这里,对闪存产品有所了解的读者一定会说,这样看来,CF卡很像现在满地皆是的闪盘呢。的确,虽然形状不同,但CF卡和闪盘结构相似,有许多相同之处,不过它们也有很大的区别,比如二者的管理和工作方式
现在的CF卡和闪盘基本都使用NAND型flash,NAND Flash自身是没有存储控制器的,其结构可看作是由许多的小区块组成的,每块都能存储一定数量的信息,类似于硬盘的簇。NAND型flash的读写也是以块和页为单位来进行的,使用8bit的I/O端口存取数据。
NAND型flash容量大、成本低、可以达到比较高的速度,所以应用较为广泛,不过它也有些比较明显的缺点。NAND型flash的基本工作方式是按顺序读取,一个区块写入或读取结束再接着下一个,是“串行”方式而不是“并行”方式,操作上也是如此,比如区块上已有信息,就一定要先擦除,再写入,其它操作也是一样的。另一个问题就是NAND型flash需要一定的存储空间来存放目录等信息来管理所有的资料,进行任何操作都需要使用这一部分,大部分闪盘的控制芯片都使用固定区块,所以其使用次数远高于其它区块,不管闪存是号称10万次擦写寿命也好,100万次擦写寿命也好,如果使用很频繁,即使每次只用一点点存储空间,也可能因为目录区损坏及缺乏有效扫描除错手段而造成数据丢失,需要格式化才能解决问题。
储存卡无法格式化
从NAND型闪存的以上特点,我们可以看出这一类存储器需要的是什么的,在拥有大容量、低成本的存储介质之后,还需要先进的控制器及程序来驱动及使用才能够使存储器具有比较好的性能及可靠性,否则不但性能低下,使用寿命也短。
CF卡比闪盘之类的存储器更加接近硬盘,CF卡内部控制器设计完全模拟硬盘
而且使用标准的ATA/IDE接口界面,可以很容易的通过IDE接口与电脑连接,而且早已实现无驱动设计,使用非常方便。CF卡最初一般是配备PCMCIA适配器在笔记本电脑的PCMCIA插槽上使用,现在还有了许多USB、IEEE1394读卡器等各种各样的CF适配器,使CF卡与电脑之间的信息传输变得更加方便。由于Windows 95以上的所有操作系统都内置PCMCIA接口的IDE硬盘控制器驱动程序,Windows ME以上的操作系统也加入了对USB、IEEE1394接口移动磁盘的支持,所以只要为CF卡加上一个简单的接口控制器(转接器),就可以直接在电脑上使用,移动版的Windows Mobile也早已加入对CF/CF+的支持,连转接器都免了。由于CF卡内置控制器和仿硬盘的设计,也简化了CF适配器的设计,只不过由于CF卡本身体积比SD等存储卡要大,针脚也多得多,所以相对来说往往还是CF适配器要大一些。
CF卡在自身设计上也作出了软硬件两方面的配合:一是硬件提供判断条件。CF卡在自身电路上提供了两个用来检测CF卡是否存在的管脚(暂称CD1和CD2)。CD1和CD2的有效电平均为低电平,当主机检测到与其相连的CD1和CD2两个管脚同时为低电平时,可判断出CF卡与主机相连;当主机检测到与其相连的CD1和CD2有一个管脚不为低,则可判断出CF卡未与主机相连。二是软件。首选定义全局变量(如:IsExist)用于记录CF卡是否与主机相连,当IsExist为0时表示CF卡未与主机相连;当IsExist为1时表示CF卡与主机相连。然后,在每次操作CF卡时都先检测CF卡的CD1和CD2管脚,当检测到CD1和CD2管脚为低电平且IsExist为0时复位CF卡,重新检测CF卡的FAT表统计还剩余多少空间可以分配,检测完FAT表后置变量IsExist为1;当检测到CD1和CD2管脚为低电平且IsExist为1时,继续CF卡的正常操作;当检测到CD1和CD2为高时,停止CF卡操作,置变量IsExist为0。
通过软硬结合、内外配合,CF卡具备热插拔、即插即用、无须驱动的功能,也可以用来作为移动存储器使用。
前面我们说到NAND型flash使用8bit端口就可以完成页操作,CF卡的寄存器也都是8bit的,只有数据寄存器是16bit。 CF卡控制器中包含两组寄存器:命令寄存器和控制寄存器,这两个寄存器组通过REG信号进行区分。CF卡工作在存储器方式时,按照ATA标准以寄存器方式传送数据、命令和地址,命令寄存器用来接受命令和传输数据,控制寄存器用来进行磁盘控制。当CF卡工作在I/O方式时,控制寄存器组主要用于控制CF卡的工作方式;命令寄存器组被分配在与ATA标准兼容的地址空间。当CF卡工作在I/O方式下,命令寄存器组的地址空间为IF0H~1F7H和3F6H~3F7H;当CF卡工作在寄存器方式下,命令寄存器组的地址
空间为1F0H~1FFH。
CF卡的寄存器包括:数据寄存器(R/W),用于对扇区的读写操作。主机通过该寄存器向CF卡卡控制器写入或从CF卡控制寄存器读出扇区缓冲区的数据;错误寄存器(R)和特性寄存器(W),错误寄存器反映控制寄存器在诊断方式或操作方式下的错误原因。特性寄存器一般情况下不使用。扇区数寄存器(R/W),用来记录读、写命令的扇区数目;扇区号寄存器(R/W),用来记录读、写和校验命令指定的起始扇区号;柱面号寄存器(R/W),用来记录读、写、校验和寻址命令指定的柱面号;驱动器/磁头
寄存器(R/W),记录读、写、校验和寻道命令指定的驱动器号、磁头号和寻址方式(CHS模式或LBA模式);状态寄存器(R)和命令寄存器(W),状态寄存器反映CF卡驱动器执行命令后的状态,读该寄存器要清除中断请求信号,命令寄存器接收主机发送的CF卡工作的控制命令。
CF卡的扇区寻址有两种方式:物理寻址方式(CHS)和逻辑寻址方式(LBA)。物理寻址方式使用柱面、磁头和扇区号表示一个特定的扇区,起始扇区是0磁道、0磁头、1扇区,接下来是2扇区,一直到EOF扇区;接下来是同一柱面1头、1扇区等。逻辑寻址方式将整个CF卡同一寻址。逻辑块地址和物理地址的关系为:LBA地址=(柱面号×磁头数+磁头号)×扇区数+扇区数-1 
在CF卡上写入一个文件的过程是这样的,在CF卡初始化后(CF卡上电复位和统计剩余空间等工作已经完成),控制器中DSP开始向CF卡的一些寄存器填写必要的信息,如向扇区号寄存器填写读写数据的起始扇区号(LBA地址)和扇区数寄存器填写读写数据所占的扇区个数等,然后向CF卡的命令寄存器写入CF卡操作的命令,如写操作则向CF卡的命令寄存器写入30H,读操作向CF卡的命令寄存器写入20H等。删除或者再编程的过程相似。
看到这里大家可能发现了CF卡与硬盘越来越多的相似之处,不过有一点是完全不同的,那就是CF卡没有机械结构,所以一些操作是以虚拟方式进行。CF卡工作时一般采用逻辑寻址方式,它没有磁头和磁道的转换操作,因此在访问连续扇区时,操作速度比物理寻址方式快。 CF卡与可以完全像硬盘一样使用,不过由于和硬盘仍有许多不同之处,某些原本为硬盘设计的测试软件并不适合用来测试CF卡。
希望我的回答对你有所帮助。
实在不好意思,就这么多。
也不知道对你有多少帮助!~
祝你开心!~