
本文用来总结在学习过程中碰到的APB总线问题针对APB总线的IP模块进行了一部分的学习总结以下内容不一定正确若有意见欢迎评论讨论。CoreAPB3功能总线接口CoreAPB3提供了与APB总线进行通信的接口使得处理器可以通过APB总线对各种外设进行配置和数据交互。外设连接它作为外设IP核与处理器之间的桥梁允许将多个外设模块如UART、GPIO、SPI等连接到处理器实现系统级的功能集成。数据传输控制负责管理和控制数据在处理器与外设之间的传输包括数据的读写操作、地址译码等确保数据的正确传输和处理。时钟和复位管理对连接到APB总线的外设进行时钟和复位信号的管理保证外设在正确的时钟域和复位状态下工作。作用作为总线接口IP核在基于FPGA的系统中CoreAPB3可以作为一个关键的总线接口IP核方便地将各种外设IP核集成到系统中实现与处理器的高效通信。提高系统集成度通过使用CoreAPB3可以将多个外设模块连接到同一个APB总线上从而提高系统的集成度和资源利用率减少硬件设计的复杂度。简化系统设计它提供了一种标准化的接口方式使得外设模块的设计和集成更加简单和规范降低了系统设计的难度和开发周期。便于系统扩展和维护由于CoreAPB3遵循APB总线协议当需要添加新的外设或对现有外设进行升级时只需按照APB协议进行相应的配置和修改而无需对整个系统进行大规模的改动提高了系统的可扩展性和可维护性。应用场景FPGA开发在FPGA项目中当需要将多个外设与处理器连接时CoreAPB3可以作为一个高效的总线接口解决方案实现系统的快速搭建和功能集成。嵌入式系统在嵌入式系统设计中CoreAPB3可用于连接微控制器MCU或微处理器MPU与各种外设如传感器、存储器、通信模块等构建完整的嵌入式应用系统。SoC设计在系统级芯片SoC的设计中CoreAPB3可以作为内部总线的一部分用于连接处理器核心与片上外设实现片上系统的高效通信和资源管理基本原理APBAdvanced Peripheral Bus总线是一种用于连接和管理微控制器或系统芯片SoC中的低速外设的简单总线协议。CPU和外设之间通过APB总线进行交互的过程可以分为以下几个阶段1. 地址阶段Address Phase主设备发起请求CPU作为APB主设备首先确定要访问的外设从设备以及具体的寄存器地址。这个地址是通过APB总线的地址总线PADDR传输的。选择从设备APB总线上的所有从设备都会接收到这个地址信号但只有地址匹配的从设备会被选中。选中的从设备通过片选信号PSEL被激活。设置控制信号CPU还会通过控制信号如PWRITE表明是读操作还是写操作。2. 数据阶段Data Phase写操作如果是写操作CPU将数据放在数据总线PDATA上并通过PWRITE信号指示这是一个写操作。被选中的从设备在接收到数据后会将其存储到指定的寄存器中。从设备通过PROT信号确认接收到了数据。读操作如果是读操作CPU通过PWRITE信号指示这是一个读操作。被选中的从设备将指定寄存器中的数据放到数据总线PDATA上。CPU从数据总线上读取数据并通过PROT信号确认接收到了数据。3. 确认阶段Transfer Termination传输完成当数据传输完成后从设备会通过PREADY信号通知CPU数据已经准备好对于读操作或者已经接收到数据对于写操作。释放总线CPU在确认传输完成后会释放总线以便其他设备可以使用总线进行通信。示例过程假设CPU要读取一个连接到APB总线上的UART外设的接收缓冲寄存器中的数据地址阶段CPU将UART外设的接收缓冲寄存器的地址放在地址总线上并通过PSEL信号选中UART外设同时设置PWRITE信号为读操作。数据阶段UART外设将接收缓冲寄存器中的数据放到数据总线上CPU从数据总线上读取数据。确认阶段UART外设通过PREADY信号通知CPU数据已准备好CPU确认接收后释放总线。整个过程确保了CPU能够高效、准确地与外设进行通信完成数据的读写操作。如何使用1. 首先介绍配置内容2. 若我们把slot combine在一起设置完之后会以slot16的形式呈现出来3. 每个slot的地址是什么呢如何使用并使用这几个分区呢当我们需要使用35 7 的slot的时候。我们就在上图进行勾选然后在MCU的代码体现这些地址这样我们的APB SLAVE才能和master正式连接在一起。具体slot地址如下代码示例比如slot3 就是以下的基地址我们的我们设定这个基地址为CoreGPIO因此我们外设偏移量为eg总结APB就是连接外设和MCU的桥梁我们通过APB 总线可以实现外设FPGA模块和MCU的通信连接当我们需要读写寄存器的时候通过APB就可以简单轻松的访问外设。