stm32的总线AMBA、AHB、APB.doc

上传人:白大夫 文档编号:3273807 上传时间:2019-08-07 格式:DOC 页数:4 大小:23.50KB
返回 下载 相关 举报
stm32的总线AMBA、AHB、APB.doc_第1页
第1页 / 共4页
亲,该文档总共4页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《stm32的总线AMBA、AHB、APB.doc》由会员分享,可在线阅读,更多相关《stm32的总线AMBA、AHB、APB.doc(4页珍藏版)》请在三一文库上搜索。

1、stm32的总线AMBA、AHB、APBAMBAAMBA(Advanced Microprocessor Bus Architecture)是ARM公司提出的一种开放性的SoC总线标准,现在已经广泛的应用于RISC的内核上了。AMBA定义了一种多总线系统(mulTIlevel busing system),包括系统总线和等级稍低的外设总线。AMBA支持32位、64位、128位的数据总线,和32位的地址总线,同时支持byte和half-word设计。它定义了两种总线: AHB(Advanced High-performance Bus)先进的高性能总线,也叫做ASB(Advanced Syste

2、m Bus)。APB(Advanced peripheral Bus)先进的外设总线AHB和ASB其实是一个东西,是高速总线,主要负责嵌入式处理器、DMA控制器、Memory等等的接口。APB是低速总线,主要负责外设接口AHB和APB之间是通过Bridge(桥接器)链接的Bus Bridges总所周知,一个系统中的各个模块之间相互通信是通过总线,总线的作用,就是把数据和地址从设备A搬运到设备B上,如果说设备A和设备B具有一致性(原文是under discussion,这里我不知道怎么翻译比较好,暂且翻译为一致性),那么设备A和设备B可以直接挂在同一个总线上,并直接解读总线上的数据。但是,如果设

3、备A和设备B不具有一致性,那么设备A和设备B就必须挂在两条不同的总线上,这时候我们就需要一个翻译,把设备A上的总线上的数据和地址转换成设备B可以解析的格式,然后放到设备B的总线上,这个翻译就是Bus Bridge,下面这幅图就形象的说明了Bus Bridge在AHB和APB之间的作用。AHB链接的设备的数据传输速度是比APB设备传输的速度快很多的,也就是说,这里的这个Bus Beidge所起的作用就是缓冲这里可以看到AHB主要是链接在了系统的内核以及存储管理上面的,APB则主要分布给我外设。下面这张图,更容易看出AHB和APB的作用: AHB链接的是系统总线、RAM等等 APB链接的是常用的外

4、设:GPIO、UART等等STM32上的总线结构首先看一下F103系列的芯片的总线结构需要注意的是,这里有两个APB,它们链接的外设是不一样的,所以在STM32的库文件中会有关于APB1和APB2的定义:/*defgroupAPB2_peripheral*/#defineRCC_APB2Periph_AFIO(uint32_t)0x00000001)#defineRCC_APB2Periph_GPIOA(uint32_t)0x00000004)#defineRCC_APB2Periph_GPIOB(uint32_t)0x00000008)#defineRCC_APB2Periph_GPIOC(

5、uint32_t)0x00000010)#defineRCC_APB2Periph_GPIOD(uint32_t)0x00000020)#defineRCC_APB2Periph_GPIOE(uint32_t)0x00000040)#defineRCC_APB2Periph_GPIOF(uint32_t)0x00000080)#defineRCC_APB2Periph_GPIOG(uint32_t)0x00000100)#defineRCC_APB2Periph_ADC1(uint32_t)0x00000200)#defineRCC_APB2Periph_ADC2(uint32_t)0x000

6、00400)#defineRCC_APB2Periph_TIM1(uint32_t)0x00000800)#defineRCC_APB2Periph_SPI1(uint32_t)0x00001000)#defineRCC_APB2Periph_TIM8(uint32_t)0x00002000)#defineRCC_APB2Periph_USART1(uint32_t)0x00004000)#defineRCC_APB2Periph_ADC3(uint32_t)0x00008000)#defineRCC_APB2Periph_TIM15(uint32_t)0x00010000)#defineRC

7、C_APB2Periph_TIM16(uint32_t)0x00020000)#defineRCC_APB2Periph_TIM17(uint32_t)0x00040000)#defineRCC_APB2Periph_TIM9(uint32_t)0x00080000)#defineRCC_APB2Periph_TIM10(uint32_t)0x00100000)#defineRCC_APB2Periph_TIM11(uint32_t)0x00200000)#defineIS_RCC_APB2_PERIPH(PERIPH)(PERIPH)0xFFC00002)=0x00)(PERIPH)!=0x

8、00)/*/*defgroupAPB1_peripheral*/#defineRCC_APB1Periph_TIM2(uint32_t)0x00000001)#defineRCC_APB1Periph_TIM3(uint32_t)0x00000002)#defineRCC_APB1Periph_TIM4(uint32_t)0x00000004)#defineRCC_APB1Periph_TIM5(uint32_t)0x00000008)#defineRCC_APB1Periph_TIM6(uint32_t)0x00000010)#defineRCC_APB1Periph_TIM7(uint32

9、_t)0x00000020)#defineRCC_APB1Periph_TIM12(uint32_t)0x00000040)#defineRCC_APB1Periph_TIM13(uint32_t)0x00000080)#defineRCC_APB1Periph_TIM14(uint32_t)0x00000100)#defineRCC_APB1Periph_WWDG(uint32_t)0x00000800)#defineRCC_APB1Periph_SPI2(uint32_t)0x00004000)#defineRCC_APB1Periph_SPI3(uint32_t)0x00008000)#

10、defineRCC_APB1Periph_USART2(uint32_t)0x00020000)#defineRCC_APB1Periph_USART3(uint32_t)0x00040000)#defineRCC_APB1Periph_UART4(uint32_t)0x00080000)#defineRCC_APB1Periph_UART5(uint32_t)0x00100000)#defineRCC_APB1Periph_I2C1(uint32_t)0x00200000)#defineRCC_APB1Periph_I2C2(uint32_t)0x00400000)#defineRCC_AP

11、B1Periph_USB(uint32_t)0x00800000)#defineRCC_APB1Periph_CAN1(uint32_t)0x02000000)#defineRCC_APB1Periph_CAN2(uint32_t)0x04000000)#defineRCC_APB1Periph_BKP(uint32_t)0x08000000)#defineRCC_APB1Periph_PWR(uint32_t)0x10000000)#defineRCC_APB1Periph_DAC(uint32_t)0x20000000)#defineRCC_APB1Periph_CEC(uint32_t)0x40000000)#defineIS_RCC_APB1_PERIPH(PERIPH)(PERIPH)0x81013600)=0x00)(PERIPH)!=0x00)/*/APB的速率见下面说明:APB1限制在了36MHz,APB2也可以达到全速72MHz下面是F105和F107的总线构架:STM32上APB1和APB2的地址映射

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1