1.UART 的原理与标准
在异步传输中,UART会发送起始位, 5bit-8bit的数据位,奇偶校验位,停止位(1bit、1.5bit、2bit)
起始位: 由transeiver 向receiver发出,以通知将有数据发出,双方都要同步时钟。 双方的时钟的误差不能超过10%,
为低(idle 状态为高),与idle状态时的电平相反
数据位:低位先发送(LSB)
每个bit发送的时间是相等的,这样receiver 就可以在每个bit 发送期一半的时候检测数据是1还是0.
例如,如果需要2s来发送1bit数据,receiver会在1s过去后检查是1还是0,再在2s后去检查下一个bit数据。
奇偶校验位: 用1把数据位为1的个数补为奇偶个。 奇校验更可靠点(至少有一个bit会传送)
停止位:为高,与idle状态的电平一样,在下一个字符开始发送前会有一个delay,以求同步
如果stop bit 没有出现, UART会向主处理器报告Framing error。 通常导致Framing error 的原因是:sender 和receiver的时钟没有跑在一个速度上。
无论数据是否被接收正确与否, UART都会丢弃start , parity ,stop bit。
如果没有数据传输时,tx 会处于idle状态
on = circuit closed = low voltage = current flowing = logical zero = space = 0
off = circuit open = high voltage = current stopped = logical one = mark = 1
2.UART的分类
RS232
RS422
RS423
RS449
RS485
3.UART的实现
3.1 Features
3.2 HW
3.2.1 block diagram
clock generator, usually a multiple of the bit rate to allow sampling in the middle of a bit period
input and output shift registers
transmit/receive control
read/write control logic
transmit/receive buffers ( optional )
parallel data bus buffer ( optional )
FIFO buffer memory ( optional )
3.2.2 HW pins
TX