CN104217768B - 一种eMMC内嵌式存储器的检测方法和装置 - Google Patents
一种eMMC内嵌式存储器的检测方法和装置 Download PDFInfo
- Publication number
- CN104217768B CN104217768B CN201410448288.9A CN201410448288A CN104217768B CN 104217768 B CN104217768 B CN 104217768B CN 201410448288 A CN201410448288 A CN 201410448288A CN 104217768 B CN104217768 B CN 104217768B
- Authority
- CN
- China
- Prior art keywords
- emmc
- ports
- fpdp
- cmd
- port
- 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.)
- Active
Links
Abstract
本发明实施例公开了一种eMMC内嵌式存储器的检测方法和装置,涉及电子电路领域,用以对eMMC的I/O端口的通断进行检测。本发明中,通过CLK端口输入与设置的时钟频率相同频率的时钟信号;通过CMD端口向eMMC发送第一指令,以指示eMMC通过CMD端口进行反馈,根据接收到的反馈信息,确定CMD端口和CLK端口的通断;在确定CMD端口和CLK端口均为使用正常的端口后,擦除eMMC中的至少一个最小数据块,通过CMD端口向eMMC发送第二指令,用以向已擦除的数据块所对应的存储空间中写入预设数值;通过数据端口读取存储空间所存储的数值,比较写入数值和读出数值,确定每个数据端口的通断;从而实现了上述功能。
Description
技术领域
本发明涉及电子电路领域,尤其涉及一种eMMC内嵌式存储器的检测方法和装置。
背景技术
eMMC(Embedded Multi Media Card,内嵌式存储器)是一种主要针对于手机或平板电脑的内嵌式存储器。eMMC由MMC(Multimedia Card,多媒体卡)接口、快闪存储器设备及主控制器组成,并采用BGA(Ball Grid Array Package,球栅阵列封装)技术封装。采用BGA技术封装的eMMC的I/O(input/output,输入输出端口)端口以圆形或柱状焊点按阵列形式分布在封装下面,可以增加eMMC的集成度。
现有技术中,对电子元器件进行硬件检测时,通常使用万用表表笔直接接触电子元器件的I/O端口(引脚),才能对该I/O端口的通断进行检测;还可以使用示波器探头直接接触电子元器件的I/O端口(引脚),才能对该I/O端口的通断或输出信号进行检测。
随着手机或平板电脑等智能设备的功能越来越多,其主板的集成度也越来越高,主板的PCB(Printed Circuit Board,印刷电路板)往往采用多层布线。当采用多层布线时,集成在主板上的eMMC的I/O端口往往不被暴露在主板表面而是隐藏eMMC的芯片体下面,可见,当需要检测该eMMC时,使用万用表表笔或示波器探头无法接触到eMMC的I/O端口,因此,采用现有技术中的硬件检测方法无法对eMMC进行检测。
发明内容
本发明实施例提供一种eMMC内嵌式存储器的检测方法和装置,用以对eMMC的I/O端口的通断进行检测。
一种eMMC内嵌式存储器的检测方法,所述eMMC至少具有命令CMD端口、时钟CLK端口和八个数据端口,该方法包括:
设置所述eMMC的时钟频率,并通过所述CLK端口输入与设置的时钟频率相同频率的时钟信号;
通过所述CMD端口向所述eMMC发送第一指令,以指示所述eMMC根据所述第一指令所指示的内容通过所述CMD端口进行反馈,根据接收到的反馈信息,确定所述CMD端口和所述CLK端口的通断;
在确定所述CMD端口和所述CLK端口均为使用正常的端口后,擦除所述eMMC中的至少一个最小数据块,通过所述CMD端口向所述eMMC发送第二指令,用以向所述已擦除的数据块所对应的存储空间中写入预设数值;通过所述数据端口读取所述存储空间所存储的数值,比较所述写入的预设数值和读取出的数值,根据比较结果确定每个数据端口的通断。
一种eMMC内嵌式存储器的检测装置,所述eMMC至少具有命令CMD端口、时钟CLK端口和八个数据端口,该装置包括:
初始化单元,用于设置所述eMMC的时钟频率,并通过所述CLK端口输入与设置的时钟频率相同频率的时钟信号;
端口检测单元,用于通过所述CMD端口向所述eMMC发送第一指令,以指示所述eMMC根据所述第一指令所指示的内容通过所述CMD端口进行反馈,根据接收到的反馈信息,确定所述CMD端口和所述CLK端口的通断;在确定所述CMD端口和所述CLK端口均为使用正常的端口后,擦除所述eMMC中的至少一个最小数据块,通过所述CMD端口向所述eMMC发送第二指令,用以向所述已擦除的数据块所对应的存储空间中写入预设数值;通过所述数据端口读取所述存储空间所存储的数值,比较所述写入的预设数值和读取出的数值,根据比较结果确定每个数据端口的通断。
从上述方案可以看出,本发明实施例提供一种eMMC的检测方法,首先向eMMC发送时钟信号和第一指令,监测该eMMC所反馈的信息,根据反馈信息判断该eMMC的CMD端口和CLK端口的通断,从而实现了对eMMC的CMD端口和CLK端口的通断的检测;擦除eMMC所存储的任一最小数据块,向擦除的数据块中写入预设数值,然后读取该数据块中所存储的数值,比较写入的数值和读取出的数值,根据比较结果确定每个数据端口的通断,由于eMMC的端口在布线或焊接时可能发生短路或断路的现象,若发生了短路或断路的现象时,则写入的数据与读取出的数据一定不相同,本发明实施例可以根据不相同的数据或数值,判断每一个数据端口的通断,从而实现了对eMMC的数据端口的检测。可见,本发明实施例可以检测的端口至少包括:CMD端口、CLK端口和每个数据端口,由于上述端口为eMMC主要使用的I/O端口,因此通过本发明实施例可以实现对eMMC的I/O端口的通断进行检测的目的。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中的典型的智能设备CPU最小系统的结构示意图;
图2为现有技术中ROM程序的执行流程的示意图;
图3为现有技术中eMMC的内部结构示意图;
图4为本发明实施例提供的eMMC的检测方法的流程示意图;
图5为本发明实施例中的将eMMC的数据宽度设置为8bit时进行eMMC检测的流程示意图;
图6为本发明实施例中数据端口进行传输的格式的示意图;
图7为本发明实施例提供的eMMC的检测装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例可适用于各种集成电路芯片,尤其适用于采用BGA技术封装的eMMC芯片。图1示出了一种现有技术中的典型的智能设备CPU最小系统的结构示意图,如图1所示,CPU(Central Processing Unit,中央处理器)最小系统由CPU、eMMC和DDR(Double DataRate,双倍速率同步动态随机存储器)三部分组成。设备未上电前,程序代码存储在eMMC中,这些代码可以包括:boot代码(启动代码)、kernel代码(内核代码)、ramdisk(虚拟内存盘代码)、user data(用户数据代码)等部分。通常的,在CPU内部(SOC(System on Chip,系统级芯片)处)会集成一片小容量的ROM(Read-Only Memory,只读内存)和RAM(Random AccessMemory,随机存取存储器)区域。其中,ROM中存储的是由CPU芯片厂商在出厂时固化的启动代码(在本发明实施例中简称ROM程序),ROM程序的作用包括:一、完成上电检测,并初始化CPU;二、从外部非易失性存储器上拷贝boot代码到内部RAM运行;三、通过UART(UniversalAsynchronous Receiver/Transmitter,通用异步收发传输器)、USB(Universal SerialBus,通用串行总线)、I2C(Inter-Integrated Circuit,两线式串行总线)、RS232等通信接口与外界(通常是外界PC)通信,接收指令并执行响应的操作。图2示出了现有技术中ROM程序的执行流程的示意图,如图2所示,该过程可以包括:
步骤S01:设备上电,并进行上电自检及初始化操作;
步骤S02:检测UART或USB或I2C接口上是否有数据,若是,则执行步骤S03;若否,则执行步骤S04;
步骤S03:进入指令模式,并通过UART或USB或I2C与外界PC进行信令交互,并结束流程;
步骤S04:从eMMC拷贝boot代码到内部RAM运行,并结束流程。
本发明实施例可以应用于上述步骤S03的进程中,在外界PC上UART或USB或I2C接口向eMMC发送相关检测指令序列,与eMMC进行指定的信令交互,从而实现eMMC的信号的检测。
图3示出了现有技术中eMMC的内部结构示意图,如图3所示,除了VCC或VCCQ(双极器件电源电压)、VDD或VDDI(单级器件电源电压)、VSS或VSSQ(地或负极电源)、RST_n(复位)等I/O端口之外,eMMC主要的I/O端口包括:CMD(命令)端口、CLK(时钟)端口、DATA0~DATA7第一~第八数据端口。其中,CMD端口主要用来传输MMC协议指令;CLK端口用来提供传输时钟信号;数据端口用来传输数据信号。eMMC内部主要由MMC controller(MMC控制器)和NAND Flash(非易失闪存)两部分组成。其中,MMC控制器主要负责使用MMC接口协议与外部器件通信,还负责管理内部的NAND Flash,eMMC所有的数据传输和模式设置等操作均是通过CMD端口上传输的指令实现的。
本发明实施例提供了一种用于检测eMMC的CMD端口、CLK端口以及DATA0~DATA7端口的方法。图4示出了本发明实施例提供的eMMC的检测方法的流程示意图,如图4所示,该方法包括:
步骤41:设置eMMC的时钟频率,并通过CLK端口输入与设置的时钟频率相同频率的时钟信号。
可选的,在步骤41之前,还可以对eMMC进行初始化处理。一般来说,可以在eMMC初始化之后设置eMMC的时钟频率,或者,在eMMC运行一段时间后,设置eMMC的时钟频率。这样,本发明实施例可以在设备初始化时检测eMMC的各I/O端口的通断,还可以在设备运行一段时间后检测eMMC的各I/O端口的通断;由于后续步骤中的获取eMMC的标识信息以及写入、读取数据均基于设置的时钟频率,因此,可以在初始化后或任意时间设置eMMC的时钟频率,本发明实施例只要按照步骤41设置了时钟频率,就可以在任意时间对eMMC各I/O端口的通断进行检测。
步骤42:通过CMD端口向eMMC发送第一指令,以指示eMMC根据第一指令所指示的内容通过CMD端口进行反馈,根据接收到的反馈信息,确定CMD端口和CLK端口的通断。
可选的,在上述步骤42中,第一指令用于指示eMMC从eMMC标识信息所对应的寄存器中获取eMMC标识信息;eMMC根据第一指令所指示的内容通过CMD端口进行反馈,具体包括:eMMC根据第一指令所指示的内容,读取对应的寄存器所存储的eMMC标识信息,并将读取到的eMMC标识信息作为反馈信息通过CMD端口进行反馈。
可选的,在上述步骤42中,确定CMD端口和CLK端口的通断,具体包括:若接收到eMMC通过CMD端口输出eMMC标识信息,则将CMD端口和CLK端口均确定为使用正常的端口;否则,将CMD端口和CLK端口中至少一个端口确定为故障端口。
步骤43:在确定所述CMD端口和所述CLK端口均为使用正常的端口后,擦除eMMC中的至少一个最小数据块,通过CMD端口向eMMC发送第二指令,用以向已擦除的数据块所对应的存储空间中写入预设数值;通过数据端口读取存储空间所存储的数值,比较写入的预设数值和读取出的数值,根据比较结果确定每个数据端口的通断。
具体实现时,只有当eMMC的CLK端口输入了与设置的时钟频率对应的时钟信号,该eMMC才能在该时钟频率下正常工作,因此可以说CLK端口是eMMC芯片的基础;另外,由于CMD端口用于输入或输出eMMC的指令信息,例如,如果需要检测数据端口,首先需要通过CMD端口输入擦除指令和写入指令,可见,CMD端口也是eMMC芯片的基础。因此,在本发明实施例中,可以优先执行步骤42,然后继续执行步骤43,这样能够保证每一个检测步骤的有效性。
可选的,在上述步骤41之前还包括:设置eMMC的数据宽度;八个数据端口从最低位到最高位依次为:第一数据端口~第八数据端口;
本发明实施例可以包括如下三个具体方案。
方案一:
当预先设置eMMC的数据宽度为8bit时,通过CMD端口向eMMC发送第二指令,具体包括:
通过CMD端口向eMMC发送第二指令,用以向已擦除的数据块所对应的存储空间中写入数据宽度为8bit的数值;
通过数据端口读取存储空间所存储的数值,比较写入的预设数值和读取出的数值,根据比较结果确定每个数据端口的通断,具体包括:通过第一数据端口~第八数据端口读取存储空间所存储的二进制数值;针对于每个数据端口,分别比较写入的二进制数值和读取出的二进制数据,根据比较结果确定第一数据端口~第八数据端口的通断。
方案二:
当预先设置eMMC的数据宽度为4bit时,通过CMD端口向eMMC发送第二指令,具体包括:
通过CMD端口向eMMC发送第二指令,用以向已擦除的数据块所对应的存储空间中写入数据宽度为4bit的数值;通过数据端口读取存储空间所存储的数值,比较写入的预设数值和读取出的数值,根据比较结果确定每个数据端口的通断,具体包括:
通过第一数据端口~第四数据端口读取存储空间所存储的二进制数值;针对于每个数据端口,分别比较写入的二进制数值和读取出的二进制数据,根据比较结果确定第一数据端口~第四数据端口的通断。
方案三:
当预先设置eMMC的数据宽度为1bit时,通过CMD端口向eMMC发送第二指令,具体包括:通过CMD端口向eMMC发送第二指令,用以向已擦除的数据块所对应的存储空间中写入数据宽度为1bit的数值;
通过数据端口读取存储空间所存储的数值,比较写入的预设数值和读取出的数值,根据比较结果确定每个数据端口的通断,具体包括:通过第一数据端口读取存储空间所存储的二进制数值;分别比较写入的二进制数值和读取出的二进制数据,根据比较结果确定eMMC的时序,并确定第一数据端口的通断。
可选的,在上述步骤中,根据比较结果确定每个数据端口的通断,具体包括:
对于任意一个数据端口,若写入的二进制数值和读取出的二进制数值相同,则将该数据端口确定为使用正常的数据端口;否则,将该数据端口确定为断路端口;
对于任意两个相邻的数据端口,当写入其中一个数据端口的二进制数值与写入另一个数据端口的二进制数值不同时,分别比较写入的二进制数值与读取出的二进制数值是否相同,若相同,则将两个相邻的数据端口均确定为使用正常的数据端口,若不同,则两个相邻的数据端口中至少一个端口确定为短路的数据端口。
下面通过具体的实施例以数据宽度为8bit的eMMC为例进行具体描述。
在本发明实施例中,可以通过安装在外界PC上的软件或安装在外界智能设备上的软件对eMMC进行检测。PC或智能设备通过USB、I2C、RS232端口与eMMC进行通信,使用约定的通信协议进行命令传输和数据交互。ROM程序接收到PC或智能设备发送的用于指示eMMC执行指定操作的命令(在本发明实施例中简称eMMC指令)后,指示eMMC进行相应的操作。在本发明实施例中,用于检测eMMC的算法可以保存在外界PC上或智能设备上,用于与eMMC进行通信的协议也可以保存在外界PC上或智能设备上。其中,用于检测eMMC的算法可以保存在外界PC上或智能设备上的检测算法的核心思想是模拟真实的eMMC的操作流程,具体包括:初始化流程,工作模式设置流程,数据读、写、擦除流程等。
图5示出了本发明实施例中的将eMMC的数据宽度设置为8bit时进行eMMC检测的流程示意图;如图5所示,本发明实施例以通过外界PC进行eMMC检测为例,该方法包括:
步骤51:在初始化时,通过外界PC初始化CPU,并设置CPU内部的eMMC控制器。
步骤52:通过外界PC设置eMMC的工作模式。
具体实现时,通过外界PC设置eMMC的时钟频率、数据宽度,将eMMC的数据宽度设置为8bit。
步骤53:通过外界PC向eMMC发送CMD0指令,用于指示eMMC进行芯片复位操作。
步骤54:通过外界PC向eMMC发送CMD1指令,用于获取eMMC内部存储的OD寄存器内容,若未获取到,则执行步骤55;若获取到,则执行步骤56。
步骤55:认为CMD端口和CLK端口是故障端口,并结束检测流程。
具体实现时,OD寄存器所存储的是eMMC芯片的厂商ID、产品ID等信息。外界PC需要通过CMD端口向eMMC发送CMD1指令,因此,通过步骤54可以检测eMMC的CMD端口的通断;另一方面,由于eMMC必须在设置的时钟频率下才能正常工作,因此,通过步骤54也可以检测eMMC的CLK端口的通断。当外界PC接收到eMMC返回OD寄存器中保存的eMMC芯片的厂商ID、产品ID等信息后,可以确定该eMMC的CMD端口和CLK端口是可以正常使用的,若外界PC未接收到eMMC返回OD寄存器中保存的eMMC芯片的厂商ID、产品ID等信息,则直接认为该eMMC的CMD端口和CLK端口是故障端口,并结束检测流程。
步骤56:在确定所述CMD端口和所述CLK端口均为使用正常的端口后,通过外界PC擦除任一最小数据块(block)。
具体实现时,块(block)是eMMC内部NAND Flash中最小的读、写、擦除单位(通常来讲一个最小block的大小是512字节)。在本发明实施例中,外界PC需要擦除任一一个block,需要向eMMC发送擦除指令,其中,CMD35指令用于指示eMMC进行擦除时的起始地址,CMD36指令用于指示eMMC进行擦除时的终止地址,CMD38指令用于指示eMMC进行擦除操作。
需要说明的是,本发明实施例中的最小的读、写、擦除单位是根据不同类型的闪存确定的。例如,当eMMC使用其他类型的闪存,如NOR Flash时,最小数据块可能不是512字节。
步骤57:通过外界PC向eMMC中写入数据0xFF0055aa。
具体实现时,外界PC发送CMD25指令,并写入一个数据长度恰好为512字节的数据。举例来说,可以连续向eMMC中重复多次写入0xFF0055aa的数据直至已写入的数据长度为512字节时停止写入。
具体实现时,在设置的数据宽度为8bit的情况时,该数据在数据端口(DATA信号线)进行传输。图6示出了数据端口进行传输的格式的示意图;在设置的数据宽度为8bit的情况时,写入的数据0xFF0055aa在数据端口上进行传输的格式如图6所示,可见,数据0xFF0055aa的最高位在DATA7(第八数据端口)上传输,最低位在DATA0(第一数据端口)上传输。
步骤58:通过外界PC向eMMC发送读取指令,用于读取最小数据块中所存储的数据。
具体实现时,通过外界PC向eMMC发送CMD17指令,用于读取通过步骤57写入的数据,在本发明实施例中,该数据即为0xFF0055aa。
步骤59:将写入的数据0xFF0055aa与读取出的数据进行比较,根据比较结果确定各数据端口的通断。
具体实现时,继续参见图6,从图6中可以看出,当写入数据为0xFF时,读取到的字节中不为1的数据端口即代表该数据端口为断路;当写入数据为0x00时,读取到的字节中不为0的数据端口即代表该数据端口为断路;进一步的,当写入数据为0x55时,由于该数据对应的二进制数值为0101 0101,因此可以判断DATA0~DATA7八个数据端口是否存在短路现象,若读取出的二进制数据不为0101 0101,则连续为0或连续为1的数据端口均存在短路现象;当写入数据为0xaa时,由于该数据对应的二进制数值为1010 1010,因此也可以判断DATA0~DATA7八个数据端口是否存在短路现象,若读取出的二进制数据不为1010 1010则连续为0或连续为1的数据端口均存在短路现象。
需要说明的是,在实际应用中,对于eMMC的任一数据端口,如果写入的二进制数值是1,而读取出的二进制数值是0时,该数据端口可能为断路,该数据端口也可能与地短路。为了区分该数据端口是断路还是与地短路的情况,本发明实施例还可以利用外界PC向eMMC发送指定命令,用于使能(开启)该数据端口的弱上拉功能,此时,可以继续写入二进制数值为1的数据,若读取出的二进制数值是0,则确定该数据端口与地短路;若读取出的二进制数值是1,则确定该数据端口断路。
从上述方案可以看出,本发明实施例提供一种eMMC的检测方法,首先向eMMC发送时钟信号和第一指令,监测该eMMC所反馈的信息,根据反馈信息判断该eMMC的CMD端口和CLK端口的通断,从而实现了对eMMC的CMD端口和CLK端口的通断的检测;擦除eMMC所存储的任一最小数据块,向擦除的数据块中写入预设数值,然后读取该数据块中所存储的数值,比较写入的数值和读取出的数值,根据比较结果确定每个数据端口的通断,由于eMMC的端口在布线或焊接时可能发生短路或断路的现象,若发生了短路或断路的现象时,则写入的数据与读取出的数据一定不相同,本发明实施例可以根据写入的数值不同,逐一判断每一个数据端口的通断,例如:当写入的二进制数值为1111 1111或0000 0000或类似的数值时,判断8个数据端口的通断;当写入的二进制数值为1010 1010或0101 0101或类似的数值时,判断8个数据端口是否发生短路,从而实现了对eMMC的数据端口的检测。可见,本发明实施例可以检测的端口至少包括:CMD端口、CLK端口和每个数据端口,由于上述端口为eMMC主要使用的I/O端口,因此通过本发明实施例可以实现对eMMC的每个I/O端口进行检测的目的。
基于相同的技术构思,本发明实施例提供了一种eMMC内嵌式存储器的检测装置,图7示出了本发明实施例提供的eMMC内嵌式存储器的检测装置的结构示意图;如图7所示,该装置包括:
初始化单元71,用于设置所述eMMC的时钟频率,并通过所述CLK端口输入与设置的时钟频率相同频率的时钟信号;
端口检测单元72,用于通过所述CMD端口向所述eMMC发送第一指令,以指示所述eMMC根据所述第一指令所指示的内容通过所述CMD端口进行反馈,根据接收到的反馈信息,确定所述CMD端口和所述CLK端口的通断;在确定所述CMD端口和所述CLK端口均为使用正常的端口后,擦除所述eMMC中的至少一个最小数据块,通过所述CMD端口向所述eMMC发送第二指令,用以向所述已擦除的数据块所对应的存储空间中写入预设数值;通过所述数据端口读取所述存储空间所存储的数值,比较所述写入的预设数值和读取出的数值,根据比较结果确定每个数据端口的通断。
可选的,所述第一指令用于指示所述eMMC从eMMC标识信息所对应的寄存器中获取eMMC标识信息;所述端口检测单元72具体用于:所述eMMC根据所述第一指令所指示的内容,读取对应的寄存器所存储的eMMC标识信息,并将读取到的eMMC标识信息作为反馈信息通过所述CMD端口进行反馈。
可选的,所述端口检测单元72具体用于:若接收到所述eMMC通过所述CMD端口输出eMMC标识信息,则将所述CMD端口和所述CLK端口均确定为使用正常的端口;否则,将所述CMD端口和所述CLK端口中至少一个端口确定为故障端口。
可选的,所述八个数据端口从最低位到最高位依次为:第一数据端口~第八数据端口;所述初始化单元71还用于:在所述通过所述CMD端口向所述eMMC发送第一指令之前,设置所述eMMC的数据宽度;所述端口检测单元72具体用于:通过与设置的数据宽度对应的数据端口读取所述存储空间所存储的二进制数值,比较所述写入的预设数值和读取出的数值,根据比较结果确定所述eMMC的时序并确定与设置的数据宽度对应的数据端口的通断。
可选的,所述端口检测单元72具体用于:对于任意一个数据端口,若写入的二进制数值和读取出的二进制数值相同,则将该数据端口确定为使用正常的数据端口;否则,将该数据端口确定为断路端口;对于任意两个相邻的数据端口,当写入其中一个数据端口的二进制数值与写入另一个数据端口的二进制数值不同时,分别比较写入的二进制数值与读取出的二进制数值是否相同,若相同,则将所述两个相邻的数据端口均确定为使用正常的数据端口,若不同,则所述两个相邻的数据端口中至少一个端口确定为短路的数据端口。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器,使得通过该计算机或其他可编程数据处理设备的处理器执行的指令可实现流程图中的一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图的一个流程或多个流程和/或方框图的一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种eMMC内嵌式存储器的检测方法,所述eMMC至少具有命令CMD端口、时钟CLK端口和八个数据端口,其特征在于,该方法包括:
设置所述eMMC的时钟频率,并通过所述CLK端口输入与设置的时钟频率相同频率的时钟信号;
通过所述CMD端口向所述eMMC发送第一指令,以指示所述eMMC根据所述第一指令所指示的内容,读取对应的寄存器所存储的eMMC标识信息,并将读取到的eMMC标识信息作为反馈信息通过所述CMD端口进行反馈,根据接收到的反馈信息,确定所述CMD端口和所述CLK端口的通断,其中,所述第一指令用于指示所述eMMC从eMMC标识信息所对应的寄存器中获取eMMC标识信息;
在确定所述CMD端口和所述CLK端口均为使用正常的端口后,擦除所述eMMC中的至少一个最小数据块,通过所述CMD端口向所述eMMC发送第二指令,用以向所述已擦除的数据块所对应的存储空间中写入预设数值;通过所述数据端口读取所述存储空间所存储的数值,比较所述写入的预设数值和读取出的数值,根据比较结果确定每个数据端口的通断。
2.如权利要求1所述的方法,其特征在于,所述确定所述CMD端口和所述CLK端口的通断,具体包括:
若接收到所述eMMC通过所述CMD端口输出eMMC标识信息,则将所述CMD端口和所述CLK端口均确定为使用正常的端口;否则,将所述CMD端口和所述CLK端口中至少一个端口确定为故障端口。
3.如权利要求1所述的方法,其特征在于,所述八个数据端口从最低位到最高位依次为:第一数据端口~第八数据端口;
在所述通过所述CMD端口向所述eMMC发送第一指令之前,还包括:
设置所述eMMC的数据宽度;
所述通过所述数据端口读取所述存储空间所存储的数值,比较所述写入的预设数值和读取出的数值,根据比较结果确定每个数据端口的通断,具体包括:
通过与设置的数据宽度对应的数据端口读取所述存储空间所存储的二进制数值,比较所述写入的预设数值和读取出的数值,根据比较结果确定所述eMMC的时序并确定与设置的数据宽度对应的数据端口的通断。
4.如权利要求1-3中任一项所述的方法,其特征在于,所述根据比较结果确定每个数据端口的通断,具体包括:
对于任意一个数据端口,若写入的二进制数值和读取出的二进制数值相同,则将该数据端口确定为使用正常的数据端口;否则,将该数据端口确定为断路端口;
对于任意两个相邻的数据端口,当写入其中一个数据端口的二进制数值与写入另一个数据端口的二进制数值不同时,分别比较写入的二进制数值与读取出的二进制数值是否相同,若相同,则将所述两个相邻的数据端口均确定为使用正常的数据端口,若不同,则所述两个相邻的数据端口中至少一个端口确定为短路的数据端口。
5.一种eMMC内嵌式存储器的检测装置,其特征在于,该装置包括:
初始化单元,用于设置所述eMMC的时钟频率,并通过CLK端口输入与设置的时钟频率相同频率的时钟信号;
端口检测单元,用于通过CMD端口向所述eMMC发送第一指令,以指示所述eMMC根据所述第一指令所指示的内容,读取对应的寄存器所存储的eMMC标识信息,并将读取到的eMMC标识信息作为反馈信息通过所述CMD端口进行反馈,根据接收到的反馈信息,确定所述CMD端口和所述CLK端口的通断;在确定所述CMD端口和所述CLK端口均为使用正常的端口后,擦除所述eMMC中的至少一个最小数据块,通过所述CMD端口向所述eMMC发送第二指令,用以向所述已擦除的数据块所对应的存储空间中写入预设数值;通过数据端口读取所述存储空间所存储的数值,比较所述写入的预设数值和读取出的数值,根据比较结果确定每个数据端口的通断,其中,所述第一指令用于指示所述eMMC从eMMC标识信息所对应的寄存器中获取eMMC标识信息。
6.如权利要求5所述的装置,其特征在于,所述端口检测单元具体用于:
若接收到所述eMMC通过所述CMD端口输出eMMC标识信息,则将所述CMD端口和所述CLK端口均确定为使用正常的端口;否则,将所述CMD端口和所述CLK端口中至少一个端口确定为故障端口。
7.如权利要求5所述的装置,其特征在于,所述数据端口从最低位到最高位依次为:第一数据端口~第八数据端口;
所述初始化单元还用于:在所述通过所述CMD端口向所述eMMC发送第一指令之前,设置所述eMMC的数据宽度;
所述端口检测单元具体用于:通过与设置的数据宽度对应的数据端口读取所述存储空间所存储的二进制数值,比较所述写入的预设数值和读取出的数值,根据比较结果确定所述eMMC的时序并确定与设置的数据宽度对应的数据端口的通断。
8.如权利要求5-7中任一项所述的装置,其特征在于,所述端口检测单元具体用于:
对于任意一个数据端口,若写入的二进制数值和读取出的二进制数值相同,则将该数据端口确定为使用正常的数据端口;否则,将该数据端口确定为断路端口;
对于任意两个相邻的数据端口,当写入其中一个数据端口的二进制数值与写入另一个数据端口的二进制数值不同时,分别比较写入的二进制数值与读取出的二进制数值是否相同,若相同,则将所述两个相邻的数据端口均确定为使用正常的数据端口,若不同,则所述两个相邻的数据端口中至少一个端口确定为短路的数据端口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410448288.9A CN104217768B (zh) | 2014-09-04 | 2014-09-04 | 一种eMMC内嵌式存储器的检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410448288.9A CN104217768B (zh) | 2014-09-04 | 2014-09-04 | 一种eMMC内嵌式存储器的检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104217768A CN104217768A (zh) | 2014-12-17 |
CN104217768B true CN104217768B (zh) | 2017-12-08 |
Family
ID=52099162
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410448288.9A Active CN104217768B (zh) | 2014-09-04 | 2014-09-04 | 一种eMMC内嵌式存储器的检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104217768B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105807637B (zh) * | 2014-12-31 | 2018-05-08 | 深圳市硅格半导体有限公司 | 存储卡量产模式的启动系统及方法 |
CN105183395A (zh) * | 2015-09-18 | 2015-12-23 | 四川效率源信息安全技术股份有限公司 | 手机储存芯片数据提取的方法 |
CN105788639B (zh) * | 2016-03-18 | 2019-08-06 | 西安电子科技大学 | 基于eMMC的雷达数据记录仪断电续存装置及续存方法 |
CN107390115B (zh) * | 2017-07-11 | 2020-01-31 | 苏州浪潮智能科技有限公司 | 批量检测raid存储器中IO的SC串口和MC串口的方法 |
CN107632914B (zh) * | 2017-09-22 | 2021-02-19 | 北京润科通用技术有限公司 | 一种emmc阵列的故障定位方法及系统 |
CN110289039B (zh) * | 2018-03-19 | 2021-07-27 | 北京兆易创新科技股份有限公司 | 一种eMMC的调试方法和装置 |
CN110648716A (zh) * | 2019-08-05 | 2020-01-03 | 广州妙存科技有限公司 | 一种基于SOC的免拆卸的eMMC调试方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458971A (zh) * | 2008-12-02 | 2009-06-17 | 炬力集成电路设计有限公司 | 一种嵌入式存储器的测试系统及测试方法 |
CN103280238A (zh) * | 2013-06-27 | 2013-09-04 | 山东量子科学技术研究院有限公司 | 基于FPGA的eMMC控制器及其工作方法 |
CN103943152A (zh) * | 2014-03-31 | 2014-07-23 | 西安华芯半导体有限公司 | 存储器的快速内建自测试系统及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101806807B1 (ko) * | 2010-11-08 | 2017-12-11 | 삼성전자주식회사 | 메모리 카드 |
KR101977663B1 (ko) * | 2012-09-14 | 2019-05-13 | 삼성전자주식회사 | 임베디드 멀티미디어 카드 디바이스 및 그 동작방법 |
-
2014
- 2014-09-04 CN CN201410448288.9A patent/CN104217768B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101458971A (zh) * | 2008-12-02 | 2009-06-17 | 炬力集成电路设计有限公司 | 一种嵌入式存储器的测试系统及测试方法 |
CN103280238A (zh) * | 2013-06-27 | 2013-09-04 | 山东量子科学技术研究院有限公司 | 基于FPGA的eMMC控制器及其工作方法 |
CN103943152A (zh) * | 2014-03-31 | 2014-07-23 | 西安华芯半导体有限公司 | 存储器的快速内建自测试系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104217768A (zh) | 2014-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104217768B (zh) | 一种eMMC内嵌式存储器的检测方法和装置 | |
US10437498B2 (en) | Electronic device configured to reset storage device non-directly connected to application processor among storage devices serially connected to one another and method of operating the same | |
CN101971152A (zh) | 提供器件参数 | |
CN1932789B (zh) | 利用usb和外设部件互连功能的增强ccid电路和系统 | |
US9026895B2 (en) | Flash memory controllers and error detection methods | |
CN104731746A (zh) | 设备控制器装置 | |
CN108304334A (zh) | 应用处理器和包括中断控制器的集成电路 | |
CN105320620B (zh) | 存储器存储装置及控制方法、存储器控制电路单元及模块 | |
KR100921852B1 (ko) | 전자 장치, 정보 처리 장치, 어댑터 장치 및 정보 교환 시스템 | |
CN109493910A (zh) | 微控制器及其操作方法以及具有该微控制器的存储系统 | |
CN101169755A (zh) | 无测试管脚接触式cpu卡测试方法 | |
CN106649158B (zh) | 通过i2c接口读写内部寄存器堆的装置及方法 | |
CN105573947B (zh) | 一种基于apb总线的sd/mmc卡控制方法 | |
CN109684258A (zh) | 一种信号处理装置及方法 | |
TWM592995U (zh) | 記憶卡的讀寫控制系統 | |
CN103150262B (zh) | 管道式串行接口闪存访问装置 | |
US11809737B2 (en) | Storage device for performing high-speed link startup and storage system including the same | |
CN107608927A (zh) | 一种支持全功能的lpc总线主机端口的设计方法 | |
CN101350000B (zh) | 串行外围接口闪存的操作电路及操作方法、一种存储设备 | |
CN107918577A (zh) | 一种bmc获取fpga卡温度信息的方法 | |
CN204272318U (zh) | Emmc治具和电视系统 | |
CN105068965A (zh) | 基于I2C总线的NAND Flash存储方法及系统 | |
TWM606415U (zh) | 記憶體儲存裝置的讀寫控制系統 | |
CN102446132B (zh) | 一种模拟本地总线进行板级管理的方法和装置 | |
CN105183395A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20180102 Address after: 529000 Tangxia Road, Pengjiang District, Guangdong, Hisense Avenue, No. 8 Patentee after: Guangdong Hisense Communications Co., Ltd. Address before: 266100 Zhuzhou Road, Laoshan District, Shandong, No. 151, No. Patentee before: Qingdao Hisense Electric Co., Ltd. |