UART(UniversalAsynchronous Receiver and Transmitter),它是在USART 基础上裁剪掉了同步通信功能(USART削减版),只有异步通信。简单区分同步和异步就是看通信时需不需要对外提供时钟输出
,我们平时用的串口通信基本都是UART。
USART是通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter) 我们常用来打印数据到PC上位机上
RS232接口
用于九根电线的母串行通信连接器称为 DB-9(或 DB9)连接器,非常常见。这种串行接口在较旧的PC上找到,通常被称为UART(发射器 - 接收器本身)或RS-232(协议)。
TXD: Transmitter传送
RXD: Receiver接受
RTS: Request to Send 请求发送
CTS: Clear to Send 清除发送
GND: Ground 接地
RS232 与 TTL电平
RS485 接口是 RS232 的升级版,例如西门子PLC就是RS485,转串口有专门的芯片,例如MAX485等.
协议层
串口通讯的数据包由发送设备通过自身的TXD 接口传输到接收设备的RXD 接口。在串口通讯的协议层中,规定了数据包的内容,它由启始位
、主体数据
、校验位
、停止位
组成,通讯双方的数据包格式要约定一致才能正常收发数据
波特率
异步通讯中由于没有时钟信号(如前面讲解的DB9 接口中是没有时钟信号CLK的),所以两个通讯设备之间需要约定好波特率,即每个码元的长度,以便对信号进行解码,图中用虚线分开的每一格就是代表一个码元。常见的波特率为4800、9600、115200 等。
波特率计算
通讯的起始和停止信号
串口通讯的一个数据包从起始信号开始,直到停止信号结束。
数据包的起始信号由一个逻辑0 的数据位表示,而数据包的停止信号可由0.5、1、1.5 或2 个逻辑1 的数据位表示,只要双方约定一致即可。
有效数据
在数据包的起始位之后紧接着的就是要传输的主体数据内容,也称为有效数据. 有效数据的长度常被约定为5、6、7 或8 位长。
数据校验
在有效数据之后,有一个可选的数据校验位。由于数据通信相对更容易受到外部干扰导致传输数据出现偏差,可以在传输过程加上校验位来解决这个问题。校验方法有奇校验(odd)、偶校验(even)、0 校验(space)、1 校验(mark) 以及无校验(noparity)。
奇校验
:要求有效数据和校验位中“1”的个数为奇数,比如一个8 位长的有效数据为:01101001,此时总共有4 个“1”,为达到奇校验效果,校验位为“1”,最后传输的数据将是8 位的有效数据加上1 位的校验位总共9 位。
偶校验
:与奇校验要求刚好相反,要求帧数据和校验位中“1”的个数为偶数,比如数据帧:11001010,此时数据帧“1”的个数为4 个,所以偶校验位为“0”。
0 校验
:是不管有效数据中的内容是什么,校验位总为“0”
1 校验
:是校验位总为“1”
CH340G
CH340是一系列USB总线适配器,可通过USB总线提供串行、并行或IrDA接口(注:CH340G仅支持串口)。CH340G集成电路提供常见的MODEM信号,允许在计算机上添加UART,或将现有的UART设备转换为USB接口。