总线主设备
总线事务的发起者。它拥有主动使用权,可以发出读/写指令,不需要别人同意就能启动传输(只要总线上没有冲突)。
总线从设备
总线事务的响应者。它不能主动发起任何操作,只能挂在那里“听候差遣”。当主设备发出的地址正好落在它的地址范围内时,它必须做出响应(交出数据或写入数据)。
| 设备名称 | 挂在什么总线上? | 总线角色(主/从) | 为什么这么分? |
|---|---|---|---|
| CPU | 高速总线(AHB) | 主设备 | 它是大脑,必须高速主动取指令。 |
| DMA | 高速总线(AHB) | 主设备 | 它要搬运大量数据(如ADC波形),必须抢占总线高速搬运,不能等慢速总线。 |
| 内存(RAM/Flash) | 高速总线(AHB) | 从设备 | CPU和DMA都要高速读写它,它只能被动响应,但速度必须快,否则CPU会“饥饿”(等待)。 |
| I2C / UART 控制器 | 低速总线(APB) | 从设备 | CPU(主)通过低速总线写它们的发送寄存器,配置波特率。因为配置是一次性的,不追求高速。 |
| 外部I2C传感器(如MPU6050) | 外部物理线 | 外部从设备 | 这里要注意!芯片内部的I2C控制器(此时作为外部主设备),通过SCL/SDA线去读这个外部传感器(外部从设备)。此时内部低速总线(APB)上的“从设备(I2C控制器)”,在外部物理线上反转成了“主设备”——这就是双层主从的切换。 |