| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 嵌入式 -> ARM AMBA AHB-LITE协议理解 -> 正文阅读 |
|
[嵌入式]ARM AMBA AHB-LITE协议理解 |
1.AHB总线的特性 主要包括四点:burst 传输,单时钟沿,非三态实现和支持的数据位宽为8/16/32/64/128一直到1024位,但是受限于cpu的总线位宽,如果是32位,则最多支持32位宽,关于Burst传输的含义从别处看到的,如下: Burst传输实质就是只发送一次地址,某些总线发送每个数据都要对应发送其地址。但是Burst传输就是提高了传输效率,在一次传输过程中,只发送一次地址。 但burst传输有应用限制,不是所有传输类型都适合burst传输,一般busrt传输应用在下面三种场景: Flash应用类型 Cache应用类型 FIFO应用类型 2.AHB总线的基本框架图 图中,decoder为一个译码器,主要用于监控从主设备出来的地址数据和控制信号,给到从设备;multiplexor select为多路选择器,用于将从设备的输出数据反馈给主设备; AHB一般用于与需要高带宽的存储设备进行通信,如果一般外设寄存器或者IO的通信通过APB桥挂到AHB上。 3.AHB总线的操作 主设备通过驱动地址和控制信号来发起一个传输. 这些信号提供了传输地址、传输方向、传输位宽的信息,并且指示是否是Burst传输的一部分. 传输可以是: 4.多层AHB总线 ? ? ? ? 多层AHBlite主要是在面对多主的时候进行主访问隔离并能够共享slave,这里对multi-layer interconnect的仲裁有要求,个人认为当多主同时访问slave的时候策略,会影响效率。 5.AHB总线的传输信号 ? ? ? ? AHB信号包括全局信号、MASTER信号、SLAVE信号、译码器信号和多路器信号,直接从ahb的官方手册中将信号定义截取,如下: 5.1全局信号 5.2MASTER信号 5.3 SLAVE信号 ? 5.4 译码器信号 ? 5.5 多路器信号? ? 6.AHB的传输 ? ? ? ? ?ahb的传输时许需要的时候可以去查手册,这里阅读之后,总结了一些注意点: ? ? ? ? 1.如果Master要求锁定访问,则它必须置位HMASTLOCK信号,这个信号指示给所有 ? ? ? ? 2.如果总线位宽32,则传输size只能配置程8、16和32. ? ? ? ? 3.HSIZE信号和HBURST信号关联起来,决定了回卷Burst传输的地址边界 7.AHB的总线地址译码 ????????中央地址译码器提供选择信号, HSELx,给总线上每一个Slave. 选择信号是地址总线高位的组合逻辑译码. 鼓励使用简单的地址译码电路而不是复杂译码逻辑,以确保高速操作.Slave必须只能在HREADY为高电平(表示当前传输已经完成)时,采样HSELx,地址和控制信号. 在某种情况下,有可能HSELx在HREADY为低电平时置位为高,但是必须在当前传输完成时改变选中的Slave. 8.AHB总线的slave传输 ????????在Master开始一个传输之后, Slave控制这个传输的进程. Master不能取消已经开始的传输,当Slave被访问时,必须提供响应,来指示传输的状态. 传输状态由HRESP信号提供. ????????这意味着Slave可以用以下三种方式完成总线传输: 9.AHB的数据总线 ? ? ? ? 数据总线的位宽会影响系统的性能,当时钟频率固定的时候,可以适当提高总线的位宽来提高传输速率,官方给出了三种情形下的描述: ????????在宽总线上实现窄位宽的 Slave ? ? ? ? 具体参考官方手册。 10.时钟和复位 ????????每个AHB-Lite组件使用一个单独的时候信号, HCLK. 所有的输入信号都在HCLK的上升沿采样. 所有的输出信号的改变都必须在HCLK的上升沿后发生. ????????复位信号, HRESETn,是AHB-Lite系统中仅有的低有效信号,它是总线所有元素 ? ? |
|
嵌入式 最新文章 |
基于高精度单片机开发红外测温仪方案 |
89C51单片机与DAC0832 |
基于51单片机宠物自动投料喂食器控制系统仿 |
《痞子衡嵌入式半月刊》 第 68 期 |
多思计组实验实验七 简单模型机实验 |
CSC7720 |
启明智显分享| ESP32学习笔记参考--PWM(脉冲 |
STM32初探 |
STM32 总结 |
【STM32】CubeMX例程四---定时器中断(附工 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 3:50:58- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |