操作模式
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) 周期为单位。