UART协议驱动设计
- 在不通信时,发送高电平。
- 发送信息时,应该首先发送起始位(1bit、低电平)。可以理解为告诉接收方,应该接收信息了。
- 发送数据位,由于是串行通信,规定从低位开始发,最后到高位(协议规定信息位可以为 4、 5、 6、 7、 8)。
- 校验位(1bit)。可以采用奇校验、偶校验、直接发 1、直接发 0、不发等 5 种情况。
- 停止位(1bit、 1.5bit、 2bit。高电平)。
- 空闲位(1bit,高电平)
1bit 的时间宽度为多少呢?
1 秒钟除以波特率就是 1bit 的时间宽度。
校验位:奇校验是要求发送的数据位和校验位中 1 的个数为奇数个;偶校验是要求发送的数据位和校验位中 1 的个数为偶数个。
发送器设计原理:发送器中加入缓冲器。即上游模块把想要发送的数据写入到发送器中的 FIFO 里,发送器的控制逻辑检测到 FIFO 中有数据时,就读出来进行发送。因为发送器发送的速率比较慢,加入 FIFO 后,上游模块不用等待上一个数据发送完成就可以直接写入后续的数据。