1 概述
Uart:Universal Asynchronous Receiver Transmitter,通用异步收发器,即通常我们所说的串口。
如上图,是Uart硬件接口示意图。要实现基于FPGA的Uart通信,我们只需关注2个引脚:RXD(引脚2),TXD(引脚3)。
RXD与其他串口线TXD相连,TXD与RXD相连,这样就实现了串口间通信。由于2根线可以同时收发数据,所以通信是全双工的;但是没有时钟线,所以通信是异步的。
波特率:串口通信中,每秒能够发送的bit数。波特率115200,即115200bit/s。
奇偶校验:
奇校验:数据位加上校验位后,使得1的个数为奇数 → 奇校验;
偶校验:数据位加上校验位后,使得1的个数为偶数 → 偶校验;
例如 : 8位数据1010_1010, 其数据位中1的个数为偶数。若为奇校验,则奇偶校验位应发送1,使得1的个数为奇数;若为偶校验,则奇偶校验位应发送0,使得1的个数为偶数。
2 通信协议:
各位释义:
起始位:发出一个逻辑“0”信号(低电平),表示传输字符的开始。
数据位:可以是5~8位逻辑“0”或“1”。如ASCII码(7位),扩展BCD码(8位)。小端传输。
校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验)。
停止位:发出一个逻辑“1”信号(高电平),表示字符数据的结束。
空闲位:处于逻辑“1”状态,表示当前线路空闲。
下图是Modelsim仿真结果:
欢迎关注我的微信公众号:FPGA干货架