电子说
常见的仲裁管理方式如下:
1)链式查询方式(集中式)
为减少总线授权线数量,采用下图所示的菊花链查询方式(BS总线忙、BR总线请求、BG总线同意)。
链式查询方式的主要特点是:总线授权信号BG串行地从一个I/O接口传送到下一个I/O接口,假如BG到达的接口无总线请求,则继续往下查询,假如BG到达的接口有总线请求,BG信号便不再往下查询,发出相应的BR信号,并置BS信号。这意味着该I/O接口就获得了总线控制权。
可见,在查询链中离中央仲裁器最近的设备具有最高优先级,离中央仲裁器越远,优先级越低。因此,链式查询是通过接口的优先级排队电路来实现的。链式查询方式存在的优缺点如下:
2)计数器定时查询方式(集中式)
与链式查询方式相比,多了一组设备地址线,少了一根总线同意线BG。总线控制模块接到由BR送来的总线请求信号后,在总线未被使用(BS=0)的情况下,由计数器开始计数,按计数值向各设备发出一组地址信号。当某个有总线请求的设备地址与计数值一致时,便获得总线使用权,此时终止计数查询。
这种方式的特点是:计数可以从“0”开始,此时设备的优先次序是固定的;计数也可以从中止点开始,既是一种循环方法,此时设备使用总线的优先级相等。计数器的初始值还可由程序设置,故优先次序可以改变。此外对电路故障不如链式查询方式敏感,但增加了主控制线数,控制也较复杂。
3)独立请求方式(集中式)
独立请求方式如下图所示。其中每一个共享总线的设备均有一对总线请求线BRi和总线授权线BGi。当设备要求使用总线时,便发出该设备的请求信号BRi。总线控制部件中有一排队电路,可根据优先次序确定响应哪一设备的请求,给设备发相应的授权信号BGi。独立请求方式的优点是响应时间快,优先级次序控制灵活。但其缺点是控制线数量多。
4)分布仲裁方式(分布式)
分布式仲裁不需要中央仲裁器,每个潜在的主控功能模块都有自己的仲裁号和仲裁器。当它们有总线请求时,把它们唯一的仲裁号发送到共享的仲裁总线上,每个仲裁器将仲裁总线上得到的号与自己的号进行比较。如果仲裁总线上的号大,则就撤销自己向仲裁总线发送的仲裁号。最后,获胜者的仲裁号保留在仲裁总线上,获得总线控制权。
2.2.5 总线操作和定时
操作和定时主要解决占用总线的一对设备(主模块和从模块)如何进行数据传输的问题。总线定时是指总线在双方交换数据的过程中需要时间上配合关系的控制,这种控制称为总线定时,它的实质是一种协议或规则。
1)总线传输的四个阶段
2)总线的定时
总线的定时主要分为两种,同步定时和异步定时。
同步定时方式是指系统采用一个统一的时钟信号来协调发送和接收双方的传送定时关系。若干个时钟产生相等的时间间隔,每个间隔构成一个总线周期。在一个总线周期中,发送方和接收方可进行一次数据传送。因为采用统一的时钟,每个模块或设备发送或接收信息都在固定的总线传送周期中,一个总线的传送周期结束,下一个总线传送周期开始。同步通信适用于总线长度较短及总线所接模块的存取时间比较接近的系统。
2.3.1 APB总线简介
APB总线属于AMBA总线协议系列之一,它用在低带宽、低性能、低功耗的外围设备上,它属于非流水线结构,所有的信号仅在时钟上升沿时产生变化,这就规范了APB外围设备的设计流程,增加了可扩展性,每个传输至少需要两个时钟周期。另外,APB无需等待周期和回应信号,只有四个控制信号,控制逻辑简单。
APB经过了几个版本的演进越来越完善,每个版本的差异如下:
2.3.2 APB传输状态图
状态介绍:
2.3.3 APB信号
2.3.4 APB写传输
写传输包括两种类型:无等待状态和有等待状态。
1)无等待状态的写传输
地址、写入信号、写入数据和选择信号都在时钟上升沿时改变。在T1时刻,把要访问的地址、命令和数据全部放到APB总线上,开始一个写传输,在时钟的上升沿会写地址PADDR、写数据PWDATA、使能写信号PWRITE,然后使能选择PSEL信号,选择从设备。这个时钟周期对应的阶段叫做SETUP。
在T2时刻,在PCLK的上升沿,使能PENABLE以及PREADY信号,从设备发现自己的PSEL信号为高,就知道主设备选择它来处理数据的写操作,此时从设备内部准备号处理数据的准备动作。PENABLE的使能代表着ACCESS传输阶段的开始。在下一个PCLK的上升沿,PREADY信号的改变表明从设备完成了这笔传输。
在T3传输结束时刻到来前,PADDR、写数据PWDATA和控制信号保持有效,直到T3时刻PCLK的上升沿到来才会结束ACCESS阶段,从设备完成总线上数据采样并进行内部数据处理。在传输结束的时候,如果没有其他的相同的外设传输发起,PENABLE和PSEL信号会被清除。
2)有等待状态的写传输
如上时序图,展示了从设备怎么使用PREADY信号扩展传输。在ACCESS阶段,当PENABLE被置位,从设备通过拉低PREADY来扩展传输。在PREADY保持低电平时,如下信号保持不变,比如:PADDR、PWRITE、PSEL、PENABLE、PWDATA、PSTRB、PPORT。当PENABLE被置低,PREADY状态不确定,这确保具有两个固定时钟周期访问的外设能保持PREADY高。建议地址和写信号在传输结束后,保持稳定不做快速变化,直到另外一个访问产生。这会减少不必要的功耗消耗。
2.3.5 APB读传输
读传输也包括两种类型:无等待状态和有等待传输。
1)无等待状态的读传输
如上时序图,展示了一个读传输。主设备在T1时刻把所要访问的地址,命令全部放到APB总线上,沿着组成APB的接口传播到从设备接口处。在T2时刻,从机发现自己的PSEL信号为高,就知道主机需要它内部的数据(PWRITE ==0),此时从机内部准备好返回数据,并把返回的数据放在数据总线上,在T3时刻,主机完成总线上数据采样得到需要的数据。
2)有等待状态的读传输
上时序图显示了信号是如何扩展传输的。如果在Access phase期间PREADY信号拉低,则传输被扩展。但下述信号不变:
2.3.6 APB错误响应
使用PSLVERR来表明APB传输的错误状态。在读或者写传输的时候都有可能产生错误状态。使用PSLVERR来指示APB传输错误。当PSEL、PENABLE以及PREADY 都为高时,PSLVERR才在最后一个周期进行判断。当任何一个PSEL、 PENABLE或者PREADY为低时,你可以将PSLVERR拉低,这是推荐,并不是强制要求。收到一个错误后,可能或不可能改变外围器件的状态。这是外设的特性,两者都是可以接受。当一个写传输收到一个错误,这并不是说外设的寄存器没有被主设备更新。当收到一个读传输的错误,这意味着返回的是无效的数据。没必要在读传输失败的时候,通过总线返回0。APB外围设备不要求必须支持PSLVERR引脚,当不使用该引脚时,应被置低。
1)写传输失败
上图显示了一个写传输失败的时序图。在PSEL、PENABLE以及PREADY 都为高时,PSLVERR在最后一个周期进行判断,上图显示PSLVERR返回了一个错误。
2)读传输失败
一个读传输可能是以总线返回错误结束,这表明当前这笔读传输返回的数据是无效的。上图显示了一个读传输失败的时序图。
全部0条评论
快来发表一下你的评论吧 !