CN106022406A - 读写sd卡的方法及装置 - Google Patents

读写sd卡的方法及装置 Download PDF

Info

Publication number
CN106022406A
CN106022406A CN201610331484.7A CN201610331484A CN106022406A CN 106022406 A CN106022406 A CN 106022406A CN 201610331484 A CN201610331484 A CN 201610331484A CN 106022406 A CN106022406 A CN 106022406A
Authority
CN
China
Prior art keywords
card
read
data
data block
written
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.)
Granted
Application number
CN201610331484.7A
Other languages
English (en)
Other versions
CN106022406B (zh
Inventor
赵卫东
胡伟
吴雄华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microgrid Union Technology Chengdu Co ltd
Original Assignee
Shenzhen Micro Grid Force Of Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Micro Grid Force Of Information Technology Co Ltd filed Critical Shenzhen Micro Grid Force Of Information Technology Co Ltd
Priority to CN201610331484.7A priority Critical patent/CN106022406B/zh
Publication of CN106022406A publication Critical patent/CN106022406A/zh
Application granted granted Critical
Publication of CN106022406B publication Critical patent/CN106022406B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K17/00Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种读写SD卡的方法,所述读写SD卡的方法包括以下步骤:通过模拟的SPI接口对所述SD卡进行初始化,其中,所述SPI接口采用基带芯片的GPIO接口模拟;在所述SD卡完成初始化后,对所述SD卡进行读/写操作。本发明还公开了一种读写SD卡的装置。本发明解决了采用了另加一个芯片的方案来实现SD卡的读写时,明显增加了硬件成本的问题。

Description

读写SD卡的方法及装置
技术领域
本发明涉及SD卡读写技术领域,尤其涉及一种读写SD卡的方法及装置。
背景技术
随着移动通讯技术的发展,手机的发展也日新月异,为降低企业成本以及提高竞争力,企业往往会开发成本较为低廉的系统,但成本较为低廉的系统则可能会导致一些功能无法实现,如现有的大部分低成本系统没有SPI接口只有GPIO接口,而GPIO接口无法实现与SD卡之间的通信,导致无法实现对SD卡的操作,例如MTK6223D系统。
为解决上述SD卡的读写操作的问题,通常采用了另外增加一个芯片的方案来实现SD卡的读写,但该种方案明显增加了硬件成本,导致成本较高。
发明内容
本发明的主要目的在于提供一种读写SD卡的方法及装置,旨在解决采用了另加一个芯片的方案来实现SD卡的读写时,明显增加了硬件成本的问题。
为实现上述目的,本发明提供的一种读写SD卡的方法,所述读写SD卡的方法包括以下步骤:
通过模拟的SPI接口对所述SD卡进行初始化,其中,所述SPI接口采用基带芯片的GPIO接口模拟;
在所述SD卡完成初始化后,对所述SD卡进行读/写操作。
可选地,所述对所述SD卡进行写操作的步骤包括:
通过所述SPI接口发送写操作命令至所述SD卡;
在所述SPI接口接收到所述SD卡基于所述写操作命令反馈的响应数据,且所述响应数据为预设值时,将待写入数据中的待写入数据块经SPI接口写入所述SD卡中;
在将所述待写入数据块写入所述SD卡后,将所述待写入数据中当前写入的数据块的下一数据块作为待写入数据块;
继续执行所述通过所述SPI接口发送写操作命令至所述SD卡的步骤,直至将所述待写入数据的所有数据块写入所述SD卡中。
可选地,所述将待写入数据中的待写入数据块经SPI接口写入所述SD卡中的步骤之后,还包括:
接收所述SD卡的响应应答命令;
在所述响应应答命令正确时,执行所述将所述待写入数据中当前写入的数据块的下一数据块作为待写入数据块的步骤;
在所述响应应答命令不正确时,将所述待写入数据中当前写入的数据块继续作为待写入数据块,并继续执行所述通过所述SPI接口发送写操作命令至所述SD卡的步骤。
可选地,所述对所述SD卡进行读操作的步骤包括:
通过所述SPI接口发送读操作命令至所述SD卡;
在所述SPI接口接收到所述SD卡基于所述读操作命令反馈的响应数据,且所述响应数据为预设值时,经所述SPI接口从所述SD卡中读取待读取数据的待读取数据块;
在读取到所述待读取数据块后,将所述待读取数据中当前读取的数据块的下一数据块作为待读取数据块;
继续执行所述通过所述SPI接口发送读操作命令至所述SD卡的步骤,直至读取完所述待读取数据的所有数据块。
可选地,所述将所述待读取数据中当前读取的数据块的下一数据块作为待读取数据的步骤之前,还包括:
在读取到所述待读取数据块后,判断所述待读取数据块中的校验码是否正确;
若所述校验码正确,则执行所述将所述待读取数据中当前读取的数据块的下一数据块作为待读取数据块的步骤;
所述判断所述待读取数据块中的校验码是否正确的步骤之后,所述读写SD卡的方法还包括步骤:
若所述校验码不正确,将所述待读取数据中当前读取的数据块继续作为待读取数据块,并继续执行所述通过所述SPI接口发送写操作命令至所述SD卡的步骤。
此外,为实现上述目的,本发明还提供一种读写SD卡的装置,所述读写SD卡的装置包括:
初始化模块,用于通过模拟的SPI接口对所述SD卡进行初始化,其中,所述SPI接口采用基带芯片的GPIO接口模拟;
读写模块,用于在所述SD卡完成初始化后,对所述SD卡进行读/写操作。
可选地,所述读写模块包括:
发送单元,用于通过所述SPI接口发送写操作命令至所述SD卡;
写入单元,用于在所述SPI接口接收到所述SD卡基于所述写操作命令反馈的响应数据,且所述响应数据为预设值时,将待写入数据中的待写入数据块经SPI接口写入所述SD卡中;
作为单元,用于在将所述待写入数据块写入所述SD卡后,将所述待写入数据中当前写入的数据块的下一数据块作为待写入数据块;
所述发送单元,还用于继续通过所述SPI接口发送写操作命令至所述SD卡,直至将所述待写入数据的所有数据块写入所述SD卡中。
可选地,所述读写模块还包括:
接收单元,用于接收所述SD卡的响应应答命令;
所述作为单元,还用于在所述响应应答命令正确时,将所述待写入数据中当前写入的数据块的下一数据块作为待写入数据块;
所述发送单元,还用于在所述响应应答命令不正确时,将所述待写入数据中当前写入的数据块继续作为待写入数据块,并继续通过所述SPI接口发送写操作命令至所述SD卡。
可选地,所述读写模块还包括:
所述发送单元,还用于通过所述SPI接口发送读操作命令至所述SD卡;
读取单元,用于在所述SPI接口接收到所述SD卡基于所述读操作命令反馈的响应数据,且所述响应数据为预设值时,经所述SPI接口从所述SD卡中读取待读取数据的待读取数据块;
所述作为单元,还用于在读取到所述待读取数据块后,将所述待读取数据中当前读取的数据块的下一数据块作为待读取数据块;
所述发送单元,还用于继续通过所述SPI接口发送读操作命令至所述SD卡,直至读取完所述待读取数据的所有数据块。
可选地,所述读写模块还包括:
判断单元,用于在读取到所述待读取数据块后,判断所述待读取数据块中的校验码是否正确;
所述作为单元,还用于若所述校验码正确,则将所述待读取数据中当前读取的数据块的下一数据块作为待读取数据块;
所述发送单元,还用于若所述校验码不正确,将所述待读取数据中当前读取的数据块继续作为待读取数据块,并继续通过所述SPI接口发送写操作命令至所述SD卡。
本发明将终端基带芯片的GPIO接口模拟为SPI接口,并通过模拟的SPI接口对所述SD卡进行初始化,在所述SD卡完成初始化后,通过模拟的SPI接口对SD卡进行读写操作,仅需要通过软件程序实现,而不需要增加额外的硬件芯片,降低了硬件成本。
附图说明
图1为本发明读写SD卡的方法的第一实施例的流程示意图;
图2为本发明读写SD卡的方法的第二实施例的流程示意图;
图3为本发明读写SD卡的方法的第三实施例的流程示意图;
图4为本发明读写SD卡的方法的第四实施例的流程示意图;
图5为本发明读写SD卡的方法的第五实施例的流程示意图;
图6为本发明读写SD卡的装置的第一实施例的功能模块示意图;
图7为本发明读写SD卡的装置的第二实施例的功能模块示意图;
图8为本发明读写SD卡的装置的第三实施例的功能模块示意图;
图9为本发明读写SD卡的装置的第四实施例的功能模块示意图;
图10为本发明读写SD卡的装置的第五实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
上述问题,本发明提供一种读写SD卡的方法。
参照图1,图1为本发明读写SD卡的方法的第一实施例的流程示意图。
在本实施例中,所述读写SD卡的方法包括:
步骤S10,通过模拟的SPI接口对所述SD卡进行初始化,其中,所述SPI接口采用基带芯片的GPIO接口模拟;
在本实施例中,由于现有的大部分低成本系统由于仅具有GPIO接口,而GPIO接口无法实现与SD卡之间的通信,以MTK6223D系统为例。使用MTK6223D系统的终端的基带芯片中不存在SPI接口,使得所述终端不支持SD卡的读写功能,然而可以采用所述基带芯片的GPIO接口模拟所述SPI接口的方式以实现对SD卡的读写功能的支持。比如,通过将SD卡的输出端、输入端、片选端和时钟信号端分别连接至所述基带芯片的GPIO接口,然后对照SPI传输模式的时序图使用软件的方式来模拟SPI传输模式的时序。具体的,由于SD的命令、数据传输等,全部都是SPI传输模式的时序图来传输,因此,可以通过控制GPIO接口的拉低、拉高来模拟SPI传输模式的时序,从而进行数据的传输,交互。
在通过软件的方式将基带芯片的GPIO接口模拟所述SPI接口后,主机,即基带芯片通过模拟的SPI接口对SD卡进行初始化,具体的初始化流程主要包括以下步骤:
步骤1、发送74个时钟周期;
步骤2、发送复位命令,指令为CMD0;
步骤3、如果SD卡在接收到复位命令时,片选端低电平有效,则进入SPI模式;
步骤4、发送激活命令,指令为CMD1;
步骤5、接收SD卡响应;
步骤6、判断响应命令的bit0是否为‘0’;
步骤7、若bit0=0,则初始化完成。
在SD卡初始化完成后,主机可以通过CMD55指令和CMD41指令判断当前电压是否在工作范围内,还可以通过CMD10指令读取SD寄存器,通过CMD16指令设置读取接收block(块)的长度,通过CMD9指令读取卡的CSD寄存器,从所述CSD寄存器中,主机(基带芯片)可以获取到卡的容量,支持的命令等重要参数。
步骤S20,在所述SD卡完成初始化后,对所述SD卡进行读/写操作。
在SD卡完成初始化后,主机可以将数据写入SD卡中,或者将数据从SD卡中读取出来,即对所述SD卡进行读/写操作。若要将数据写入SD卡中,则可以通过所述SPI接口发送写操作命令至所述SD卡来实现,所述写操作命令包括单块写操作命令与多块写操作命令,所述单块写操作命令为将单个数据块写入SD中发送的命令,所述多块写操作命令为将多个数据块写入SD卡中发送的命令,即若待写入数据包括多个数据块,则首先发送单块写操作命令,进行数据写入操作,然后发送多块写操作命令,以便将剩余的数据块写入SD卡中。在本实施例中,所述单块写操作命令可以为CMD24,所述多块写操作命令为CMD25。
在SD卡完成初始化后,若要将数据写从SD卡中读取出来,则可以通过所述SPI接口发送读操作命令至所述SD卡来实现,所述读操作命令包括单块读操作命令与多块读操作命令,所述单块读操作命令为将单个数据块从所述SD中读取出来的命令,所述多块读操作命令为将多个数据块从所述SD中读取出来的命令,即若待读取数据包括多个数据块,则首先发送单块读操作命令,进行数据读取操作,然后发送多块读操作命令,以便将剩余的数据块从所述SD中读取出来。在本实施例中,所述单块读操作命令可以为CMD17,所述多块读操作命令为CMD18。
本发明将终端基带芯片的GPIO接口模拟为SPI接口,并通过模拟的SPI接口对所述SD卡进行初始化,在所述SD卡完成初始化后,通过模拟的SPI接口对SD卡进行读写操作,仅需要通过软件程序实现,而不需要增加额外的硬件芯片,降低了硬件成本。
参照图2,图2为本发明读写SD卡的方法的第二实施例的流程示意图。基于上述方法的第一实施例提出本发明的第二实施例,在本实施例中,所述对所述SD卡进行写操作的步骤包括:
步骤S21,通过所述SPI接口发送写操作命令至所述SD卡;
步骤S22,在所述SPI接口接收到所述SD卡基于所述写操作命令反馈的响应数据,且所述响应数据为预设值时,将待写入数据中的待写入数据块经SPI接口写入所述SD卡中;
步骤S23,在将所述待写入数据块写入所述SD卡后,将所述待写入数据中当前写入的数据块的下一数据块作为待写入数据块;
由于SD卡读写都是通过发送CMD命令与通过接收响应应答来实现的,因此,在SD卡完成初始化后,主机若需要对SD卡进行写操作,则需要通过所述SPI接口发送写操作命令至所述SD卡,根据SD卡的传输协议,可以通过所述SPI接口发送单块写操作命令,比如,CMD24命令,具体的,可以通过如下相关函数实现:
kal_uint32SD_Write_One_Block(kal_uint32address,kal_uint32*txbuffer)。
SD卡在接收到主机发送的写操作命令后,会对所述读操作命令进行响应,响应数据以返回值的形式,该响应数据可以为‘0’,‘1’等,主机在接收到SD卡反馈的响应的数据后,会判断响应的数据是否为预设值,比如,所述预设值为‘0’,若主机接收到SD卡响应的数据为预设值,则会将待写入数据写入SD卡中。主机在将待写入数据写入SD卡中时,是以数据块为单位进行的,即每次在接收到SD卡基于所述写操作命令反馈的正确的响应数据后,只能将待写入数据中的一个待写入数据块经SPI接口写入所述SD卡中,因此,为了将待写入数据的剩下的数据块写入SD卡中,在将所述待写入数据块写入所述SD卡后,需要将待写入数据中当前写入的数据块的下一数据块作为待写入数据块,然后继续执行步骤S21,即通过所述SPI接口发送写操作命令至所述SD卡,以便将当前写入的数据块的下一数据块写入SD卡中,直至将待写入数据的所有数据块写入所述SD卡中时,才不需要通过所述SPI接口发送写操作命令至所述SD卡。需要说明的是,根据SD卡的传输协议,主机在将待写入数据的下一个数据块写入SD卡中时,通过所述SPI接口发送的写操作命令应为多块写操作命令,比如CMD25命令,具体的,可以通过如下相关函数实现:
kal_uint32SD_Write_Multi_Blocks(kal_uint32address,kal_uint32*txbuffer,kal_uint8blocks)。
进一步地,主机在将待写入数据的所有数据块都写入SD卡中后,可以发送停止命令停止写操作,在本实施例中,所述停止命令可以为CMD12。
进一步地,参照图3,图3为本发明读写SD卡的方法的第三实施例的流程示意图。基于上述方法的第二实施例提出本发明的第三实施例,在本实施例中,所述将待写入数据中的待写入数据块经SPI接口写入所述SD卡中的步骤之后,还包括:
步骤S24,接收所述SD卡的响应应答命令;
由于采用的是软件的方式模拟SPI接口与SD卡进行通讯,考虑到GPIO接口可能受到干扰而引起数据的读写错误,比如,在对SD卡进行读或写操作的过程中,接收到另一终端的通话请求,由于通话功能的任务优先级高于采用软件的方式模拟SPI接口与SD卡进行通讯的任务优先级,因此,在接收到另一终端的通话请求后,会中断模拟SPI接口与SD卡进行通讯的软件的运行,从而出现挂起状态,引起数据的读写错误。因此,为了解决GPIO接口可能受到干扰而引起数据的读写错误,可以在每次将数据块写入所述SD卡后,接收SD卡返回的响应应答命令,在本实施例中,所述响应应答命令为一个字节长度,具体为0x05,在本发明的其他实施例中,所述响应应答命令也可以为其他值,在本实施中,不做限定。主机在接收到SD卡的响应应答命令后,会判断所述响应应答命令是否正确,若所述响应应答命令正确,则表明当前写入的数据块没有出错,若所述响应应答命令不正确,则表明当前写入的数据块出错。若确定所述响应应答命令正确时,则执行步骤S23,即将所述待写入数据中当前写入的数据块的下一数据块作为待写入数据块;若确定所述响应应答命令不正确,则需要将当前写入的数据块进行重新写入SD卡中,具体的,可以通过将所述待写入数据中当前写入的数据块继续作为待写入数据块,然后再执行步骤S21,即通过所述SPI接口发送写操作命令至所述SD卡,以重新对该待写入数据块进行写操作,其中,本次发送的写操作命令为单块写操作命令。
本实施例通过在每次将待写入数据块写入所述SD卡后,接收SD卡的响应应答命令,以确定所述待写入数据块是否写入正确,从而提高写入数据的准确率。
进一步地,参照图4,图4为本发明读写SD卡的方法的第四实施例的流程示意图。基于上述方法的任一实施例提出本发明的第四实施例,在本实施例中,所述对所述SD卡进行读操作的步骤包括:
步骤S25,通过所述SPI接口发送读操作命令至所述SD卡;
步骤S26,在所述SPI接口接收到所述SD卡基于所述读操作命令反馈的响应数据,且所述响应数据为预设值时,经所述SPI接口从所述SD卡中读取待读取数据的待读取数据块;
步骤S27,在读取到所述待读取数据块后,将所述待读取数据中当前读取的数据块的下一数据块作为待读取数据块。
由于SD卡读写都是通过发送CMD命令与通过接收响应应答来实现的,因此,在SD卡完成初始化后,主机若需要对SD卡进行读操作,则需要通过所述SPI接口发送读操作命令至所述SD卡,根据SD卡的传输协议,可以通过所述SPI接口发送单块写操作命令,比如,CMD17命令,具体的,可以通过如下相关函数实现:
kal_uint32SD_Read_One_Block(kal_uint32data_adrs,kal_uint32*rxbuffer)。
SD卡在接收到主机发送的读操作命令后,也会对所述读操作命令进行响应,响应数据包括针对所述读操作命令的返回值,以及起始令牌,该返回值可以为‘0’,‘1’等,主机在接收到SD卡的返回值,会判断该返回值是否为预设值,比如,所述预设值为‘0’,若主机接收到SD卡的返回值为预设值,则会继续读取SD卡返回的起始令牌,并判断该返回的起始令牌是否正确,在本实施例中,若所述返回的起始令牌为0XFE时,表明起始令牌正确,主机随后会将对所述SD卡进行写操作,若所述返回的起始令牌不为0XFE时,不对所述SD卡进行写操作节。主机在将待读取数据从SD卡中读取出来时,也是以数据块为单位进行的,即每次在接收到SD卡基于所述读操作命令反馈的正确的响应数据后,只能经所述SPI接口从所述SD卡中读取一个待读取数据块,因此,为了将待读取数据的剩下的数据块从SD卡读取出来中,在读取到所述待读取数据块后,需要将所述待读取数据中当前读取的数据块的下一数据块作为待读取数据块,然后继续执行步骤S25,即通过所述SPI接口发送读操作命令至所述SD卡,以便将当前读取的数据块的下一数据块从SD卡中读取出来,直至将所述待读取数据的所有数据块从所述SD卡中读取出来时,才不需要通过所述SPI接口发送读操作命令至所述SD卡。需要说明的是,根据SD卡的传输协议,主机在将待读取数据的下一个数据块从SD卡中读取出来时,通过所述SPI接口发送的读操作命令应为多块读操作命令,比如CMD18命令,具体的,可以通过如下相关函数实现:
kal_uint32SD_Read_Multi_Blocks(kal_uint32data_adrs,kal_uint32*rxbuffer,kal_uint8sectors)。
进一步地,主机在待读取数据的所有数据块都从SD卡中读取出来后,可以发送停止命令停止读操作,在本实施例中,所述停止命令为CMD12。可以通过如下函数实现停止命令的发送:
kal_uint32SD_Write_One_Block(kal_uint32address,kal_uint32*txbuffer)。
进一步地,参照图5,图5为本发明读写SD卡的方法的第五实施例的流程示意图。基于上述方法的第四实施例提出本发明的第五实施例,在本实施例中,所述将所述待读取数据中当前读取的数据块的下一数据块作为待读取数据的步骤之前,还包括:
步骤S28,在读取到所述待读取数据块后,判断所述待读取数据块中的校验码是否正确。
由于采用的是软件的方式模拟SPI接口与SD卡进行通讯,考虑到GPIO接口可能受到干扰而引起数据的读写错误,比如,在对SD卡进行读或写操作的过程中,接收到另一终端的通话请求,由于通话功能的任务优先级高于采用软件的方式模拟SPI接口与SD卡进行通讯的任务优先级,因此,在接收到另一终端的通话请求后,会中断模拟SPI接口与SD卡进行通讯的软件的运行,从而出现挂起状态,引起数据的读写错误。因此,为了解决GPIO接口可能受到干扰而引起数据的读写错误,可以在每次读取到所述待读取数据块后,判断所述待读取数据块中的校验码是否正确,具体的,可以通过所述待读取数据块中的数据按照预设的校验算法生成校验码,然后将生成的校验码与所述待读取数据块中的校验码进行比较,以判断校验码是否正确,若生成的校验码与读取的校验码不相同,则表明本次读取操作出错,若生成的校验码与所述待读取数据块中的校验码相同,则表明本次读取操作未出错。若确定所述校验码正确时,则执行步骤S27,即将所述待读取数据中当前读取的数据块的下一数据块作为待读取数据块;若确定所述校验码不正确,则需要将当前读取的数据块重新从SD卡中读取出来,具体的,可以通过将所述待读取数据中当前读取的数据块继续作为待读取数据块,然后再执行步骤S25,即通过所述SPI接口发送写操作命令至所述SD卡,以重新对该待读取数据块进行读取操作,其中,本次发送的读操作命令为单块读操作命令。
本实施例在每次将待读取数据块从所述SD卡读取后,通过判断校验码是否正确的方式来确定对所述待读取数据块的读取是否正确,从而提高读取数据的准确率。
本发明进一步提供一种读写SD卡装置。
参照图6,图6为本发明读写SD卡装置的第一实施例的功能模块示意图。
在本实施例中,所述读写SD卡的装置包括:初始化模块10及读写模块20。
所述初始化模块10,用于通过模拟的SPI接口对所述SD卡进行初始化,其中,所述SPI接口采用基带芯片的GPIO接口模拟;
在本实施例中,由于现有的大部分低成本系统由于仅具有GPIO接口,而GPIO接口无法实现与SD卡之间的通信,以MTK6223D系统为例。使用MTK6223D系统的终端的基带芯片中不存在SPI接口,使得所述终端不支持SD卡的读写功能,然而可以采用所述基带芯片的GPIO接口模拟所述SPI接口的方式以实现对SD卡的读写功能的支持。比如,通过将SD卡的输出端、输入端、片选端和时钟信号端分别连接至所述基带芯片的GPIO接口,然后对照SPI传输模式的时序图使用软件的方式来模拟SPI传输模式的时序。具体的,由于SD的命令、数据传输等,全部都是SPI传输模式的时序图来传输,因此,可以通过控制GPIO接口的拉低、拉高来模拟SPI传输模式的时序,从而进行数据的传输,交互。
在通过软件的方式将基带芯片的GPIO接口模拟所述SPI接口后,主机,即基带芯片通过模拟的SPI接口对SD卡进行初始化,具体的初始化流程主要包括以下步骤:
步骤1、发送74个时钟周期;
步骤2、发送复位命令,指令为CMD0;
步骤3、如果SD卡在接收到复位命令时,片选端低电平有效,则进入SPI模式;
步骤4、发送激活命令,指令为CMD1;
步骤5、接收SD卡响应;
步骤6、判断响应命令的bit0是否为‘0’;
步骤7、若bit0=0,则初始化完成。
在SD卡初始化完成后,主机可以通过CMD55指令和CMD41指令判断当前电压是否在工作范围内,还可以通过CMD10指令读取SD寄存器,通过CMD16指令设置读取接收block(块)的长度,通过CMD9指令读取卡的CSD寄存器,从所述CSD寄存器中,主机(基带芯片)可以获取到卡的容量,支持的命令等重要参数。
所述读写模块20,用于在所述SD卡完成初始化后,对所述SD卡进行读/写操作。
在SD卡完成初始化后,主机可以将数据写入SD卡中,或者将数据从SD卡中读取出来,即对所述SD卡进行读/写操作。若要将数据写入SD卡中,则可以通过所述SPI接口发送写操作命令至所述SD卡来实现,所述写操作命令包括单块写操作命令与多块写操作命令,所述单块写操作命令为将单个数据块写入SD中发送的命令,所述多块写操作命令为将多个数据块写入SD卡中发送的命令,即若待写入数据包括多个数据块,则首先发送单块写操作命令,进行数据写入操作,然后发送多块写操作命令,以便将剩余的数据块写入SD卡中。在本实施例中,所述单块写操作命令可以为CMD24,所述多块写操作命令为CMD25。
在SD卡完成初始化后,若要将数据写从SD卡中读取出来,则可以通过所述SPI接口发送读操作命令至所述SD卡来实现,所述读操作命令包括单块读操作命令与多块读操作命令,所述单块读操作命令为将单个数据块从所述SD中读取出来的命令,所述多块读操作命令为将多个数据块从所述SD中读取出来的命令,即若待读取数据包括多个数据块,则首先发送单块读操作命令,进行数据读取操作,然后发送多块读操作命令,以便将剩余的数据块从所述SD中读取出来。在本实施例中,所述单块读操作命令可以为CMD17,所述多块读操作命令为CMD18。
本发明将终端基带芯片的GPIO接口模拟为SPI接口,并通过模拟的SPI接口对所述SD卡进行初始化,在所述SD卡完成初始化后,通过模拟的SPI接口对SD卡进行读写操作,仅需要通过软件程序实现,而不需要增加额外的硬件芯片,降低了硬件成本。
进一步地,参照图7,图7为本发明读写SD卡的装置的第二实施例的功能模块示意图,基于上述装置第一实施例提出本发明的第二实施例,在本实施例中,所述读写模块20包括:发送单元21、写入单元22及作为单元23。
所述发送单元21,用于通过所述SPI接口发送写操作命令至所述SD卡;
所述写入单元22,用于在所述SPI接口接收到所述SD卡基于所述写操作命令反馈的响应数据,且所述响应数据为预设值时,将待写入数据中的待写入数据块经SPI接口写入所述SD卡中;
所述作为单元23,还用于在将所述待写入数据块写入所述SD卡后,将所述待写入数据中当前写入的数据块的下一数据块作为待写入数据块;
所述发送单元21,还用于继续通过所述SPI接口发送写操作命令至所述SD卡,直至将所述待写入数据的所有数据块写入所述SD卡中。
由于SD卡读写都是通过发送CMD命令与通过接收响应应答来实现的,因此,在SD卡完成初始化后,主机若需要对SD卡进行写操作,则需要通过所述SPI接口发送写操作命令至所述SD卡,,根据SD卡的传输协议,可以通过所述SPI接口发送单块写操作命令,比如,CMD24命令,具体的,可以通过如下相关函数实现:
kal_uint32SD_Write_One_Block(kal_uint32address,kal_uint32*txbuffer)。
SD卡在接收到主机发送的写操作命令后,会对所述读操作命令进行响应,响应数据以返回值的形式,该响应数据可以为‘0’,‘1’等,主机在接收到SD卡反馈的响应的数据后,会判断响应的数据是否为预设值,比如,所述预设值为‘0’,若主机接收到SD卡响应的数据为预设值,则会将待写入数据写入SD卡中。主机在将待写入数据写入SD卡中时,是以数据块为单位进行的,即每次在接收到SD卡基于所述写操作命令反馈的正确的响应数据后,只能将待写入数据中的一个待写入数据块经SPI接口写入所述SD卡中,因此,为了将待写入数据的剩下的数据块写入SD卡中,在将所述待写入数据块写入所述SD卡后,需要将待写入数据中当前写入的数据块的下一数据块作为待写入数据块,然后继续通过所述SPI接口发送写操作命令至所述SD卡,以便将当前写入的数据块的下一数据块写入SD卡中,直至将待写入数据的所有数据块写入所述SD卡中时,才不需要通过所述SPI接口发送写操作命令至所述SD卡。需要说明的是,根据SD卡的传输协议,主机在将待写入数据的下一个数据块写入SD卡中时,通过所述SPI接口发送的写操作命令应为多块写操作命令,比如CMD25命令,具体的,可以通过如下相关函数实现:
kal_uint32SD_Write_Multi_Blocks(kal_uint32address,kal_uint32*txbuffer,kal_uint8blocks)。
进一步地,主机在将待写入数据的所有数据块都写入SD卡中后,可以发送停止命令停止写操作,在本实施例中,所述停止命令为CMD12。
进一步地,参照图8,图8为本发明读写SD卡的装置的第三实施例的功能模块示意图,基于上述装置的第二实施例提出本发明的第三实施例,在本实施例中,所述读写模块20还包括:接收单元24。
所述接收单元24,用于接收所述SD卡的响应应答命令;
所述作为单元23,还用于在所述响应应答命令正确时,将所述待写入数据中当前写入的数据块的下一数据块作为待写入数据块;
所述发送单元21,还用于在所述响应应答命令不正确时,将所述待写入数据中当前写入的数据块继续作为待写入数据块,并继续通过所述SPI接口发送写操作命令至所述SD卡,直至将所述待写入数据的所有数据块写入所述SD卡中。
由于采用的是软件的方式模拟SPI接口与SD卡进行通讯,考虑到GPIO接口可能受到干扰而引起数据的读写错误,比如,在对SD卡进行读或写操作的过程中,接收到另一终端的通话请求,由于通话功能的任务优先级高于采用软件的方式模拟SPI接口与SD卡进行通讯的任务优先级,因此,在接收到另一终端的通话请求后,会中断模拟SPI接口与SD卡进行通讯的软件的运行,从而出现挂起状态,引起数据的读写错误。。因此,为了解决GPIO接口可能受到干扰而引起数据的读写错误,可以在每次将数据块写入所述SD卡后,接收SD卡返回的响应应答命令,在本实施例中,所述响应应答命令为一个字节长度,具体为0x05,在本发明的其他实施例中,所述响应应答命令也可以为其他值,在本实施中,不做限定。主机在接收到SD卡的响应应答命令后,会判断所述响应应答命令是否正确,若所述响应应答命令正确,则表明当前写入的数据块没有出错,若所述响应应答命令不正确,则表明当前写入的数据块出错。若确定所述响应应答命令正确时,则将所述待写入数据中当前写入的数据块的下一数据块作为待写入数据块;若确定所述响应应答命令不正确,则需要将当前写入的数据块进行重新写入SD卡中,具体的,可以通过将所述待写入数据中当前写入的数据块继续作为待写入数据块,然后再通过所述SPI接口发送写操作命令至所述SD卡,以重新对该待写入数据块进行写操作,其中,本次发送的写操作命令为单块写操作命令。
本实施例通过在每次将待写入数据块写入所述SD卡后,接收SD卡的响应应答命令,以确定所述待写入数据块是否写入正确,从而提高写入数据的准确率。
进一步地,参照图9,图9为本发明读写SD卡的装置的第四实施例的功能模块示意图,基于上述装置的第二或第三实施例提出本发明的第四实施例,在本实施例中,所述读写模块20还包括:读取单元25。
所述发送单元21,还用于通过所述SPI接口发送读操作命令至所述SD卡;
所述读取单元25,用于在所述SPI接口接收到所述SD卡基于所述读操作命令反馈的响应数据,且所述响应数据为预设值时,经所述SPI接口从所述SD卡中读取待读取数据的待读取数据块;
所述作为单元23,还用于在读取到所述待读取数据块后,将所述待读取数据中当前读取的数据块的下一数据块作为待读取数据块;
所述发送单元21,还用于继续通过所述SPI接口发送读操作命令至所述SD卡。
由于SD卡读写都是通过发送CMD命令与通过接收响应应答来实现的,因此,在SD卡完成初始化后,主机若需要对SD卡进行读操作,则需要通过所述SPI接口发送读操作命令至所述SD卡,,根据SD卡的传输协议,可以通过所述SPI接口发送单块写操作命令,比如,CMD17命令,具体的,可以通过如下相关函数实现:
kal_uint32SD_Read_One_Block(kal_uint32data_adrs,kal_uint32*rxbuffer)。
SD卡在接收到主机发送的读操作命令后,也会对所述读操作命令进行响应,响应数据包括针对所述读操作命令的返回值,以及起始令牌,该返回值可以为‘0’,‘1’等,主机在接收到SD卡的返回值,会判断该返回值是否为预设值,比如,所述预设值为‘0’,若主机接收到SD卡的返回值为预设值,则会继续读取SD卡返回的起始令牌,并判断该返回的起始令牌是否正确,在本实施例中,若所述返回的起始令牌为0XFE时,表明起始令牌正确,主机随后会将对所述SD卡进行写操作,若所述返回的起始令牌不为0XFE时,不对所述SD卡进行写操作节。主机在将待读取数据从SD卡中读取出来时,也是以数据块为单位进行的,即每次在接收到SD卡基于所述读操作命令反馈的正确的响应数据后,只能经所述SPI接口从所述SD卡中读取一个待读取数据块,因此,为了将待读取数据的剩下的数据块从SD卡读取出来中,在读取到所述待读取数据块后,需要将所述待读取数据中当前读取的数据块的下一数据块作为待读取数据块,然后继续通过所述SPI接口发送读操作命令至所述SD卡,以便将当前读取的数据块的下一数据块从SD卡中读取出来,直至将所述待读取数据的所有数据块从所述SD卡中读取出来时,才不需要通过所述SPI接口发送读操作命令至所述SD卡。需要说明的是,根据SD卡的传输协议,主机在将待读取数据的下一个数据块从SD卡中读取出来时,通过所述SPI接口发送的读操作命令应为多块读操作命令,比如CMD18命令,具体的,可以通过如下相关函数实现:
kal_uint32SD_Read_Multi_Blocks(kal_uint32data_adrs,kal_uint32*rxbuffer,kal_uint8sectors)。
进一步地,主机在待读取数据的所有数据块都从SD卡中读取出来后,可以发送停止命令停止读操作,在本实施例中,所述停止命令为CMD12。可以通过如下函数实现停止命令的发送:
进一步地,参照图10,图10为本发明读写SD卡的装置的第无实施例的功能模块示意图,基于上述装置的第四实施例提出本发明的第五实施例,在本实施例中,所述读写模块20还包括:判断单元26。
所述判断单元26,用于在读取到所述待读取数据块后,判断所述待读取数据块中的校验码是否正确;
所述作为单元23,还用于若所述校验码正确,则将所述待读取数据中当前读取的数据块的下一数据块作为待读取数据块;
所述发送单元21,还用于若所述校验码不正确,将所述待读取数据中当前读取的数据块继续作为待读取数据块,并继续通过所述SPI接口发送写操作命令至所述SD卡。
由于采用的是软件的方式模拟SPI接口与SD卡进行通讯,考虑到GPIO接口可能受到干扰而引起数据的读写错误,比如,在对SD卡进行读或写操作的过程中,接收到另一终端的通话请求,由于通话功能的任务优先级高于采用软件的方式模拟SPI接口与SD卡进行通讯的任务优先级,因此,在接收到另一终端的通话请求后,会中断模拟SPI接口与SD卡进行通讯的软件的运行,从而出现挂起状态,引起数据的读写错误。因此,为了解决GPIO接口可能受到干扰而引起数据的读写错误,可以在每次读取到所述待读取数据块后,判断所述待读取数据块中的校验码是否正确,具体的,可以通过所述待读取数据块中的数据按照预设的校验算法生成校验码,然后将生成的校验码与所述待读取数据块中的校验码进行比较,以判断校验码是否正确,若生成的校验码与读取的校验码不相同,则表明本次读取操作出错,若生成的校验码与所述待读取数据块中的校验码相同,则表明本次读取操作未出错。若确定所述校验码正确时,则将所述待读取数据中当前读取的数据块的下一数据块作为待读取数据块;若确定所述校验码不正确,则需要将当前读取的数据块重新从SD卡中读取出来,具体的,可以通过将所述待读取数据中当前读取的数据块继续作为待读取数据块,然后再通过所述SPI接口发送写操作命令至所述SD卡,以重新对该待读取数据块进行读取操作。
本实施例在每次将待读取数据块从所述SD卡读取后,通过判断校验码是否正确的方式来确定对所述待读取数据块的读取是否正确,从而提高读取数据的准确率。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种读写SD卡的方法,其特征在于,所述读写SD卡的方法包括以下步骤:
通过模拟的SPI接口对所述SD卡进行初始化,其中,所述SPI接口采用基带芯片的GPIO接口模拟;
在所述SD卡完成初始化后,对所述SD卡进行读/写操作。
2.如权利要求1所述的读写SD卡的方法,其特征在于,所述对所述SD卡进行写操作的步骤包括:
通过所述SPI接口发送写操作命令至所述SD卡;
在所述SPI接口接收到所述SD卡基于所述写操作命令反馈的响应数据,且所述响应数据为预设值时,将待写入数据中的待写入数据块经SPI接口写入所述SD卡中;
在将所述待写入数据块写入所述SD卡后,将所述待写入数据中当前写入的数据块的下一数据块作为待写入数据块;
继续执行所述通过所述SPI接口发送写操作命令至所述SD卡的步骤,直至将所述待写入数据的所有数据块写入所述SD卡中。
3.如权利要求2所述的读写SD卡的方法,其特征在于,所述将待写入数据中的待写入数据块经SPI接口写入所述SD卡中的步骤之后,还包括:
接收所述SD卡的响应应答命令;
在所述响应应答命令正确时,执行所述将所述待写入数据中当前写入的数据块的下一数据块作为待写入数据块的步骤;
在所述响应应答命令不正确时,将所述待写入数据中当前写入的数据块继续作为待写入数据块,并继续执行所述通过所述SPI接口发送写操作命令至所述SD卡的步骤。
4.如权利要求1所述的读写SD卡的方法,其特征在于,所述对所述SD卡进行读操作的步骤包括:
通过所述SPI接口发送读操作命令至所述SD卡;
在所述SPI接口接收到所述SD卡基于所述读操作命令反馈的响应数据,且所述响应数据为预设值时,经所述SPI接口从所述SD卡中读取待读取数据的待读取数据块;
在读取到所述待读取数据块后,将所述待读取数据中当前读取的数据块的下一数据块作为待读取数据块;
继续执行所述通过所述SPI接口发送读操作命令至所述SD卡的步骤,直至读取完所述待读取数据的所有数据块。
5.如权利要求4所述的读写SD卡的方法,其特征在于,所述将所述待读取数据中当前读取的数据块的下一数据块作为待读取数据的步骤之前,还包括:
在读取到所述待读取数据块后,判断所述待读取数据块中的校验码是否正确;
若所述校验码正确,则执行所述将所述待读取数据中当前读取的数据块的下一数据块作为待读取数据块的步骤;
所述判断所述待读取数据块中的校验码是否正确的步骤之后,所述读写SD卡的方法还包括步骤:
若所述校验码不正确,将所述待读取数据中当前读取的数据块继续作为待读取数据块,并继续执行所述通过所述SPI接口发送写操作命令至所述SD卡的步骤。
6.一种读写SD卡的装置,其特征在于,所述读写SD卡的装置包括:
初始化模块,用于通过模拟的SPI接口对所述SD卡进行初始化,其中,所述SPI接口采用基带芯片的GPIO接口模拟;
读写模块,用于在所述SD卡完成初始化后,对所述SD卡进行读/写操作。
7.如权利要求6所述的读写SD卡的装置,其特征在于,所述读写模块包括:
发送单元,用于通过所述SPI接口发送写操作命令至所述SD卡;
写入单元,用于在所述SPI接口接收到所述SD卡基于所述写操作命令反馈的响应数据,且所述响应数据为预设值时,将待写入数据中的待写入数据块经SPI接口写入所述SD卡中;
作为单元,用于在将所述待写入数据块写入所述SD卡后,将所述待写入数据中当前写入的数据块的下一数据块作为待写入数据块;
所述发送单元,还用于继续通过所述SPI接口发送写操作命令至所述SD卡,直至将所述待写入数据的所有数据块写入所述SD卡中。
8.如权利要求7所述的读写SD卡的装置,其特征在于,所述读写模块还包括:
接收单元,用于接收所述SD卡的响应应答命令;
所述作为单元,还用于在所述响应应答命令正确时,将所述待写入数据中当前写入的数据块的下一数据块作为待写入数据块;
所述发送单元,还用于在所述响应应答命令不正确时,将所述待写入数据中当前写入的数据块继续作为待写入数据块,并继续通过所述SPI接口发送写操作命令至所述SD卡,直至将所述待写入数据的所有数据块写入所述SD卡中。
9.如权利要求7所述的读写SD卡的装置,其特征在于,所述读写模块还包括:
所述发送单元,还用于通过所述SPI接口发送读操作命令至所述SD卡;
读取单元,用于在所述SPI接口接收到所述SD卡基于所述读操作命令反馈的响应数据,且所述响应数据为预设值时,经所述SPI接口从所述SD卡中读取待读取数据的待读取数据块;
所述作为单元,还用于在读取到所述待读取数据块后,将所述待读取数据中当前读取的数据块的下一数据块作为待读取数据块;
所述发送单元,还用于继续通过所述SPI接口发送读操作命令至所述SD卡。
10.如权利要求9所述的读写SD卡的装置,其特征在于,所述读写模块还包括:
判断单元,用于在读取到所述待读取数据块后,判断所述待读取数据块中的校验码是否正确;
所述作为单元,还用于若所述校验码正确,则将所述待读取数据中当前读取的数据块的下一数据块作为待读取数据块;
所述发送单元,还用于若所述校验码不正确,将所述待读取数据中当前读取的数据块继续作为待读取数据块,并继续通过所述SPI接口发送写操作命令至所述SD卡。
CN201610331484.7A 2016-05-18 2016-05-18 读写sd卡的方法及装置 Active CN106022406B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610331484.7A CN106022406B (zh) 2016-05-18 2016-05-18 读写sd卡的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610331484.7A CN106022406B (zh) 2016-05-18 2016-05-18 读写sd卡的方法及装置

Publications (2)

Publication Number Publication Date
CN106022406A true CN106022406A (zh) 2016-10-12
CN106022406B CN106022406B (zh) 2019-04-16

Family

ID=57098915

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610331484.7A Active CN106022406B (zh) 2016-05-18 2016-05-18 读写sd卡的方法及装置

Country Status (1)

Country Link
CN (1) CN106022406B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004312234A (ja) * 2003-04-04 2004-11-04 Pentax Corp デジタルカメラ
CN101216898A (zh) * 2008-01-03 2008-07-09 济南市泰信电子有限责任公司 基于flash总线的高效率低成本sd卡控制电路及其读写方法
CN101521956A (zh) * 2008-12-19 2009-09-02 康佳集团股份有限公司 一种通过gpio口读写t卡的方法、系统和手机
CN102654857A (zh) * 2011-03-04 2012-09-05 希姆通信息技术(上海)有限公司 采用gpio接口模拟spi协议的通信方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004312234A (ja) * 2003-04-04 2004-11-04 Pentax Corp デジタルカメラ
CN101216898A (zh) * 2008-01-03 2008-07-09 济南市泰信电子有限责任公司 基于flash总线的高效率低成本sd卡控制电路及其读写方法
CN101521956A (zh) * 2008-12-19 2009-09-02 康佳集团股份有限公司 一种通过gpio口读写t卡的方法、系统和手机
CN102654857A (zh) * 2011-03-04 2012-09-05 希姆通信息技术(上海)有限公司 采用gpio接口模拟spi协议的通信方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘军 等: "《原子教你玩STM32 寄存器版》", 30 November 2015, 北京:北京航空航天大学出版社 *
刘波文 等: "《嵌入式实时操作系统μC/OS-II经典实例:基于STM32处理器(第2版)》", 31 May 2014, 北京:北京航空航天大学出版社 *

Also Published As

Publication number Publication date
CN106022406B (zh) 2019-04-16

Similar Documents

Publication Publication Date Title
CN111562933B (zh) 一种空调升级方法以及空调系统
ATE416416T1 (de) Verfahren zur speichersystemsteuerung und speichersteuerungsvorrichtung
CN107454129A (zh) 固件升级方法、装置和系统
CN109976767B (zh) 软件烧录方法和装置
CN106843983A (zh) 远程升级现场可编程门阵列的系统及方法
US20090198770A1 (en) System and method of updating codes in controller
US20120173941A1 (en) Method, system and processor for loading logical devices online
KR20110094047A (ko) 전자 디바이스 및 전자 디바이스 시스템
KR20110076432A (ko) Can 통신을 이용한 다중 프로그램 업데이트 시스템 및 방법
US20160092201A1 (en) Method and Device for Updating Program Data
CN110442487A (zh) 一种智能卡通讯协议测试方法、装置、系统及可读介质
CN103823447B (zh) 半导体设备的上下位机的通信方法和通信系统
CN101739322B (zh) 嵌入式系统的测试装置及方法
US20140215123A1 (en) Controller-Opaque Communication with Non-Volatile Memory Devices
CN111756858A (zh) 嵌入式设备的远程开发处理系统、方法及装置
CN114055468B (zh) 轨迹复现方法、系统及终端设备
CN105930284A (zh) 一种fpga加载的方法和设备
CN103955416A (zh) 一种硬盘管理方法、装置和系统
CN106022406A (zh) 读写sd卡的方法及装置
CN112912841A (zh) 硬件升级方法、装置、设备和存储介质
CN103034501A (zh) 一种linux平台的函数调用方法及函数调用装置
JP2005027215A (ja) Icカード遠隔制御システム
CN113272785A (zh) 一种挂载文件系统的方法、终端设备及存储介质
CN111464398A (zh) 自组织无中心的网络高层协议测试方法、设备及存储介质
CN113467842B (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
PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method and device for reading/writing SD (Secure Digital Memory) card

Effective date of registration: 20200629

Granted publication date: 20190416

Pledgee: Shenzhen SME financing Company limited by guarantee

Pledgor: SHENZHEN WEIWANG LIHE INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2020990000685

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20210803

Granted publication date: 20190416

Pledgee: Shenzhen SME financing Company limited by guarantee

Pledgor: SHENZHEN WEIWANG LIHE INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2020990000685

PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method and device for reading and writing SD card

Effective date of registration: 20210804

Granted publication date: 20190416

Pledgee: Shenzhen SME financing Company limited by guarantee

Pledgor: SHENZHEN WEIWANG LIHE INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2021980007254

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20220905

Granted publication date: 20190416

Pledgee: Shenzhen SME financing Company limited by guarantee

Pledgor: SHENZHEN WEIWANG LIHE INFORMATION TECHNOLOGY CO.,LTD.

Registration number: Y2021980007254

PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method and device for reading and writing SD card

Effective date of registration: 20220908

Granted publication date: 20190416

Pledgee: Shenzhen small and medium sized small loan Co.,Ltd.

Pledgor: SHENZHEN WEIWANG LIHE INFORMATION TECHNOLOGY CO.,LTD.

Registration number: Y2022980014791

PC01 Cancellation of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20230914

Granted publication date: 20190416

Pledgee: Shenzhen small and medium sized small loan Co.,Ltd.

Pledgor: SHENZHEN WEIWANG LIHE INFORMATION TECHNOLOGY CO.,LTD.

Registration number: Y2022980014791

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231020

Address after: Room 502, Building 5, No. 528, Yuefei Road, Shibantan Street, Xindu District, Chengdu, Sichuan 610500

Patentee after: Microgrid union Technology (Chengdu) Co.,Ltd.

Address before: B-22A, Hanjingwan Yaju, No. 29 Liangting Road, Nanshan Street, Nanshan District, Shenzhen City, Guangdong Province, 518000

Patentee before: SHENZHEN WEIWANG LIHE INFORMATION TECHNOLOGY CO.,LTD.