差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
串口监视系统设计 [2019/04/12 02:10]
gongyu
串口监视系统设计 [2020/01/18 21:54]
gongyu
行 1: 行 1:
 ### 串口监视系统设计 ### 串口监视系统设计
  
------+---
  
-###​实验任务+#### 实验任务
  
   * 任务:基于 STEP-MAX10M08核心板 和 STEP BaseBoard V3.0底板 完成串口监视系统设计并观察调试结果。   * 任务:基于 STEP-MAX10M08核心板 和 STEP BaseBoard V3.0底板 完成串口监视系统设计并观察调试结果。
行 9: 行 9:
   * 解析:通过FPGA编程驱动底板上的CP2102串口通信模块,接收来自PC(串口调试助手)或其他串口设备的数据,经过处理,最后通过驱动8位扫描式数码管模块,将接收到的数据显示在底板数码管上。   * 解析:通过FPGA编程驱动底板上的CP2102串口通信模块,接收来自PC(串口调试助手)或其他串口设备的数据,经过处理,最后通过驱动8位扫描式数码管模块,将接收到的数据显示在底板数码管上。
  
-====实验目的====+#### 实验目的
  
 本实验主要学习串口(UART)总线工作原理、协议及相关知识,练习如何使用FPGA驱动CP2102模块实现串口通信设计,同时复习上节中扫描式数码管模块的实例化应用。 本实验主要学习串口(UART)总线工作原理、协议及相关知识,练习如何使用FPGA驱动CP2102模块实现串口通信设计,同时复习上节中扫描式数码管模块的实例化应用。
行 16: 行 16:
   * 完成串口监视系统设计实现   * 完成串口监视系统设计实现
  
-====设计框图====+#### 设计框图
  
 根据前面的实验解析我们可以得知,该设计可以拆分成三个功能模块实现, 根据前面的实验解析我们可以得知,该设计可以拆分成三个功能模块实现,
行 27: 行 27:
  
 {{:​6-Top-Down层次设计.png?​600|Top-Down层次设计}}{{:​6-模块结构设计.png?​500|模块结构设计}} {{:​6-Top-Down层次设计.png?​600|Top-Down层次设计}}{{:​6-模块结构设计.png?​500|模块结构设计}}
-====实验原理==== 
  
-===UART接口介绍===+#### 实验原理 
 + 
 +##### UART接口介绍
  
 {{:​6-UART通信接口.png?​400|UART通信接口}} {{:​6-UART通信接口.png?​400|UART通信接口}}
行 55: 行 56:
   * 空闲位:处于逻辑 1 状态,表示当前线路上没有资料传送。   * 空闲位:处于逻辑 1 状态,表示当前线路上没有资料传送。
  
-===UART模块连接===+##### UART模块连接
  
 STEP BaseBoard V3.0底板上的基于CP2102方案的UART通信模块电路图如下: STEP BaseBoard V3.0底板上的基于CP2102方案的UART通信模块电路图如下:
行 63: 行 64:
 上图为基于CP2102方案的UART通信模块电路图,可以看到CP2102方案非常简洁,无需外置USB通信时钟晶体(内部集成),CP2102芯片TXD和RXD分别与FPGA芯片RXD和TXD连接,同时两个信号都连接了LED灯,这样当UART通信时,随着数据传输对应LED灯也会快速闪烁,起到UART通信指示灯的作用。CP2102芯片DTR和RTS通过两个三极管搭建流控电路,连接WIFI模块ESP8266-12F,使用UART模块烧写ESP8266模块的固件时就无需手动进入固件烧写模式了,这个会在后续涉及WIFI通信的实验中详细介绍,这里可以不用理会。 上图为基于CP2102方案的UART通信模块电路图,可以看到CP2102方案非常简洁,无需外置USB通信时钟晶体(内部集成),CP2102芯片TXD和RXD分别与FPGA芯片RXD和TXD连接,同时两个信号都连接了LED灯,这样当UART通信时,随着数据传输对应LED灯也会快速闪烁,起到UART通信指示灯的作用。CP2102芯片DTR和RTS通过两个三极管搭建流控电路,连接WIFI模块ESP8266-12F,使用UART模块烧写ESP8266模块的固件时就无需手动进入固件烧写模式了,这个会在后续涉及WIFI通信的实验中详细介绍,这里可以不用理会。
  
-===UART驱动实现===+##### UART驱动实现
  
 {{:​6-串行总线对比.png?​600|串行总线对比}} {{:​6-串行总线对比.png?​600|串行总线对比}}
行 293: 行 294:
 当我们需要UART发送数据的时候只需要实例化发送功能部分设计,需要UART接收数据的时候只需要实例化接收功能部分设计,例如本设计中FPGA驱动UART模块接收电脑串口调试助手发出的数据,所以我们就只需要实例化接收功能部分设计即可。 当我们需要UART发送数据的时候只需要实例化发送功能部分设计,需要UART接收数据的时候只需要实例化接收功能部分设计,例如本设计中FPGA驱动UART模块接收电脑串口调试助手发出的数据,所以我们就只需要实例化接收功能部分设计即可。
  
-===系统总体实现===+##### 系统总体实现
  
 刚刚学习了UART通信模块,本设计只需要使用接收功能部分设计,每一次通信都会得到一个8位数据,怎样将8位数据对应得数据显示在数码管上呢?我来先来了解一下UART接受到的8位数据与要显示数字的关系 刚刚学习了UART通信模块,本设计只需要使用接收功能部分设计,每一次通信都会得到一个8位数据,怎样将8位数据对应得数据显示在数码管上呢?我来先来了解一下UART接受到的8位数据与要显示数字的关系
行 349: 行 350:
  
  
-====实验步骤====+#### 实验步骤
   - 双击打开Quartus Prime工具软件;   - 双击打开Quartus Prime工具软件;
   - 新建工程:File → New Project Wizard(工程命名,工程目录选择,设备型号选择,EDA工具选择);   - 新建工程:File → New Project Wizard(工程命名,工程目录选择,设备型号选择,EDA工具选择);
行 360: 行 361:
  
  
-====实验现象====+#### 实验现象
  
 使用两根Micro-USB线同时连接核心板和底板的USB接口,将程序下载到FPGA中,数码管处于不显示的状态,打开电脑上的串口调试助手,按照前面图片配置相应参数,在数据发送窗口输入数字,点击发送观察底板数码管的变化,重新输入数字,点击发送再次观察底板数码管的变化。 使用两根Micro-USB线同时连接核心板和底板的USB接口,将程序下载到FPGA中,数码管处于不显示的状态,打开电脑上的串口调试助手,按照前面图片配置相应参数,在数据发送窗口输入数字,点击发送观察底板数码管的变化,重新输入数字,点击发送再次观察底板数码管的变化。