USB

host slave
主设备 从设备
一个 多个
主问 从答
母头(receptacle) 公头(plug)

Universal Serial Bus,即通用串行总线。

半双工 or 全双工:

  • 半双工:USB1.x、USB2.0 因为只有一对差分信号线,所以是半双工。
  • 全双工:USB3.0 进行里改进,增加了 5 根信号线,因此支持全双工。

硬件接口分为三种:

  • 普通 PC 上使用的叫 Type ;
  • 原来功能机时代的接口叫 Mini USB ;
  • 目前 Android 手机使用的叫 Micro USB 。

OTG:

  • On The Go,这是在 USB 2.0 引入的一种 mode ,提出了一个新的概念叫主机协商协议(Host Negotiation Protocol),允许两个设备间商量谁去当 Host 。
  • 当 OTG 插到电脑上, OTG 的角色就是 Slave;当 U 盘超导 OTG 上, OTG 的角色就是 HOST。
  • 手机经常用到 OTG 功能。

中断:

  • 中断是 Host / Slave 设备之间的信令员,Host 所有的要求都是通过这个信令员即中断来通知 Slave 。链接

主问从答:

  • 所有的USB传输,都是从USB主机这一方发起;USB设备没有“主动”通知USB主机的能力。
  • 例子:USB 鼠标滑动一下立刻产生数据,但是它没有能力主动通知PC机来读数据,只能被动地等PC机来读。

Modbus

master slave
主机 从机
一个 多个
主问 从答

一种串行通信协议,施耐德公司于 1979 年为PLC通信而发表。

一个 master (同一时刻) + 多个 slave

SPI

master slave
一个 多个
主问 从答

Serial Peripheral Interface ,即串行外设接口,全双工,四根线。摩托罗拉公司开发的全双工同步串行总线,常用于与EEPROM、ADC、FRAM之类的慢速外设器件通信。

四根线:

引脚 全称 含义
MISO Master Input Slave Output 主设备数据输入,从设备数据输出
MOSI Master Output Slave Input 主设备数据输出,从设备数据输入
SCLK Serial Clock 时钟信号,由主设备产生
CS Chip Select 从设备使能信号,由主设备控制

单向传输时3根线也可以

优点:

  • 普通串行通讯一次连续传送至少 8 位数据,而 SPI 允许数据一位一位地传送,甚至允许暂停,因为 SCLK 时钟线由主控设备控制,当没有时钟跳变时,从设备不采集或传送数据;也就是说,主设备通过对 SCLK 时钟线的控制可以完成对通信的控制。
  • 数据输入线和数据输出线对立,允许同时完成数据的输入和输出,即全双工。
  • 不需要进行寻址操作,通讯高效。(但相应的缺点:每个设备需要独立的使能信号,硬件上比IIC稍微复杂一些)

缺点:

  • 没有应答机制确认是否接收到数据。

IIC

master slave
主机 从机
主问 从答

Inter-Integrated Circuit,其实是 IICBus 简称,所以中文应该叫集成电路总线,它是一种串行通信总线,使用主从架构,由飞利浦公司在1980年代为了让主板、嵌入式系统或手机用以连接低速周边设备而发展。

单双工,需要寻址(7位或10位)。

特点:

  • 发送到 SDA 线上的每个字节必须为 8 位
  • 每次传输可以发送的字节数量不受限制
  • 每个字节后必须跟一个响应位
  • 首先传输的是数据高位(MSB)

两线:

SCL:时钟线

SDA:数据线

1-Wire Bus

美国达拉斯半导体公司(DALLAS)推出的串行总线技术,它采用单根信号线,既传输时钟又传输数据,而且数据传输是双向的。

主机 从机
特定的命令序列 特定的命令序列