一种SD数据读取/写入出错处理方法及SD主机、SD设备技术

技术编号:14859973 阅读:68 留言:0更新日期:2017-03-19 12:20
本发明专利技术提供一种SD数据读取/写入错误处理方法及SD主机、SD设备,所述SD数据读取错误处理方法包括:SD主机从SD设备读取数据块;检测所述数据块是否存在CRC错误,并将所述检测结果信息发送给所述SD设备;所述SD设备接收检测结果信息;当确定所述数据块存在CRC错误时,所述SD设备与所述SD主机自动重新读取所述数据块。本发明专利技术的技术方案能够在SD主机(SecureDigitalHost)和SD设备(SecureDigitalDevice)之间建立数据传输出错时的自动重传机制,将大大提高数据的传输效率,并且完全不违反现有的SD官方协议,并且可以兼容市面上其他SD主机和设备。

【技术实现步骤摘要】

本专利技术涉及一种计算机数据传输,特别是涉及一种SD数据读取/写入出错处理方法及SD主机、SD设备
技术介绍
SD卡(SecureDigitalMemoryCard)是一种基于半导体闪存工艺的存储卡,具有大容量、高性能、安全等多种特点,目前已成为消费数码设备中应用最广泛的一种存储卡。在SD(SecureDigital)卡越来越普及的今天,SD数据传输的效率的提高也越来越显得重要。通常将SD设备分成SD主机(SecureDigitalHost)和SD设备(SecureDigitalDevice)两个部分,其中SD主机负责对SD设备的控制并作为SD设备与其他设备相连的接口通道。SD卡在进行数据传输(数据在SD主机与SD设备之间传输)时,偶尔也会发生数据传输错误的现象,这在传输多块大数据的时候更容易发生。目前,对于SD卡数据传输出现错误的情况的处理,通常为通过软件参与判断错误的处理。需要软件参与处理的步骤包括判断是否丢弃已经传输正确的数据,是否终止传输后面没有传输完成的数据,是否需要对SD卡进行复位等等。显然,这将大大降低数据的传输效率。鉴于此,如何提高在SD卡输出传输出错时的处理速度,进而提高SD卡的整体传输速度成为了本领域技术人员亟待解决的问题。
技术实现思路
鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种SD数据读写传输错误处理方法及SD主机、SD设备,用于解决现有技术中在SD卡数据读取/写入出错时的处理效率低的问题。为实现上述目的及其他相关目的,本专利技术提供一种SD数据读取错误处理方法,所述SD数据读取错误处理方法包括:SD主机从SD设备读取数据块;检测所述数据块是否存在CRC错误,并将所述检测结果信息发送给所述SD设备;所述SD设备接收检测结果信息;当确定所述数据块存在CRC错误时,所述SD设备与所述SD主机自动重新读取所述数据块。可选地,所述方法还包括在所述SD设备与所述SD主机设置相同的最大重传次数;当确定存在CRC错误时,统计连续错误次数;当所述连续错误次数小于所述最大重传次数时,完成重新读取操作。可选地,所述自动统计连续错误次数是通过计数器完成的。可选地,所述最大重传次数通过软件设置。可选地,所述自动重新读取所述数据块的具体实现包括:所述SD主机丢弃所述数据块并准备重新读取所述数据块;所述SD主机重新从所述SD设备读取的所述数据块。可选地,所述SD主机丢弃所述数据块并准备重新读取所述数据块的具体实现包括:所述SD主机采用FIFO来接收所述数据块;读取所述SD设备开始前,所述SD主机FIFO的当前写指针的值保存在一个临时写指针中;当所述SD主机丢弃所述数据块并准备重新读取所述数据块时,将所述临时写指针的值载入到所述当前写指针中;所述SD设备采用FIFO来保存所述数据块;所述SD主机读取开始前,所述SD设备FIFO的当前读指针的值保存在一个临时读指针中;当所述SD主机丢弃所述数据块并准备重新读取所述数据块时,将所述临时读指针的值载入到所述当前读指针中。本专利技术提供一种SD数据写入错误处理方法,所述SD数据写入错误处理方法包括:SD主机向SD设备写入数据块;所述SD设备检测所写入的数据块是否存在CRC错误,并将所述检测结果信息发送给所述SD主机;所述SD主机接收检测结果信息;当确定所写入的数据块存在CRC错误时,所述SD设备与所述SD主机自动重新写入所述数据块。可选地,所述方法还包括在所述SD设备与所述SD主机设置相同的最大重传次数;当确定存在CRC错误时,自动统计连续错误次数;当所述连续错误次数小于所述最大重传次数时,自动完成重新写入操作。可选地,所述自动统计连续错误次数是通过计数器完成的。可选地,所述最大重传次数通过软件设置。可选地,所述自动重新写入所述数据块的具体实现包括:所述SD设备丢弃所述数据块并准备重新写入所述数据块;所述SD主机重新向所述SD设备写入所述数据块。可选地,所述SD主机重新向所述SD设备写入所述数据块的具体实现包括:所述SD主机采用FIFO来保存将要写入到所述SD设备的所述数据块;写入所述SD设备开始前,所述SD主机FIFO的当前读指针的值保存在一个临时读指针中;当所述SD主机开始重新写入所述数据块时,将所述临时读指针的值载入到所述当前读指针中;所述SD设备采用FIFO来保存所述SD主机写入的所述数据块;所述SD主机写入开始前,所述SD设备FIFO的当前写指针的值保存在一个临时写指针中;当所述SD主机开始重新写入所述SD设备所述数据块时,将所述临时写指针的值载入到所述当前写指针中。本专利技术还提供一种SD设备,所述SD设备包括:标识设备重传寄存器,用于标识所述SD设备是否具备数据重传功能;使能设备重传寄存器,用于使能所述SD设备的数据重传功能;如果所述SD设备具备自动重传功能且所述自动重传功能使能,则当所述SD设备检测到读取/写入的数据块存在CRC错误时,所述SD设备自动重新读取/写入所述存在CRC错误的数据块。可选地,所述SD设备还包括:最大重传次数寄存器,用于存储自动连续重传的最大次数;计数器,用于统计连续发生CRC错误的次数;当所述SD设备检测到读取/写入数据块存在CRC错误时,所述计数器自动执行加1操作,当所述计数器的值小于所述存储连续重传次数的寄存器的值时,所述SD设备自动重新读取/写入所述存在CRC错误的数据块;当所述SD设备检测到读取/写入的数据块不存在CRC错误时,所述计数器自动执行清零操作。可选地,所述最大重传次数寄存器的值通过软件设置。可选地,所述SD设备包括一个数据读写FIFO,用于临时保存读取或写入数据块;当所述SD主机读取数据块时,首先把所述SD设备的数据读写FIFO的当前读指针的值保存在一个临时读指针中;当所述SD主机读取所述数据块完成并确定所读取的数据块存在CRC错误时,把所述临时读指针的值载入到所述当前读指针中;自动重新读取所述数据块;当所述SD主机写入数据块时,首先把所述SD设备的数据读写FIFO的当前写指针的值保存在一个临时写指针中;当写入所述数据块完成并确定所写入的数据块存在CRC错误时,将所述临时写指针的值载入到所述当前写指针中;自动重新写入所述数据块。本专利技术还提供一种SD主机,所述SD主机包括:标识主机重传寄存器,用于标识所述SD主机是否具备数据重传功能;使能主机重传寄存器,用于使能所述SD主机的数据重传功能;如果所述SD主机具备自动重传功能且所述自动重传功能使能,则当SD主机读取数据块并进行C本文档来自技高网...

【技术保护点】
一种SD数据读取错误处理方法,其特征在于,所述SD数据读取错误处理方法包括: SD主机从SD设备读取数据块; 检测所述数据块是否存在CRC错误,并将所述检测结果信息发送给所述SD设备; 所述SD设备接收检测结果信息; 当确定所述数据块存在CRC错误时,所述SD设备与所述SD主机自动重新读取所述数据块。

【技术特征摘要】
1.一种SD数据读取错误处理方法,其特征在于,所述SD数据读取错误处理方法包括:
SD主机从SD设备读取数据块;
检测所述数据块是否存在CRC错误,并将所述检测结果信息发送给所述SD设备;
所述SD设备接收检测结果信息;
当确定所述数据块存在CRC错误时,所述SD设备与所述SD主机自动重新读取所述数据块。
2.根据权利要求1所述的SD数据读取错误处理方法,其特征在于:所述方法还包括在所述SD设备与所述SD主机设置相同的最大重传次数;当确定存在CRC错误时,自动统计连续错误次数;当所述连续错误次数小于所述最大重传次数时,完成重新读取操作。
3.根据权利要求2所述的SD数据读取错误处理方法,其特征在于:所述最大重传次数通过软件设置。
4.根据权利要求2所述的SD数据写入错误处理方法,其特征在于:所述自动统计连续错误次数是通过计数器完成的。
5.根据权利要求1所述的SD数据读取错误处理方法,其特征在于:所述自动重新读取所述数据块的具体实现包括:所述SD主机丢弃所述数据块并准备重新读取所述数据块;所述SD主机重新从所述SD设备读取所述数据块。
6.根据权利要求5所述的SD数据读取错误处理方法,其特征在于:所述SD主机丢弃所述数据块并准备重新读取所述数据块的具体实现包括:所述SD主机采用FIFO来接收所述数据块;读取所述SD设备开始前,所述SD主机FIFO的当前写指针的值保存在一个临时写指针中;当所述SD主机丢弃所述数据块并准备重新读取所述数据块时,将所述临时写指针的值载入到所述当前写指针中;所述SD设备采用FIFO来保存所述数据块;所述SD主机读取开始前,所述SD设备FIFO的当前读指针的值保存在一个临时读指针中;当所述SD主机丢弃所述数据块并准备重新读取所述数据块时,将所述临时读指针的值载入到所述当前读指针中。
7.一种SD数据写入错误处理方法,其特征在于:所述SD数据写入错误处理方法包括:
SD主机向SD设备写入数据块;
所述SD设备检测所写入的数据块是否存在CRC错误,并将所述检测结果信息发送给所述SD主机;
所述SD主机接收检测结果信息;
当确定所写入的数据块存在CRC错误时,所述SD设备与所述SD主机自动重新写入所述数据块。
8.根据权利要求7所述的SD数据写入错误处理方法,其特征在于:所述方法还包括在所述SD设备与所述SD主机设置相同的最大重传次数;当确定存在CRC错误时,自动统计连续错误次数;当所述连续错误次数小于所述最大重传次数时,自动完成重新写入操作。
9.根据权利要求8所述的SD数据写入错误处理方法,其特征在于:所述自动统计连续错误次数是通过计数器完成的。
10.根据权利要求8所述的SD数据写入错误处理方法,其特征在于:所述最大重传次数通过软件设置。
11.根据权利要求7所述的SD数据写入错误处理方法,其特征在于:所述自动重新写入所述数据块的具体实现包括:所述SD设备丢弃所述数据块并准备重新写入所述数据块;所述SD主机重新向所述SD设备写入所述数据块。
12.根据权利要求11所述的SD数据写入错误处理方法,其特征在于:所述SD主机重新向所述SD设备写入所述数据块的具体实现包括:所述SD主机采用FIFO来保存将要写入到所述SD设备的所述数据块,所述SD主机读取FIFO中的数据,然后写入所述SD设备;写入所述SD设备开始前,所述SD主机把FIFO的当前读指针的值保存在一个临时读指针中;当所述SD主机开始重新写入所述SD设备所述数据块时,将所述临时读指针的值载入到所述当前指针中;所述SD设备采用FIFO来保存所述SD主机写入的所述数据块;所述SD主机写入开始前,所述SD设备FIFO的当前写指针的值保存在一个临时写指针中;当所述SD主机开始重新写入所述SD...

【专利技术属性】
技术研发人员:曾旭
申请(专利权)人:苏州澜起微电子科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1