精华内容
下载资源
问答
  • 为了成功上岸之通信(总线)接口总结各种通信接口的简单对比表同步方式与异步方式的主要区别UARTUART的简介UART接口的引脚UART的传输格式UART数据传输格式SPISPI的简介SPI接口的引脚SPI的工作原理SPI的四种工作方式...

    各种通信接口的简单对比表

    在这里插入图片描述
    在这里插入图片描述

    同步方式与异步方式的主要区别

    1. 是否传输时钟信号。
    2. 只要是通讯前双方需要设定相同波特率的,都是异步传输方式。

    异步传输(Asynchronous Transmission): 每次异步传输的信息都以一个起始位开头,它通知接收方数据已经到达了,这就给了接收方响应、接收和缓存数据比特的时间;在传输结束时,一个停止位表示该次传输信息的终止。每8个比特要多传送两个比特,总的传输负载就增加25%。因此,异步传输常用于低速设备。

    同步传输(Synchronous Transmission):同步传输不是独立地发送每个字符,不是每个字符都有自己的开始位和停止位,而是把它们组合起来一起发送。我们将这些组合称为数据帧,或简称为帧。

    UART

    UART的简介

    UART(Universal Asynchronous Receiver/Transmitter):通用异步收发传输器。UART是一种低速的,全双工的,异步的通信总线。UART的数据传输速率有9600bps,115200bps等等。

    UART接口的引脚

    VCC:供电端,若两设备独立供电,则不需要连接
    TX:发送数据端,要接对面设备的RX
    RX:接收数据端,要接对面设备的TX
    GND:保证两设备共地(必须要接)

    UART的传输格式

    空闲位:当总线处于空闲状态时信号线的状态为高电平
    起始位:发送一个低电平信号,表示开始传输数据
    数据位:可以是5~8位的数据,一般都是8位。先发送最低位,最后发送最高位。(I2C和SPI先发送最高位,最后发送最低位)
    奇偶校验位:数据位传送完成后,要进行奇偶校验。分为无校验,奇校验,偶校验
     - 无校验(no parity)
     - 奇校验(odd parity):如果数据位中’1’的数目是偶数,则校验位为’1’,如果’1’的数目是奇数,校验位为’0’
     - 偶校验(even parity):如果数据为中’1’的数目是偶数,则校验位为’0’,如果为奇数,校验位为’1’。
    停止位:数据的结束标志。可以是1位、1.5位、2位的高电平。

    UART数据传输格式

    在这里插入图片描述

    SPI

    SPI的简介

    SPI(Serial Peripheral Interface):串行外围设备接口。SPI是一种高速的,全双工的,同步的通信总线。SPI没有定义速度限制,一般的实现通常能达到甚至超过10 Mbps,已知的有的器件SPI已达到50Mbps。

    SPI接口的引脚

    MOSI(Master Out Slave In):主设备数据输出,从设备数据输入
    MISO(Master In Slave Out):主设备数据输入,从设备数据输出
    SCLK(Serial Clock):时钟信号,由主设备产生,主从设备共用
    CS/SS(Slave Select):从设备使能信号,由主设备控制,低电平有效

    SPI优缺点

    优点:

    1. 支持全双工操作;
    2. 操作简单;
    3. 数据传输速率较高。

    缺点:

    1. 需要占用主机较多的口线(每个从机都需要一根片选线);
    2. 只支持单个主机。
    3. 没有指定的流控制,没有应答机制确认是否接收到数据。

    SPI的工作原理

    SPI通过移位寄存器实现数据的交换
    每经历一个时钟脉冲,主设备和从设备同时发送或接收一位数据(如上升沿发送数据,下降沿接收数据)。
    发送数据时,将移位寄存器中的数据左移一位,最高位发送出去;接收数据时,将数据补充到移位寄存器的最后一位
    当完成指定位数的数据发送或接收后,移位寄存器将数据存放到缓冲器中等待读取

    SPI的四种工作方式

    通过设置控制寄存器SPICR1中的CPOL和CPHA位,将SPI可以分成四种传输模式。

    CPOL,即Clock Polarity,决定时钟空闲时的电平为高或低。对于SPI数据传输格式没有显著影响。

    1 = 时钟低电平时有效,空闲时为高
    0 = 时钟高电平时有效,空闲时为低

    CPHA,即Clock Phase,定义SPI数据传输的两种基本模式。

    1 = 数据采样发生在时钟(SCK)偶数(2,4,6,…,16)边沿(包括上下边沿)
    0 = 数据采样发生在时钟(SCK)奇数(1,3,5,…,15)边沿(包括上下边沿)

    四种模式如下图所示:

    先看第一列两张图(CPHA = 0),采样发生在第一个时钟跳变沿,即数据采样发生在SCK奇数边沿;再看第二列(CPHA =1),采样发生在第二个时钟跳变沿,即数据采样发生在SCK偶数边沿。

    第一行两张图,第二行两张图(CPOL = 1),SCK空闲状态为高电平。
    在这里插入图片描述
    主从设备进行SPI通讯时,要确保它们的传输模式设置相同。

    其中mode0和mode3最为常见,SPI接口的flash中均会有标注。

    SPI读写操作

    器件的读操作时序如图8-29所示。当-CS信号有效时,在SCK信号的同步下,8位的读指令送入器件,接着送入16位地址(由于25XX320只使用地址信号A0~A11,地址的高4位无效)。在读指令和地址发出后,SCK继续发出时钟信号,此时存储在该地址的数据由SCK控制从SO引脚移出。在每个数据移出后,内部的地址指针自动加1,如继续对器件发送SCK信号,可读出下一个数据。当地址指针计到0FFFH之后,将回到0000H。读操作的结束由-CS信号变高实现。

    25系列串行存储器的读时序

    25XX系列的串行EEPROM的写操作通过写允许及禁止指令控制,写操作必须在器件处于写允许状态时进行。
      写允许及禁止指令均为8位的指令,指令的操作过程为:将-CS信号置为低电平,在SCK信号的作用下,通过SI引脚输入上述指令,在8位的指令送入器件之后,将-CS信号置为高电平,使器件锁存于写允许或写禁止状态。如在输入写允许指令后未将-CS信号置为高电平,则写允许状态未锁存,此时如直接进行写操作,数据将不能写入存储器。在上电、写禁止指令、写状态寄存器指令、写数据指令执行之后,器件的写允许状态将被复位,即处于写禁止状态。
      写操作通常在写允许指令之后进行,其时序如图8-30所示。在写允许状态锁存后,将-CS变高;再将-CS变低,在SCK的同步下输入写操作指令并送入16位地址,紧接着发送需写入的数据,写入的数据一次最多可达32个,但必须保证在同一页内。一页数据的地址从XXXXXXXX XXX0 0000 开始,到XXXX XXXX XXX1 1111结束,当内部的地址指针计数器达到XXXX XXXX XXX11111后,继续发送时钟信号将使地址计数器回复到该页的第一个地址,即XXXX XXXX XXX0 0000H。
    25系列串行存储器的写时序
    25系列串行存储器的写时序

    为了使数据有效写入,-CS信号只能在写入数据的最后一个字节的最低位写入后变高。如-CS信号在其他时间变高,将无法保证数据的完整写入。在写操作的过程中,能通过读状态指令将状态寄存器的内容读回,当写操作完成后,写允许锁存状态将被复位。

    I2C

    I2C的简介

    I2C(Inter Integrated Circuit):内部集成电路。I2C是一种低速的,半双工的,同步的通信总线。IIC 数据传输速率有标准模式(100 kbps)、快速模式(400 kbps)和高速模式(3.4 Mbps)

    I2C接口的引脚

    • SDA:数据线
    • SCL:时钟线

    I2C的电路

    接口电路为开漏输出.需通过上拉电阻接电源VCC.当总线空闲时.两根线都是高电平,连接总线的外同器件都是CMOS器件,输出级也是开漏电路.在总线上消耗的电流很小,因此,总线上扩展的器件数量主要由电容负载来决定,因为每个器件的总线接口都有一定的等效电容.而线路中电容会影响总线传输速度.当电容过大时,有可能造成传输错误.所以,其负载能力为400pF,因此可以估算出总线允许长度和所接器件数量。

    其实I2C总线上的每一个器件内部的SDA、SCL引脚电路结构都是相同的,引脚的输出驱动与输入缓冲连在一起,输出为漏极开路的场效应管、输入缓冲为一只高输入阻抗的同相器。这种电路具有两个特点:

    1. 由于 SDA、SCL 为漏极开路结构,借助于外部的上拉电阻实现了信号的“线与”逻辑;
    2. 引脚在输出信号的同时还将引脚上的电平进行检测,检测是否与刚才输出一致。为 “时钟同步”和“总线仲裁”提供硬件基础。
      在这里插入图片描述

    I2C总线协议

    I2C协议规定,总线上数据的传输必须以一个起始信号作为开始条件,以一个结束信号作为传输的停止条件。起始和结束信号总是由主设备产生。总线在空闲状态时,SCL和SDA都保持着高电平,当SCL为高电平而SDA由高到低的跳变,表示产生一个起始条件;当SCL为高而SDA由低到高的跳变,表示产生一个停止条件。在起始条件产生后,总线处于忙状态,由本次数据传输的主从设备独占,其他I2C器件无法访问总线;而在停止条件产生后,本次数据传输的主从设备将释放总线,总线再次处于空闲状态。如图所示:
    在这里插入图片描述
    在了解起始条件和停止条件后,我们再来看看在这个过程中数据的传输是如何进行的。前面我们已经提到过,数据传输以字节为单位。主设备在SCL线上产生每个时钟脉冲的过程中将在SDA线上传输一个数据位,当一个字节按数据位从高位到低位的顺序传输完后,紧接着从设备将拉低SDA线,回传给主设备一个应答位,此时才认为一个字节真正的被传输完成。当然,并不是所有的字节传输都必须有一个应答位,比如:当从设备不能再接收主设备发送的数据时,从设备将回传一个否定应答位。数据传输的过程如图所示:
    在这里插入图片描述
    在前面我们还提到过,I2C总线上的每一个设备都对应一个唯一的地址,主从设备之间的数据传输是建立在地址的基础上,也就是说,主设备在传输有效数据之前要先指定从设备的地址,地址指定的过程和上面数据传输的过程一样,只不过大多数从设备的地址是7位的,然后协议规定再给地址添加一个最低位用来表示接下来数据传输的方向,0表示主设备向从设备写数据,1表示主设备向从设备读数据。如图所示:
    在这里插入图片描述

    I2C读写总线操作

    对I2C总线的操作实际就是主从设备之间的读写操作。大致可分为以下三种操作情况:
    第一,主设备往从设备中写数据。数据传输格式如下:
    在这里插入图片描述
    第二,主设备从从设备中读数据。数据传输格式如下:
    在这里插入图片描述
    第三,主设备往从设备中写数据,然后重启起始条件,紧接着从从设备中读取数据;或者是主设备从从设备中读数据,然后重启起始条件,紧接着主设备往从设备中写数据。数据传输格式如下:
    在这里插入图片描述
    第三种操作在单个主设备系统中,重复的开启起始条件机制要比用STOP终止传输后又再次开启总线更有效率

    I2C面试题

    介绍一下你了解的I2C

    I2C总线是飞利浦(PHLIPS)公司推出的一种串行总线,用于连接微控制器及其外围设备, I2C串行总线有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。 它仅通过两根信号线就可以完成对所有挂载在I2C总线上的从器件进行操作。这样的好处是可以大大的节省我们微处理器的IO口资源。

    I2C到底可以挂载多少个器件呢?

    答:IIC协议规定,在启动总线后第1字节的高7位是从节点的寻址地址,其中高四位为器件类型识别符,接着三位为片选,最后一位为读写位,当为1时为读操作,为0时为写操作,所以具体挂载多少个器件由I2C地址决定,7位寻址地址减去1个广播地址0x00不用,所以有2^7=128 - 1 = 127,那就是127个地址, 所以理论上可以挂127个从器件。

    I2C如何同时挂载多个同一种器件(地址相同的器件)?

    答:理论上是不会这样设计的,如果一定要这样做的话,可以通过硬件上设计,控制器件是否挂载总线来实现(方法可用一个开关电路切断器件SDA或者SCL是否接入总线来实现)

    I2C总线的主机与从机之间是如何通信的呢?

    I2C总线的主机与从机之间的通信主要和I2C的时序有关。在通信开始的时候SCL与SDA都置为高电平,此时为总线空闲时间。当SCL为高电平期间SDA的电平被拉低,标志这总线的启动。当SCL为高电平期间SDA的电平被拉高,标志这总线的终止。在进行数据传送时,SCL为高电平期间,SDA上的数据必须保持稳定,只有在SCL的信号为低电平时,SDA上的高电平才允许变化。所以只要我们根据芯片手册正确的写好IIC的时序,按时序发送器件地址(不同的器件的地址不同)以及数据,就可以使主机与从机之间通信。

    I2C总线的仲裁你知道吗?

    总线上可能挂接有多个器件,有时会发生两个或多个主器件同时想占用总线的情况,这种情况叫做总线竞争。I2C总线具有多主控能力,可以对发生在SDA线上的总线竞争进行仲裁,其仲裁原则是这样的:当多个主器件同时想占用总线时,如果某个主器件发送高电平,而另一个主器件发送低电平,则发送电平与此时SDA总线电平不符的那个器件将自动关闭其输出级。总线竞争的仲裁是在两个层次上进行的。首先是地址位的比较,如果主器件寻址同一个从器件,则进入数据位的比较,从而确保了竞争仲裁的可靠性。由于是利用I2C总线上的信息进行仲裁,因此不会造成信息的丢失。

    I2C时钟信号(SCL)的同步问题

    在I2C总线上传送信息时的时钟同步信号是由挂接在SCL线上的所有器件的逻辑“与”完成的。SCL线上由高电平到低电平的跳变将影响到这些器件,一旦某个器件的时钟信号下跳为低电平,将使SCL线一直保持低电平,使SCL线上的所有器件开始低电平期。此时,低电平周期短的器件的时钟由低至高的跳变并不能影响SCL线的状态,于是这些器件将进入高电平等待的状态。当所有器件的时钟信号都上跳为高电平时,低电平期结束,SCL线被释放返回高电平,即所有的器件都同时开始它们的高电平期。其后,第一个结束高电平期的器件又将SCL线拉成低电平。这样就在SCL线上产生一个同步时钟。可见,时钟低电平时间由时钟低电平期最长的器件确定,而时钟高电平时间由时钟高电平期最短的器件确定。

    I2C总线的其他注意点

    1. 进行数据传送时,在SCL为高电平期间,SDA线上电平必须保持稳定,只有SCL为低时,才允许SDA线上电平改变状态。并且每个字节传送时都是高位在前。
    2. 对于应答信号,ACK=0时为有效应答位,说明从机已经成功接收到该字节,若为1则说明接受不成功。
    3. 如果从机需要延迟下一个数据字节开始传送的时间,可以通过把SCL电平拉低并保持来强制主机进入等待状态。
    4. 主机完成一次通信后还想继续占用总线在进行一次通信,而又不释放总线,就要利用重启动信号Sr。它既作为前一次数据传输的结束,又作为后一次传输的开始。
    5. 总线冲突时,按“低电平优先”的仲裁原则,把总线判给在数据线上先发送低电平的主器件。
    6. 在特殊情况下,若需禁止所有发生在I2C总线上的通信,可采用封锁或关闭总线,具体操作为在总线上的任一器件将SCL锁定在低电平即可。
    7. SDA仲裁和SCL时钟同步处理过程没有先后关系,而是同时进行的。
    展开全文
  •   总线接口和协议,这三个词常常被联系在一起,但是我们心里要明白他们的区别。   总线是一组传输通道,是各种逻辑器件构成的传输数据的通道,一般由由数据线、地址线、控制线等构成。接口是一种连接标准,又...

    在这里插入图片描述

      总线、接口和协议,这三个词常常被联系在一起,但是我们心里要明白他们的区别。
      总线是一组传输通道,是各种逻辑器件构成的传输数据的通道,一般由由数据线、地址线、控制线等构成。接口是一种连接标准,又常常被称之为物理接口。
      协议就是传输数据的规则。
      我们通常说的PCIE,既可以是PCIE信号,也可以是PCIE接口、PCIE总线,还可以是PCIE协议。之所以这么复杂,主要原因就是每个人对概念认知的差异。再比如,只要百度一下串行和并行,就会出来很多类似“串行通信与并行通信”、“串行接口与并行接口”、“串行总线与并行总线”、“串行协议与并行协议”以及“串行传输与并行传输”等概念介绍,既有传输(通信)方式,又有接口类型,同时还有数据本身的协议特点,信号、协议、总线和接口,有时候看起来是一样的,但细细思量却还是有差别的,总之不是一两句话就能说清楚的。举个简单的例子,PCI总线说的是一组传输通道,而PCI接口是一种连接标准,两者之间的关系就是PCI接口的设备都要通过PCI总线来进行通信,而PCI总线上走的设备并不全是PCI接口的,像集成声卡,走的就是PCI总线,但是没有走PCI接口。在这里PCI总线提供了一种通道,这个通道上可以有不同的符合这种通道要求的接口设备或信号(PCI信号或Audio信号)。打个更进一步的比方:两者关系就像马车(接口设备)和马路(总线)一样,马车必须在马路上走,而马路上不一定走马车(牛车等)。
    在这里插入图片描述

                图4 2 马路上的车水马龙
      车(接口、信号)有车(接口、信号)的标准(协议),如马车、汽车、火车、货车、自行车等(PCIE、SATA、SAS、USB等信号标准);路(通道、总线)有路的标准,如马路、人行道、高速公路等(PCIE、SATA、SAS、USB等通道标准),所以协议里面又包含通道(总线)协议和信号(接口)协议。是不是感觉越讲越复杂,不明觉历。
      用下图来简单介绍下这几个概念之间的关系。
    在这里插入图片描述

              图4 3 协议、接口、总线的关系
      协议即总体框架,定义接口设备、器件及信号、总线及通道之间需要满足的关系,即要实现信号的传输,所有这些组成成员必须通力合作,各自满足协议要求的各种必要条件。
    在这里插入图片描述

    展开全文
  • I2C接口与SPI和UART接口区别

    万次阅读 多人点赞 2018-02-14 20:56:11
    总线接口 UART I2C SPI USB的异同点 五串口通信UARTSPII2C区别 UART通用异步收发器 I2C UART 总结 一、SPI I2C UART通信速率比较: SPI > I2C > UART 1、同步通信>异步通信; 2、...

    一、SPI I2C UART通信速率比较:

    SPI > I2C > UART
    1、同步通信>异步通信;
    2、同步通信时必须有一根时钟线连接传输的两端;
    3、都是串行通信方式,并行通信用于内部存储间的通信,如flash;
    4、适合传输的距离和通信速率成反比关系;

    3-SPI:两条合一的数据线、1时钟线、1CS(设备片选线)
    SPI:2数据线、1时钟线、1CS(设备片选线)/串行 同步 通信全双工
    I2C:1数据线、1时钟线/串行 同步 通信半双工 传输距离比UART短
    UART:2数据线、 1地线/串行 异步 通信全双工 传输距离比I2C长些

    (I2C接口是“器件间”接口,是在一块板子之内传输数据)
    (UART是 “设备间”接口,更多的是用于两台设备之间传输数据)

    二、串行和并行、同步和异步的区别:

    串行通信:利用一条数据线将数据一位一位的顺序传送,特点是通信线路简单,成本
    低,适合于长距离传送

    并行通信:利用多条数据线将数据的各位同时传送,特点是传输速度快,适合于短距离
    传送

    异步:在一个字符的传输时间范围内保持同步即可

    同步:在数据传输过程中,需要一根时钟线同步,IIC总线,SPI总线

    三、I2C接口与串行接口的区别:

    I2C 两线式串行总线
    UART 通用串行异步收发器 串口

    UART是串行异步通信接口,它包括RS232、RS499、RS423、RS422和RS485等接口规范和 标准规范,即
    UART是串行异步通信口的总称。
    有很大方式的不同。譬如i2c是带地址的通讯,支持多方通讯,串口就搞不定;两者通讯的机制原理也不同;另
    外速度上I2C相对会快一些,好像i2c是philips发明的,目的就是解决速度的瓶颈。网上有很多资料,自己搜一下吧!

    1、I2C接口是”器件间”接口,是在一块板子之内数据的,RS232串行接口是”设备间”接口,更多的是用于两台设备之间传 输数据。

    2、从传输数据的距离来说,应该是RS232传输的距离较远,但二者具体差别多少,我没有做过专门的试验。

    3、串口是一根线传送数据,一根线接收数据

    I2C是一根线是时钟线,一根线是数据线,数据线是双向的,可以接收,也可以发送。

    4、协议不同,波特率不同
    串行接口,像单片机,时钟由内部MCU提供,而I2C接口要由器件来决定,不能太快。

    5、I2C是同步串行传输,RS232(或称UART,通用异步收发器)是异步串行传输。

    6、同步方式必须有一根时钟线连接传输的两端,i2c里的scl就是这根时钟线。因为同步方式不用花费额外的开销对其 数据,所以其传输速率一般比异步方式高。

    四、总线接口 UART I2C SPI USB的异同点

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

    2、SPI 高速同步串行口,高速,可全双工,收发独立,同步接口,可实现多个SPI设备互联,硬件4条线。

    3、I2C 双向、两线、串行、多主控接口标准。速率不快,半双工,同步接口,具有总线仲裁机制,非常适合器件间
    近距离经常性数据通信,可实现设备组网。

    4、USB 通用串行总线,高速,半双工,由主机、hub、设备组成。设备可以与下级hub相连构成星型结构。

    五、串口通信:UART、SPI、I2C区别:

    1、UART就是两线,一根发送一根接收,可以全双工通信,线数也比较少。数据是异步传输的,对双方的时序要求比
    较严格,通信速度也不是很快。在多机通信上面用的最多。

    2、SPI接口和上面UART相比,多了一条同步时钟线,上面UART的缺点也就是它的优点了,对通信双方的时序要求不
    严格不同设备之间可以很容易结合,而且通信速度非常快。一般用在产品内部元件之间的高速数据通信上面,如大容
    量存储器等。

    3、I2C接口也是两线接口,它是两根线之间通过复杂的逻辑关系传输数据的,通信速度不高,程序写起来也比较复
    杂。一般单片机系统里主要用来和24C02等小容易存储器连接。

    SPI:高速同步串行口。3~4线接口,收发独立、可同步进行

    UART:通用异步串行口。按照标准波特率完成双向通讯,速度慢

    SPI:一种串行传输方式,三线制,网上可找到其通信协议和用法的3根线实现数据双向传输串行外围接口
    (Serial peripheral Interface)

    UART:通用异步收发器

    UART是用于控制计算机与串行设备的芯片。有一点要注意的是,它提供了RS-232C数据终端设备接口,这样计
    算机就可以和调制解调器或其它使用RS-232C接口的串行设备通信了。作为接口的一部分,UART还提供以下功能:

    1、将由计算机内部传送过来的并行数据转换为输出的串行数据流。
    2、将计算机外部来的串行数据转换为字节,供计算机内部使用并行数据的器件使用。
    3、在输出的串行数据流中加入奇偶校验位,并对从外部接收的数据流进行奇偶校验。
    4、在输出数据流中加入启停标记,并从接收数据流中删除启停标记。
    5、处理由键盘或鼠标发出的中断信号(键盘和鼠票也是串行设备)。
    6、处理由键盘或鼠标发出的中断信号(键盘和鼠票也是串行设备)。
    7、可以处理计算机与外部串行设备的同步管理问题。
    8、有一些比较高档的UART还提供输入输出数据的缓冲区,现在比较新的UART是16550,它可以在计算机需要处理
    数据前在其缓冲区内存储16字节数据,而通常的UART是8250。
    9、现在如果您购买一个内置的调制解调器,此调制解调器内部通常就会有16550 UART。

    I2C:

    能用于替代标准的并行总线,能连接的各种集成电路和功能模块。I2C是多主控总线,所以任何一个设备都能像
    主控器一样工作,并控制总线。总线上每一个设备都有一个独一无二的地址,根据设备它们自己的能力,它们可以作
    为发射器或接收器工作。多路微控制器能在同一个I2C总线上共存。

    I2C总线:
    I2C总线最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此I2C总线占用的空间非常小,减少了
    电路板的空间和芯片管脚的数量,降低了互联成本。总线的长度可高达25英尺,并且能够以10Kbps的最大传输速率
    支持40个组件。I2C总线的另一个优点是,它支持多主控(multimastering),其中任何能够进行发送和接收的设备都
    可以成为主总线。一个主控能够控制信号的传输和时钟频率。当然,在任何时间点上只能有一个主控。

    UART:

    单端,远距离传输。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很
    多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。串口通信的概念非
    常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送
    数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备
    线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。具体的适用范
    围就可多了,军用,医疗…到处到能用。

    总结

    第一个区别当然是名字:
    SPI(Serial Peripheral Interface:串行外设接口);
    I2C(INTER IC BUS:意为IC之间总线)
    UART(Universal Asynchronous Receiver Transmitter:通用异步收发器)

    第二,区别在电气信号线上:

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

    I2C总线是双向、两线(SCL、SDA)、串行、多主控(multi-master)接口标准,具有总线仲裁机制,非常适合在
    器件之间进行近距离、非经常性的数据通信。在它的协议体系中,传输数据时都会带上目的设备的设备地址,因此可以实现设备组网。
    如果用通用IO口模拟I2C总线,并实现双向传输,则需一个输入输出口(SDA),另外还需一个输出口(SCL)。(注:
    I2C资料了解得比较少,这里的描述可能很不完备)

    UART总线是异步串口,因此一般比前两种同步串口的结构要复杂很多,一般由波特率产生器(产生的波特率等于传
    输波特率的16倍)、UART接收器、UART发送器组成,硬件上由两根线,一根用于发送,一根用于接收。
    显然,如果用通用IO口模拟UART总线,则需一个输入口,一个输出口。

    第三,从第二点明显可以看出,SPI和UART可以实现全双工,但I2C不行;

    第四,看看牛人们的意见吧!

    wudanyu:I2C线更少,我觉得比UART、SPI更为强大,但是技术上也更加麻烦些,因为I2C需要有双向IO的支
    持,而且使用上拉电阻,我觉得抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信。SPI
    实现要简单一些,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它是有时钟的协
    议。
    quickmouse:I2C的速度比SPI慢一点,协议比SPI复杂一点,但是连线也比标准的SPI要少。

    I2C接口与SPI和UART接口的区别 - a746742897的博客 - CSDN博客
    http://blog.csdn.net/a746742897/article/details/52503298

    展开全文
  • 究其原因就是企业信息化的需要,企业在仪表选型时其中的一个必要条件就是要具有联网通信接口。最初是数据模拟信号输出简单过程量,后来仪表接口是RS232接口,这种接口可以实现点对点的通信方式,但这种方式不能实现...

    一、RS485简介
    智能仪表是随着80年代初单片机技术的成熟而发展起来的,现在世界仪表市场基本被智能仪表所垄断。究其原因就是企业信息化的需要,企业在仪表选型时其中的一个必要条件就是要具有联网通信接口。最初是数据模拟信号输出简单过程量,后来仪表接口是RS232接口,这种接口可以实现点对点的通信方式,但这种方式不能实现联网功能。随后出现的RS485解决了这个问题。下面我们就简单介绍一下RS485。 二、RS485接口
    RS485采用差分信号负逻辑,+2V~+6V表示“0”,- 6V~- 2V表示“1”。RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,现在多采用的是两线制接线方式,这种接线方式为总线式拓朴结构在同一总线上最多可以挂接32个结点。在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。很多情况下,连接RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。而忽略了信号地的连接,这种连接方法在许多场合是能正常工作的,但却埋下了很大的隐患,这有二个原因:(1)共模干扰问题: RS-485接口采用差分方式传输信号方式,并不需要相对于某个参照点来检测信号,系统只需检测两线之间的电位差就可以了。但人们往往忽视了收发器有一定的共模电压范围,RS-485收发器共模电压范围为-7~+12V,只有满足上述条件,整个网络才能正常工作。当网络线路中共模电压超出此范围时就会影响通信的稳定可靠,甚至损坏接口。(2)EMI问题:发送驱动器输出信号中的共模部分需要一个返回通路,如没有一个低阻的返回通道(信号地),就会以辐射的形式返回源端,整个总线就会像一个巨大的天线向外辐射电磁波。
    由于PC机默认的只带有RS232接口,有两种方法可以得到PC上位机的RS485电路:(1)通过RS232/RS485转换电路将PC机串口RS232信号转换成RS485信号,对于情况比较复杂的工业环境最好是选用防浪涌带隔离珊的产品。(2)通过PCI多串口卡,可以直接选用输出信号为RS485类型的扩展卡。 三、RS485电缆
    在一般场合采用普通的双绞线就可以,在要求比较高的环境下可以采用带屏蔽层的同轴电缆。在使用RS485接口时,对于特定的传输线路,从RS485接口到负载其数据信号传输所允许的最大电缆长度与信号传输的波特率成反比,这个长度数据主要是受信号失真及噪声等影响所影响。理论上RS485的最长传输距离能达到1200米,但在实际应用中传输的距离要比1200米短,具体能传输多远视周围环境而定。在传输过程中可以采用增加中继的方法对信号进行放大,最多可以加八个中继,也就是说理论上RS485的最大传输距离可以达到9.6公理。如果真需要长距离传输,可以采用光纤为传播介质,收发两端各加一个光电转换器,多模光纤的传输距离是5~10公里,而采用单模光纤可达50公里的传播距离。 四、RS485布网
    网络拓扑一般采用终端匹配的总线型结构,不支持环形或星形网络。在构建网络时,应注意如下几点:
    (1)采用一条双绞线电缆作总线,将各个节点串接起来,从总线到每个节点的引出线长度应尽量短,以便使引出线中的反射信号对总线信号的影响最低。有些网络连接尽管不正确,在短距离、低速率仍可能正常工作,但随着通信距离的延长或通信速率的提高,其不良影响会越来越严重,主要原因是信号在各支路末端反射后与原信号叠加,会造成信号质量下降。
    (2)应注意总线特性阻抗的连续性,在阻抗不连续点就会发生信号的反射。下列几种情况易产生这种不连续性:总线的不同区段采用了不同电缆,或某一段总线上有过多收发器紧靠在一起安装,再者是过长的分支线引出到总线。
    总之,应该提供一条单一、连续的信号通道作为总线。
    在RS485组网过程中另一个需要主意的问题是终端负载电阻问题,在设备少距离短的情况下不加终端负载电阻整个网络能很好的工作但随着距离的增加性能将降低。理论上,在每个接收数据信号的中点进行采样时,只要反射信号在开始采样时衰减到足够低就可以不考虑匹配。但这在实际上难以掌握,美国MAXIM公司有篇文章提到一条经验性的原则可以用来判断在什么样的数据速率和电缆长度时需要进行匹配:当信号的转换时间(上升或下降时间)超过电信号沿总线单向传输所需时间的3倍以上时就可以不加匹配。
    一般终端匹配采用终端电阻方法,RS-485应在总线电缆的开始和末端都并接终端电阻。终接电阻在RS-485网络中取120Ω。相当于电缆特性阻抗的电阻,因为大多数双绞线电缆特性阻抗大约在100~120Ω。这种匹配方法简单有效,但有一个缺点,匹配电阻要消耗较大功率,对于功耗限制比较严格的系统不太适合。另外一种比较省电的匹配方式是RC匹配。利用一只电容C隔断直流成分可以节省大部分功率。但电容C的取值是个难点,需要在功耗和匹配质量间进行折衷。还有一种采用二极管的匹配方法,这种方案虽未实现真正的“匹配”,但它利用二极管的钳位作用能迅速削弱反射信号,达到改善信号质量的目的,节能效果显著。
    最近两年一些公司基于部分企业信息化的实施已完成,工厂中已经铺设了延伸到车间每个办公室、控制室的局域网的现状,推出了串口服务器来取代多串口卡,这主要是利用企业已有的局域网资源减少线路投资,节约成本,相当于通过tcp/ip把多串口卡放在了现场。
    RS485和其它总线网络的区别:
    我们把工业网络归结为三类:RS485网络、HART网络和现场总线网络。
    HART网络:HART是由现在的艾默生提出一个过度性总线标准,他主要是在4~20毫安电流信号上面叠加数字信号,物理层采用BELL202频移键控技术,以实现部分智能仪表的功能,但此协议不是一个真正意义上开放的标准,要加入他的基金会才能拿到协议,加入基金会要一部分的费用。技术主要被国外几家大公司垄断,近两年国内也有公司再做,但还没有达到国外公司的水平。现在有很大一部分的智能仪表都带有HART圆卡,都具备HART通讯功能。但从国内来看还没有真正利用其这部分功能,最多只是利用手操器对其进行参数设定,没有发挥出HART智能仪表应有的功能,没有联网进行设备监控。从长远来看由于HART通信速率低组网困难等原因,HART仪表的采购量会程下滑趋势,但由于HART仪表已经有十多年的历史现在在装数量非常的大,对于一些系统集成商来说还有很大的可利用空间。
    现场总线网络:现场总线技术是当今自动化领域技术发展热点之一,被誉为自动化领域的计算机局域网,它的出现标志着自动化控制技术又一个新时代的开始。现场总线是连接设置在控制现场的仪表与设置在控制室内的控制设备的数字化、串行、多站通信的网络。其关键标志是能支持双向、多节点、总线式的全数字通信。现场总线技术近年来成为国际上自动化和仪器仪表发展的热点,它的出现是传统的控制系统结构产生了革命性的变化,是自控系统朝着智能化、数字化、信息化、网络化、分散化的方向迈进,形成新型的网络集成式全分布式控制系统---现场总线控制系统FCS(Fieldbus Control System)。但是现在的现场总线的各种标准并行存在并且都有自己的生存领域,还没有形成真正统一的标准,关键是看不到什么时候能形成统一的标准,技术也不够成熟。另外现场总线的仪表种类还比较少可供选择的余地小,价格也偏高,从最终用户的角度看大多还处于观望状态,都想等到技术成熟之后在考虑,现在实施的少。
    RS485网络:RS485/MODBUS是现在流行的一种布网方式,其特点是实施简单方便,而且现在支持RS485的仪表又特多,特别是在油品行业RS485/MODBUS简直是一统天下,现在的仪表商也纷纷转而支持RS485/MODBUS,原因很简单,象原来的 HART仪表想买一个转换口非常困难而且价格昂贵,RS485的转换接口就便宜的多而且种类繁多。至少在低端市场RS485/MODBUS还将是最主要的组网方式,近两三年内不会改变。

    afa64bfdcfe93da142e6c76c753fb87f.png
    展开全文
  • 文章目录微处理器功能运算器控制器8088/8086微处理器区别指令流水线※8086的引脚两种工作模式地址线和数据线8088和8086引线功能比较内部结构执行单元总线接口单元结论内部寄存器BX和BP的区别变址寄存器状态标志位...
  • 本文这里所指并行信号和串行信号,包括了传输(通信)方式,又有接口类型,同时还有数据本身的协议特点,信号、协议、总线接口
  • SPI(Serial Peripheral Interface:串行外设接口) IIC(INTER IC BUS) SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出(SDO)、串行数据输入(SDI)。SPI总线可以实现多个SPI设备互相连接。 提供 SPI串行时钟...
  • RS485接口RS485总线标准是工业中使用非常广泛的双向、平衡传输标准接口,支持多点连接,很好的解决了智能仪表点对点通信以及联网通信问题。RS485分为两线制和四线制,通信方式一般采取主从通信方式。RS485主要有以下...
  • 系统管理总线(SMBus)是一个两线接口。通过它,各设备之间以及设备与系统的其他部分之间可以互相通信。它基于I2C操作原理。SMBus为系统和电源管理相关的任务提供一条控制总线。一个系统利用SMBus可以和多个设备互传...
  • RS-485RS-485总线,在要求通信距离为几十米到上千米时,广泛采用RS-485 串行总线RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。RS-232-CRS-232-C是美国电子工业协会EIA(Electronic Industry ...
  • 通信总线协议学习整理

    千次阅读 2018-07-28 17:41:44
    UART是一个大家族,其包括了RS232、RS499、RS423、RS422和RS485等接口标准规范和总线标准规范。它们的主要区别在于其各自的电平范围不相同。 嵌入式设备中常常使用到的是TTL、TTL转RS232的这种方式。常用的就三根...
  • 对于OSI七层协议模型,进行区别,从下往上以此是: 各层功能 物理层 简单的说,物理层(Physical Layer)确保原始的数据可在各种物理媒体上传输。在这一层上面规定了激活、维持、关闭通信端点之间的机械特性、...
  • 数字接口SPI和I2C的区别与联系概述

    万次阅读 2013-05-28 05:22:09
    是一种标准的四线同步双向串行总线。 SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM,FLASH,实时时钟...
  • 什么是RS485接口 RS485接口组成的半双工网络,一般是两线制(以前有四线制接法,只能实现点对点的通信方式,现很少采用),多采用屏蔽双绞线传输。这种接线方式为总线式拓扑结构在同一总线上最多可以挂接32个结点。在...
  • 究其原因就是企业信息化的需要,企业在仪表选型时其中的一个必要条件就是要具有联网通信接口。最初是数据模拟信号输出简单过程量,后来仪表接口是RS232接口,这种接口可以实现点对点的通信方式,但这种方式不能实现...
  • 其目标定位于车身网络模块节点间的低端通信,主要用于智能传感器和执行器的串行通信,而这正是CAN总线的带宽和功能所不要求的部分。2. CAN/LIN总线区别由于LIN网络在汽车中一般不独立存在,通常会与上层CAN网络相连...
  •  SPI简述(Serial Peripheral Interface--串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等
  • 究其原因就是企业信息化的需要,企业在仪表选型时其中的一个必要条件就是要具有联网通信接口。最初是数据模拟信号输出简单过程量,后来仪表接口是RS232接口,这种接口可以实现点对点的通信方式,但这种方式不能实现...
  • 什么是RS485接口 RS485接口组成的半双工网络,一般是两线制(以前有四线制接法,只能实现点对点的通信方式,现很少采用),多采用屏蔽双绞线传输。这种接线方式为总线式拓扑结构在同一总线上最多可以挂接32个结点。在...
  • SPI 与 I2C总线区别

    千次阅读 2011-09-16 13:27:06
    SPI来源于MOTOROLA、I2C来源于... SPI(Serial PeripheralInterface--串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。外围设置FLASH、RAM、网络控制器、LC
  • SPI:SPI(Serial Peripheral Interface)串行外设接口,全双工,同步串行 1、SPI总线由三条信号线组成:串行时钟(SCLK)、串行数据输出( SDO)、串行数据输入(SDI)。SPI 总线可以实现多个SPI设备互相连接。提供SPI串行...
  • 转自 ... 一、UART UART是一个大家族,其包括了RS232、RS499、RS423、RS422和RS485等接口标准规范和总线标准规范。它们的主要区别在于其各自的电平范围不...
  • SPI、I2C、串口、如果你是嵌入式开发从业者,那么一定会用到这三种通信协议,也是数据传输的主要使用协议,这里大概总结一下他们的区别。首先通过名字区别:SPI(SerialPeripheral Interface:串行外设接口);I2C...
  • 1.定义上的区别 IIC:Inter-Integrated Circuit 两线式串行总线 SPI : serial peripheral interface 串行外围设备接口 UART :Universal Asynchronous Receiver/Transmitter 通用异步收发传输器 通信速率SPI > ...
  • 什么是SPISPI (Serial Peripheral Interface,串行外设接口)是Motorola 公司推出的一种同步串行接口技术,是一种高速的,全双工,同步的通信总线;它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,...
  • SPI、I2C、UART、USART串行总线协议的区别 发布时间:2010-10-09 10:57:39 技术类别:通信网络     SPI、I2C、UART三种串行总线协议的区别 第一个区别当然是...
  • 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS- ...
  • RS232,RS422,RS485都为串口标准,串口也叫做串行接口,也称串行通信接口,按电气标准及协议来分包括RS-232-C、RS-422、RS485、USB等。 RS-232-C、RS-422与RS-485标准只对接口的电气特性做出规定,不涉及接插件、...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 143
精华内容 57
关键字:

区别总线接口通信接口