基于usart的arm与fpga通信实验
银杏科技有限公司旗下技术文档发布平台 |
技术支持电话 | 0379-69926675-801 |
技术支持邮件 | Gingko@vip.163.com |
版本 | 日期 | 作者 | 修改内容 |
V1.0 | 2020-07-01 | gingko | 初次建立 |
实验十二: UART通信实验
一、 实验目的与意义
掌握UART协议及实现方法。
掌握QuartusII的使用方法。
二、 实验设备及平台
-
-
Blaster(或相同功能)仿真器。
Micro USB线缆。
Keil MDK 开发平台。
Quartus开发平台。
电脑一台。
三、 实验原理
UART(通用异步收发器)是一种通用串行数据总线,用于异步通信,可实现全双工传输和接收,是做硬件开发时常用的一种硬件接口。USART(通用同步异步收发器)在UART的基础上增加了同步功能,即USART是UART的增强型,异步通信的时候和UART没有区别。
UART通信具有两根信号线,一根用于发送数据,一根用于接收数据。然而数据的传输是按照字节进行传输的,因此在发送时需要将并行数据转换成串行数据,接收时需要将串行数据转换成并行数据。
UART通信传输是以帧位单位的,每帧数据有4部分构成:起始位、数据位、奇偶校验位和停止位。以8位字长的串口发送数据帧为例,其帧协议如图16.1所示,从图中可以看到,初始状态时,传输线上为高电平,在持续一个比特的低电平之后,是发送的有效数据。之后是至少一个比特高电平的停止位。
在UART通信中有一个重要的参数,即波特率,它表征了串口的传输速度,表示1秒内传输的二进制位的个数,波特率越大速度越快,反之,越慢。
UART接线原则:RX←—→TX,TX←—→RX。
本实验通过FPGA建立的USART模块对外提供RXD、TXD接口,与STM32的TXD、RXD串口I/O相连接,Commix串口精灵与STM32连接,实现三者之间的通信。本实验中,Commix串口精灵向STM32发送数据,STM32的RXD端口接收数据,然后,通过TXD端口把数据发送至FPGA,STM32起到一个桥梁作用。程序运行后,FPGA定时向STM32发送数据,经过STM32发送至串口精灵显示出来。下图为实验原理图。
五、实验步骤
1.把仿真器与iCore4的SWD调试口连接(直接相连或者通过转换器相连);
2.将USB-Blaster与iCore4的JTAG调试口相连;
3.将跳线帽插在USB_UART;
4.把iCore4(USB_UART)通过Micro USB线与计算机相连,为iCore3供电;
5.打开Commix串口精灵,找到对应端口打开。操作如下图。
图12-3
9.将ARM程序烧录到iCore4上;
10.在串口精灵上输入串口命令,观察实验现象;
六、实验现象
串口发送命令格式 | ARM_LED现象 | FPGA_LED现象 |
ledr\cr\lf | 红灯亮 | 红灯亮 |
ledb\cr\lf | 蓝灯亮 | 蓝灯亮 |
ledg\cr\lf | 绿灯亮 | 绿灯亮 |
基于usart的arm与fpga通信实验.txt · 最后更改: 2022/03/22 10:29 由 sean