如何增加网站访问量,种子搜索神器在线引擎,建设网站书籍,wordpress支持mysqli本节目录
一、设计思路
二、loop环回模块
三、仿真模块
四、仿真验证
五、上板验证
六、往期文章链接本节内容
一、设计思路
串口数据的收发回环测试#xff0c;最简单的硬件测试是把Tx和Rx连接在一起#xff0c;然后上位机进行发送和接收测试#xff0c;但是需要考虑到串…
本节目录
一、设计思路
二、loop环回模块
三、仿真模块
四、仿真验证
五、上板验证
六、往期文章链接本节内容
一、设计思路
串口数据的收发回环测试最简单的硬件测试是把Tx和Rx连接在一起然后上位机进行发送和接收测试但是需要考虑到串口数据的缓存通常软件驱动侧也会实现串口接收数据的缓存或者通过一个环形buffer进行串口接收数据的处理。 当然若PC端串口只发送一个字节FPGA内部可以直接将数据回环发送至PC。显然应用时候不可能如此因此在FPGA内部需要预留一定的缓存常用的设计思路通过FIFO将接收的数据缓存处理。在FPGA发送串口数据的时候也需要给PC端串口留一定的处理时间否则可能会发送因发送过快导致上位机串口无法响应。
串口接收模块用来接收上位机发送的数据串口发送模块用于将数据发回上位机数据环回负责把从串口接收模块接收到的数据送给串口发送模块以实现串口数据的环回。
仿真模块用于模拟上位机实现PC串口数据发送和PC串口接收FPGA的回环数据。通过仿真比对PC发送的数据和接收的数据是否一致从而判断数据的正确性。
二、loop环回模块
串口loop环回模块主要是通过一个FIFO缓存串口接收的数据在将FIFO中的数据一个一个字节发送。 采用uart_rx模块的数据有效作为FIFO的写入控制每个字节有效时候写入FIFO。串口数据的发送则以FIFO的非空标志作为启动读取FIFO内的数据并通过uart_tx将数据发送出去。通过发送接收uart_tx_stop,控制tx_start,每发送一个字节后停止发送检查FIFO的状态,从而实现FIFO的非空启动。
三、仿真模块
宏定义define SIM的方式将工程中的uart的时钟与复位信号引入至仿真模块此处设计的好处保证仿真uart和工程模块中的uart所使用的逻辑功能在一个时钟域下。 需要注意的是编译的时候需要把仿真宏定义注释掉。
采样task任务封装实现串口数据帧的发送当然开发者也可以自定义业务的帧头帧尾以及帧内容。
四、仿真验证 仿真中sim_uart_tx模拟上位机的发送数据,sim_uart_rx模拟上位机的接收数据在仿真模块中frame task产生固定的串口帧格式发送数据 帧头为a1b2c3d4 中间数据32’h80002000,32’h000000001,32’h000000001 帧尾为a6b7c8d9 从仿真中可以看出来第一帧的数据与输入的测试激励一致。
仿真中sim_uart_tx模拟上位机的发送数据图中可以sim_uart_tx的字节a1比uart_rx的字节a1更早并且两种的数值一致。
仿真中sim_uart_rx模拟上位机的接收数据图中可以uart_tx的字节a1比sim_uart_rx的字节a1更早并且两种的数值一致。
五、上板验证
上板验证采用的是正点原子的7020开发板自定义GPIO作为串口的收发pin通过CH340的模块与PC的usb端口相连上位机软件进行串口数据的发送与接收。
六、往期文章链接
UltraScaleFPGA中Serdes的多lane对齐异常解决方案 vivado时序报告中slack是如何计算的如何优化时序 UltraScaleFPGA中GTY的TX路径时钟详解——以40G的ETH MAC IP为例 vivado时序优化——约束异步时钟组set_clock_groups 基于FDMA和AXI4接口的DDR4遍历读写测试 基于fpga的图像处理之3x3_5x5算子模板设计 基于fpga的图像处理之3x3_5x5算子模板中值排序 基于fpga的图像处理之图像灰度化处理(VivadoModelsimMatlab联合仿真验证) 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 UltraScaleDDR4项目开发一——DDR4 MIG的ip接口信号
Xilinx UltraScaleDDR4项目开发二——DDR4 MIG的时钟网络 Xilinx UltraScaleDDR4项目开发三——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的在线升级