一种异步通讯的数据发送方法及电路与流程

文档序号:18101429发布日期:2019-07-06 11:23阅读:223来源:国知局
一种异步通讯的数据发送方法及电路与流程

本发明属于数字通信技术领域,具体涉及一种异步通讯的数据发送方法及电路。



背景技术:

随着数字电路的不断发展,数字电路芯片功能日益强大,越来越多的功能在数字电路芯片中实现。只要系统中有异步元件,亚稳态就无法避免,主要发生在异步信号检测、跨时钟域信号传输以及复位电路中,故亚稳态现象一直是数字电路设计人员不得不面对的一个问题。

所谓亚稳态现象可理解为数字逻辑电路采样时刻数据存在变化,采样时的输入信号电压不满足后继逻辑输入判决电压门限需求,造成逻辑误判。从图1中可以看出,当产生亚稳态后tco时间后,会有tmet段的振荡时间段(即决断时间),当振荡解决后回到稳定状态时为“0”或者“1”,这个是随机的,与输入没有必然的联系。因此,会对后续电路判断造成影响。

由于发送条件的限制,亚稳态现象不可被观测,因此关于亚稳态现象的描述及处理多停留在理论分析阶段。

《微电子学》2011年4月第41卷第2期出版的作者为黄隶凡、郑学仁的《fpga中的亚稳态研究》的3.1节中介绍了一种常规的克服亚稳态现象的方法,即增加两级同步电平器。但是,事实证明,两级同步处理或单纯的大范围数字电路滤波都不能避免亚稳态现象的发生,而亚稳态现象发生的概率较低,一般条件下很难被检测到,导致问题一直潜伏,某些特殊条件下激发会造成各种难以解释的问题,甚至造成财力、物力的重大损失。



技术实现要素:

本发明的目的在于提供一种异步通讯的数据发送方法及电路,用以解决现有技术中解决亚稳态现象效果不佳的问题。

为解决上述技术问题,本发明的技术方案为:

本发明提供了一种异步通讯的数据发送方法,包括如下方法方案:

方法方案一,包括如下步骤:

生成与接收时钟同频、相位可调的时钟,记为测试时钟;

以所述测试时钟发送数据,记录发生亚稳态现象时对应的时钟相位,记为亚稳态时钟相位;

过滤掉亚稳态时钟相位,筛选出相位可调范围内的安全时钟相位;

以安全时钟相位发送数据。

方法方案二,在方法方案一的基础上,接收到以安全时钟相位发送的数据后,进行两级或三级同步缓存处理。

方法方案三,在方法方案二的基础上,在进行两级或三级同步缓存处理后,还包括将同步缓存处理后的数据进行数字滤波处理的步骤。

方法方案四,在方法方案一的基础上,时钟相位可调节的范围为x为任意值,为接收时钟相位。

本发明还提供了一种异步通讯的数据发送电路,包括如下电路方案:

电路方案一,包括时钟相位生成调整电路,异步数据发送电路,亚稳态检测电路;

所述时钟相位生成调整电路用于生成与接收时钟同频、相位可调的时钟,记为测试时钟;

所述异步数据发送电路用于以所述测试时钟发送数据;

所述亚稳态检测电路用于检测异步数据发送电路的亚稳态现象,记录发生亚稳态现象时对应的时钟相位,记为亚稳态时钟相位;

过滤掉亚稳态时钟相位,筛选出相位可调范围内的安全时钟相位,以所述安全时钟相位发送数据。

电路方案二,在电路方案一的基础上,所述时钟相位生成调整电路包括依次连接的接收时钟及其反相时钟产生电路、时钟选择电路和时钟相位调整电路;

所述接收时钟及反相时钟产生电路用于产生与接收时钟同相的时钟,以及与接收时钟反相的时钟。

电路方案三,在电路方案一的基础上,还包括待发送数据缓存fifo电路,所述待发送数据缓存用于将待发送数据进行缓存,发送数据缓存fifo电路与异步数据发送电路相连;所述时钟相位生成调整电路用于给所述发送数据缓存fifo电路和异步数据发送电路提供时钟。

电路方案四,在电路方案一的基础上,所述亚稳态检测电路发送启动指示给异步数据发送电路,所述异步数据发送电路将数据进行发送,并接收异步数据发送电路发送的发送完成标识,根据两者之间的时间差判断是否超时:若超时,则记录当前相位为亚稳态时钟相位;否则,亚稳态检测电路发送调整信号给时钟相位调整电路,时钟相位调整电路根据该调整信号调整时钟相位,并在调整完毕后发送调整后的时候给异步数据发送电路来发送数据。

电路方案五,在电路方案一的基础上,所述异步数据发送电路还连接有异步数据接收电路,所述异步数据接收电路包括两级或三级同步缓存电路和与所述两级或三级同步缓存电路相连的数字滤波电路。

电路方案六,在电路方案五的基础上,两级同步缓存电路为两个级联的d触发器,三级同步缓存电路为三个级联的d触发器。

本发明的有益效果:

本发明的异步通讯的数据发送方法及电路,以不同的时钟将待发送数据进行发送,标记出发生亚稳态现象时对应的时钟,从而有针对性的避开这些时钟来避免亚稳态现象发生,将这些时钟过滤掉后,筛选出相位可调范围内的安全时钟相位,以安全时钟相位发送数据。该方法将一直停留在理论分析阶段的亚稳态现象具现化,并给出其精确的亚稳态影响域,精确量级可达ps,在接收端无法更改实现方案的情况下可通过测试出整个系统的亚稳态影响区域,即亚稳态现象发生时对应的时钟相位,从而通过修改发送端逻辑电路,避过影响区域的方法解决亚稳态问题。

进一步地,接收端从亚稳态产生的机理入手,接收端采用两级/三级同步缓存与数字滤波相结合的方法,将亚稳态现象对逻辑判决电路的影响降为零,该方法简单、有效,保证fpga后续逻辑的正确运行。

进一步地,相位可调的时钟遍历接收时钟的一个完整周期,确保能够充分验证亚稳态现象的存在及其影响域,并给出直观的具体参数,从而通过避开影响区间的方法避免亚稳态问题。

附图说明

图1是亚稳态产生示意图;

图2是亚稳态检测电路框图;

图3是异步发送电路框图;

图4是异步接收电路框图;

图5是状态查询及错误统计逻辑流程图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚,下面结合附图及实施例,对本发明作进一步的详细说明。

为了避免或者解决异步通讯时出现的亚稳态现象,首先需要做的是,找出被测系统的亚稳态影响域,具体可按照如下步骤进行检测。该方法实际是一种通过大量实验,进行数理统计,得到最终结果的思想。

step1,在发送端设计一相位可调的时钟,这一时钟的频率与接收时钟的频率相同,相位可调节范围为接收时钟的一个完整周期。也就是说,该时钟可调整为一系列时钟。假设该一系列时钟包括k个时钟,而这k个时钟分布在范围内,x为任意值,为接收时钟相位。

例如,该时钟可调整的相位分布在范围内,而且单调递增变化,也就是说每次调整的步长长度为一样的值,即该相位可调时钟所能够调整的到的时钟对应的相位分别为:具体y值的设定可根据需求设定。

step2,发送端以某一时钟相位将待发送数据进行发送,判断发送时是否发生了亚稳态现象,若发生了亚稳态现象,则记录该时钟相位为亚稳态时钟相位;若一致,记录为安全时钟相位。

step3,按照step1中的相位调整策略,调整时钟的相位,并按照step2中的方法发送数据,并记录以该时钟进行发送时的结果。直至将所有可调范围内的所有时钟按照step2处理完毕。

step4,统计可调范围内的亚稳态影响区域,即所有发生亚稳态现象时对应的时钟相位,该亚稳态影响域其实是亚稳态现象的一种可视化证据。过滤掉亚稳态时钟相位,便可筛选出相位可调范围内的安全时钟相位。

在step1中,将时钟的相位进行调整时,除了规则变化,也可不规则递增变化,只要时钟的变化范围能够覆盖接收时钟一个完整的周期即可。例如,相位分别是:该时钟所能够调整的时钟越多,两个相邻相位的时钟相差的相位越小,控制越为精细,得到的亚稳态影响域更为准确。故在实际实施过程中,可将该时钟可调整的步进长度划分的尽量小一些。

在精确测量到被测系统的亚稳态影响域后,便可有针对性的从发送和接收两端入手解决亚稳态问题。

对于发送端来说,在具体知道了亚稳态影响域之后,便可反推出异步通信时钟相位调整的安全域,包括所有的安全时钟相位。发送数据时,便可有意识的避开亚稳态影响域来将数据进行发送,从而在源头上避免了亚稳态现象的发生。

例如,根据上述测量结果,得到被测系统的一个周期内,亚稳态影响域为包括如下时钟相位范围:[30°,40°],[56°,80°],[150°,180°]。在发送数据时,发送时钟相位可以为[0°,30°],[40°,56°],[80°,150°],[180°,360°]之间的任一相位。

对于接收端来说,现有技术中,常增加两级或三级同步处理来对亚稳态现象进行处理,能够避免后继电路复杂错误无法预测的问题,并且保证输出的信号不再具备亚稳态特征,满足后继电路正常工作的输入电压设定。

但是,由于输入信号采样时刻出现亚稳态,先后采样的信号经级联处理输出的稳定电压值不一定一致,可能出现毛刺,本发明便是在现有技术的基础上,再增加一个数字滤波电路,即采用“两级/三级缓存+数字滤波”的方式,将亚稳态现象对逻辑判决电路的影响降为零,保证fpga后续逻辑的正确运行。

为了实现上述方法,包括对亚稳态影响域的精确测量,以及对亚稳态现象的处理,设计了如图2、3、4所示的电路。

该系统包括发送端和接收端,需要发送或者接收至少一端有数字可编程逻辑器件fpga。

如图2所示为亚稳态检测电路框图。发送fpga包括一异步发送电路。接收fpga将接收时钟反馈给发送fpga,发送fpga通过异步发送电路产生相位可调的时钟,该相位可调的时钟的频率与接收时钟频率相同,且覆盖整个接收时钟一个完整周期,确保接收fpga接收的采样时刻存在数据变化。而且,在确定了异步通信时钟相位调整的安全域后,也可通过异步发送电路将待发送数据发送送给接收端。

接收fpga包括一异步接收电路,该异步接收电路包括三级缓存电路和数字滤波电路,用于将亚稳态现象对逻辑判决电路的影响降为零。

如图3所示为异步发送电路图,该电路包括依次连接的接收时钟及其反相时钟产生电路、时钟选择电路和时钟相位调整电路,以及待发送数据缓存fifo电路、异步数据发送电路、接收状态查询与错误次数统计电路。

1)接收时钟及其反相时钟产生电路

该电路用于根据接收端反馈的接收时钟,产生与接收时钟同频同相和同频反相的两个时钟。

fpga内部自带dcm(数字时钟管理芯片),可以根据输入时钟和内部设定参数在clk_fx管脚输出各种不同频率时钟。为了覆盖接收时钟一个完成时钟周期,要求dcm输出时钟周期不小于接收时钟周期。

2)时钟选择电路

dcm时钟相位调整只能覆盖半个时钟周期,因此为了覆盖整个接收时钟周期,原时钟和反相时钟输入是必要的。

fpga源语提供时钟选择电路,直接调用即可,t='0',输出时钟clk0;t='1',输出时钟clk1,源语比设计人员编写的时钟选择逻辑更简洁、高效,能够减少逻辑电路造成的时延。

也就是说,时钟选择电路用于根据时钟相位调整电路所需要调整到的相位,来选择是在同相时钟的基础上进行调节还是在反相时钟的基础上进行调节。

3)时钟相位调整电路

dcm具备时钟相位调整功能,可输出与输入时钟同周期相位可控的时钟,相位调整量精确到ps量级,相位调整每次只能调整一个步进单位,即ps_en(相位调整使能)保持一个ps_clk(相位调整时钟周期),通过连续调整多次方可达到设定的调整参数,重新调整相位时,需要对dcm进行复位后再进行相位调整操作。

4)待发送数据缓存fifo

fpga内部提高块数据存储器,用于改善fpga内部数据跨时钟域传递的问题,fifo读时钟为3)电路中的相位调整之后的输出。

5)异步数据发送电路

异步数据发送电路遵循标准异步数据通信协议实现,本方法中无特殊需求,只是电路工作时钟基准为时钟相位调整电路的输出。

6)接收状态查询与错误次数统计电路

接收状态查询和错误次数统计电路为异步串行发送电路核心控制单元,即为亚稳态检测电路。用于控制时钟相位调整参数,检测当前相位时钟下异步数据通信情况,标记发送错误时刻时钟相位调整量和错误次数,电路详细工作流程见图5。

在时钟相位调整电路调整完成后,给接收状态查询和错误次数统计电路发送调整完成标识,在接收状态查询和错误次数统计电路接收到调整完成标识后,给异步数据发送电路发送启动指示,异步数据发送电路发送数据。同时,接收状态查询和错误次数统计电路等待发送数据完成标识,并判断是否接收到状态指示:若数据标识有效,则发送计数器加1;否则超时,接受错误计数器加1。

在发送计数器加1后,判断发送计数器是否大于设定值:

若发送计数器大于设定值,则判断错误计数器是否大于0,若大于0,则记录当前时钟相位,即亚稳态时钟相位,并继续通过时钟相位调整电路调整时钟相位,继续进行相应处理;若小于等于0,则通过时钟相位调整电路调整时钟相位,继续进行相应处理。

若发送计数器小于设定值,则异步数据发送电路继续发送数据。

通过观测时钟相位调整量及错误次数统计曲线,可以直观看出发生亚稳态时的时钟相位情况,得出亚稳态现象发生区间,即亚稳态的影响域,反推出异步通信时钟相位调整的安全域。

图4为异步接收电路图,该电路包括两部分,分别为三级缓存电路和数字滤波电路。

1)三级缓存电路

三级缓存电路由三个同步d触发器级联构成,电路工作时钟基准为接收fpga内部时钟,复位初始态由系统约定。

2)数字滤波电路

数字滤波电路通过三位移位数据寄存器实现,bit(0)为三级缓存电路输出,每个时钟上升沿将bit(i-1)值赋给bit(i),每个时钟上升沿判断三位移位寄存器数值,如果为"000"更新当前数字滤波电路输出为'0',如果为"111"更新当前输出为'1',其他情况保持原值不变。

另外,上述电路皆是在fpga中设计实现的。当然也可通过相应的分立元件来实现上述电路,进而实现本发明的异步通讯的数据发送方法。

尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1