**这是本文档旧的修订版!**
=====串口监视系统设计=====
实验任务
- 任务:基于 STEP-MAX10M08核心板 和 STEP BaseBoard V3.0底板 完成串口监视系统设计并观察调试结果。
- 要求:设计串口监视系统,实时监控串口(UART)接收数据,并将数据显示在底板的8位数码管上(仅限数字0~9)。
- 解析:通过FPGA编程驱动底板上的CP2102串口通信模块,接收来自PC(串口调试助手)或其他串口设备的数据,经过处理,最后通过驱动8位扫描式数码管模块,将接收到的数据显示在底板数码管上。
实验目的
本实验主要学习串口(UART)总线工作原理、协议及相关知识,练习如何使用FPGA驱动CP2102模块实现串口通信设计,同时复习上节中扫描式数码管模块的实例化应用。
- 熟悉串口(UART)总线工作原理及通信协议
- 完成基于FPGA的串口通信模块设计
- 完成串口监视系统设计实现
设计框图
根据前面的实验解析我们可以得知,该设计可以拆分成三个功能模块实现,
- UartBus: UART串口通信设计,实现串口通信数据传输。 * Decoder:将UART模块接收到的数据转换成用于数码管显示的BCD码。 * Segmentscan:通过驱动底板扫描式数码管将串口接收的数据显示出来。
顶层模块DisplayCtl通过实例化两个子模块并将对应的信号连接,最终实现串口监视系统的总体设计。UART通信是全双工的,接收和发送是两个独立的设计,本实验只需要接收数据,串口通信有两个关键因素:传输格式和传输速率,我们可以用两个模块分别实现: * Baud:控制UART通信数据传输速率。 * UartRx:根据数据传输速率节拍控制UART通信数据格式。
实验原理
UART接口介绍
UART模块连接
UART驱动实现
系统总体实现
实验步骤
- 双击打开Quartus Prime工具软件;
- 新建工程:File → New Project Wizard(工程命名,工程目录选择,设备型号选择,EDA工具选择);
- 新建文件:File → New → Verilog HDL File,键入设计代码并保存;
- 设计综合:双击Tasks窗口页面下的Analysis & Synthesis对代码进行综合;
- 管脚约束:Assignments → Assignment Editor,根据项目需求分配管脚;
- 设计编译:双击Tasks窗口页面下的Compile Design对设计进行整体编译并生成配置文件;
- 程序烧录:点击Tools → Programmer打开配置工具,Program进行下载;
- 观察设计运行结果。