低速接口项目之串口Uart开发(七)——如何在FPGA项目中实现自适应波特率串口功能

本节目录

bash 复制代码
一、自适应波特率串口
二、自适应波特率串口设计思路
三、自适应波特率串口测试验证
四、往期文章链接

本节内容

一、自适应波特率串口

串口波特率Baud,具体定义此处不再进行描述,常用的波特率数值有115200、57600、38400、19200、9600等,FPGA开发项目使用中通常都是固定的波特率与上位机串口通信,上位机可以选择对应的FPGA波特率才能实现通信,否则通信失败。但是,实际中可能会存在不同的波特率通信需求,那么如何在FPGA项目中实现自适应波特率的串口功能?

本文在FPGA内部实现以上以上五种波特率切换,当然离不开上位机的支持以及协议的制定。用户直接使用的必然是界面,也就是需要通过界面来通知FPGA,当前上位机设置的波特率是多少?FPGA内部会通过接收解析对应的波特率,从而双方约定好一致的波特率。

二、自适应波特率串口设计思路

自适应波特率串口设计思路,基于以前uart系列文章基础,上位机和FPGA双方采用串口波特率寄存器通信的方式,实现串口波特率设置。FPGA内部默认使用115200的波特率,通过寄存器写入指定的波特率数值从而实现不同波特率切换。

上位机通过寄存器写入方式,更新FPGA的波特率。FPGA内部如何实现?FPGA内部采用不同波特率接收,并解析对应寄存器地址与内容,然后从而确定上位机所设置的波特率数值。

其实,此处确实造成了部分资源的浪费,因为后期需要对业务帧的解析,因此每个波特率都对数据进行了缓存解析处理,当然也有其他方法实现,因为代码的继承性,在系列文章上开发的。可以关注下资源使用情况,酌情复用串口接收模块。

三、自适应波特率串口测试验证

自适应波特率串口测试验证,验证的思路大致如下:

①上位机设置发送波特率以及FPGA内部波特率设置;

②对FPGA内部寄存器进行读取,获取寄存器默认值,并判断一致,证明通信成功。

串口波特率和FPGA波特率设置为115200,通过查询得到FPGA波特率为115200,对寄存器40000000进行读取,数值为aaaabbbb,与默认值一致。

串口波特率和FPGA波特率设置为57600,通过查询得到FPGA波特率为57600,对寄存器40000000进行读取,数值为aaaabbbb,与默认值一致。

串口波特率和FPGA波特率设置为38400,通过查询得到FPGA波特率为38400,对寄存器40000000进行读取,数值为aaaabbbb,与默认值一致。

串口波特率和FPGA波特率设置为19200,通过查询得到FPGA波特率为19200,对寄存器40000000进行读取,数值为aaaabbbb,与默认值一致。

串口波特率和FPGA波特率设置为9600,通过查询得到FPGA波特率为9600,对寄存器40000000进行读取,数值为aaaabbbb,与默认值一致。

四、往期文章链接

UltraScale+FPGA中Serdes的多lane对齐异常解决方案
vivado时序报告中slack是如何计算的?如何优化时序?
UltraScale+FPGA中GTY的TX路径时钟详解------以40G的ETH MAC IP为例
vivado时序优化------约束异步时钟组set_clock_groups
基于FDMA和AXI4接口的DDR4遍历读写测试
基于fpga的图像处理之3x3_5x5算子模板设计
基于fpga的图像处理之3x3_5x5算子模板中值排序
基于fpga的图像处理之图像灰度化处理(Vivado+Modelsim+Matlab联合仿真验证)
AXI协议之AXILite开发设计(一)
AXI协议之AXILite开发设计(二)
AXI协议之AXILite开发设计(三)
AXI协议之AXILite开发设计(四)
AXI协议之AXILite开发设计(五)
FPGA和Matlab的FFT功能验证(一)
FPGA和Matlab的FFT功能验证(二)
FPGA和Matlab的FFT功能验证(三)
跟小灰灰一起学vivado:7系列FPGA的MultiBoot和Fallback功能更新固件
跟小灰灰一起学vivado:7系列FPGA配置模式之配置数据文件格式和配置时序步骤
跟小灰灰一起学vivado:7系列FPGA配置模式之主SPI四路(x4)
跟小灰灰一起学vivado:PCIe XDMA实现远程更新FPGA固件
Xilinx UltraScale+DDR4项目开发(一)------DDR4 MIG的ip接口信号
Xilinx UltraScale+DDR4项目开发(二)------DDR4 MIG的时钟网络
Xilinx UltraScale+DDR4项目开发(三)------DDR4器件选型与MIG IP的配置
低速接口项目之串口Uart开发(一)------串口UART
低速接口项目之串口Uart开发(二)------FIFO实现串口数据的收发回环测试
低速接口项目之串口Uart开发(三)------串口发送模块和接收模块
低速接口项目之串口Uart开发(四)------UART串口实现FPGA内部AXILITE寄存器的读写控制
低速接口项目之串口Uart开发(五)------QT实现Uart串口寄存器读写工具
低速接口项目之串口Uart开发(六)------zynq系列ps-pl端uart实现共享Axilite内部寄存器的读写
低速接口项目之串口Uart开发(七)------如何在FPGA项目中实现自适应波特率串口功能
低速接口项目之串口Uart开发(八)------如何通过ps侧的串口实现zynq的在线升级(一)
低速接口项目之串口Uart开发(九)------如何通过ps侧的串口实现zynq的在线升级(二)
低速接口项目之串口Uart开发(十)------基于EMIO的自定义PL串口实现zynq的在线升级

相关推荐
北京青翼科技11 小时前
PCIe接口-高速模拟采集—高性能计算卡-青翼科技高品质军工级数据采集板-打造专业工业核心板
图像处理·人工智能·fpga开发·信号处理·智能硬件
dadaobusi1 天前
verilog重音符号
fpga开发
s09071361 天前
Xilinx FPGA ISERDES 使用详细介绍
fpga开发·xilinx·ddr·iserdes
虹科智能自动化1 天前
虹科分享 | SocTek IP Cores:FPGA高端网络与时间同步解决方案
fpga开发·ip核·tsn时间敏感网络
秋风战士1 天前
无线通信算法之340:信道均衡除法定标讨论
算法·fpga开发·信息与通信
FPGA小迷弟1 天前
基于FPGA实现HDMI接口,选型/核心技术
学习·fpga开发·verilog·fpga·modelsim
szxinmai主板定制专家2 天前
基于 PC 的控制技术+ethercat+linux实时系统,助力追踪标签规模化生产,支持国产化
arm开发·人工智能·嵌入式硬件·yolo·fpga开发
博览鸿蒙2 天前
如何为春招的金三银四做好准备
fpga开发
FPGA小迷弟2 天前
FPGA处理图像需要用到的主流接口详解
学习·fpga开发·verilog·fpga·modelsim
LeoZY_2 天前
CH347 USB转JTAG功能使用笔记:CH347根据SVF文件实现任意FPGA下载
笔记·stm32·嵌入式硬件·fpga开发·硬件架构·硬件工程