历史上的今天
今天是:2024年10月20日(星期日)
2018年10月20日 | stm32中AMBA、AHB、APB总系介绍
2018-10-20 来源:eefocus
AMBA(advanced microcontroller bus architecture )片上总线是由ARM公司推出的。 AMBA规范主要包括了:AHB(Advanced High-performance Bus)系统总线和 APB(Advanced Peripheral Bus) 外围总线。其中,AHB的相互连接采用了传统的带有主模块和从模块的共享总线,接口与互连功能分离,这对芯片上模块之间的互连具有重要意义。AMBA已不仅是一种总线,更是一种带有接口模块的互连体系。
基于AMBA的片上系统
一个典型的基于AMBA总线的系统框图如图3所示。
![[转载]stm32中AMBA、AHB、APB总系介绍 [转载]stm32中AMBA、AHB、APB总系介绍](https://8.eewimg.cn/news/uploadfile/2018/1020/1540035730388860.jpg?imageView2/2/w/550)
大多数挂在总线上的模块(包括处理器)只是单一属性的功能模块:主模块或者从模块。主模块是向从模块发出读写操作的模块,如CPU,DSP等;从模块是接受命令并做出反应的模块,如片上的RAM,AHB/APB 桥等。另外,还有一些模块同时具有两种属性,例如直接存储器存取(DMA)在被编程时是从模块,但在系统读传输数据时必须是主模块。如果总线上存在多个主模块,就需要仲裁器来决定如何控制各种主模块对总线的访问。虽然仲裁规范是AMBA总线规范中的一部分,但具体使用的算法由RTL设计工程师决定,其中两个最常用的算法是固定优先级算法和循环制算法。AHB总线上最多可以有16个主模块和任意多个从模块,如果主模块数目大于16,则需再加一层结构(具体参阅ARM公司推出的Multi-layer AHB规范)。APB 桥既是APB总线上唯一的主模块,也是AHB系统总线上的从模块。其主要功能是锁存来自AHB系统总线的地址、数据和控制信号,并提供二级译码以产生APB外围设备的选择信号,从而实现AHB协议到APB协议的转换。
AHB简介
AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接,作为SoC的片上系统总线,它包括以下一些特性:单个时钟边沿操作;非三态的实现方式;支持突发传输;支持分段传输;支持多个主控制器;可配置32位~128位总线宽度;支持字节、半字节和字的传输。AHB 系统由主模块、从模块和基础结构(Infrastructure)3部分组成,整个AHB总线上的传输都由主模块发出,由从模块负责回应。基础结构则由仲裁器(arbiter)、主模块到从模块的多路器、从模块到主模块的多路器、译码器(decoder)、虚拟从模块(dummy Slave)、虚拟主模块(dummy Master)所组成。其互连结构如图1所示。
![[转载]stm32中AMBA、AHB、APB总系介绍 [转载]stm32中AMBA、AHB、APB总系介绍](https://8.eewimg.cn/news/uploadfile/2018/1020/1540035730887383.jpg?imageView2/2/w/550)
APB简介
APB主要用于低带宽的周边外设之间的连接,例如UART、1284等,它的总线架构不像AHB支持多个主模块,在APB里面唯一的主模块就是APB 桥。其特性包括:两个时钟周期传输;无需等待周期和回应信号;控制逻辑简单,只有四个控制信号。APB上的传输可以用如图2所示的状态图来说明。
![[转载]stm32中AMBA、AHB、APB总系介绍 [转载]stm32中AMBA、AHB、APB总系介绍](https://8.eewimg.cn/news/uploadfile/2018/1020/1540035730518241.jpg?imageView2/2/w/550)
1)系统初始化为IDLE状态,此时没有传输操作,也没有选中任何从模块。
2)当有传输要进行时,PSELx=1,PENABLE=0,系统进入SETUP状态,并只会在SETUP 状态停留一个周期。当PCLK的下一个上升沿时到来时,系统进入ENABLE 状态。
3)系统进入ENABLE状态时,维持之前在SETUP 状态的PADDR、PSEL、PWRITE不变,并将PENABLE置为1。传输也只会在ENABLE状态维持一个周期,在经过SETUP与ENABLE状态之后就已完成。之后如果没有传输要进行,就进入IDLE状态等待;如果有连续的传输,则进入SETUP状态。
在STM32中,连接在APB1(低速外设)上的设备有:电源接口、备份接口、CAN、USB、I2C1、I2C2、UART2、UART3、SPI2、窗口看门狗、Timer2、Timer3、Timer4 。连接在APB2(高速外设)上的设备有:GPIO_A-E、USART1、ADC1、ADC2、ADC3、TIM1、TIM8、SPI1、ALL。
史海拾趣
|
第一次搞嵌入,问几个简单的问题。每次只能100分,就分开问了。问题1 环境是有个bs架构的程序,数据库是oracle10g,需要一个pda做一些辅助工作。 因此,需要开发一个pda上的一个程序,pda操作系统wince5,开发工具vs2005,语言c#,数据库据说只能用sql ce。 每次用pda前,都需要与oracle同步数据,是不是需要做一个p ...… 查看全部问答> |
|
如何读Extended BIOS Data Area还有BIOS read-only memory space 就是如题所说了。。。。。给分大大的 最好是C语言拉。。或者告诉我哪儿有DLL用也行拉… 查看全部问答> |
|
我用tornado2.2/vxworks5.5,配置了Mounted TFFS Filesystem / TrueFFS flash File System,在启动后在应用程序里调用tffsDevCreate(0,0)失败,什么原因?还要做其他工作吗?… 查看全部问答> |
|
请推荐个STM32 或者别的 :有 CAN,UART,至少60个GPIO。。。跑好ucos-ii,最好不要 BGA封装的。呵呵,,,,请问1K片的价格是多少,开发板的价格呢?我初步选了个 STM32F103V8T6 。。。… 查看全部问答> |
|
最近做一个LM3S8962控制的NRF24L01 收发模块,移植了51的代码 结果出现很多问题 论坛里也没找到相关帖子,各位大侠有谁做过这个模块 望不吝赐教 最好有源代码 比较相近的也行 多谢啦!! [ 本帖最后由 CC_心雨 于 2011-4-11 17:23 编辑 ]… 查看全部问答> |
|
大家好,我现在在做DSP2812控制的三相PWM整流双闭环控制控制,在编程的时候我看到很多人都说先要对系统进行标幺化处理,然后再定标变成Q格式数据。我已经知道对一个单个的量怎么样进行标幺化,即就是除以基值,但是现在的问题是对这样一个系统我不 ...… 查看全部问答> |
|
急求Nucleus源码~!~~!! 任务紧急,OMAP3530和blackfin的源码都行哦。。只要操作系统部分就行。。 实在是抓瞎,有木有牛人帮帮忙哦。。。 发个给我吧,lydata@163.com 不胜感激~~~~!!! … 查看全部问答> |
|
本人有两块闲置的ARM 开发板(LM3S811 ),其中一块全新袋子还没打开,准备转让。有意者可以q我 821081701 以下是详细介绍 TI原装,超低价你就可以拥有ARM CORTEX M3,价格比单片机还要便宜。板载仿真器 TI 原装开发 ...… 查看全部问答> |




