一种基于环形缓冲区的无线通信数据处理方法技术

技术编号:19352223 阅读:31 留言:0更新日期:2018-11-07 17:31
本发明专利技术公开了一种基于环形缓冲区的无线通信数据处理方法,包括以下步骤:(1)初始化设置;(2)写数据;(3)读数据。通过上述方式,本发明专利技术基于环形缓冲区的无线通信数据处理方法通过对数据写入之前进行长度限制,并在接受端缓存数据,另外考虑到无线通信系统小基站,对于多线程和多进程的写入或读出模块,在写入模块间以及读出模块间进行临界区处理,对数据的处理速度和安全性提供一定保障,对于读入和读出模块进行数据的协调和一致性处理,同时也节省了内存空间,在基于环形缓冲区的无线通信数据处理方法的普及上有着广泛的市场前景。

【技术实现步骤摘要】
一种基于环形缓冲区的无线通信数据处理方法
本专利技术涉及通信领域,特别是涉及一种基于环形缓冲区的无线通信数据处理方法。
技术介绍
在无线通信系统中,大量数据的发送和接收处理成为难点,如果直接调用内存的分配和释放,这样频繁的内存分配不但增加了系统开销,更使得内存碎片不断增多,非常不利于我们的服务器长期稳定运行。也许我们可以使用内存池,但是对于这种按照严格的先进先出顺序处理的,块大小并不算小的,而且块大小也并不统一的内存分配情况来说,更多使用的是一种叫做环形缓冲区的方案。环形缓冲区是一项很好的技术,不用频繁的分配内存,而且在大多数情况下,内存的反复使用也使得我们能用更少的内存块做更多的事。在程序的两个模块间进行通讯的时候,缓冲区成为一个经常使用的机制。环形队列的特点是,不需要进行动态的内存释放和分配,使用固定大小的内存空间反复使用。环形缓冲区通常有一个读指针和一个写指针。读指针指向环形缓冲区中可读的数据,写指针指向环形缓冲区中可写的缓冲区。通过移动读指针和写指针就可以实现缓冲区的数据读取和写入。在通常情况下,环形缓冲区的读用户仅仅会影响读指针,而写用户仅仅会影响写指针。如果仅仅有一个读用户和一个写用户,那么不需要添加互斥保护机制就可以保证数据的正确性。如果有多个读写用户访问环形缓冲区,那么必须添加互斥保护机制来确保多个用户互斥访问环形缓冲区。在环形缓冲区添加和读取数据的动态过程中,如果不超出环形缓冲空间buffer,同时也没有其他进程的“打扰”,那么数据还是安全缓存的。当读指针和写指针相等时,表明缓冲区是空的,而只要写指针在读指针后面时,表明缓冲区已满。缓冲buffer是8,但写入的速度大于读的速度就会逐渐超出缓冲区的范围,所以要加入保护机制,虽然现在的环形缓冲有如下状态查询机制:(1)对于push(写入数据)的操作,需要操作前等待队列已经有了空间,也就是说队列没有满的状态。等到这个状态出现了,才继续进行push的操作,否则,push操作挂起,(2)对于get(读出数据)的操作,需要操作前等待队列有了数据,也就是说队列不为空的状态。等到这个状态出现了,才继续进行get的操作,否则,get操作挂起。但对于LTE微机站平台而言,还会出现不可预知的系统数据错误,所以在数据写入之前对数据进行长度限定,在限定之外的中断缓存区会临时缓存过多的数据,相当于又加入了一级缓存,从而控制写入速度,避免过快的数据写入导致数据阻塞出现系统的不稳定。对于另一种可能出现的问题就是进程或中断的“打扰”,因为对于实时操作系统,为了保证实时性,随时可能有其他进程或中断打断数据传输,也就是数据可能会在缓冲区进行处理时遭到破坏,此时很有必要对于我们的数据缓冲区进行临界保护,利用微机站通信系统相关机制实现临界保护。
技术实现思路
本专利技术主要解决的技术问题是提供一种基于环形缓冲区的无线通信数据处理方法,通过对数据写入之前进行长度限制,并在接受端缓存数据,另外考虑到无线通信系统小基站,对于多线程和多进程的写入或读出模块,在写入模块间以及读出模块间进行临界区处理,对数据的处理速度和安全性提供一定保障,对于读入和读出模块进行数据的协调和一致性处理,同时也节省了内存空间,在基于环形缓冲区的无线通信数据处理方法的普及上有着广泛的市场前景。为解决上述技术问题,本专利技术提供一种基于环形缓冲区的无线通信数据处理方法,包括以下步骤:(1)初始化设置:设置读指针P_R、写指针P_W、系统信号量指针Buf_sem、缓冲区接收计数值flag,系统在初始化的时候首先申请一段内存空间,分别将写指针P_W和读指针P_R指向内存块开始的地址处、将系统信号量指针Buf_sem初始化为0、将缓冲区接收计数值flag初始化为0;(2)写数据:在向环形缓冲区写入数据时,首先判断缓冲区接收计数值flag与缓冲区的大小,如果缓冲区接收计数值flag大于缓冲区,那么该任务就会被阻塞等待,直到缓冲区有空间时才会被唤醒,如果缓冲区接收计数值flag小于缓冲区,系统暂时进入临界区对系统进行临界保护,防止系统产生中断,以避免其他的任务破坏本任务的缓冲区数据,然后将缓冲区接收计数值flag+1,将要写入的值放入写指针P_W指向的地址处,然后将写指针P_W+1,判断是否等于缓冲的末尾,如果是,那么将写指针P_W指向缓冲区的首地址处,将系统信号量指针Buf_sem+1,退出临界区写操作完毕;(3)读数据:在向环形缓冲区读取数据时,首先判断系统信号量指针Buf_sem的值是否可取,如果系统信号量指针Buf_sem的值小于0,那么本任务进入阻塞状态,直到有信号量时才继续执行,如果系统信号量指针Buf_sem的值大于0,那么系统进入临界区对系统进行临界保护,然后缓冲区接收计数值flag-1,将读指针P_R指向地址处的值取出,使读指针P_R+1,再判断读指针P_R是否已经指向环形缓冲区的末尾,如果是,则将读指针P_R指向环形缓冲区的开头,以上操作完毕后退出临界区,返回取出的值即可实现环形缓冲区的读操作。从程序初始化开始执行到环形缓存,在进入缓存之前一直到数据读出结束会对数据处理过程进行临界段保护,当外部有进程或中断访问会暂时保留外部访问地址的位置,待数据处理结束会执行外部进程或中断部分程序。本专利技术的有益效果是:本专利技术基于环形缓冲区的无线通信数据处理方法通过对数据写入之前进行长度限制,并在接受端缓存数据,另外考虑到无线通信系统小基站,对于多线程和多进程的写入或读出模块,在写入模块间以及读出模块间进行临界区处理,对数据的处理速度和安全性提供一定保障,对于读入和读出模块进行数据的协调和一致性处理,同时也节省了内存空间,在基于环形缓冲区的无线通信数据处理方法的普及上有着广泛的市场前景。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:图1是本专利技术的基于环形缓冲区的无线通信数据处理方法一较佳实施例的流程示意图。具体实施方式下面将对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。请参阅图1,本专利技术实施例包括:一种基于环形缓冲区的无线通信数据处理方法,包括以下步骤:(1)初始化设置:设置读指针P_R、写指针P_W、系统信号量指针Buf_sem、缓冲区接收计数值flag,系统在初始化的时候首先申请一段内存空间,分别将写指针P_W和读指针P_R指向内存块开始的地址处、将系统信号量指针Buf_sem初始化为0、将缓冲区接收计数值flag初始化为0;(2)写数据:在向环形缓冲区写入数据时,首先判断缓冲区接收计数值flag与缓冲区的大小,如果缓冲区接收计数值flag大于缓冲区,那么该任务就会被阻塞等待,直到缓冲区有空间时才会被唤醒,如果缓冲区接收计数值flag小于缓冲区,系统暂时进入临界区对系统进行临界保护,防止系统产生中断,以避免其他的任务破坏本任务的缓冲区数本文档来自技高网
...

【技术保护点】
1.一种基于环形缓冲区的无线通信数据处理方法,其特征在于,包括以下步骤:(1)初始化设置:设置读指针P_R、写指针P_W、系统信号量指针Buf_sem、缓冲区接收计数值flag,系统在初始化的时候首先申请一段内存空间,分别将写指针P_W和读指针P_R指向内存块开始的地址处、将系统信号量指针Buf_sem初始化为0、将缓冲区接收计数值flag初始化为0;(2)写数据:在向环形缓冲区写入数据时,首先判断缓冲区接收计数值flag与缓冲区的大小,如果缓冲区接收计数值flag大于缓冲区,那么该任务就会被阻塞等待,直到缓冲区有空间时才会被唤醒,如果缓冲区接收计数值flag小于缓冲区,系统暂时进入临界区对系统进行临界保护,防止系统产生中断,以避免其他的任务破坏本任务的缓冲区数据,然后将缓冲区接收计数值flag+1,将要写入的值放入写指针P_W指向的地址处,然后将写指针P_W+1,判断是否等于缓冲的末尾,如果是,那么将写指针P_W指向缓冲区的首地址处,将系统信号量指针Buf_sem+1,退出临界区写操作完毕;(3)读数据:在向环形缓冲区读取数据时,首先判断系统信号量指针Buf_sem的值是否可取,如果系统信号量指针Buf_sem的值小于0,那么本任务进入阻塞状态,直到有信号量时才继续执行,如果系统信号量指针Buf_sem的值大于0,那么系统进入临界区对系统进行临界保护,然后缓冲区接收计数值flag‑1,将读指针P_R指向地址处的值取出,使读指针P_R+1,再判断读指针P_R是否已经指向环形缓冲区的末尾,如果是,则将读指针P_R指向环形缓冲区的开头,以上操作完毕后退出临界区,返回取出的值即可实现环形缓冲区的读操作。...

【技术特征摘要】
1.一种基于环形缓冲区的无线通信数据处理方法,其特征在于,包括以下步骤:(1)初始化设置:设置读指针P_R、写指针P_W、系统信号量指针Buf_sem、缓冲区接收计数值flag,系统在初始化的时候首先申请一段内存空间,分别将写指针P_W和读指针P_R指向内存块开始的地址处、将系统信号量指针Buf_sem初始化为0、将缓冲区接收计数值flag初始化为0;(2)写数据:在向环形缓冲区写入数据时,首先判断缓冲区接收计数值flag与缓冲区的大小,如果缓冲区接收计数值flag大于缓冲区,那么该任务就会被阻塞等待,直到缓冲区有空间时才会被唤醒,如果缓冲区接收计数值flag小于缓冲区,系统暂时进入临界区对系统进行临界保护,防止系统产生中断,以避免其他的任务破坏本任务的缓冲区数据,然后将缓冲区接收计数值flag+1,...

【专利技术属性】
技术研发人员:孙瑞玮
申请(专利权)人:江苏中科芯核电子科技有限公司
类型:发明
国别省市:江苏,32

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

1