一种嵌入式芯片中传输控制方法和装置

文档序号:1200966 发布日期:2020-09-01 浏览:33次 >En<

阅读说明:本技术 一种嵌入式芯片中传输控制方法和装置 (Transmission control method and device in embedded chip ) 是由 张同 刘波 张启雨 王欣 于 2020-05-26 设计创作,主要内容包括:本申请实施例公开了一种嵌入式芯片中传输控制方法和装置。所述方法包括:确定通用型输入输出GPIO接口模拟的串行通信接口在传输单个比特时的通信时长,得到单比特基准值;在利用所述串行通信接口传输数据时,根据所述单比特基准值以及预先获取的需传输的数据的比特数,判断传输操作是否完成,得到判断结果;根据所述判断结果,对传输操作进行管理。(The embodiment of the application discloses a transmission control method and device in an embedded chip. The method comprises the following steps: determining the communication time length of a serial communication interface simulated by the general input/output GPIO interface when transmitting a single bit to obtain a single-bit reference value; when the serial communication interface is used for transmitting data, judging whether the transmission operation is finished or not according to the single-bit reference value and the pre-acquired bit number of the data to be transmitted to obtain a judgment result; and managing the transmission operation according to the judgment result.)

一种嵌入式芯片中传输控制方法和装置

技术领域

本申请实施例涉及信息处理领域,尤指一种嵌入式芯片中传输控制方法和装置。

背景技术

随着当前嵌入式芯片技术的发展,应用设计对嵌入式芯片的要求不断提高,产品开发需要更多的串行通信接口与***设备连接通信。芯片厂商由于成本以及芯片应用不会设计太多的串行通信接口,需要产品应用开发软件方式GPIO(General-purpose input/output,通用型输入输出)模拟串行通信接口。

图1为相关技术中利用软件模拟串行通信接口的接收方法的流程图。如图1所示,所述方法包括:

检测是否接收到GPIO中断;

在接收到GPIO中断后,开始接收操作,并开启定时器;

在接收过程中,检测定时器是否中断;

如果有定时器中断,则确定接收完成,否则,继续接收数据。

通过上述流程可以看出,上述方式通过GPIO中断以及定时器完成模拟串行通信方式。该方法通过GPIO中断检测数据接收的开始,然后通过定时器根据数据的波特率设置的定时时间确定定时器中断的发生时间,通过定时器中断确定完成数据接收。

在实际应用中,采用上述方式有可能会导致数据接收以及发送失败。

发明内容

为了解决上述任一技术问题,本申请实施例提供了一种嵌入式芯片中传输控制方法和装置。

为了达到本申请实施例目的,本申请实施例提供了一种嵌入式芯片中传输控制方法,包括:

确定通用型输入输出GPIO接口模拟的串行通信接口在传输单个比特时的通信时长,得到单比特基准值;

在利用所述串行通信接口传输数据时,根据所述单比特基准值以及预先获取的需传输的数据的比特数,判断传输操作是否完成,得到判断结果;

根据所述判断结果,对传输操作进行管理。

一种嵌入式芯片中传输控制装置,包括:

GPIO接口,作为串行通信接口使用;

定时器,用于对所述串行通信接口传输数据的时间进行计时;

处理器,用于根据所述定时器的时间信息,执行上文所述的方法。

一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上文所述的方法。

一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上文所述的方法。

上述技术方案中的一个技术方案具有如下优点或有益效果:

通过确定GPIO接口模拟的串行通信接口在传输单个比特时的通信时长,得到单比特基准值,在利用所述串行通信接口传输数据时,根据所述单比特基准值以及预先获取的需传输的数据的比特数,判断传输操作是否完成,得到判断结果,根据所述判断结果,对传输操作进行管理,通过获取单比特基准值,可以消除由于芯片内部时钟差异性造成的固定计数器计数值所带来的偏差,再利用该单比特基准值进行传输完成的判断,可以保证系统的通信数据的准确传输,避免传输失败的发生。

本申请实施例的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请实施例而了解。本申请实施例的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本申请实施例技术方案的进一步理解,并且构成说明书的一部分,与本申请实施例的实施例一起用于解释本申请实施例的技术方案,并不构成对本申请实施例技术方案的限制。

图1为相关技术中利用软件模拟串行通信接口的接收方法的流程图;

图2为本申请实施例提供的嵌入式芯片中传输控制方法的流程图;

图3为本申请实施例提供的校准数据的传输的示意图;

图4为本申请实施例提供的数据接收方法的流程图;

图5为本申请实施例提供的嵌入式芯片中传输控制装置的结构图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请实施例的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请实施例中的实施例及实施例中的特征可以相互任意组合。

在实现本申请过程中,发明人对相关技术进行了技术分析,发现相关技术至少存在如下问题,包括:

嵌入式芯片由于个体时钟差异的问题,每个芯片的内部时钟都是有一定的偏差,如果只是单纯的通过定时器去计算数据的单比特时长,那么在较长数据发送接收时会造成误差的累计,累计多次后得到的总误差会最终导致数据接收以及发送失败。

图2为本申请实施例提供的嵌入式芯片中传输控制方法的流程图。如图1所示,图2所示方法包括:

步骤201、确定GPIO接口模拟的串行通信接口在传输单个比特时的通信时长,得到单比特基准值;

在一个示例性实施例中,根据串行通信规则计算单比特数据的通信时长,得到单比特基准值,用于后续准确计算所传输的数据的时长信息。

步骤202、在利用所述串行通信接口传输数据时,根据所述单比特基准值以及预先获取的需传输的数据的比特数,判断传输操作是否完成,得到判断结果;

与相关技术中采用定时器进行中断控制不同,本申请实施例提供的方案是根据单比特基准值以及预先获取的需传输的数据的比特数,来判断当前的传输操作是否完成对全部比特数的传输,从而有效避免传输失败的发生。

在一个示例性实施例中,可以在接收到用于指示传输结束的控制信号时才执行上述判断操作,其中该控制信号可以为定时器中断触发或GPIO中断来触发,可以根据实际需要进行选择。

步骤203、根据所述判断结果,对传输操作进行管理。

在一个示例性实施例中,基于判断结果来准确地判断传输操作是否完成,与利用定时器中断相比,提高了判断的准确性,减少了传输失败的发生。

本申请实施例提供的方法,通过确定GPIO接口模拟的串行通信接口在传输单个比特时的通信时长,得到单比特基准值,在利用所述串行通信接口传输数据时,根据所述单比特基准值以及预先获取的需传输的数据的比特数,判断传输操作是否完成,得到判断结果,根据所述判断结果,对传输操作进行管理,通过获取单比特基准值,可以消除由于芯片内部时钟差异性造成的固定计数器计数值所带来的偏差,再利用该单比特基准值进行传输完成的判断,可以保证系统的通信数据的准确传输,避免传输失败的发生。

下面对本申请实施例提供的方法进行说明:

针对当前嵌入式智能设备应用需求,本申请实施例提供一种适应芯片时钟差异软件串行通信方法,通过嵌入式芯片以及嵌入式智能设备平台实现嵌入式智能设备软件模拟串行通信,此方法可以弥补由于芯片生产设计原因造成的时钟差异,保证串行通信数据稳定不受干扰,此通信方法完全通过嵌入式芯片以及嵌入式智能设备平台来实现,可以应用到与串行通信有关的嵌入式系统设计中的通用串行通信方法。该方法通过嵌入式芯片的GPIO、引脚中断以及定时器实现软件模拟串行通信,通过软件方式控制芯片GPIO、引脚中断以及定时器来实现。

在一个示例性实施例中,所述单比特基准值是通过如下方式得到的,包括:

在所述串行通信接口开始接收预设的基于标准时钟的校准数据后,记录所述嵌入式芯片中定时器的第一计数值T1;

在所述串行通信接口传输所述校准数据结束后,记录所述定时器的第二计数值T2;

计算所述第一计数值和所述第二计数值的差值,得到第三计算值T3;

对所述第三计算值T3以及预先获取的所述校准数据的比特数进行计算,得到所述单比特基准值。

下面对上述示例性实施例中的方法的步骤进行说明:

1)设置基于标准时钟的串行数据作为校准数据,其中,校准数据的内容可以预设的数据格式,例如可以固定数据为00;

2)利用芯片的GPIO接口模拟为串行通信接口对该校准数据进行传输操作,在芯片GPIO中断检测到串行数据的起始位后,开启定时器并获取第一计数值T1;

3)芯片GPIO持续检测结束中断,当检测到结束中断后,获取定时器当前的计数值,得到第二计数值T2;

4)计算本次传输的串行数据过程中定时器上计数值的差值,得到第三计数值,即T3=T2-T1;并根据当前串行通信比特位数,计算单比特基准计数。

单比特基准值用于对嵌入式芯片中时间进行校准,以弥补由于芯片生产设计原因造成的时钟差异,保证串行通信数据稳定不受干扰。

图3为本申请实施例提供的校准数据的传输的示意图。如图3所示,所述单比特基准值Tb是通过如下方式得到的,包括:

Tb=T3/(N+1);

其中,N表示校准数据的比特位数,N为大于0的整数。

其中,上述计算表达式N为校准数据比特位数,数值1为传输过程中的起始位对应的比特数。

利用上述计算表达式,基于该芯片中定时器所记录的时间信息,计算出该芯片实际传输单个比特的通信时长,体现出该芯片中时钟特性,为后续准确地判断传输操作提供操作依据。

在一个示例性实施例中,所述根据所述单比特基准值以及预先获取的需传输的数据的比特数,判断传输操作是否完成,得到判断结果,包括:

在所述串行通信接口对需传输的数据开始传输操作后,记录所述嵌入式芯片中定时器的第四计数值T4;

在所述串行通信接口对需传输的数据结束传输操作后,获取所述定时器的第五计数值T5;

计算所述第四计数值和所述第五计数值的差值,得到第六计算值T6;

根据所述单比特基准值以及所述第六计算值T6,得到当前传输的比特数;

计算预先获取的需传输的数据的比特数以及所述当前传输的比特数之间的差值;

判断所述差值是否符合预先设置的传输完成的判断条件,得到判断结果;

如果所述判断结果符合所述传输完成的判断结果,则确定传输操作完成;否则,确定传输操作未完成。

以对数据接收的应用场景为例进行说明:

图4为本申请实施例提供的数据接收方法的流程图。如图4所示,如果所述嵌入式芯片中时钟的误差在预设的误差范围内,表示该误差是可以容忍的,则可以直接进行数据接收操作;如果不在该误差范围内,则需先进行基准时间校准处理,以提高通信准确率。

首先判断是否需要进行基准时间校准,若需要校准进入校准程序处理,若不需要,则直接进行通信接收处理。

其中,通信接收处理的流程包括:

1)设置通信数据的比特数M,单比特基准计数值Tb;

2)检测GPIO中断通信起始位;

3)检测到GPIO中断,开启定时器,记录当前定时器计数值T4;

4)设置下一次GPIO触发方式,其中该GPIO触发方式是在检测到信号的结束位后触发的;

5)等待中断触发或者定时器触发;

6)在检测到GPIO中断后,再次获取当前定时器计数值T5,计算T6=T5-T4;

7)根据之前设置的比特数M以及单比特计数基准值Tb,判断数据是否接收完成,若判断未完成跳转至步骤4)继续接收;若接收完成,可以跳转至2)继续等待接收。

8)在判断数据接收完成后,可以继续判断定时器是否超时,如果定时器未超时,则继续等待定时器超时;如果定时器超时,则表示数据传输结束。

以GPIO引脚的中断以及定时器中断分别作为采集触发以及结束触发,检测传输的开始和结束,并通过单比特基准值调整定时器的计时,使得嵌入式芯片能够自适应适配当前串行通信速率,并由中断触发提升芯片处理的实时性,消除由于芯片内部时钟差异性造成的固定计数器计数值,软件计算单比特时长差异大问题,从而提高整个嵌入式芯片的通用性。

在一个示例性实施例中,所述根据所述判断结果,对传输操作进行管理,包括:

如果所述判断结果为传输操作未完成,则设置为传输操作设置新的结束中断。

由于当前传输并未完成,需再次设置GPIO中断,对结束位进行重新检测,从而保证数据传输的正常进行。

在实际应用中,基准时间校准处理与通用通信接收处理在实际项目中也可以合并一起处理,由于实际串行通信中在应用层都会加入TAG作为标志,那么基准时间校准处理根据TAG数据的数值完成固定GPIO中断的检测以及字节数据定时器计数采集完成基准时间校准,然后再进行通用通信处理。

在一个示例性实施例中,通过如下方式检测所述GPIO开始传输和/或结束传输,包括:

检测所述GPIO接口中传输的信号的电平的变化信息,得到所述信号的起始位和/或结束位,根据得到的起始位和/或结束位,确定所述GPIO开始传输和/或结束传输。

通过开始位的检测,确定本次的传输开始,并通过结束位的检测,触发利用单比特基准值进行传输完成的判断。

利用电平信息的检测,可以更加准确地判断传输的起始和结束,且保证判断操作的实时性。

本申请实施例提供的方法,通过获得外部基准串行通信数据进行嵌入式芯片时钟基准校正,实现基于基准的通信时间调整芯片定时器计数以及中断方式完成比特位传输的目的,该方法可以消除由于芯片内部时钟差异性造成的固定计数器计数值,软件计算单比特时长差异大问题,保证系统的通信数据准确性。

上述方法还具有如下优势,包括:

1)通用性好,流程控制简单。

2)完全通过软件实现无需硬件参与。

3)自适应速率串行通信。

4)弥补芯片个体时钟差异性,可应用各种嵌入式芯片。

图5为本申请实施例提供的嵌入式芯片中传输控制装置的结构图。如图5所示,图5所示装置包括:

GPIO接口,作为串行通信接口使用;

定时器,用于对所述串行通信接口传输数据的时间进行计时;

处理器,用于根据所述定时器的时间信息,执行上文任一所述的方法。

本申请实施例提供的装置,通过确定GPIO接口模拟的串行通信接口在传输单个比特时的通信时长,得到单比特基准值,在利用所述串行通信接口传输数据时,根据所述单比特基准值以及预先获取的需传输的数据的比特数,判断传输操作是否完成,得到判断结果,根据所述判断结果,对传输操作进行管理,通过获取单比特基准值,可以消除由于芯片内部时钟差异性造成的固定计数器计数值所带来的偏差,再利用该单比特基准值进行传输完成的判断,可以保证系统的通信数据的准确传输,避免传输失败的发生。

一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上文任一项中所述的方法。

一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上文任一项中所述的方法。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种针对CHI总线的通用协议转换桥及SoC

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!