FPGA上板项目(五)——UART测试,串口发送

devtools/2024/12/29 3:47:22/

目录

  • 实验内容
  • 串口发送模块
    • 模块框图
    • 时序波形
    • 仿真结果
  • 顶层模块设计
    • 时序波形
    • 仿真结果
    • 上板验证


实验内容

  • 每隔1s,串口发送一次 “HELLO!”

UART 相关的原理 野火FPGA跟练(四)——串口RS232、亚稳态、串口RS485 中做过阐述,本篇文章将在此基础上优化,并进行上板验证。

串口发送模块

模块框图

在这里插入图片描述

引脚方向位宽说明
clkin1时钟
rst_nin1同步低复位
tx_datain8发送数据
tx_validin1发送数据有效标志位
tx_pinout1发送端引脚
tx_readyout1发送端准备标志位
  • tx_valid:表征 tx_data 的有效性,tx_valid 为高时表示 tx_data 可用,可以进行后续的并串转换。

  • tx_ready:tx_ready 为高时表示发送缓冲区为空, tx_data 已经并串转换为 tx_pin,一帧数据转换已结束,发送端已准备好发送下一帧数据。

时序波形

在这里插入图片描述

状态变量分析:

  • IDLE:空闲状态,此时 TX_PIN 为高,TX_READY 为高。
  • START:发送起始位(TX_PIN 为低)
  • DATA:发送数据位,此时 BIT_CNT 开始计数,从 0-7。
  • STOP:发送停止位(TX_PIN 为高)

仿真结果

对编写的 HDL 代码进行仿真,仿真时序图如下。逐个信号进行比对后,可以看出,仿真结果与预想的时序波形相同。

在这里插入图片描述

下面检验比特信息是否正确,对上面的波形图进行比特位截取。此时,这一帧要发送的数据为11,即 0000 1011,低位先发则顺序调整为 1101 0000,可以从图中看出,比特信息发送正确。

在这里插入图片描述

顶层模块设计

实验内容回顾:每隔一秒,串口发送一次“HELLO!”

时序波形

在这里插入图片描述

  • 1s_CNT 计数达 MAX 后,TX_VALID 拉高,开始发送数据
  • 每发送完一个字符(即 TX_READY 为高,TX_READY_2 为低时),TX_CNT 计数加一
  • TX_DATA 依据 TX_CNT 的数值变化而更新
  • 当 TX_CNT 不为零且 TX_READY_2 为高的时候(即 TX_DATA 更新的时候),TX_VALID 再次将自己拉高

仿真结果

对编写的 HDL 代码进行仿真,仿真时序图如下。逐个信号进行比对后,可以看出,仿真结果与预想的时序波形相同。

在这里插入图片描述

  • one_sec_cnt 达到 MAX 后,tx_valid 被拉高,开始发送数据

在这里插入图片描述在这里插入图片描述

  • 发送完一个字符后,tx_valid 被重新拉高。
  • 发送完最后一个字符后,tx_valid 保持为低,等待下一个 one_sec_cnt 计数结束

上板验证

在这里插入图片描述

  • 通过串口助手可以看到,每隔1s,串口发送了一次“HELLO!”

http://www.ppmy.cn/devtools/146291.html

相关文章

Rust 在前端基建中的使用

摘要 随着前端技术的不断发展,前端基础设施(前端基建)的建设已成为提升开发效率、保障产品质量的关键环节。然而,在应对复杂业务场景与高性能需求时,传统的前端技术栈逐渐暴露出诸多不足。近年来,Rust语言…

代码随想录38 322. 零钱兑换,279.完全平方数,本周小结动态规划,139.单词拆分,动态规划:关于多重背包,你该了解这些!背包问题总结篇。

1.零钱兑换 力扣题目链接(opens new window) 给定不同面额的硬币 coins 和一个总金额 amount。编写一个函数来计算可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 你可以认为每种硬币的数量是无限的。 示例 1&#xff1a…

云边端一体化架构

云边端一体化架构是一种将云计算、边缘计算和终端设备相结合的分布式计算模型。该架构旨在通过优化资源分配和数据处理流程,提供更高效、更低延迟的服务体验。 下面是对这个架构的简要说明: 01云计算(Cloud Computing) — 作为中心…

Docker【初识Docker】

目录 为什么会出现Docker这门技术喃? 应用开发和部署的困境 容器技术的先兆 Docker 的出现:简化容器化 Docker 技术的关键创新: Docker 的广泛应用和变革 什么是 Docker? Docker的历史 早期背景:容器化和虚拟化…

SQL—leetcode—175. 组合两个表

175. 组合两个表 表: Person -------------------- | 列名 | 类型 | -------------------- | PersonId | int | | FirstName | varchar | | LastName | varchar | -------------------- personId 是该表的主键(具有唯一值的列)。 该表包含一些人的 ID 和…

串口通信标准RS232、RS422、RS485有什么区别和不同

目录 第一个区别:硬件管脚接口定义不同: 第二个区别、工作方式不同 第三个区别、通信方式不同 第四个区别,逻辑特性不同 第五个区别、抗干扰性、传输距离和传输速率也不同 RS-232与RS-485对比 RS-422与RS-485对比 今天给大家分享的是&…

Android图形绘制之Shapes包详解

Android图形绘制之Shapes包详解 在Android开发中,图形绘制是一个非常重要的部分,尤其是在自定义View和UI设计时。Android提供了丰富的API来帮助开发者实现各种图形绘制需求。其中,android.graphics.drawable.shapes包提供了一系列用于绘制基本形状的类。本文将深入探讨andr…

Docker 默认安装位置迁移

一、找到 Docker 默认安装位置 [roothost-192-168-0-1 ~]# docker info Client:Version: 26.1.0Context: defaultDebug Mode: falseServer:Containers: 31Running: 31Paused: 0Stopped: 0Images: 128Server Version: 26.1.0Storage Driver: overlay2Backing Filesystem:…