小窥APB协议SPEC (1)

本系列内容来自ARM官方Spec
APB协议是一个低成本的接口,为了优化功耗并降低接口复杂性。APB接口不是流水线的,是一个简单的同步协议。每次传输至少需要两个周期才能完成。

APB接口用于访问外围设备的可编程控制寄存器。APB外设通常使用APB桥接器连接到主存系统。例如,从AXI到APB的桥接器可用于将多个APB外设连接到AXI存储系统。APB传输由APB桥接器发起。APB桥接器也可以称为Requester。外设接口响应请求。APB外设也可以称为Completer。本规范将使用Requester和Completer。

APB接口的某些信号是固定宽度的,某些信号是可变宽度的。当宽度不是固定值时,可认为它使用了某种特性。如果该值为0,意味着该信号未出现在接口上。

信号位宽描述
PCLKCLOCK1时钟,所有APB信号都是基于上升沿操作的
PRESETn系统总线复位1复位。PRESETn是低电平有效的。
PADDRRequesterADDR_WIDTH地址。最多32bits
PPROTRequester3保护类型,PPROT表示事务的正常、优先级或安全保护等级,以及该事务是数据访问还是指令访问。
PSELxRequester1选中信号。Requester为每个Completer产生HSELx信号。该信号表示该Completer被选中,并进行一次数据传输。
PENABLERequester1使能信号,表示APB传输的第二个和后续时钟周期。
PWRITERequester1方向,高电平表示一次写操作,低电平表示一次读操作
PWDATARequesterDATA_WIDTH写数据,该总线在PWRITE为高电平时被APB桥驱动。可以是8,16,32bits宽。
PSTRBRequesterDATA_WIDTH/8写选通。PSTRB表示在写传输过程中要更新的字节通道。对于写数据总线的每8位,都有一个写选通。PSTRB[n]对应PWDATAI[(8n + 7):(8n)]。在读取传输期间,PSTRB必须无效。
PREADYCompleter1准备信号,由Completer驱动来扩展一次APB传输。
PRDATACompleterDATA_WIDTH读数据。在PWRITE为低电平时被Completer驱动,可以是8,16,32bits宽。
PSLVERRCompleter1传输错误,PSLVERR是一个可选的信号,它可以被Completer拉高,以指示APB传输上的错误情况。
PWAKEUPRequester1唤醒,PWAKEUP表示与APB接口关联的任何活动。
PAUSERRequesterUSER_REQ_WIDTH用户请求属性。建议PAUSER的最大宽度为128位。
PWUSERRequesterUSER_DATA_WIDTH用户写数据属性。建议PWUSER的最大宽度为DATA_WIDTH/2。
PRUSERCompleterUSER_DATA_WIDTH用户读数据属性。建议PRUSER的最大宽度为DATA_WIDTH/2。
PBUSERCompleterUSER_RESP_WIDTH建议PBUSER的最大宽度为16位。

地址总线:APB的读写传输都只用一个地址总线。

数据总线:APB对于读传输和写传输有2个相互独立的总线,总线宽度可以是8,16,32bits宽,读写数据总线必须一样宽。数据传输不能同时出现因为读写数据总线没有独立的握手信号。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值