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

news2024/11/23 9:25:50

在这里插入图片描述

本节目录

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

本节内容

一、自适应波特率串口

串口波特率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的在线升级

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2245896.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JS中的正则表达式简要梳理

文章目录 一、结构1、匹配模式2、字符组3、量词4、贪婪匹配和惰性匹配5、多选分支6、匹配模式关键词 二、位置1、位置锚点 三、括号分组1、分组2、分支结构3、引用分组4、括号嵌套 四、回溯模式1、回溯匹配 正则表达式(Regular Expression)‌是一种强大的…

【风水】-- 买车和用车的风水知识

目录 一、阴阳与车的风水 1. 车的属性:阴阳平衡 2. 车主与车的阴阳互补 二、五行与车的风水 1. 车的颜色与五行 2. 车主的五行与车的五行匹配 3. 五行相生相克的应用 三、八卦与车的风水 1. 车位选择与八卦方位 2. 车内布置与八卦 四、总结 结合阴阳、五…

深度剖析Linux进程控制

文章目录 🍕前言🥝进程创建fork 函数fork函数返回值写时拷贝fork 使用场景fork调用失败的原因 🥥进程终止进程退出码进程正常退出return 退出exit 函数_exit 函数return VS exit VS _exit 进程异常退出 🍇进程等待进程等待的必要性…

网络安全,文明上网(6)网安相关法律

列举 1. 《中华人民共和国网络安全法》: - 这是中国网络安全的基本法律,于2017年6月1日开始实施。该法律明确了网络运营者的安全保护义务,包括采取数据分类、重要数据备份和加密等措施。 2. 《中华人民共和国数据安全法》: …

IDEA2023 SpringBoot整合MyBatis(三)

一、数据库表 CREATE TABLE students (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(100) NOT NULL,age INT,gender ENUM(Male, Female, Other),email VARCHAR(100) UNIQUE,phone_number VARCHAR(20),address VARCHAR(255),date_of_birth DATE,enrollment_date DATE,cours…

【Vue】 npm install amap-js-api-loader指南

前言 项目中的地图模块突然打不开了 正文 版本太低了,而且Vue项目就应该正经走项目流程啊喂! npm i amap/amap-jsapi-loader --save 官方说这样执行完,就这结束啦!它结束了,我还没有,不然不可能记录这篇文…

八股文:适合背诵的基础知识进行整理

四、IO进程:IPC 1. 标准IO和系统IO的区别 标准文件IO 概念:C库中定义的一组用于输入输出的函数 特点 (1)有缓存机制,减少系统调用 (2)围绕文件流进行操作 (3)默认…

面试干货:软件测试常见面试题(附答案)

1、文档测试主要包含什么内容? 参考答案: 在国内软件开发管理中,文档管理几乎是最弱的一项,因而在测试工作中特别容易忽略文档测试也就不足为奇了。要想给用户提供完整的产品,文档测试是必不可少的。文档测试一般注重下面几个方…

查询 linux相关信息

文章目录 前言查询 linux相关信息1. 查询内存大小(mem)2. 统计 当前系统的 CPU 核心数3. 查看系统的操作系统信息4. Ubuntu 系统版本的版本号 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊&#xff…

【动手学深度学习Pytorch】4. 神经网络基础

模型构造 回顾一下感知机。 nn.Sequential():定义了一种特殊的module。 torch.rand():用于生成具有均匀分布的随机数,这些随机数的范围在[0, 1)之间。它接受一个形状参数(shape),返回一个指定形状的张量&am…

新版自助笔记-工作记录-2024-11-18

环境&#xff1a; Windows11 .Net 4.5.2 Vs20151.Web <sKey>平台上获取的通讯码</sKey> Web -> 设置 -> 系统设置 -> 通讯密钥<SoftKey>设备身份识别码</SoftKey> Web -> 终端设备管理 -> 身份识别码<ZZUrl>Web服务</ZZUr…

【Linux课程学习】:进程程序替换,execl,execv,execlp,execvp,execve,execle,execvpe函数

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;Linux课程学习 &#x1f337;追光的人&#xff0c;终会万丈光芒 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 ​ ​ 目录 替换原理&#xff1a; 替换函数&…

Bug:引入Feign后触发了2次、4次ContextRefreshedEvent

Bug&#xff1a;引入Feign后发现监控onApplication中ContextRefreshedEvent事件触发了2次或者4次。 【原理】在Spring的文档注释中提示到&#xff1a; Event raised when an {code ApplicationContext} gets initialized or refreshed.即当 ApplicationContext 进行初始化或者刷…

【智谱清言-注册_登录安全分析报告】

前言 由于网站注册入口容易被机器执行自动化程序攻击&#xff0c;存在如下风险&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露&#xff0c;不符合国家等级保护的要求。短信盗刷带来的拒绝服务风险 &#xff0c;造成用户无法登陆、注册&#xff0c;大量收到垃圾短信的…

煤炉Mercari新手开店十问十答

在跨境电商的浪潮中&#xff0c;Mercari&#xff08;煤炉&#xff09;作为一个备受瞩目的C2C二手商品交易平台&#xff0c;吸引了众多新手卖家的目光。然而&#xff0c;初次在Mercari开店可能会遇到各种问题和挑战。为此&#xff0c;我特别整理了2024年最新的十问十答指南&…

[面试]-golang基础面试题总结

文章目录 panic 和 recover**注意事项**使用 pprof、trace 和 race 进行性能调试。**Go Module**&#xff1a;Go中new和make的区别 Channel什么是 Channel 的方向性&#xff1f;如何对 Channel 进行方向限制&#xff1f;Channel 的缓冲区大小对于 Channel 和 Goroutine 的通信有…

【Flask+Gunicorn+Nginx】部署目标检测模型API完整解决方案

【Ubuntu 22.04FlaskGunicornNginx】部署目标检测模型API完整解决方案 文章目录 1. 搭建深度学习环境1.1 下载Anaconda1.2 打包环境1.3 创建虚拟环境1.4 报错 2. 安装flask3. 安装gunicorn4. 安装Nginx4.1 安装前置依赖4.2 安装nginx4.3 常用命令 5. NginxGunicornFlask5.1 ng…

一个用纯PHP开发的服务器-workerman

什么是Workerman 简单的说Workerman是一个纯php开发的服务器。 workerman的目标是让PHP开发者更容易的开发出基于socket的高性能的应用服务&#xff0c;而不用去了解PHP socket以及PHP多进程细节。 workerman本身是一个PHP多进程服务器&#xff0c;类似nginxphp-fpm的结合体&am…

如何在Linux上安装Canal同步工具

1. 下载安装包 所用到的安装包 canal.admin-1.1.4.tar.gz 链接&#xff1a;https://pan.baidu.com/s/1B1LxZUZsKVaHvoSx6VV3sA 提取码&#xff1a;v7ta canal.deployer-1.1.4.tar.gz 链接&#xff1a;https://pan.baidu.com/s/13RSqPinzgaaYQUyo9D8ZCQ 提取码&#xff1a;…

Leetcode 组合

使用回溯来解决此问题。 提供的代码使用了回溯法&#xff08;Backtracking&#xff09;&#xff0c;这是一种通过递归探索所有可能解的算法思想。以下是对算法思想的详细解释&#xff1a; 核心思想&#xff1a; 回溯法通过以下步骤解决问题&#xff1a; 路径选择&#xff1a…