存储卡及数据重写方法

文档序号:6426147阅读:310来源:国知局
专利名称:存储卡及数据重写方法
技术领域
本发明涉及一种存储卡,特别是涉及这样一种技术能有效应用于灵活改变或添加多媒体卡的标准。
背景技术
多媒体卡被普遍认为是个人计算机、多功能终端单元等中使用的一种外部存储媒体。多媒体卡可用于诸如像于数字摄像机内存储静止图象、于移动电话内记录数据、或是于便携式唱片播放器内记录音乐时,存储任何类型的数字信息。
这些多媒体卡的兼容性是根据多媒体卡协会(MMCA)所指定的多媒体卡标准来保持的,该MMCA是用于统一标准的一个组织。
在Masashi Oshima,ed.,Denshi Zairyo(Electronic Materials),KogyoChosakai Publishing Co.,Ltd.,December 1,1990,pp.22-26中找到一篇有关这种IC卡的详细说明(日语),其中还描述了有关不同种类IC卡的技术趋势。
但是,本发明之发明人发现,上述类型的存储卡包含以下问题。
多媒体卡是一种新兴的产品项,它是伴随着互联网以及移动电话的扩展使用而产生的,并且多媒体卡的标准被频繁修订或是添加。
当多媒体卡标准经历一次修订或是添加时,硬件和固件都必须据此修改,从而,迫使用户承担高额费用以及时间。
在主机一方,同样也存在许多不满足多媒体卡标准的设备,这一缺陷也迫使修订多媒体卡的硬件和固件。
本发明的一个目的是提供一种存储卡以及一种数据重写方法,可以仅仅通过更换固件,而以低成本在短时间内进行任何标准的修订或是添加。
通过以下参照附图所作的说明书内之说明,将使本发明的上述以及其他目的和新颖的特征更加显而易见。

发明内容
1.根据本发明的一种存储卡具有一个控制器,该控制器包括一个命令解码单元,用于对外部发送命令进行解码;一个索引设置单元,用于为所述每一个外部发送命令的索引设置有效性或无效性;以及一个命令检测信号发生单元,用于根据命令解码单元的解码结果和索引设置单元设定的值,来判断外部发送命令中的每一个是有效的还是无效的,并提供该结果作为一个检测信号。
2.另外,在第1段中,索引设置单元是一个寄存器,可以基于固件数据,根据需要更改对每条命令的有效性或无效性的设定。
3.所述控制器包括一个命令解码单元,用于对外部发送命令进行解码,判断每条命令的索引,并向指定终端发送一个解码信号;一个索引设置单元,为每个索引设置每条命令的有效性或无效性;以及一个命令检测信号发生单元,用于从来自于命令解码单元的解码信号中识别出所述外部发送命令的索引,同时根据索引设置单元内设置的数据来判断所识别之索引的命令的有效性或无效性,如果命令为有效,则执行与该命令匹配的响应处理,并提供用于执行由该命令所指定的处理之检测信号。
4.在上述第1至第3段的任何一段中,所述控制器包括一个数据检测单元,用于检测外部输入数据形式;一个数据形式设置单元,其中,为每一种数据形式设置表示外部输入数据形式的有效性或无效性的数据;以及一个数据检测信号发生单元,用于根据由数据检测单元检测的结果以及由数据形式设置单元设置的数值,判断外部发送数据的有效性或无效性,并提供所述结果作为检测信号。
5.在依据第4段的存储卡内,数据形式设置单元是一个寄存器,可基于固件数据根据需要更改每个数据形式的有效性或无效性的设置。
以下,将以逐条列项的方式简要说明处于当前应用下的本发明的另一方案。
1.用于存储卡的数据写入方法包含以下步骤(a)接收来自外部的请求写入固件数据的命令,并接收将要写入的固件数据;(b)将所接收到的固件数据写入非易失性半导体存储器内的特定区域中;(c)在初始化存储卡之后,设置索引设置单元的初始数据;(d)访问非易失性半导体存储器,以检测存在还是不存在固件数据;以及(e)当在非易失性半导体存储器内存在固件数据时,读取该固件数据,并根据所述固件数据,在索引设置单元内写入并重新设置数据。
2.用于存储卡的一种数据写入方法,包括以下步骤(a)接收来自外部的请求写入固件数据的命令,并接收将要写入的固件数据;(b)将所接收到的固件数据写入非易失性半导体存储器内的特定区域中;(c)在初始化存储卡之后,设置数据形式设置单元的初始数据;(d)访问非易失性半导体存储器,以检测存在还是不存在固件数据;以及(e)当在非易失性半导体存储器内存在固件数据时,读入固件数据,并根据所述固件数据,在数据形式设置单元内写入并重新设置数据。


图1是用于实现本发明的一种实施模式下的存储卡的框图;图2是图1的存储卡内所提供的控制器的框图;图3显示了当控制器已经接收到一个在图1的存储卡所提供的命令使能寄存器内被设定为有效的命令时,控制器的操作;图4说明了当控制器已经接收到在图1的存储卡所提供的命令使能寄存器内被设定为无效的命令时,控制器的操作;图5是一张流程图,显示了固件的写入顺序,以改变图1中存储卡内的设置;图6是一张流程图,显示了操作顺序,以改变图1的存储卡中命令使能寄存器内的寄存器数据的设置;图7显示了串行传送到图1中的存储卡的数据的结构;图8显示了图7数据内起始字节的一个例子;图9显示了用于实现本发明的另一实施模式下之存储卡内所提供的控制器的操作;以及图10显示了用于实现发明的另一实施模式下之存储卡的命令使能寄存器内设置之寄存器数据的一个例子。
具体实施例方式
以下将参照附图对本发明进行详细说明。在所有附图中,具有相同功能的元件将被分别赋予相同的参考标记,并省略对这些说明的重复说明。
在实现发明的一种实施模式中,存储卡由多媒体卡构成,并用作数字摄像机、移动电话、便携式录音片播放器或个人计算机内的主机HT的外部存储媒体。
如图1所示,存储卡1由闪速存储器(非易失性半导体存储器)2以及控制器3构成。闪速存储器2是一种允许电写入和擦除数据的非易失性半导体存储器。
连接至主机HT的控制器3负责对闪速存储器2的控制,读取存储在闪速存储器2内的程序和数据以对它们执行指定处理,并命令写入数据。
另外,如图2所示,控制器3包括一个控制单元4、存储器5和5a、一个命令解码电路(命令解码单元)6、一个命令检测信号发生电路(命令检测信号发生单元,一个寄存器)7、一个命令使能寄存器(索引设置单元)8、一个数据检测电路(数据检测单元)9、一个数据检测信号发生电路(数据检测信号发生单元)10、一个数据使能寄存器(数据形式设置单元)11、以及一个控制逻辑12。
控制单元4根据由命令检测信号发生电路7和数据检测信号发生电路10提供的检测信号,判断所给的命令和数据形式是有效还是无效。如果发现有效,则执行预定的响应处理以及为每条命令所指定的处理,同时向控制逻辑12提供一个中断信号,以通知其接收到该命令,并在控制逻辑12的控制下,进行数据传输以及其它操作。
存储器5是一种非易失性存储器,诸如只读存储器(ROM)或电可擦可编程ROM(EEPROM),而存储器5a是一种易失性存储器,诸如静态随机存取存储器(SRAM)。
在存储器5内存储用于操作控制逻辑12的控制程序等,而存储器5a被用作一个用于控制逻辑12的工作区域。
命令解码电路6对从主机HT传送来的命令CMD0至CMDn进行解码,并将解码结果提供给命令检测信号发生电路7。由主机HT发送的这些命令CMD0至CMDn覆盖了包括卡的识别、读、写以及擦除在内的所有被命令给存储卡1的处理方式。
命令检测信号发生电路7由AND电路71至7n构成,所提供的这些AND电路71至7n分别与命令CMD0至CMDn匹配。命令解码电路6将命令CMD0至CMDn中任一个的解码结果提供给AND电路71至7n中与之匹配的一个。
每个AND电路71至7n的一个输入部分与命令解码电路6相连。命令解码电路6根据命令CMD0至CMDn中任何一个的解码结果,将其输出提供给AND电路71至7n中与之匹配的一个。
连接每个AND电路71至7n的另一个输入部分,以输入命令使能寄存器8内设置的寄存器数据。
命令检测信号发生单元7利用AND电路71至7n来计算来自命令解码电路6的解码信号与命令使能寄存器8内设置的寄存器数据的逻辑积,并将有关命令的检测信号提供给控制单元4。
命令使能寄存器8事先存储并设置由主机HT所传送的命令是有效还是无效作为对每个单独命令索引的寄存器数据。在这种情况下,为每个有效命令设置Hi信号。
数据检测电路9检测由主机HT通过串行传输发送的数据形式,并将其提供给数据检测信号发生电路10。数据检测信号发生电路10由AND电路101至10n构成。
每个AND电路101至10n的一个输入部分与数据检测电路9相连。数据检测电路9将检测结果的信号提供给AND电路101至10n中与之匹配的一个。
连接每个AND电路101至10n的另一个输入部分,以输入数据使能寄存器11内设置的寄存器数据。
数据检测信号发生电路10利用AND电路101至10n来计算来自数据检测电路9的解码信号与数据使能寄存器11内设置的寄存器数据的逻辑积,并将以相关数据形式出现的检测信号提供给控制单元4。
在能够设置与数据形式No.0至No.n相匹配的寄存器数据的数据使能寄存器11中,事先将所接收到的来自主机HT的数据是有效还是无效设置为对每一个单独的数据形式的寄存器数据。这里,再次为每一个有效命令设置一个Hi信号。
控制逻辑12控制在命令使能寄存器8内以及在数据使能寄存器11内设置寄存器数据,还负责控制器3内的每个控制。
下面,将描述在实现本发明的这一实施模式下的存储卡1内发生的操作。
首先将参照附图3来说明当从主机HT输入了一个在命令使能寄存器8内被设置为有效的命令时,存储卡的操作。在该图3中,由于它图示了输入命令时的操作,因此,省略了数据检测电路9、数据检测信号发生电路10以及数据使能寄存器11。
另外在图3中,假设事先设置命令使能寄存器8的寄存器数据,使得命令CMD0至CMDn-1为有效(Hi),而命令CMDn为无效(Lo)。
如图3所示,当从主机HT传送一个命令CMD1时,该命令CMD1被输入命令解码电路6。命令解码电路6对所接收到的命令CMD1进行解码,并将解码结果信号(Hi)提供给与该命令CMD1匹配的、命令检测信号发生电路7中AND电路72的一个输入部分。
如上所述,由于在命令使能寄存器8内,命令CMD0至CMDn-1为有效(Hi),而命令CMDn为无效(Lo),因此,一个Hi信号被输入命令检测信号发生电路7中每个AND电路71至7n-1的另一输入部分,而一个Lo信号被输入AND电路7n的另一输入部分。
因此,一个Hi信号被输入AND电路72的两个输入部分的每一个上,并从AND电路72提供一个Hi电平信号作为检测信号。由于没有Hi信号输入AND电路71至7n-1的任何一个中,因此,它们提供Lo信号。
当控制单元4接收AND电路72的检测信号时,控制单元4向控制逻辑12提供一个中断信号,并在接收到所述中断信号时,控制逻辑12执行与命令CMD1匹配的响应处理以及由命令CMD1指定的处理。
以下将参照附图4来说明当从主机HT输入了一个在命令使能寄存器8内被设置为无效的令时,存储卡1的操作。在该图4中,由于它只图示了输入命令时的操作,因此,省略了数据检测电路9、数据检测信号发生电路10以及数据使能寄存器11。
另外在图4中,也假定事先设置命令使能寄存器8的寄存器数据,使得命令CMD0至CMDn-1为有效(Hi),而命令CMDn为无效(Lo)。
如图4所示,当从主机HT传送来一个命令CMDn时,该命令CMDn被输入命令解码电路6。命令解码电路6对所接收到的命令CMDn进行解码,并将一个Hi信号提供给与该命令CMDn匹配的、命令检测信号发生电路7的AND电路7n的一个输入部分。
由于在命令使能寄存器8内,命令CMD0至CMDn-1为有效(Hi),而命令CMDn为无效(Lo),因此,一个Hi信号输入命令检测信号发生电路的AND电路71至7n-1中每一个的另一输入部分,而一个Lo信号输入AND电路7n的另一输入部分。
因此,Hi信号仅仅输入到AND电路7n的一个输入部分上,并且没有从AND电路72提供一个检测信号,而是继续提供Lo信号。与此相似,在任何其它的AND电路71和73至7n-1中,由于没有Hi信号输入到这些输入部分的任何一个中,因此继续提供Lo信号。
因此,由于没有检测信号进入控制单元4,因此,控制逻辑12忽略所输入的命令CMDn,最终命令CMDn被无效。
此外,将对在命令使能寄存器8内,交替设置命令CMD1至CMDn有效和无效进行说明。
以下将参照图5的流程图,来说明对用于改变命令使能寄存器8内的这种设置的固件进行写入。
首先,在组装为成品之前,将存储卡1安装在仿真器上,并向其馈送电压。这使得存储卡1经受了作为初始化的上电复位(步骤S101)。在步骤S101的处理中,在命令使能寄存器8内设定初始寄存器数据。
一旦完成了上电复位,则存储卡1进入等待命令的状态(步骤S102)。之后,从仿真器发出一个用于在存储卡内进行系统信息的重写或故障分析的调试命令(步骤S103),且存储卡转换到调试模式。
当从仿真器发出用于将数据写入固件的命令后(步骤S104),逐个模块地提供包含已更改的寄存器数据的固件数据。
一旦由存储卡1接收到包含已更改寄存器数据的固件数据(步骤S105),则控制逻辑12就将所接收到的固件数据写入闪速存储器2内的一个指定区域中(步骤S106),从而结束固件数据的写入。
接下来,将参照图6的流程图来说明在命令使能寄存器8内设置的寄存器数据的变更。
当接通存储卡1的电源时,对控制逻辑12进行初始化(步骤S201)。此后,根据存储于每个存储器内的固件数据,对命令使能寄存器8内的寄存器数据进行初始化(步骤S202)。
之后,控制逻辑12搜索闪速存储器2内的一个指定区域,以校验存在或不存在任何固件(步骤S203)。如果在步骤S203的处理中,发现在搜索的特定区域内存在任何固件,则读出该固件,并将其暂时存储于存储器5a内(步骤S204)。
控制逻辑12根据存储于存储器5a内的固件数据,重新设置命令使能寄存器8内的寄存器数据(步骤S205),并完成上电复位(步骤S206)。
既便在步骤S203的处理中没有在指定区域内发现固件,也仍然执行步骤S206的处理。
这些处理步骤完成了上电复位,且变更了寄存器数据,使得存储卡1处于等待命令的状态。
以下,将说明根据数据使能寄存器11内设置的寄存器数据,来判断串行传送的数据形式是有效还是无效。
首先,如图7所示,要传送的串行数据例如可以由一个起始字节即8到2048比特的数据以及一个16比特的循环冗余码(CRC)数据构成。
起始字节是表示数据传送开始的一种数据。如图8所示,该起始字节对于用于单数据块写入的数据形式以及对于多数据块写入的数据形式是单独设置的。其中,单数据块写入允许每条命令传送一个数据块,而多数据块写入允许每条命令传送多个数据块。
例如,假定在数据使能寄存器11内的数据形式No.0至No.n中、将数据形式No.0分配用于单数据块写入,将数据形式No.1分配用于多数据块写入。
如果在这种情况下,数据形式No.0和数据形式No.1的寄存器数据都被设置为Hi信号,则单数据块写入和多数据块写入都被有效地设置。
之后,如果从主机HT传送数据形式No.1的起始字节,则数据检测电路9将解码结果的信号(Hi)提供给与数据形式No.1相匹配的数据检测信号发生电路10中AND电路102的一个输入部分。
由于如上所述,数据形式No.1在命令使能寄存器8内被设置为有效(Hi),因此,AND电路102提供表示检测到数据形式No.1的检测信号(Hi)。一旦控制单元4接收到该检测信号,控制逻辑12接收从主机HT传送来的数据,并对它们执行预定处理。
如果与数据形式No.1匹配的数据使能寄存器11内的寄存器数据被设置为无效(Lo),则即使从主机HT传送数据形式No.1的起始字节,数据检测信号发生电路10的AND电路102也将提供一个Lo信号,因此,控制逻辑12将不接受从主机HT传送来的数据。
也可以利用步骤S101至S106以及步骤S201至S207的上述处理,改变该数据使能寄存器11内的寄存器数据的设置。
以这种方式,通过利用固件仅改变命令使能寄存器8和数据使能寄存器11内的寄存器数据,可以在实现本发明的这一实施模式下,设置每条命令和数据形式的有效性和无效性,因此可以灵活地应对多媒体卡标准的改变或添加。
同样,由于任何多媒体卡标准的改变或添加都不需要改变存储卡1内的固件,因此,存储卡1可以以低成本在短时间内被引入市场。
此外,在用于实现本发明的上述实施模式下,存储卡1允许为每条命令和每种数据形式设置有效性或无效性,存储卡1同样还可以既具有设置这些命令和数据形式的有效性或无效性的功能,又具有选择将要返回到主机HT的每条命令所指定的格式的响应之功能。
在这种情况下,如图9所示,存储卡1的控制器3a具有添加了一个响应产生电路13的结构。此外,命令使能寄存器8a还额外具有设置响应类型选择信号的功能,用于选择与每个命令索引匹配的响应类型。在图9中,省略了对数据检测电路9、数据检测信号产生电路10和数据使能寄存器11的说明。
响应产生电路13根据命令使能寄存器8a内设置的响应类型选择信号,产生与每条命令索引匹配的响应,并将其返回给主机HT。
响应产生电路13例如根据2位的响应类型选择信号,产生一个匹配响应,并将其返回给主机HT。这里假设例如对于将要返回主机HT的响应存在可选择的响应类型0到类型3,为响应类型0设置“00”,为类型“1”设置“01”,为响应类型2设置“10”,为响应类型“3”设置“11”。
当有效命令CMD1输入到主机HT时,响应产生电路13在控制逻辑12的控制下,读出与命令CMD1匹配的响应类型选择信号。
读出响应信号“11”的响应产生电路13产生与命令CMD1匹配的类型3的响应,并将其返回主机HT。
以这种方式,通过只改变命令使能寄存器8a的响应类型选择信号,可以灵活地应对对存储卡1可完成的响应处理的任何添加或改变。
另外,还可添加一个用于抑制向控制逻辑2产生中断信号的寄存器,以便对应于每条命令地产生中断信号。
尽管对于任一条命令返回一个响应,但可以防止在控制逻辑的控制下进行内部操作。
尽管是参照用于实现本发明的最佳形式,利用特定术语描述了由本发明的发明人所作的发明,但很明显,本发明并不仅限于这些模式,但是在不脱离其主旨的情况下,可以以多种不同方式改变。
尽管在用于实现本发明的这些模式中的结构中,是为每条单独的命令设置寄存器数据,但是,也可以为每种命令类别设置有效性或无效性。所述命令类别例如可以是基本命令、擦除命令、读出命令以及写入命令。
例如,当存在命令CMD0至CMD6时,尽管在上述模式中,如图10上半部分所示,为命令CMD0到CMD6分别设置有效性(Hi)或无效性(Lo)的寄存器数据,但也可以如图下半部分所示,集中为命令CMD0到CMD2、命令CMD3至CMD4、以及命令CMD5至CMD6设置有效性或无效性的寄存器数据。
这种做法能够通过减少寄存器数目来压缩电路规模,因此节省了存储卡1的成本,并简化的固件数据的设置。
也可以设想在存储控制程序等的存储器内,存储不由缺省值所支持的命令的处理程序,并利用预定的主命令来改变命令使能寄存器内的寄存器数据的设置。
这使得不用改变固件数据就能添加命令或由主机专用的支持命令。
工业实用性如目前为止所描述的那样,根据本发明的存储卡和数据重写方法适于以简单技术使存储卡适用于应用标准的任何改变或是添加。
权利要求
1.一种存储卡,包括一个用于存储预定信息的非易失性半导体存储器,它包括多个非易失性存储单元;以及一个控制器,用于根据外部发送命令,向所述非易失性半导体存储器发出操作指令;其中,所述控制器包括,一个命令解码单元,用于对外部发送命令进行解码;一个索引设置单元,用于设定指示所述每一条外部发送命令是有效还是无效的索引;以及一个命令检测信号发生单元,用于根据所述命令解码单元的解码结果以及由所述索引设置单元设置的值,判断所述外部发送命令中的每一个是有效还是无效,并提供该结果作为一个检测信号。
2.如权利要求1所述的存储卡,其中,所述索引设置单元是一个寄存器,可以基于固件数据,根据需要改变对每条命令的有效性或无效性的设定。
3.一种存储卡,包括一个用于存储预定信息的非易失性半导体存储器,它包含多个非易失性存储单元;以及一个控制器,用于根据外部发送命令,向所述非易失性半导体存储器发出操作命令;其中,所述控制器包括,一个命令解码单元,用于对每一条外部发送命令进行解码,判断所述外部发送命令的索引,并向一预定目标提供一个解码信号;一个索引设置单元,用于设置指示每个所述外部发送命令是有效或是无效的索引;以及一个命令检测信号发生单元,用于根据来自命令解码单元的解码信号识别出所述外部发送命令的索引,根据所述索引设置单元内设置的数据来判断所识别出的索引的命令有效还是无效,如果所述外部发送命令有效,则根据所述外部发送命令执行响应处理,并提供一个执行由所述外部发送命令所指定的处理的检测信号。
4.如权利要求1至3之一所述的存储卡,其中所述控制器还包括一个数据检测单元,用于检测外部输入的数据形式;一个数据形式设置单元,用于设置指示每一个所述外部输入数据的数据形式是有效还是无效性的数据索引;以及一个数据检测信号发生单元,用于根据由所述数据检测单元检测的结果以及由所述数据形式设置单元设置的数值,判断所述外部发送的数据的有效性或无效性,并提供所述结果作为检测信号。
5.如权利要求4所述的存储卡,其中,所述数据形式设置单元是一个寄存器,可基于固件数据,根据需要改变每个数据形式的有效性或无效性设置。
6.用于一种存储卡的数据写入方法,其中,从外部向所述存储卡提供操作指令信号以及工作电压,且一个控制器根据所述操作指令信号访问一个非易失性半导体存储器,并存储或读出信息,所述用于存储卡的数据写入方法包含以下步骤接收来自外部的请求写入固件数据和接收将要写入的固件数据的命令;将所接收到的固件数据写入非易失性半导体存储器内的一个预定区域中;在初始化所述存储卡之后,设置一个索引设置单元的初始数据;访问所述非易失性半导体存储器,以检测存在还是不存在固件数据;以及当在所述非易失性半导体存储器内存在固件数据时,读出所述固件数据,并根据所述固件数据,在索引设置单元内写入并重新设置数据。
7.用于一种存储卡的一种数据写入方法,其中,从外部向所述存储卡提供操作指令信号以及工作电压,且一个控制器根据所述操作指令信号访问一个非易失性半导体存储器,并存储或读出信息,所述用于存储卡的数据写入方法包括以下步骤接收来自所述外部的请求写入固件数据和接收将要写入的命令固件数据的命令;将所接收到的固件数据写入所述非易失性半导体存储器内的一个预定区域中;在初始化存储卡之后,设置数据形式设置单元的初始数据;访问所述非易失性半导体存储器,以检测存在还是不存在固件数据;以及当在所述非易失性半导体存储器内存在固件数据时,读入所述固件数据,并根据所述固件数据,在所述数据形式设置单元内写入并重新设置数据。
全文摘要
一种存储卡,其控制器3具有用于对由主机HT发送的命令进行解码的一个命令解码电路6、其中设置了所接收命令的有效性或无效性的一个命令使能寄存器8以及一个命令检测信号产生电路7。其中,所述命令检测信号产生装置,用于根据命令解码电路6解码的结果以及由命令使能寄存器8设置的值来检测一个有效命令。如果所述命令使能寄存器8接收了一个有效设置命令,则命令检测信号产生电路7将向控制单元4提供一个检测信号,以便执行为每条命令所指定的处理。所述命令使能寄存器8接收一个无效设置命令,则不提供检测信号,并忽略该命令。
文档编号G06F12/00GK1545680SQ02816358
公开日2004年11月10日 申请日期2002年5月10日 优先权日2001年9月13日
发明者四方淳史, 片山国弘, 松本征人, 伊泽和人, 金森贤树, 人, 弘, 树 申请人:株式会社瑞萨科技
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1