CN104978225A - 固件更新方法和装置 - Google Patents
固件更新方法和装置 Download PDFInfo
- Publication number
- CN104978225A CN104978225A CN201510476779.9A CN201510476779A CN104978225A CN 104978225 A CN104978225 A CN 104978225A CN 201510476779 A CN201510476779 A CN 201510476779A CN 104978225 A CN104978225 A CN 104978225A
- Authority
- CN
- China
- Prior art keywords
- card
- firmware
- order
- command
- storage card
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了固件更新方法和装置,不仅可以用于正常情况下的固件更新,还可用于固件损坏导致系统无法工作时对固件进行修复更新。其技术方案为:存储卡在接收到主机命令后,对主机命令进行解析,如果是自定义的命令,则强制存储卡进入固件更新模式,配合主机进行存储卡的固件更新过程,其中自定义的命令是读卡器在标准存储卡命令的基础上增设的。
Description
本发明是针对申请号为“201010242734.2”、发明名称为“固件更新方法和装置”的原申请的分案申请。
技术领域
本发明涉及一种固件更新方法,尤其涉及一种对存储卡的固件进行更新的方法和装置。
背景技术
由于存储卡相比传统存储介质有其固有的优势,如体积小、结构简单、使用方便、不需要自带电源、读写速度快、使用安全性高等,因此存储卡越来越广泛的应用在手机、MP3、DV等各种数码产品当中。同时由于使用的广泛性较以往大幅增加,与各种产品的兼容性问题也随之而产生。因此目前的存储卡的固件大都采用存储在内置的闪存(以下简称Flash)当中,以便于当产品上市之后也可以通过更新固件的方式及时修正问题或完善功能。目前常见的存储卡有数码安全卡(SecureDigital Memory Card,下文简称SD卡)、多媒体记忆卡(Multimedia Card,MMC卡)、记忆棒(Memory Stick,MS卡)以及CompactFlash卡(CF卡)等等,其中应用最广泛的当属SD卡了。
一般而言,嵌入式系统的固件需要更新,通常有这么几个原因:修正Bug、功能完善或升级、固件损坏导致系统无法工作。因此目前嵌入式系统的固件更新或修复存在如下形式:(1)原固件并未完全损坏,系统可以正常工作或至少固件升级功能可以正常工作;(2)设计有特殊的功能引脚,通知系统强行进入固件升级模式;(3)固件的存储装置可拆卸,并通过第三方设备或工具进行固件改写,实现固件的更新或升级;(4)增加备用固件存储装置,一旦主存储装置中的固件损坏,则用备用装置进行修复。
由于SD卡产品只有用于与读卡器通信和数据传输的9根针脚裸露在整个封装外面,分别是VCC、GND、CLK、CMD以及DATA线,并没有额外的功能引脚可用于通知SD卡强制进入固件更新模式,因此,目前SD卡通常采用的固件更新的方案如下:
(1)SD卡未烧写固件,上电后SD卡主控制器加载固件失败,自动进入固件更新模式,并与主机(比如电脑加读卡器)连接,然后将固件烧录至SD卡内的Flash当中。
(2)SD卡烧写过固件,但是固件受损或其他原因,导致SD卡上电时加载固件失败,同样会自动进入固件更新模式,此时可采用上述方案1进行固件更新。
(3)SD卡烧写过固件,且上电自动进入正常工作模式,主机可通过发送命令使之进入固件更新模式,进行固件更新。
(4)SD卡烧写过固件,但因某些原因工作不正,无法与主机连接,或虽然工作正常,上电可自动进入正常工作模式,但无法进入固件更新模式,则可采用两种方式更新固件。一是短接Flash数据线的方式,强制让SD卡上电加载固件失败,进入固件更新模式后,再取消数据线短接,以便正常进行固件烧录;二是将Flash解焊下来,在专门的Flash擦除器上将固件擦除,然后重新焊回按照方案1进行固件更新。
随着新技术的不断发展,很多数码产品都开始朝着体积更加小巧的方向发展,一方面可以降低成本,另一方面则带来更好的外观和更佳的便携性,随之而来,对所使用的存储卡也要求更加小巧,因此就有了体积更小的微型数码安全卡(下文简称Micro SD卡)。为了追求体积的缩小,Micro SD卡采用了特殊的封装型式,其控制芯片与NAND Flash存储器二者与印刷电路板(PCB)采用了板上芯片封装(ChipOn Board,COB)方式封装在一起。与以往标准的SD卡可以拆开外壳不同,Micro SD卡的这种封装是无法拆卸的,无法采用上述方案4进行固件更新,也就是说如果一旦出现方案4中的情况,轻则无法更新固件,重则整张卡无法使用只能报废。
综上,Micro SD卡的固件因某些原因无法正常工作,甚至完全无法使用时,无法通过现有的固件更新手段实现修复。而对于SD卡碰到这种情况,则必须拆开外壳进行修复,费时费力,且破坏外观与卡的完整性。
发明内容
本发明的目的在于解决上述问题,提供了一种固件更新方法,不仅可以用于正常情况下的固件更新,还可用于固件损坏导致系统无法工作时对固件进行修复更新。
本发明的另一目的在于提供了一种固件更新装置。
本发明的技术方案为:本发明揭示了一种固件更新方法,存储卡在接收到主机命令后,对主机命令进行解析,如果是自定义的命令,则强制存储卡进入固件更新模式,配合主机进行存储卡的固件更新过程,其中自定义的命令是读卡器在标准存储卡命令的基础上增设的。
根据本发明的固件更新方法的一实施例,存储卡接收主机命令是在存储卡上电启动之后。
根据本发明的固件更新方法的一实施例,存储卡接收主机命令是在存储卡进入正常工作模式之后。
根据本发明的固件更新方法的一实施例,存储卡是SD卡或Micro SD卡。
根据本发明的固件更新方法的一实施例,自定义的命令以SD卡标准规范中ACMD41的自定义参数的命令来实现,或者以SD卡标准规范中的保留命令来实现。
本发明还揭示了一种固件更新装置,包括:
读卡器,内设标准的存储卡命令以及一组自定义命令;
存储卡,进一步包括:
上电启动模块,在存储卡插入读卡器后上电启动存储卡;
命令识别模块,耦接上电启动模块,在存储卡上电启动后接收读卡器发送的初始化阶段命令,识别出是标准的存储卡命令还是自定义命令;
固件加载模块,耦接命令识别模块,在识别出是标准的存储卡命令后进行存储卡的固件加载;
固件更新模块,耦接命令识别模块,在识别出是自定义命令后进行存储卡的固件更新。
根据本发明的固件更新装置的一实施例,存储卡是SD卡或Micro SD卡。
根据本发明的固件更新装置的一实施例,读卡器内的自定义的命令是以SD卡标准规范中ACMD41的自定义参数的命令来实现,或者以SD卡标准规范中的保留命令来实现。
本发明对比现有技术有如下的有益效果:本发明设计一个特殊的读卡器,用于存储卡的固件烧写和更新,读卡器在标准存储卡命令基础上增加了一组自定义命令。其次是存储卡的设计部分,在存储卡上电接收读卡器命令阶段,增加对自定义命令的判断,用于判定是否需要强制进入固件更新模式。对比现有技术,无论存储卡的固件是否损坏或损坏程度如何,只要存储卡硬件没有损坏,都可以采用纯软件的方式进行固件的更新和修复,使之回到正常工作状态,且不会造成任何外观的破坏。而且本发明的技术方案对现有存储卡的设计改动不大,设计复杂度和系统成本几乎没有影响。
附图说明
图1是本发明的固件更新装置的实施例的结构图。
图2是图1实施例的细化结构图。
图3是本发明的固件更新方法的实施例的流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。
本发明以SD卡为例来说明存储卡的实施方式。由于Micro SD卡采用与SD完全相同的协议标准,因此后文的描述将Micro SD与SD卡统一说明,均以SD卡指代。其它类型的存储卡也适用于以下的实施例。
固件更新装置的实施例
图1示出了固件更新装置的实施例的整体结构。请参见图1,本实施例的固件更新装置包括读卡器2和SD卡3两部分,读卡器2和电脑主机1相连,建立命令和数据的传输通道,读卡器2和SD卡3之间也建立起命令和数据的传输通道。
图2示出了读卡器2和SD卡3的细化结构。请参见图2,读卡器2内设标准的SD卡命令以及一组自定义命令。SD卡3内的上电启动模块30负责在SD卡3插入读卡器2后上电启动SD卡3。读卡器2发送初始化阶段的命令至SD卡3。由耦接上电启动模块30的命令识别模块31接收来自读卡器2的初始化阶段命令,识别出接收的命令是标准的SD卡命令(通常是指标准的ACMD41命令,用于SD卡初始化Flash和加载固件等)还是自定义命令。自定义命令是用来判定是否需要强制进入固件更新模式。其中自定义命令可以用ACMD41的自定义参数的命令来实现,也可以用SD卡标准规范中的保留命令来实现。
固件加载模块32耦接命令识别模块31,接收标准的ACMD41命令,进行SD卡的固件加载,如果固件损坏则进入无响应状态,如果固件正常则进入正常工作状态,可配合主机和读卡器进行标准的读写等操作。如果固件加载失败则进入固件更新模式。
固件更新模块33耦接命令识别模块31,接收自定义命令,进入固件更新模式,配合主机和读卡器进行固件更新,并在固件更新成功后进入正常工作状态。
固件更新方法的实施例
图3示出了本发明的固件更新方法的实施例的流程。请参见图3,本实施例的固件更新方法的各个步骤如下。
步骤S100:SD卡上电启动。
通常是在SD卡插入到读卡器后,SD卡上电启动。
步骤S101:SD卡等待接收主机命令。
主机命令分为标准的SD卡命令,例如CMD0和CMD8命令、ACMD41命令、以及自定义命令,这些命令都设置在读卡器中。其中CMD0和CMD8命令用于复位和协议版本识别,ACMD41命令用于SD卡初始化,自定义命令用于指定SD卡上电时进入固件更新模式。其中自定义命令可以用ACMD41的自定义参数的命令来实现,也可以用SD卡标准规范中的保留命令来实现。
由于使用SD卡的各种设备众多,为了避免应用中可能产生的兼容性问题,可以在设计时采用发送多次命令的方式来保证判断的正确性。
步骤S102:对接收到的主机命令进行解析。如果是CMD0和CMD8命令,则进入步骤S103;如果是ACMD41命令,则进入步骤S104;如果是其它命令,则进入步骤S115。
步骤S103:由于接收到的主机命令是CMD0和CMD8命令,进行设备复位和协议版本识别。
步骤S104:由于接收到的主机命令是ACMD41命令,进行SD卡初始化,然后进入步骤S105。
步骤S105:初始化闪存,并校验固件完整性。
步骤S106:判断闪存初始化和固件校验是否成功。如果成功则进入步骤S107,如果不成功则进入步骤S114。
步骤S107:在SD卡上加载固件并运行。
步骤S108:判断SD卡系统是否正常运行,如果正常运行则进入步骤S110,如果无法正常运行则进入步骤S109。
步骤S109:SD卡系统陷入异常状态死循环,与主机失去响应。
步骤S110:回复主机SD卡已经准备好,完成后续与主机的认证过程。
步骤S111:SD卡进入正常工作模式,等待主机命令。
步骤S112:对接收到的主机命令进行命令解析,如果是自定义命令则进入步骤S115,如果是SD卡标准命令则进入步骤S113。
步骤S113:SD卡进行读/写等标准操作。然后回到步骤S111。
步骤S114:判断其它命令是否是自定义命令,如果是自定义命令则进入步骤S115,如果不是自定义命令则进入步骤S116。
步骤S115:SD卡进入固件更新模式,配合主机进行固件更新。
步骤S116:不做任何处理,返回步骤S101。
综合上述的方法和装置的实施例可以看出,本发明的发明点主要在于:读卡器在标准SD命令的基础上增加了一组自定义命令,用于指定SD卡上电时进入固件更新模式;其次是SD卡上电接收读卡器命令阶段增加对自定义命令的判断,用于判定是否需要强制进入固件更新模式。这样无论存储卡的固件是否损坏或损坏程度如何,只要存储卡硬件没有损坏,都可以采用纯软件方式进行固件的更新和修复,使之回到正常工作状态,且不会造成任何外观的破坏。而且由于大部分SD卡的上电初始化都是通过软件实现的(其程序代码存储在SD卡控制器内的只读存储器当中),实现该方案并不需要修改SD卡控制器的硬件设计,读卡器的设计也是同样的道理,增加命令也只需修改程序即可,因此整个方案实现的成本较低,修改也很容易,对设计复杂度和系统成本来说几乎没有影响。
上述实施例是提供给本领域普通技术人员来实现或使用本发明的,本领域普通技术人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。
Claims (8)
1.一种固件更新方法,其特征在于,存储卡在接收到主机命令后,对主机命令进行解析,如果是自定义的命令,则强制存储卡进入固件更新模式,配合主机进行存储卡的固件更新过程,其中自定义的命令是读卡器在标准存储卡命令的基础上增设的。
2.根据权利要求1所述的固件更新方法,其特征在于,存储卡接收主机命令是在存储卡上电启动之后。
3.根据权利要求1所述的固件更新方法,其特征在于,存储卡接收主机命令是在存储卡进入正常工作模式之后。
4.根据权利要求1所述的固件更新方法,其特征在于,存储卡是SD卡或Micro SD卡。
5.根据权利要求4所述的固件更新方法,其特征在于,自定义的命令以SD卡标准规范中ACMD41的自定义参数的命令来实现,或者以SD卡标准规范中的保留命令来实现。
6.一种固件更新装置,包括:
读卡器,内设标准的存储卡命令以及一组自定义命令;
存储卡,进一步包括:
上电启动模块,在存储卡插入读卡器后上电启动存储卡;
命令识别模块,耦接上电启动模块,在存储卡上电启动后接收读卡器发送的初始化阶段命令,识别出是标准的存储卡命令还是自定义命令;
固件加载模块,耦接命令识别模块,在识别出是标准的存储卡命令后进行存储卡的固件加载;
固件更新模块,耦接命令识别模块,在识别出是自定义命令后进行存储卡的固件更新。
7.根据权利要求6所述的固件更新装置,其特征在于,存储卡是SD卡或Micro SD卡。
8.根据权利要求7所述的固件更新装置,其特征在于,读卡器内的自定义的命令是以SD卡标准规范中ACMD41的自定义参数的命令来实现,或者以SD卡标准规范中的保留命令来实现。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102427342A CN101901158A (zh) | 2010-08-02 | 2010-08-02 | 固件更新方法和装置 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102427342A Division CN101901158A (zh) | 2010-08-02 | 2010-08-02 | 固件更新方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104978225A true CN104978225A (zh) | 2015-10-14 |
Family
ID=43226710
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102427342A Pending CN101901158A (zh) | 2010-08-02 | 2010-08-02 | 固件更新方法和装置 |
CN201510476779.9A Pending CN104978225A (zh) | 2010-08-02 | 2010-08-02 | 固件更新方法和装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102427342A Pending CN101901158A (zh) | 2010-08-02 | 2010-08-02 | 固件更新方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN101901158A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762797A (zh) * | 2018-05-30 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种ssd固件在线更新方法、系统及ssd |
CN115576587A (zh) * | 2022-11-18 | 2023-01-06 | 合肥康芯威存储技术有限公司 | 一种存储装置的固件升级装置及其升级方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102222251B (zh) * | 2011-06-23 | 2013-03-27 | 中颖电子股份有限公司 | 高速低功耗嵌入式存储卡 |
CN102331939A (zh) * | 2011-06-23 | 2012-01-25 | 中颖电子股份有限公司 | 可利用任意读卡器升级的存储卡 |
CN102707969A (zh) * | 2012-04-25 | 2012-10-03 | 中颖电子股份有限公司 | 通讯中可随时固件更新的存储卡及其固件更新方法 |
CN104572524B (zh) * | 2015-01-06 | 2017-11-21 | 广东翼卡车联网服务有限公司 | 一种无需驱动实现访问sd卡io设备的方法及系统 |
CN106897095B (zh) * | 2017-02-24 | 2020-10-13 | 网易(杭州)网络有限公司 | 应用程序热修复的方法、装置、可读存储介质和计算设备 |
CN111857845B (zh) * | 2020-06-19 | 2022-04-22 | 浪潮电子信息产业股份有限公司 | 一种tf卡软件的完整性校验方法、装置及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547699A (zh) * | 2001-11-06 | 2004-11-17 | 用于更新存储卡上固件的系统内编程的实现 | |
CN1828537A (zh) * | 2005-03-01 | 2006-09-06 | 明基电通股份有限公司 | 用来从更新模块更新电路模块的固件的更新系统及方法 |
US20080178171A1 (en) * | 2007-01-23 | 2008-07-24 | Masahiro Sueyoshi | Management System, Management Method, Terminal Device, Management Server and Program |
CN101646263A (zh) * | 2009-09-07 | 2010-02-10 | 中兴通讯股份有限公司 | 一种内置数据卡的升级方法及系统 |
CN101667447A (zh) * | 2008-09-02 | 2010-03-10 | 新唐科技股份有限公司 | 一种存储卡及用于存储卡的方法 |
-
2010
- 2010-08-02 CN CN2010102427342A patent/CN101901158A/zh active Pending
- 2010-08-02 CN CN201510476779.9A patent/CN104978225A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1547699A (zh) * | 2001-11-06 | 2004-11-17 | 用于更新存储卡上固件的系统内编程的实现 | |
CN1828537A (zh) * | 2005-03-01 | 2006-09-06 | 明基电通股份有限公司 | 用来从更新模块更新电路模块的固件的更新系统及方法 |
US20080178171A1 (en) * | 2007-01-23 | 2008-07-24 | Masahiro Sueyoshi | Management System, Management Method, Terminal Device, Management Server and Program |
CN101667447A (zh) * | 2008-09-02 | 2010-03-10 | 新唐科技股份有限公司 | 一种存储卡及用于存储卡的方法 |
CN101646263A (zh) * | 2009-09-07 | 2010-02-10 | 中兴通讯股份有限公司 | 一种内置数据卡的升级方法及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762797A (zh) * | 2018-05-30 | 2018-11-06 | 郑州云海信息技术有限公司 | 一种ssd固件在线更新方法、系统及ssd |
CN115576587A (zh) * | 2022-11-18 | 2023-01-06 | 合肥康芯威存储技术有限公司 | 一种存储装置的固件升级装置及其升级方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101901158A (zh) | 2010-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104978225A (zh) | 固件更新方法和装置 | |
CN101477471B (zh) | 一种嵌入式系统固件在线升级方法 | |
CN103777972B (zh) | 基于现场可编程门阵列的系统、配置方法以及升级方法 | |
EP3080693B1 (en) | Devices, updaters, methods for controlling a device, and methods for controlling an updater | |
US20080065788A1 (en) | System and method for producing high volume flash memory cards | |
CN102945173A (zh) | 用户程序在线升级系统和升级方法 | |
CN106406936A (zh) | 一种fpga程序多版本管理装置及方法 | |
CN101980159B (zh) | U盘固件的更新装置及更新方法 | |
CN105677409B (zh) | 一种系统升级方法及装置 | |
CN109582332A (zh) | 互联网摄像机的系统升级方法及装置 | |
CN102446101A (zh) | 固件强制升级的系统及其固件的强制升级方法 | |
CN108153548A (zh) | 一种emmc固件升级方法和装置 | |
CN107894899A (zh) | Rom程序升级系统及升级方法 | |
CN104407903A (zh) | 一种基于Bootloader的QSFP光模块远程升级方法 | |
CN102541671A (zh) | 一种提高电子设备对sd卡识别率的方法及设备 | |
CN105653412A (zh) | 一种指纹器件兼容检测方法及终端 | |
CN105183673A (zh) | 在恢复模式下支持外置存储设备热插拔的方法及装置 | |
CN102023906B (zh) | 便携式终端的微处理器、便携式终端及其修复方法 | |
CN101425028B (zh) | 计算机系统与计算机系统的韧体修复方法 | |
CN101710297B (zh) | 一种运行应用程序的方法及控制器 | |
CN112988465A (zh) | 一种单片机升级失败自动恢复运行的方法 | |
CN106293531A (zh) | 一种基于flash写保护的防止SD使用过程中flash被意外篡改的方法 | |
CN105868042A (zh) | 一种看门狗电路 | |
KR100907550B1 (ko) | 시리얼 eeprom의 손상된 데이터를 복구하기 위한장치 및 방법 | |
KR100624723B1 (ko) | 하드웨어 버전관리 기능이 구비된 이동통신 단말기 및 그동작방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151014 |