于是乎,我们想到了总线,用一个统一的接口协议,设计出一个符合要求的总线,然后将ARM核和各种外设模块挂载在总线上,这样,命令和数据似乎便可以在CPU和外设之间自由穿梭。

1 AMBA总线

AMBA,英文全称为Advanced Microcontroller Bus Architecture,即高级微控制器总线架构。

AMBA的简易发展历史:

  • AMBA 1.0:ASB总线,APB总线

  • AMBA 2.0:ASB总线,APB总线,AHB总线

  • AMBA 3.0:ASB总线,APB总线,AHB总线,AXI总线

AMBA中,APB总线、AHB总线和AXI总线的使用较多,所以进行较为详细的介绍。

1.1 APB总线

1、特点

  • 低速总线,低功耗。
  • 接口简单。
  • 在桥接器中锁存地址信号和控制信号。
  • 适用于多种外设,例如Timer,UART等。
  • 上升沿触发。

2、组成

  • ahb_to_apb(桥接器),可以锁存所有的地址、数据和控制信号,进行二级译码来产生APB从设备选择信号。

  • APB总线上的所有其它模块都是APB从设备。

APB1总线:

(1)定时器TIM2到TIM7;

(2)RTC;

(3)WDT看门狗;

(4)SPI2 、SPI3;

(5)USART2、USART3;

(6)UART4、UART5;

(7)I2C1,I2C2;

(8)USB./CAN共享的512字节SRAM;

(9)bXCAN1、bXCAN2;

(10)后备寄存器BKP;

(11)电源控制PWR;

(12)DAC

APB2总线:

(1)USART1;

(2)高级控制定时器TIM1和TIM8;

(3)模数转换器ADC1、ADC2、ADC3;

(4)SPI1;

(5)外部中断EXTI;

(6)复用IO,AFIO;

(7)通用IO:GPIOA~G;

1.2 AHB总线

1、特点

  • 高速总线,高性能。
  • 可支持多个总线主设备(最多16个)。
  • 支持burst传输。
  • 总线带宽:8、16、32、64、128bits。
  • 上升沿触发。

2、组成

  • AHB主设备(master)。
  • AHB从设备(slave)。
  • AHB仲裁器(arbiter)。
  • AHB译码器(decoder)。

AHB总线连接着PCIE、USB、HDMI、ROM等高速接口设备

1.3 AXI总线

AXI(Advanced eXtensible Interface)是一种总线协议,是AMBA(Advanced Microcontroller Bus Architecture)3.0协议中最重要的部分,是一种面向高性能、高带宽、低延迟的片内总线。它的地址/控制和数据相位是分离的,支持不对齐的数据传输,同时在突发传输中,只需要首地址,同时分离的读写数据通道、并支持Outstanding传输访问和乱序访问,并更加容易进行时序收敛。

AXI总线连接嵌入式处理器、片内RAM、DMA主机、ISP、CODEC等高速设备

AMBA总线架构简介的更多相关文章

  1. AMBA总线基础知识简介

    AMBA:Advanced Microcontroller Bus Architecture,是ARMA公司的片内互联总线协议. 1995 - AMBA1.0 APB外设总线及ASB系统总线发布. 1 ...

  2. AMBA总线介绍

    The Advanced Microcontroller Bus Architecture (AMBA) specification defines an on- chip communication ...

  3. AMBA总线协议AHB、APB

    一.什么是AMBA总线 AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计采用,它规定了AHB (Advanced High-performance Bus).ASB (Advanced ...

  4. AMBA总线协议AHB、APB、AXI对比分析【转】

    转自:https://blog.csdn.net/ivy_reny/article/details/56274412 一.AMBA概述    AMBA (Advanced Microcontrolle ...

  5. Cortex-M0(+)内核的处理器架构简介

    Cortex-M0(+)内核的处理器架构简介 2015年03月02日 16:51:12 阅读数:3158 系统架构 Cortex-M0处理器具有32位系统总线接口,以及32位地址线,即有4GB的地址空 ...

  6. LoadRunner系统架构简介

    1.LoadRunner系统架构简介 LoadRunner是通过创建虚拟用户来代替真实实际用户来操作客户端软件比如Internet Explorer,来向IIS.Apache等Web服务器发送HTTP ...

  7. crtmpserver的架构简介

    crtmpserver的架构简介 一.层 Layers . 机器层 Machine layer . 操作系统层 Operating System Layer   This layer is compo ...

  8. cavium octeon 处理器启动总线Bootbus 简介

    cavium octeon 处理器启动总线Bootbus 简介: 韩大卫@吉林师范大学 Boot-bus(启动总线)是cavium octeon处理器的一种用于启动系统的硬件. CPU通过boot b ...

  9. Extjs6官方文档译文——应用架构简介(MVC,MVVM)

    应用架构简介 Extjs 同时提供对于MVC和MVVM应用架构的支持.这两个架构方式共享某些概念,而且都旨在沿着逻辑层面划分应用程序代码.每种方法在选择如何划分应用组件上都有其各自的优势. 本指南的目 ...

  10. FC总线技术简介

    FC是由美国标准化委员会(ANSI)的X3T11小组于1988年提出的高速串行传输总线,解决了并行总线SCSI遇到的技术瓶颈,并在同一大的协议平台框架下可以映射更多FC-4上层协议.FC具备通道和网络 ...

随机推荐

  1. Jmeter二次开发函数之入门

    背景:Jmeter不能满足我们的参数需求,如生成手机号码.身份证号码等业务,固对jmeter进行二次函数开发. jmeter提供了接口供用户进行二次开发,我们只需引入包进行编辑.从jmeter规范上, ...

  2. SpringBoot配置过滤器、拦截器

    拦截器概述 Spring Boot提供了一种简单且强大的方式来定义和使用拦截器(Interceptor).Spring Boot的拦截器基于Spring框架的拦截器机制,可以在请求的处理过程中插入自定 ...

  3. 家中局域网搭建nas后的一些体验 —— NAS的速率究竟如何计算

    NAS局域网,使用的路由器的有线端口为1000Mbps,无线WiFi速率860Mbps,不过由于不知道是不是因为电脑WiFi接收器型号老旧还是路由器WiFi协议或天线老旧(电脑和路由器均不支持WiFi ...

  4. NVIDIA 2024 GTC大会提出的数字孪生技术 —— 工厂3D仿真与AI大模型结合

    地址: https://www.youtube.com/watch?v=JQdyzQdMRS0 Fusing Real-Time AI With Digital Twins 使用NVIDIA的3D仿真 ...

  5. ubuntu 服务器显示 计算显卡的剩余 显存空间 并执行计划任务

    在Ubuntu服务器上需要运行gpu计算任务,由于需要无人值守的在显存空间满足条件的时候运行程序,于是有了自动显示显存的程序及自动运行任务的程序: 自动显示显存: import os import r ...

  6. 强化学习中atari游戏环境下帧的预处理操作

    在网上找到一个Rainbow算法的代码(https://gitee.com/devilmaycry812839668/Rainbow),在里面找到了atari游戏环境下帧的预处理操作. 具体代码地址: ...

  7. 读论文《IMPALA: Scalable Distributed Deep-RL with Importance Weighted Actor-Learner Architectures》——(续)实验部分

    论文地址: https://arxiv.org/pdf/1802.01561v2.pdf 论文<IMPALA: Scalable Distributed Deep-RL with Importa ...

  8. Sy.ExpressionBuilder 动态查询新体验

    省流模式,看下对比 //常规查询 var query = users .WhereIf(m => m.UserName.Contains(input.UserName), !string.IsN ...

  9. SearXNG与LLM强强联合:打造用户隐私保护的智能搜索解答流程,隐私无忧,搜索无忧

    SearXNG与LLM强强联合:打造用户隐私保护的智能搜索解答流程,隐私无忧,搜索无忧 SearXNG 是一个免费的互联网元搜索引擎,整合了各种搜索服务的结果.用户不会被跟踪,也不会被分析. gith ...

  10. esp32挂esphome

    esp32挂esphome 使用docker创建容器 docker run -d --name='esphome' \ --restart=always \ -p 6052:6052 \ -e TZ= ...