目录
本文主要讲解串口协议和RS-232标准,以及RS232电平与TTL电平的区别;介绍"USB/TTL转232"模块(以CH340芯片模块为例)的工作原理。
一、串口协议
1.1 串口通信协议简介
串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式,因为它简单便捷,大部分电子设备都支持该通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。
在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;STM32标准库则是在寄存器与用户代码之间的软件层。对于通讯协议,我们也以分层的方式来理解,最基本的是把它分为物理层和协议层。简单来说物理层规定我们用嘴巴还是用肢体来交流,协议层则规定我们用中文还是英文来交流。
物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输,eg:RS232、TTL高低电平。
协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准,eg:串口数据包:起始位,数据位(8bit)、校验位、停止位。
1.1-1 物理层
串口通讯的物理层有很多标准及变种,我们主要讲解RS-232标准,RS-232标准主要规定了信号的用途、通讯接口以及信号的电平标准。
使用RS-232标准的串口设备间常见的通讯结构见图
串口通讯结构图
在上面的通讯方式中,两个通讯设备的"DB9接口"之间通过串口信号线建立起连接,串口信号线中使用"RS-232标准"传输数据信号。由于RS-232电平标准的信号不能直接被控制器直接识别,所以这些信号会经过一个"电平转换芯片"转换成控制器能识别的"TTL校准"的电平信号,才能实现通讯。
①电平标准
根据通讯使用的电平标准不同,串口通讯可分为TTL标准及RS-232标准
通讯标准 | 电平标准(发送端) |
---|---|
5V TTL | 逻辑1:2.4V-5V 逻辑0:0~0.5V |
RS-232 | 逻辑1:2.4V-5V 逻辑0:0~0.5V |
我们知道常见的电子电路中常使用TTL的电平标准,理想状态下,使用5V表示二进制逻辑1,使用0V表示逻辑0;而为了增加串口通讯的远距离传输及抗干扰能力,它使用-15V表示逻辑1,+15V表示逻辑0。使用RS232与TTL电平校准表示同一个信号时的对比见图
②RS-232信号线
在最初的应用中,RS-232串口标准常用于计算机、路由与调制调解器(MODEN,俗称"猫")之间的通讯 ,在这种通讯系统中,设备被分为数据终端设备DTE(计算机、路由)和数据通讯设备DCE(调制调解器)。我们以这种通讯模型讲解它们的信号线连接方式及各个信号线的作用。
在旧式的台式计算机中一般会有RS-232标准的COM口(也称DB9接口),见图
其中接线口以针式引出信号线的称为公头,以孔式引出信号线的称为母头。在计算机中一般引出公头接口,而在调制调解器设备中引出的一般为母头,使用上图中的串口线即可把它与计算机连接起来。通讯时,串口线中传输的信号就是使用前面讲解的RS-232标准调制的。
在这种应用场合下,DB9接口中的公头及母头的各个引脚的标准信号线接法见图
DB9信号线说明(公头,为方便理解,可把DTE理解为计算机,DCE理解为调制调解器)
序号 | 名称 | 符号 | 数据方向 | 说明 |
---|---|---|---|---|
1 | 载波检测 | DCD | DTE➡DCE | Data Carrier Detect,数据载波检测,用于DTE告知对方,本机是否收到对方的载波信号 |
2 | 接收数据 | RXD | DTE⬅DCE | Receive Data,数据接收信号,即输入。 | </