UART通信逻辑协议设计(1)

数据传输的基本方式

  并行通信:利用多条数据线将各位数据同时传送。传输速度快,适用于短距离通信,且要求通讯速率较高的应用场合。串行通信:即用一条数据线数据一位位地顺序传送。通信线路简单,成本低。适用于远距离和传输速度慢的应用场合。常见的串行通信有UART,USB,I2C,CAN,SPI,RS485,RS232,RS422A等。

UART通信协议

1) UART(Universal Asynchronous Receive/Transmitter) 通用异步串行通信协议。可实现全双工传输和接收,经常被用于主机与外设之间的通信。同步串行通信是以数据块为单位进行传送,而异步串行通信则是以字符为单位传送。

2) UART通信传输格式
其传输方式都是以一个字符为单位发送,其中传输顺序为起始位、数据位、奇偶校验位、停止位、空闲位。其中起始位和停止位固定发送逻辑低电平’0’和’1’。数据位为5到8位串行数据,多以ASCII的格式传输。奇偶校验位即整个字符中逻辑值’1’的个数是奇数还是偶数位。若为偶数则此位为’0’若为奇数则此位为’1’。而在无数据传输是发送的是高电平’1’。

3) UART传输控制器的基本结构
输入缓冲寄存器(tbr),输入移位寄存器(tsr),输出缓存寄存器(rbr),输出移位寄存器(rsr),控制寄存器(tcr),状态寄存器(str)。

UART协议设计思路

1) 发送端:使用高于波特率的抽样脉冲检测发送数据的使能端,之后在将数据存入缓冲器,再以波特率相同的脉冲将数据逐位发送,并将奇偶校验位和停止为发送。

2) 接收端:使用高于波特率的抽样脉冲检测数据输入端的下降沿判定数据开始传送,同时启动波特率脉冲,在脉冲的节拍下将数据逐位传入缓冲器,再最后通过计数将数据发送值输出端口。

3) 波特率发生器:首先将系统时钟分频至波特率的16倍,在其计数值为16倍波特率时将其置1,其他时刻全部为0,为得到波特率相同的脉冲时,用同样的方法对得到的脉冲继续16分频得到波特率发生脉冲。

UART传输控制器设计框架

UART传输控制器设计框架

文章转载自:shanyuan007的专栏