UART( Universal Asynchronous Receiver/Transmitter)指通用异步收发器。UART电平有TTL电平和RS232电平。TTL电平一般以3.3V居多。RS232是负电平逻辑,+5V—+12V为低电平,而-12V—-5V为高电平。然而FPGA引脚电平一般为TTL电平或者COMS电平,UART外接电平为RS232电平,这就需要将TTL转换为RS232电平的电平转换芯片,如MAX3232,MAX232等。有的电路还用UART转USB芯片,如CP2102、CH340等。
UART通讯协议分析如下:
UART通讯协议一般包括起始位、数据位、校验位和停止位。如下图所示:
一帧数据从一个低位起始位开始。数据位可以是7位也可以是8位。有一个可用的数据位,一个或者几个高位停止位。
如下分析uart_tx.v代码:
module uart_tx
#(
parameter CLK_FRE = 50,
parameter BAUD_RATE = 115200
)
(
input clk,
input rst_n,
input[7:0] tx_data,
input tx_data_valid,
output reg
tx_data_ready,
output tx_pin
);
模块uart_tx说明如下:
CLK_FRE 代表系统设置时钟。
BAUD_RATE表示UART通讯波特率。
clk表示输入时钟引脚。
rst_n表示复位
FPGA之UART(一)
最新推荐文章于 2024-07-22 15:25:14 发布