CN110597752B - 一种uart指令数据接收系统及其接收方法 - Google Patents

一种uart指令数据接收系统及其接收方法 Download PDF

Info

Publication number
CN110597752B
CN110597752B CN201910821323.XA CN201910821323A CN110597752B CN 110597752 B CN110597752 B CN 110597752B CN 201910821323 A CN201910821323 A CN 201910821323A CN 110597752 B CN110597752 B CN 110597752B
Authority
CN
China
Prior art keywords
cnt
module
register
uart
uart data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910821323.XA
Other languages
English (en)
Other versions
CN110597752A (zh
Inventor
杨焰文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Particle Microelectronics Co ltd
Original Assignee
Guangzhou Particle Microelectronics Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Particle Microelectronics Co ltd filed Critical Guangzhou Particle Microelectronics Co ltd
Priority to CN201910821323.XA priority Critical patent/CN110597752B/zh
Publication of CN110597752A publication Critical patent/CN110597752A/zh
Application granted granted Critical
Publication of CN110597752B publication Critical patent/CN110597752B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus

Abstract

本发明公开了通用异步收发器数据接收系统、接收方法和片上系统,该通用异步收发器数据接收系统包括:跨时钟同步模块,被配置为将接收到的UART数据同步到采样时钟SLP_CLK域;寄存器模块,被配置为配置所述UART数据接收解析模块所需的参数;UART数据接收解析模块,被配置为根据所述寄存器模块配置的所述参数,解析经所述跨时钟同步模块同步后的UART数据;所述读写和中断处理模块,被配置为读写所述先进先出模块,并根据所述先进先出模块的状态发出中断以通知所述CPU进行读取操作;并且所述先进先出模块被配置为暂存所述UART数据。本发明的UART数据接收系统能够解决了由数据波特率和采样时钟频率比例关系为非整数倍关系时引入的数据误采样问题。

Description

一种UART指令数据接收系统及其接收方法
技术领域
本发明涉及物联网技术领域,具体涉及一种通用异步收发器数据接收系统、接收方法和片上系统。
背景技术
随着物联网的兴起,集通信和传感信号采集的片上系统(SOC)芯片需求日趋增长,同时对芯片的功耗要求也越来越高,因此SOC的功耗消耗已成为芯片设计的一个重要指标。
为提升功耗利用率,物联网应用中SOC芯片一般有两种工作模式:(1)休眠模式(2)正常工作模式。在休眠模式时,芯片处于低功耗状态,主频时钟关闭和部分电路断电;正常工作模式时,主频时钟打开,芯片所有电路均上电。芯片处于休眠时,一般只有常开电电路部分工作,其驱动时钟为几十KHz的低频时钟,如果要达到随时快速响应主控发出的指令,则需要准确接收和暂存主控发出的指令(CMD)数据。
目前主流所用的低频晶振时钟周期为32.768KHz,为使通用异步收发器(UART)数据采样留一定时序余量,采样时钟SLP_CLK至少要为通用异步收发器UART数据波特率的3倍以上。若片上系统SOC的采样时钟SLP_CLK为32.768KHz,则可推出通用异步收发器UART数据波特率最大为9600bps。
传统通用异步收发器UART每帧数据由开始位、数据位、奇偶校验位和停止位四个部分依次组成。其中,开始位为低电平,占用1位,数据长度为5、6、7、8不等;奇偶校验的模式有奇校验和偶校验;停止位为高电平,长度为1位、1.5位和2位不等。
为增强抗干扰能力,数据波特率和采样时钟的速率关系为1比16。如果用传统通用异步收发器UART,则采样时钟SLP_CLK频率至少要153.6KHz,然而采样时钟SLP_CLK通常为32.768KHz晶振驱动,因此传统采样时钟UART无法满足需求。
如仍按传统通用异步收发器UART设计方法只修改数据波特率和采样时钟的速率关系的比例关系,即用32.768KHz直接采样9600bps速率,则数据波特率和采样时钟的速率关系为1比3.413,为非整数倍关系,必然导致采样误差累加,从而导致采样错误,如图1所示,由于数据波特率和采样时钟的速率关系为1比3.413,则用于对bit4进行采样的时钟沿由于误差叠加,会采样到bit3。
综上所述,现有技术主要存在下面两个不足:1.若使用现有传统通用异步收发器UART,则必须要提高SOC的低频工作模式的驱动时钟频率,不利于降低功耗;2.若SOC的采样时钟SLP_CLK使用32.768KHz,只修改数据波特率和采样时钟频率的比例关系,则会导致CMD接收错误,无法使用。
发明内容
有鉴于此,本公开实施例提供一种通用异步收发器数据接收系统、接收方法和片上系统,以至少部分解决现有技术中存在的问题。
根据本公开实施例的第一方面,提供了一种通用异步收发器UART数据接收系统,所述通用异步收发器UART数据接收系统包括跨时钟同步模块、寄存器模块、UART数据接收解析模块、读写和中断处理模块和先进先出模块,
所述跨时钟同步模块被配置为将接收到的UART数据同步到采样时钟SLP_CLK域;
所述寄存器模块被配置为配置所述UART数据接收解析模块所需的参数,并回读所述UART数据;
所述UART数据接收解析模块被配置为根据所述寄存器模块配置的所述参数,解析经所述跨时钟同步模块同步后的UART数据,并将所述同步后的UART数据转为并行输出;
所述读写和中断处理模块被配置为读写所述先进先出模块,并根据所述先进先出模块的状态发出中断以通知所述CPU进行读取操作;并且
所述先进先出模块被配置为暂存所述UART数据。
根据本公开实施例的一种具体实现方式,所述跨时钟同步模块还被配置为将所接收到的通用异步收发器UART数据同步到先进外围总线APB时钟域,以用于CPU回读。
根据本公开实施例的一种具体实现方式,所述UART数据接收解析模块动态调整所述UART数据的采样捕抓信号的时间点。
根据本公开实施例的一种具体实现方式,采样捕抓信号由数据采样捕抓产生电路产生,并且所述数据采样捕抓产生电路设置有累加寄存器sum、动态阈值寄存器cnt_full、计数器寄存器cnt和捕抓信号寄存器capture,其中所述累加寄存器sum被配置为存储累加计数值sum,所述动态阈值寄存器cnt_full被配置为存储动态阈值cnt_full,所述计数器寄存器cnt被配置为存储计数值cnt,并且所述捕抓信号寄存器capture被配置为存储采样捕抓信号capture的值。
根据本公开实施例的一种具体实现方式,所述累加寄存器sum和动态阈值寄存器cnt_full的位宽由所述通用异步收发器UART的采样时钟和波特率的比值计算决定,所述计数器寄存器cnt位宽不小于log2(max(cnt_full)),并且所述捕抓信号寄存器capture为1比特寄存器。
根据本公开实施例的一种具体实现方式,通过如下步骤产生所述采样捕抓信号capture:
获取参数rem、dvsor、n,其中rem为所述通用异步收发器UART的采样时钟频率除以波特率所得余数,dvsor为采样时钟频率除以波特率所得分数化简后分母,n为采样时钟频率除以波特率所得商;
设置所述累加寄存器sum的初始值为0,动态阈值寄存器cnt_full初始值为n,计数器寄存器cnt初始值为0,捕抓信号寄存器capture初始值为0;
累加sum,其中sum=sum+rem,
若sum+rem<dvsor,则cnt_full=n,并累加cnt=cnt+1,并在cnt==cnt_full-寄存器配置值时,输出采样捕抓信号capture;以及
若sum+rem>dvsor,则sum=sum+rem-dvsor,cnt_full=n+1,累加cnt=cnt+1,并在cnt==cnt_full-寄存器配置值时,输出采样捕抓信号capture,
其中所述寄存器配置值为所述寄存器模块为所述UART数据接收解析模块配置的参数。
根据本公开实施例的一种具体实现方式,当累加cnt=cnt+1达到cnt_full或检测到UART数据的开始信号时,所述cnt的值自动清零。
根据本公开实施例的第二方面,提供了一种UART数据接收方法,所述方法包括:
将接收到的UART数据同步到采样时钟SLP_CLK域;
根据配置参数解析同步后的UART数据,并将所述同步后的UART数据转为并行输出;
其中所述根据配置参数解析同步后的UART数据包括:
获取参数rem、dvsor、n,其中rem为所述UART数据的采样时钟频率除以波特率所得余数,dvsor为采样时钟频率除以波特率所得分数化简后分母,n为采样时钟频率除以波特率所得商;
累加sum,其中sum=sum+rem,
若sum+rem<dvsor,则cnt_full=n,并累加cnt=cnt+1,并在cnt==cnt_full-寄存器配置值时,输出采样捕抓信号capture;以及
若sum+rem>dvsor,则sum=sum+rem-dvsor,cnt_full=n+1,累加cnt=cnt+1,并在cnt==cnt_full-寄存器配置值时,输出采样捕抓信号capture,
其中所述sum的初始值为0,所述cnt_full的初始值为n,并且所述cnt的初始值为0。
根据本公开实施例的第三方面,提供了一种片上系统,所述片上系统包括常开电区域和可开关电区域,
所述常开电区域包括根据前述第一方面所述的通用异步收发器UART数据接收系统、休眠唤醒控制模块和配置寄存器;
所述可开关电区域包括CPU模块、UART模块和模拟电源模块;
所述通用异步收发器UART数据接收系统接收到UART数据后,触发所述休眠唤醒控制模块进入唤醒流程,以打开所述可开关电区域的模拟电源模块;
在所述可开关电区域唤醒后,所述CPU模块从所述常开电区域内的配置寄存器回读由所述通用异步收发器UART数据接收系统接收的UART数据,并解析所述UART数据,
当接收到所有UART数据之后,所述UART模块发送确认消息。
本公开实施例中的通用异步收发器数据接收系统包括:跨时钟同步模块,被配置为将接收到的UART数据同步到采样时钟SLP_CLK域;寄存器模块,被配置为配置所述UART数据接收解析模块所需的参数;UART数据接收解析模块,被配置为根据所述寄存器模块配置的所述参数,解析经所述跨时钟同步模块同步后的UART数据;所述读写和中断处理模块,被配置为读写所述先进先出模块,并根据所述先进先出模块的状态发出中断以通知所述CPU进行读取操作;并且所述先进先出模块被配置为暂存所述UART数据。本发明的UART数据接收系统能够解决了由数据波特率和采样时钟频率比例关系为非整数倍关系时引入的数据误采样问题。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为现有技术中直接修改采样率和波特率的比例关系产生接收错误的示意图;
图2示出了根据本公开实施例的UART数据接收系统的框图;
图3为本发明中SLP_CLK为32.768KHz数波特率为9600产生数据采样捕抓信号的时序图;
图4为本发明中数据采样捕抓信号的生成流程图;
图5为本发明系统的一个典型应用示意图。
图中:1-跨时钟同步模块、2-寄存器模块、3-UART数据接收解析模块、4-读写和中断处理模块、5-先进先出模块、6-低速UART数据接收模块、7-休眠唤醒控制模块、8-配置寄存器、9-CPU模块、10-传统UART模块、11-模拟电源模块。
具体实施方式
下面结合附图对本公开实施例进行详细描述。
以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
还需要说明的是,以下实施例中所提供的图示仅以示意方式说明本公开的基本构想,图式中仅显示与本公开中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
另外,在以下描述中,提供具体细节是为了便于透彻理解实例。然而,所属领域的技术人员将理解,可在没有这些特定细节的情况下实践所述方面。
本公开实施例的技术方案采用动态调整UART的数据采样时刻,从而消除数据波特率和采样时钟的速率比为非整数倍关系时所带入的累加采样误差,从而保证数据的连续正确接收。
在本公开实施例的UART数据接收系统中,首先对接收到的UART数据做异步时钟同步处理,使其同步到采样时钟域。在循环计数器开始计数的同时根据配置参数计算动态阈值,当计数值达到动态阈值或检测到UART的起始位时,该循环计数器自动清零,并且在该循环计数器的计数值大于零且小于动态阈值的任一时刻输出采样capture信号,用以采样同步后的UART数据。采样得到的数据被移位寄存,转为并行输出,并写入暂存FIFO模块。FIFO模块有数据后或数据个数达到所设定的门限时,发出中断以通知CPU取数。
接下来,参考附图具体描述根据本公开实施例的UART数据接收系统。应当注意,在本公开实施例中,数据可以是主控发出的控制指令或者是其他的数据。
首先,参考图2,其示出了根据本公开实施例的UART数据接收系统的框图。如图2所示,根据本公开实施例的UART数据接收系统包括跨时钟同步模块1、寄存器模块2、UART数据接收解析模块3、读写和中断处理模块4和先进先出模块5。
跨时钟同步模块1用于将接收到的UART数据(例如,来自主控)同步到SLP_CLK域,此外,跨时钟同步模块1还将所接收到的UART数据同步到APB时钟域以用于CPU回读。
寄存器模块2用于配置UART数据接收解析模块3所需的参数并回读UART数据。
UART数据接收解析模块3用于根据寄存器模块2配置的参数,解析经跨时钟同步模块1同步后的UART数据,并将解析后的UART数据转为并行输出。
读写和中断处理模块4用于根据先进先出模块5的状态产生响应的中断输出,并读写先进先出模块5。
具体地,在本公开实施例中,先进先出模块5用于暂存所接收的UART数据,在先进先出模块5有数据后或数据个数达到所设定的门限时,读写和中断处理模块4发出中断以通知CPU取数。
在本公开实施例中,通过图2中所示的UART数据接收解析模块3来解决由数据波特率和采样时钟频率比例关系为非整数倍时引入的错误采样问题。具体地,UART数据接收解析模块3通过动态调整UART数据的采样捕抓信号时间点来解决错误采样问题。
图3示出了在SLP_CLK为32.768KHz,数据波特率为9600时的采样捕抓的时序图,图3中的RXD为UART接收的同步后的数据,SLP_CLK为采样时钟,cnt为循环计数器(稍后描述的计数器寄存器cnt),capture为数据采样捕抓产生电路产生的数据采样捕抓信号,在本公开实施例中,循环计数器cnt计数到数据采样捕抓产生电路计算的特定值后自动清零。
数据采样捕抓信号的产生原理如图4所示。数据采样捕抓信号由数据采样捕抓产生电路产生,该电路共需输入三个参数,分别为:rem、dvsor、n,其中rem为采样时钟频率除以波特率所得余数,dvsor为采样时钟频率除以波特率所得分数化简后分母,n为采样时钟频率除以波特率所得商。具体地,以采样时钟频率为32.768KHz,波特率为9600bps为例,rem=31,dvsor=75,并且n=3。
该数据采样捕抓产生电路中定义有累加寄存器sum、动态阈值寄存器cnt_full、计数器寄存器cnt和捕抓信号寄存器capture。其中,所述累加寄存器sum被配置为存储累加计数值sum,所述动态阈值寄存器cnt_full被配置为存储动态阈值cnt_full,所述计数器寄存器cnt被配置为存储计数值cnt,并且所述捕抓信号寄存器capture被配置为存储采样捕抓信号capture的值
此外,累加寄存器sum和动态阈值寄存器cnt_full的位宽由采样时钟和波特率比值计算决定,计数器寄存器cnt位宽应不小于log2(max(cnt_full)),并且捕抓信号寄存器capture为1比特寄存器。
参考图4,具体描述数据采样捕抓产生电路产生数据采样捕抓信号的流程。
(1)在复位或接收到UART的开始信号(开始位)的第一个时钟时,累加寄存器sum的初始值为0,动态阈值寄存器cnt_full初始值为n,计数器寄存器cnt初始值为0,捕抓信号寄存器capture初始值为0;
(2)在复位释放后或UART的开始信号的第一个时钟结束后,在例如完成10比特UART数据接收前,sum=sum+rem累加,若sum+rem<dvsor,则cnt_full=n,cnt=cnt+1累加计数值达到cnt_full或检测到UART数据的开始信号后自动清零,并在cnt==cnt_full-寄存器配置值时,捕抓信号寄存器capture输出一个数据采样捕抓信号,采集通用异步收发器UART RXD的数据,RXD为UART接收同步后的数据。在本公开实施例中,UART数据的比特数由实际应用时UART协议决定,在本公开实施例中,数据格式为8位数据位宽,且无校验位。
具体地,参考图3,以采样时钟频率为32.768KHz,波特率为9600bps,rem=31,dvsor=75,并且n=3为例进行具体说明。在紧接着复位释放或UART的开始信号的第一个时钟,此时的sum=0,在接收到第一个UART数据后,sum=sum+rem=31<dvsor=75,此时cnt_full=n=3。在这种情况下,cnt=1,并且在将寄存器配置值设置为2的情况下,此时满足cnt==cnt_full-寄存器配置值,捕抓信号寄存器capture输出数据采样捕抓信号。
当cnt=cnt+1继续累加计数时,cnt=2,则满足cnt==cnt_full-1,则cnt被置为0。此时,sum=31,继续上述过程,sum=sum+rem=31+31=62<dvsor=75,则仍在cnt=1时输出数据采样捕抓信号。
(3)若sum+rem>dvsor,则sum=sum+rem-dvsor,cnt_full=n+1,cnt=cnt+1累加计数值达到cnt_full或检测到UART数据的开始信号时自动清零,并在cnt==cnt_full-计寄存器配置值时,捕抓信号寄存器capture输出一个数据采样捕抓信号,采集通用异步收发器UART RXD的数据;跳转到步骤(2),如此在步骤(2)和(3)之间往复工作,直到结束。
当如(2)中所示的sum=62之后,继续sum=sum+rem的过程,则此时sum=62+31=93>75,此时sum=93-75=18,并且cnt_full=n+1=4,因此在cnt=2时,输出数据采样捕抓信号。
以上,已经参考附图描述了根据本公开实施例的UART数据接收系统。接下来,描述根据本公开实施例的UART数据接收方法。
根据本公开实施例的应用上述UART数据接收系统进行数据接收的方法,包括:
将接收到的UART数据同步到采样时钟SLP_CLK域;
根据配置参数解析同步后的UART数据,并将所述同步后的UART数据转为并行输出;
其中所述根据配置参数解析同步后的UART数据包括:
获取参数rem、dvsor、n,其中rem为所述UART数据的采样时钟频率除以波特率所得余数,dvsor为采样时钟频率除以波特率所得分数化简后分母,n为采样时钟频率除以波特率所得商;
累加sum,其中sum=sum+rem,
若sum+rem<dvsor,则cnt_full=n,并累加cnt=cnt+1,并在cnt==cnt_full-寄存器配置值时,输出采样捕抓信号capture;以及
若sum+rem>dvsor,则sum=sum+rem-dvsor,cnt_full=n+1,累加cnt=cnt+1,并在cnt==cnt_full-寄存器配置值时,输出采样捕抓信号capture,
其中所述sum的初始值为0,所述cnt_full的初始值为n,并且所述cnt的初始值为0。
由于以上已经参考数据接收系统描述了根据本公开的方法,故而在此不再赘述。
此外,本公开实施例还提供了如图5所示的片上系统SOC,在SOC内分常开电区域和可开关电区域,所述常开电区域主要模块包括:低速UART数据接收模块6、休眠唤醒控制模块7和配置寄存器8。此外,所述可开关电区域主要模块包括:CPU模块9、传统UART模块10、模拟电源模块11及其他模块电路。
低速UART数据接收模块6接收到外部CMD后,触发休眠唤醒控制模块7进入唤醒流程,将可开关电区域电路的电源(模拟电源模块11)打开,并释放对应的跨电源域相关控制信号。
可开关电区域电路唤醒稳定后,CPU模块9通过APB总线从常开电区域内的配置寄存器8回读由低速UART数据接收模块6接收暂存的CMD,CPU模块9解析所读CMD后,再从传统UART模块10回复确认消息ACK(表明所有的消息都已经收到了)给主控制器MASTER。
综上所述,本发明根据UART的波特率和采样时钟的关系计算得到动态阈值,依据该动态阈值实时调整数据采样捕抓信号时间点,有效解决了由数据波特率和采样时钟频率比例关系为非整数倍关系时,引入数据误采样问题。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
术语解释
SOC 片上系统
UART 通用异步收发器
CMD 指令
SLP_CLK 采样时钟
CPU 中央处理器
ACK 应答
bps 比特每秒
FIFO 先进先出
capture 数据采样捕抓
APB 先进外围总线。

Claims (7)

1.一种通用异步收发器UART数据接收系统,其特征在于,所述通用异步收发器UART数据接收系统包括跨时钟同步模块、寄存器模块、UART数据接收解析模块、读写和中断处理模块和先进先出模块,
所述跨时钟同步模块被配置为将接收到的UART数据同步到采样时钟SLP_CLK域;
所述寄存器模块被配置为配置所述UART数据接收解析模块所需的参数,并回读所述UART数据;
所述UART数据接收解析模块被配置为根据所述寄存器模块配置的所述参数,解析经所述跨时钟同步模块同步后的UART数据,并将所述同步后的UART数据转为并行输出;
所述读写和中断处理模块被配置为读写所述先进先出模块,并根据所述先进先出模块的状态发出中断以通知CPU进行读取操作;并且
所述先进先出模块被配置为暂存所述UART数据,
其中,所述UART数据接收解析模块动态调整所述UART数据的采样捕抓信号的时间点,并且
采样捕抓信号由数据采样捕抓产生电路产生,并且所述数据采样捕抓产生电路设置有累加寄存器sum、动态阈值寄存器cnt_full、计数器寄存器cnt和捕抓信号寄存器capture,其中所述累加寄存器sum被配置为存储累加计数值sum,所述动态阈值寄存器cnt_full被配置为存储动态阈值cnt_full,所述计数器寄存器cnt被配置为存储计数值cnt,并且所述捕抓信号寄存器capture被配置为存储采样捕抓信号capture的值。
2.根据权利要求1所述的通用异步收发器UART数据接收系统,其特征在于,所述跨时钟同步模块还被配置为将所接收到的通用异步收发器UART数据同步到先进外围总线APB时钟域,以用于CPU回读。
3.根据权利要求1所述的通用异步收发器UART数据接收系统,其特征在于,所述累加寄存器sum和动态阈值寄存器cnt_full的位宽由所述通用异步收发器UART的采样时钟和波特率的比值计算决定,所述计数器寄存器cnt位宽不小于log2(max(cnt_full)),并且所述捕抓信号寄存器capture为1比特寄存器。
4.根据权利要求1所述的通用异步收发器UART数据接收系统,其特征在于,通过如下步骤产生所述采样捕抓信号capture:
获取参数rem、dvsor、n,其中rem为所述通用异步收发器UART的采样时钟频率除以波特率所得余数,dvsor为采样时钟频率除以波特率所得分数化简后分母,n为采样时钟频率除以波特率所得商;
设置所述累加寄存器sum的初始值为0,动态阈值寄存器cnt_full初始值为n,计数器寄存器cnt初始值为0,捕抓信号寄存器capture初始值为0;
累加sum,其中sum=sum+rem,
若sum+rem<dvsor,则cnt_full=n,并累加cnt=cnt+1,并在cnt==cnt_full-寄存器配置值时,输出采样捕抓信号capture;以及
若sum+rem>dvsor,则sum=sum+rem-dvsor,cnt_full=n+1,累加cnt=cnt+1,并在cnt==cnt_full-寄存器配置值时,输出采样捕抓信号capture,
其中所述寄存器配置值为所述寄存器模块为所述UART数据接收解析模块配置的参数。
5.根据权利要求4所述的通用异步收发器UART数据接收系统,其特征在于,当累加cnt=cnt+1达到cnt_full或检测到UART数据的开始信号时,所述cnt的值自动清零。
6.一种UART数据接收方法,其特征在于,所述方法包括:
将接收到的UART数据同步到采样时钟SLP_CLK域;
根据配置参数解析同步后的UART数据,并将所述同步后的UART数据转为并行输出;
其中所述根据配置参数解析同步后的UART数据包括:
获取参数rem、dvsor、n,其中rem为所述UART数据的采样时钟频率除以波特率所得余数,dvsor为采样时钟频率除以波特率所得分数化简后分母,n为采样时钟频率除以波特率所得商;
累加sum,其中sum=sum+rem,
若sum+rem<dvsor,则cnt_full=n,并累加cnt=cnt+1,并在cnt==cnt_full-寄存器配置值时,输出采样捕抓信号capture;以及
若sum+rem>dvsor,则sum=sum+rem-dvsor,cnt_full=n+1,累加cnt=cnt+1,并在cnt==cnt_full-寄存器配置值时,输出采样捕抓信号capture,
其中所述sum的初始值为0,所述cnt_full的初始值为n,且所述cnt的初始值为0。
7.一种片上系统,其特征在于,包括常开电区域和可开关电区域,
所述常开电区域包括根据权利要求1-5中任一项所述的通用异步收发器UART数据接收系统、休眠唤醒控制模块和配置寄存器;
所述可开关电区域包括CPU模块、UART模块和模拟电源模块;
所述通用异步收发器UART数据接收系统接收到UART数据后,触发所述休眠唤醒控制模块进入唤醒流程,以打开所述可开关电区域的模拟电源模块;
在所述可开关电区域唤醒后,所述CPU模块从所述常开电区域内的配置寄存器回读由所述通用异步收发器UART数据接收系统接收的UART数据,并解析所述UART数据,
当接收到所有UART数据之后,所述UART模块发送确认消息,
其中,所述UART数据接收解析模块动态调整所述UART数据的采样捕抓信号的时间点,并且
采样捕抓信号由数据采样捕抓产生电路产生,并且所述数据采样捕抓产生电路设置有累加寄存器sum、动态阈值寄存器cnt_full、计数器寄存器cnt和捕抓信号寄存器capture,其中所述累加寄存器sum被配置为存储累加计数值sum,所述动态阈值寄存器cnt_full被配置为存储动态阈值cnt_full,所述计数器寄存器cnt被配置为存储计数值cnt,并且所述捕抓信号寄存器capture被配置为存储采样捕抓信号capture的值。
CN201910821323.XA 2019-09-02 2019-09-02 一种uart指令数据接收系统及其接收方法 Active CN110597752B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910821323.XA CN110597752B (zh) 2019-09-02 2019-09-02 一种uart指令数据接收系统及其接收方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910821323.XA CN110597752B (zh) 2019-09-02 2019-09-02 一种uart指令数据接收系统及其接收方法

Publications (2)

Publication Number Publication Date
CN110597752A CN110597752A (zh) 2019-12-20
CN110597752B true CN110597752B (zh) 2021-02-19

Family

ID=68856805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910821323.XA Active CN110597752B (zh) 2019-09-02 2019-09-02 一种uart指令数据接收系统及其接收方法

Country Status (1)

Country Link
CN (1) CN110597752B (zh)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5896602B2 (ja) * 2011-01-06 2016-03-30 ミツミ電機株式会社 通信回路及びサンプリング調整方法
US10002090B2 (en) * 2015-04-08 2018-06-19 Microsemi Semiconductor Ulc Method for improving the performance of synchronous serial interfaces
CN106549748B (zh) * 2015-09-21 2019-08-27 天地融科技股份有限公司 一种数据传输方法及数据处理设备
CN106897238B (zh) * 2015-12-18 2020-05-26 浙江大华技术股份有限公司 一种数据处理装置及方法
CN106933772A (zh) * 2017-02-17 2017-07-07 西安航空制动科技有限公司 基于uart ip核的sci通讯方法
CN109450607B (zh) * 2018-09-10 2021-02-09 北京中电华大电子设计有限责任公司 一种通用异步收发器的波特率校准方法和装置
CN209117829U (zh) * 2018-10-26 2019-07-16 国网浙江省电力有限公司台州供电公司 隔离开关合/分闸不到位的故障检测装置
CN209218065U (zh) * 2018-10-28 2019-08-06 山西工程技术学院 一款简单的波特率发生器
CN110007144A (zh) * 2019-04-30 2019-07-12 杭州万高科技股份有限公司 一种输入信号的频率测量方法及相关组件

Also Published As

Publication number Publication date
CN110597752A (zh) 2019-12-20

Similar Documents

Publication Publication Date Title
CN109116187B (zh) 一种应用于暂态录波型故障指示器的录波同步方法
CN103327265B (zh) 一种基于fpga的四路视频合成方法及其装置
EP2965458B1 (en) Dithering circuit for sampling serial data transmission
CN110535551B (zh) 一种电力系统中故障录波采样数据的同步方法及系统
CN111193573B (zh) 一种速率可调的fpga异步串口通信装置及方法
CN105610545A (zh) 一种基于fpga的ft3自适应解码系统及方法
CN110597752B (zh) 一种uart指令数据接收系统及其接收方法
CN110363980B (zh) 基于TDMA和Contiki的LoRa采集装置及其采集方法
CN101719858B (zh) Can控制器的位时序的同步处理方法
CN209842447U (zh) 一种跨时钟域信号同步电路
CN100571234C (zh) 应用在无线接收装置的ask解调器及方法
CN114900484B (zh) 一种不同网络接口间的数据传输方法、装置、设备及介质
CN110768778A (zh) 一种单线通信电路、通信方法及通信系统
CN103220168B (zh) 一种基于定长协议数据包长度异常的处理方法
CN109256998A (zh) 控制电机电流高精度采样的方法及系统和伺服电机
CN103490995B (zh) 报文发送方法和装置
CN214480603U (zh) 一种蓝牙时钟电路结构
CN210518362U (zh) 一种单线通信电路及通信系统
CN205068068U (zh) 一种基于以太网传输的分布式时间同步数据采集通用模块
EP2775265B1 (en) Method and apparatus for reducing power consumption in a metering device
CN112882985A (zh) 一种数据传输系统、方法、装置及介质
CN103576826B (zh) 存储器控制方法、装置及存储器系统
CN115002772B (zh) 基于WiFi的数据采集与控制方法及系统
CN106550437B (zh) 降低ZigBee网络系统耗能的装置及方法
CN109995346A (zh) 一种基于时钟吞咽电路的高频时钟同步电路

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant