Communication Protocol
每个字符包括起始位(1位,低电平,下降沿捕获)、数据位(5~8位, LSB first)、校验位(奇偶校验,可无)、停止位(1位,1.5位,2位), 其中为了保证数据传输的准确性和可靠性,字符之间可以插入空闲位(高电平,GAURD register)
UART 是异步传输(asynchronous),在数据传输的过程中没有时钟用来同步, 接受者不知道何时一帧数据将会被发送,接受者通过下降沿来判定一帧数据的起始
CLK
对于UART来说,有两个clock, BUS clock和Source clk, 前者用于数据的访问,后者用于产生baudrate. 一般UART 所处的是APB BUS,而Source clk 所处的domain 需要看designer 的设计,一般有INFRA domain 和 TOP domain.
baudrate = CLK / 采样baud_pulses数 / divisor
依据HIGHSPEED 的不同, baud_pulse(采样脉冲) 的数量不同,显然采样数越多得到的baudrate 精度也就越高
HIGHSPEED 0: base on 16baud_pulses
1 : base on 8baud_pulses
2 : base on 4*baud_pulses
3 : base on Sample_count * baud_pulses