Edit online

操作模式

16 Aug 2024
Read time: 2 minute(s)

用户可以在 UART_MCR 寄存器中的 UART_FUNCTION (UART_MCR[7:6]) 位选择对应的操作模式。操作模式选择位可配置值及对应模式的描述如下:

  • 0:基础 UART 模式,默认值。

    关于基础模式的详细配置,可查看 设置基础模式

  • 2:RS485 模式。

    即使用 UART-TX (RS485-TX)、UART-RX (RS485-RX) 和 UART-RTS (RS485-DE) 三线制通信。RS485 模式,三线制典型应用:



  • 3:RS485-2 模式。

    即使用 UART-TX (RS485-TX/RX) 和 UART-RX (RS485-DE) 两线制通信。RS485 为半双工通信,同一时段只能发送或接收,即使用两线制实现 RS485 通信,详细描述可见 RS485 半双工控制

设置基础模式

如在UART_MCR 寄存器中的 UART_FUNCTION (UART_MCR[7:6]) 位选择了基础模式,可以在 UART_LCR 寄存器中配置 UART 控制器的基本功能。可配置的基本参数有:
  • 数据位宽 5-8 位
  • 停止位个数 1/ 1.5/ 2
  • 奇偶校验类型
在基础模式下,UART 的一次帧传输主要包括起始信号、数据、校验位和结束信号,低位先传输 LSB。
  • 起始信号 Start Bit:一个数据帧开始的标志,UART 协议规定 TX 信号出现一个低电平表示一个数据帧的开始。当 UART 没有传输数据时,保持高电平。
  • 数据信号 Data Bit:数据宽度根据不同应用可进行调整,可以配置为 5/ 6/ 7/ 8 bits 数据位宽。
  • 校验位 Parity Bit:校验位是 1 bit 纠错信号。校验位包括奇校验、偶校验,同时支持校验位的使能和禁止,可以通过 UART_LCR 寄存器设置。
  • 结束信号 Stop Bit:数据位的停止位,支持 1/ 1.5/ 2 bit 停止位,可以通过 UART_LCR 寄存器设置。数据帧的结束信号就是把 TX 拉成高电平。

RS485 半双工控制

RS485 半双工控制即 RS485-2 线模式,可在 UART_MCR 寄存器中的 UART_FUNCTION (UART_MCR[7:6]) 功能选择位进行配置。

RS485-2 线模式原理框图如下:



在 RS485-2 线模式中:
  • UART-TX 既可以发送数据也可以接收数据。
  • UART-RX 在模块内部与 UART-RTS 复用,用于控制 DE 使能发送。
  • 当进入 RS485-2 模式,RTS 复用至 UART_RX PIN 脚,TX 和 RX 共用 UART_TX PIN 脚。TX 发送使能时,RX 拉高进入空闲状态且 RX 接收通路关闭。TX 发送使能关闭后,开启 RX 接收通路。数据收发处理逻辑与常规 RS485 模式类似。

RS485 模式的两线制典型应用如下:



RS485-2 线模式相关信号的控制如下所示:
  • RX 在数据发送时输出高电平:在软件控制模式下,通过配置 MCR[1]=0,DE (rts_n) 输出高电平。在硬件控制模式下,当数据发送正在进行时,硬件自动控制 RX 输出高电平。
    注: 若正在接收数据,必须等待当前数据接收完成。
  • RX 在数据接收时输出低电平:在软件控制模式下,通过配置 MCR[1]=1,DE (rts_n) 输出低电平。在硬件控制模式下,当发送 FIFO 为空时,硬件自动控制 RX 输出低电平。
    注: 若正在发送数据,必须等待当前数据发送完成。
  • UART_485_CTL[7](RS485_CTL_MODE,RS485 控制模式)
    • RS485_CTL_MODE = 0:硬件控制模式。DE 信号 (RTS) 在数据发送时通过内部硬件逻辑进行自动控制,发送数据前自动使能 DE 为有效高电平,当发送移位寄存器为空且发送 FIFO 为空,则自动切换 DE 为无效低电平。
    • RS485_CTL_MODE = 1:软件控制模式。DE 信号 (RTS) 在数据发送时通过外部软件配置进行手动控制,配置 MCR[1]=0 则 DE 为有效高电平可发送数据,配置 MCR[1]=1 则 DE 为无效低电平可接收数据。
  • UART_485_DE[3:0](DE_AT,DE 有效时间 t1)
    • DE 信号上升沿到 TX 起始位之间的时间间隔,以串行时钟 (sclk) 周期为单位。
  • UART_485_DE[7:4](DE_DAT,DE 无效时间 t2)
    • TX 结束位到 DE 信号下降沿之间的时间间隔,以串行时钟 (sclk) 周期为单位。