好文档 - 专业文书写作范文服务资料分享网站

【整理】常用通信接口二(CAN、I2C、SPI、UART、GPIO原理与区别)

天下 分享 时间: 加入收藏 我要投稿 点赞

【整理】常用通信接口二(CAN/I2C/SPI/UART/GPIO原理与区别)

上一篇整理了常用通信接口一(RS232/RS485/USB/TYPE-C原理与区别),这篇我们接着整理CAN、I2C、SPI、UART、GPIO原理与区别;

1.CAN总线接口

1)定义

CAN是控制器局域网络(ControllerAreaNetwork,CAN)的简称,是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO11898),是ISO国际标准化的串行通信协议,是国际上应用最广泛的现场总线之一。CAN属于现场总线的范畴,它是一种有效支持分布式控制或实时控制的串行通信网络。较之许多RS-485基于R线构建的分布式控制系统而言,基于CAN总线的分布式控制系统在以下方面具有明显的优越性:A.网络各节点之间的数据通信实时性强B.开发周期短C.已形成国际标准的现场总线D.最有前途的现场总线之一与一般的通信总线相比,CAN总线的数据通信具有突出的可靠性、实时性和灵活性。2)运用

A.CAN总线是为解决现代汽车中众多的控制与测试仪器之间的数据交换而开发的一种串行数据通信协议,它是一种多主总线,通信介质可以是双绞线、同轴电缆或光导纤维。通信速率最高可达1Mbps。B.CAN协议的一个最大特点是废除了传统的站地址编码,而代之以对通信数据块进行编码。使网络内的节点个数在理论上不受限制。C.CAN总线采用了多主竞争式总线结构,具有多主站运行和分散仲裁的串行总线以及广播通信的特点。CAN总线上任意节点可在任意时刻主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实现自由通信。D.结构简单,只有2根线与外部相连,并且内部集成了错误探测和管理模块。E.CAN总线特点:(1)数据通信没有主从之分,任意一个节点可以向任何其他(一个或多个)节点发起数据通信,靠各个节点信息优先级先后顺序来决定通信次序,高优先级节点信息在134μs通信;(2)多个节点同时发起通信时,优先级低的避让优先级高的,不会对通信线路造成拥塞;(3)通信距离最远可达10KM(速率低于5Kbps)速率可达到1Mbps(通信距离小于40M);(4)CAN总线传输介质可以是双绞线,同轴电缆。CAN总线适用于大数据量短距离通信或者长距离小数据量,实时性要求比较高,多主多从或者各个节点平等的现场中使用。BybinggeData:202009203)EMC标准设计电路

2.I2C通信

I2C(Inter-integratedCircuit)总线是由Philips公司开发的一种简单、双向二线制同步串行总线。I2C总线支持设备之间的短距离通信,它只需要两根信号线来完成信息交换。它是两根线之间通过复杂的逻辑关系传输数据的,通信速度不高,程序写起来也比较复杂。用于处理器和一些外围设备之间的接口,常用于单片机系统里主要用来和24C02等小容易存储器连接。1)工作原理

SDA(串行数据线)和SCL(串行时钟线)都是双向I/O线,接口电路为开漏输出.需通过上拉电阻接电源VCC.当总线空闲时.两根线都是高电平,连接总线的外同器件都是CMOS器件,输出级也是开漏电路.在总线上消耗的电流很小,因此,总线上扩展的器件数量主要由电容负载来决定,因为每个器件的总线接口都有一定的等效电容.主器件用于启动总线传送数据,并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件.在总线上主和从、发和收的关系不是恒定的,而取决于此时数据传送方向。如果主机要发送数据给从器件,则主机首先寻址从器件,然后主动发送数据至从器件,最后由主机终止数据传送;如果主机要接收从器件的数据,首先由主器件寻址从器件.然后主机BybinggeData:20200920接收从器件发送的数据,最后由主机终止接收过程。在这种情况下.主机负责产生定时时钟和终止数据传送。数据传输和地址设定由软件设定,非常灵活。2)I2C主要特点

A.B.C.D.E.简单的双向两线总线(漏极开路模式):串行数据(SDA)串行时钟(SCL)带仲裁功能的多主机的总线总线上的每个设备都具有不同的识别地址每次数据传输都是由主机发起,且时钟总是由主机提供3)主设备从从设备读数据,如下图

BybinggeData:20200920?主机对从机进行写操作(7位地址)

7bits1bit1bitS/Sr8bitsData

AddressW(0)ACK

?主机对从机进行读操作(7位地址)

7bits1bit1bitS/Sr8bitsData

AddressR(0)ACK

1bit1bit

----8bitsDataSr/PACKNACK1bit1bit

----8bitsDataSr/PACKNACK

SCL是时钟,SDA承载的是数据。当SDA从1变动到0,而SCL还是1时,表示开始数据传输。接下来的7位,就是设备的地址。紧接着的是读写标志,其为1时是读取,为0则是写。如果I2C总线上存在着和请求的地址相对应的设备,则从设备会发送一个ACK信号通知主设备,可以发送数据了。接到ACK信号后,主设备则发送一个8位的数据。当传输完毕之后,SCL保持为1,SDA从0变换到1时,标明传输结束。4)主从设备通信

master是指启动数据传输的设备并在总线上生成时钟信号以驱动该传输,而被寻址的设备都作为slaves。

和SPI不同的是,I2C可以支持mul-master系统,允许有多个master并且每个master都可以与所有的slaves通信(master之间不可通过I2C通信,并且每个master只能轮流使用I2C总线)。I2C的数据传输速率位于串口和SPI之间,大部分I2C设备支持100KHz和400KHz模式。使BybinggeData:20200920用I2C传输数据会有一些额外消耗:每发送8bits数据,就需要额外1bit的元数据(ACK或NACK)。I2C支持双向数据交换,由于仅有一根数据线,故通信是半双工的。3.SPI通信

1)定义:

SPI是串行外设接口(SerialPeripheralInterface)的缩写。是Motorola公司推出的一种同步串行接口技术,是一种高速的,全双工,同步的通信总线,芯片的管脚上只占用四根线,节约了芯片的管脚。SPI接口一般用在产品内部元件之间的高速数据通信上面,常见的应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。2)优缺点

●优点:支持全双工通信,通信简单,数据传输速率块●缺点:没有指定的流控制,没有应答机制确认是否接收到数据,所以跟I2C总线协议比较在数据可靠性上有一定的缺陷。3)协议通信时序详解A.SPI的通信方式

SPI的通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是SDI(数据输入)、SDO(数据输出)、SCLK(时钟)、CS(片选)。①SDO/MOSI–主设备数据输出,从设备数据输入,对应MOSImasteroutputslaveinput②SDI/MISO–主设备数据输入,从设备数据输出,对应MISOmasterinputslaveoutput③SCLK–时钟信号,由主设备产生;④CS/SS–从设备使能信号,由主设备控制。当有多个从设备的时候,因为每个从设备上都有一个片选引脚接入到主设备机中,当我们的主设备和某个从设备通信时将需要将从设备对应的片选引脚电平拉低或者是拉高。CS:其中CS是控制芯片是否被选中的,也就是说只有片选信号为预先规定的使能信号时(高电位或低电位),对此芯片的操作才有效,这就允许在同一总线上连接多个SPI设备成为可能。SDI/SDO/SCLK:通讯是通过数据交换完成的,这里先要知道SPI是串行通讯协议,也就是说数据是一位一位的传输的。这就是SCK时钟线存在的原因,由SCK提供时钟脉冲,SDI,SDO则基于此脉冲完成数据传输。数据输出通过SDO线,数据在时钟上升沿或下降沿时改变,在紧接着的下降沿或上升沿被读取。完成一位数据传输,输入也使用同样原理。这样,在至少8次时钟信号的改变(上沿和下沿为一次),就可以完成8位数据的传输。BybinggeData:20200920

【整理】常用通信接口二(CAN、I2C、SPI、UART、GPIO原理与区别)

【整理】常用通信接口二(CAN/I2C/SPI/UART/GPIO原理与区别)上一篇整理了常用通信接口一(RS232/RS485/USB/TYPE-C原理与区别),这篇我们接着整理CAN、I2C、SPI、UART、GPIO原理与区别;1.CAN总线接口1)定义CAN是控制器局域网络(ControllerAreaNetwork,CAN)的
推荐度:
点击下载文档文档为doc格式
7412362gjr44s0w0d4ij47hq70zb7d011tr
领取福利

微信扫码领取福利

微信扫码分享