A1:IntroductionA1.1AbouttheAXIprotocolAMBAAXI支持高性能、高速的系统设计。AXI协议:适合高带宽、低延迟的设计不使用复杂bridge的情况下运行高工作频率满足很多组件的接口要求灵活实现interconnect架构向后兼容AHB、APB接口AXI协议的关键特性是:地址/控制和数据分离支持非对齐的datatransfer(通过byte选通)基于burst的transaction,仅需要首地址读/写数据通道分离,从而实现低消耗的DMA支持发送多个oustanding的地址支持out-of-order的transaction容易进行寄存器打拍去满足timin
目录1、前言2.整体环境搭建1.1sequence_lib1.1.1uart_ctrl_sequence_lib1.1.2 virtual_uart_ctrl_sequence_lib1.2virtual_sequencer1.3uart_ctrl_env1.4top顶层搭建1.4.1top1.4.2pkg 1.5base_test1.6冒烟测试 2其他组件以及细节填充2.1配置文件config2.2增加sequence进行简单验证2.3更新virtual_uart_ctrl_sequence_lib2.4编写对应case编辑 3仿真波形4结语 1、前言整个uvm学习完毕后,初步了解并搭建出
目录学习目标内容通信方法并行通信串行通信通信方向通信方式 UART特点串口参数通信流程寄存器USART_SRUSART_DR USART_BRR过程代码运行结果运行结果遇到的问题总结 学习目标 本节我们要学习的的是STM32的通信部分,主要介绍UART(通用异步收发器),是一种异步、全双工的通信方式。内容 首先,我们先来介绍一下通信的基本知识,之前在51单片机的学习中我们也接触过UART,在此就不做详细介绍,感兴趣的同学请看51单片机基础——串口通信 。通信方法并行通信 传输原理:数据各个位同时传输。 优点:速度快 缺点:占用引脚资源多串行通信 传输原理:数
要想理解什么是DTE和DCE以及CTS、RTS的流控,那么我们要回到远古时代,现在都是用网口(RJ45)上网的,你经历过用串口(DB9、DB25)上网的年代吗?DTE(dataterminalequipment)是数据终端设备。例如电脑,打印机。这种设备一般用公头DB9/DB25连接器。DCE(datacommunicationequipment)是数据通讯设备。例如调制解调器。这种设备上一般用母头DB9/DB25连接器。下图就是一个串口的调制解调器,用了DB25的母口。之所以定义DCE和DTE两种设备(或者模式),是为了区分串口通信中各个信号的方向。以DB9串口为例,信号方向定义如下。仔细看
上篇blog中记录了DDR3AXI4接口的IP配置详情,这一文章则是记录自己在项目工程以及学习中对于DDR3的读写测试。先讲一下大概的工程架构:产生16位的自加数写进写FIFO中,当FIFO中的数达到一次突发长度后将其全部读出写进DDR3中,再检测到DDR3中数达到1024之后全部读出写入到读FIFO中,最后在顶层的读使能信号作用下将读FIFO的数全部读出,查看写入的自加数与读出的数是否符一直,符合则实验成功。 可能有的读者最开始会疑问为什么会用到两个异步FIFO,这个自己在最开始学的时候也在想不用行不行,你不用FIFO直接写入数据再读出肯定也是可以的,但是考虑到实际项目需求以及IP核封装出
SPI(串行外设接口),I2C(串行总线接口)和UART(通用异步收发器)是三种常用的通信协议,用于在不同的设备之间进行数据传输。目录三者的区别:单工,半双工,全双工:同步传输和异步传输:串行和并行:三者的区别:通信协议硬件连接总线速度传输方式功能SPI4线(SCLK\MOSI\MISO\SS)MHz同步双向、全双工/半双工I2C2线(SDA\SCL)KHz同步多设备总线UART2线(TX\RX)115200bps异步单向或双向串行1.硬件连接:SPI使用4线或3线(带主从模式)连接,其中包括一个时钟线、一个主从选择线、一个主设备输出线和一个主设备输入线。I2C使用两根线(SDA和SCL)进行
目录任务要求仿真波形设计文件程序Method_OneMethod_Two仿真文件程序任务_板级验证结果任务要求使用串口发送5个字节数据到电脑1、ADC采样的结果为12位,如何使用串口发送2、16位数据,如何通过串口发送3、多个字节的数据,如何通过串口发送UART规定,发送的数据位只能有6、7、8位,若直接修改发送位数,接收模块将不适配。两种情况:1、没有开始发送(上一次的发送已经完成,新的40位数据的发送请求没有出现)2、40位数据的发送请求信号已出现3、依次发送数据中状态:等待传输请求(Trans_Go);Data产生Send_Go,启动发送第一个字节;接着等待Tx_Done;判断Data4
近期在开发图传项目的时候,由于需要发送的数据量及其庞大,因此在处理的时候,发现STM32HAL库的串口函数,在处理海量数据的时候,存在bug,导致不能将指定数量的数据全部发送出去。 例如,我以200个字节为一个数据包,使用HAL_UART_Transmit函数,通过串口发送。那么,在发送几千个数据包后,会出现单个数据包发送不完整的情况(200个字节一个包,实际上可能只发送了60个字节出去,就没有任何征兆的提前结束了,并开始发送下个数据包)。导致图像数据丢失。 因此,在需要使用串口发送大量数据的时候,建议不要使用HAL库的函数,而是直接对寄存器操作。这里以STM32H7为例,(因为H7将DR寄存
HAL_UART_RxCpltCallback函数他是谁,他和谁有关功能用法每收到一个字符,就自动调用一次??示例----接收未知长度的字符他是谁,他和谁有关HAL_UART_RxCpltCallback是一个回调函数,用于在使用HAL库进行串口接收时处理接收完成事件。当使用HAL_UART_Receive_IT函数启动串口接收并且接收到指定数量的数据后,HAL库会自动调用HAL_UART_RxCpltCallback函数。回调函数是一种特殊的函数,它在特定事件发生时由系统或库调用,而不是由程序显式调用。在这种情况下,当串口接收完成时,HAL库会自动调用HAL_UART_RxCpltCallb
目录1.UART串口介绍2.实验任务3.FPGA代码4.STM32代码5.总结1.UART串口介绍 UART是一种采用异步串行方式的通用异步收发传输器,在发送数据时将并行数据转换成串行数据来传输,在接收数据时将接收到的串行数据转换成并行数据。 UART串口通信需要两根信号线来实现,一根用于串口发送,另一根负责串口接收。 UART的一帧数据由4部分组成:起始位、数据位、奇偶校验位和停止位。起始位标志着一帧数据的开始,低电平有效;数据位代表一帧数据中的有效数据;校验位分为奇校验和偶校验检测数据是否出错;在空闲状态下总线处于高电平。 UART通