本发明涉及的是一种总线仲裁机制,具体涉及一种新型中间层fpga总线仲裁机制及其实施方法。
背景技术:
在一体化系统中blvds总线通信采用多点相连,半双工通信,总线宽度为4位数据线,1位时钟线;时钟的频率为20mhz。总线采用多对多通信模式,实现多主通信,因此必须具有总线仲裁机制。任何节点需要发起一次传输,必须先取得总线控制权,主控节点在发送1个数据帧后,立即放弃总线控制权,该节点仍有数据需要发送,则需重新申请总线控制权,该机制确保了各节点的通信实时性。
综上所述,本发明设计了一种新型中间层fpga总线仲裁机制及其实施方法。
技术实现要素:
针对现有技术上存在的不足,本发明目的是在于提供一种新型中间层fpga总线仲裁机制及其实施方法,总线仲裁模块依据时间优先原则进行总线控制权的分配,并向节点发送申请成功信号,节点在取得控制权后进行1次数据传输,为防止节点长时间占有总线,规定每次传输数据为1个数据帧(最大为1kb),传输完成后即释放总线控制权(撤销总线控制申请信号)。仲裁模块对每次传输进行限时控制,以防止节点通信故障时引起长时间占用总线。
为了实现上述目的,本发明是通过如下的技术方案来实现:一种新型中间层fpga总线仲裁机制,包括外部信号滤波模块、计数器模块以及仲裁模块,外部信号滤波模块与仲裁模块连接,仲裁模块内置有为超时判断提供数据的计数器模块。
一种新型中间层fpga总线仲裁机制的实施方法,其仲裁机制的流程如下:
(1)一次扫描全部申请线,如果全部无效就继续扫描,非全部无效即进入顺序扫描程序;
(2)扫描到请求有效时,将有效请求存入优先级列表的最前面,输出有效应答,并对当前应答路开始计时。在此期间,继续重新扫描;
(3)判断是否完成本次扫描,未完成则继续扫描,已完成扫描则判断申请是否全部有效;
(4)如果申请全部有效存入了优先列表,则一直监测列表是否有请求撤销,如果有请求撤销了,需及时更新优先级列表,删除已撤销的位,其后的路数依次前移一位,然后进入步骤5;
(5)如果无请求撤销且本次扫描完成,则进入步骤5;
(6)判断是否超时,如果超时,列表全部前移一位,清除当前已应答的总线,然后返回超时判断状态;如果未超时,进入下一步骤;
(7)判断当前扫描路是否有效,如果无效,继续判断无效路是否在优先级列表中,如果不在,进入步骤5,在,则进入步骤4,监测请求撤销情况的步骤;
(8)如果当前扫描路有效,判断此路是否在优先级列表中;
(9)如果有效路已经存在于列表中,则不存入列表,避免重复申请,判断是否超时,如果超时,列表全部前移一位,清除当前已应答的总线,进入步骤5;未超时则直接进入步骤5;
(10)如果有效路不存在列表中,则将此路存入优先级列表的队尾,判断是否超时,如果超时,列表全部前移一位,清除当前已应答的总线,进入步骤5;未超时则进入下一步骤;
(11)判断优先级列表是否已满,已满进入步骤4,未满进入步骤5;
(12)其他情况进入步骤1。
本发明的有益效果:本发明总线具有多个节点互联,每个节点具有总线控制申请信号线(输出)和申请成功信号线(输入),每个节点在发起总线通信前需向总线仲裁模块申请总线控制权,总线仲裁模块依据时间优先原则进行总线控制权的分配,并向节点发送申请成功信号,节点在取得控制权后进行1次数据传输,为防止节点长时间占有总线,规定每次传输数据为1个数据帧(最大为1kb),传输完成后即释放总线控制权(撤销总线控制申请信号)。仲裁模块对每次传输进行限时控制,以防止节点通信故障时引起长时间占用总线。
附图说明
下面结合附图和具体实施方式来详细说明本发明;
图1为本发明的blvds总线仲裁模块原理图;
图2为本发明的仲裁机制fpga组成模块示意图;
图3为本发明的仲裁机制流程图。
具体实施方式
为使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本发明。
参照图1-3,本具体实施方式采用以下技术方案:一种新型中间层fpga总线仲裁机制,包括外部信号滤波模块、计数器模块以及仲裁模块,外部信号滤波模块与仲裁模块连接,仲裁模块内置有为超时判断提供数据的计数器模块。因为请求信号为外部信号,需要先进行滤波,避免出现毛刺。
一种新型中间层fpga总线仲裁机制的实施方法,其仲裁机制的流程如下:
(1)一次扫描全部申请线,如果全部无效就继续扫描,非全部无效即进入顺序扫描程序;
(2)扫描到请求有效时,将有效请求存入优先级列表的最前面,输出有效应答,并对当前应答路开始计时。在此期间,继续重新扫描;
(3)判断是否完成本次扫描,未完成则继续扫描,已完成扫描则判断申请是否全部有效;
(4)如果申请全部有效存入了优先列表,则一直监测列表是否有请求撤销,如果有请求撤销了,需及时更新优先级列表,删除已撤销的位,其后的路数依次前移一位,然后进入步骤(5);
(5)如果无请求撤销且本次扫描完成,则进入步骤(5);
(6)判断是否超时,如果超时,列表全部前移一位,清除当前已应答的总线,然后返回超时判断状态;如果未超时,进入下一步骤;
(7)判断当前扫描路是否有效,如果无效,继续判断无效路是否在优先级列表中,如果不在,进入步骤(5),在,则进入步骤(4),监测请求撤销情况的步骤;
(8)如果当前扫描路有效,判断此路是否在优先级列表中;
(9)如果有效路已经存在于列表中,则不存入列表,避免重复申请,判断是否超时,如果超时,列表全部前移一位,清除当前已应答的总线,进入步骤(5);未超时则直接进入步骤(5);
(10)如果有效路不存在列表中,则将此路存入优先级列表的队尾,判断是否超时,如果超时,列表全部前移一位,清除当前已应答的总线,进入步骤(5);未超时则进入下一步骤;
(11)判断优先级列表是否已满,已满进入步骤(4),未满进入步骤(5);
(12)其他情况进入步骤(1)。
本具体实施方式的仲裁模拟中采用高速时钟(50mhz)扫描所有节点的申请线(req#),并依据信号的先后顺序将节点号存入优先级序列fifo,若在同一时刻存在多个申请信号,则按照节点号从小到大优先排序。仲裁输出模块根据优先级序列fifo中存储的节点号确定输出对应的申请成功信号(ack#)。当节点放弃总线控制权(撤销req#信号)时,引发仲裁模块清除该节点在优先级序列fifo中的标志,并进行下一次仲裁。
仲裁模块的fpga接口列表如表1所示。
表1仲裁模块接口列表
本具体实施方式总线仲裁模块依据时间优先原则进行总线控制权的分配,并向节点发送申请成功信号,节点在取得控制权后进行1次数据传输,为防止节点长时间占有总线,规定每次传输数据为1个数据帧(最大为1kb),传输完成后即释放总线控制权(撤销总线控制申请信号)。仲裁模块对每次传输进行限时控制,以防止节点通信故障时引起长时间占用总线。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
1.一种新型中间层fpga总线仲裁机制,其特征在于,包括外部信号滤波模块、计数器模块以及仲裁模块,外部信号滤波模块与仲裁模块连接,仲裁模块内置有为超时判断提供数据的计数器模块。
2.根据权利要求1所述的一种新型中间层fpga总线仲裁机制及其实施方法,其特征在于,其仲裁机制的流程如下:
(1)一次扫描全部申请线,如果全部无效就继续扫描,非全部无效即进入顺序扫描程序;
(2)扫描到请求有效时,将有效请求存入优先级列表的最前面,输出有效应答,并对当前应答路开始计时;在此期间,继续重新扫描;
(3)判断是否完成本次扫描,未完成则继续扫描,已完成扫描则判断申请是否全部有效;
(4)如果申请全部有效存入了优先列表,则一直监测列表是否有请求撤销,如果有请求撤销了,需及时更新优先级列表,删除已撤销的位,其后的路数依次前移一位,然后进入步骤(5);
(5)如果无请求撤销且本次扫描完成,则进入步骤(5);
(6)判断是否超时,如果超时,列表全部前移一位,清除当前已应答的总线,然后返回超时判断状态;如果未超时,进入下一步骤;
(7)判断当前扫描路是否有效,如果无效,继续判断无效路是否在优先级列表中,如果不在,进入步骤(5),在,则进入步骤(4),监测请求撤销情况的步骤;
(8)如果当前扫描路有效,判断此路是否在优先级列表中;
(9)如果有效路已经存在于列表中,则不存入列表,避免重复申请,判断是否超时,如果超时,列表全部前移一位,清除当前已应答的总线,进入步骤(5);未超时则直接进入步骤(5);
(10)如果有效路不存在列表中,则将此路存入优先级列表的队尾,判断是否超时,如果超时,列表全部前移一位,清除当前已应答的总线,进入步骤(5);未超时则进入下一步骤;
(11)判断优先级列表是否已满,已满进入步骤(4),未满进入步骤(5);
(12)其他情况进入步骤(1)。
技术总结