常用硬件接口简述及调试要点:UART


UART(Universal Asynchronous Receiver/Transmitter,译为:通用异步收发传输器)是最为简单的异步接口,可以按照要求配置成全双工,半双工,单TX或者单RX四种方式运行,常用的UART标准有:EIA-RS-232(也称:232、RS-232),EIA-485(也称:RS-485),EIA-422(也称:RS-422)等,它们是各种异步串行通信口的接口标准和总线标准,它们规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等内容。

UART一般由3根线组成,包括TX,RX和GND,但美国电子工业联盟(EIA)的几个标准:EIA-RS-232,EIA-485等都包含其他的有控制脚,而485采用差分方式进行数据传输,因此其脚位最少由5根组成。

由于UART标准较多,因此本文主要针对嵌入式系统常用的3线UART口来简述其数据特点,运行流程和调试要点。


 

UART的数据特点与运行流程:

UART是工作在双工模式,因此在发送数据时,并不需要另外使用一条传输线来发送同步信号,就能正确的将数据顺利发送到对方,其数据分为4个部分,分别是:起始位,数据位,奇偶校验位和停止位,通常在数据之间还有空闲位(UART在空闲时是高电平,而空闲位则是低电平)。

注:UART标准时序图
UART没有时钟线,需要靠波特率和数据结构来进行数据交换,下面就针对其4个数据组成部分和其他约定项目分别说明:

  1. 起始位:起始位为低电平,一般占一个位宽。
  2. 数据位:数据位分为5、6、7、8四种数据长度,一般常用的为7、8两种,且发射端和接受端要配置一致。
  3. 奇/偶校验位:校验位分为奇校验和偶校验,一般作为防止数据传输过程错误设计,可不用此为,但发射端和接收端要配置一致。
  4. 结束位:结束位为高电平,且有1、1.5、2位宽的配置,一般常用为1个位宽。

由于UART是单线传输,因此在进行数据识别时,需要预先约定好数据传输的方式,除开高低电平的电压约定外,对于逻辑部分的约定如下:

  • UART传输时需约定传输的波特率,波特率是用来确定位宽的依据,位宽为波特率的倒数。
  • UART传输时需约定数据位长,是否存在奇偶校验,校验的方式和停止位的长度。
  • UART传输时若有其他的控制脚位,需要发射端和接受端同时配置,防止在等待控制位反馈时导致数据传输异常。

UART的调试要点:

UART多数情况下为全双工的方式运行,因此其按照数据结构发送和接收即可,
若出现串口无法通信,可按照如下方式进行检查:

  • 检查UART的TX、RX位是否连接反向,通常是CPU和设备IC的RX和TX要交叉连接。
  • 检查UART的电平是否匹配,是否在空闲时保持高电平。
  • 检查UART的软件使能是否打开,脚位是否被其他程序占用。

若出现串口通信数据异常,可按照如下方式进行检查:

  • 检查UART的约定配置是否一致,是否存在有波特率,数据位数等配置不一样。
  • 检查UART的协议细节,是否存在发送和接收解析不一致。
  • 可以将发射端的TX和RX短路,进行环路测试,发送数据和接收是否一致,排除发射端数据异常。

若在Android平台,可用adb 的方式来调试串口也很方便,
详细请参考:Android adb 串口设备调试方法

版权所有丨如未注明,均为原创,转载请注明转自:https://whonee.net/uart-interface-brief-introduction.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注