关于FPGA uart接收模块亚稳态问题的处理

注:只要有异步时钟域之间的信号交流,就无可避免会有亚稳态问题的产生

比如uart的接收,如何判断起始位(通常uart中是信号拉低)?

尽管uart通信是在相同的波特率下进行传输,但毕竟时钟不是同步的,接收方和发送方分处在两个时钟域(尽管时钟频率相同)。

因此在判断是否产生下降沿,即是否是起始位时,就会有误判发生(亚稳态),即如果用接收方的时钟去采集rx线上的信号,rx信号可能正处在下降沿上,而接收方的采集采集到一个处于亚稳态的值,因此可能是0或是1,如果采集为0,则采集正确,数据开始传输,但如果识别为1,那就还是不会开始接收数据。这也就是亚稳态导致信号识别错误。

  • 解决方案:
    可以以快速时钟进行两拍或者三拍的采集,来判断下降沿是否产生,即使有降正在下降沿的信号采集为1的情况,但下一次的采集将会正确,总会产生前一拍为高,后一拍为低的情况,也就可以正式确定起始位的到来。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值