一种用环形数据缓冲区读写批量数据的方法及装置制造方法及图纸

技术编号:7592312 阅读:234 留言:0更新日期:2012-07-21 07:44
本发明专利技术公开了一种用环形数据缓冲区读写批量数据的方法及装置,所述方法包括:当有数据写请求时,写指针计算出在环形数据缓冲区当前要写入数据的起始位置,读取外设数据,从该起始位置开始向所述环形缓冲区写入数据,写完后写指针的数值加1;当收到读数据请求时,读指针计算当前需要读取的数据所在的位置,从该位置开始读取数据,读完后述读指针的数值加1;当环形数据缓冲区出现异常,根据异常类型执行相应的操作,本发明专利技术中,写进程与读进程分开执行,监控环形数据缓冲区的异常,当环形数据缓冲区出现异常时,调整读指针及写指针,使得读数据及写数据可以顺利进行,保证了数据传输的效率,进一步提供了数据传输的精确度。

【技术实现步骤摘要】

本专利技术涉及图像数据处理领域,尤其涉及的是一种用环形数据缓冲区读写批量数据的方法及装置
技术介绍
在图像处理中,经常会需要采集批量数据或者及显示多幅图像的,保证数据的完整性是图像处理的基本要求,因此,在图像处理过程中数据的传输与通信就是关键。通常,数据都是从外设数据缓冲到终端设备的内存后再进行处理的,然而不论是个人电脑(PC)还是其它嵌入式设备终端,内存总是有限的,一次性地申请一个内存来缓冲这些数据是比较困难的,所以就需要使用环形数据缓冲区的数据结构来解决这一难题。环形缓冲区是一个先进先出的循环缓冲区,通常有一个读指针和一个写指针,程序中通过移动读指针和写指针就可以实现缓冲区的数据读取和写入,由于有时读指针与写指针是同时使用的,所以会使得缓冲区产生互斥问题,这会影响到数据传输的准确性及数据传输的效率。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的上述缺陷,提供一种用环形数据缓冲区读写批量数据的方法及装置,使用环形缓冲区与队列控制相结合的方法来解决图像处理过程中在缓冲区产生读取数据与写入数据互斥的问题。本专利技术解决技术问题所采用的技术方案如下一种用环形数据缓冲区读写批量数据的方法,包括步骤A、当有数据写请求时,写指针计算出在环形数据缓冲区当前要写入数据的起始位置, 读取外设数据,从该起始位置开始向所述环形缓冲区写入数据,写完后所述写指针的数值加I ;B、当收到读数据请求时,读指针计算当前需要读取的数据所在的位置,从该位置开始读取数据,读完后所述读指针的数值加I ;C、当所述环形数据缓冲区出现异常,根据异常类型执行相应的操作,其中,所述异常的类型包括所述环形数据缓冲区溢出或为空。优选地,所述步骤A之前还包括Al、定义多个缓冲区,其中,所述缓冲区的个数与所述环形数据缓冲区的个数相等;A2、建立等待列队;A3、申请至少一个缓冲区作为环形数据缓冲区,所述缓冲区的地址单元是连续的;A4、初始化所述读指针、写指针的数值,使所述读指针、写指针的数值均为O;所述步骤B之前还包括BI、判断是否收到唤醒信号,如果是,则转向步骤B2,否则返回等待唤醒信号;B2、判断当前的读指针的绝对位置是否小于写指针的绝对位置,如果判断结果为是时,则进入步骤B,否则表示无数据可读,返回所述步骤BI。优选地,所述步骤C具体包括Cl、当所述写指针的相对位置超出或等于所述读指针的相对位置,并且所述写指针的绝对位置超出所述读指针的绝对位置,则所述环形缓冲区溢出,发出溢出信号,并进入步骤 C3 ;C2、当所述写指针的相对位置等于所述读指针的相对位置,并且所述写指针的绝对位置与所述读指针的绝对位置相等,则所述环形数据缓冲区为空,则返回所述环形数据缓冲区为空的信号,并进入步骤C4;C3、调整所述读指针及所述写指针的绝对位置,使得所述写指针超前所述读指针;C4、读指针进入等待状态。优选地,所述步骤C3之后具体还包括当所述写指针的绝对位置等于或者超出所述读指针的绝对位置时,并且所述写指针的相对位置与所述读指针的相对位置相等时,分别重新对所述读指针及写指针进行调整,使得所述写指针超前所述读指针。优选地,所述读指针的绝对位置是指所述读指针相对于所述环形数据缓冲区首地址零位置实际所表示的数值;所述写指针的绝对位置是指所述写指针相对于所述环形数据缓冲区首地址零位置实际所表示的数值;所述读指针的相对位置是指所述读指针当前的位置相对于所述环形数据缓冲区首地址的距离,所述写指针的相对位置是指所述写指针当前的位置相对于所述环形数据缓冲区首地址的距离。本专利技术还提供一种实现上述方法的装置一种用环形数据缓冲区读写批量数据的装置,包括写指针控制单元,当有数据写请求时,用于控制写指针计算出在环形数据缓冲区当前要写入数据的起始位置,读取外设数据,从该起始位置开始向所述环形缓冲区写入数据,写完后所述写指针的数值加I;读指针控制单元,当收到读数据请求时,用于控制读指针计算当前需要读取的数据所在的位置,从该位置开始读取数据,读完后所述读指针的数值加I;指针调整单元,当所述环形数据缓冲区出现异常,根据异常类型执行相应的操作,其中,所述异常的类型包括所述环形数据缓冲区溢出或为空。优选地,其还包括定义单元,用于定义多个缓冲区,其中,所述缓冲区的个数与所述环形数据缓冲区的个数相等;列队建立单元,用于建立等待列队;缓冲区申请单元,用于申请至少一个缓冲区作为环形数据缓冲区,所述缓冲区的地址单元是连续的;初始化单元,用于初始化所述读指针、写指针的数值,使所述读指针、写指针的数值均为O。优选地,所述指针调整单元包括第一判断模块,用于判断所述读指针是否收到唤醒信号,如果为是,则唤醒所述读指针,接着并判断当前的读指针的绝对位置是否小于写指针的绝对位置;第二判断模块,用于判断所述环形数据缓冲区是否异常,根据异常类型向调整控制模块发送相对应的所述环形数据缓冲区异常信号,其中,所述异常信号包括所述环形数据缓冲区溢出信号或所述环形数据缓冲区为空信号;调整控制模块,当接收到所述环形数据缓冲区溢出信号时,用于调整所述读指针及所述写指针的绝对位置,使得所述写指针超前所述读指针;或当接收到所述环形数据缓冲区为空信号时,用于控制所述读指针进入等待状态。优选地,所述第二判断模块还用于再次判断所述写指针的绝对位置是否等于或者超出所述读指针的绝对位置,并且判断所述写指针的相对位置与所述读指针的相对位置是否相等;所述指针调整单元还用于当所述写指针的绝对位置等于或超出所述读指针的绝对位置时,并且当所述写指针的相对位置等于所述读指针的相对位置时,分别重新对所述读指针及写指针进行调整,使得所述写指针超前所述读指针。优选地,所述读指针的绝对位置是指所述读指针相对于所述环形数据缓冲区首地址零位置实际所表示的数值;所述写指针的绝对位置是指所述写指针相对于所述环形数据缓冲区首地址零位置实际所表示的数值;所述读指针的相对位置是指所述读指针当前的位置相对于所述环形数据缓冲区首地址的距离,所述写指针的相对位置是指所述写指针当前的位置相对于所述环形数据缓冲区首地址的距离。本专利技术所提供的用环形数据缓冲区读写批量数据的方法及装置,写进程与读进程分开执行,实时监控环形数据缓冲区的异常,当所述环形数据缓冲区出现异常时,调整读指针及写指针,使得读数据及写数据可以顺利进行,避免了读进程与写进程同时进行时对环形数据缓冲区进行操作而造成的临界资源访问异常的问题,保证了数据传输的效率,进一步提供了数据传输的精确度。附图说明图I是本专利技术实施例的用环形数据缓冲区读写批量数据的方法流程图。图2是本专利技术应用实施例的写环形缓冲区的过程流程图。图3是本专利技术应用实施例的读环形缓冲区的过程流程图。图4是本专利技术应用实施例的环形数据缓冲区调整过程流程图。图5是本专利技术实施例的用环形数据缓冲区读写批量数据的装置原理框图。图6是本专利技术应用实施例的环形缓冲区结构示意图。具体实施例方式本专利技术所提供的用环形数据缓冲区读写批量数据的方法及装置,为使本专利技术的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本专利技术进一步详细说明。 应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。本专利技术实施例的一种用环形数据缓冲区读写批量数据的方法,如图I所示,主要包括以下步本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:刘亚萍
申请(专利权)人:TCL集团股份有限公司
类型:发明
国别省市:

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

1
相关领域技术