📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载注明出处
单片机总线是连接单片机各部件的 “桥梁”,是数据、地址和控制信息传输的通道
分类 | 总线类型 | 功能描述 | 特点 | 宽度 | 传输速率 |
---|---|---|---|---|---|
系统总线 | 数据总线 | 在CPU、存储器、I/O接口等部件间传输数据 | 双向传输 | 8位、16位、32位等 | - |
地址总线 | 指定数据来源或去向的地址 | 单向传输,由CPU发出地址信号 | 8位、16位、32位等 | - | |
控制总线 | 传输控制信号,协调各部件操作 | 双向传输,包含CPU发出的控制信号和部件反馈的状态信号 | 根据控制信号数量而定 | - | |
片内串行总线 | 内部I²C总线 | 连接片内I²C接口设备,实现设备间通信和数据交换 | 二线制同步串行,支持多主设备,通过设备地址识别 | - | 标准模式100kbps、快速模式400kbps、高速模式3.4Mbps |
内部SPI总线 | 连接片内高速外设,实现高速数据传输 | 高速、全双工、同步串行,支持多从设备 | - | 较快,能满足高速数据交换需求 | |
AMBA总线架构 | APB总线 | 连接GPIO、定时器、看门狗等低速外设 | 结构简单、成本低,单周期数据传输 | 通常32位 | - |
AHB总线 | 连接高性能系统模块,如CPU、DMA控制器等 | 高速传输,支持突发传输;多主设备支持;低延迟 | 常见32位或64位 | 高 |
顺便介绍下AHB到APB的桥,AHB2APBx
1、AHB 和 APB 具有不同的协议和特性。AHB2APBx 桥能够将 AHB 的协议转换为 APB 的协议,使得连接在 APB 上的设备能够与连接在 AHB 上的高性能模块进行通信。
2、在系统架构中,所有的 APB 设备都通过 AHB2APBx 桥与 AHB 总线相连。这意味着无论是 UART、I2C 等各种不同类型的 APB 外设,都可以通过这个桥接器挂接到 AHB 总线上,从而实现与其他高性能模块(如 CPU、DMA 等)的通信,使得整个系统的架构更加清晰和灵活,方便了不同速度和功能的模块之间的协同工作。以 STM32 芯片为例,在其架构中就存在 AHB2APBx 桥,它将 APB1 和 APB2 总线上的各种外设(如定时器、串口等)与 AHB 总线连接起来,实现了内核与这些外设之间的通信。
其次,APB1和APB2的速率通常是不一样的
在一些单片机(如 STM32 系列)中,APB1 通常用于挂载低速外设,其时钟频率相对较低,一般为 36MHz。而 APB2 则用于挂载高速外设,它的时钟频率相对较高,通常为 72MHz。这样的设计是为了满足不同外设对时钟频率的不同要求,以优化系统性能和功耗。
ICode、DCode、System Bus都是AHB总线系统中的一部分,通过总线矩阵(Bus matrix)等结构与其他AHB总线组件相连,实现数据的高效传输和系统的协调工作。例如,在Cortex-M3微控制器中,这些总线通过一个多级的AHB总线构架相互连接,共同构成了系统的数据传输通道。
总线名称 | 功能与角色 | 地址范围 | 总线宽度 | 遵循协议 |
---|---|---|---|---|
ICode | ICode总线负责从存储器中获取指令并将其传输给CPU执行 | 0x0000_0000 - 0x1FFF_FFFF | 32 位 | AHB-Lite 总线协议 |
DCode | DCode总线则根据指令的需求,负责将指令所需的数据从存储器传输到CPU进行处理 | 0x0000_0000 - 0x1FFF_FFFF | 32 位 | AHB-Lite 总线协议 |
System Bus | System Bus则承担着更广泛的数据传输任务,确保系统各部分之间的数据交互顺畅 | 0x2000_0000 - 0xDFFF_FFFF 和 0xE010_0000 - 0xFFFF_FFFF | 32 位 | AHB-Lite 总线协议 |