首页 > 其他分享 >APB协议

APB协议

时间:2023-12-11 11:22:59浏览次数:25  
标签:协议 slave 拉高 PREADY PENABLE master APB

现主要应用为APB2.0与APB3.0协议

APB是低成本的接口协议,可以实现低功耗以及精简的接口设计降低接口设计的复杂度,他不支持流水线设计,主要用于低带宽的传输,且每次传输至少小号两个时钟周期

首先是APB协议的优点:

  • 易于实现高频操作;
  • 性能与时钟占空比无关;
  • 静态时序分析简单;
  • 易于与基于上升沿的寄存器访问;
  • 易于集成到基于周期的仿真器中。

APB2.0与APB3.0的区别?

APB3.0增加了PREADY信号与PSLAVERR信号

APB2.0

信号列表:

 

状态机:

  • IDLE: PSELx和PENABLE都为0,表明master和slave之间无通信请求,因此处在该状态。
  • SETUP:当master和某一个slave之间准备进行数据传输时,会进入该状态,这时PSELx=1,PENABLE=0。意思是master选中某一个slave告诉slave我准备要和你交换数据啦,请你准备好!这个状态会保持一个时钟周期然后进入ENABLE状态。这个状态可以直接给wdata。
  • ENABLE:这个时候PENABLE拉高,master和某一slave进行数据传输,持续一个时钟周期。这个状态开始等待rdata。

在自己写master时,就按照这个状态输出控制信号就可以了。

 

APB2.0写操作:

  • T1~T2:这个阶段master和某一slave无交互数据,因此处于IDLE状态。
  • T2:在该时刻,master准备将数据写入某一slave中,因此进入SETUP状态,同时把某一slave的PSEL信号拉高,PWRITE信号拉高,这表示master告诉某一slave:我即将要和你进行数据传输,是我把数据写到你里面,请你准备好!同时改变PADDR和PWDATA信号,这是为了满足下个上升沿的时序。
  • T2~T3:保持一个时钟周期。
  • T3:此时将PENABLE信号拉高,真正将wdata写到addr。
  • T3~T4:保持一个时钟周期。
  • T4:数据传输结束,再次回到初始状态。

 

APB2.0读操作:

  • T1~T2:这个阶段master和某一slave无交互,因此处于IDLE状态
  • T2:在该时刻,master准备从某一slave中读取数据,因此进入SETUP状态,同时把某一slave的PSEL信号拉高,PWRITE信号拉低,这表示master告诉某一slave:我即将要和你进行数据传输,是我要读你的数据,请你准备好!同时改变PADDR,这是为了满足下个T4采样沿的时序。
  • T2~T3:保持一个时钟周期。
  • T3:此时将PENABLE信号拉高,表示master正式把某一slave之中的数据读出来,注意,数据在ENABLE周期末尾的时钟上升沿被采样,也就是T4时刻。
  • T3~T4:保持一个时钟周期。
  • T4:数据传输结束,再次回到初始状态。

APB3.0:

APB 3.0协议是在APB 2.0协议的基础上新加了2个信号,PREADY和PSLVERR组成的;PREADY信号是slave设备用来表示slave是否准备好的信号,PSLVERR是表示slave接收的数据是否有误。

信号表:

APB3.0 写操作,无等待状态

该种情况和APB2.0没有任何区别,当PENABLE拉高后,会检查PREADY是否拉高,如果拉高表示slave当前准备好了数据传输,则在上升沿3将数据写给salve。

APB3.0 写操作,有等待状态

  

如果PENABLE拉高后,发现PREADY没有拉高,则表示slave还没有准备好数据传输,这时所有信号保持不变直到PREADY拉高,在上升沿5将数据写入。

APB3.0 读操作,无等待状态

该种情况和APB2.0没有区别,与写操作无等待类似,不再细说

APB3.0 读操作,有等待状态

当PENABLE拉高后,发现PREADY信号还没有拉高,表示slave还没有准备好,这时会等待直到PREADY信号拉高,在上升沿6时刻采样数据

APB3.0错误反馈

PSLVERR来指示APB传输上的错误情况。读取和写入事务都可能发生错误。当PSEL,PENABLE和PREADY均为高电平时,仅在APB传输的最后一个周期内才认为PSLVERR有效,其他时间不考虑PSLVERR。

写操作

在前面的有等待的写操作的基础上,添加PSLVERR,也就是在T4时刻采样,发现PSEL,PENABLE和PREADY均为高电平的前提下,PSLVERR为高,说明这次数据传输有错误。软件决定后续行为。

读操作

在前面的有等待的读操作的基础上,添加PSLVERR,也就是在T5时刻采样,发现PSEL,PENABLE和PREADY均为高电平的前提下,PSLVERR为高,说明这次数据传输有错误。软件决定后续行为。

APB协议的应用场景

APB因为其面积小,接口少,经常用在外设上,为什么呢?

因为soc上外设很多,包括spi,i2c,uart,timer,wdt等,他们对时钟要求不高,如果使用APB接口,可以省面积,降低芯片的复杂度。这也是为什么外设优先的标准接口是APB。

这里主要讲一些APB在SOC上的特殊用法。

  • 某些IP预留用户控制信号,我们需要用寄存器控制此信号,一般soc每个子系统都会有一个模块专门做这个事情,这是就可以选择APB接口用来配置这些寄存器。
  • 某些IP,例如SRIO,serdes预留用户配置接口,synosys叫做cr配置口,用于配置或者debug。这时候我们可以自己写一个APB2CR的桥。
  • 核间通讯模块。通过写寄存器产生中断输出,这时候可以使用APB接口,因为中断发生次数少,无性能要求,可以使用APB,简单。
  • APB转sram接口或者APB转fifo。某些模块对外接口是sram,需要我们使用转接桥,根据性能我们选择使用合适的AMBA总线;自研模块数据缓存时,涉及到异步处理,这时候可能用到APB转FIFO的设计。

但是他也有局限,带宽低且不支持pipeline,所以module有这些要求不要使用APB。

 

标签:协议,slave,拉高,PREADY,PENABLE,master,APB
From: https://www.cnblogs.com/hc-zheng/p/17893957.html

相关文章

  • 【干货分享】网工必懂的ICMP协议
    原创:厦门微思网络因特网控制报文协议ICMP(InternetControlMessageProtocol)是一个差错报告机制,是TCP/IP协议簇中的一个重要子协议,通常被IP层或更高层协议(TCP或UDP)使用,属于网络层协议,主要用于在IP主机和路由器之间传递控制消息,用于报告主机是否可达、路由是否可用等。这些控制消息......
  • pikafish协议
    /*PikafishProxy-aChineseChessEngineWrapperforXQWizardtorunPikafishDesignedbyMorningYellow,Version:2023-03-05,LastModified:Jun.2023Copyright(C)2023www.xqbase.comThislibraryisfreesoftware;youcanredistributeitand/ormodi......
  • minipcie接口走usb协议
    由于MiniPCIe接口和USB协议之间的转换涉及到硬件设备,因此无法直接通过编写代码来实现。您需要购买一个PCIe到USB适配器并将其连接到计算机上。安装完成后,您可以像使用其他USB设备一样使用它。MiniPCIe接口是一种小型化的PCIe接口,用于连接各种扩展卡。要将MiniPCIe接口转换为USB......
  • 基于XML的SOAP协议
    基于XML的最著名的通信协议就是SOAP了,全称简单对象访问协议(SimpleObjectAccessProtocol)。它使用XML编写简单的请求和回复消息,并用HTTP协议进行传输。SOAP将请求和回复放在一个信封里面,就像传递一个邮件一样。信封里面的信分抬头和正文。POST/purchaseOrderHTTP/1.1H......
  • 认识HTTP协议与apache
    万维网:(www)并非计算机网络,而是一个大型的数据库,可以实现网页与网页之间的跳转url:资源定位符描述了一个资源在服务器上的具体位置http:超文本传输协议图片视频小程序http:HyperTextTransferProtocol应用层协议,默认端口:80/tcp可以使用http协议的软件apachenginx......
  • robots.txt禁止收录协议写法
    1. 什么是robots.txt?robots.txt 是网站和搜索引擎的协议的纯文本文件。当一个搜索引擎蜘蛛来访问站点时,它首先爬行来检查该站点根目录下是否存在robots.txt,如果存在,根据文件内容来确定访问范围,如果没有,蜘蛛就沿着链接抓取。robots.txt 放在项目的根目录下。2. robots.txt......
  • 1.理论、算法、协议
    1.CAP理论CAP也就是Consistency(一致性)、Availability(可用性)、PartitionTolerance(分区容错性)这三个单词首字母组合。在理论计算机科学中,CAP定理(CAPtheorem)指出对于一个分布式系统来说,当设计读写操作时,只能同时满足以下三点中的两个:一致性(Consistency):所有节点访问......
  • AMQP协议中的,消息队列RabbitMQ,ActiveMQ,Apache Kafka区别是什么?
    都是基于AMQP协议来的一种实现方式。参考chatGPT4回答请使用Markdown表格来展示RabbitMQ、ActiveMQ和ApacheKafka之间的区别:维度RabbitMQActiveMQApacheKafka语言ErlangJavaScala/Java协议AMQP、STOMP、MQTTAMQP、STOMP、OpenWire自定义协议......
  • 网络层协议及ip编址
    网络层协议及ip编址IP协议报文字段长度/位含义Version版本号4指定IP协议的版本;通信双方使用的IP协议版本必须一致;目前使用最广泛的IP协议版本号为4,即IPv4。现在已经开始普及IPv6了IHL首部长度4可表示的最大十进制数值是15,IP首部长度......
  • 解密 ArcGraph 分布式一致性:Raft 协议与分布式事务实现丨技术专栏
    导读:本文提出了一种将事务日志和Raft日志融合在一起的机制,从而实现了分布式事务和数据一致性的场景。01背景介绍分布式系统是伴随着互联网的高速发展而出现的。其出现为了应对单机系统无法解决的高并发、高可用性、容错性等问题。分布式系统将传统的系统扩容模式,从scaleup......