美文网首页嵌牛IT观察
波特率怎么产生?

波特率怎么产生?

作者: JS_Terry_M | 来源:发表于2019-11-15 10:54 被阅读0次

    姓名:赵宗明

    学号:19021211230

    【嵌牛导读】:波特率    串口通信   FPGA

    【嵌牛鼻子】:数据传输时总会考虑到数据传输的波特率,以下就以FPGA为例解释一下波特率以及波特率的产生。

    【嵌牛提问】:波特率是什么?波特率该如何产生呢?

    【嵌牛正文】:
    波特率是什么:

    波特率,查阅各种资料,总结一下就是每秒传输二进制的位数。比如波特率为115200,则表示1s传输二进制的位数为115200位。我们在进行串口通信时一帧数据为8bit,但是串口发送一帧的数据的格式为:起始位(1bit)+8bit数据+停止位(1bit),所以串口发送一帧数据其实发送了10bit的数据,所以1s就发送11520个字节,即有效传输速率为11.5KBytes每秒。

    以产生波特率的方式来理解波特率:

    该设计利用了50M系统时钟的FPGA来产生115200的波特率,在产生波特率之前,我们应该需知道:
    50M系统时钟:所谓50M系统时钟可以理解为频率为50M,周期为1/50_000_000的方波。

    50M时钟示意图

    以50M时钟的计数所需时间:假如我们在该方波的每个上升沿计一个数,则计50_000_000个数所需的时间为1s,所以计一个数所需的时间为1/50_000_000。
    115200波特率下发送一位数据所需要的时间为:1/115200=8.68us。
    传输一位所需的计数值为:8.68/(1/50)=434.。50M时钟115200波特率下计434数就会发送一位数据。
    我们利用采样定理在计数值的一半时(217)进行数据的传输,数据会更加稳定。
    所以我们在50M时钟下每计数217传输一位数据,就实现了115200波特率。最终实现结果如下所示:

    波特率示意图

    在上图中最下面的波形就是代表波特率波形,在每个脉冲处传输一位数据。

    在其他时钟频率和波特率下计算方法一样。

    相关文章

      网友评论

        本文标题:波特率怎么产生?

        本文链接:https://www.haomeiwen.com/subject/tufrictx.html