低端通信常用通信协议IIC,SPI,UART

任何一个微处理器都包括有一定数量的外设和部件,但如果各个部件都용一组线路与CPU直接相连,连线就太复杂了。为了简化硬件电路设计以及简化系统结构,采用一组线路,配置适当的接口电路,与外设相连接。在整个系统中用到的通信协议可以分为:内部总线、外部总线、系统总线。

内部总线:

微机内部各各外围芯片与处理器之间的总线,用于芯片的一级互联,

系统总线:

微机中各插件板与系统板之间的总线,用于插件板一级的互联,

外部总线:

微机和外部设备之间的总线,用于设备的一级互联。

广义上讲,计算机通信方式可分为并行通信和串行通信,其中串行通信分为异步模式和同步模式两种

 

内部总线:

  1. IIC,用两根线SCL和SDA,只有一根数据线,因此是半双工同步传输协议,有回复信号ACk,指定一次传输的字节数。
  • 写时序
  •  

  • 读时序:
  •  

  • start位:scl高电平的时候,sda出现下降沿;
  • stop位:scl高电平时,sda出现上升沿;
  • 数据传输有效的条件:scl为高电平时,sda保持稳定不变。scl低电平期间,sda才可以变。没传送一个字节的数据后,跟一个低电平0表示应答。控制读写的命令由器件地址的最后一位,0表示主机往从机写数据,反之是读数据。
  1. SPI串行外围设备接口:四根线,CS、MOSI、MISO、CLK同步传输协议,无回复信号,不指定一次传输字节数,
  •  

  • 其数据的传输是由串行同步时钟信号clk控制的。主机产生的CLK一方面控制主机的移位寄存器,另一方面控制从机的移位寄存器。
  • CLK可以设置成不同的极性(CPOL)和相位(CPHA)
  • CPOL用于决定总线空闲的时候,clk的输出是高电平还是低电平,CPOL为零时总线空闲输出高电平,否则输出低电平
  • CPHA用于决定何时进行信号的采样,为1时,在CLK的第二个跳边沿采样;为0是在CLK第一个跳边沿采样。
  1. SCI串行通信接口:是一种通用的异步通信接口
  2. CAN现场总线,可以分布式控制和实时控制,只有两根线与外部互联,且内部集成了错误探测和管理模块

系统总线:

  • ISA、EISA、VESA
  • PCI总线支持突发读写,最大传输速率132MB/s
  • CompactPCI:当前第一个无源总线地板结构的PCI系统

外部总线:

  • RS232-C(物理层的电气接口标准):标准设有25条信号线,包括一个主通道和和一个辅助通道,多数情况下使用主通道,一般采用一个tx,一个rx,一个GND线即可以实现全双工通信。该标准规定驱动电容有2500pF的电容负载,通信距离因此受限,每米的电缆传输距离越小,通信距离越大。而且,RS232属于单端信号传送,存在共地噪声和不能一直共模干扰的问题,因此一般在20m范围内通信。
    •   【uart传输数据的顺序就是:刚开始传输一个起始位,接着传输数据位,接着传输校验位(可不需要此位),最后传输停止位。这样一帧的数据就传输完了。接下来接着像这样一直传送。】
    •   uart:规定编码格式、bit rate 、产生通信所需要的bit流的标准。
    •  

 

    •   rs232与rs485只是规定了电气特性和各个引脚的功能定义,-3V~-15V表示1,+3V~+15V表示0
    •   RS232与TTL传输数据时的时序对比如下:

    •   max3232之类芯片的作用就是把TTL电平转化为RS232电平。SOC芯片输出的通常是TTL可以由芯片之间驱动,转换芯片就是RS232,RS232通常出现在传统的PC和服务器领域,而TTL用于嵌入式设备。
  • RS485传输距离相对大的多10m-1000m左右。RS485属于平衡发送和差分接收。可抑制共模干扰,总线上有高灵敏度的收发器,能检测低电压,因此传输到远处可以恢复。但是是半双工的工作方式,可以实现多点互联,可联网形成分布式系统,其允许最多并联32台驱动器和32台接收器。RS-485的电气特性:逻辑“1”以两线间的电压差为+(2—6)V表示;逻辑“0”以两线间的电压差为-(2—6)V表示。接口信号电平比RS-232-C降低了,就不易损坏接口电路的芯片,且该电平与TTL电平兼容,可方便与TTL电路连接。
  • IEEE-488总线:上述两种外部总线是串行总线,而IEEE-488总线是并行总线接口标准。IEEE-488总线用来连接系统,如微计算机、数字电压表、数码显示器等设备及其他仪器仪表均可用IEEE-488总线装配起来。它按照位并行、字节串行双向异步方式传输信号,连接方式为总线方式,仪器设备直接并联于总线上而不需中介单元,但总线上最多可连接15台设备。最大传输距离为20米,信号传输速度一般为500KB/s,最大传输速度为1MB/s。
  • USB总线:基于通用连接技术,可实现外设的简单快速连接,特点:快速(12Mbps)、通用、可以为外设提供电源。

 

补充IIC、SPI、UART的异同点以及适用场景:

IIC和SPI都是同步传输协议,有时钟信号,一条总线上可以挂多个设备,IIC区分从机是基于器件的地址以及一次传输的数据帧的大小,而SPI是基于片选线区分,但是SPI的速度要快得多在几Mbps-10+Mbps,IIC一般是100kbs、400kbs、1Mbps。IIC的管脚都是开漏输出,需要外接上拉电阻,阻值根据总线速度计算,400kbs时采用2.2k的电阻。

UART不同于上述两种,是一种异步传输,而且速度比较慢,一般低于115200bps。

posted on 2018-05-13 11:45  super_star123  阅读(947)  评论(0)    收藏  举报

导航