1、串口(UART/COM/TTL/RS232/RS485)

目录

串口简介

UART

2.1 简介

2.2 电平标准

TTL

RS232

RS485

USB转换器

2.3 串口通讯协议(RS232/TTL)

参考资料


串口简介

请参考百度百科:串行接口_百度百科

首先,串口、UART口、COM口、USB口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485是指的电平标准(电信号)。

串口:串口是一个泛称,UART、COM、TTL、RS232、RS485都遵循类似的通信时序协议,因此都被通称为串口。

COM口:特指台式计算机或一些电子设备上的D-SUB外形(一种连接器结构,VGA接口的连接器也是D-SUB)的串行通信口,应用了串口通信时序和RS232的逻辑电平。也就是大家在自己电脑上的设备管理器上的COM3等接口

UART接口:通用异步收发器(Universal Asynchronous Receiver/Transmitter),UART是串口收发的逻辑电路,这部分可以独立成芯片,也可以作为模块嵌入到其他芯片里,单片机、SOC、PC里都会有UART模块。也就是大家在嵌入式开发中常常听到的串口(UART)

同步串行接口(英文:Synchronous Serial Interface,SSI)是一种常用的工业用通信接口。

USB口:通用串行总线,和串口完全是两个概念。虽然也是串行方式通信,但由于USB的通信时序和信号电平都和串口完全不同,因此和串口没有任何关系。USB是高速的通信接口,用于PC连接各种外设,U盘、键鼠、移动硬盘、当然也包括“USB转串口”的模块。(USB转串口模块,就是USB接口的UART模块、USB转TTL模块等)

由于在嵌入式系统中串口通常指UART接口,所以下面介绍时将两个概念进行了等同。

UART

2.1 简介

请参考百度百科:UART_百度百科

异步收发传输器(Universal Asynchronous Receiver/Transmitter),通常称作UART。UART是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。

具体实物表现为独立的模块化芯片,或作为集成于微处理器中的周边设备。一般是RS-232C规格的,与类似Maxim的MAX232之类的标准信号幅度变换芯片进行搭配,作为连接外部设备的接口。

通用异步串行口,速率不快,可全双工,结构上一般由波特率产生器、UART 发送器、UART 接收器组成,硬件上两线,一收一发;

2.2 电平标准

  • TTL

双极性晶体管,流控型器件

输出高电平>2.4V,输出低电平<0.4V。在室温下,一般输出高电平是3.5V,输出低电平是0.2V。最小输入高电平和低电平:输入高电平>=2.0V,输入低电平<=0.8V,噪声容限是0.4V。

TTL电路的速度快,传输延迟时间短(5-10ns),但是功耗大。CMOS电路的速度慢,传输延迟时间长(25-50ns),但功耗低。COMS电路本身的功耗与输入信号的脉冲频率有关,频率越高,芯片集越热,这是正常现象。  

CMOS电路可以直接驱动TTL电路,但是TTL不能直接驱动CMOS电路。因此市面上很多“USB转TTL”模块,实际上也可以称为“USB转TTL电平的串口”模块。TTL与单片机、SOC的IO电平兼容。不过实际也不一定是TTL电平,因为现在大部分数字逻辑都是CMOS工艺做的,只是沿用了TTL的说法

我们进行串口通信的时候从单片机直接出来的基本是都是TTL 电平。

TTL信号抗干扰能力差,数据在传输过程中容易出错。

硬件连接:

1、串口(UART/COM/TTL/RS232/RS485)_第1张图片

 TTL电平:全双工(逻辑1: 2.4V–5V 逻辑0: 0V–0.5V)

1、串口(UART/COM/TTL/RS232/RS485)_第2张图片

  • RS232

        是电子工业协会(Electronic Industries Association,EIA) 制定的异步传输标准接口,同时对应着电平标准和通信协议(时序),其电平标准:+3V~+15V对应0,-3V~-15V对应1

1、串口(UART/COM/TTL/RS232/RS485)_第3张图片

RS-232电平:全双工(逻辑1:-15V–5V 逻辑0:+3V–+15V),与TTL使用的协议是相同的。

在这里插入图片描述

        在最初的应用中,RS-232 串口标准常用于计算机、路由与调制调解器(MODEN,俗称 “猫”)之间的通讯,在这种通讯系统中,设备被分为数据终端设备 DTE(计算机、路由)和数据通讯设备 DCE(调制调解器)。我们以这种通讯模型讲解它们的信号线连接方式及各个信号线的作用。

在旧式的台式计算机中一般会有 RS-232 标准的 COM (也称 DB9 接口),见图 26-3

1、串口(UART/COM/TTL/RS232/RS485)_第4张图片

 其中接线口以针式引出信号线的称为公头,以孔式引出信号线的称为母头。在计算机中一般引出公头接口,而在调制调解器设备中引出的一般为母头,使用上图中的串口线即可把它与计算机连接起来。通讯时,串口线中传输的信号使用 RS-232 标准调制。在各种应用场合下, DB9 接口中的公头及母头的各个引脚的标准信号线接法见26-4

1、串口(UART/COM/TTL/RS232/RS485)_第5张图片

1、串口(UART/COM/TTL/RS232/RS485)_第6张图片

图 26-5 是计算机端的 DB9 公头标准接法,由于两个通讯设备之间的收发信号(RXD 与 TXD)应交叉相连,所以调制调解器端的 DB9 母头的收发信号接法一般与公头的相反,两个设备之间连接时,只要使用“直通型”的串口线连接起来即可,见图 26-6

1、串口(UART/COM/TTL/RS232/RS485)_第7张图片

        串口线中的 RTSCTSDSRDTR DCD 信号,使用逻辑 1 表示信号有效,逻辑0表示信号无效。例如,当计算机端控制 DTR 信号线表示为逻辑 1 时,它是为了告知远端的调制调解器,本机已准备好接收数据, 0 则表示还没准备就绪。

         在目前的其它工业控制使用的串口通讯中,一般只使用 RXDTXD 以及 GND 三条信号线,直接传输数据信号。而 RTSCTSDSRDTR DCD 信号都被裁剪掉了,如果您在前面被这些信号弄得晕头转向,那就直接忽略它们吧。

  • RS485

RS485是一种串口接口标准,为了长距离传输采用差分方式传输,传输的是差分信号,抗干扰能力比RS232强很多。485采用两线制,两根数据线是缠绕在一起的

RS-485:半双工、(逻辑0:+2V–+6V 逻辑1: -6V—2V)这里的电平指AB两线间的电压差。

1、串口(UART/COM/TTL/RS232/RS485)_第8张图片

硬件连接 

1、串口(UART/COM/TTL/RS232/RS485)_第9张图片
接线方式为总线式拓扑结构,同一总线上可以同时存在多个节点。采用差分信号(使用两根线上的电压差比较)进行数据传输,两根线间的电压差为+2v到+6v表示逻辑“1”,两根线间的电压差为-2v到-6v表示逻辑“0”。需要电平转换芯片做电平转换,把TTL信号转换为差分信号。软件编程基于串口,但是不能同时发送和接收。

  • 通信速度快,数据最高传输速率为10Mbps
  • 抗干扰能力强
  • 通信距离远
  • 可实现多节点组网
  • 接口电平电压低,不易损坏接口电路芯片

USB转换器

由于电脑自带转换器,已经将TTL电平转换成USB接口输出,所以当需要获取电脑或者进行与电脑串口通信时,需要将USB接口转换成其他相应的接口形式:

  • USB转TTL

1、串口(UART/COM/TTL/RS232/RS485)_第10张图片

稳定主控芯片主要有:CP2102芯片、PL2303芯片

可以作为32的程序下载器——ISP下载方式

  • USB转RS232

1、串口(UART/COM/TTL/RS232/RS485)_第11张图片

  •  USB转RS485 

1、串口(UART/COM/TTL/RS232/RS485)_第12张图片

 由上图可以看出起作用的也只有A和B两条线。

  • RS232、RS485互转

1、串口(UART/COM/TTL/RS232/RS485)_第13张图片

2.3 串口通讯协议(RS232/TTL)

串口通讯协议由很多种,这里只针对最传统的串口协议进行介绍(RS232),有关于其他的串口协议如Modbus(多用于485电平标准)、I2C、SPI等通信协议会在另外的博客进行shuo'miong

  • 物理层连接(RS232)

1、串口(UART/COM/TTL/RS232/RS485)_第14张图片

没有时钟线只有两条数据线,分别是RX(接收)TX(发送),位宽为1Bit,一位一位的接收。

  • 协议层(通讯协议)

1、串口(UART/COM/TTL/RS232/RS485)_第15张图片

  • 串口数据的发送与接收是基于帧结构的,即一帧一帧的发送与接收数据。每一帧除了中间包含 8bit 有效数据外,还在每一帧的开头都必须有一个起始位,且固定为 0;在每一帧的结束时也必须有一个停止位,且固定为 1,即最基本的帧结构(不包括校验等)有10bit。在不发送或者不接收数据的情况下,rx 和 tx 处于空闲状态,此时 rx 和 tx 线都保持高电平,如果有数据帧传输时,首先会有一个起始位,然后是 8bit 的数据位,接着有 1bit的停止位,然后 rx tx 继续进入空闲状态,然后等待下一次的数据传输。不包括校验位时为一个最基本的 RS232 帧结构。
  • 波特率:在信息传输通道中,携带数据信息的信号单元叫码元(因为串口是 1bit 进行传输的,所以其码元就是代表一个二进制数),每秒钟通过信号传输的码元数称为码元的传输速率,简称波特率,常用符号“Baud”表示,其单位为“波特每秒(Bps)”。串口常见的波特率有 48009600115200 等,我们选用 9600 的波特率进行串口章节的讲解。
  • 特率:每秒钟通信信道传输的信息量称为位传输速率,简称比特率,其单位为 “每秒比特数(bps)”。比特率可由波特率计算得出,公式为:比特率=波特率 * 单个调制状态对应的二进制位数。如果使用的是 9600 的波特率,其串口的比特率为:9600Bps * 1bit= 9600bps。
  • 由计算得串口发送或者接收 1bit 数据的时间为一个波特,即 1/9600 秒,如果用50MHz(周期为 20ns)的系统时钟来计数,需要计数的个数为 cnt = (1s * 10^9)ns / 9600bit)ns / 20ns ≈ 5208 个系统时钟周期,即每个 bit 数据之间的间隔要在 50MHz 的时钟频率下计数 5208 次。
  • 上位机通过串口发 8bit 数据时,会自动在发 8 位有效数据前发一个波特时间的起始位,也会自动在发完 8 位有效数据后发一个停止位。同理,串口助手接收上位机发送的数据前,必须检测到一个波特时间的起始位才能开始接收数据,接收完 8bit 的数据后,再接收一个波特时间的停止位。
  • 数据校验位

1、串口(UART/COM/TTL/RS232/RS485)_第16张图片

 

参考资料

串口通信协议简介—学习笔记_越吃越胖的黄的博客-CSDN博客_串口协议

嵌入式中的通讯协议——UART、I2C、SPI、DMA_Healer19的博客-CSDN博客_dma协议

【4.0】通信协议,I2C,SPI,CAN,USB,DMA_夜色稠的博客-CSDN博客

【通信协议】UART、RS232、RS485、I2C、SPI、CAN_XXX_UUU_XXX的博客-CSDN博客_uart通信距离

串口通信协议简介_C晨海的博客-CSDN博客_串口通讯协议

UART_百度百科

串口通信协议_百度百科

串口、COM口、UART口,TTL、RS-232、RS-485这么多接口,怎么区分-简易百科

你可能感兴趣的:(通讯方式,协议与接口标准,单片机,嵌入式硬件,fpga开发,通讯接口)