一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种带有动态缓冲区分配的SPI转多串口的电路和方法与流程

2022-02-21 09:09:05 来源:中国专利 TAG:

一种带有动态缓冲区分配的spi转多串口的电路和方法
技术领域
1.本发明涉及集成电路技术领域,尤其涉及一种带有动态缓冲区分配的spi转多串口的电路和方法。


背景技术:

2.嵌入式系统常常会遇到多个串口负载应用需求,而微处理器芯片系统原生的串口数目有限,因此就需要通过微处理器原生高速总线来扩展更多的串口,使嵌入式系统有更好的接口兼容能力,spi转多串口芯片就是这种微处理器原生高速总线扩展串口的专有芯片方案,其能够单独设置每个子通道波特率,校验,实现子通道串口通过spi的数据透传,并且每个子通道串口都有固定的发送fifo先入先出和接收fifo,能够解决串口和spi两个处于不同时钟域的通讯数据缓冲问题;
3.目前的每子通道串口分配固定缓存深度的电路方案,均是每个串口分配固定缓存深度,存在无法应对负载中某个串口通讯频次高,数据量大,缓冲区大小不够用的风险,例如,子通道一的波特率非常高,单位时间数据量非常大,需要的缓存大于芯片分配给每通道的固定缓存,在嵌入式处理器来不及把子通道一缓存中的数据读出的情况下,缓存中的数据可能就已经被刷新,导致通讯数据丢失情况。假设现在子通道二的串口负载的通讯波特率低,或是单位时间内数据量比较小,导致芯片分配的缓存有一部分始终用不上,造成缓存浪费的问题。因此,这种每子通道串口固定分配缓存的spi转多串口电路存在应用受限的问题,因此,本发明提出一种带有动态缓冲区分配的spi转多串口的电路和方法以解决现有技术中存在的问题。


技术实现要素:

4.针对上述问题,本发明的目的在于提出一种带有动态缓冲区分配的spi转多串口的电路和方法,该带有动态缓冲区分配的spi转多串口的电路和方法解决了无法应对负载中某个串口通讯频次高,数据量大,缓冲区大小不够用的风险的问题。
5.为实现本发明的目的,本发明通过以下技术方案实现:一种带有动态缓冲区分配的spi转多串口的电路和方法,包括spi接口控制寄存器电路、发送缓存电路、发送移位寄存器电路、发送移位寄存器电路、接收移位寄存器电路、接收缓存电路和串口通讯负载率仲裁电路,所述spi接口控制寄存器电路用来转发上下行数据至发送缓存和接收缓存中,同时接收来自spi口的串口通讯设置数据,转发至子通道串口控制寄存器配置每路子通道串口的波特率、校验等通讯参数;
6.所述发送缓存电路用于接收来自spi口的下行数据,其大小由串口通讯负载率仲裁电路输出值控制,可以动态改变;
7.所述发送移位寄存器电路是用于按照波特率产生电路控制,将发送缓存内的待发送数据按位依次串行输出;
8.所述接收移位寄存器电路使用于按照波特率产生电路控制,将从串口接收串行数
据位,串并转换,送入到接收缓存内;
9.所述接收缓存电路是用于接收来自接收移位寄存器电路串并转换后的数据,并转发至spi接口控制寄存器电路经spi接口发送给上位机,其大小由串口通讯负载率仲裁电路输出值控制,可以动态改变;
10.所述串口通讯负载率仲裁电路是用于实时监测每路子串口的通讯数据量情况,根据每路负载情况,动态分配每路子串口的发送缓存和接收缓存大小。
11.进一步改进在于:所述spi是一种同步串行外设接口,进行使mcu与各种外围设备以串行方式进行通信以交换信息。
12.进一步改进在于:所述spi接口控制寄存器发送缓存数据通过串口通讯负载率仲裁电路进行实时动态调整接收缓冲区大小。
13.进一步改进在于:所述串口通讯负载率仲裁电路与发送缓存和接收缓存的相连,进行实时获得发送缓存和接收缓存中的数据容量和控制发送缓存和接收缓存的深度。
14.进一步改进在于:所述串口通讯负载率仲裁电路实时计算固定时间内每路串口的通讯数据量。
15.进一步改进在于:所述串口通讯负载率仲裁电路实时计算固定时间由所有串口中的最低波特率确定。
16.进一步改进在于:所述串口通讯负载率仲裁电路输出数据控制每路串口的发送缓存和接收缓存的深度。
17.进一步改进在于:包括以下步骤:
18.步骤一:在电路上电后,串口通讯负载率仲裁电路监测到的通讯数据量为0,此时总体缓存的1/2均匀分配给每路串口的发送缓存和接收缓存,剩下1/2总体分成100块区域,并且每一块缓存区域首地址和尾地址分别存入串口通讯负载率仲裁电路ram中;
19.步骤二:当电路工作后,串口通讯负载率仲裁电路比较各路串口设置的波特率,然后取其最小值,设置串口通讯负载率仲裁时间为:
20.t=最小波特率/10毫秒;
21.步骤三:串口通讯负载率仲裁电路对各个子串口在串口通讯负载率仲裁时间内接收和发送的数据计数;
22.步骤四:串口通讯负载率仲裁电路归一化各子串口的发送接收的数据数,并按照归一化比例分配剩余的100块缓存区域;
23.步骤五:串口通讯负载率仲裁电路实时监测各子串口缓存的占有率情况,并且对占有率低于50%的子串口缓存,同时降低其在串口通讯负载率仲裁电路ram中子串口缓存块的个数;
24.步骤六:对步骤五中调整出来的各子串口剩余缓存,重新分成100块区域,然后重复步骤二至步骤六。
25.本发明的有益效果为:本发明根据每路串口实时负载率动态调整各路串口的数据缓存情况,可以极大程度避免每路固定缓存电路的限制,提高缓存利用率,根据外在负载通讯量,自动调整缓存,能够有效解决串口负载通讯率不均导致芯片电路应用受限的问题。
附图说明
26.图1为本发明的电路结构框架图。
27.图2为本发明的电路图。
28.图3为本发明的串口通讯负载率仲裁电路示意图。
29.图4为本发明串口通讯负载率仲裁电路工作过程示意图。
具体实施方式
30.为了加深对本发明的理解,下面将结合实施例对本发明做进一步详述,本实施例仅用于解释本发明,并不构成对本发明保护范围的限定。
31.实施例一
32.根据图1至图4所示,本实施例提供了一种带有动态缓冲区分配的spi转多串口的电路和方法,包括spi接口控制寄存器电路、发送缓存电路、发送移位寄存器电路、发送移位寄存器电路、接收移位寄存器电路、接收缓存电路和串口通讯负载率仲裁电路,其特征在于:所述spi接口控制寄存器电路用来转发上下行数据至发送缓存和接收缓存中,同时接收来自spi口的串口通讯设置数据,转发至子通道串口控制寄存器配置每路子通道串口的波特率、校验等通讯参数;
33.所述发送缓存电路用于接收来自spi口的下行数据,其大小由串口通讯负载率仲裁电路输出值控制,可以动态改变;
34.所述发送移位寄存器电路是用于按照波特率产生电路控制,将发送缓存内的待发送数据按位依次串行输出;
35.所述接收移位寄存器电路使用于按照波特率产生电路控制,将从串口接收串行数据位,串并转换,送入到接收缓存内;
36.所述接收缓存电路是用于接收来自接收移位寄存器电路串并转换后的数据,并转发至spi接口控制寄存器电路经spi接口发送给上位机,其大小由串口通讯负载率仲裁电路输出值控制,可以动态改变;
37.所述串口通讯负载率仲裁电路是用于实时监测每路子串口的通讯数据量情况,根据每路负载情况,动态分配每路子串口的发送缓存和接收缓存大小。
38.所述spi是一种同步串行外设接口,进行使mcu与各种外围设备以串行方式进行通信以交换信息。
39.所述spi接口控制寄存器发送缓存数据通过串口通讯负载率仲裁电路进行实时动态调整接收缓冲区大小。
40.所述串口通讯负载率仲裁电路与发送缓存和接收缓存的相连,进行实时获得发送缓存和接收缓存中的数据容量和控制发送缓存和接收缓存的深度。
41.所述串口通讯负载率仲裁电路实时计算固定时间内每路串口的通讯数据量。
42.所述串口通讯负载率仲裁电路实时计算固定时间由所有串口中的最低波特率确定。
43.所述串口通讯负载率仲裁电路输出数据控制每路串口的发送缓存和接收缓存的深度。
44.包括以下步骤:
45.步骤一:在电路上电后,串口通讯负载率仲裁电路监测到的通讯数据量为0,此时总体缓存的1/2均匀分配给每路串口的发送缓存和接收缓存,剩下1/2总体分成100块区域,并且每一块缓存区域首地址和尾地址分别存入串口通讯负载率仲裁电路ram中;
46.步骤二:当电路工作后,串口通讯负载率仲裁电路比较各路串口设置的波特率,然后取其最小值,设置串口通讯负载率仲裁时间为:
47.t=最小波特率/10毫秒;
48.步骤三:串口通讯负载率仲裁电路对各个子串口在串口通讯负载率仲裁时间内接收和发送的数据计数;
49.步骤四:串口通讯负载率仲裁电路归一化各子串口的发送接收的数据数,并按照归一化比例分配剩余的100块缓存区域;
50.步骤五:串口通讯负载率仲裁电路实时监测各子串口缓存的占有率情况,并且对占有率低于50%的子串口缓存,同时降低其在串口通讯负载率仲裁电路ram中子串口缓存块的个数;
51.步骤六:对步骤五中调整出来的各子串口剩余缓存,重新分成100块区域,然后重复步骤二至步骤六。
52.使用时:首先在电路上电后,串口通讯负载率仲裁电路监测到的通讯数据量为0,此时总体缓存的1/2均匀分配给每路串口的发送缓存和接收缓存,剩下1/2总体分成100块区域,并且每一块缓存区域首地址和尾地址分别存入串口通讯负载率仲裁电路ram中,其次当电路工作后,串口通讯负载率仲裁电路比较各路串口设置的波特率,然后取其最小值,之后串口通讯负载率仲裁电路对各个子串口在串口通讯负载率仲裁时间内接收和发送的数据计数,并且串口通讯负载率仲裁电路归一化各子串口的发送接收的数据数,并按照归一化比例分配剩余的100块缓存区域,同时串口通讯负载率仲裁电路实时监测各子串口缓存的占有率情况,并且对占有率低于50%的子串口缓存,同时降低其在串口通讯负载率仲裁电路ram中子串口缓存块的个数,最后将调整出来的各子串口剩余缓存,重新分成100块区域,然后重复上述步骤进行循环使用。
53.以上显示和描述了本发明的基本原理、主要特征和优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献