串口通信简介

串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方 式输出调试信息。
在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和 片上外设;STM32 标准库则是在寄存器与用户代码之间的软件层。对于通讯协议,我们也以分层的方式来理解,最基本的是把它分为物理层和协议层。物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑, 统一收发双方的数据打包、解包标准。简单来说物理层规定我们用嘴巴还是用肢体来交流, 协议层则规定我们用中文还是英文来交流。

物理层

串口通讯的物理层有很多标准及变种,我们主要讲解 RS-232 标准 ,RS-232 标准主要规定了信号的用途、通讯接口以及信号的电平标准。
image.png
在上面的通讯方式中,两个通讯设备的“DB9 接口”之间通过串口信号线建立起连接, 串口信号线中使用“RS-232 标准”传输数据信号。由于RS-232 电平标准的信号不能直接 被控制器直接识别,所以这些信号会经过一个“电平转换芯片”转换成控制器能识别的 “TTL 校准”的电平信号,才能实现通讯。

RS232标准串口主要用于工业设备直接通信 电平转换芯片一般有MAX3232,SP3232

电平标准

根据通讯使用的电平标准不同,串口通讯可分为 TTL 标准及 RS-232 标准
image.png
我们知道常见的电子电路中常使用TTL的电平标准,理想状态下,使用 5V 表示二进制逻辑 1,使用 0V 表示逻辑 0;而为了增加串口通讯的远距离传输及抗干扰能力,它使用 -15V 表示逻辑 1,+15V 表示逻辑 0。

TTL 在长度超过40cm以后出错率很大,使用RS232可以实现长距离通信