AX7020 学习笔记(三)UART 持续更新中

三.常用外设接口

1.UART

串口介绍

串口大家都已经非常熟悉了这里简单带大家复习一下,以及补充一些我们在用单片机上使用串口与在FPGA上的区别

1.串口分为同步串口(USRT)与异步串口(UART),区别在于是否需要时钟线。

2.数据帧:一帧数据帧有十位起始低电平,停止高电平中间八位数据位,空闲状态为高电平。

3.波特率与比特率:波特率即每秒传输的码元数符号为Baud单位Bps波特每秒,由于串口是1bit进行传输,一个码元就是一个二进制数。每秒传输的信息量为传输速率简称比特率,单位为bps。 比特率 = 波特率 * 单个调制状态对应的二进制位数

老式的电脑配备有RS232或者RS485接口,RS232单端输入输出只是将电平转换,而RS485是单端转差分,如今大多是USB接口,将USB的差分信号与串口的TTL信号互相转化。

由于AX7020的USB转串口在PS端而我有懒得去找USB转TTL模块故本次只有仿真没有上板。

实验任务

本节实验任务是上位机通过串口调试助手发送数据给AX7020开发板,AX7020开发板 PL 端通过USB_UART 串口接收数据并将接收到的数据发送给上位机,完成串口数据环回。

程序设计

顶层模块设计
在这里插入图片描述

module uart_loopback(
    input       sys_clk     ,
    input       sys_rst_n   ,
    
    //UART端口
    input       uart_rxd    ,
    output      uart_txd    
);

//parameter
parameter CLK_FREQ = 50000000;
parameter UART_BPS = 115200  ;

//wire define
wire       uart_rx_done;
wire [7:0] uart_rx_data;

//**************************************
//**        main code
//**************************************

//串口接收模块
uart_rx #(
    .CLK_FREQ (CLK_FREQ),
    .UART_BPS (UART_BPS)
)
    u_uart_rx(
        .clk            (sys_clk        ),
        .rst_n          (sys_rst_n      ),
        .uart_rxd       (uart_rxd       ),
        .uart_rx_done   (uart_rx_done   ),
        .uart_rx_data   (uart_rx_data   )
    );
    
//串口发送模块
uart_tx #(
    .CLK_FREQ (CLK_FREQ),
    .UART_BPS (UART_BPS)
    )
    u_uart_tx(
        .clk         (sys_clk     ),
        .rst_n       (sys_rst_n   ),
        .uart_tx_en  (uart_rx_done),
        .uart_tx_data(uart_rx_data),
        .uart_txd    (uart_txd    ),
        .uart_tx_busy(            )
    );
    
endmodule

串口接收模块

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值