串行通讯/并行通讯和UART、SPI、I2C、USB以及TTL、CMOS、RS-23二、RS-485区别详细整理

串行通讯/并行通讯和UART、SPI、I2C、USB以及TTL、CMOS、RS-23二、RS-485区别详细整理

串行通讯/并行通讯和UART口/USB口以及TTL、CMOS、RS-23二、RS-485这些和通讯相关的名词咱们作电子的天天都在接触,可是若是不认真整理,我想不少人都不知道这些名词的具体含义和区别,由于我项目中恰好须要用到UART传输数据,因此就打算用这篇文章好好的概括一下这些磨人的“通讯名词”web

关于串行通讯/并行通讯的解释

串口通讯

串口通讯(Serial Communications)的概念很是简单,串口按位(bit)发送和接收字节。
串口:能够算是一个泛称,通常指代的是串口时序标准。UART、RS23二、RS48五、TTL都遵循着相似的通讯时序协议,所以都被通称为串口。编程

串行通讯

串行通讯(serial communication)是指计算机主机与外设之间以及主机系统与主机系统之间数据的串行传送。使用一条数据线,将数据一位一位地依次传输,每一位数据占据一个固定的时间长度。其只须要少数几条线就能够在系统间交换信息,特别适用于计算机与计算机、计算机与外设之间的远距离通讯。
串行通讯按照发送时钟源和接收时钟源是否须要保持一致,又可分为同步通讯异步通讯两种。
具体可参考连接:https://blog.csdn.net/yangtalent1206/article/details/5822509
在这里插入图片描述网络

(补充串口的定义:串行接口简称串口,也称串行通讯接口或串行通信接口(一般指COM接口),是采用串行通讯方式的扩展接口。串行接口 (Serial Interface)是指数据一位一位地顺序传送。)异步

并行通讯

并行通讯(Parallel communication)就是指数据的每一位同时在多根数据线上发送或者接收。能够字或字节为单位并行进行。并行通讯速度快,但用的通讯线多、成本高,故不宜进行远距离通讯。计算机或PLC各类内部总线就是以并行方式传送数据的。
在这里插入图片描述svg

串口通讯和串行通讯的的区别

总结:串行通讯是一种概念,是指一比特一比特的收发数据,相对于并行通讯可一次性收发N比特而言。包括普通的串口通讯,包括I2C,包括SPI等等。
串口通讯是一种通讯手段/方式,是相对于以太网方式、红外方式、蓝牙方式、usb方式(usb广义也算串行通讯)等而言,是一种比较低级的通讯手段。
再强调一遍,两者一个是一种概念,一个是一种实际的通讯手段/方式,对我们而言,几乎同样。.net

关于UART、I2C、SPI、USB等详解

参考连接:https://www.jianshu.com/p/df2ed057b4a0(很是详细)翻译

UART

UART是一种通用串行数据总线,用于异步通讯。该总线双向通讯,能够实现全双工传输和接收。在嵌入式设计中,UART用于主机与辅助设备通讯,如汽车音响与外接AP之间的通讯,与PC机通讯包括与监控调试器和其它器件,如EEPROM通讯。
能够说UART不是接口,而是实现串口收发的逻辑电路,这部分能够独立成芯片,也能够做为模块嵌入到其余芯片里,单片机、SOC、PC里都会有UART模块。
接口
在单片机中UART能够说是一种最基本的配置,不少与电脑进行通讯的设备都采用到它,按计算机最常规的说法就是串行通讯。
1.、TX - 数据发送接口
二、RX - 数据接受接口
两个设备间将TX与RX相连,RX与TX相连便可正常工做。最经常使用到的就是咱们电脑上的USB那就是个最典型的UART接口。设计

I2C

I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只须要两根线便可在链接于总线上的器件之间传送信息。
主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。若是主机要发送数据给从器件,则主机首先寻址从器件,而后主动发送数据至从器件,最后由主机终止数据传送;若是主机要接收从器件的数据,首先由主器件寻址从器件.而后主机接收从器件发送的数据,最后由主机终止接收过程。在这种状况下.主机负责产生定时时钟和终止数据传送。
接口
一、SCL - 串行时钟线
二、SDA - 串行数据线接口
SDA(串行数据线)和SCL(串行时钟线)都是双向I/O线,接口电路为开漏输出.需经过上拉电阻接电源VCC.当总线空闲时.两根线都是高电平,链接总线的外同器件都是CMOS器件,输出级也是开漏电路.在总线上消耗的电流很小,所以,总线上扩展的器件数量主要由电容负载来决定,由于每一个器件的总线接口都有必定的等效电容.而线路中电容会影响总线传输速度.当电容过大时,有可能形成传输错误.因此,其负载能力为400pF,所以能够估算出总线容许长度和所接器件数量。调试

主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。若是主机要发送数据给从器件,则主机首先寻址从器件,而后主动发送数据至从器件,最后由主机终止数据传送;若是主机要接收从器件的数据,首先由主器件寻址从器件.而后主机接收从器件发送的数据,最后由主机终止接收过程。在这种状况下.主机负责产生定时时钟和终止数据传送。xml

SPI

SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM、FLASH、实时时钟、AD转换器,还有数字信号处理器和数字信号解码器之间。
SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,低位在后,为全双工通讯,数据传输速度整体来讲比I2C总线要快,速度可达到几Mbps。
接口
一、MOSI – 主器件数据输出,从器件数据输入
二、MISO – 主器件数据输入,从器件数据输出
三、SCLK –时钟信号,由主器件产生,最大为fPCLK/2,从模式频率最大为fCPU/2
四、NSS – 从器件使能信号,由主器件控制,有的IC会标注为CS(Chip select)
在点对点的通讯中,SPI接口不须要进行寻址操做,且为全双工通讯,显得简单高效。在多个从器件的系统中,每一个从器件须要独立的使能信号,硬件上比I2C系统要稍微复杂一些。

USB

USB,是英文Universal Serial Bus(通用串行总线)的缩写,是一个外部总线标准,用于规范电脑与外部设备的链接和通信。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。USB是在1994年末由英特尔、康柏、IBM、Microsoft等多家公司联合提出的。
一条USB传输线分别由地线、电源线、D+和D-四条线构成,D+和D-是差分输入线,它使用的是3.3V的电压(与CMOS的5V电平不一样),而电源线和地线可向设备提供5V电压,最大电流为500mA(能够在编程中设置)。
USB设备能够直接和HOST通讯,或者经过Hub和Host通讯。一个USB系统中仅有一个USB 主机,设备包括USB功能设备和USB HUB,最多支持127个设备。物理链接指的是USB传输线。在USB 2.0系统中要求使用屏蔽双绞线。
USB是广泛使用的一种接口,和串口彻底是两个概念。虽然也是串行方式通讯,但因为USB的通讯时序和逻辑电平标准都和串口彻底不一样,所以和串口没有任何关系。USB是高速的通讯接口,用于PC链接各类外设,U盘、键鼠、移动硬盘、固然也包括“USB转串口”的模块。

USB总线包括:
USB1.1:
——-低速模式(low speed):1.5Mbps
——-全速模式(full speed): 12Mbps
USB2.0:向下兼容。增长了高速模式,最大速率480Mbps。
——-高速模式(high speed): 25~480Mbps
USB3.0:向下兼容。
——-super speed :理论上最高达4.8Gbps,实际中,也就是high speed 的10倍左右。

参考连接:https://blog.csdn.net/u010142953/article/details/82627591

TTL电平

一般咱们采用二进制来表示数据,为了表示二进制,须要用高低电平表示这些二进制数。并且规定,+5V等价于逻辑“1”,0V等价于逻辑“0”。这样的数据通讯及电平规定方式,被称作TTL(晶体管-晶体管逻辑电平)信号系统。这是计算机处理器控制的设备内部各部分之间通讯的标准技术。

UART特指单片机的UART端口,使用TTL电平:
标准TTL输入高电平最小2V,输出高电平最小2.4V,典型值3.4V,输入低电平最大0.8V,输出低电平最大0.4V,典型值0.2V。
TTL 电平是 TTL 电路输出的电平,其中"TTL"是英文 “Transistor-Transistor Logic” 的缩写,中文翻译为“晶体管-晶体管逻辑”,所以 TTL 电路就是“晶体管-晶体管逻辑电路”。
因为电平是一个连续变化的电压范围,为了用这种模拟量的电压来表示数字量的逻辑1和逻辑0,TTL电平规定:

–输出电路:电压大于等于(≥)2.4V为逻辑1;电压小于等于(≤)0.4V为逻辑0;
–输入电路:电压大于等于(≥)2.0V为逻辑1;电压小于等于(≤)0.8V为逻辑0;

CMOS电平

在这里插入图片描述

RS-232

RS232 是美国电子工业协会于 1962 年发布的串行通讯接口标准,其中 RS 为英文 “Recomend Standard” 的缩写,中文翻译为“推荐标准”,232为标识号。该标准对串行通讯的物理接口及逻辑电平都作了规定。其输出的电平称为 RS232 电平。

RS485采用差分方式传输,最简单的RS232通讯由三条数据线组成,即 TxD、RxD 和GND。RS232采用负逻辑电平,即-15V ~ -3V表明逻辑"1",+3V ~ +15V表明逻辑"0"。这里的电平,是TxD线(或者RxD线)相对于 GND 的电压。

RS-485

RS485是一个定义平衡数字多点系统中的驱动器和接收器的电气特性的标准,该标准由电信行业协会和电子工业联盟定义。使用该标准的数字通讯网络能在远距离条件下以及电子噪声大的环境下有效传输信号。RS-485使得廉价本地网络以及多支路通讯链路的配置成为可能,并且增长了联网功能。

逻辑"1”以两线间的电压差为+(2 ~ 6)V表示;逻辑"0"以两线间的电压差为-(2 ~ 6)V表示,使能端起做用和其余状态时为高阻态。

在实际中因为须要,有时候会要讲TTL电平转化为RS232电平,有时候也会要将RS232电平转化为TTL电平

在这里插入图片描述
使用MAX232能实如今TTL和RS232之间的相互转化,参考电路图如上。

小小总结(补充)

串口通讯不包括并行通讯,并行通讯曾经有一个通用接口叫并口,被后来的一系列串行协议打趴下了。TTL如今是是一种数字电路的电平标准, 另外一个类似的概念是CMOS电平。UART是串行通讯的一种,重点是异步,和同步相对应,意思是不须要同步的时钟,通讯两端预先约定bit的传输速率(每秒传多少bit),而不是由时钟触发的。USB是一个完整的经过串行方式传输数据的协议。初学嵌入式能够把RS232,串口,UART看成一种东西的。
补充1:
usb与串口的关系,刚开始确实比较容易搞混。通常电脑是没有uart接口的(ttl电平),那么拥有uart接口的单片机如何和电脑通讯呢?咱们能够经过电脑的usb接口和单片机通讯,只需一个usb转串口模块插到usb接口上,装上驱动,另外一边接单片机便可。有不少能够usb协议转为串口协议的芯片,如ch340,cp2102,pl2303等。
补充2:
TTL、RS23二、RS485应用点:
TTL电平通常用于芯片与芯片之间的通讯;RS232采用了正负逻辑电平,提升线路的抗干扰性最远能够达到15米左右;若是更远的距离会采样RS485,它使用两线制的差分信号传输,最远可至1200米;RS232全双工只支持点对点通信(1:1),RS485半双工或单双工支持总线形式通信(1:N)。
补充3:
摘自:https://www.zhihu.com/question/271616218/answer/365203637
USB是一种高速通讯接口,和串口无关。串口是泛指,指代全部采用串口通讯时序的接口。
TTL不是正规名称,只不过在某些状况下约定俗成的一种串口标准(电平标准,通讯时序都是串口)
RS23二、RS485都是串口标准。不一样的串口标准虽然电平标准不必定相同,但通讯时序协议都是大体相同的。
UART指的是实现UART通讯的数字逻辑电路。
补充4: UART是计算机中串行通讯端口的关键部分。在计算机中,UART相连于产生兼容RS232规范信号的电路。RS232标准定义逻辑“1”信号相对于地为-3到-15伏,而逻辑“0”相对于地为+3到+15伏。因此,当一个微控制器中的UART相连于PC时,它须要一个RS232驱动器来转换电平。 Uart这里指的是TTL电平的串口;RS232指的是RS232电平的串口。 TTL电平是5V的,而RS232是负逻辑电平,它定义+5 ~ +12V为低电平,而-12 ~ -5V为高电平。 Uart串口的RXD、TXD等通常直接与处理器芯片的引脚相连,而RS232串口的RXD、TXD等通常须要通过电平转换(一般由Max232等芯片进行电平转换)才能接处处理器芯片的引脚上,不然这么高的电压极可能会把芯片烧坏。 咱们平时所用的电脑的串口就是RS232的,当咱们在作电路工做时,应该注意下外设的串口是Uart类型的仍是RS232类型的,若是不匹配,应当找个转换线(一般这根转换线内有块相似于Max232的芯片作电平转换工做的),可不能盲目地将两串口相连。