CN106649967B - 一种SoC系统及重发控制套接电路 - Google Patents
一种SoC系统及重发控制套接电路 Download PDFInfo
- Publication number
- CN106649967B CN106649967B CN201610913480.XA CN201610913480A CN106649967B CN 106649967 B CN106649967 B CN 106649967B CN 201610913480 A CN201610913480 A CN 201610913480A CN 106649967 B CN106649967 B CN 106649967B
- Authority
- CN
- China
- Prior art keywords
- transmission
- state
- signal
- slave end
- ahb bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种SoC系统及重发控制套接电路,包括总线控制器、AHB总线、Slave端和重发控制套接电路,重发控制套接电路用于转发AHB总线与Slave端之间的信号,当检测到AHB总线上有读取或写入请求时记录当前AHB总线上用于控制传输属性的信号所对应的状态;仅当检测到Slave端存在重发请求时,将AHB总线上用于控制传输属性的信号的状态改为记录的状态后发送给Slave端,将Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后发送给AHB总线;从而解决因AHB总线不支持重发功能而造成读写操作过程中数据丢失的现象。
Description
技术领域
本发明涉及集成电路设计技术领域,尤指一种SoC系统及重发控制套接电路。
背景技术
当前SoC设计多采用如图1所示AHB总线架构,可快速高效地将不同厂家的外设Slave端集成到系统中。AHB总线和各外设Slave端提供商虽然在设计这些模块时都遵循AHB总线协议基本要求,但是各厂家会根据各自Slave端的特点选择性支持AHB总线协议的可选功能,这样可能会造成AHB总线与Slave端之间通信不匹配问题。例如AHB总线不支持重发功能,而Slave端支持重发功能,当Slave端发起重发请求时总线因不支持该功能而不做任何响应,此时Slave端则因无重发响应而丢失数据。
目前为了解决上述问题,工程上通常采用如下两种方案解决上述AHB总线和Slave端之间重发功能不匹配问题:1、重新设计AHB总线,使其支持或不支持重发功能;2、重新设计Slave端接口,使其支持或不支持重发功能。但是,上述这两种方案均完全违背了使用IP设计的初衷,采用上述两种方案有如下缺点:(1)不容易获得IP源代码;(2)需要花费大量时间研究源代码设计意图,然后才能修改;(3)修改后需要花费大量精力重新验证代码;(4)修改后的代码可靠性大大降低,且原厂家不再提供质量保证和技术支持;(5)修改后代码未经silicon-proven,风险极高。
因此,在不修改原有AHB总线和外设Slave端源代码的前提下,解决AHB总线和Slave端重发功能不匹配问题是本领域技术人员亟需解决的技术问题。
发明内容
本发明实施例提供一种SoC系统及重发控制套接电路,用以解决现有技术中存在的AHB总线和Slave端重发功能不匹配的问题。
本发明实施例提供的一种SoC系统,包括:总线控制器、与所述总线控制器连接的AHB总线以及至少一个Slave端;其特征在于,还包括:连接在各所述Slave端与所述AHB总线之间的重发控制套接电路,所述重发控制套接电路用于转发所述AHB总线与所述Slave端之间的各信号;其中,所述重发控制套接电路包括:
监控记录模块,用于检测所述AHB总线上是否有所述总线控制器向所述Slave端发出的读取或写入请求;当检测到所述AHB总线上有读取或写入请求时,记录当前所述AHB总线上用于控制传输属性的各信号所对应的状态;检测所述Slave端是否存在重发请求;
重发控制模块,用于仅当所述监控记录模块检测到所述Slave端存在重发请求时,将所述AHB总线上用于控制传输属性的各信号的状态改为记录的状态后发送给所述Slave端,将所述Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后发送给所述AHB总线;仅当所述监控记录模块检测到所述Slave端不存在重发请求且检测的所述Slave端为正常应答时,将所述Slave端反馈的传输完成的信号的状态改为表示传输就绪的状态后发送给所述AHB总线。
较佳地,在本发明实施例提供的上述SoC系统中,所述监控记录模块还用于:当检测到所述Slave端存在重发请求时记录所述Slave端存在重发请求的重发次数;
重发控制模块具体用于,仅当所述监控记录模块记录的所述重发次数小于预设值时,将所述AHB总线上用于控制传输属性的各信号的状态改为记录的状态后发送给所述Slave端,并将所述Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后发送给所述AHB总线;仅当所述监控记录模块检测到所述Slave端不存在重发请求且检测的所述Slave端为正常应答时,将所述Slave端反馈的传输完成的信号的状态改为表示传输就绪的状态后发送给所述AHB总线。
较佳地,在本发明实施例提供的上述SoC系统中,所述重发控制模块包括:状态机、第一选择器和第二选择器;其中,
所述状态机用于仅当所述监控记录模块记录的所述重发次数小于预设值时,将所述AHB总线上用于控制传输属性的各信号的状态改为记录的状态后通过所述第一选择器发送给所述Slave端;并将所述Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后通过所述第二选择器发送给所述AHB总线;仅当所述监控记录模块检测到所述Slave端不存在重发请求且检测的所述Slave端为正常应答时,将所述Slave端反馈的传输完成的信号的状态改为表示传输就绪的状态后通过所述第二选择器发送给所述AHB总线。
较佳地,在本发明实施例提供的上述SoC系统中,所述重发控制套接电路还包括:初始化模块,用于当所述监控记录模块记录的所述重发次数大于或等于预设值时,或者当所述监控记录模块检测到所述Slave端不存在重发请求且所述Slave端为正常响应时,将所述重发次数初始化。
较佳地,在本发明实施例提供的上述SoC系统中,所述重发控制套接电路还包括:直接传输模块,用于将所述AHB总线上除了用于控制传输属性的各信号之外的其它信号直接传输给所述Slave端,将所述Slave端上除了所述传输应答的信号和所述传输完成的信号之外的其它信号直接传输给所述AHB总线。
较佳地,在本发明实施例提供的上述SoC系统中,所述用于控制传输属性和状态的信号至少包括:用于表征写入数据总线的信号、用于表征传输类型的信号、用于表征传输大小的信号和所述AHB总线发出的用于表征传输完成的信号。
相应地,本发明实施例还提供了一种重发控制套接电路,所述重发控制套接电路用于连接在AHB总线与Slave端之间转发所述AHB总线与所述Slave端之间的各信号:其中,所述重发控制套接电路包括:
监控记录模块,用于检测所述AHB总线上是否有所述总线控制器向所述Slave端发出的读取或写入请求;当检测到所述AHB总线上有读取或写入请求时,记录当前所述AHB总线上用于控制传输属性的各信号所对应的状态;检测所述Slave端是否存在重发请求;
重发控制模块,用于仅当所述监控记录模块检测到所述Slave端存在重发请求时,将所述AHB总线上用于控制传输属性的各信号的状态改为记录的状态后发送给所述Slave端,将所述Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后发送给所述AHB总线;仅当所述监控记录模块检测到所述Slave端不存在重发请求且检测的所述Slave端为正常应答时,将所述Slave端反馈的传输完成的信号的状态改为表示传输就绪的状态后发送给所述AHB总线。
较佳地,在本发明实施例提供的上述重发控制套接电路中,所述监控记录模块还用于:当检测到所述Slave端存在重发请求时记录所述Slave端存在重发请求的重发次数;
重发控制模块具体用于,仅当所述监控记录模块记录的所述重发次数小于预设值时,将所述AHB总线上用于控制传输属性的各信号的状态改为记录的状态后发送给所述Slave端,并将所述Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后发送给所述AHB总线;仅当所述监控记录模块检测到所述Slave端不存在重发请求且检测的所述Slave端为正常应答时,将所述Slave端反馈的传输完成的信号的状态改为表示传输就绪的状态后发送给所述AHB总线。
较佳地,在本发明实施例提供的上述重发控制套接电路中,所述重发控制模块包括:状态机、第一选择器和第二选择器;其中,
所述状态机用于仅当所述监控记录模块记录的所述重发次数小于预设值时,将所述AHB总线上用于控制传输属性的各信号的状态改为记录的状态后通过所述第一选择器发送给所述Slave端;并将所述Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后通过所述第二选择器发送给所述AHB总线;仅当所述监控记录模块检测到所述Slave端不存在重发请求且检测的所述Slave端为正常应答时,将所述Slave端反馈的传输完成的信号的状态改为表示传输就绪的状态后通过所述第二选择器发送给所述AHB总线。
较佳地,在本发明实施例提供的上述重发控制套接电路中,还包括:初始化模块,用于当所述监控记录模块记录的所述重发次数大于或等于预设值时,或者当所述监控记录模块检测到所述Slave端不存在重发请求且所述Slave端为正常响应时,将所述重发次数初始化。
较佳地,在本发明实施例提供的上述重发控制套接电路中,还包括:直接传输模块,用于将所述AHB总线上除了用于控制传输属性的各信号之外的其它信号直接传输给所述Slave端,将所述Slave端上除了所述传输应答的信号和所述传输完成的信号之外的其它信号直接传输给所述AHB总线。
较佳地,在本发明实施例提供的上述重发控制套接电路中,所述用于控制传输属性和状态的信号至少包括:用于表征写入数据总线的信号、用于表征传输类型的信号、用于表征传输大小的信号和所述AHB总线发出的用于表征传输完成的信号。
本发明有益效果如下:
本发明实施例提供的上述SoC系统及重发控制套接电路,包括总线控制器、AHB总线和Slave端;还包括连接在各Slave端与AHB总线之间的重发控制套接电路,重发控制套接电路用于转发AHB总线与Slave端之间的各信号,其中重发控制套接电路包括监控记录模块和重发控制模块;当监控记录模块检测到AHB总线上有读取或写入请求时记录当前AHB总线上用于控制传输属性的各信号所对应的状态;仅当监控记录模块检测到Slave端存在重发请求时,重发控制模块将AHB总线上用于控制传输属性的各信号的状态改为记录的状态后发送给Slave端,相当于利用重发控制模块向Slave端再次发送读取或写入请求;而重发控制模块将Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后发送给AHB总线;从而使AHB总线认为Slave端只是处于传输的busy状态,因此从AHB总线角度看是本次传输仅是进行中,而Slave端角度看是正在进行重发过程。从而解决因AHB总线不支持重发功能而造成读写操作过程中数据丢失的现象。实现在不修改总线控制器和Slave端源代码的前提下,解决AHB总线和Slave端重发功能不匹配问题。
附图说明
图1为现有SoC系统的结构示意图;
图2为本发明实施例提供的SoC系统的结构示意图之一;
图3为本发明实施例提供的SoC系统的结构示意图之二;
图4为本发明实施例提供的SoC系统中重发控制模块的结构示意图;
图5为本发明实施例提供的SoC系统中重发控制套接电路的工作流程图;
图6a为现有的当没有套接电路时AHB总线协议规定读取操作时序图;
图6b为现有的当没有套接电路时AHB总线协议规定写入操作时序图;
图7a为当设置有本发明实施例提供的套接电路时的读取操作时序图;
图7b为当设置有本发明实施例提供的套接电路时的写入操作时序图。
具体实施方式
下面结合附图,对本发明实施例提供的一种SoC系统及重发控制套接电路的具体实施方式进行详细地说明。
本发明实施例提供的一种SoC系统,如图2所示,包括:总线控制器1、与总线控制器1连接的AHB总线2以及至少一个Slave端3;还包括:连接在各Slave端3与AHB总线2之间的重发控制套接电路4,重发控制套接电路4用于转发AHB总线2与Slave端3之间的各信号;其中,重发控制套接电路4包括:
监控记录模块41,用于检测AHB总线2上是否有总线控制器1向Slave端3发出的读取或写入请求;当检测到AHB总线2上有读取或写入请求时,记录当前AHB总线2上用于控制传输属性的各信号所对应的状态;检测Slave端3是否存在重发请求;
重发控制模块42,用于仅当监控记录模块41检测到Slave端3存在重发请求时,将AHB总线2上用于控制传输属性的各信号的状态改为记录的状态后发送给Slave端3,将Slave端3反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后发送给AHB总线2;仅当监控记录模块41检测到Slave端3不存在重发请求且检测的Slave端3为正常应答时,将Slave端3反馈的传输完成的信号的状态改为表示传输就绪的状态后发送给AHB总线。
本发明实施例提供的上述SoC系统,包括总线控制器、AHB总线和Slave端;还包括连接在各Slave端与AHB总线之间的重发控制套接电路,重发控制套接电路用于转发AHB总线与Slave端之间的各信号,其中重发控制套接电路包括监控记录模块和重发控制模块;当监控记录模块检测到AHB总线上有读取或写入请求时记录当前AHB总线上用于控制传输属性的各信号所对应的状态;仅当监控记录模块检测到Slave端存在重发请求时,重发控制模块将AHB总线上用于控制传输属性的各信号的状态改为记录的状态后发送给Slave端,相当于利用重发控制模块向Slave端再次发送读取或写入请求;而重发控制模块将Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后发送给AHB总线;从而使AHB总线认为Slave端只是处于传输的busy状态,因此从AHB总线角度看是本次传输仅是进行中,而Slave端角度看是正在进行重发过程。从而解决因AHB总线不支持重发功能而造成读写操作过程中数据丢失的现象。实现在不修改总线控制器和Slave端源代码的前提下,解决AHB总线和Slave端重发功能不匹配问题。
较佳地,为了避免AHB总线因无限次应答重发而导致系统锁死的现象,在本发明实施例提供的上述SoC系统中,监控记录模块还用于:当检测到Slave端存在重发请求时记录Slave端存在重发请求的重发次数;
重发控制模块具体用于,仅当监控记录模块记录的重发次数小于预设值时,将AHB总线上用于控制传输属性的各信号的状态改为记录的状态后发送给Slave端,并将Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后发送给AHB总线;仅当监控记录模块检测到Slave端不存在重发请求且检测的Slave端为正常应答时,将Slave端反馈的传输完成的信号的状态改为表示传输就绪的状态后发送给AHB总线。
需要说明的是,在本发明实施例提供的上述SoC系统中,当监控记录模块记录的重发次数大于或等于预设值时,本次传输结束,重发控制套接电路仅用于直接传输信号,不对信号状态进行任何控制,表示本次读取或写入失败。
在本发明实施例提供的上述SoC系统中,用于控制传输属性和状态的信号至少包括:用于表征写入数据总线的信号、用于表征传输类型的信号、用于表征传输大小的信号和AHB总线发出的用于表征传输完成的信号。
在具体实施时,在AHB总线协议中,AHB总线上用于表征传输方向的信号(transferdirection)一般记为hwrite,用于表征传输类型的信号(transfer type)一般记为htrans,用于表征传输大小的信号(transfer size)一般记为hsize,AHB总线发出的用于表征传输完成的信号(transfer done)一般记为hreadyi;Slave端发出的用于表征传输完成的信号(transfer done)一般记为hreadyo,Slave端发出的用于表征传输应答的信号(transferresponse)一般记为hresp。
在具体实施时,AHB总线与Salve端之间,通常会在下次传输开始前,只有用于控制传输属性和状态的信号可能发生状态翻转,其余信号的状态保持不变,因此重发控制模块只用于对这些可能发生状态翻转的信号进行状态控制。并且重发控制模块对于AHB总线发送的用于控制传输属性的各信号,仅当监控记录模块记录的重发次数小于预设值时,才需要改变状态后发送给Slave端,其余时候均是直接传输给Slave端;对于Slave端反馈的传输应答的信号和传输完成的信号,仅当监控记录模块记录的重发次数小于预设值时,才需要改变状态后发送给AHB总线,仅当监控记录模块检测到Slave端不存在重发请求且检测的Slave端为正常应答时,将Slave端反馈的传输完成的信号的状态改为表示传输就绪的状态后发送给AHB总线,其余时候均是直接传输给AHB总线。即本发明实施例提供的上述SoC系统中,重发控制套接电路只有在限定的上述两种情况时,且仅对限定的信号进行状态控制,除此之外的情况均是作为导线用来直接传输信号的。
进一步地,在具体实施时,AHB总线与Salve端之间状态保持不变用的信号一般为用于表征选中Slave端的信号(slave select)即在AHB总线协议中记为hsel信号、用于表征地址总线的信号(address bus)即在AHB总线协议中记为haddr信号、用于表征写入数据总线的信号(write data bus)即在AHB总线协议中记为hwdata信号和用于表读取数据总线的信号(read data bus)即在AHB总线协议中记为hrdata信号。
因此,较佳地,在本发明实施例提供的上述SoC系统中,如图3所示,重发控制套接电路4还包括:直接传输模块43,用于将AHB总线2上除了用于控制传输属性的各信号(例如图3中的hwrite、htrans、hreadyi和hsize)之外的其它信号(例如图3中的hsel、haddr、hwdata)直接传输给Slave端3,将Slave端3上除了传输应答的信号和传输完成的信号之外的其它信号(例如图3中的hrdata)直接传输给AHB总线2。
较佳地,在本发明实施例提供的上述SoC系统中,如图4所示,重发控制模块42包括:状态机421和第一选择器422和第二选择器423;其中,
状态机421用于仅当监控记录模块41记录的重发次数小于预设值时,将AHB总线2上用于控制传输属性的各信号(图4中hwrite、htrans、hreadyi和hsize)的状态改为记录的状态后通过第一选择器422发送给Slave端;并将Slave端3反馈的传输应答的信号(图4中hresp)和传输完成的信号(图4中hreadyo)的状态分别改为表示应答正常的状态和传输未就绪的状态后通过第二选择器423发送给AHB总线1;仅当监控记录模块41检测到Slave端3不存在重发请求且检测的Slave端3为正常应答时,将Slave端3反馈的传输完成的信号(图3中hreadyo)的状态改为表示传输就绪的状态后通过第二选择器发送给AHB总线2。其中,图4中“_temp”表示经状态机改变状态后的信号,“_new”表示经选择器选择后的信号。
较佳地,在本发明实施例提供的上述SoC系统中,还包括:初始化模块,用于当监控记录模块记录的重发次数大于或等于预设值时,或者当监控记录模块检测到Slave端不存在重发请求且Slave端为正常响应时,将重发次数初始化。
下面结合重发控制套接电路的工作流程详细说明本发明实施例提供的上述SoC系统。如图5所示,重发控制套接电路的工作具体包括:
S501、监控记录模块检测AHB总线上是否有总线控制器向Slave端发出的读取或写入请求;
在具体实施时,在AHB总线协议中,当用于表征传输类型的信号htrans不等于0时,表示AHB总线上有读取或写入请求。
S502、当监控记录模块检测到AHB总线上有读取或写入请求时,记录当前AHB总线上用于控制传输属性的各信号所对应的状态;
S503、检测Slave端是否存在重发请求;若否则执行步骤S504,若是则开始执行步骤S505;
在具体实施时,在AHB总线协议中,当Slave端发出的用于表征传输完成的信号hreadyo等于1,且用于表征传输应答的信号hresp等于2,表示Slave端存在重发请求,当Slave端发出的用于表征传输完成的信号hreadyo等于1,且用于表征传输应答的信号hresp不等于2,表示Slave端为正常应答。
S504、当监控记录模块检测的Slave端为正常应答时,将Slave端反馈的传输完成的信号的状态改为表示传输就绪的状态后发送给AHB总线;
在具体实施时,在AHB总线协议中,Slave端反馈的传输完成的信号hreadyo等于1时表示传输就绪。
S505、记录Slave端存在重发请求的重发次数,并确定重发次数是否小于预设值;若否则执行步骤S506,若是则执行S507;
S506、初始化模块将重发次数初始化;
S507、重发控制模块将AHB总线上用于控制传输属性的各信号的状态改为记录的状态后发送给Slave端,并将Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后发送给AHB总线;之后返回继续执行步骤S503,直到重发次数是大于或等于预设值时结束本次数据传输,或者直到检测到Slave端不存在重发请求,且Slave端为正常应答时,实现本次数据写入或读取。
在具体实施时,在AHB总线协议中,Slave端反馈的传输应答的信号hresp等于0时表示应答正常,传输完成的信号hreadyo等于0时表示传输未就绪。
需要说明的是,本发明的实施例中信号等于0、1或2是指AHB总线协议规定的信号的位宽。
当AHB总线不支持重发功能时,以读取操作(写入操作类似)为例,AHB总线的行为描述如下:(1)总线端发出的用于表征传输完成的信号有效后,AHB总线向用于表征传输类型的信号和haddr信号赋值,发起读取操作;(2)Slave端数据尚未就绪,则在用于表征传输应答的信号应答hresp=2,同时将hreadyo信号拉高,准备接受下次htran信号;(3)AHB总线重新发起读取操作;(4)Slave端数据准备就绪,返回数据、且用于表征传输应答的信号应答hresp=0。由于AHB总线不支持重发功能,因此会造成读取过程中丢失数据。
下面通过时序图说明现有SoC系统中AHB总线协议规定读写操作时序,以及设置有本发明实施例提供的SoC系统中的读写操作时序。具体地,现有SoC系统AHB总线协议规定读取操作时序如图6a所示,写入操作时序如图6b所示;本发明实施例提供的SoC系统的取操作时序如图7a所示,写入操作时序如图7b所示。
基于同一发明构思,本发明实施例还提供了一种重发控制套接电路,如图1所示,包括:总线控制器1、与总线控制器1连接的AHB总线2以及至少一个Slave端3;还包括:连接在各Slave端3与AHB总线2之间的重发控制套接电路4,重发控制套接电路4用于转发AHB总线2与Slave端3之间的各信号;其中,重发控制套接电路4包括:
监控记录模块41,用于检测AHB总线2上是否有总线控制器1向Slave端3发出的读取或写入请求;当检测到AHB总线2上有读取或写入请求时,记录当前AHB总线2上用于控制传输属性的各信号所对应的状态;检测Slave端3是否存在重发请求;
重发控制模块42,用于仅当监控记录模块41检测到Slave端3存在重发请求时,将AHB总线2上用于控制传输属性的各信号的状态改为记录的状态后发送给Slave端3,将Slave端3反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后发送给AHB总线2;仅当监控记录模块41检测到Slave端3不存在重发请求且检测的Slave端3为正常应答时,将Slave端3反馈的传输完成的信号的状态改为表示传输就绪的状态后发送给AHB总线。
本发明实施例提供的上述重发控制套接电路,包括监控记录模块和重发控制模块;当监控记录模块检测到AHB总线上有读取或写入请求时记录当前AHB总线上用于控制传输属性的各信号所对应的状态;仅当监控记录模块检测到Slave端存在重发请求时,重发控制模块将AHB总线上用于控制传输属性的各信号的状态改为记录的状态后发送给Slave端,相当于利用重发控制模块向Slave端再次发送读取或写入请求;而重发控制模块将Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后发送给AHB总线;从而使AHB总线认为Slave端只是处于传输的busy状态,因此从AHB总线角度看是本次传输仅是进行中,而Slave端角度看是正在进行重发过程。从而解决因AHB总线不支持重发功能而造成读写操作过程中数据丢失的现象。实现在不修改总线控制器和Slave端源代码的前提下,解决AHB总线和Slave端重发功能不匹配问题。
较佳地,为了避免AHB总线因无限次应答重发而导致系统锁死的现象,在本发明实施例提供的上述重发控制套接电路中,监控记录模块还用于:当检测到Slave端存在重发请求时记录Slave端存在重发请求的重发次数;
重发控制模块具体用于,仅当监控记录模块记录的重发次数小于预设值时,将AHB总线上用于控制传输属性的各信号的状态改为记录的状态后发送给Slave端,并将Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后发送给AHB总线;仅当监控记录模块检测到Slave端不存在重发请求且检测的Slave端为正常应答时,将Slave端反馈的传输完成的信号的状态改为表示传输就绪的状态后发送给AHB总线。
本发明实施例提供的上述重发控制套接电路,应用于现有SoC系统可以完成AHB总线协议规定的重发功能;且具有以下优点:1、无需获知IP源代码;2、无需研究总线控制器和外设Slave端设计意图,也不需要做任何修改;3、仅需要在AHB总线与Slave端之间设置上述重发控制套接电路,极大地降低风险;4、很容易集成到现有SoC系统中,且不增加SoC系统复杂度;5、完全兼容AHB协议时序要求;6、可配置重发重发次数上限,避免外设无限次响应重发请求。
需要说明的是,在本发明实施例提供的上述重发控制套接电路中,当监控记录模块记录的重发次数大于或等于预设值时,本次传输结束,重发控制套接电路仅用于直接传输信号,不对信号状态进行任何控制,表示本次读取或写入失败。
较佳地,在本发明实施例提供的上述重发控制套接电路中,重发控制模块包括:状态机、第一选择器和第二选择器;其中,
状态机用于仅当监控记录模块记录的重发次数小于预设值时,将AHB总线上用于控制传输属性的各信号的状态改为记录的状态后通过第一选择器发送给Slave端;并将Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后通过第二选择器发送给AHB总线;仅当监控记录模块检测到Slave端不存在重发请求且检测的Slave端为正常应答时,将Slave端反馈的传输完成的信号的状态改为表示传输就绪的状态后通过第二选择器发送给AHB总线。
较佳地,在本发明实施例提供的上述重发控制套接电路中,还包括:初始化模块,用于当监控记录模块记录的重发次数大于或等于预设值时,或者当监控记录模块检测到Slave端不存在重发请求且Slave端为正常响应时,将重发次数初始化。
在具体实施时,AHB总线与Salve端之间,通常会在下次传输开始前,只有用于控制传输属性和状态的信号可能发生状态翻转,其余信号的状态保持不变,因此重发控制模块只用于对这些可能发生状态翻转的信号进行状态控制。并且重发控制模块对于AHB总线发送的用于控制传输属性的各信号,仅当监控记录模块记录的重发次数小于预设值时,才需要改变状态后发送给Slave端,其余时候均是直接传输给Slave端;对于Slave端反馈的传输应答的信号和传输完成的信号,仅当监控记录模块记录的重发次数小于预设值时,才需要改变状态后发送给AHB总线,仅当监控记录模块检测到Slave端不存在重发请求且检测的Slave端为正常应答时,将Slave端反馈的传输完成的信号的状态改为表示传输就绪的状态后发送给AHB总线,其余时候均是直接传输给AHB总线。即本发明实施例提供的上述SoC系统中,重发控制套接电路只有在限定的上述两种情况时,且仅对限定的信号进行状态控制,除此之外的情况均是作为导线用来直接传输信号的。
因此,较佳地,在本发明实施例提供的上述重发控制套接电路中,还包括:直接传输模块,用于将AHB总线上除了用于控制传输属性的各信号之外的其它信号直接传输给Slave端,将Slave端上除了传输应答的信号和传输完成的信号之外的其它信号直接传输给AHB总线。
较佳地,在本发明实施例提供的上述重发控制套接电路中,用于控制传输属性和状态的信号至少包括:用于表征写入数据总线的信号、用于表征传输类型的信号、用于表征传输大小的信号和AHB总线发出的用于表征传输完成的信号。
本发明实施例提供的上述SoC系统及重发控制套接电路,包括总线控制器、AHB总线和Slave端;还包括连接在各Slave端与AHB总线之间的重发控制套接电路,重发控制套接电路用于转发AHB总线与Slave端之间的各信号,其中重发控制套接电路包括监控记录模块和重发控制模块;当监控记录模块检测到AHB总线上有读取或写入请求时记录当前AHB总线上用于控制传输属性的各信号所对应的状态;仅当监控记录模块检测到Slave端存在重发请求时,重发控制模块将AHB总线上用于控制传输属性的各信号的状态改为记录的状态后发送给Slave端,相当于利用重发控制模块向Slave端再次发送读取或写入请求;而重发控制模块将Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后发送给AHB总线;从而使AHB总线认为Slave端只是处于传输的busy状态,因此从AHB总线角度看是本次传输仅是进行中,而Slave端角度看是正在进行重发过程。从而解决因AHB总线不支持重发功能而造成读写操作过程中数据丢失的现象。实现在不修改总线控制器和Slave端源代码的前提下,解决AHB总线和Slave端重发功能不匹配问题。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种SoC系统,包括:总线控制器、与所述总线控制器连接的AHB总线以及至少一个Slave端;其特征在于,还包括:连接在各所述Slave端与所述AHB总线之间的重发控制套接电路,所述重发控制套接电路用于转发所述AHB总线与所述Slave端之间的各信号;其中,所述重发控制套接电路包括:
监控记录模块,用于检测所述AHB总线上是否有所述总线控制器向所述Slave端发出的读取或写入请求;当检测到所述AHB总线上有读取或写入请求时,记录当前所述AHB总线上用于控制传输属性的各信号所对应的状态;检测所述Slave端是否存在重发请求;
重发控制模块,用于仅当所述监控记录模块检测到所述Slave端存在重发请求时,将所述AHB总线上用于控制传输属性的各信号的状态改为记录的状态后发送给所述Slave端,将所述Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后发送给所述AHB总线;仅当所述监控记录模块检测到所述Slave端不存在重发请求且检测的所述Slave端为正常应答时,将所述Slave端反馈的传输完成的信号的状态改为表示传输就绪的状态后发送给所述AHB总线;
其中,所述用于控制传输属性和状态的信号至少包括:用于表征写入数据总线的信号、用于表征传输类型的信号、用于表征传输大小的信号和所述AHB总线发出的用于表征传输完成的信号。
2.如权利要求1所述的SoC系统,其特征在于,所述监控记录模块还用于:当检测到所述Slave端存在重发请求时记录所述Slave端存在重发请求的重发次数;
重发控制模块具体用于,仅当所述监控记录模块记录的所述重发次数小于预设值时,将所述AHB总线上用于控制传输属性的各信号的状态改为记录的状态后发送给所述Slave端,并将所述Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后发送给所述AHB总线;仅当所述监控记录模块检测到所述Slave端不存在重发请求且检测的所述Slave端为正常应答时,将所述Slave端反馈的传输完成的信号的状态改为表示传输就绪的状态后发送给所述AHB总线。
3.如权利要求2所述的SoC系统,其特征在于,所述重发控制模块包括:状态机、第一选择器和第二选择器;其中,
所述状态机用于仅当所述监控记录模块记录的所述重发次数小于预设值时,将所述AHB总线上用于控制传输属性的各信号的状态改为记录的状态后通过所述第一选择器发送给所述Slave端;并将所述Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后通过所述第二选择器发送给所述AHB总线;仅当所述监控记录模块检测到所述Slave端不存在重发请求且检测的所述Slave端为正常应答时,将所述Slave端反馈的传输完成的信号的状态改为表示传输就绪的状态后通过所述第二选择器发送给所述AHB总线。
4.如权利要求2所述的SoC系统,其特征在于,所述重发控制套接电路还包括:初始化模块,用于当所述监控记录模块记录的所述重发次数大于或等于预设值时,或者当所述监控记录模块检测到所述Slave端不存在重发请求且所述Slave端为正常响应时,将所述重发次数初始化。
5.如权利要求1-4任一项所述的SoC系统,其特征在于,所述重发控制套接电路还包括:直接传输模块,用于将所述AHB总线上除了用于控制传输属性的各信号之外的其它信号直接传输给所述Slave端,将所述Slave端上除了所述传输应答的信号和所述传输完成的信号之外的其它信号直接传输给所述AHB总线。
6.一种重发控制套接电路,其特征在于,所述重发控制套接电路用于连接在AHB总线与Slave端之间转发所述AHB总线与所述Slave端之间的各信号:其中,所述重发控制套接电路包括:
监控记录模块,用于检测所述AHB总线上是否有所述总线控制器向所述Slave端发出的读取或写入请求;当检测到所述AHB总线上有读取或写入请求时,记录当前所述AHB总线上用于控制传输属性的各信号所对应的状态;检测所述Slave端是否存在重发请求;
重发控制模块,用于仅当所述监控记录模块检测到所述Slave端存在重发请求时,将所述AHB总线上用于控制传输属性的各信号的状态改为记录的状态后发送给所述Slave端,将所述Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后发送给所述AHB总线;仅当所述监控记录模块检测到所述Slave端不存在重发请求且检测的所述Slave端为正常应答时,将所述Slave端反馈的传输完成的信号的状态改为表示传输就绪的状态后发送给所述AHB总线;
所述用于控制传输属性和状态的信号至少包括:用于表征写入数据总线的信号、用于表征传输类型的信号、用于表征传输大小的信号和所述AHB总线发出的用于表征传输完成的信号。
7.如权利要求6所述的重发控制套接电路,其特征在于,所述监控记录模块还用于:当检测到所述Slave端存在重发请求时记录所述Slave端存在重发请求的重发次数;
重发控制模块具体用于,仅当所述监控记录模块记录的所述重发次数小于预设值时,将所述AHB总线上用于控制传输属性的各信号的状态改为记录的状态后发送给所述Slave端,并将所述Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后发送给所述AHB总线;仅当所述监控记录模块检测到所述Slave端不存在重发请求且检测的所述Slave端为正常应答时,将所述Slave端反馈的传输完成的信号的状态改为表示传输就绪的状态后发送给所述AHB总线。
8.如权利要求7所述的重发控制套接电路,其特征在于,所述重发控制模块包括:状态机、第一选择器和第二选择器;其中,
所述状态机用于仅当所述监控记录模块记录的所述重发次数小于预设值时,将所述AHB总线上用于控制传输属性的各信号的状态改为记录的状态后通过所述第一选择器发送给所述Slave端;并将所述Slave端反馈的传输应答的信号和传输完成的信号的状态分别改为表示应答正常的状态和传输未就绪的状态后通过所述第二选择器发送给所述AHB总线;仅当所述监控记录模块检测到所述Slave端不存在重发请求且检测的所述Slave端为正常应答时,将所述Slave端反馈的传输完成的信号的状态改为表示传输就绪的状态后通过所述第二选择器发送给所述AHB总线。
9.如权利要求7所述的重发控制套接电路,其特征在于,还包括:初始化模块,用于当所述监控记录模块记录的所述重发次数大于或等于预设值时,或者当所述监控记录模块检测到所述Slave端不存在重发请求且所述Slave端为正常响应时,将所述重发次数初始化。
10.如权利要求6-9任一项所述的重发控制套接电路,其特征在于,还包括:直接传输模块,用于将所述AHB总线上除了用于控制传输属性的各信号之外的其它信号直接传输给所述Slave端,将所述Slave端上除了所述传输应答的信号和所述传输完成的信号之外的其它信号直接传输给所述AHB总线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610913480.XA CN106649967B (zh) | 2016-10-20 | 2016-10-20 | 一种SoC系统及重发控制套接电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610913480.XA CN106649967B (zh) | 2016-10-20 | 2016-10-20 | 一种SoC系统及重发控制套接电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106649967A CN106649967A (zh) | 2017-05-10 |
CN106649967B true CN106649967B (zh) | 2019-12-24 |
Family
ID=58855475
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610913480.XA Active CN106649967B (zh) | 2016-10-20 | 2016-10-20 | 一种SoC系统及重发控制套接电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106649967B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005284580A (ja) * | 2004-03-29 | 2005-10-13 | Mitsubishi Electric Corp | バス装置 |
CN101604302A (zh) * | 2009-07-20 | 2009-12-16 | 威盛电子股份有限公司 | 高级外围总线桥及其控制方法 |
WO2014006451A1 (en) * | 2012-07-03 | 2014-01-09 | Freescale Semiconductor, Inc. | Data path configuration component, signal processing device and method therefor |
CN104850524A (zh) * | 2015-05-29 | 2015-08-19 | 大唐微电子技术有限公司 | 一种跨时钟域的ahb总线桥接方法和装置 |
CN105573951A (zh) * | 2015-12-24 | 2016-05-11 | 哈尔滨理工大学 | 一种针对数据流传输的ahb总线接口系统 |
-
2016
- 2016-10-20 CN CN201610913480.XA patent/CN106649967B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005284580A (ja) * | 2004-03-29 | 2005-10-13 | Mitsubishi Electric Corp | バス装置 |
CN101604302A (zh) * | 2009-07-20 | 2009-12-16 | 威盛电子股份有限公司 | 高级外围总线桥及其控制方法 |
WO2014006451A1 (en) * | 2012-07-03 | 2014-01-09 | Freescale Semiconductor, Inc. | Data path configuration component, signal processing device and method therefor |
CN104850524A (zh) * | 2015-05-29 | 2015-08-19 | 大唐微电子技术有限公司 | 一种跨时钟域的ahb总线桥接方法和装置 |
CN105573951A (zh) * | 2015-12-24 | 2016-05-11 | 哈尔滨理工大学 | 一种针对数据流传输的ahb总线接口系统 |
Non-Patent Citations (1)
Title |
---|
嵌入式CPU 总线接口单元设计;刘钟宇;《微处理机》;20140815(第4期);12-14 * |
Also Published As
Publication number | Publication date |
---|---|
CN106649967A (zh) | 2017-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7882289B2 (en) | Slave apparatus in a data transmission system, data transmission system and data transmission method in a data transmission system | |
US9747237B2 (en) | Methods and apparatus for reliable detection and enumeration of devices | |
JP6854407B2 (ja) | カード装置、ホスト装置および通信方法 | |
US20040148451A1 (en) | USB controlling apparatus for data transfer between computers and method for the same | |
US20070162634A1 (en) | Communication apparatus and communication control method | |
TWI778063B (zh) | 通用串列匯流排之主機對主機自動切換 | |
CN114048164B (zh) | 芯片互联方法、系统、设备及可读存储介质 | |
JP5700514B2 (ja) | 通信速度制御装置および通信速度制御方法 | |
US10075609B2 (en) | Information processing apparatus and control method thereof for reducing transition time from a power-save mode | |
US7457898B2 (en) | Substitute SATA host for communicating with a SATA device | |
CN111756858B (zh) | 嵌入式设备的远程开发处理系统、方法及装置 | |
US20130254440A1 (en) | Devices and methods for transmitting usb termination signals over extension media | |
KR20060114270A (ko) | 마스터디바이스, 그 제어방법과 마스터디바이스를 갖는전자장치 | |
JP2008521080A (ja) | マルチメディア・カード・インターフェース方法、コンピュータ・プログラム及び装置 | |
WO2010115363A1 (zh) | 一种数据传输速度的自适应方法及外围设备 | |
US11281516B2 (en) | Error handling method and associated error handling architecture for transmission interfaces | |
JP7146650B2 (ja) | 通信装置、通信方法、プログラム、および、通信システム | |
CN108491343B (zh) | 终端设备、数据传输系统及方法 | |
CN106649967B (zh) | 一种SoC系统及重发控制套接电路 | |
JP6434630B2 (ja) | Usb otgデバイス識別システムおよび装置 | |
JP2011215855A (ja) | Usbデバイス制御回路、及びusbデバイスの制御方法 | |
WO2017049973A1 (zh) | 数据传输控制方法、主机设备、usb设备及系统 | |
CN109542812A (zh) | 数据通信控制方法、装置及终端设备 | |
CN111414322B (zh) | 一种Nand flash接口工作协议自适应方法、系统、设备及存储介质 | |
JP2012063851A (ja) | 周辺装置制御回路およびそれを備えた情報処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200922 Address after: Room 1201, building a, 1181 Bin'an Road, Changhe street, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Zhejiang Xinsheng Electronic Technology Co., Ltd Address before: Hangzhou City, Zhejiang province Binjiang District 310053 shore road 1187 Patentee before: ZHEJIANG DAHUA TECHNOLOGY Co.,Ltd. |