APB总线协议

https://www.cnblogs.com/lyuyangly/p/4853921.html
https://blog.csdn.net/u011280717/article/details/81052436

一、简介

APB主要用来连接高性能低带宽的外围设备,在APB总线系统中,只有一个master,其他的都是slave

特点:
①  可工作在高频下
②  协议简单:无复杂的时序;
③  同步总线:总线上所有的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总线接口

二、状态图

APB传输状态图

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状态。

三、写传输

APB写传输

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拉低,其他信号保持不变。
也可以在T3采PWDATA

写逻辑推荐写法:
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

四、读传输

APB读传输

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来于系统
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,734评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,931评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,133评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,532评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,585评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,462评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,262评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,153评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,587评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,792评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,919评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,635评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,237评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,855评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,983评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,048评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,864评论 2 354

推荐阅读更多精彩内容