AHB_Lite和APB总线入门

AHB_Lite和APB总线入门

1. 概述

AHB总线(the Advanced High-performance Bus)和APB总线(the Advanced Peripheral Bus)由ARM公司研发的AMBA(Advanced Microcontroller Bus Architecture)片上总线协议定义。其中AHB总线主要应用于高性能、高时钟频率的系统模块;而APB总线主要用于低带宽的周边外设之间的连接,例如UART等外设。

在一些非常简单的系统中,主要使用的是AHB-Lite总线(以下简称为AHB总线)和APB总线,其中Cortex-M0作为AHB总线的主机,来对AHB总线上的其他从机进行控制。系统中的一部分外设作为APB总线的从机,由APB总线的主机——AHB-APB桥来控制,而AHB-APB桥又作为AHB的从机,由CPU控制。这样CPU就通过AHB总线和APB总线控制了整个系统。

2. AHB-Lite总线

2.1 通信流程简述

如图,是一个由一个主机和三个从机组成的系统,描述了一个经典的主机对从机的读写过程。其中为了实现AHB协议,还添加了Decoder地址译码器模块和Multiplexor从机选择器模块。
在这里插入图片描述
当主机需要和从机通信时,输出写数据信号HWDATA和地址信号HADDR,并直接连接至从机;但是从机还需要被告知这些信号是否有效,即还需要一个HSEL信号;主机的地址信号HADDR在传入从机的同时,还传入了地址译码器,地址译码器根据事先配置好的各个从机在内存的地址映射,由当前的HADDR输出得到相应的HSEL输出,从而实现对当前时刻的从机进行选择,这样就完成了AHB主机到从机的通信。

从机执行指令完毕后,需要对主机返回数据。但每一个从机都有一个属于自己的读信号HRDATA,而主机需要知道哪一个外设的HRDATA才是当前时刻所需要的。而Multiplexor从机选择器就利用Decoder地址译码器的HSEL信号来对多路HRDATA中进行选择,最终返回给AHB主机。

2.2 各模块信号定义

在这里插入图片描述
在这里插入图片描述
如图,是一对标准的AHB-Lite信号。主要可以分为四部分:

  1. 全局信号,即复位和时钟信号。
  2. 地址和控制信号,用来标明当前的传输地址和传输类型。
  3. 数据信号,即写信号HWDATA和读信号HRDATA。
  4. 传输响应信号,即就绪信号HREADY和回应信号HRESP

主机信号

信号名称信号描述
HADDR[31:0]32-bit地址总线
HBURST[2:0]突发信号。表明当前的传输类型是单次传输还是突发传输。
HMASTLOCK主机锁定信号。向从机指示当前的传输是不可分割的。通常在多主机时使用此信号。
HPROT[3:0]保护信号,用来定义存取的型态与特性,需要从机支持。
HSIZE[2:0]表示数据的传输大小。如b000表示8-bit传输,b010表示32-bit传输。
HTRANS[1:0]表明当前的传输类型。IDLE/BUSY/NONSEQUENTIAL/SEQUENTIAL。
HWDATA[31:0]写数据信号。
HWRITE写信号。0:读。1:写。

从机信号

信号名称信号描述
HREADY就绪信号,表明当前传输是否结束。
HRESP回应信号,表明当前传输是否成功。
HRDATA[31:0]读数据信号。

2.3 基本传输流程

一次AHB-Lite传输包含两段,分别是地址传输和数据传输。以地址传输段作为开始,占一个时钟周期,接下来进入数据传输段,可能需要一个或多个时钟周期,并用HREADY信号表明本次传输结束。

在这里插入图片描述
如图表示了一次主机读的过程。在Address phase本次传输开始,传入地址信号HADDR和写信号HWRITE(为低,表示为读指令),在下一个HCLK进入Data phase,从机将主机所需要的读数据放到HRDATA读数据信号,并拉高HREADY表明本次传输结束。
在这里插入图片描述
如图表示了一次主机写的过程。其流程和上面读过程类似,在Address phase,写信号HWRITE拉高表明写指令,在Data phase将要写的数据放入HWDATA写数据信号,同时从机将HREADY拉高表明本次传输结束。
在这里插入图片描述
有时从设备并不能在第一个Data phase就响应从机,并且需要从机去等待。如图,在HADDR为B时,从机在第一个Data phase并没有拉高HREADY,主机就需要等待直至HREADY拉高释放总线。

3. APB总线

APB总线的主机一般是AHB-APB桥,从机一般是低速外设。首先AHB-APB桥作为AHB总线的外设,收到CPU写入的控制信号后,同样利用地址译码器产生PSELx信号来对APB总线下的外设进行选择,得到响应后,再将数据返回AHB总线,由AHB主机接收。

3.1 模块信号定义

APB通信方式和AHB-Lite类似,相对而言删去了复杂的控制信号,逻辑更为简洁。
APB总线信号

信号名称信号描述
PADDR32-bit地址总线
PSELx从机选择信号
PENABLE有效信号
PWRITE写有效信号
PWDATA写数据信号
PREADY从机就绪信号
PRDATA读数据信号
PSLVERR从机传输失败信号

3.2 基本传输流程

在这里插入图片描述
在这里插入图片描述
如图是基本的无等待写传输和读传输过程。在第一个PCLK叫做setup phase,由地址信号PADDR和写信号PWRITE进入本次传输;在下一个PCLK叫做access phase,需要保证PENABLE拉高,表明数据和控制信号有效。从机拉高PREADY,表明本次传输结束。

在这里插入图片描述
对于有等待传输,在第一个PCLK进入Setup phase,在第二个PCLK进入Access phase,但此时从机并没有立即将PREADY拉高,这样主机就需要等待PREADY,PSEL信号和PENABLE信号需要继续保持有效,直到从机拉高PREADY表明本次传输结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值