一种轻量级TF卡检测工具的制作方法

一种轻量级tf卡检测工具

技术领域


:1.本发明涉及检测

技术领域


:,特别涉及一种轻量级tf卡检测工具。

背景技术


::2.随着信息技术的高速发展,电子产品越来越普及,这些产品的发展得益于嵌入式系统技术的快速发展,如摄像头、手机等就是嵌入式系统技术的应用。tf卡设备也在嵌入式设备中应用广泛,tf卡检测方法也是多种多种。3.目前的tf卡检测工具,包括以下几种:4.pc端的tf卡检测工具:只能在pc端运行,功能较多但是体积较大,移植性不高。5.现有的嵌入式tf卡检测工具:能基本实现在嵌入式系统的tf卡检测,但是功能单一,不符合各个厂家的要求。6.现在的pc端的tf检测工具都是基于windows操作系统图形化操作界面,体积太过庞大只适用于在pc机,无法适用在嵌入式系统的多种平台上。而现有的tf检测工具基本实现在嵌入式系统的tf卡检测,但是不能通过终端实时显示tf卡各项检测数据,无法适应不同厂家的各种要求。7.此外,本领域常见的技术术语包括:8.tf卡又称t-flash卡,全名:transflash,又名:microsd,由摩托罗拉与sandisk共同研发,在2004年推出。是一种超小型卡(11*15*1mm),约为sd卡的1/4,可以算目前最小的储存卡了。9.轻量级:是指规模较小,但是功能较为完善。10.扩容卡:指用非法手段(软件)让容量小的存储卡在电脑上显示出的容量变大(比如8g的显成128g),这些多出来的内存是不能正常使用的。fat(fileallocationtable):是“文件分配表”的意思。就是用来记录文件所在位置的表格,它对于硬盘的使用是非常重要的,假若丢失文件分配表,那么硬盘上的数据就会因无法定位而不能使用了。11.簇:数据在写入磁盘或从磁盘读取数据时每次操作的数据量称为数据单元,它的大小在建立文件系统时确定。由若干个扇区组成,是存取数据的最小单位。12.扇区:磁盘上的每个磁道被等分为若干个弧段,这些弧段便是磁盘的扇区。每个扇区大小为512字节。扇区从“1”开始编号。13.dbr(dosbootrecord,引导扇区):dos引导记录,为操作系统进入文件系统以后可以访问的第一个扇区,通常用来解释文件系统,dbr是由硬盘的mbr装载的程序段。dbr装入内存后,即开始执行该引导程序段,其主要功能是完成操作系统的自举并将控制权交给操作系统。每个分区都有引导扇区,但只有被设为活动分区才会被mbr装的dbr入内存运行。14.mbr:主引导记录,占446字节,为计算机启动后从可启动介质上首先装入内存并且执行的代码,通常用来解释分区结构。技术实现要素:15.本发明目的是建立在嵌入式系统中,功能多样,轻量级。并且具有较高的移植性,兼容各个嵌入式系统中的不同厂家。通过轻量级tf卡检测方法,可以快速的检测tf卡的存在、容量大小、扩容检测、文件信息检测、坏块扫描、读写速度测试、fat表个数及大小等相关信息。16.具体地,本方法提供了一种轻量级tf卡检测方法,所述方法包含以下步骤:17.s1.卡容量检测,通过获取dbr的基本信息得到文件系统大小扇区数和每个扇区的字节数计算出卡容量;18.s2.扩容性检测,通过对整个磁盘容量的读写是否可行来确定tf有没有存在扩容现象;19.s3.文件信息检测,通过对根目录区的扫描,可以得到文件首簇;或者对于多级子目录进行多次首簇定位,以此为起点,来读取文件内容;20.s4.坏块检测,利用读取命令对tf卡进行多个簇的读写校对,确定错误簇的信息,对错误信息,进行定位,将无法恢复的坏块区域标记出来。21.所述步骤s1中,从mbr跳转到dbr得到具体dbr数据,查阅fat文件系统的结构可以得到0x20~0x23共四个字节表示文件系统的总扇区数;0x0b~0x0c共两个字节得到每个扇区字节数,即卡容量=总扇区数*每扇区字数。22.所述步骤s2中,结合步骤s1中卡容量的计算算法,针对内存卡扩容方法,其步骤具体包括:23.a.采用比对扇区内存容量和cid寄存器内存容量,24.b.在卡容量的范围地址的数据读写对比,25.c.在高地址范围随机地址的数据读写,26.共计三步检测对内存卡是否扩容进行检测,三步检测均正常才判定为正常未扩容的内存卡,从而实现对内存卡的扩容检测。27.所述步骤s3中,由于fat区紧跟在文件系统保留区后,所以fat1在文件系统中的位置可以通过引导记录中偏移0x0e~0x0f字节处的“保留扇区数”得到。fat2紧跟在fat1之后,它的位置可以通过fat1的位置加上fat表的大小扇区数计算出来。28.在文件系统中新建文件时,如果新建的文件只占用一个簇,为其分配的簇对应的fat表项将会写入结束标记;如果新建的文件不只占用一个簇,则在其所占用的每个簇对应的fat表项中写入为其分配的下一簇的簇号,在最后一个簇对应的fat表象中写入结束标记;29.一个文件的起始簇号记录在它的目录项中,该文件的其他簇则用一个簇链结构记录在fat表中;如果要寻一个文件的下一簇,只需要查看该文件的目录项中描述的起始簇号所对应的fat表项,如果该文件只有一个簇,则此处的值为一个结束标记;如果该文件不止一个簇,则此处的值是它的下一个簇的簇号。30.数据区时真正用于存放用户数据的区域所有的簇从2开始进行编号,即,2号簇的起始位置就是数据区的起始位置,定位一个fat32文件系统的数据起始处,可以通过引导扇区的相关参数计算出来:31.h.从引导扇区的偏移0x0e~0x0f字节处得到保留扇区;32.i.从偏移0x10字节处得到fat表的个数;33.j.从偏移0x24~0x27字节处得到每个fat表的大小扇区数;34.k.利用如下公式计算:保留扇区数+每个fat表大小扇区数×fat表个数=数据区起始扇区号;35.要想计算其他已知簇号的扇区号,还要由引导扇区的偏移0x0d字节处查到每个簇大小扇区数,并使用如下公式计算:36.某簇起始扇区号=保留扇区数+每个fat表大小扇区数×fat表个数+(该簇簇号-2)×每簇扇区数。37.所述步骤s4中,如果某个簇存在坏扇区,则整个簇会用fat表项值0xffffff7标记为坏簇,不再使用,这个坏簇标记就记录在它所对应的fat表项中,并在终端中显示。38.综上,本技术的方法能够实现的优势在于:轻量级的tf卡检测方法,适用于嵌入式系统的多功能tf卡性能属性测试。能够实现快速检测tf卡的存在、容量大小、扩容检测、文件信息检测、坏块扫描、读写速度测试、fat表个数及大小等相关信息。附图说明39.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,并不构成对本发明的限定。40.图1是本检测方法应用的程序的流程图。41.图2是mbr和dbr结构示意图。42.图3是本发明存储结构示意图。43.图4是本发明方法的流程图。具体实施方式44.为了能够更清楚地理解本发明的技术内容及优点,现结合附图对本发明进行进一步的详细说明。45.如图4所示,本技术是一种轻量级tf卡检测方法,所述方法包含以下步骤:46.s1.卡容量检测,通过获取dbr的基本信息得到文件系统大小扇区数和每个扇区的字节数计算出卡容量;47.s2.扩容性检测,通过对整个磁盘容量的读写是否可行来确定tf有没有存在扩容现象;48.s3.文件信息检测,通过对根目录区的扫描,可以得到文件首簇;或者对于多级子目录进行多次首簇定位,以此为起点,来读取文件内容;49.s4.坏块检测,利用读取命令对tf卡进行多个簇的读写校对,确定错误簇的信息,对错误信息,进行定位,将无法恢复的坏块区域标记出来。50.具体地,本检测方法可以由c语言编写。具有较高的适用性,并且方便移植在不同平台上。该方法包括:卡容量检测,通过获取dbr(引导扇区)的基本信息得到文件系统大小扇区数和每个扇区的字节数计算出卡容量;扩容性检测,通过对整个磁盘容量的读写是否可行来确定tf有没有存在扩容现象;文件信息检测,通过对根目录区的扫描,可以得到文件首簇。或者对于多级子目录进行多次首簇定位,下面的就可以它为起点,来读取文件内容。具体程序流程图如图1所示:51.首先,打开设备文件;52.其次,读取文件系统信息;53.再次,读取fat表;54.第四,扫描fat表内容;55.第五,通过读取信息计算卡的状态;56.第六,终端显示数据;57.最后,结束。58.以下是tf检测方法的具体方案:59.卡容量的检测:通过图2、图3得知,可以得到从mbr跳转到dbr得到具体dbr数据,查阅fat文件系统的结构可以得到0x20~0x23共四个字节表示文件系统的总扇区数。0x0b~0x0c共两个字节得到每个扇区字节数。即卡容量=总扇区数*每扇区字数。60.扩容性检测:结合卡容量的计算算法,针对目前内存卡扩容方法,采用比对扇区内存容量和cid寄存器内存容量。在卡容量的范围地址的数据读写对比,在高地址范围随机地址的数据读写。共计三步检测对内存卡是否扩容进行检测,三步检测均正常才判定为正常未扩容的内存卡,从而实现对内存卡准确有效的扩容检测。61.文件信息检测:由图3可以知道,由于fat区紧跟在文件系统保留区后,所以fat1在文件系统中的位置可以通过引导记录中偏移0x0e~0x0f字节处的“保留扇区数”得到。fat2紧跟在fat1之后,它的位置可以通过fat1的位置加上fat表的大小扇区数计算出来。62.在文件系统中新建文件时,如果新建的文件只占用一个簇,为其分配的簇对应的fat表项将会写入结束标记。如果新建的文件不只占用一个簇,则在其所占用的每个簇对应的fat表项中写入为其分配的下一簇的簇号,在最后一个簇对应的fat表象中写入结束标记。一个文件的起始簇号记录在它的目录项中,该文件的其他簇则用一个簇链结构记录在fat表中。如果要寻一个文件的下一簇,只需要查看该文件的目录项中描述的起始簇号所对应的fat表项,如果该文件只有一个簇,则此处的值为一个结束标记;如果该文件不止一个簇,则此处的值是它的下一个簇的簇号。63.数据区时真正用于存放用户数据的区域所有的簇从2开始进行编号。也就是说,2号簇的起始位置就是数据区的起始位置。定位一个fat32文件系统的数据起始处,可以通过引导扇区的相关参数计算出来。64.1.从引导扇区的偏移0x0e~0x0f字节处得到保留扇区。65.2.从偏移0x10字节处得到fat表的个数。66.3.从偏移0x24~0x27字节处得到每个fat表的大小扇区数。67.4.利用如下公式计算:保留扇区数+每个fat表大小扇区数×fat表个数=数据区起始扇区号68.要想计算其他已知簇号的扇区号,还要由引导扇区的偏移0x0d字节处查到每个簇大小扇区数,并使用如下公式计算:69.某簇起始扇区号=保留扇区数+每个fat表大小扇区数×fat表个数+(该簇簇号-2)×每簇扇区数。70.坏块测试:利用读取命令对tf卡进行多个簇的读写校对,确定错误簇的信息,对错误信息,进行定位,将无法恢复的坏块区域标记出来如果某个簇存在坏扇区,则整个簇会用fat表项值0xffffff7标记为坏簇,不再使用,这个坏簇标记就记录在它所对应的fat表项中,并在终端中显示。71.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12

技术特征:


1.一种轻量级tf卡检测方法,其特征在于,所述方法包含以下步骤:s1.卡容量检测,通过获取dbr的基本信息得到文件系统大小扇区数和每个扇区的字节数计算出卡容量;s2.扩容性检测,通过对整个磁盘容量的读写是否可行来确定tf有没有存在扩容现象;s3.文件信息检测,通过对根目录区的扫描,可以得到文件首簇;或者对于多级子目录进行多次首簇定位,以此为起点,来读取文件内容;s4.坏块检测,利用读取命令对tf卡进行多个簇的读写校对,确定错误簇的信息,对错误信息,进行定位,将无法恢复的坏块区域标记出来。2.根据权利要求1所述的一种轻量级tf卡检测方法,其特征在于,所述步骤s1中,从mbr跳转到dbr得到具体dbr数据,查阅fat文件系统的结构可以得到0x20~0x23共四个字节表示文件系统的总扇区数;0x0b~0x0c共两个字节得到每个扇区字节数,即卡容量=总扇区数*每扇区字数。3.根据权利要求1所述的一种轻量级tf卡检测方法,其特征在于,所述步骤s2中,结合步骤s1中卡容量的计算算法,针对内存卡扩容方法,其步骤具体包括:a.采用比对扇区内存容量和cid寄存器内存容量,b.在卡容量的范围地址的数据读写对比,c.在高地址范围随机地址的数据读写,共计三步检测对内存卡是否扩容进行检测,三步检测均正常才判定为正常未扩容的内存卡,从而实现对内存卡的扩容检测。4.根据权利要求1所述的一种轻量级tf卡检测方法,其特征在于,所述步骤s3中,由于fat区紧跟在文件系统保留区后,所以fat1在文件系统中的位置可以通过引导记录中偏移0x0e~0x0f字节处的“保留扇区数”得到。fat2紧跟在fat1之后,它的位置可以通过fat1的位置加上fat表的大小扇区数计算出来。5.根据权利要求4所述的一种轻量级tf卡检测方法,其特征在于,在文件系统中新建文件时,如果新建的文件只占用一个簇,为其分配的簇对应的fat表项将会写入结束标记;如果新建的文件不只占用一个簇,则在其所占用的每个簇对应的fat表项中写入为其分配的下一簇的簇号,在最后一个簇对应的fat表象中写入结束标记;一个文件的起始簇号记录在它的目录项中,该文件的其他簇则用一个簇链结构记录在fat表中;如果要寻一个文件的下一簇,只需要查看该文件的目录项中描述的起始簇号所对应的fat表项,如果该文件只有一个簇,则此处的值为一个结束标记;如果该文件不止一个簇,则此处的值是它的下一个簇的簇号。6.根据权利要求5所述的一种轻量级tf卡检测方法,其特征在于,数据区时真正用于存放用户数据的区域所有的簇从2开始进行编号,即,2号簇的起始位置就是数据区的起始位置,定位一个fat32文件系统的数据起始处,可以通过引导扇区的相关参数计算出来:h.从引导扇区的偏移0x0e~0x0f字节处得到保留扇区;i.从偏移0x10字节处得到fat表的个数;j.从偏移0x24~0x27字节处得到每个fat表的大小扇区数;k.利用如下公式计算:保留扇区数+每个fat表大小扇区数
×
fat表个数=数据区起始扇区号;
要想计算其他已知簇号的扇区号,还要由引导扇区的偏移0x0d字节处查到每个簇大小扇区数,并使用如下公式计算:某簇起始扇区号=保留扇区数+每个fat表大小扇区数
×
fat表个数+(该簇簇号-2)
×
每簇扇区数。7.根据权利要求1所述的一种轻量级tf卡检测方法,其特征在于,所述步骤s4中,如果某个簇存在坏扇区,则整个簇会用fat表项值0xffffff7标记为坏簇,不再使用,这个坏簇标记就记录在它所对应的fat表项中,并在终端中显示。

技术总结


本发明提供一种轻量级TF卡检测方法,所述方法包含以下步骤:S1.卡容量检测,通过获取DBR的基本信息得到文件系统大小扇区数和每个扇区的字节数计算出卡容量;S2.扩容性检测,通过对整个磁盘容量的读写是否可行来确定TF有没有存在扩容现象;S3.文件信息检测,通过对根目录区的扫描,可以得到文件首簇;或者对于多级子目录进行多次首簇定位,以此为起点,来读取文件内容;S4.坏块检测,利用读取命令对TF卡进行多个簇的读写校对,确定错误簇的信息,对错误信息,进行定位,将无法恢复的坏块区域标记出来。通过轻量级TF卡检测方法,可以快速的检测TF卡的存在、容量大小、扩容检测、文件信息检测、坏块扫描、读写速度测试、FAT表个数及大小等相关信息。小等相关信息。小等相关信息。


技术研发人员:

汪凯

受保护的技术使用者:

合肥君正科技有限公司

技术研发日:

2020.10.12

技术公布日:

2022/4/15

本文发布于:2024-09-23 17:19:54,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/16970.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:扇区   字节   文件   文件系统
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议