APB总线简单介绍

APB总线简单介绍

2023年7月4日发(作者:)

APB总线简单介绍APB(Advance Peripheral Bus)是AMBA总线的⼀部分,从1998年第⼀版⾄今共有3个版本。AMBA 2 APB Specfication:定义最基本的信号interface, 读写transfer, APB bridge, APB 3 APB:增加定义信号PREADY, PSLVERR来完成对wait state和Error reporting的功能。AMBA 4 APB:增加定义信号PPROT, PSTRB来⽀持secure, supervisor和sparse data transfer的功能。APB简介APB(Advanced Peripheral Bus),外围总线。APB属于AMBA 3 协议系列,它提供了⼀个低功耗的接⼝, 并降低了接⼝的复杂性。APB接⼝⽤在低带宽和不需要⾼性能总线的外围设备上。 APB是⾮流⽔线结构,所有的信号仅与时钟上升沿相关,这样就可以简化APB外围设备的设计流程,每个传输⾄少耗⽤两个周期。APB可以与AMBA⾼级⾼性能总线(AHB-Lite) 和AMBA ⾼级可扩展接⼝ (AXI)连接。APB主要⽤于低带宽的周边外设之间的连接,例如UART、1284等,它的总线架构不像AHB⽀持多个主模块,在APB⾥⾯唯⼀的主模块就是APB 桥。其特性包括:两个时钟周期传输;⽆需等待周期和回应信号;控制逻辑简单,只有四个控制信号。APB上的传输可以⽤状态图来说明。Operating statesa) 系统初始化为IDLE状态,此时没有传输操作,也没有选中任何从模块。b) 当有传输要进⾏时,PSELx=1,PENABLE=0,系统进⼊SETUP状态,并只会在SETUP 状态停留⼀个周期。当PCLK的下⼀个上升沿时到来时,系统进⼊ENABLE 状态。c) 系统进⼊ENABLE状态时,维持之前在SETUP 状态的PADDR、PSEL、PWRITE不变,并将PENABLE置为1。传输也只会在ENABLE状态维持⼀个周期,在经过SETUP与ENABLE状态之后就已完成。之后如果没有传输要进⾏,就进⼊IDLE状态等待;如果有连续的传输,则进⼊SETUP状态。信号描述下表给出了APB的信号。APB的⽀持最⼤32-bit的数据位宽。APB协议有两个独⽴的数据通道,读通道和写通道,由于APB的两个通道没有⾃⼰的handshake信号(vaild/ ready),因此两个通道不会同时使⽤。APB signal descriptions除了上表的信号外,APB还有两个信号接⼝:PPROT: 保护类型,分为 normal, privileged, secure, data/instruction 访问。PSTRRB: 写选通信号,指⽰哪个字节是有效的数据,PSTRB与PWDATA之间的关系为PSTRB[n] <--> PWDATA[(8n+7):(8n)]传输写传输写传输包括两种类型:⽆等待状态和有等待状态⽆等待状态下图显⽰了⼀个基本的⽆等待状态的写传输。Write transfer with no wait states地址、写⼊数据、写⼊信号和选择信号都在时钟上升沿后改变。第⼀个时钟周期叫做Setup phase。 下⼀个时钟沿后使能信号PENABLE被置位,表⽰Access phase就位。地址、数据和控制信号在Access phase期间有效。传输在该周期后结束。使能信号PENABLE, 在传输结束后清空。 选择信号PSELx同样被置低,除⾮紧接着下⼀传输开始。有等待状态下图展⽰了 PREADY 信号是如何扩展了从器件的传输。Write transfer with wait states在Access phase期间,当PENABLE为⾼,传输可以通过拉低PREADY来扩展传输。下述信号仍旧不变:· 地址: PADDR· 写信号: PWRITE· 选择信号: PSEL· 使能信号:PENABLE· 写⼊的数据: PWDATA.

读传输读传输包括以下两种类型:⽆等待状态和有等待状态⽆等待状态

下图显⽰了⼀个读传输的⽆等待状态的时序图。从器件必须在读传输结束前提供数据。Read transfer with no wait states有等待状态下图显⽰了信号是如何扩展传输的。如果在Access phase期间PREADY信号拉低,则传输被扩展。但下述信号不变:· 地址: PADDR· 写信号: PWRITE· 选择信号: PSEL· 使能信号: PENABLE.图中显⽰了如何使⽤PREADY信号来添加两个周期,你也可以添加数个周期。

Read transfer with wait states错误响应错误响应使⽤PSLVERR来指⽰APB传输错误。当PSEL, PENABLE以及PREADY 都为⾼时,PSLVERR才在最后⼀个周期进⾏判断。 当任何⼀个PSEL, PENABLE或者PREADY为低时,你可以将PSLVERR拉低,这是推荐,并不是强制要求。 收到⼀个错误后,可能或不可能改变外围器件的状态。 APB外围设备不要求必须⽀持PSLVERR引脚,当不使⽤该引脚时,应被置低。写传输失败的例⼦。Example failing write transfer读传输同样可以使⽤错误响应,下图便是⼀个错误响应的例⼦

PSLVERR映射:AXI桥接到APB: AXI的RRESP/BRESP = APB的SLVERR(read: PSLVERR -> RRESP[1], write: PSLVERR -> BRESP[1])AHB桥接到APB: PSLVERR被映射到HRESP = ERROR(PSLVERR -> HRESP[0])

操作状态下图给出了 APB的操作流程State diagram状态机按照下⾯的状态执⾏:IDLE 这是默认的APB状态SETUP 当传输被请求时,总线进⼊SETUP状态,选择信号 PSELx,被置位。总线仅在SETUP 状态停留⼀个时钟周期,并在下⼀个时钟周期进⼊ACCESS状态ACCESS 使能信号PENABLE, 在ACCESS状态中置位。在传输从SETUP状态到ACCESS状态转变的过程中address, write, select和write data信号必须保持不变。从ACCESS状态退出,由从器件的PREADY 信号控制:a) 如果PREADY 为低,保持ACCESS状态。b)如果PREADY 为⾼,则退出ACCESS状态,如果此时没有其它传输请求,总线返回IDLE状态,否则进⼊SETUP状态。

发布者:admin,转转请注明出处:http://www.yc00.com/news/1688436261a137555.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信