一种sd数据读取/写入出错处理方法及sd主机、sd设备的制造方法

文档序号:9865436阅读:492来源:国知局
一种sd数据读取/写入出错处理方法及sd主机、sd设备的制造方法
【技术领域】
[0001]本发明涉及一种计算机数据传输,特别是涉及一种SD数据读取/写入出错处理方法及SD主机、SD设备。
【背景技术】
[0002]SD卡(Secure Digital Memory Card)是一种基于半导体闪存工艺的存储卡,具有大容量、高性能、安全等多种特点,目前已成为消费数码设备中应用最广泛的一种存储卡。在SD(Secure Digital)卡越来越普及的今天,SD数据传输的效率的提高也越来越显得重要。通常将SD设备分成SD主机(Secure Digital Host)和SD设备(Secure DigitalDevice)两个部分,其中SD主机负责对SD设备的控制并作为SD设备与其他设备相连的接口通道。SD卡在进行数据传输(数据在SD主机与SD设备之间传输)时,偶尔也会发生数据传输错误的现象,这在传输多块大数据的时候更容易发生。目前,对于SD卡数据传输出现错误的情况的处理,通常为通过软件参与判断错误的处理。需要软件参与处理的步骤包括判断是否丢弃已经传输正确的数据,是否终止传输后面没有传输完成的数据,是否需要对SD卡进行复位等等。显然,这将大大降低数据的传输效率。
[0003]鉴于此,如何提高在SD卡输出传输出错时的处理速度,进而提高SD卡的整体传输速度成为了本领域技术人员亟待解决的问题。

【发明内容】

[0004]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种SD数据读写传输错误处理方法及SD主机、SD设备,用于解决现有技术中在SD卡数据读取/写入出错时的处理效率低的问题。
[0005]为实现上述目的及其他相关目的,本发明提供一种SD数据读取错误处理方法,所述SD数据读取错误处理方法包括:SD主机从SD设备读取数据块;检测所述数据块是否存在CRC错误,并将所述检测结果信息发送给所述SD设备;所述SD设备接收检测结果信息;当确定所述数据块存在CRC错误时,所述SD设备与所述SD主机自动重新读取所述数据块。
[0006]可选地,所述方法还包括在所述SD设备与所述SD主机设置相同的最大重传次数;当确定存在CRC错误时,统计连续错误次数;当所述连续错误次数小于所述最大重传次数时,完成重新读取操作。
[0007]可选地,所述自动统计连续错误次数是通过计数器完成的。
[0008]可选地,所述最大重传次数通过软件设置。
[0009]可选地,所述自动重新读取所述数据块的具体实现包括:所述SD主机丢弃所述数据块并准备重新读取所述数据块;所述SD主机重新从所述SD设备读取的所述数据块。
[0010]可选地,所述SD主机丢弃所述数据块并准备重新读取所述数据块的具体实现包括:所述SD主机采用FIFO来接收所述数据块;读取所述SD设备开始前,所述SD主机FIFO的当前写指针的值保存在一个临时写指针中;当所述SD主机丢弃所述数据块并准备重新读取所述数据块时,将所述临时写指针的值载入到所述当前写指针中;所述SD设备采用FIFO来保存所述数据块;所述SD主机读取开始前,所述SD设备FIFO的当前读指针的值保存在一个临时读指针中;当所述SD主机丢弃所述数据块并准备重新读取所述数据块时,将所述临时读指针的值载入到所述当前读指针中。
[0011]本发明提供一种SD数据写入错误处理方法,所述SD数据写入错误处理方法包括:SD主机向SD设备写入数据块;所述SD设备检测所写入的数据块是否存在CRC错误,并将所述检测结果信息发送给所述SD主机;所述SD主机接收检测结果信息;当确定所写入的数据块存在CRC错误时,所述SD设备与所述SD主机自动重新写入所述数据块。
[0012]可选地,所述方法还包括在所述SD设备与所述SD主机设置相同的最大重传次数;当确定存在CRC错误时,自动统计连续错误次数;当所述连续错误次数小于所述最大重传次数时,自动完成重新写入操作。
[0013]可选地,所述自动统计连续错误次数是通过计数器完成的。
[0014]可选地,所述最大重传次数通过软件设置。
[0015]可选地,所述自动重新写入所述数据块的具体实现包括:所述SD设备丢弃所述数据块并准备重新写入所述数据块;所述SD主机重新向所述SD设备写入所述数据块。
[0016]可选地,所述SD主机重新向所述SD设备写入所述数据块的具体实现包括:所述SD主机采用FIFO来保存将要写入到所述SD设备的所述数据块;写入所述SD设备开始前,所述SD主机FIFO的当前读指针的值保存在一个临时读指针中;当所述SD主机开始重新写入所述数据块时,将所述临时读指针的值载入到所述当前读指针中;所述SD设备采用FIFO来保存所述SD主机写入的所述数据块;所述SD主机写入开始前,所述SD设备FIFO的当前写指针的值保存在一个临时写指针中;当所述SD主机开始重新写入所述SD设备所述数据块时,将所述临时写指针的值载入到所述当前写指针中。
[0017]本发明还提供一种SD设备,所述SD设备包括:标识设备重传寄存器,用于标识所述SD设备是否具备数据重传功能;使能设备重传寄存器,用于使能所述SD设备的数据重传功能;如果所述SD设备具备自动重传功能且所述自动重传功能使能,则当所述SD设备检测到读取/写入的数据块存在CRC错误时,所述SD设备自动重新读取/写入所述存在CRC错误的数据块。
[0018]可选地,所述SD设备还包括:最大重传次数寄存器,用于存储自动连续重传的最大次数;计数器,用于统计连续发生CRC错误的次数;当所述SD设备检测到读取/写入数据块存在CRC错误时,所述计数器自动执行加I操作,当所述计数器的值小于所述存储连续重传次数的寄存器的值时,所述SD设备自动重新读取/写入所述存在CRC错误的数据块;当所述SD设备检测到读取/写入的数据块不存在CRC错误时,所述计数器自动执行清零操作。
[0019]可选地,所述最大重传次数寄存器的值通过软件设置。
[0020]可选地,所述SD设备包括一个数据读写FIF0,用于临时保存读取或写入数据块;当所述SD主机读取数据块时,首先把所述SD设备的数据读写FIFO的当前读指针的值保存在一个临时读指针中;当所述SD主机读取所述数据块完成并确定所读取的数据块存在CRC错误时,把所述临时读指针的值载入到所述当前读指针中;自动重新读取所述数据块;当所述SD主机写入数据块时,首先把所述SD设备的数据读写FIFO的当前写指针的值保存在一个临时写指针中;当写入所述数据块完成并确定所写入的数据块存在CRC错误时,将所述临时写指针的值载入到所述当前写指针中;自动重新写入所述数据块。
[0021]本发明还提供一种SD主机,所述SD主机包括:标识主机重传寄存器,用于标识所述SD主机是否具备数据重传功能;使能主机重传寄存器,用于使能所述SD主机的数据重传功能;如果所述SD主机具备自动重传功能且所述自动重传功能使能,则当SD主机读取数据块并进行CRC检测后,将所述CRC检测结果发送给所读取的SD设备;当所述SD主机检测到读取/写入的数据块存在CRC错误时,所述SD主机自动重新读取/写入所述存在CRC错误的数据块。
[0022]可选地,所述SD主机还包括:最大重传次数寄存器,用于存储自动连续重传的最大次数;计数器,用于统计连续发生CRC错误的次数;当所述SD主机检测到读取/写入的数据块存在CRC错误时,所述计数器自动执行加I操作;当所述计数器的值小于所述存储连续重传次数的寄存器的值时,所述SD主机自动重新读取/写入所述存在CRC错误的数据块;当所述SD主机检测到读取/写入的数据块不存在CRC错误时,所述计数器自动执行清零操作。
[0023]可选地,所述最大重传次数寄存器的值通过软件设置。
[0024]可选地,所述SD主机包括一个数据读写FIFO,用于读取或写入数据块;当读取所述SD设备数据块时,首先把所述SD主机的数据读写FIFO的当前写指针的值保存在一个临时写指针中;当读取所述SD设备所述数据块完成并确定所读取的数据块存在CRC错误时,把所述临时写指针的值载入到所述当前写指针中;自动重新向所述SD设备读取所述数据块;当写入所述SD设备数据块时,首先把所述数据读写FIFO的当前读指针的值保存在一个临时读指针中;当写入所述SD设备所述数据块完成并确定所写入的数据块存在CRC错误时,将所述临时读指针的值载入到所述当前读指针中;自动重新写入所述数据块。
[0025]如上所述,本发明的一种SD数据读取/写入错误处理方法及SD主机、SD设备,具有以下有益效果:在 SD 主机(Secure Digital Host)和 SD 设备(Secure Digital Device)之间建立数据传输出错时的自动重传机制,将大大提高数据的传输效率,并且完全不违反现有的SD官方协议,在不使能(enable)重传机制的情况,完全兼容市面上其他SD主机和设备。
【附图说明】
[0026]图1显示为本发明的一种SD数据读取错误处理方法的一实施例的流程示意图。
[
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1