APB——(Advanced Peripheral Bus)
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)相关推荐
- APB(Advanced Peripheral Bus)协议规范
APB(Advanced Peripheral Bus)协议规范 参考:ARM (IHI 0024D) AMBA APB Protocol Specification 文章目录 APB(Advance ...
- 高级外围总线 5.0(Advanced Peripheral Bus, APB)
目录 1. 功能介绍 2. 架构 3. 逻辑设计 3.1. 写传输 ACCESS phase 多于一个周期 写入选通 Requester.PSTRB 写错误 Completer.PSLVERR 3.2 ...
- 高级高性能总线(Advanced High-performance Bus, AHB)
目录 1. 功能介绍 2. 信号描述 2.1. Manager 2.2. Subordinate 2.3. Interconnect Decoder Multiplexor 3. 架构 3.1. 单M ...
- AMBA、AHB、APB、AXI总线介绍和对比
一.引出 研究STM32H7的总线系统,对AXI.AHB.APB.ASB有点兴趣,于是去简单了解了一下,总结如下: 说到AXI.AHB.APB.ASB就得先说AMBA(Advanced Microco ...
- [architecture]-AXI/APB/AHB/ACE的介绍
文章目录 1.AMBA概述 2.AXI4分类 3.ACE-lite ★★★ 友情链接 : 个人博客导读首页-点击此处 ★★★ 1.AMBA概述 AMBA (Advanced Microcontroll ...
- STM32—— AHB、APB详解
STM32-- AHB.APB详解 2016-07-14 20:35 590人阅读 评论(0) 收藏 举报 本文章已收录于: 版权声明:本文为博主原创文章,未经博主允许不得转载. 一.概括 首先 ...
- AMBA、AHB、APB、AXI总线
AMBA.AHB.APB总线 * AMBA (Advanced Microcontroller Bus Architecture) 高级微处理器总线架构 * AHB (Advanced High-pe ...
- AMBA总线协议AHB、APB
一.什么是AMBA总线 AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计采用,它规定了AHB (Advanced High-performance Bus).ASB (Advanced ...
- AMBA协议介绍(1)——APB协议
系列文章目录 AMBA协议介绍(1)--APB协议 AMBA协议介绍(2)--AHB协议 AMBA协议介绍(3)--AXI协议 目录 AMBA协议介绍 AMBA协议介绍(1)--APB协议 前言 一. ...
最新文章
- begin end会产生事务吗_无线信号放大器会产生同频干扰吗?
- Chrome 39-45
- 智能系统课件@丛爽老师-中国科学技术大学自动化系
- python中int的意思_python中”int(a[::-1])”的含义是什么?
- 将MATLAB中的图像信息用到Vivado中
- 学习php技巧,对初学者非常有用的PHP技巧
- 使用计算机 发展了人的运算能力,人们对计算的需求有多大?
- java中do_while求阶乘倒数和,下面的程序是用do_while语句计算10的阶乘。请在程序的......
- Ubuntu应用Wireshark找不到interface的解决办法
- 以太网测试仪的RFC2544测试你了解吗?
- Ubuntu12.04 耳机无声 扬声器有声的解决
- 10大习惯让你变年轻
- 如何从列联表获得对应分析的结果
- 【转帖】文件系统驱动编程基础篇
- qemu-system-aarch64使用记录
- 敏捷专项练习题202207
- 量子通信——量子的概念与量子力学
- 《蔡康永的情商课》重点摘录
- Java中变量声明使用,内存分析,数据类型常见码表详解
- nginx支持text html,BT面板重启Nginx提示“nginx: [warn] duplicate MIME type “text/html””解决办法...
热门文章
- 想剑网三妹子最多服务器,萌妹子玩游戏之剑网三 国产网游经典大作来袭
- 把英文翻译成中文php,中文翻译成英文,英文翻译成中文(调用的有道翻译的api)示例源码...
- 使用sudo执行gcc命令的时候提示找不到命令
- 开过全新BMW 3系 “鱼与熊掌”都可兼得
- 我的架构梦:(七十) 消息中间件之RabbitMQ的消息可靠性
- 「那样记账」——一款纯粹、轻量的记账应用
- Spring创建Bean的基本步骤
- 知识图谱与古希腊人物关系
- 企业战略 平台转型:不走寻常路
- 免费虚拟现实运用开发平台VR Juggler