FPGA通过UART协议发送数据
实现功能:ISSP输入需要通过串口发送出去的数据,然后通过按下 AC620 开发板上的按键来控制 FPGA 将待发送的数据发送出去,并在串口助手中查看 PC 端接收到的数据。
uart协议:
板内、板间或者下位机与上位机之间进行数据的发送与接收,需要双方共同遵循一定的通信协议来保证数据传输的正确性。 通用异步收发传输器(UART):在数据发送时将并行数据转换成串行数据来传输,在数据接收时将接收到的串行数据转换成并行数据,可以实现全双工传输和接收。
只使用一根数据线,因此使用串行数据,且要求FPGA发送/接收速率=PC端接收/发送速率(串口调试助手)。
波特率是主从端约定的通信速率,每位数据变换(长度)固定,则需保证Clk信号稳定,间隔为波特率,常用9600bps,即频率为9600Hz
UART发送一个字节时序图:
起始位+八位数据(高低电平均可)+停止位
2个2选1多路器——考虑优先级
bps_clk产生,开始计数就输出高电平,因为使能刚开始就是高电平,等计数到最大值则延迟一个周期,为了提高响应速度
uart_byte_tx
module uart_byte_tx(
Clk,
Rst_n,
data_byte,
baud_set,
send_en,
Rs232_tx,
Tx_done,
uart_state
);
input Clk;//50M
input Rst_n;
input [7:0]data_byte;//待传输8bit数