能够降低控制器缓存资源的CF卡的快速数据读写控制方法技术

技术编号:4365852 阅读:531 留言:0更新日期:2012-04-11 18:40
能够降低控制器缓存资源的CF卡的快速数据读写控制方法,它涉及一种CF卡的数据读写控制方法。它解决了CF卡进行高速数据读写时对控制器缓存资源的要求高的问题。其方法的写操作在向CF卡申请写256扇区数据后,每当数据缓存器中的数据量达到1扇区时,就开始写CF卡,直到申请到的CF卡内的256个扇区写满后结束一次写操作;本方法的读操作在向CF卡申请读256扇区数据后,每次从CF卡中读取1扇区的数据存入数据缓存器,直至CF卡内的256扇区的数据全部读完后结束一次读操作。本发明专利技术适用于快速数据读写的场合,如高速相机、工控等领域。

【技术实现步骤摘要】

本专利技术涉及一种CF卡的数据读写控制方法。
技术介绍
CF卡作为一种非易失的固态数据存储装置,在数据存储方面有着诸多优点(l) 容量大,单片容量可达32GB,理论上最大为128GB ;(2)数据传输速率高,在Ultra DMA 4、 Ultra DMA 5禾P Ultra DMA 6模式下,数据传输的峰值速度分别为66MB/s, 100MB/s和 132MB/s ; (3)体积小,CF-I型CF卡的体积为42. 8mmX36. 4mmX3. 3mm。目前,CF卡主要应 用在高速大容量的数据存储,如高速相机、工控领域等。在这些应用中,均要求对CF卡实现 最高的读/写速率,以达到高速数据存储的目的。 CF卡的读/写是以扇区为单位,l扇区包含512Bytes。外部控制器对CF卡进行读 写操作时,每次申请读写的扇区数为1 256扇区。申请的扇区数越多,CF卡的数据总线 利用率就越高,读写速度也就越快。为了达到最高的数据传输(读/写)速率,外部控制器 每次申请的扇区数为256个。 外部控制器在写CF卡时,首先要把待写入CF卡的数据放在数据缓冲区内,等数据 缓冲区中的数据大于或等于256扇区(128kB)时,向CF卡申请写256扇区。当CF卡给出 允许写信号后,外部控制器把缓冲区中的数据全部写入CF卡中。写完后即可进行下一次申 请。 读CF卡和写CF卡类似,当外部缓冲器的空间大于或等于128kB时,控制器向CF 卡申请读256扇区数据,当CF卡给出允许读信号后,控制器将256扇区数据读到缓存区内 做后续处理。 以FPGA控制CF卡的数据传输为例,CF卡写操作的流程图如附图说明图1所示,其中的数 据缓冲器用FPGA内部的FIFO。读CF卡的流程和写CF卡的流程类似。当向CF卡申请写 256扇区时,主控制器必须为写操作预留容量128kB(256扇区)的FIFO。在读操作时为了 达到最大的读取速度,同样要预留128kB的FIFO。这样需要FPGA至少要提供256kB的存储 资源。对于价格昂贵的高端FPGA,其内部的存储资源可以达到或超过256kB。但价格相对 便宜的低端FPGA,其内部存储资源一般在几kBytes到几十kBytes之间,无法达到最高读写 速度时所要求的256kB。减少每次向CF卡申请的扇区数会降低对存储资源的要求,但这样 会降低对CF卡的读写速度。虽然可以在低端FPGA(或其他控制器)的外部扩展一定存储 器,使总存储容量大于或等于256kB,但是势必会提高设计成本,延长设计周期,同时也会使 控制逻辑变得复杂。
技术实现思路
本专利技术是为了解决CF卡进行高速数据读写时对控制器缓存资源的要求高的问 题,从而提出一种能够降低控制器缓存资源的CF卡的快速数据读写控制方法。步骤一、外部控制器检测数据读写指令;步骤二、外部控制器判断检测到的数据读写指令是否是向CF卡写入数据的指令,如果判断结果为是,则执行步骤二二 ;否则执行步骤二一 ; 步骤二一、外部控制器判断检测到的数据读写指令是否是读取CF卡内的数据的指令,如果判断结果为是,则执行步骤二一一 ;如果判断结果为否,则返回执行步骤一 ; 步骤二一一、外部控制器向CF卡申请读取256扇区数据; 步骤二一二、初始化变量N,使N = 0 ; 步骤二一三、外部控制器读取数据缓存器剩余空间; 步骤二一四、外部控制器判断数据缓存器剩余空间是否大于1扇区;如果判断结 果为是,则执行步骤二一五,如果判断结果为否,则返回执行步骤二一三; 是,则执行 存器中; 骤二一九 果否,则返 否,则执行 区; 步骤二二六、判断变量N是否大于或等于256,如果判断结果为是,则执行步骤 二二七;如果判断结果为否,则执行步骤二二二 ; 步骤二二七、外部控制器是否给出停止信号,如果是,则返回执行步骤一;如果否, 则执行步骤二二。 所述外部控制器为FPGA ;数据缓存器为FPGA内部的FIF0。 结合图l,对比现有CF卡的数据传输控制方法,说明本专利技术的工作原理 分析图1中所示的CF卡写操作控制流程,虽然每次向CF卡申请写256扇区的数步骤二一五、外部控制器读取CF卡状态;步骤二一六、判断CF卡的状态是否准备好发送1个扇区的数据;如果判断结果为步骤二一七;如果判断结果为否,则返回执行步骤二一五; 步骤二一七、使N = N+l ,外部控制器读取CF卡的第N个扇区的数据并写入数据缓步骤二一八、判断变量N的值是否大于或等于256,如果判断结果为是,则执行步如果判断结果为否,则返回执行步骤二一三; 步骤二一九、外部控制器是否给出停止读取信号;如果是,则返回执行步骤一 ;如回执行步骤二一一; 步骤二二、外部控制器向CF卡申请写256扇区的数据; 步骤二二一、初始化变量N,使N = 0 ;步骤二二二、外部控制器将1扇区的数据送入数据缓存器中; 步骤二二三、外部控制器读取CF卡状态;步骤二二四、CF卡是否准备好接收1扇区数据;如果是,则执行步骤二二五;如果 步骤二二三;步骤二二五、使N = N+l,外部控制器将数据缓存器中的数据写入CF卡的第N个扇据,当CF卡允许外部控制器进行写操作后,控制器实际上每次只向CF卡写入1扇区数据, 当写完1扇区数据后有一段时间不向CF中写数据,在这段时间中需要判断CF卡是否可以 接收下一扇区数据。当CF卡可以接收下一扇区数据后,主控制器会向CF卡再次写入l扇 区数据。如此循环,直到将申请的256扇区数据全部写完。之后控制器可继续向CF卡申请 写256扇区的数据。 从上述分析中可以看出,进行每次向CF卡申请写256扇区数据,但这256扇区数 据并不是一次写完,而实际上是分256次写完。根据上述这个特点,提出了改进的CF卡读 写控制方法,改进的读写方法如图2所示。 在改进的方法中,为了不影响读写速度,每次仍旧向CF卡申请256扇区的数据。但 每次不是等到FIFO中的数据量到256扇区时才开始写CF卡,而是当FIFO中的数据量到1 扇区时,就开始写CF卡。写完1扇区数据后,先判断FIFO中的数据量是否再次到1扇区, 当所述数据量到达1扇区后,同样判断CF卡是否可接收1扇区数据,然后将FIFO中的1扇 区数据写入CF卡中。如此循环,当申请的256扇区数据全部写入CF卡后,控制器可以向CF 卡提出下一次申请。 和传统的CF卡读写控制方法相比,改进的方法把对存储资源的要求从原来的 256kB降低到lkB,很大程度上减少了对控制器存储资源的要求,使得内部存储资源较少的 控制器同样可以实现与CF卡之间的高速数据传输。权利要求能够降低控制器缓存资源的CF卡的快速数据读写控制方法,其特征是它的具体过程为步骤一、外部控制器检测数据读写指令;步骤二、外部控制器判断检测到的数据读写指令是否是向CF卡写入数据的指令,如果判断结果为是,则执行步骤二二;否则执行步骤二一;步骤二一、外部控制器判断检测到的数据读写指令是否是读取CF卡内的数据的指令,如果判断结果为是,则执行步骤二一一;如果判断结果为否,则返回执行步骤一;步骤二一一、外部控制器向CF卡申请读取256扇区数据;步骤二一二、初始化变量N,使N=0;步骤二一三、外部控制器读取数据缓存器剩余空间;步骤二一四、外部控制器判断数据缓存器剩余空间是否本文档来自技高网
...

【技术保护点】
能够降低控制器缓存资源的CF卡的快速数据读写控制方法,其特征是:它的具体过程为:步骤一、外部控制器检测数据读写指令;步骤二、外部控制器判断检测到的数据读写指令是否是向CF卡写入数据的指令,如果判断结果为是,则执行步骤二二;否则执行步骤二一;步骤二一、外部控制器判断检测到的数据读写指令是否是读取CF卡内的数据的指令,如果判断结果为是,则执行步骤二一一;如果判断结果为否,则返回执行步骤一;步骤二一一、外部控制器向CF卡申请读取256扇区数据;步骤二一二、初始化变量N,使N=0;步骤二一三、外部控制器读取数据缓存器剩余空间;步骤二一四、外部控制器判断数据缓存器剩余空间是否大于1扇区;如果判断结果为是,则执行步骤二一五,如果判断结果为否,则返回执行步骤二一三;步骤二一五、外部控制器读取CF卡状态;步骤二一六、判断CF卡的状态是否准备好发送1个扇区的数据;如果判断结果为是,则执行步骤二一七;如果判断结果为否,则返回执行步骤二一五;步骤二一七、使N=N+1,外部控制器读取CF卡的第N个扇区的数据并写入数据缓存器中;步骤二一八、判断变量N的值是否大于或等于256,如果判断结果为是,则执行步骤二一九;如果判断结果为否,则返回执行步骤二一三;步骤二一九、外部控制器是否给出停止读取信号;如果是,则返回执行步骤一;如果否,则返回执行步骤二一一;步骤二二、外部控制器向CF卡申请写256扇区的数据;步骤二二一、初始化变量N,使N=0;步骤二二二、外部控制器将1扇区的数据送入数据缓存器中;步骤二二三、外部控制器读取CF卡状态;步骤二二四、CF卡是否准备好接收1扇区数据;如果是,则执行步骤二二五;如果否,则执行步骤二二三;步骤二二五、使N=N+1,外部控制器将数据缓存器中的数据写入CF卡的第N个扇区;步骤二二六、判断变量N是否大于或等于256,如果判断结果为是,则执行步骤二二七;如果判断结果为否,则执行步骤二二二;步骤二二七、外部控制器是否给出停止信号,如果是,则返回执行步骤一;如果否,则执行步骤二二。...

【技术特征摘要】

【专利技术属性】
技术研发人员:乔立岩付宁梁军徐红伟吴江伟彭喜元
申请(专利权)人:哈尔滨工业大学
类型:发明
国别省市:93[中国|哈尔滨]

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

1
相关领域技术
  • 暂无相关专利