目录
概述
串口分为通用同步异步收发器(USART)和通用异步收发器(UART)。USART在UART的基础上增加数据同步时钟,异步通讯需要数据收发双方约定波特率,如115200,同步通讯不需要约定,靠同步时钟来同步数据。异步通讯的弊端是数据收发因双发的晶振差异,时钟误差等导致波特率有误差,有可能对通讯造成影响,尤其是高速串口通信。而同步通讯没有波特率的差异,但需要多一个同步时钟信号脚。
USART介绍
通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。
它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。
使用多缓冲器配置的DMA方式,可以实现高速数据通信。
在同步模式中需要下列引脚:
●
CK
:发送器时钟输出。此引脚输出用于同步传输的 时钟, (在Start位和Stop位上没有时钟脉冲,软件可选地,可以在最后一个数据位送出一个时钟脉冲)。数据可以在RX上同步被接收。这可以用来控制带有移位寄存器的外部设备(例如LCD驱动器)。时钟相位和极性都是软件可编程的。在智能卡模式里,CK可以为智能卡提供时钟。
在IrDA模式里需要下列引脚:
●
IrDA_RDI:
IrDA模式下的数据输入。
●
IrDA_TDO:
IrDA模式下的数据输出。
下列引脚在硬件流控模式中需要:
●
nCTS:
清除发送,若是高电平,在当前数据传输结束时阻断下一次的数据发送。
●
nRTS:
发送请求,若是低电平,表明USART准备好接收数据
图 1USART框图
多处理器通信
通过USART可以实现多处理器通信(将几个USART连在一个网络里)。例如某个USART设备可以是主设备,它的TX输出和其他USART从设备的RX输入相连接;USART从设备各自的TX输出逻辑地与在一起,并且和主设备的RX输入相连接。
在多处理器配置中,我们通常希望只有被寻址的接收者才被激活,来接收随后的数据,这样就可以减少由未被寻址的接收器的参与带来的多余的USART服务开销。
未被寻址的串口从设备可启用其静默功能置于静默模式。在静默模式里:
● 任何接收状态位都不会被设置。
● 所有接收中断被禁止。
● USART_CR1寄存器中的RWU位被置1。RWU可以被硬件自动控制或在某个条件下由软件写入。
根据USART_CR1寄存器中的WAKE位状态,USART可以用二种方法进入或退出静默模式。
● 如果WAKE位被复位:进行空闲总线检测。
● 如果WAKE位被设置:进行地址标记检测。
LIN(
局域互联网
)
模式
LIN模式是通过设置USART_CR2寄存器的LINEN位选择。在LIN模式下,下列位必须保持为0:
● USART_CR2寄存器的CLKEN位。
● USART_CR3寄存器的STOP[1:0],SCEN,HDSEL和IREN。
在LIN总线控制系统中,主机控制器执行一个主任务,主任务定时往总线上发送帧头(间隔符+同步场(0x55)+标识场ID);从机设备或主控控制器执行从任务,从任务监视主任务发送的ID,一旦ID和自身ID相同,就往总线上发送响应数据场和校验场;主控制和从机设备可同时执行多个从任务。
图 2LIN通信
LIN控制器在开始使用前应先进行握手连接,握手成功后根据LIN控制器工作角色的不同,可以分为以下几种情况:
1、 作为主控制器发送ID,主控制器响应(执行从任务),适用于发送命令给设备等。
2、 作为主控制器发送ID,等待从设备响应,适用于读取设备状态等。
3、 作为从机设备响应主机,模拟一个从机设备。
多处理器通信和
LIN
模式区别
LIN模式可以看成是在多处理器通信的基础上制定了更为详细的通信协议,包括数据包组帧格式、报文头标志等等。