资讯详情

GPIO,I2C,SPI,UART,USART,USB的区别

1.简单区别:

1)(General Purpose Input Output )通用输入/输出,通用端口,总线扩展器, 利用工业标准I2C、SMBus?或SPI?接口简化了I/O当微控制器芯片组器或芯片组不够时I/O或当系统需要远端串行通信或控制时,GPIO产品可提供额外的控制和监控功能。

2)(Serial Peripheral Interface:串行外设接口);是标准的四线同步双向串行总线,SPI接口主要用于 EEPROM,FLASH,实时时钟,AD数字信号处理器和数字信号解码器之间的转换器。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB由于这种简单易用的特点,越来越多的芯片集成了这种通信协议,以节省空间,提供便利。

3)(INTER IC BUS:意为IC之间的总线)由PHILIPS公司开发的两线串行总线用于连接微控制器及其周边设备。它是微电子通信控制领域广泛使用的总线标准。它是同步通信的一种特殊形式,具有接口线少、控制方法简单、设备包装形式小、通信速率高等优点。

4)(Universal Asynchronous Receiver Transmitter:通用异步收发器):通用异步接收/发送装置。

5):通用同步异步收发器;

6):Universal Serial BUS(通用串行总线)

7):现场总线

在这里插入图片描述

2输数据线的组成:

SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI多个总线可以实现SPI设备相互连接。提供SPI串行时钟的SPI设备为SPI主机或主设备(Master),其他设备为SPI从机或设备(Slave)。全双工通信可以从设备间实现,当有多个设备时,也可以从设备选择线增加一条。 如果用通用IO口模拟SPI总线必须有输出口(SDO),一个输入口(SDI),另一个端口取决于实现的设备类型。如果要实现主设备,则需要输入输出口。如果只实现主设备,则需要输出口。如果只实现设备,则只需要输入口。

I2C总线为双向、两线(SCL、SDA)、串行,多主控(multi-master)接口标准,总线仲裁机制,非常适合设备之间的近距离、非常频繁的数据通信(我的平衡车读取MPU使用6050模块的数据I2C总线)。在其协议系统中,目的设备的设备地址将被带到传输数据时,因此设备网络可以实现。 如果用通用IO口模拟I2C总线需要输入输出口才能实现双向传输(SDA),还需要一个输出口(SCL)。(注:I2C信息知之甚少,这里的描述可能不完整)

UART总线是异步串口,所以它通常比前两个同步串口的结构复杂得多(单片机书中介绍的不复杂),通常由波特率生成器(波特率等于传输波特率的16倍),UART接收器、UART硬件由两条线组成,一条用于发送,一条用于接收。 显然,如果使用通用IO口模拟UART总线需要输入口和输出口。 从第二点可以清楚地看出,SPI和UART全双工可以实现,但是I2C不行。

3.通信协议的区别:

SPI

SPI 允许主设备启动与从设备同步通信的协议,以完成数据交换。也就是说,SPI这是一种规定的良好通信方式。这种通信方式的优点是端口占用较少,一般4个基本通信就足够了。传输速度也很高。一般来说,主要设备必须有SPI基于控制器(但可以模拟)SPI芯片通信。

SPI 通信原理很简单,至少需要4条线,其实3条线也可以。也是所有的基础SPI它们是设备共有的SDI(数据输入),SDO(数据输出),SCK(时 钟),CS(片选)。其中CS是否选择控制芯片,即只有当芯片选择信号为预先规定的使能信号(高电位或低电位)时,芯片的操作才能有效。这就允许 多个连接在同一总线上SPI设备成为可能。

接下来,负责通信的三条线。通信是通过数据交换完成的,这里首先要知道SPI是串行通信协议,也就是说数据是一个一个传输的。这就是SCK原始时钟线存在 因,由SCK提供时钟脉冲,SDI,SDO基于此脉冲完成数据传输。通过数据输出SDO当时钟上缘或下缘发生变化时,线发生变化,在下边缘或上边缘读取。 同样的原理也用于完成数据传输。通过这种方式,8位数据的传输可以在至少8次时钟信号的变化(上下边缘为一次)中完成。

需要注意的是,SCK信号线仅由主设备控制,信号线不能由设备控制。同样,在一个基础上SPI至少有一个主控设备。

这种传输的特点:这种传输方式有一个优点。与普通串行通信不同,普通串行通信一次至少传输8位数据,SPI允许数据一个接一个地传输,甚至暂停,因为SCK时钟线由主控设备控制。当没有时钟跳变时,数据不会从设备中收集或传输。换句话说,主设备是正确的SCK控制时钟线可以控制通信。

SPI还是数据交换协议:因为SPI数据输入和输出线是独立的,因此数据输入和输出可以同时完成。

不同的SPI设备的实现方式不同,主要是由于数据变更和采集时间不同,对时钟信号的上下边缘采集有不同的定义,请参考相关设备的文件。 I2C

只需要两条总线:一条串行数据线SDA 串行时钟线SCL

连接到总线的每个设备都可以通过唯一的地址和简单的主机从关系软件设置地址。主机可以用作主机发送器或主机接收器

如果两个或两个以上的主机同时初始化数据传输,可以通过冲突检测和仲裁来防止数据损坏

串行的8 标准模式下,双向数据传输位率可达100kbit/s 快速模式下可达4000kbit/s 高速模式可达3.4Mbit/s

滤波器可以过滤总线数据线上的毛刺波,确保数据完整

连接到相同的总线IC 总线最大电容量仅为400pF 限制

UART

UART总线是异步串口,所以它通常比前两个同步串口的结构复杂得多,通常由波特率生成器(波特率等于传输波特率的16倍),UART接收器、UART硬件由两条线组成,一条用于发送,一条用于接收。

显然,如果使用通用IO口模拟UART总线需要输入口和输出口。

UART常用于控制计算机和串行设备的芯片。需要注意的是,它提供了RS-232C数据终端设备接口,使计算机可以与调制解调器或其他使用RS-232C串行设备通信接口。

UART它是通用异步收发器(异步串行通信口)的英文缩写,包括RS232、RS499、RS423、RS422和RS485接口标准和总线标准,即UART是异步串行通信口的总称。而RS232、RS499、RS423、RS422和RS485等,是对应各种异步串行通信口的接口标准和总线标准,它规定了通信口的电气特性、传输速率、连接特性和接口的机械特性等内容。实际上,物理层(底层)的概念属于通信网络,与通信协议无直接关系。通信协议是通信网络中数据链路层(上层)的概念。 COM口是PC异步串行通信口的简写(个人电脑)。由于历史原因,IBM的PC外接口配置为RS232,成为现实PC默认标准的界定。所以,现在PC机的COM口均为RS232。若配有多个异步串行通信口,则分别称为COM1、COM2…

显然可以看出,SPI和UART全双工可以实现,但是I2C不行

USART:通用同步异步收发器UART差异很明显)

UART:universal asynchronous receiver and transmitter通用异步收发器;

USART:universal synchronous asynchronous receiver and transmitter通用同步异步收发器。一般来说,单片机的名称是UART的接口一般只能用于异步串行通讯,而名称为USART同步串行通信也可用于异步串行通信。

USB

是英文Universal Serial BUS缩写(通用串行总线)是规范计算机与外部设备连接和通信的外部总线标准,应用于PC 接口技术领域。USB 即接口支持设备 即热插拔功能。USB 是在1994 年底由尔、

康柏.IBM、Microsoft 等多家公司联合提出.

USB电气特性和传输特性

CAN

当总线闲置时,任何东西CAN所有节点都可以开始发送数据。如果同时发送两个或两个以上的节点,则使用标识符进行按位仲裁,以解决访问冲突。CAN它是一种广播类型的总线,所有节点都接收总线上的数据,硬件上的过滤机制决定了信息是否提供给接点。 A。四种新闻帧类型 数据帧:该帧从发送器承载数据到接收器。CAN该规范有两种数据帧格式,其唯一的本质区别在于标识符的长度:CAN也叫标准帧CAN2.0A,支持11位长度的标识符;另一个是CAN扩展帧,又称扩展帧CAN2.0B,支持29位长度的标志符。图2显示了两种规范CAN数据帧。 远程帧:此帧由接收CAN用于远程帧中规定标识符的数据帧发送节点。 错误帧:此帧将任何总线错误通知其他单元,发送器在接收到此帧时会自动重发消息。 超载帧:超载帧由忙碌的人组成CAN为了在前后数据帧之间增加额外的延迟,节点发送。 B.CAN硬件术语 基本CAN(Basic CAN)控制器:这是一种便宜的CAN控制器,送/接收消息缓冲器和有限的控制器CAN新闻过滤机制。 完全CAN(Ful CAN)控制器:完全CAN是一个高成本、高性能的CAN控制器,具有能缓冲8个或更多消息的缓冲器用于接收和发送。例如,富士通的集成CAN微控制器能提供16个消息缓冲器用于接收和发送。此外,富士通的MB90443微控制器能灵活地将两个CAN控制器的消息缓冲器组合在一个中,以形成能缓冲32个消息的缓冲器。 标准CAN控制器:该CAN控制器能够处理仅有11位标识符的消息。 扩展CAN控制器:该控制器能够处理含有11位和29位标识符的消息。 时间触发CAN(TTCAN)控制器:该CAN控制器根据时间和事件的触发来安排CAN消息,增强了CAN网络的总体性能和行为的确定性。 C.数据方向和通信速度 数据字节的传输首先从最高位开始。一个8位的数据字节能在一次发送中进行传输,最大的CAN总线速度是1Mbps。

D.物理接口 大多数CAN微控制器需要一个外部收发器来连接物理总线。目前市场上提供以下一些收发器: 高速CAN收发器有飞利浦的82C251,TI的SN65/75LBC031,Bosch的CF150,C250,Unitrode的UC5350; 低速CAN收发器有飞利浦82C252、TJA1053,西门子TLE 6252G; 单线CAN收发器有飞利浦AU5790,英飞凌TLE 6255,Delphi DK166153。

下面附上一个文档,分析得更为专业细致:http://wenku.baidu.com/link?url=Mmt8LXPzG6IJ6ncR1jeB6wwyWq-vcwWC9zxqoxoH5IRMkNbZhlwfeJEfhrqKLSuSoL5LnFTqSjRAdxaGmKE84NdDIRyrDogmdrS48ZyE63a

串行总线的选择

http://www.elecfans.com/article/84/119/2009/2009050957716.html 微控制器(µC)是当今各种先进电子产品的核心,它需要与一个或多个外设器件通信。以前,µC的外设是以存储器映射方式与数据和地址总线连接的。对地址线译码以获得片选信号,从而在有限的地址范围内为每个外设分配唯一的地址。这种接口类型所需的最少引脚数(除电源和地之外)为:8 (数据) + 1 (R//W) + 1 (/CS) + n条地址线[n = log2(内部寄存器或存储器字节的数目)]。例如,与一个16字节外设通信时,需要的引脚数为:8 +1 + 1 + 4 = 14。这种接口的访问速度快,但较多的引脚数也同时带来了封装尺寸增大和总成本提高的问题。要降低成本和缩小封装尺寸,串行接口显然是理想的替代方案。

选择串行总线并非易事。除需要考虑数据速率、数据位传输顺序(先传最高位或最低位)和电压外,设计者还应该考虑以下几点: 通过何种方式选择某个外设(通过硬件片选输入或软件协议)。 外设如何与µC保持同步(借助一条硬件时钟线,或借助内嵌于数据流中的时钟信息)。 数据是在单根线上传输(在“高”和“低”之间转换),还是在一对差分线上传输(两根线按相反的方向同时转换其电压)。 通信线路的两端均使用匹配电阻实现阻抗匹配(通常用于差分信号传输),还是不匹配或仅在一端匹配(通常用于单端总线)。 表1以矩阵的形式展示了各种通用总线系统之间的差异。16种可能组合中只有4种通用类型为大家所熟知。

除这些特性外,具体应用还会提出更多要求,如供电方式、隔离、噪声抑制、µC (主机)与外设(从机)间的最大传输距离、以及电缆连接方式(总线型、星型、可承受线路反接等)。提出类似要求的应用包括楼宇自动化、工业控制和抄表等,并且都已制定了相应的标准。

I²C/SMBus与1-Wire总线

如果实际应用可以提供时钟线,则总线选择范围可扩展到I²C12和SMBus13器件。根据SMBus的规范,它可以看作是100kbps I²C总线规范增加了超时特性后的派生总线类型。在某个节点与总线主机失去同步的情况下,超时特性可避免总线发生闭,而I²C系统则需要经过一次上电复位过程,才能从这种故障状态恢复至正常工作状态。在1-Wire系统中,复位/在线检测周期可将通信接口复位至确定的启动条件下。

除了时钟线外,I²C/SMBus还为总线上传输的每个字节提供一个应答位。这使得有效数据速率降低了12%。通信过程开始于一个启动条件,并跟随从器件地址和一个数据方向位(读/写),最后结束于一个停止条件。对于1-Wire系统,首先需要满足网络层的要求(即选择某个特定器件,执行search ROM命令或者广播);接下来发送与特定器件相关的命令代码,该代码同时会影响数据的传输方向(读/写)。

原有I²C和SMBus总线系统的一个突出问题是其有限的7位地址空间。由于可提供超过127种不同器件类型,我们无法根据从器件地址推断器件功能。此外,许多I²C器件还允许用户随意设置1个或多个地址位,以在总线上挂接多个相同器件。这种特性进一步减少了可用的地址空间。解决地址冲突问题的标准做法是将总线系统划分成若干段,某一时刻可在软件控制下激活某个网络段。该网络段需要增加更多硬件,也使应用固件更为复杂。I²C系统不具备网络节点查找或枚举功能,因此很难处理节点数动态变化的系统。这一问题可借助SMBus Specification Version 2.013中的地址分辨率协议得以解决。但是,支持该特性的SMBus器件极为稀少。

SPI和MICROWIRE接口

SPI14和MICROWIRE15 (SPI的子集)均需要为每个从器件提供一条额外的片选线。由于具有片选信号,SPI协议只定义了针对存储器地址和状态寄存器的读/写命令。它不提供应答功能。通常,SPI器件的数据输入和数据输出采用不同的引脚。鉴于数据输出在除了读操作外的任何情况下均为三态(禁止),因此可将两个数据引脚接到一起以构成单根双向数据线。当其它总线系统无法提供所需的功能或需要较高的数据传输速率时,可选用SPI总线,它可以支持2Mbps或更高的速率。SPI和MICROWIRE的不利因素在于产生CS信号的译码逻辑,以寻址某个特定器件。但是不会产生地址冲突问题。和I²C总线一样,不提供节点查找功能。主机无法根据从器件的逻辑地址来推断器件功能,因此很难管理节点动态变化的网络。

RS-485、LVDS、CAN、USB 2.0和FireWire

我们对这些标准进行讨论,以举例说明差分传输的特点。这类总线系统中传输速率最快的两种是FireWire16和USB 2.017,它们采用点对点电气连接。使用先进的节点或集线器,可以构成树状拓扑的虚拟总线,数据包从源发送至端点(USB),或采用对等传输(FireWire),突发数据速率高达480Mbps (USB 2.0)或1600Mbps (FireWire)。尺寸有限的数据包以及接收/缓冲/重发通信机制增加了传输时间,反过来降低了有效的数据吞吐能力。USB的拓扑和协议允许最多连接126个节点,FireWire允许最多63个节点,使用无源电缆时节点间的最大传输距离为4.5m。专为包括PC外设、多媒体、工业控制和航空(仅FireWire)应用而设计,USB和FireWire器件可以带电插入系统(热插拔)。该特性允许网络节点数动态变化。

LVDS18、RS-48519和CAN20可实现挂接主机和从机的总线型结构,甚至可以连接多个主机。这些标准中低压差分信号(LVDS)是速率最快的,如果总线长度不超过10m,可工作在100Mbps速率下。可用的数据速率及吞吐可以更快或更慢,具体取决于网络尺寸。LVDS电气标准专为背板应用而设计,支持热插拔功能,但不包含任何协议。

RS-485也仅定义了电气参数。RS-485定义了负载和每条总线的最大负载数目(32),而不是以节点的形式给出。一个电气节点的负载可以小于1。12m网络距离下的典型数据速率可高达35Mbps,1200m距离下数据速率可达100kbps,这些特性足以满足数据采集和控制应用。RS-485设备的协议通常基于原来设计用于RS-232的部分协议。

与此不同,控制器局域网(CAN)为分布式实时控制定义了通信协议,安全性非常高,专门面向汽车应用和工业自动化领域。数据速率从40m距离下的1Mbps到1000m距离下的50kbps。寻址方式是基于消息的,协议本身对节点数没有任何限制。CAN节点支持热插拔,网络节点数可以动态变化。

结语

在简单、低成本总线系统中,与LIN总线和SensorPath相比,1-Wire系统的从器件可提供最广泛的功能和网络驱动器。I²C和SMBus除了需要数据线和参考地之外,还需要时钟线和VCC电源,当然可供选择的器件功能也非常多。SPI和MICROWIRE需要额外的片选线,但可以提供更高的数据速率。除支持寄生供电和网络节点查找功能外,1-Wire接口和协议还支持热插拔,这一特性通常仅在使用差分信号的高速系统以及SMBus 2.0兼容产品中才提供。iButton®产品是使用极为广泛的热插拔1-Wire器件,热插拔是这类器件的正常工作方式。事实已经证明,1-Wire器件在下列应用中极为有效:全球识别号21、电路板/配件标识与认证10、温度检测和执行装置等。另外一种非常成功的1-Wire产品是具有安全存储器和质询-响应机制的器件,它能以最低的成本实现双向认证和软件代码保护22, 23。

总线选择准则

   不同的应用在选择总线的标准方面并不同,下面是一些进行总线选择的通用参考准则:    1.评估使用不同串行总线在网络上连接各种器件的系统成本。例如,在汽车应用中,一个只需要控制功能的系统可以用像LIN这类低成本的串行总线来管理。     2.如果用在汽车中,CAN或LIN是较好的选择。由于它们具有很强的鲁棒性,因此具有较强的容故障能力和传输可靠性。    3.注意器件间的距离,有些串行总线只支持短距离通信。    4.确定在网络上将连接多少器件,以及总线将可能具有的电容量。有些串行总线对连在网络上的器件数目有限制。    5.在效率、速度和可靠性方面确定对你最重要的性能。例如,对于一个安全关键系统来讲,可靠性是极为重要的,故而CAN是较好的选择(比如汽车)。  

标签: con变送器lpcdk1203电源ic集成电路

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台