UART-FPGA整理-波特率

一、定义

  • 波特率是指单位时间(一般为一秒)内传输的(码元)符号个数

实例理解

  • PC和开发板的uart通信项目中,使用串口调试助手设置PC的波特率为115200,对应的,我们为开发板FPGA芯片设计的波特率也应该为115200。

  • 这里的115200单位为bit/s,指的是1s可以传输115200个bit,因此每个bit所占用的传输时间为1s÷115200bit=8.68us,此时假如开发板晶振使用的是50MHZ,则一个时钟周期为20ns,那么,传输一个bit在开发板上就需要计数8.68us=8680ns÷20ns=434次(这里就可以体现在verilog的描述中)。

  • 以此类推,波特率为9600时,传输一个bit就需要104us(1/9600),也就是计数104000÷20=5200次。(在这里四舍五入了一下,用下面的实际计算法得到的应该为5208,也就是标准5208)

  • 在实际计算中,可以直接使用晶振频率/波特率得到次数(1/晶振频率得到时钟周期,1/波特率得到传输1bit数据需要的时间,用后者除以前者就得到传输1bit需要计数的次数)

二、概念混析

  • 比特率是真正的每秒传输的bit数,即单位为bit/s,波特率单位为baud,特殊情况下为bit/s(在串口通信中,1个码元就是1bit,所以此处波特率单位为bps)。

实例理解

  • 数据传输速率为120字符/秒(波特),1字符包含8bit时,其比特率应该为120×8=960bps

三、波特率模块

  • 收到波特率模块开始工作的使能信号后,cnt开始计数,计数到434时cnt归零重新开始计数,也就是开始传输第二个bit

  • 波特率模块要产生一个标志信号,该标志信号是在计数0-434的中间位置为1(verilog中于217赋值为1),也就是说,在传输1bit数据的那段时间的正中,这个位置用于采样最合适不过,因为在这一个位置,所传输的这个bit的信号一定是最稳定的

  • 与接收模块相联系,每当检测到此标志信号的时候就可以将与PC相连的端口(也就是连到管脚的接收数据端口)那里处理亚稳态之后的数据送给接受数据寄存器,此时就是串转并了。

资料夹

什么是波特率,波特率怎么计算 Crazzy_M

波特率与比特率 风怜目尽无疆地s

FPGA基础知识极简教程(6)UART通信与移位寄存器的应用 李锐博恩

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值