CN104484634B - 内存卡的扩容检测方法及具有扩容检测功能的读卡器 - Google Patents
内存卡的扩容检测方法及具有扩容检测功能的读卡器 Download PDFInfo
- Publication number
- CN104484634B CN104484634B CN201410811043.8A CN201410811043A CN104484634B CN 104484634 B CN104484634 B CN 104484634B CN 201410811043 A CN201410811043 A CN 201410811043A CN 104484634 B CN104484634 B CN 104484634B
- Authority
- CN
- China
- Prior art keywords
- card
- dilatation
- ram card
- ram
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种内存卡扩容检测方法,针对目前内存卡扩容方法,采用比对扇区内存容量和寄存器内存容量、超范围地址的数据写入并读回和高地址范围随机地址的数据写入并读回共计三步检测对内存卡是否扩容进行检测,三步检测均正常才判定为正常未扩容的内存卡,从而实现对内存卡准确有效的扩容检测。并提供具有扩容检测功能的读卡器,实现脱离主机的独立检测,使扩容检测更为便捷。
Description
技术领域
本发明属于内存卡技术领域,更为具体地讲,涉及一种内存卡扩容检测方法及具有扩容检测功能的读卡器。
背景技术
内存卡扩容是山寨内存卡厂商经常使用的一种牟利手段,但是目前市面上缺乏专门检测内存卡好坏的独立装置,消费者只能通过Windows操作系统上的一些软件来识别内存卡的优劣,对操作系统的依赖性强,同时操作过程缓慢,容易导致死机;检测结果只能在购买内存卡之后才可以得到,检测意义不大。目前市面上的大部分检测软件,都是按照一定递增顺序扫描检测,如此,便给了一些无良商家利用这种递增顺序制作扩容内存卡、借助大型公司的名气来兜售劣质扩容内存卡的机会。
同时内存卡在使用过程中,由于使用方法的不当,内存卡会发生不同程度的损伤,这样的内存卡在格式化处理时,电脑会变得反应缓慢,特别在内存卡的文件系统出现问题时,电脑可能会出现‘卡死’的现象,以及‘Window无法完成格式化’的问题。目前大家使用的读卡器仅仅具有读写的功能,大有升值的空间。
发明内容
本发明的目的在于克服现有技术的不足,提供一种内存卡扩容检测方法及具有扩容检测功能的读卡器,实现对内存卡准确有效的扩容检测,并且通过在读卡器上设置扩容检测模块来实现独立检测。
为实现上述发明目的,本发明内存卡扩容检测方法,包括以下步骤:
S1:读取内存卡的DBR扇区数据,获取扇区总数,根据扇区总数得到内存卡的内存容量C1,然后读取内存卡CSD寄存器得到内存容量C2,判断C1和C2是否相等,如果不相等,则该内存卡为扩容卡,否则进入步骤S2;
S2:根据步骤S1得到的内存容量C1,将其地址最大值记为P,向地址[P+p1,P+p2]范围内写入任意数据后读回,其中0<p1<p2,判断写入的数据和读出的数据是否一致,如果一致,则该内存卡为扩容卡,否则进入步骤S3;
S3:在地址[P-p3,P]范围内随机产生一组地址,其中p3>0,写入任意数据后读回,判断写入的数据和读出的数据是否一致,如果一致,则该内存卡为正常卡,否则该内存卡为扩容卡。
本发明提供了一种具有扩容检测功能的读卡器,包括内存卡接口、控制器和USB接口,控制器分别与内存卡接口和USB接口连接用于控制数据传输,内存卡接口用于连接内存卡进行数据读写,USB接口用于连接主机,还包括与控制器连接的结果显示模块和模式开关,控制器中设置有扩容检测模块,其中:
模式开关用于选择读卡器的工作模式,包括普通模式和扩容检测模式,模式开关将模式选择信号发送给控制器,控制器根据模式选择信号确定当前读卡器工作模式;
当读卡器工作在扩容检测模式,扩容检测模块按照权利要求1中所述的内存卡扩容检测方法对内存卡进行扩容检测,将得到的扩容检测结果发送给结果显示模块,结果显示模块对扩容检测结果进行显示。
本发明内存卡扩容检测方法,针对目前内存卡扩容方法,采用比对扇区内存容量和寄存器内存容量、超范围地址的数据写入并读回和高地址范围随机地址的数据写入并读回共计三步检测对内存卡是否扩容进行检测,实现对内存卡准确有效的扩容检测。并提供具有扩容检测功能的读卡器,实现脱离主机的独立检测,使扩容检测更为便捷。
附图说明
图1是本发明内存卡的扩容检测方法的具体实施方式流程图;
图2是本发明具有扩容检测功能的读卡器的具体实施方式结构图;
图3是图2所示读卡器的工作流程图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
实施例
图1是本发明内存卡的扩容检测方法的具体实施方式流程图。如图1所示,本发明内存卡的扩容检测方法主要采用三步检测,包括以下步骤:
S101:读取内存卡的DBR(DOS BOOT RECORD,分区引导扇区)扇区数据,获取扇区总数,根据扇区总数得到内存卡的内存容量C1。
查阅FAT文件系统的规范可知,如果内存卡中有MBR(Main Boot Record,主引导记录),则MBR数据存储在内存卡最低地址空间,占用内存512字节空间,即第一个扇区;如果内存卡没有MBR,那么第一个扇区数据即为DBR。因此先通过调用内存卡单块读函数SD_ReadBlock()读取内存卡的第一个扇区的信息,判断其是否为DBR,否则为MBR(可通过判断该扇区中0x52~0x56地址处的数据是否为“FAT32”来识别是否为DBR,判断方法不唯一)。根据MBR可以得到分区DBR的起始地址,然后就可以通过调用内存卡单块读函数SD_ReadBlock()读取内存卡中的DBR数据,获得扇区总数TotalSectors,将该值乘以512bytes得到内存卡的字节容量,将该值C1存放在控制器的寄存器1中。在实际应用中,函数的编写需要根据相关协议标准来进行。
S102:然后读取内存卡CSD(Card Specific Data Register,描述数据寄存器)寄存器得到内存容量C2。
通过内存卡寄存器读函数SD_GetCardInfo()函数获取内存卡CSD寄存器的C_SIZE(设备容量),C_SIZE_MULT(设备容量乘子)和READ_BL_LEN(最大读取数据块长)的值,然后通过内存容量计算公式即可计算出内存卡的容量。由于对于不同类型的内存卡,其内存容量计算公式可能会存在不同,例如SDSC(Secure Digital Standard Capacity标准容量SD卡)卡和SDHC(Secure Digital High Capacity,高容量SD卡)卡的计算公式就不一样。因此在实际应用中,可以在检测系统对内存卡初始化的同时,识别内存卡的类型,自动选择对应的计算公式来计算,以扩大适用范围。
S103:判断C1和C2是否相等,如果不相等,进入步骤S110,否则进入步骤S104。
根据步骤S101至步骤S103的判断,可以对通过修改引导扇区信息的扩容内存卡实现检测。
S104:根据步骤S101得到的内存容量C1,将其地址最大值记为P,向地址[P+p1,P+p2]范围内写入任意数据后读回,其中0<p1<p2。
在实际应用中,为了扩容检测完毕后对原有数据进行恢复,可先将写入地址的数据另存。
S105:判断写入的数据和读出的数据是否一致,如果一致,进入步骤S110,否则进入步骤S106。
步骤S104、105是向超出内存卡容量值的一段地址范围写入数据并读回,从而对采用“加大地址循环映射法”扩容的内存卡实现检测。为了保证检测的正确性,该地址范围不宜太小,如果太大又会增加检测时间,通常可以采用1K的容量,即向[C1,C1+1024byte]对应的地址空间进行操作。
S106:在地址[P-p3,P]范围内随机产生一组地址,其中p3>0。
S107:在步骤S106得到的随机地址写入任意数据并读回。
S108:判断写入的数据和读出的数据是否一致,如果一致,进入步骤S109,否则进入步骤S110。
S109:该内存卡为正常卡。
S110:该内存卡为扩容卡。
采用本发明内存卡的扩容检测方法可以实现对内存卡扩容的准确检测。为了能够对内存卡进行无需主机的独立检测,本发明提供了一种具有扩容检测功能的读卡器。图2是本发明具有扩容检测功能的读卡器的具体实施方式结构图。如图2所示,本发明具有扩容检测功能的读卡器除了具有一般读卡器也具有的USB接口1,控制器2和内存卡接口3之外,其控制器中还设置有扩容检测模块21和格式化模块22,另外还包括结果显示模块4、模块开关5和电源模块6。
与一般读卡器相同,控制器2分别与USB接口1和内存卡接口3连接,用于控制数据传输,USB接口1用于连接主机,内存卡接口2用于连接内存卡进行数据读写。本实施例中控制器选用意法半导体STM32微控制器。
模式开关5用于选择读卡器的工作模式,包括普通模式和扩容检测模式,模式开关将模式选择信号发送给控制器2,控制器2根据模式选择信号确定当前读卡器工作模式。
当读卡器处于扩容检测模式时,控制器2中设置的扩容检测模块21,按照本发明所提供的内存卡的扩容检测方法对内存卡进行扩容检测,然后将得到的扩容检测结果发送给结果显示模块4,结果显示模块4对扩容检测结果进行显示。
结果显示模块4可以采用指示灯或液晶屏来实现,例如指示灯为红表示内存卡为扩容卡,为绿表示内存卡为正常卡。液晶屏则可以更详细地显示扩容检测结果。
为了增加读卡器的应用范围,本发明具有扩容检测功能的读卡器的控制器2中还增加了一个格式化模块22,该模块用于对内存卡进行格式化。一般来说,可以直接在格式化模块22中移植一个文件系统FATFS,利用该文件系统提供的格式化函数F_MKFS()格式化内存卡,从而实现格式化。相应地,当读卡器配置有格式化模块22时,模式开关5也要相应地设置对应的格式化模块的开关。
目前读卡器都是通过USB接口来供电的。对于本发明的具有扩容检测的读卡器,虽然也可以通过USB接口1来供电,但是为了更好地实现读卡器的独立使用,配置了一个电源模块6,向控制器2、内存卡接口3、结果显示模块4和模式开关5供电。该电源模块6可以是电池或超级电容供电,还可以通过USB进行充电。
图3是图2所示读卡器的工作流程图。如图3所示,本实施例中的读卡器的工作流程包括以下步骤:
S301:判断工作模式:
读卡器上电后,控制器先根据模式开关的模式选择信号判断读卡器当前所处的工作模式,如果是普通模式,进入步骤S302,如果是扩容检测模式,进入步骤S303,如果是格式化式,进入步骤S304。
S302:根据主机的操作对内存卡进行读写等操作。
S303:扩容检测模块21对内存卡进行扩容检测,将扩容检测结果通过结果显示模块4进行显示。
S304:格式化模块22对内存卡进行格式化。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (5)
1.一种内存卡扩容检测方法,其特征在于,包括以下步骤:
S1:读取内存卡的DBR扇区数据,获取扇区总数,根据扇区总数得到内存卡的内存容量C1,然后读取内存卡CSD寄存器得到内存容量C2,判断C1和C2是否相等,如果不相等,则该内存卡为扩容卡,否则进入步骤S2;
S2:根据步骤S1得到的内存容量C1,将其地址最大值记为P,向地址[P+p1,P+p2]范围内写入任意数据后读回,其中0<p1<p2,判断写入的数据和读出的数据是否一致,如果一致,则该内存卡为扩容卡,否则进入步骤S3;
S3:在地址[P-p3,P]范围内随机产生一组地址,其中p3>0,写入任意数据后读回,判断写入的数据和读出的数据是否一致,如果一致,则该内存卡为正常卡,否则该内存卡为扩容卡。
2.一种具有扩容检测功能的读卡器,包括内存卡接口、控制器和USB接口,控制器分别与内存卡接口和USB接口连接用于控制数据传输,内存卡接口用于连接内存卡进行数据读写,USB接口用于连接主机,其特征在于:还包括与控制器连接的结果显示模块和模式开关,控制器中设置有扩容检测模块,其中:
模式开关用于选择读卡器的工作模式,包括普通模式和扩容检测模式,模式开关将模式选择信号发送给控制器,控制器根据模式选择信号确定当前读卡器工作模式;
当读卡器工作在扩容检测模式,扩容检测模块按照权利要求1中所述的内存卡扩容检测方法对内存卡进行扩容检测,将得到的扩容检测结果发送给结果显示模块,结果显示模块对扩容检测结果进行显示。
3.根据权利要求2所述的读卡器,其特征在于,所述控制器中还包括格式化模块,模式开关所选择的工作模式中还包括格式化模式。
4.根据权利要求2所述的读卡器,其特征在于,还包括电源模块,用于向控制器、内存卡接口、结果显示模式和模式开关供电。
5.根据权利要求4所述的读卡器,其特征在于,所述电源模式可通过USB接口充电。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410811043.8A CN104484634B (zh) | 2014-12-23 | 2014-12-23 | 内存卡的扩容检测方法及具有扩容检测功能的读卡器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410811043.8A CN104484634B (zh) | 2014-12-23 | 2014-12-23 | 内存卡的扩容检测方法及具有扩容检测功能的读卡器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104484634A CN104484634A (zh) | 2015-04-01 |
CN104484634B true CN104484634B (zh) | 2017-06-09 |
Family
ID=52759175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410811043.8A Expired - Fee Related CN104484634B (zh) | 2014-12-23 | 2014-12-23 | 内存卡的扩容检测方法及具有扩容检测功能的读卡器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104484634B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114360627A (zh) * | 2020-10-12 | 2022-04-15 | 合肥君正科技有限公司 | 一种轻量级tf卡检测工具 |
CN112416675B (zh) * | 2020-11-18 | 2023-05-02 | 杭州萤石软件有限公司 | 一种针对存储器的扩容检测方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4481570A (en) * | 1981-08-07 | 1984-11-06 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Automatic multi-banking of memory for microprocessors |
CN1542688A (zh) * | 2003-11-06 | 2004-11-03 | 上海复旦微电子股份有限公司 | 一种扩展非接触智能卡存储器的存储结构和控制权限的方法 |
CN101814050A (zh) * | 2009-02-19 | 2010-08-25 | 鸿富锦精密工业(深圳)有限公司 | 内存测试方法 |
CN202362777U (zh) * | 2011-11-11 | 2012-08-01 | 华南理工大学 | 基于fpga的sd卡文件管理控制器 |
CN103500586A (zh) * | 2013-09-26 | 2014-01-08 | 北京奇虎科技有限公司 | 检测移动存储装置容量的方法及设备 |
-
2014
- 2014-12-23 CN CN201410811043.8A patent/CN104484634B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4481570A (en) * | 1981-08-07 | 1984-11-06 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Automatic multi-banking of memory for microprocessors |
CN1542688A (zh) * | 2003-11-06 | 2004-11-03 | 上海复旦微电子股份有限公司 | 一种扩展非接触智能卡存储器的存储结构和控制权限的方法 |
CN101814050A (zh) * | 2009-02-19 | 2010-08-25 | 鸿富锦精密工业(深圳)有限公司 | 内存测试方法 |
CN202362777U (zh) * | 2011-11-11 | 2012-08-01 | 华南理工大学 | 基于fpga的sd卡文件管理控制器 |
CN103500586A (zh) * | 2013-09-26 | 2014-01-08 | 北京奇虎科技有限公司 | 检测移动存储装置容量的方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104484634A (zh) | 2015-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10031671B2 (en) | Method, apparatus, and system for calculating identification threshold to distinguish cold data and hot data | |
CN102063943B (zh) | Nand闪存参数自动检测系统 | |
KR101254647B1 (ko) | 솔리드 스테이트 드라이브 테스트장치 | |
RU2006137709A (ru) | Карточка и ведущее устройство | |
CN102306127B (zh) | 一种ddriii内存识别和初始化方法 | |
CN104330177B (zh) | 超低功耗便携式地温采集装置和方法 | |
CN109490751A (zh) | 一种emmc测试方法及测试电路 | |
CN104484634B (zh) | 内存卡的扩容检测方法及具有扩容检测功能的读卡器 | |
CN106484719A (zh) | 一种扩展手机存储的方法及终端 | |
CN101615156A (zh) | 可实时显示移动储存设备擦写寿命的系统 | |
CN203069750U (zh) | 一种新型数字芯片测试仪 | |
CN109032864A (zh) | 一种NVMe SSD热插拔测试的方法及系统 | |
CN103675541B (zh) | 一种rfid读写器老化测试辅助装置 | |
CN104133640B (zh) | 从休眠快速恢复 | |
CN104199621B (zh) | 硬盘管理系统 | |
CN110046069A (zh) | 一种存储性能测试的方法、装置、设备及可读存储介质 | |
CN110187872A (zh) | 一种bios开发方法、系统及电子设备和存储介质 | |
CN103970967A (zh) | 一种电力系统电磁暂态仿真分析系统 | |
US7137037B2 (en) | Data storage system and method for testing the same | |
CN103995765B (zh) | 一种led控制卡自动测试系统及方法 | |
CN102543215B (zh) | 一种基于ARM控制器的Nand FLASH智能检测方法 | |
US8281057B2 (en) | Information processing apparatus, host bus adaptor and control method | |
WO2024005924A1 (en) | Performance indicator on a data storage device | |
CN108008908A (zh) | 一种管控sd卡上数据的方法和装置 | |
CN116560985A (zh) | 芯片设备测试控制方法、上位机、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170609 Termination date: 20191223 |