APB总线多个主设备的仲裁方法、系统及存储介质
技术领域
本发明涉及电子技术领域,尤其涉及一种APB总线多个主设备的仲裁方法、系统及存储介质。
背景技术
在APB总线系统中,如果有多个APB主设备,一般是使用多路选择器 MUX,通过系统配置或者芯片外接选择信号,选出其中一个APB主设备,该主设备发起的访问都可以正常执行,而其他没有被选中的APB主设备都停止发起访问;当前被允许发起访问的APB主设备完成所有访问后,如果需要其他的APB主设备发起访问时,则需要通过系统配置或者芯片外接选择信号,将要发起访问的APB主设备选通,其他的APB主设备停止发起访问。
在使用MUX的方案中,需要通过系统配置或者芯片外接选择信号来控制 MUX,从而实现多APB主设备的选择。这种方式增加了多个APB主设备对APB 总线空间访问的复杂性,切换访问的方式也比较繁琐,如果切换比较频繁,整体的访问效率会很低。当MUX选通一个APB主设备时,其他的APB主设备只能停止发起访问,即使被选通的APB主设备没有发起任何访问操作,其他的APB主设备也不能发起任何访问,降低了APB总线系统的访问效率,限制了有多个APB主设备的APB总线系统的功能。
发明内容
本发明的主要目的在于提出一种APB总线多个主设备的仲裁方法及系统,旨在提升APB总线系统的访问效率。
为实现上述目的,本发明提供一种APB总线多个主设备的仲裁方法,所述方法应用于APB总线多个主设备的仲裁系统,所述系统包括至少两个APB 主设备、至少一个APB仲裁器、以及若干个APB从设备,其中,所述两个APB 主设备中的第一APB主设备、第二APB主设备均通过APB输出端口与所述APB 仲裁器的APB输入端口连接,所述APB仲裁器通过APB总线与所述若干个APB 从设备连接,所述方法包括以下步骤:
在同时接收到所述两个APB主设备访问所述APB从设备的请求指令时,获取预先设定的第一APB主设备的访问优先级、第二APB主设备的访问优先级;
将所述第一APB主设备的访问优先级与第二APB主设备的访问优先级相比较;
若所述第一APB主设备的访问优先级高于所述第二APB主设备的访问优先级,则允许所述第一APB主设备访问所述APB从设备,并存储所述第二 APB主设备的访问信息。
本发明的进一步的技术方案是,所述访问信息包括访问类型、访问地址、写数据中的一种或几种。
本发明的进一步的技术方案是,所述允许所述第一APB主设备访问所述APB从设备,并存储所述第二APB主设备的访问信息的步骤之后还包括:
在所述第一APB主设备访问所述APB从设备完成后,允许所述第二APB 主设备访问所述APB从设备。
本发明的进一步的技术方案是,所述第一APB主设备访问所述APB从设备的步骤包括:
将所述第一APB主设备的访问信息广播到APB总线,并将所述APB总线的PREADY信号选通给所述第一APB主设备,屏蔽掉所述第二APB主设备来自所述APB总线的PREADY信号,将给到所述第二APB主设备的 PREADY信号置为零;
所述在所述第一APB主设备访问所述APB从设备完成后,第二APB主设备访问所述APB从设备的步骤包括:
在所述第一APB主设备访问所述APB从设备完成后的第一个APB时钟周期,将存储的所述第二APB主设备的访问信息广播到APB总线,将给到所述第二APB主设备的PREADY信号置为零,在之后的APB时钟周期,将所述APB总线的PREADY信号选通给所述第二APB主设备,直到所述第二APB 主设备访问所述APB从设备完成。
本发明的进一步的技术方案是,所述在所述第一APB主设备访问所述 APB从设备完成后,允许所述第二APB主设备访问所述APB从设备的步骤之后包括:
在再次接收到所述第一APB主设备访问所述APB从设备的请求指令时,判断所述第二APB主设备访问完成所述APB从设备:
若是,则允许所述第一主设备访问所述APB从设备;
若否,则等待所述第二APB主设备访问完成所述APB从设备后,允许所述第一主设备访问所述APB从设备。
本发明的进一步的技术方案是,所述优先级为固定优先级或轮换优先级。
为实现上述目的,本发明还提出一种APB总线多个主设备的仲裁系统,所述系统包括至少两个APB主设备、至少一个APB仲裁器、以及若干个APB 从设备,其中,所述两个APB主设备中的第一APB主设备、第二APB主设备均通过APB输出端口与所述APB仲裁器的APB输入端口连接,所述APB 仲裁器通过APB总线与所述若干个APB从设备连接,所述APB仲裁器包括访问仲裁单元、访问缓存单元、以及访问生成单元,其中,所述访问仲裁单元用于接收所述两个APB主设备的访问操作,并作出访问仲裁;所述访问缓存单元用于存储所述第二APB主设备的访问信息;所述访问生成单元用于接收所述访问仲裁单元和访问缓存单元的访问请求,产生APB总线访问操作,访问APB总线空间上的APB从设备;所述系统还包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的APB总线多个主设备的仲裁程序,所述APB总线多个主设备的仲裁程序被所述处理器执行时实现以下步骤:
在同时接收到所述两个APB主设备访问所述APB从设备的请求指令时,获取预先设定的第一APB主设备的访问优先级、第二APB主设备的访问优先级;
将所述第一APB主设备的访问优先级与第二APB主设备的访问优先级相比较;
若所述第一APB主设备的访问优先级高于所述第二APB主设备的访问优先级,则允许所述第一APB主设备访问所述APB从设备,并存储所述第二 APB主设备的访问信息。
本发明的进一步的技术方案是,所述访问信息包括访问类型、访问地址、写数据中的一种或几种。
本发明的进一步的技术方案是,所述APB总线多个主设备的仲裁程序被所述处理器执行时还实现以下步骤:
在所述第一APB主设备访问所述APB从设备完成后,允许所述第二APB 主设备访问所述APB从设备。
为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有APB总线多个主设备的仲裁程序,所述APB总线多个主设备的仲裁程序被处理器执行时实现如上所述的APB总线多个主设备的仲裁方法的步骤。
本发明的有益效果是:本发明APB总线多个主设备的仲裁方法、系统及存储介质,通过上述技术方案,在同时接收到所述两个APB主设备访问所述 APB从设备的请求指令时,获取预先设定的第一APB主设备的访问优先级、第二APB主设备的访问优先级;将所述第一APB主设备的访问优先级与第二 APB主设备的访问优先级相比较;若所述第一APB主设备的访问优先级高于所述第二APB主设备的访问优先级,则允许所述第一APB主设备访问所述APB从设备,并存储所述第二APB主设备的访问信息;每个APB主设备可以在任意时刻发起对APB总线空间的访问,并且所有APB主设备发起的访问都可以执行完成,而APB主设备无需在发起访问前,先要通过一定的额外操作获取对APB总线的访问权限,相对于现有技术,简化了访问操作,提高了访问效率。
附图说明
图1本发明APB总线多个主设备的仲裁方法较佳实施例的流程示意图;
图2是APB总线状态转换图;
图3是APB总线协议中无等待和有等待两种访问的时序图;
图4是M1和M2同时发起APB总线写操作时的仲裁时序图;
图5是APB仲裁器的结构框图;
图6是5个APB主设备的仲裁扩展示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
考虑到目前的APB总线系统在有多个APB主设备时访问效率低,由此,本发明提出一种APB总线多个主设备的仲裁方法、系统及存储介质。
本发明提出的APB总线多个主设备的仲裁方法、系统及存储介质特别适用于包含APB总线的系统芯片SoC,微控制芯片MCU,显示驱动芯片DDIC 等芯片领域,以及基于FPGA的应用领域。使用本发明中的方法,APB总线系统中所有的APB从设备具有统一的存储空间地址分配,不同的APB主设备可以相互独立的发起访问操作,彼此之间的访问请求互不影响。当多个APB 主设备同时发起访问请求时,仲裁器能够按照系统设定的访问优先级由高到低的顺序完成所有APB主设备发起的访问,其中最高优先级的APB主设备发起的访问具有0延时,可以在仲裁周期就访问APB从设备。
具体的,请参照图1,图1是本发明APB总线多个主设备的仲裁方法较佳实施例的流程示意图。
需要说明的是,本实施例提出的APB总线多个主设备的仲裁方法应用于 APB总线多个主设备的仲裁系统,所述系统包括至少两个APB主设备、至少一个APB仲裁器、以及若干个APB从设备,其中,所述两个APB主设备中的第一APB主设备、第二APB主设备均通过APB输出端口与所述APB仲裁器的APB输入端口连接,所述APB仲裁器通过APB总线与所述若干个APB 从设备连接。
其中,所述APB仲裁器包括访问仲裁单元、访问缓存单元、以及访问生成单元。
所述访问仲裁单元用于接收所述两个APB主设备的访问操作,并作出访问仲裁;所述访问缓存单元用于存储所述第二APB主设备的访问信息;所述访问生成单元用于接收所述访问仲裁单元和访问缓存单元的访问请求,产生 APB总线访问操作,访问APB总线空间上的APB从设备。
如图1所示,该方法包括以下步骤:
步骤S10,在同时接收到所述两个APB主设备访问所述APB从设备的请求指令时,获取预先设定的第一APB主设备的访问优先级、第二APB主设备的访问优先级。
可以理解的是,通过系统顶层的优先级配置,可以使所述两个APB主设备在访问仲裁单元中可以按照固定优先级或者轮换优先级两种方式进行仲裁。
其中,固定优先级指所述两个APB主设备有固定的优先级,其中一个APB主设备的优先级固定高于另外一个APB主设备;轮换优先级指所述两个 APB主设备的访问优先级进行轮换。
步骤S20,将所述第一APB主设备的访问优先级与第二APB主设备的访问优先级相比较。
步骤S30,若所述第一APB主设备的访问优先级高于所述第二APB主设备的访问优先级,则允许所述第一APB主设备访问所述APB从设备,并存储所述第二APB主设备的访问信息。
其中,所述访问信息可以包括访问类型、访问地址、写数据中的一种或几种。
将所述第一APB主设备的访问优先级与第二APB主设备的访问优先级相比较后,如果比较结果为第一APB主设备的访问优先级高于所述第二APB 主设备的访问优先级,则在所述第一APB主设备和第二APB主设备同时请求总线访问权时,所述第一APB主设备被允许访问,所述第二APB主设备的访问信息被存储到所述访问缓存单元中。
本实施例通过上述技术方案,在同时接收到所述两个APB主设备访问所述APB从设备的请求指令时,获取预先设定的第一APB主设备的访问优先级、第二APB主设备的访问优先级;将所述第一APB主设备的访问优先级与第二 APB主设备的访问优先级相比较;若所述第一APB主设备的访问优先级高于所述第二APB主设备的访问优先级,则允许所述第一APB主设备访问所述 APB从设备,并存储所述第二APB主设备的访问信息。每个APB主设备可以在任意时刻发起对APB总线空间的访问,并且所有APB主设备发起的访问都可以执行完成,而APB主设备无需在发起访问前,先要通过一定的额外操作获取对APB总线的访问权限,相对于现有技术,简化了访问操作,提高了访问效率。
进一步的,作为一种实施方式,所述允许所述第一APB主设备访问所述 APB从设备,并存储所述第二APB主设备的访问信息的步骤之后还包括:
在所述第一APB主设备访问所述APB从设备完成后,允许所述第二APB 主设备访问所述APB从设备。
进一步的,所述第一APB主设备访问所述APB从设备的步骤包括:
将所述第一APB主设备的访问信息广播到APB总线,并将所述APB总线的PREADY信号选通给所述第一APB主设备,屏蔽掉所述第二APB主设备来自所述APB总线的PREADY信号,将给到所述第二APB主设备的 PREADY信号置为零;
所述在所述第一APB主设备访问所述APB从设备完成后,第二APB主设备访问所述APB从设备的步骤包括:
在所述第一APB主设备访问所述APB从设备完成后的第一个APB时钟周期,将存储的所述第二APB主设备的访问信息广播到APB总线,将给到所述第二APB主设备的PREADY信号置为零,在之后的APB时钟周期,将所述APB总线的PREADY信号选通给所述第二APB主设备,直到所述第二APB 主设备访问所述APB从设备完成。
更进一步的,所述在所述第一APB主设备访问所述APB从设备完成后,允许所述第二APB主设备访问所述APB从设备的步骤之后包括:
在再次接收到所述第一APB主设备访问所述APB从设备的请求指令时,判断所述第二APB主设备访问完成所述APB从设备:
若是,则允许所述第一主设备访问所述APB从设备;
若否,则等待所述第二APB主设备访问完成所述APB从设备后,允许所述第一主设备访问所述APB从设备。
下面结合图2至图6对本发明APB总线多个主设备的仲裁方法做进一步的详细阐述。
1、APB总线协议进行介绍:
APB(Advanced Peripheral Bus),高级外设总线的意思。该总线协议是 ARM公司提出的AMBA总线结构之一,几乎已成为一种标准的片上总线结构。APB主要用于低带宽的周边外设之间的连接,例如UART、GPIO、TIMER、等,它的总线架构不像AHB支持多个主设备,在APB总线里面一般有一个APB主设备。随着总线系统的功能越来越复杂,APB总线系统中开始有多个 APB主设备,这些APB主设备可以访问相同的APB总线空间,APB总线上支持多个APB从设备。APB主设备上的访问传输可以用如图2所示的状态图来说明。
系统初始化为IDLE状态,此时没有传输操作,也没有选中任何从设备。
当有传输要进行时,PSELx=1,PENABLE=0,系统进入SETUP状态,并只会在SETUP状态停留一个周期。当PCLK的下一个上升沿时到来时,系统进入ENABLE状态。
系统进入ENABLE状态时,维持之前在SETUP状态的PADDR、PSEL、 PWRITE不变,并将PENABLE置为1。在ENABLE状态,如果PREADY为低,系统停留在ENABLE状态,如果PREADY为高,ENABLE状态完成。之后如果没有传输要进行,就进入IDLE状态等待;如果有连续的传输,则进入SETUP状态。
2、仲裁方式
如图3所示,PREADY信号在进入系统ENABLE状态时,若为高,则进行的是无等待传输;若为低,则进行的是有等待传输。
本发明提出的APB总线多个主设备的仲裁方法就是利用PREADY信号可以决定APB系统传输状态这一特性来实现仲裁处理的,具体如下:
(1)当APB主设备发起传输请求时,如果允许执行,APB主设备会正常进入到ENABLE状态,仲裁器将APB主设备的访问信息广播到APB总线,并将APB总线的PREADY信号选通给APB主设备,传输正常执行,可能是无等待传输,也可能是有等待传输,由被访问的APB从设备给出的PREADY 信号决定。
(2)当APB主设备发起传输请求时,如果不允许执行,APB主设备仍会正常进入到ENABLE状态,但仲裁器会将给到APB主设备的APB总线的 PREADY信号屏蔽掉,把给到APB主设备的PREADY信号置为零,使APB 主设备一直停留在ENABLE状态,同时将APB主设备的访问信息缓存起来。直到传输请求被允许执行时,在第一个APB时钟周期,仲裁器会在APB总线上重新发起传输,将存储的APB主设备的访问信息广播到APB总线,将给到 APB主设备的PREADY置为零,在下一个APB时钟周期,将APB总线的PREADY选通给到APB主设备,使APB主设备的访问传输正常执行,可能是无等待传输,也可能是有等待传输,由被访问的APB从设备给出的PREADY 信号决定。
按照上述的方法,被允许执行的APB主设备的传输请求具有0延时;不被允许执行的APB主设备的传输会停留在ENABLE状态,待允许传输之后,再根据APB总线的PREADY信号的值,经过无等待或者有等待的传输过程后,传输正常完成。从不同的APB主设备看来,一直都拥有对APB总线的访问权,可以随时发起传输请求并均可以正常执行完成,无需经过额外的操作来实现总线拥有权的切换。
如图4所示的是APB主设备M1和APB主设备M2同时发起APB总线写操作时的仲裁时序图,其中,M1和M2表示仲裁器的两个APB主设备的输入接口,其中M1优先级高于M2,MO表示仲裁器的APB主设备输出接口,与其他的APB主设备相同,MO每次APB访问传输都要依次经历SETUP和 ENABLE状态。
在时刻点2,M1和M2同时发起APB总线访问请求,都是写操作。经过优先级比较,M1被允许执行,M2需要等待,M1的访问正常执行。此时MO 代表的是M1的接口访问时序,具有0延时,地址线是M1_Addr1,数据线是 M1_Data1,M1_PREADY与MO_PREADY相同。
在时刻点4,MO状态是ENABLE,MO_PREADY变为1,M1_PREADY 变为1,此时M1的访问传输完成。
在时刻点5,M1回到IDLE状态,仲裁器开始处理M2的传输请求,MO 进入SETUP状态,此时MO代表的是M2的接口访问时序,地址线是 M2_Addr1,数据线是M2_Data1,M2_PREADY为0,M2依然处于ENABLE 状态。
在时刻点6,MO进入ENABLE状态,MO_PREADY选通给M2_PREADY, M2_PREADY与MO_PREADY相同,此后一直到时刻点10,因为MO_PREADY一直为0,所以M2_PREADY一直为0,MO和M2一直处于 ENABLE状态。
在时刻点11,MO_PREADY变为1,M2_PREADY变为1,M2的传输完成。
在时刻点12,M2和MO回到IDLE状态。
需要说明一点,在时刻点5到11中的任意一个时刻点,M1可以发起新的传输请求,并依次进入SETUP和ENABLE状态。但此时MO在处理M2 的传输,所以M1的新的访问请求不被允许执行,M1_PREADY被置为0, M1一直停留在ENABLE状态,直到M2的处理完成,MO再去处理M1的新请求。
3、APB仲裁器结构组成介绍
如图5所示,APB仲裁器包括访问仲裁单元、访问缓存单元、以及访问生成单元。
(1)访问仲裁单元
访问仲裁单元的功能是接收来自M1和M2发起的访问操作,并根据仲裁状态机的系统状态,做出访问仲裁。经过仲裁,被允许的访问直接发送到访问生成单元,产生APB总线访问操作,通过M3访问APB总线空间的从设备;不被允许的访问,则将访问相关的信息发送到访问缓存单元。
其仲裁机制如下:
A、如果系统当前处于空闲状态,2个APB主设备同时发起访问,则优先级高的APB主设备发起的访问被允许执行,优先级低的主设备发起的访问不允许执行,其相关的访问信息存储到访问缓存单元中;
B、如果系统当前已经接收到其中一个APB主设备的访问操作,并在执行过程中,此时如果另外一个APB主设备发起访问操作,则这个访问操作不被允许执行,相关信息存储到访问缓存单元中;
C、如果访问缓存单元中已经存有一个APB主设备的访问操作信息,另一个APB主设备发起一个新的访问,此时访问生成单元空闲,接收访问缓存单元里面的访问请求并执行处理,此后访问缓存单元内部存储的访问信息已经无效,访问缓存单元可以被更新,可以存储新的访问信息,此时APB总线正在执行之前存储的APB主设备的访问请求,则新的访问请求不允许被执行,其访问信息会存储到访问缓存单元中。
需要说明的是,通过来自系统顶层的优先级配置,可以使两个APB主设备在访问仲裁单元中以下面两种方式进行仲裁:
A、固定优先级--两个APB主设备有固定的优先级,其中一个APB主设备的优先级固定高于另外一个APB主设备,比如M1>M2或者M2>M1,一旦发生同时请求总线访问权时,优先级高的主设备被允许访问,优先级低的主设备的访问信息存储到访问缓存单元中;
B、轮换优先级--两个APB主设备的访问优先级进行轮换。每当两个APB 主设备同时发起访问,仲裁之后,两个APB主设备的优先级轮换一下,比如当前优先级是M1>M2,经过一次仲裁之后,优先级变为M2>M1。这样从统计效果来看,在一段时间之内经过多次仲裁之后,两个APB主设备可以看成拥有相同的优先级。
(2)访问缓存单元
访问缓存单元的作用是存储当前不被允许执行的APB总线访问操作的相关信息,包括以下信息:访问类型,读或者写;访问地址;写数据,如果是写操作。
访问缓存单元的工作原理如下:
A、访问缓存单元接收访问仲裁单元发送的存储请求和不被允许执行的总线访问信息,将访问信息存储在其内部的存储单元,一般为寄存器;
B、如果在访问缓存单元内部存有不被允许执行的访问信息,访问缓存单元会发送一个访问有效标志到访问生成单元,等待访问生成单元接收并执行;
C、如果访问生成单元可以接收当前存储的不被允许执行的访问信息,会发送一个接收确认标志给到访问缓存单元,访问缓存单元会清空内部的访问信息有效标志;
D、如果访问缓存单元在接收到访问生成单元的接收确认标志时或者之后,有新的不被允许执行的总线访问请求,访问缓存单元会存储新的访问信息并将置位访问信息有效标志;如果没有新的不被允许执行的总线访问请求,则访问缓存单元处于空闲等待状态。
由此,访问缓存单元可以完成存储、发送、清空访问信息的过程。
(3)访问生成单元
访问生成单元的作用是接收访问仲裁单元和访问缓存单元的访问请求,产生APB总线访问操作,访问APB总线空间上的APB从设备。
访问生成单元按照以下规则生成访问操作:
A、如果访问生成单元当前处于空闲状态,访问缓存单元没有存放有效访问信息,访问生成单元接收来自访问仲裁单元的访问请求,生成APB总线访问;
B、如果访问生成单元当前处于空闲状态,访问缓存单元存有一个APB 主设备的有效访问信息,则访问生成单元接收访问缓存单元的访问请求,生成APB总线访问,访问缓存单元清空;如果此过程中另外一个APB主设备发起访问请求,其访问信息会被存入访问缓存单元。
通过以上规则,APB总线仲裁器如果在同一时刻接收到来自不同的APB 主设备的访问请求,APB总线仲裁器优先处理优先级高的APB主设备的访问请求,对于来自不同APB主设备的访问请求,APB总线仲裁器优先处理请求时间早的访问请求。
4、APB仲裁器扩展
使用本发明提出的方法,通过多个仲裁器的并联和串联,可以实现对任意多个APB主设备的仲裁,产生最终的APB主设备接口,去访问APB总线空间。
图6示出了五个APB主设备的仲裁扩展:
A、APB主设备1和2的接口经过APB仲裁器1之后,得到APB主设备接口MO1;
B、APB主设备3和4的接口经过APB仲裁器2之后,得到APB主设备接口MO2;
C、APB主设备接口MO1和MO2经过APB仲裁器3之后,得到APB 主设备接口MO3;
D、APB主设备接口MO3与APB主设备5的接口经过仲裁器4之后,得到APB主设备接口MO4。
MO4是最终的APB主设备接口,它直接对APB总线空间上的APB从设备进行访问。
在所有的APB主设备中,如果同时发起访问请求,优先级最高的主设备访问APB总线具有0延时。在整个仲裁器扩展矩阵中,所有的仲裁器都可以单独的进行优先级配置,从而使整个APB仲裁器矩阵可以灵活的设置不同优先级,满足多种系统需求。
所有的APB主设备,同时拥有对APB总线空间的访问权,可以在任意时刻发起对APB总线空间的访问,并且所有APB主设备发起的访问都可以执行完成,而APB主设备无需在发起访问前,先要通过一定的额外操作获取对 APB总线空间的访问权限,比如系统配置等,简化了每个APB主设备的访问操作,提高了对APB总线空间的访问效率。
综上所述,本发明APB总线多个主设备的仲裁方法通过上述技术方案,在同时接收到所述两个APB主设备访问所述APB从设备的请求指令时,获取预先设定的第一APB主设备的访问优先级、第二APB主设备的访问优先级;将所述第一APB主设备的访问优先级与第二APB主设备的访问优先级相比较;若所述第一APB主设备的访问优先级高于所述第二APB主设备的访问优先级,则允许所述第一APB主设备访问所述APB从设备,并存储所述第二 APB主设备的访问信息;在所述第一APB主设备访问所述APB从设备完成后,允许所述第二APB主设备访问所述APB从设备;每个APB主设备可以在任意时刻发起对APB总线空间的访问,并且所有APB主设备发起的访问都可以执行完成,而APB主设备无需在发起访问前,先要通过一定的额外操作获取对APB总线的访问权限,相对于现有技术,简化了访问操作,提高了访问效率。
为实现上述目的,本发明还提出一种APB总线多个主设备的仲裁系统,所述系统包括至少两个APB主设备、至少一个APB仲裁器、以及若干个APB 从设备,其中,所述两个APB主设备中的第一APB主设备、第二APB主设备均通过APB输出端口与所述APB仲裁器的APB输入端口连接,所述APB 仲裁器通过APB总线与所述若干个APB从设备连接,所述APB仲裁器包括访问仲裁单元、访问缓存单元、以及访问生成单元,其中,所述访问仲裁单元用于接收所述两个APB主设备的访问操作,并作出访问仲裁;所述访问缓存单元用于存储所述第二APB主设备的访问信息;所述访问生成单元用于接收所述访问仲裁单元和访问缓存单元的访问请求,产生APB总线访问操作,访问APB总线空间上的APB从设备;所述系统还包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的APB总线多个主设备的仲裁程序,所述APB总线多个主设备的仲裁程序被所述处理器执行时实现以下步骤:
在同时接收到所述两个APB主设备访问所述APB从设备的请求指令时,获取预先设定的第一APB主设备的访问优先级、第二APB主设备的访问优先级。
可以理解的是,通过系统顶层的优先级配置,可以使所述两个APB主设备在访问仲裁单元中可以固定优先级或者轮换优先级两种方式进行仲裁。
其中,固定优先级指所述两个APB主设备有固定的优先级,其中一个 APB主设备的优先级固定高于另外一个APB主设备;轮换优先级指所述两个 APB主设备的访问优先级进行轮换。
将所述第一APB主设备的访问优先级与第二APB主设备的访问优先级相比较。
若所述第一APB主设备的访问优先级高于所述第二APB主设备的访问优先级,则允许所述第一APB主设备访问所述APB从设备,并存储所述第二 APB主设备的访问信息。
其中,所述访问信息可以包括访问类型、访问地址、写数据中的一种或几种。
将所述第一APB主设备的访问优先级与第二APB主设备的访问优先级相比较后,如果比较结果为第一APB主设备的访问优先级高于所述第二APB 主设备的访问优先级,则在所述第一APB主设备和第二APB主设备同时请求总线访问权时,所述第一APB主设备被允许访问,所述第二APB主设备的访问信息被存储到所述访问缓存单元中。进一步的,所述APB总线多个主设备的仲裁程序被所述处理器执行时还实现以下步骤:
在所述第一APB主设备访问所述APB从设备完成后,允许所述第二APB 主设备访问所述APB从设备。
本发明APB总线多个主设备的仲裁系统通过上述技术方案,在同时接收到所述两个APB主设备访问所述APB从设备的请求指令时,获取预先设定的第一APB主设备的访问优先级、第二APB主设备的访问优先级;将所述第一 APB主设备的访问优先级与第二APB主设备的访问优先级相比较;若所述第一APB主设备的访问优先级高于所述第二APB主设备的访问优先级,则允许所述第一APB主设备访问所述APB从设备,并存储所述第二APB主设备的访问信息;每个APB主设备可以在任意时刻发起对APB总线空间的访问,并且所有APB主设备发起的访问都可以执行完成,而APB主设备无需在发起访问前,先要通过一定的额外操作获取对APB总线的访问权限,相对于现有技术,简化了访问操作,提高了访问效率。
为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有APB总线多个主设备的仲裁程序,所述APB总线多个主设备的仲裁程序被处理器执行时实现如上实施例所述的APB总线多个主设备的仲裁方法的步骤,这里不再赘述。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。