UART时钟的作用是什么

What is the role of clock for a UART

我正忙着为 UART 编写驱动程序。 struct uart_port 有一个字段 uartclk see this link. According to a slide set I found from free-electrons, this is among the most important fields to initialize. Yet, the Xilinx AXI UART Lite, which I'm writing a driver for, doesn't initialize this member see this link to see.

我想知道这个字段的重要性。这与 UART 有什么关系?它为什么如此重要?它在串行内核中起什么作用?

谢谢

P.S。我知道有一个驱动程序存在。但是,此驱动程序假定 UART Lite 将在嵌入式环境中使用。在我写信给的应用程序中,情况并非如此。

与系统中的任何其他 IP 一样,UART 必须具有功能时钟和接口时钟。在某些 IP 中,它可能是相同的时钟,在某些 IP 中,它可能是更多的接口或功能时钟。 uartclk 字段反映了波特率发生器输入的实际频率(不要被功能时钟的频率混淆,大部分时间是恒定的)。当用户调用 termios 设置所需的波特率时,实际硬件的 UART 驱动程序会根据需要重新计算 uartclk,而底层(如果使用)会配置寄存器。这就是 8250 的工作原理。在其他情况下,它可能未被使用,例如,如果串行硬件驱动程序自行完成所有操作。