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

server/2024/12/24 0:53:48/

目录

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


实验内容

  • 每隔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/server/152625.html

相关文章

基于 iAP2 协议 的指令协议,用于对安防设备的 MCU 进行操作

协议设计目标 1. 安全性:通过 iAP2 协议与 MCU 设备进行安全通信。 2. 通用性:支持对安防设备的常见功能进行操作,如状态查询、设备控制、参数配置等。 3. 高效性:数据结构简洁清晰,易于解析和扩展。 4. 扩展性&#x…

CSS系列(20)-- 自定义属性详解

前端技术探索系列:CSS 自定义属性详解 🎨 致读者:探索 CSS 变量的魅力 👋 前端开发者们, 今天我们将深入探讨 CSS 自定义属性(CSS Variables),学习如何利用它们创建更灵活的样式系…

el-date-picker筛选时间日期选择范围

el-date-picker 选择时间日期范围-> 昨天 近7天 30天<template><div class"main"><div class"header"><el-form :model"form" label-width"auto"><el-button plain click"setTimeToYesterday&q…

高创新模型BiLSTM-KAN网络的轴承寿命预测,Python代码

概要 继前期几篇轴承寿命预测&#xff0c;本期再推出一篇有关寿命预测的模型。 往期有关轴承寿命预测的文章如下&#xff1a; 基于堆叠去噪自编码器(SDAE)的轴承寿命预测&#xff0c;MATLAB代码 Transformer-LSTM网络的轴承寿命预测&#xff0c;保姆级教程&#xff01; 以上两篇…

MYSQL 利用concat函数 生成更新或者插入SQL

有时候需要批量运维一批数据&#xff0c;一条一条写SQL比较麻烦&#xff0c;可以使用下面的方法批量生成select sales_order_number,a.sog_line_id,actual_price,sales_goods_unit_price,b.id,concat(update your_table set actual_price, sales_goods_unit_price, where id,b…

211-基于FMC的1路1.5G ADC 1路 2.5G DAC子卡

一、板卡概述 FMC-1AD-1DA-1SYNC是我司自主研发的一款1路1G AD采集、1路2.5G DA回放的FMC、1路AD同步信号子卡。板卡采用标准FMC子卡架构&#xff0c;可方便地与其他FMC板卡实现高速互联&#xff0c;可广泛用于高频模拟信号采集等领域。 二、功能介绍 2.1 原理框图 2.2 硬件…

【Python】*args和**kwargs

【Python】*args和**kwargs 一、*args: 接收不定数量的位置参数示例1&#xff1a;简单的加法计算器示例2&#xff1a;转发参数给另一个函数 二、**kwargs: 接收不定数量的关键字参数示例3&#xff1a;创建用户配置文件示例4&#xff1a;合并多个字典 三、组合使用*args和**kwar…

Type-C厂家的环保测试:保障绿色科技的未来

随着科技的飞速发展&#xff0c;USB Type-C接口逐渐成为各种电子产品中标配的连接标准。由于其高效能、便捷性以及广泛的兼容性&#xff0c;Type-C接口的应用已经涵盖了智能手机、笔记本电脑、平板、电视等多个领域。然而&#xff0c;在全球对环境保护日益关注的背景下&#xf…