UART串口基础及通过万用表定位UART引脚

什么是UART?

UART是通用异步收发传输器(Universal Asynchronous Receiver/Transmitter),可以把UART理解为网卡。这个电子元件负责串口数据的收发,而不定义传输规则,在UART眼里只有0和1,没有电压的概念。

UART is responsible for sending and receiving a sequence of bits. At the output of a UART these bits are usually represented by logic level voltages. These bits can become RS-232, RS-422, RS-485, or perhaps some proprietary spec.[1]

什么是RS232

RS232是传输协议,规范了传输电压,传输模式(全双工/半双工)等。和RS232类似的协议还有RS485/RS422等。232是三线制非差分信号,收发各使用一根信号线,通过这几根信号线与地线的电压差,来判断传输的数据。所以232是全双工的。但传输距离很近,一般不超过十米。

一般RS232的电压是±13V,其中逻辑1用负电压表示,逻辑0用正电压表示。

RS-232 specifies voltage levels. Notice that some of these voltage levels are negative, and they can also reach ±15V. Larger voltage swing makes RS-232 more resistant to interference (albeit only to some extent).
A microcontroller UART can not generate such voltages levels by itself. This is done with help of an additional component: RS-232 line driver. A classic example of an RS-232 line driver is MAX232. If you go through the datasheet, you’ll notice that this IC has a charge pump, which generates ±10V from +5V. [2]

什么是TTL

TTL(Transistor-Transistor Logic)电压一般是3.3V或者5V,在TTL协议中,0V代表逻辑0,正电压3.3V/5V代表逻辑1。

TTL与RS232的相互转换 MAX3232可以实现TTL和RS232的相互转换。

了解更多,查看https://solectroshop.com/en/blog/a-detailed-guide-to-serial-transmission-n18

RS485/RS422

485是二线制差分信号,也就是实际传输的数据是通过判断这两条信号线上的电压差来实现的,正因如此,485半双工的,也就是发送和接收不能同时进行,也因如此,485的通讯距离,可以达到几千米。此外,还有一种422接口,422也是差分信号,但是他是四线制的。跟485类似,因为是两组差分信号,所以他是全双工的。

一般情况下,设备不会主动使用RS485/RS422, 常见的还是用TTL和RS232, 因为RS485主要目的是用于远距离传输。

了解更多,查看https://www.zhihu.com/question/273655897/answer/373089076

波特率

baud rate等价于bits-per-second (bps)。

常见的波特率有1200, 2400, 9600, 19200, 38400, 57600, 115200。

拿波特率为9600来说,也就是通过串口的传输速率是9600bps。

串口数据帧结构

开始位 – 数据位 – 校验位 – 结束位

我们通过串口连接电脑和设备时,工具会提示选择这些配置,一个典型的例子9600 8N1,9600代表波特率,8代表数据位8比特,N代表校验位为None,1代表结束位为1比特。

就9600 8N1而言,9600bps实际上每次传输8比特的数据,需要10比特传输(1个开始位,1个结束位),所以实际上传输速率是960字节每秒。

了解更多,查看https://learn.sparkfun.com/tutorials/serial-communication/all

通过万用表定位UART PIN脚

定位GND

保持PCB板不上电

定位TX

定位RX和VCC

RX和VCC默认都是高电平,这种情况下,可以通过下述方式去定位。

笔者并非专业硬件工程师,上述信息都是从网上各类文章中摘抄汇总,或者是笔者通过阅读网上文档的个人理解,可能存在错误的理解。

[1] https://blog.attify.com/hack-iot-device/
[2] https://electronics.stackexchange.com/questions/110478/difference-between-uart-and-rs-232

Table of Contents