主从设备
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)推出的串行总线技术,它采用单根信号线,既传输时钟又传输数据,而且数据传输是双向的。
主机 | 从机 |
---|---|
特定的命令序列 | 特定的命令序列 |