[X]关闭

[米联客-XILINX-H3_CZ08_7100] FPGA基础篇连载-12串口程序收发环路设计

文档创建者:FPGA课程
浏览次数:206
最后更新:2024-08-24
文档课程分类-AMD-ZYNQ
AMD-ZYNQ: ZYNQ-FPGA部分 » 2_FPGA实验篇(仅旗舰) » 1-FPGA基础入门实验
本帖最后由 FPGA课程 于 2024-8-24 11:13 编辑

​ 软件版本:VIVADO2021.1
操作系统:WIN10 64bit
硬件平台:适用 XILINX A7/K7/Z7/ZU/KU 系列 FPGA
实验平台:米联客-MLK-H3-CZ08-7100开发板
板卡获取平台:https://milianke.tmall.com/
登录“米联客”FPGA社区 http://www.uisrc.com 视频课程、答疑解惑!

1概述
前面两课,我们完成了我们发送程序的测试,成功给我们的PC主机发送了我们“HELLO FPGA”的信息,我们主机显示接收成功。但是我们串口接收的程序仅仅是通过我们模拟仿真,虽然仿真结果达到了期望,但是不能直接上板测试难免差强人意。所以我们不妨将我们串口UART接收程序以及发送程序连接起来,做到能将PC端通过USB发送过来的数据接收,然后将接收到的数据再通过发送程序返回给我们的PC机。
实验目的:
1:实现UART串口收发环路的设计
2:实现主程序中调用串口接收信息并且发送接收到的信息
3:完成仿真验证
4:编译并且固化程序到FPGA验证
2UART收发环路
在完成以下实验前,请确保已经完成了“UART串口发送实验”和“UART串口接收实验”
2.1系统框图
上位机通过串口发送数据到FPGA开发板的UART数据接收模块,数据接收模块接收数据后,通过UART数据发送模块把数据发回到串口芯片,之后数据在串口调试助手上打印,实现环路测试。对于发送控制器中的uart_busy信号,不需要使用,因为这里uart发送模块是被动发送。
09cd245a8ea443ae8c4eec7f3168ca1c.jpg
2.2顶层模块调用UART收发驱动源码
顶层模块只需要调用uart的首发模块驱动接口。并且设置uart_rdata和uart_wdata互联,uart_wreq和uart_rvalid互联。
  1. <blockquote><span style="font-size: 14px;">/*********************uart_top UART串口环路测试*********************</span>
复制代码


3FPGA工程
fpga工程的创建过程不再重复,如有不清楚的请看前面实验
a9139a916d374a44b37bc30357279c02.jpg
米联客的代码管理规范,在对应的FPGA工程路径下创建uisrc路径,并且创建以下文件夹
01_rtl:放用户编写的rtl代码
02_sim:仿真文件或者工程
03_ip:放使用到的ip文件
04_pin:放fpga的pin脚约束文件或者时序约束文件
05_boot:放编译好的bit或者bin文件(一般为空)
06_doc:放本一些相关文档(一般为空)
d19f7eb82fc041b99a8e3d183c5865c0.jpg
4RTL仿真4.1准备工作
仿真测试文件源码如下:
  1. <blockquote><span style="font-size: 14px;">`timescale 1ns/1ns   //定义仿真时间刻度/精度</span>
复制代码


仿真文件第产生测试波形10010101、00000101和10000100给串口接收模块。
4.2RTL功能仿真
为保证数据接收和发送的正确性,分别对串口接收模块和串口发送模块进行了仿真。其对应的仿真测试文件,参见工程文件夹里面的源文件。
接收端仿真如下所示,预先接收到低电平,之后再接收8位有效信号,接收寄存器得到8bit数据分别为10010101、00000101、10000100。
7a348e246d714da98205ae47564ef69b.jpg
串口回路仿真,必须注意,保持和接收发送文件中设置的波特率一致。
发送模块相对简单,以下是RTL功能仿真,可以看到我们的发送模块把测试文件中模拟发送的数据,从接收模块接收后正确发送出去了。
96a0c596fb4346ed8becb13fa27295d1.jpg
5下载演示
下载程序前,先确保FPGA工程已经编译。
5.1硬件连接
(该教程为通用型教程,教程中仅展示一款示例开发板的连接方式,具体连接方式以所购买的开发板型号以及结合配套代码管脚约束为准。)
本实验需要用到1.8V的FEP-BASE-CARD。请确保下载器和开发板已经正确连接,另外需要把核心板上的2P模式开关设置到JTAG模式,即ON ON,并且开发板已经上电。(注意JTAG端子不支持热插拔,而USB接口支持,所以在不通电的情况下接通好JTAG后,再插入USB到电脑,之后再上电,以免造成JTAG IO损坏)
cd1d7669284c439a943dafebd29cc7b9.jpg
5.2运行结果
0afd0a640d284d238b2e53f0d5aae728.jpg



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则