AMBA总线笔记1-APB设计要点

1.APB2框架

        APB是一种低功耗、低速度外设总线,主要用于连接外围设备和低速外设,如定时器、GPIO(通用输入输出)、串口控制器等。因其低功耗和相对简单的设计,适合于对性能要求不高的外设连接。

        在实际的SOC架构中,APB往往就以以下形式出现:

        AHB总线负责核心的CPU、DMA等需要高频高带宽的模块,APB总线负责TIMER、WDT、外设等对速度需求较低、功耗较小的设备。由于不同的定位,APB架构相较AHB来说也简单了不少,最大的不同体现在APB仅有一个master(AHBLite也是),因此省去了对多个master进行仲裁的arbiter模块。APB整体模块的逻辑和信号也更为简单清晰,要做到能将master、slave部分的输入输出清晰地在脑子中构建出来:

图源自:AMBA总线—APB总线协议详解_amba总线apb-CSDN博客

APB的状态机转换图为:

2.APB3,APB4

        以上介绍的均为APB2协议,后来又推出了APB3和APB4,在原协议基础上增加了一些信号使得整体更加完善。

2.1APB3

        相较APB2,加入了PREADYPSLVERR。这两个信号很好理解:slave通过PREADY信号直接告诉master现在slave已经READY了,可以接受读写操作,如果此时不READY,那么master就要wait直到PREADY拉高,类似于AHB协议中的HREADY信号。PSLVERR则是提供了Slave反馈给master error response功能,但它只会在传输的最后一拍有效,低电平表示无误,高电平表示有误。

2.2APB4

        APB3的基础上,APB4又加入了两个信号:PSTRB、PPORT。PSTRB提供了写数据总线上的稀疏传输功能。每一位PSTRB对应写数据总线上的1byte。32bit信号需要4位PSTRB。也就是说假如0-23位bit都为0,PSTRB就会置为1000.

        PPORT是一个3位宽的信号,内容表示如下:

3.question

1.状态机进入setup后下一拍就会进入enable,好像PENABLE信号没有存在的必要?

        对于时序电路来说确实如此,PENABLE不是必需,但对于组合电路需要PENABLE指示处于setup状态还是enable状态,类似打拍时的边沿检测。

        setup = !penable&&psel

        enable = penable &&psel 

2.APB4协议中为什么需要PPORT信号?

        对于CPU而言,可以工作在用户模式下也可以工作在特权模式下,可以工作在安全模式或非安全模式下。因为系统现在越来越复杂,一些外设也要求只能在安全模式下或者特权模式下访问。所以PPROT信号主要就是为了表示当前的这个访问是否安全,从而和整个系统的security保持一致。

3.使用中具体该选择哪个APB协议

        APB2没有PREADY,也就是slave必须要及时响应,但是使用APB的模块基本都是慢速设备,有可能无法及时响应,因此APB2被淘汰了,很少使用。

        APB3适用于以AHB2,AHB-lite为基础的bus系统,这些系统中没有安全模式选通模式一说,因此没必要使用APB4。

        APB4适用于以AHB5,AXI为基础的bus系统中,因为他们都有安全模式,而且AXI是支持write选通的,所以这时候选择APB4比较好。

4.APB时钟频率一般是多少?

        APB一般情况下都是对寄存器的访问,或者接触一些慢速的外设SPI,I2C,WDT时才会使用,所以完全没必要使用很快的频率,一般在5MHz到50MHz之间,当然具体还要取决于应用场景。APB的外设一般挂在AHB2APB,或者AXI2APB的bridge上,AHB/AXI的的频率较高,一般情况下,APB时钟频率是AHB/AXI时钟频率的n分频。

        具体定义芯片spec时,需要确定外设的带宽,然后再确定APB的时钟频率。外设中传输最快的是全双工的SPI。以32bit总线举例,如果SPI达到32mbps的速度,此时APB时钟频率则不能低过1Mhz,显然要达到这样的时钟频率还是非常容易。

        

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值