高云TANG NANO 9K串口通信

ps:电脑与开发板通信,电脑采用的是usart通信协议,单片机采用的是TTL电平,所以中间需要RS232芯片来保持电平。信号电平的高低电平分别代表逻辑状态的1和0,而 TTL 电平则是以本地电源电压作为高电平,接地电压作为低电平。

一般采样数据中心时刻的电平就可以认为是此刻数据的电平。尽可能设置多的采样点(16个采样点差不多了)

 由于UART是异步传输,没有传输的同步时钟,为了保证数据传输的准确性,UART采用l6倍波特率进行采样,每一个数据都会有16个时钟采样,以保证采样到的数据不会出现误码/滑码现象,一般UART传输一帧数据是8bit,如果说数据出现Ⅰ个周期的误差,接收端也会正确的接收到数据。

 Q:接收端会对该数据位进行16次采样,将采样结果进行比较,最终得出该数据位的逻辑值什么意思

A:当一个UART的接收端在读取一个数据位时,会进行16次采样,每次采样都读取数据线上的电平值。在16次采样结束后,接收端会把这16个采样结果进行比较,以确定该数据位的实际逻辑值。

通常情况下,UART数据线上的高电平代表二进制的1,低电平代表二进制的0。在进行16次采样后,如果采样结果中有大部分是高电平,则接收端会判断这个数据位是1;反之,如果采样结果中有大部分是低电平,则接收端会判断这个数据位是0。采样的具体阀值由UART接收端的硬件或软件来设定,不同的应用场景有不同的设置方式。

总的来说,接收端对该数据位进行16次采样,将采样结果进行比较,最终得出该数据位的逻辑值,可以有效地降低时钟抖动或其他因素对数据传输的影响,保证数据传输的准确性。

Q:接收端仍然可以通过16倍采样的方式。八倍采样不行吗?32位不行吗

A:对于UART通信而言,使用8倍采样也可以实现数据传输的可靠性,但是相比于16倍采样,它的容错能力会稍微降低一些。在UART通信中使用32位采样的方式是确实可以提高数据传输的可靠性,但是这样会导致数据传输的延迟和占用带宽增加。

接收时序当中, RXD信号线进行接收数据时,需1个空闲位、1个起始位、8个数据位、忽略检验位、1个停止位。一个字符帧包括11位,起始位(1位),数据位(8位),停止位(1位),空闲位(1位)。每一位均采用16倍波特率来进行采样。

波特率周期和时钟周期之间的联系是通过时钟频率和分频系数来建立的。当波特率和时钟频率相匹配时,一个波特率周期刚好等于UART每个数据位所占用的时钟周期数量。因此,在选择波特率和时钟频率时,需要根据具体应用场景和系统要求来进行合理的设置,以达到最佳的数据传输效果。     

 传输一个 bit 的时间等于波特率的倒数,也等于一个数据位内的采样数乘时钟周期

采样率可以表示为时钟频率除以采样次数。采样率为S = 1 / T = F / 16,表示每秒钟采样的次数。假设UART时钟频率为5MHz,每个数据位内需要进行16次采样,则该数据位内的采样率为5MHz / 16 = 312.5kHz,

猜你喜欢

转载自blog.csdn.net/qq_51519091/article/details/130642625