UART通信是最基础的,我们按照RS232的标准来编写相应模块,其中有起始位,结束位以及8位数据位。
因为RS232是异步收发器,我们还需要对信号进行同步处理,否则会出现亚稳态的问题,影响仿真。

首先产生分频时钟以及波特率计数器,只有当波特率时钟为1时,才会发送相应的数据位

然后编写状态机逐步输出每一位数据,最后使用issp以及串口助手来验证发送功能,

将程序写入fpga中后,在issp中编写相对应的数据都会在串口助手中显示出来。
然后编写接收模块,接收模块我们每一个数据位将其划分为16位,然后接收最中间的6位,对他们的值进行判断,取绝大多数的值为想要的,如果接受到的数据是55开的,则判断无效。
![]()
定义8个地址的3位数据

本文介绍如何在FPGA中实现UART通信模块,遵循RS232标准,涉及起始位、数据位和结束位。针对异步收发特性,需进行信号同步处理以避免亚稳态问题。通过分频时钟和波特率计数器控制数据发送,并用状态机逐位输出。发送功能通过issp和串口助手验证,接收模块则采用16位数据中6位多数判决法,有效数据判断及3位数据存储。最终通过硬件验证,确保串口通信的正确性。
最低0.47元/天 解锁文章
2987

被折叠的 条评论
为什么被折叠?



