ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

学习常用接口的工作原理---学习记录

2021-07-16 21:01:56  阅读:198  来源: 互联网

标签:学习 总线 通信 电平 --- GPIB 接口 设备


三、学习常用接口总线的工作原理

I²C,UART,SPI统称为串行接口通信。

  1. I²C总线通信

特点:①8位串行数据总线,半双工串行同步通信。

②只能用于短距离通信,仅用两根线(SCL和SDA)进行传输。

③多主从架构,常用于主控制器和从控制器间的主从通信,如片间通信。

④时钟线决定数据的传输速度。SDA和SCL都要接上上拉电阻4.7K或10K实现开漏输出。上拉电阻越大,传输速率越小。

工作过程:①首先,SCL和SDA都处于高电平空闲状态。当SCL为高电平时,SDA由高电平变成低电平的跳变定义为起始条件。

②收到起始信号后,主机先发起第一次通信。此时SCL由高电平变化为低电平,在发送每一位的数据之前时钟线有一段低电平,主要作用是给数据线做电平变化用的,因此,SDA的数据只能在SCL低电平时翻转变化,在SCL高电平时保持稳定。

  假设发送的第一位是1,SCL由高电平变成低电平,根据发送的数据,SDA变成高电平,同时SCL变为高电平,此时接收端得知SCL为高电平,便查看SDA的电平状态,说明数据为“1”。

接着发送数据第二位是0,SCL变低电平,SDA根据发送的数据也变成低电平,然后SCL又变成高电平,此时接收端查看SDA为低,说明接收数据为“0”。

③发送了八位数据以后,外界设备在收到信号后,在第九个周期会把SDA拉低,处理器检测到SDA拉低就能知道外接I²C设备数据已经收到,I²C是从最高位开始传输。

④接收完数据后,进入终止状态,此时SCL为高电平,SDA由低电平到高电平的跳变定义为终止条件。

表1.1 I²C通信工作状态表

状态/信号线电平变化

SCL

SDA

空闲

1

1

起始

1

1→0

发送

1→0

根据发送数据决定0或1

接收

0→1

根据发送数据决定0或1

应答

1

1→0

停止

1

0→1

2.UART(通用异步收发传输器)通信

特点:①用于异步通信,常用于控制计算机与串行设备的芯片。传输距离远,传输速度慢。

②不需要时钟线,通过起始位和停止位及波特率进行数据识别。

③一般由波特率产生器、UART接收器和发送器组成。硬件上仅使用两条线TXD和RXD用于数据的发和收。

④提供了RS-232C数据终端接口,作为接口的一部分还能对计算机传输过来的并行数据流转换为输出的串行数据流。

⑤使用标准的CMOS逻辑电平来表示数据,高电平为1,低电平为0.

异步通信是按字符传输的,接收设备在收到起始信号之后只要在一个字符的传输时间内能和发送设备保持同步就能正确接收。下一个字符起始位的到来又使同步重新校准(依靠检测起始位来实现发送与接收方的时钟自同步的)

UART的数据格式包括:空闲位、起始位、奇偶效验位、停止位、波特率。

起始位:先发出一个逻辑”0”信号,表示传输字符的开始。
 数据位:可以是5~8位逻辑”0”或”1”。如ASCII码(7位),扩展BCD码(8位)。小端传输

校验位:数据位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验)
 停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。
 空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。

工作过程分析:首先,在没有数据进行传输时的电平状态为1.数据传输开始时,先发送一个“0”作为起始位,然后出现的是字符的二进制编码数据,可以是5、6、7、8位。之后是奇偶效验位,一般不需要。最后是停止位,可以是1位,1.5位,2位的高电平。以此循环。

UART通信图解

3.SPI(串行外围设备接口)通信

SPI是一种高速的、全双工、同步通信总线,常用于单片机和 EEPROM、FLASH、实时时钟、数字信号处理器等器件的通信。

特点:①主从方式通信,一主一从或者一主多从。

②一般由四根线组成:SDI(数据输入),SDO(数据输出),SCK(时钟),CS(片选)。在某些情况下,我们也可以用3根线的SPI或者2根线的SPI进行通信。比如主机只给从机发送命令,从机不需要回复数据的时候,那么MISO就可以不要;而在主机只读取从机的数据,不需要给从机发送指令的时候,那MOSI就可以不要。

SCLK:串行时钟,用来同步数据传输,由主机输出;

 MOSI:主机输出从机输入数据线;

MISO:主机输入从机输出数据线;

 SS:片选线,低电平有效,由主机输出。

数据传输过程:在一个SPI时钟周期内,会完成如下操作:

(1)主设备通过MOSI线发送1位数据,从设备通过该线读取这1位数据;

(2)从设备通过MISO线发送1位数据,主设备通过该线读取这1位数。

这是通过移位寄存器来实现的。主机和从机各有一个移位寄存器,且二者连接成环。在SPI工作时,数据按照从高位到低位的方式依次移出主机寄存器和从机寄存器,并且依次移入从机寄存器和主机寄存器。当寄存器中的内容全部移出时,相当于完成了两个寄存器内容的交换,SPI的时钟信号使传输同步。

串行通信接口小结

对比方式

UART

I²C

SPI

信号线数目

3根,RX,TX,GND

2根,SCL,SDA

4根,CS、MISO、MOSI、SCLK

设备从属关系

存在主从设备, I²C通过地址信号选择从机。

存在主从设备,SPI通过片选信号选择从机

通信方式

全双工

半双工

全双工

通信速率

比SPI慢

比I²C快,速度可达

通信距离

I2C需要有双向IO的支持,而且使用上拉电阻,抗干扰能力较弱,一般用于同一板卡上芯片之间的通信,较少用于远距离通信

通信特征

异步,一帧可以传5/6/7/8位

同步,SPI允许数据一位一位的传送,甚至允许暂停。从最高位开始传。

同步,电平信号,一次连续8bit。从最高位开始传

协议复杂度

结构比较复杂

协议比SPI复杂,但是连线比标准的SPI要少

SPI实现要比UART简单,UART需要固定的波特率,就是说两位数据的间隔要相等,而SPI则无所谓,因为它是有时钟的协议。

应用领域

1、UART常用于控制计算机与串行设备的芯片

2、就是我们经常所说的串口,基本都用于调试。

I2C一般是用在同一个板子上的2个IC之间的通信 ,它可以替代标准的并行总线,连接各种集成电路和功能模块。

主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间

4.RS-232通信

RS-232标准接口(又称EIA RS-232)是常用的串行通信接口标准之一,它被广泛用于计算机串行接口外设连接,串行通讯时,要求通讯双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通讯。

特点:①传输距离短,一般不超过15米,传输速率低,常用于嵌入式控制器开发系统。

②只能一对一通信,不能一对多。

③接口的信号电平值较高,易损坏接口电路的芯片。RS232接口任何一条信号线的电压均为负逻辑关系。即:逻辑“1”为-3—-15V;逻辑“0”:+3—+15V,噪声容限为2V。即要求接收器能识别高于+3V的信号作为逻辑“0”,低于-3V的信号作为逻辑“1”,TTL电平为5V为逻辑正,0为逻辑负。与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。

④接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。

通信过程:与UART工作过程相同。

5.RS-485通信

RS485的通信方式是半双工,采用差分传输(平衡传输)的方式,因此具有抑制共模干扰的能力。

特点:①RS-485的电气特性:逻辑“1”以两线间的电压差+2V~+6V表示,逻辑“0”以两线间的电压差-6V~-2V表示。接口信号电平比RS-232-C降低了,就不容易损坏接口电路芯片,且该电平与TTL电平兼容,也方便与TTL电路连接。

  ②一般只需要三根线:A,B,GND。数据最高传输速率为:10Mbps

  ③RS-485接口采用平衡驱动器和差分接收器的组合,抗共模干扰能力强,即抗噪声性能好。

  ④RS-485接口的最大传输距离标准值4000英尺,实际上可达3000米。

  ⑤RS-232-C接口在总线上只允许连接一个收发器,即单站能力;而RS-485接口在总线上只允许连接多达128个收发器,即具有多站能力,这样用户可以利用单一的RS-485接口方便地建立设备网络。

工作原理:在空闲状态时, A=3.3V,B=0V,A-B=3.3V,为逻辑“1”。

发送逻辑‘1’时,A=3.3V,B=0V,A-B=3.3V;

发送逻辑‘0’时,A=0.5V,B=3V,A-B=-2.5V;

RS485 的接口非常简单, 只需要一个 RS485转换器,就可以直接与单片机的 UART 串口连接起来,并且使用完全相同的异步串行通信协议。但是由于 RS485 是差分通信,因此接收数据和发送数据是不能同时进行。

小结

对比方式

RS-232

RS-485

信号线数目

一般是9

一般是3

通信方式

全双工异步通信

半双工异步通信

通信速率

通信距离

近,小于15m

远,小于3000m

抗干扰能力

比RS-485弱

设备从属关系

一对一

主从关系,一对多

电气特性

接口电平值较高,逻辑“1”为-3—-15V;逻辑“0”:+3—+15V,与TTL电平不兼容,不能与TTL电路直接连接。 

接口电平低,逻辑“1”以两线间的电压差为+(2—6) V表示;逻辑“0”以两线间的电压差为-(2—6)V表示。且该电平与TTL电平兼容,可方便与TTL 电路连接

6.CAN总线

CAN是控制器局域网络(Controller Area Network, CAN)的简称,属于串行通信。

CAN总线提供两个引脚:CAN_H和CAN_L。CAN总线网络主要挂在CAN_H和CAN_L,各个节点通过这两条线实现信号的串行差分传输,为了避免信号的反射和干扰,还需要在CAN_H和CAN_L之间接上120欧姆的终端电阻,但是为什么是120欧姆呢?那是因为电缆的特性阻抗为120欧。

要实现CAN通信,还需要加上一个CAN收发器,CAN收发器的作用是负责逻辑电平和信号电平之间的转换。从CAN控制芯片输出逻辑电平到CAN收发器,然后经过CAN收发器内部转换将逻辑电平转换为差分信号输出到CAN总线上,CAN总线上的节点都可以决定自己是否需要总线上的数据。

CAN 总线是一个广播类型的总线,所以任何在总线上的节点都可以监听总线上传输的数据。也就是说总线上的传输不是点到点的,而是一点对多点的传输,这里多点的意思是总线上所有的节点。

工作原理:在静止状态时,CAN_H和CAN_L的电平一样,没有任何电压差。这个电平称为静电平,一般为2.5V。这个静电平状态就是隐形状态,也称隐形电平,因此在没有任何干扰的状态称为隐性状态。

  当有信号修改时,CAN_H的电压升高,CAN_L的电压降低一个相同值,此时属于显性状态。

  在总线上通常逻辑1通常表示隐形,逻辑0表示显性。通过利用显性的电压差,能够接收信号,通过CAN收发器内部的放大器放大CAN_H和CAN_L的电平差,然后传送到接收区

CAN标准定义了四种消息类型,每条消息用一种叫做比特位仲裁(Arbitration)机制来控制进入CAN总线,并且每条消息都标记了优先权。另外CAN标准还定义了一系列的错误处理机制。

CAN总线采用的"线与"的规则进行总线冲裁。即1&0=0;所以0为显性。

这句话隐含的意思是,如果总线上只要有一个节点将总线拉到低电平(逻辑0)即显性状态,总线就为低电平(逻辑0)即显性状态而不管总线上有多少节点处于传输隐性状态(高电平或是逻辑1),只有所有节点都为高(隐性),总线才为高,即隐性。

在仲裁期间,每一个发送器都对发送的电平与被监控的总线电平进行比较。如果电平相同,则这个单元可以继续发送。如果发送的是一"隐性"电平而监视到的是一"显性"电平,那么这个节点失去了仲裁,必须退出发送状态。如果出现不匹配的位不是在仲裁期间则产生错误事件。

帧ID越小,优先级越高。由于数据帧的RTR位为显性电平,远程帧为隐性电平,所以帧格式和帧ID相同的情况下,数据帧优先于远程帧;由于标准帧的IDE位为显性电平,扩展帧的IDE位为隐形电平,对于前11位ID相同的标准帧和扩展帧,标准帧优先级比扩展帧高。

  1. LAN(局域网)总线

LAN总线是一种用于连接仪器和个人计算机PC的总线之一,主要是指在小范围内的计算机互联网络。

  特点:①覆盖的地理范围较小,只在一个相对独立的局部范围内联,如一座或集中的建筑群内。

②使用专门铺设的传输介质进行联网,数据传输速率高(10Mb/s~10Gb/s)。

③通信延迟时间短,可靠性较高。

④局域网可以支持多种传输介质。

工作原理:计算机与其它设备的LAN通信是通过以太网媒体接入控制器(MAC)和物理接口收发器(PHY)实现以太网的连接的。如果设备间想要通讯,必须要获取到对方的MAC地址,它是一组在生产时就固化的唯一标识号,根据协议规范,当一台计算机要查找另一台计算机时,它必须把目标计算机的IP通过ARP(地址解析协议)在物理网络中广播出去,“广播”是一种让任意一台计算机都能收到数据的数据发送方式,计算机收到数据后就会判断这条信息是不是发给自己的,如果是,就会返回应答,在这里,它会返回自身地址。当源计算机收到有效的回应时,它就得知了目标计算机的MAC地址并把结果保存在系统的地址缓冲池里,下次传输数据时就不需要再次发送广播了,这个地址缓冲池会定时刷新重建,以免造成数据冗余现.

8. USB(通用串行总线)接口

USB是一种支持热插拔的高速串行传输总线,通过差分信号来传输数据。USB协议版本有USB1.0、USB1.1、USB2.0、USB3.1等,USB2.0目前比较常用。由于USB是主从模式的结构,设备与设备之间、主机与主机之间不能互连,为解决这个问题,扩大USB的应用范围,出现了USB OTG,全拼 ON The Go。USB OTG是指同一个设备,在不同的场合下可行在主机和从机之间切换。

  USB2.0一般有四个引脚:VCC,GND,D+,D-.在差分信号为1时,D+>2.8V,D-<0.3V;在差分信号为0时,D->2.8V,D+<0.3V.根据规范,在设备端会有1.5K的上拉电阻,上电后若D+电平为1,则为全速设备,D-电平为1,则为低速设备。

  工作原理:USB有主设备和从设备之分。主设备可以读写,从设备只能被读写。在通信前,要先识别主设备和从设备。当你把一个U盘插到电脑上的时候,电脑的USB接口上会发生一些变化。U盘会把DP(D-)拉高,使DP,DM保持一个J状态(即:DP为高DM为低),电脑主板的USB主机芯片检测到这个J状态(DP(D-)拉高),知道有设备连接上了(这里提到的主机和设备是指连接在USB线两端的USB接口芯片),电脑的驱动会对连接上的这个设备进行识别,我们把它叫做列举,这个过程是为了让电脑知道连接上的这个设备是什么东西(是U盘,还是USB鼠标,还是USB键盘,或是其他的什么)。识别完毕后,通过数据线D+和D-进行数据传输。

因此,当你的USB接口作为从设备时,需要在D+或D-接上拉电阻1.5K,反之,如果你的USB是主机,则需要在D+和D-接下拉电阻15K。

9. GPIB通信

GPIB,即通用总线接口,智能仪器都配有GPIB。

GPIB总线标准接口有16条信号线:

数据线8根(DIO8-DIO1):①既发送数据又传输指令,可以用跟接口管理线的ATN线的状态来确定发送的是指令还是数据。②控制设备之间的双向异步传输,保证数据线发送和接收的信息字节不会发生传输错误。

挂钩线3根(DAV、NRFD、NDAC):

  • NRFD:接收方未做好接收数据的准备(NRFD=1)。
  • DAV:发送方表示发送的数据有效(DAV=1),从数据线上接收数据。
  • NDAC:接收方还没有完成一个多线消息的接收(NDAC=1)。

管理线5根(ATN、IFC、REN、EOI、SRQ):

  • IFC(清接口):控制器复位总线上所有设备接口(IFC=1)。
  • REN(远控使能):控制器允许总线上所有设备进入远程控制状态(REN=1)
  • ATN(注意):控制器指定当前传递的消息为接口消息(ANT=1)还是仪器消息(ANT=0)。
  • EOI(结束确认):发送方表示一组多线消息结束,也用于控制器执行并行点名。
  • SRQ(服务请求):总线上的设备向控制器请求服务(SRQ=1)。

此外还有7根地线,1根屏蔽线。

GPIB接口号:用来标识GPIB接口,可以是GPIB0,GPIB1等等。

GPIB地址:用来标识GPIB设备。同一接口上的GPIB设备必须有唯一的地址,一个GPIB设备的地址由主地址(0-30)和从地址(96-126)组成,大多数设备只使用主地址。

一个由GPIB仪器构成的系统中,都含有控者、听者、讲者三类仪器设置来保证有效的通信联络。

控者:整个系统的协调者,指定仪器成为听者,讲者,负责建立通信连接及向设备发送指令,享有最大权限。通常由计算机担任,且一个GPIB系统中只能够有一个控者。

听者:接收数据。系统中需要听从指令的仪器。可以配置多个听者,允许多个听者同时工作。

讲者:发送数据。某一时刻取得发言权的仪器,通过总线将仪器消息发给指定仪器。一个GPIB系统中的讲者可以有多个,但同一时刻只能有一个讲者进行发号施令。

工作过程:GPIB系统采用广播室通信,讲者在控者没有让它讲之前,处于空闲状态。只要控者寻址到它,讲者将会进入受命状态准备讲。如果控者发出其他设备的讲地址,则该讲者会立即进入空闲状态,放弃讲者身份。设备都有听者功能。

初始时,所有听者处于空闲状态,当控者发出听地址,设备收到听地址才会进入受命状态。讲者先判断所有的听者是否已经准备好接听数据。在所有听者准备好的条件下,讲者才被允许把要广播的数据放置到数据线上去。

然后,讲者向所有听者宣布数据线上数据有效,听者得知数据线上数据有效后才被允许从数据线上接收数据。

接受完毕后,听者通知讲者,讲者收到所有听者接受完毕的指令后,方可从数据线上把数据撤除。

用GPIB芯片设计GPIB接口的效率最高。

GPIB芯片分为可编程和不可编程两种类型。、

可编程GPIB接口芯片功能比较强,大多可实现九种或者十种接口功能。不可编程GPIB接口芯片功能比较弱,主要实现听者讲者的有关功能。

可编程GPIB接口芯片必须与微处理机配合使用,不可编程GPIB接口芯片不需要微处理器,可单独充当GPIB接口。可编程GPIB接口芯片硬件连接比较简单,一部分连接IEC-625总线,一部分连接微处理器。不可编程GPIB接口芯片与IEC-625总线的连接比较简单,另一部分连接到可程控仪器,连接比较复杂,必须根据可程控仪器的类型,配置不同的硬件电路。

标签:学习,总线,通信,电平,---,GPIB,接口,设备
来源: https://blog.csdn.net/qq_35656655/article/details/118822871

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有