差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
串口监视系统设计 [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中,数码管处于不显示的状态,打开电脑上的串口调试助手,按照前面图片配置相应参数,在数据发送窗口输入数字,点击发送观察底板数码管的变化,重新输入数字,点击发送再次观察底板数码管的变化。 |