APB  (Advanced Peripheral Bus)

APB(Advanced Peripheral Bus),外围总线的意思。该总线协议是ARM公司提出的AMBA总线结构之一,几乎已成为一种标准的片上总线结构。APB主要用于低带宽的周边外设之间的连接,例如UART、1284等,它的总线架构不像AHB支持多个主模块,在APB里面唯一的主模块就是APB 桥。其特性包括:两个时钟周期传输;无需等待周期和回应信号;控制逻辑简单,只有四个控制信号。

一.特点:

①  可工作在高频下
②  协议简单:无复杂的时序;
③  同步总线:总线上所有的transaction(读写操作)都依赖于时钟的上升沿;
④  一主多从:一般情况下,APB挂在AHB总线系统下,通过AHB-APB  Bridge将事务在AHB总线系统之间进行转化,此时Bridgre即为APB的master,其他的外围设备均为slave。
⑤  接口简单:相对应AXI、AHB来说,接口比较简单;
⑥  低功耗
⑦  可连接多种外围设备:I2C、SPI、Timer、Keypad、UART

它的架构不像AHB总线是多主设备的架构,APB总线的唯一主设备是APB桥(与AXI或APB相连),因此不需要仲裁一些Request/grant信号。

二.状态图

APB上的传输可用如图所示的状态图来说明。

1、IDLE:系统初始化状态,此时没有传输操作,也没有选中任何从模块。
2、SETUP:启动状态,当有传输要进行时,PSELx=1,,PENABLE=0,系统进入SETUP状态,并只会在SETUP状态停留一个周期。当PCLK的下一个上升沿到来时,系统进入ENABLE状态。
3、ENABLE:在总线进入SETUP状态的下一个时钟上升沿处,需将PENABLE信号拉高进入ENABLE状态。在这个上升处,master必须保持PADDR、PSEL、PWRITE不变。传输也只会在ENABLE状态维持一个周期,在经过SETUP与ENABLE状态之后就已完成。之后如果没有传输要进行,就进入IDLE状态等待;如果有连续的传输,则进入SETUP状态。

三.写传输

T2: 上升沿后,master将选择信号PSEL拉高,同时将地址信号PADDR,读写控制信号PWRITE,以及写数据PWDATA驱动到总线上。此时总线开始进入SETUP状态。
T3:master将PENABLE信号拉高,切保持PADDR、PWRITE、PSEL线上的信号稳定不变。总线进入ENABLE状态。slave在这个上升沿处将地址信号和读写使能信号采样下来(slave会不断检测这些信号,t3发现PSEL为高,采样PADDR和PWRITE,判断是读还是写,在t4采数据)。
T4:slave从PWDATA线上采样数据,写操作完成。之后将PSEL和PENABLE拉低,其他信号保持不变。

写逻辑推荐写法:
1 assign wr = psel & pwrite & (penable);
2 always @(posedge pclk or negege present)
3 begin
4    if(!presetn)
5    begin
6        REG_A <= 32’h0;
7    end
8    else if(wr & paddr = REG_A_ID)    //T3之后
9    begin
10        REG_A <= pwdata;
11    end
12 end

四、读传输


T2:同写操作
T3:同写操作
T3上升沿过后:对应的slave要将读取的数据驱动到PRDATA线上,并且保持稳定。
T4:master从PRDATA线上采数据,读操作完成。之后将PSEL和PENABLE拉低,其他信号保持不变。
不可以在T3采PWDATA
写操作:T2-T4之间,PADDR, PWRTE, PSEL, PWDATA一定保持不变。
读操作:T2-T4之间,PADDR, PWRTE, PSEL,一定保持不变。
               T3-T4之间,PRDATA保持不变。

读逻辑推荐写法:
1 assign rd = psel & (~pwrite) & (~penable) ;
2 always @(*)
3 begin
4    if(rd)            //setup
5    begin
6        case(paddr)
7        REG_A_ID    : prdatanxt = REG_A;
8        REG_B_ID    : prdatanxt = REG_B;
9        ……
10        default        : prdatanxt = 32’h0;
11        endcase
12    end
13    else
14    begin
15        prdatanxt = 32’h0;
16    end
17 end
18 always @(posedge pclk or negege present)
19 begin
20    if(!presetn)
21    begin
22        prdata <= 32’h0;
23    end
24    else    begin
25        prdata <=prdatanxt;
26    End
27 end

对于APB slave,只有PRDATA是输出,其他都是输入

reset和clock来于系统

APB——(Advanced Peripheral Bus)相关推荐

  1. APB(Advanced Peripheral Bus)协议规范

    APB(Advanced Peripheral Bus)协议规范 参考:ARM (IHI 0024D) AMBA APB Protocol Specification 文章目录 APB(Advance ...

  2. 高级外围总线 5.0(Advanced Peripheral Bus, APB)

    目录 1. 功能介绍 2. 架构 3. 逻辑设计 3.1. 写传输 ACCESS phase 多于一个周期 写入选通 Requester.PSTRB 写错误 Completer.PSLVERR 3.2 ...

  3. 高级高性能总线(Advanced High-performance Bus, AHB)

    目录 1. 功能介绍 2. 信号描述 2.1. Manager 2.2. Subordinate 2.3. Interconnect Decoder Multiplexor 3. 架构 3.1. 单M ...

  4. AMBA、AHB、APB、AXI总线介绍和对比

    一.引出 研究STM32H7的总线系统,对AXI.AHB.APB.ASB有点兴趣,于是去简单了解了一下,总结如下: 说到AXI.AHB.APB.ASB就得先说AMBA(Advanced Microco ...

  5. [architecture]-AXI/APB/AHB/ACE的介绍

    文章目录 1.AMBA概述 2.AXI4分类 3.ACE-lite ★★★ 友情链接 : 个人博客导读首页-点击此处 ★★★ 1.AMBA概述 AMBA (Advanced Microcontroll ...

  6. STM32—— AHB、APB详解

     STM32-- AHB.APB详解 2016-07-14 20:35 590人阅读 评论(0) 收藏 举报 本文章已收录于: 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.概括 首先 ...

  7. AMBA、AHB、APB、AXI总线

    AMBA.AHB.APB总线 * AMBA (Advanced Microcontroller Bus Architecture) 高级微处理器总线架构 * AHB (Advanced High-pe ...

  8. AMBA总线协议AHB、APB

    一.什么是AMBA总线 AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计采用,它规定了AHB (Advanced High-performance Bus).ASB (Advanced ...

  9. AMBA协议介绍(1)——APB协议

    系列文章目录 AMBA协议介绍(1)--APB协议 AMBA协议介绍(2)--AHB协议 AMBA协议介绍(3)--AXI协议 目录 AMBA协议介绍 AMBA协议介绍(1)--APB协议 前言 一. ...

最新文章

  1. begin end会产生事务吗_无线信号放大器会产生同频干扰吗?
  2. Chrome 39-45
  3. 智能系统课件@丛爽老师-中国科学技术大学自动化系
  4. python中int的意思_python中”int(a[::-1])”的含义是什么?
  5. 将MATLAB中的图像信息用到Vivado中
  6. 学习php技巧,对初学者非常有用的PHP技巧
  7. 使用计算机 发展了人的运算能力,人们对计算的需求有多大?
  8. java中do_while求阶乘倒数和,下面的程序是用do_while语句计算10的阶乘。请在程序的......
  9. Ubuntu应用Wireshark找不到interface的解决办法
  10. 以太网测试仪的RFC2544测试你了解吗?
  11. Ubuntu12.04 耳机无声 扬声器有声的解决
  12. 10大习惯让你变年轻
  13. 如何从列联表获得对应分析的结果
  14. 【转帖】文件系统驱动编程基础篇
  15. qemu-system-aarch64使用记录
  16. 敏捷专项练习题202207
  17. 量子通信——量子的概念与量子力学
  18. 《蔡康永的情商课》重点摘录
  19. Java中变量声明使用,内存分析,数据类型常见码表详解
  20. nginx支持text html,BT面板重启Nginx提示“nginx: [warn] duplicate MIME type “text/html””解决办法...

热门文章

  1. 想剑网三妹子最多服务器,萌妹子玩游戏之剑网三 国产网游经典大作来袭
  2. 把英文翻译成中文php,中文翻译成英文,英文翻译成中文(调用的有道翻译的api)示例源码...
  3. 使用sudo执行gcc命令的时候提示找不到命令
  4. 开过全新BMW 3系 “鱼与熊掌”都可兼得
  5. 我的架构梦:(七十) 消息中间件之RabbitMQ的消息可靠性
  6. 「那样记账」——一款纯粹、轻量的记账应用
  7. Spring创建Bean的基本步骤
  8. 知识图谱与古希腊人物关系
  9. 企业战略 平台转型:不走寻常路
  10. 免费虚拟现实运用开发平台VR Juggler