一种UART指令数据接收系统及其接收方法技术方案

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

A UART instruction data receiving system and its receiving method

【技术实现步骤摘要】
一种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,则本文档来自技高网
...

【技术保护点】
1.一种通用异步收发器UART数据接收系统,其特征在于,所述通用异步收发器UART数据接收系统包括跨时钟同步模块、寄存器模块、UART数据接收解析模块、读写和中断处理模块和先进先出模块,/n所述跨时钟同步模块被配置为将接收到的UART数据同步到采样时钟SLP_CLK域;/n所述寄存器模块被配置为配置所述UART数据接收解析模块所需的参数,并回读所述UART数据;/n所述UART数据接收解析模块被配置为根据所述寄存器模块配置的所述参数,解析经所述跨时钟同步模块同步后的UART数据,并将所述同步后的UART数据转为并行输出;/n所述读写和中断处理模块被配置为读写所述先进先出模块,并根据所述先进先出模块的状态发出中断以通知所述CPU进行读取操作;并且/n所述先进先出模块被配置为暂存所述UART数据。/n

【技术特征摘要】
1.一种通用异步收发器UART数据接收系统,其特征在于,所述通用异步收发器UART数据接收系统包括跨时钟同步模块、寄存器模块、UART数据接收解析模块、读写和中断处理模块和先进先出模块,
所述跨时钟同步模块被配置为将接收到的UART数据同步到采样时钟SLP_CLK域;
所述寄存器模块被配置为配置所述UART数据接收解析模块所需的参数,并回读所述UART数据;
所述UART数据接收解析模块被配置为根据所述寄存器模块配置的所述参数,解析经所述跨时钟同步模块同步后的UART数据,并将所述同步后的UART数据转为并行输出;
所述读写和中断处理模块被配置为读写所述先进先出模块,并根据所述先进先出模块的状态发出中断以通知所述CPU进行读取操作;并且
所述先进先出模块被配置为暂存所述UART数据。


2.根据权利要求1所述的通用异步收发器UART数据接收系统,其特征在于,所述跨时钟同步模块还被配置为将所接收到的通用异步收发器UART数据同步到先进外围总线APB时钟域,以用于CPU回读。


3.根据权利要求1所述的通用异步收发器UART数据接收系统,其特征在于,所述UART数据接收解析模块动态调整所述UART数据的采样捕抓信号的时间点。


4.根据权利要求3所述的通用异步收发器UART数据接收系统,其特征在于,采样捕抓信号由数据采样捕抓产生电路产生,并且所述数据采样捕抓产生电路设置有累加寄存器sum、动态阈值寄存器cnt_full、计数器寄存器cnt和捕抓信号寄存器capture,其中所述累加寄存器sum被配置为存储累加计数值sum,所述动态阈值寄存器cnt_full被配置为存储动态阈值cnt_full,所述计数器寄存器cnt被配置为存储计数值cnt,并且所述捕抓信号寄存器capture被配置为存储采样捕抓信号capture的值。


5.根据权利要求4所述的通用异步收发器UART数据接收系统,其特征在于,所述累加寄存器sum和动态阈值寄存器cnt_full的位宽由所述通用异步收发器UART的采样时钟和波特率的比值计算决定,所述计数器寄存器cnt位宽不小于log2(max(cnt_full)),并且所述捕抓信号寄存器capture为1比特寄存器。


6.根据权利要求4所述的通用异步收发器UART数据接收系统,其特征在于,通过如下步骤产生所述采样捕抓信号capture:
获取参数rem、dvsor、n,其中rem为所述通用异步收发器UART的采样时钟频率除以波特率所得余数,dvsor为采样时钟频率除以波特率所得分数化简后分母,n为采样时钟频率除以波特率所得商;
设置所述累加寄存器sum的初始值为0,动态阈值寄存器cnt_full初始值为n,计数器寄存器cnt初始值为0...

【专利技术属性】
技术研发人员:杨焰文
申请(专利权)人:广州粒子微电子有限公司
类型:发明
国别省市:广东;44

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

1