FPGA 串口接收不准确,有误码

FPGA 串口接收不准确,有误码

    • FPGA 的Uart接收时,出现接收不正确的分析
      • 波特率计数值= 时钟频率/波特率

FPGA 的Uart接收时,出现接收不正确的分析

波特率计数值= 时钟频率/波特率

  1. 协议:1位起始位,8位数据位,1位停止位;
    FPGA的串口接收设计,由于:在串口传输8bit数据时需要10bit 才可以,在接收bit位时,将8bit数据接收完成后,还有1bit 的停止位,如果在接收时严格的等待结束位完成之后再去检测起始位的下降沿,或者是检测起始位的开始位,在这种情况下:如果发送端的时钟,或波特率有误差,会导致数据接收出现问题,原因在于由于波特率存在误差,每bit数据都会有误差,当10bit全部传输完成时,由于误差的不断积累,可能会错过起始位的检测(如果检测起始位的下降沿容错率更低)或者导致数据的bit 位接收错位,导致数据接收误码。
    2.解决办法:
    在 数据的第8bit位接收结束之后,可以检测几个时钟的结束位,然后去检测起始位。这样可以有效的减少接收误码的可能性。

你可能感兴趣的:(FPGA)