用 HLS 实现 UART
judy 在 周一, 11/20/2023 - 15:10 提交
UART 是一种旧的串行通信机制,但仍在很多平台中使用
UART 是一种旧的串行通信机制,但仍在很多平台中使用
UART即通用异步收发器,是一种通用串行数据总线,用于异步通信
UART即通用异步收发器,是一种通用的串行、异步通信总线
通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UATR,是一种异步收发传输器。将数据由串行通信与并行通信间做传输转换,作为并行输入称为串行输出的芯片。UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。
UART是一种通用串行数据总线,用于异步通信。UART能实现双向通信,在嵌入式设计中,常用于主机与辅助设备通信。UART包括RS232、RS449、RS423等接口标准规范和总线标准规范,即UART是异步串行通信口的总称。
Zynq中的UART支持轮询和中断驱动两种模式。本文给出使用中断驱动模式的例子,完成与26篇中轮询模式下相同的功能,即UART收到8字节数据后执行某项操作。对比之下,体会中断驱动模式的特点。
Zynq中的UART支持轮询和中断驱动两种模式。本文给出两个使用轮询模式的例子,在24篇程序框架的基础上进行改动(贴出主要改动代码,改动很小的地方,如函数接口变化导致函数声明也要改,相信你可以根据我的代码和设计目的自己完成),最后再讨论一下轮询模式的特点。
在大部分的教科书中,都会提到如何分频,包括奇数分频,偶数分频,小数分频等。首先讲述DSS(直接频率合成法)的原理。DDS是重要的频率合成方法,在波形发生器中有极其重要的应用。DDS主要由几部分组成:a) 相位累加器;b) RAM数据读取;c) D/A转换器;d) 低通滤波器。
在ZYNQ进阶之路3中我们讲解了PL端UART 发送的设计,本节我们讲解PL端实现串口UART的接收设计。
上文对Zynq中的UART控制器做了简单介绍。从本文开始将以实例的方式详细讲述UART的各种使用方法。本文是UART最基础的使用方法,每秒发送一个“hello world”,实现的功能与printf或xil_printf相同。但后面介绍UART更复杂特性的文章,都是在本文设计的基础上进行改动。
SDK程序设计
Vivado中配置Zynq时启用开发板提供的UART接口。SDK中user_uart.h文件代码如下: