目录

串口-UART

UART是Universal Asynchronous Receiver-Transmitter通用异步收发器的缩写。

信号及连接

UART设备有两种DCE(Data Communication Equipment)和 DTE(Data Terminal Equipment)。路由器、Modem或者通讯模块一般为DCE,而打印机、计算机等终端一般为DTE。DCE和DTE、DCE和DCE、DTE和DTE之间都可以连接,但需要注意其信号定义及信号流向。

以常见的DCE和DTE连接为例,UART信号定义如下表所示1)

8线、4线、2线(不包括GND线)的连接图如下。无需硬件流控(RTS CTS),用2线连接,需要硬件流控则用4线或8线连接。

硬件流控的流程如下2)

DCE DTE 特性 信号方向
名称 描述 输入输出 名称 描述 输入输出
UART_RX 数据接收端 DI TXD 数据发送端 DO DTE 发送串行数据,DCE接收 DTE→DCE
UART_TX 数据发送端 DO RXD 数据接收端 DI DCE发送,DTE 接收串行数据 DCE→DTE
UART_CTS 清除发送 DI RTS 请求发送 DO DTE通知 DCE 请求发送,DCE切换到接收 DTE→DCE
UART_RTS 请求发送 DO CTS 清除发送 DI DCE通知 DTE 请求发送,DTE切换到接收 DCE→DTE
UART_DTR DTE就绪 DI DTR DTE就绪 DO DTE准备就绪,通知DCE DTE→DCE
UART_DSR DCE就绪 DO DSR DCE就绪 DI DCE通知DTE 准备就绪 DCE→DTE
UART_DCD 载波检测 DO DCD 载波检测 DI DCE通知DTE,数据链路已连接 DCE→DTE
UART_RING 振铃指示 DO RING 振铃指示 DI DCE通知 DTE 有远程呼叫或短信息 DCE→DTE

硬件设计注意事项

上拉电阻

UART起始位(Start bit)为高电平拉低到低电平,即空闲时需要保持高电平。

一般在Tx和Rx线上都加一个上拉电阻,以保证空闲状态的高电平,避免起始位识别错误3)

来自UART的电流倒灌

当两个通讯的UART设备,一个设备断电,另一个设备仍在工作,则工作设备Tx或Rx等线上的电流,可能倒灌进未工作设备导致异常。可以通过加二极管或电压转换芯片等来隔离4)

电平转换

协议

UART协议帧结构如下,详见DreamSourceLab:UART协议分析 > 2.协议规范

当两个设备需要通过UART协议进行通讯时,它们需要同时约定好以下内容:

不同物理层的实现

常用的物理层有:TTL/CMOS电平1.8V/3.3V/5.0、RS232(单端)、RS485(差分),电平差异如下图,具体差异见DreamSourceLab:UART协议分析 > 1.2.不同的物理层实现

测试

串口的测试有两种仪器,逻辑分析仪和示波器,软件工程师看协议推荐用逻辑分析仪,硬件工程师看信号推荐用示波器。

具体详见DreamSourceLab:UART协议分析 > 3.1. 示波器vs逻辑分析仪

逻辑分析仪测试详见DreamSourceLab:UART协议分析 > 3. 使用逻辑分析仪分析UART通讯

UART通讯中的信号错误,详见TI:UART Protocol Overview

终端工具

Tera Term

Tera Term是一个免费且开源的SSH和Telnet客户端,它被广泛用于各种操作系统。

Tera Term的主要功能:

Tera Term的介绍详见Tera Term:功能强大的SSH和Telnet客户端

Tera Term下载地址SOURCEFORGE: Tera Term

脚本示例:temperatuer_query.zip

SSCOM

SSCOM免费,功能简单,方便易用,如下图。

SSCOM下载地址大虾电子网:下载SSCOM5.13串口调试软件

SecureCRT

SecureCRT功能强大,但收费,可免费试用一段时间。

官方网址VANDYKE:SecureCRT