AMBA总线—apb简介

接口/总线/驱动

1139人已加入

描述

1

APB历史版本介绍

APB(Advanced Peripheral Bus),外围总线的意思。该总线协议是ARM公司提出的AMBA总线结构之一,几乎已成为一种标准的片上总线结构。几个版本差异如下:

AMBA 2 APB Specfication:定义最基本的信号interface, 读写transfer, APB bridge, APB slave.

AMBA 3 APB:增加定义信号PREADY, PSLVERR来完成对wait state和Error reporting的功能。

AMBA 4 APB:增加定义信号PPROT, PSTRB来支持secure, supervisor和sparse data transfer的功能。

2

APB协议简介

APB属于AMBA 协议系列,它提供了一个低功耗的接口, 并降低了接口的复杂性。APB接口用在低带宽和不需要高性能总线的外围设备上。APB是非流水线结构,所有的信号仅与时钟上升沿相关,这样就可以简化APB外围设备的设计流程,每个传输至少耗用两个周期。APB主要用于低带宽的周边外设之间的连接,例如UART、I2C等,其特性包括:

  • 两个时钟周期传输;
  • 无需等待周期和回应信号;
  • 控制逻辑简单,只有四个控制信号。

APB上的传输可以用状态图来说明:

UART接口

a) 系统初始化为IDLE状态,此时没有传输操作,也没有选中任何从模块。

b) 当有传输要进行时,PSELx=1,PENABLE=0,系统进入SETUP状态,并只会在SETUP 状态停留一个周期。当PCLK的下一个上升沿时到来时,系统进入ENABLE 状态。

c) 系统进入ACCESS状态时,维持之前在SETUP 状态的PADDR、PSEL、PWRITE不变,并将PENABLE置为1。传输也只会在ACESS状态维持一个周期,在经过SETUP与ACCESS状态之后就已完成。之后如果没有传输要进行,就进入IDLE状态等待;如果有连续的传输,则进入SETUP状态.

3

APB信号描述

APB支持最大32-bit的数据位宽,下表给出了APB的信号:

UART接口

除了上表的信号外,APB还有两个信号接口:

PPROT: 保护类型,分为 normal, privileged, secure, data/instruction 访问。

PSTRRB: 写选通信号,指示哪个字节是有效的数据,PSTRB与PWDATA之间的关系为PSTRB[n] <--> PWDATA[(8n+7):(8n)]。

4

APB 写传输

写传输包括两种类型:无等待状态和有等待状态

下图显示了一个基本的无等待状态的写传输。

UART接口

地址、写入数据、写入信号和选择信号都在时钟上升沿后改变。第一个时钟周期叫做Setup phase。下一个时钟沿后使能信号PENABLE被置位,表示Access phase就位。地址、数据和控制信号在Access phase期间有效。传输在该周期后结束。使能信号PENABLE, 在传输结束后清空。选择信号PSELx同样被置低,除非紧接着下一传输开始。

下图显示了一个基本的有等待状态的写传输

UART接口

5

APB读传输

读传输也包括两种类型:无等待状态和有等待状态。

下图显示了一个读传输的无等待状态的时序图:

UART接口

下图显示了信号是如何扩展传输的。如果在Access phase期间PREADY信号拉低,则传输被扩展。但下述信号不变:

  • 地址:PADDR
  • 写信号:PWRITE
  • 选择信号:PSEL
  • 使能信号:PENABLE.

图中显示了如何使用PREADY信号来添加两个周期,你也可以添加数个周期。

UART接口

6

错误响应

使用PSLVERR来指示APB传输错误。当PSEL, PENABLE以及PREADY 都为高时,PSLVERR才在最后一个周期进行判断。当任何一个PSEL, PENABLE或者PREADY为低时,你可以将PSLVERR拉低,这是推荐,并不是强制要求。收到一个错误后,可能或不可能改变外围器件的状态。 APB外围设备不要求必须支持PSLVERR引脚,当不使用该引脚时,应被置低。

下图显示了一个写传输失败的时序图

UART接口

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分