一种数据收发共用缓冲区的处理控制器和处理方法技术

技术编号:35121043 阅读:19 留言:0更新日期:2022-10-05 09:50
本发明专利技术公开了一种数据收发共用缓冲区的处理控制器和处理方法,所述处理控制器包括写入模块、通讯模块和解析模块,其中,写入模块用于将待发送数据写入缓冲区,通讯模块用于发送待发送数据以及接收外部数据,解析模块用于解析接收到的外部数据,所述写入模块、通讯模块和解析模块共用一个缓冲区对数据进行收发。本发明专利技术所述的处理控制器共用一个缓冲区进行数据收发,可以提高缓冲区的资源利用率以及瞬时数据吞吐率,有利于降低产品BOM成本和提高MCU运行效率。运行效率。运行效率。

【技术实现步骤摘要】
一种数据收发共用缓冲区的处理控制器和处理方法


[0001]本专利技术涉及微电子
,具体涉及一种数据收发共用缓冲区的处理控制器和处理方法。

技术介绍

[0002]对于SPI等同步全双工通讯接口,其数据的接收、发送可同步进行。在实际使用中,一般会分别设置接收数据缓冲区和发送数据缓冲区,来达到数据接收、发送的目的。因接收数据缓冲区和发送数据缓冲区相互独立,当某一方数据量较大而另一方数据量较小时,会出现缓冲区资源浪费的情况。对于RAM空间有限的MCU而言,缓冲区占用的RAM往往是不可忽略的,所以应该尽量避免缓冲区资源浪费。因此,应当高效地利用缓冲区资源,这对于降低产品BOM成本和提高MCU运行效率都是有益的。

技术实现思路

[0003]为解决上述问题,本专利技术提供了一种数据收发共用缓冲区的处理控制器和处理方法,大大提高了缓冲区资源的利用率。本专利技术的具体技术方案如下:一种数据收发共用缓冲区的处理控制器,包括缓冲区,所述处理控制器包括写入模块、通讯模块和解析模块,其中,写入模块用于将待发送数据写入缓冲区,通讯模块用于发送待发送数据以及接收外部数据,解析模块用于解析接收到的外部数据,所述写入模块、通讯模块和解析模块共用所述缓冲区对数据进行收发。本专利技术所述的处理控制器共用一个缓冲区进行数据收发,可以提高缓冲区的资源利用率以及瞬时数据吞吐率,有利于降低产品BOM成本和提高MCU运行效率。
[0004]进一步地,所述缓冲区包括若干个固定大小的缓冲块,所述缓冲块具有索引,所述索引为递增的等差数列,用于定位相应的缓冲块。为缓冲块分配索引,可以快速地定位到相关的缓冲块并执行数据的收发操作。
[0005]进一步地,所述处理控制器包括更新模块,所述更新模块用于对写入缓冲块索引、通讯缓冲块索引、待解析缓冲块索引和剩余可写入长度四个参数的值进行更新,所述写入缓冲块索引、通讯缓冲块索引和待解析缓冲块索引用于与缓冲块上的索引进行匹配,帮助定位相应的需要操作的缓冲块,所述剩余可写入长度表示写入缓冲块索引所定位的缓冲块中剩余存储空间的大小。更新模块只需对四个参数的值进行更新,参数少,便于维护。
[0006]进一步地,所述处理控制器包括保护模块,所述保护模块用于防止更新模块在参数更新时产生赋值异常。保护模块可以防止多模块交叉修改同一参数而导致赋值异常。
[0007]一种数据收发共用缓冲区的处理方法,所述方法包括如下步骤:S1,主机将缓冲区划分成若干个缓冲块,分配给每个缓冲块相应的索引,然后读取写入缓冲块索引、通讯缓冲块索引和待解析缓冲块索引;S2,主机进行通讯,将通讯缓冲块索引指向的缓冲块上的待发送数据发送出去,同时接收外部数据到该缓冲块中,然后更新通讯缓冲块索引,所述待发送数据是主机执行发送数据的指令时,根据写入缓冲块索引找到指向的缓冲块并写入的;S3,
根据待解析缓冲块索引,主机解析相应缓冲块上的外部数据以解除缓冲块占用,使该缓冲块可用于写入下一次的待发送数据,解析完成后更新待解析缓冲块索引。本专利技术所述的处理方法可使数据的收发共用一个缓冲区,提高了缓冲区的资源利用率以及瞬时数据吞吐率,有利于降低产品BOM成本和提高MCU运行效率。
[0008]进一步地,所述步骤S2中,待发送数据和外部数据可以是默认数据,所述默认数据是预先设置好的无特定意义的数据。
[0009]进一步地,所述步骤S2中,主机更新通讯缓冲块索引,包括如下步骤:S11,主机判断当前通讯缓冲块索引指向的缓冲块的下一个缓冲块是否为当前写入缓冲块索引指向的缓冲块,若否,则直接更新通讯缓冲块索引,若是,则进入S12;S12,主机判断当前写入缓冲块索引指向的缓冲块的下一个缓冲块是否为当前待解析缓冲块索引指向的缓冲块,若是,则暂停数据收发直至前述判断结果为否,若否,则更新通讯缓冲块索引、写入缓冲块索引和剩余可写入长度。暂停数据的收发,可以防止未解析的数据被覆盖,造成数据丢失。
[0010]进一步地,所述步骤S2中,主机将待发送数据写入相应的缓冲块,包括如下步骤:S21,主机判断待发送数据的长度是否大于预设长度,若是,则将其拆分为若干个小于或等于预设长度的数据块,然后进入S22,若否,直接进入S22;S22,主机判断即将写进缓冲块的数据的长度是否大于所述剩余可写入长度,若否,则将数据写入当前写入缓冲块索引指向的缓冲块中,随后更新剩余可写入长度并返回写入成功标识,若是,则继续判断当前写入缓冲块索引指向的缓冲块的下一个缓冲块是否为当前待解析缓冲块索引指向的缓冲块,若是,则返回写入失败标识,若否,则更新写入缓冲块索引和剩余可写入长度,随后将数据写入更新后的写入缓冲块索引指向的缓冲块中并返回写入成功标识;S23,主机重复执行S22直至将所有的待发送数据写入缓冲块中。当下一个缓冲块为待解析缓冲块索引对应的缓冲块时,不写入数据并返回失败标识,可以防止未解析的数据被覆盖,造成数据丢失。
[0011]进一步地,所述写入缓冲块索引、通讯缓冲块索引或待解析缓冲块索引的更新方法为,将所述索引的值加一个公差,所述公差为索引之间的公差,然后对缓冲块的数量值进行取余运算。取余运算可以实现从最后一个缓冲块返回第一个缓冲块,形成回环。
[0012]进一步地,所述写入缓冲块索引或剩余可写入长度在更新时,保护模块会为其做写锁保护。写锁保护可以防止多模块交叉修改同一参数而导致赋值异常。
附图说明
[0013]图1为本专利技术一种实施例所述数据收发共用缓冲区的处理控制器示意图。
[0014]图2为本专利技术一种实施例所述数据收发共用缓冲区的处理方法流程图。
具体实施方式
[0015]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行详细描述。应当理解,下面所描述的具体实施例仅用于解释本专利技术,并不用于限定本专利技术。
[0016]参照图1,一种数据收发共用缓冲区的处理控制器,所述处理控制器包括写入模块、通讯模块和解析模块。其中,写入模块用于将待发送数据写入缓冲区,通讯模块用于发送待发送数据以及接收外部数据,解析模块用于解析接收到的外部数据,所述写入模块、通讯模块和解析模块共用缓冲区对数据进行收发。所述缓冲区指的是SPI等同步全双工通讯
接口处的数据缓冲空间。一般而言,数据缓冲空间会分别设置接收数据缓冲区和发送数据缓冲区来达到数据接收、发送的目的。此时,数据的接收和发送在不同的缓冲区中进行,如果出现某一方数据量较大而另一方数据量较小,那么数据量大的一方可能会频繁地进入等待状态而数据量小的一方则闲置。这种情况会造成资源浪费。因此,在本专利技术中,将通过所述处理控制器让数据的收发在同一个缓冲区中进行。如图1所示,所述缓冲区划分为n个缓冲块,并分配有[0,n

1]的索引。索引应用在数据库中,数据库使用索引找到特定值,然后顺指针找到包含该值的行,快速访问数据库表中的特定信息。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。缓冲块的索引固定且唯一,在本实施例中,索引是一个呈递增的公差为1的等差数列。较优地,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据收发共用缓冲区的处理控制器,包括缓冲区,其特征在于,所述处理控制器包括写入模块、通讯模块和解析模块,其中,写入模块用于将待发送数据写入缓冲区,通讯模块用于发送待发送数据以及接收外部数据,解析模块用于解析接收到的外部数据,所述写入模块、通讯模块和解析模块共用所述缓冲区对数据进行收发。2.根据权利要求1所述的一种数据收发共用缓冲区的处理控制器,其特征在于,所述缓冲区包括若干个固定大小的缓冲块,所述缓冲块具有索引,所述索引为递增的等差数列,用于定位相应的缓冲块。3.根据权利要求1所述的一种数据收发共用缓冲区的处理控制器,其特征在于,所述处理控制器包括更新模块,所述更新模块用于对写入缓冲块索引、通讯缓冲块索引、待解析缓冲块索引和剩余可写入长度四个参数的值进行更新,所述写入缓冲块索引、通讯缓冲块索引和待解析缓冲块索引用于与缓冲块上的索引进行匹配,帮助定位相应的需要操作的缓冲块,所述剩余可写入长度表示写入缓冲块索引所定位的缓冲块中剩余存储空间的大小。4.根据权利要求1或3所述的一种数据收发共用缓冲区的处理控制器,其特征在于,所述处理控制器包括保护模块,所述保护模块用于防止更新模块在参数更新时产生赋值异常。5.一种数据收发共用缓冲区的处理方法,其特征在于,所述方法采用如权利要求1

4所述的任一项数据收发共用缓冲区的处理控制器实现,所述方法包括如下步骤:S1,主机将缓冲区划分成若干个缓冲块,分配给每个缓冲块相应的索引,然后读取写入缓冲块索引、通讯缓冲块索引和待解析缓冲块索引;S2,主机进行通讯,将通讯缓冲块索引指向的缓冲块上的待发送数据发送出去,同时接收外部数据到该缓冲块中,然后更新通讯缓冲块索引,所述待发送数据是主机执行发送数据的指令时,根据写入缓冲块索引找到指向的缓冲块并写入的;S3,根据待解析缓冲块索引,主机解析相应缓冲块上的外部数据以解除缓冲块占用,使该缓冲块可用于写入下一次的待发送数据,解析完成后更新待解析缓冲块索引。6.根据权利要求5所述的一种数据收发共用缓冲区的处理...

【专利技术属性】
技术研发人员:孙明周和文徐松舟黄惠保陈卓标
申请(专利权)人:珠海一微半导体股份有限公司
类型:发明
国别省市:

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

1