FPGA 中 波特率及如何实现串口传输

本文介绍了串口通信中波特率的计算方式,详细解析了115200波特率下每个字节包含的位数,并探讨了数字传输时的处理方法。同时,讲解了FPGA如何实现UART接收和发送,涉及到的信号包括clk、rst_n和波特率param的cnt。在接收处理中,提到了数据打两拍以减少亚稳态的问题。
摘要由CSDN通过智能技术生成

关于串口传输,首先得清楚波特率

波特率 = 每秒传输的字节数 × 一个字节的位数

所以波特率就是每秒能传输的位数

设波特率为115200,数据位数为8位,但是我们还需要考虑,校验位(一般设NONE)、起始位和终止位,所以为10位。
那么字节数就为 11520,波特率越大,传输的数据,速度就越多越快
在这里插入图片描述
一般来说,字母和数字都为一个字节,汉字为两个字节
假设我们要传输 “stm32” 这个字符串,那么就是从左到右一个字节一个字节传输
那假设我们要传输88888这一串数字呢?8位即2^8=256 位数不够怎么办。
这想的不对
传输数字10时,10的“16进制”为31 30 ——(ASCII码)把数字拆开,一个一个传输,到底还是字符传输。

FPGA如何发送接收串口数据
Uart的常用信息包括 波特率,数据位,停止位
发送端和接收端的信息必须一致
传输的基本格式:起始位,D[7:0] ,停止位

如何符合波特率的要求,时钟为clk,波特率为baud,我们要传输1位的数据,期间FPGA需要计数值为:
c n t = c l k b a u d cnt = \frac{clk}{baud} cnt=baudclk

FPGA要实现Uart接收,提供的信号有clk,rst_n,波特率param的cnt
FPGA接收的处理包括接收线的数据打两拍,减小亚稳态

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花椒且喵酱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值