实现高速数据传输的方法及通用接口芯片的制作方法

文档序号:6491769阅读:157来源:国知局
实现高速数据传输的方法及通用接口芯片的制作方法
【专利摘要】本发明提供了一种实现高速数据传输的方法。该方法通过利用预设的位宽对待发送的数据包进行重新组包并加入检验码,对于正确的响应消息立即释放系统资源,对于错误的响应消息进行数据包自动重传工作,降低了芯片的复杂程度和功耗水平,并保证了数据交换的速度和质量。本发明还提供一种实现高速数据传输的通用接口芯片。
【专利说明】实现高速数据传输的方法及通用接口芯片
【技术领域】
[0001]本发明涉及一种接口芯片数据传输技术,特别涉及一种实现高速数据传输的方法及通用接口芯片。
【背景技术】
[0002]随着当代专用集成电路的迅猛发展,集成电路(芯片)的应用已经深入到各个领域中。而在电子电路系统设计中,简单的由单一芯片组成的系统方案已经被多芯片组的方案所代替,单板中芯片间的关系更加密切,芯片之间互联互访无法避免。与此同时,伴随着业务数量的激增和业务复杂度的增加,芯片互联互访问题已经逐渐成为系统、整机和单板性能的瓶颈,因此我们迫切地需要一种更为通用、高速而且简单高效的接口来完成集成电路(芯片)之间的数据交换及通信工作。
[0003]芯片间互联接口可以划分成并行接口和串行接口两大类,也可以按传输速度的数量级别划分成高速和低速接口两类。目前存在的主流接口主要有:UART,SPI,IIC,Serdes,USB、LPT和IDE等等。若按照并/串类划分,UART,SPI, IIC, Serdes, USB都是采用串行的方式进行传输的,而LPT和IDE则为并行传输接口。若按照高/低速类型划分,Serdes,USB和IDE为高速接口 ;UART, SPI, IIC和LPT属于低速接口。
[0004]然而,接口在集成电路(芯片)逻辑实现时其逻辑复杂度是不可忽略的问题。逻辑复杂度表征了硬件电路的规模、面积,也从侧面反映出了功耗水平,体现了电路实现时的代价和投入。高速接口往往具有更高的逻辑复杂度和协议标准,在获得更高传输带宽的同时也增加了芯片的复杂程度和功耗水平。而低速传输接口则具有简单的逻辑设计特性,但由于其协议简单在实际应用时难以保证其传输的QoS(Quality of Service,即服务质量)。

【发明内容】

[0005]本发明的主要目的是提供一种实现高速数据传输的方法,以降低芯片的复杂程度和功耗水平,并保证数据交换的速度和质量。
[0006]此外,还提供一种实现高速数据传输的通用接口芯片,以降低芯片的复杂程度和功耗水平,并保证数据通信的质量。
[0007]—种实现高速数据传输的方法,适用于通用接口芯片,特征在于,该方法包括步骤:A、发送端通用接口芯片侦测并接收待发送的数据包;B、发送端通用接口芯片对接收的数据包按照预设的位宽进行重新组包并加入校验码,将重新组包的数据包发送给接收端通用接口芯片;C、发送端通用接口芯片从接收端通用接口芯片接收响应消息;D、发送端通用接口芯片根据收到的响应消息,对数据包进行相应的处理。
[0008]进一步地,该方法还包括:E、接收端通用接口芯片接收从发送端通用接口芯片发送来的数据包;F、接收端通用接口芯片对接收的数据包解包并校验,根据校验结果发送相应的响应消息给发送端通用接口芯片。
[0009]进一步地,所述步骤F包括:接收端通用接口芯片对接收的数据包解包,及校验接收的数据包是否正确;接收端通用接口芯片在数据包校验正确时,将校验正确的数据包发送给对应的子系统,并返回一个接收正确的响应消息给发送端通用接口芯片;接收端通用接口芯片在数据包校验错误时,丢弃校验错误的数据包,并返回一个接收错误的响应消息给发送端通用接口芯片。
[0010]进一步地,所述步骤D包括:发送端通用接口芯片在收到接收正确的响应消息时,释放内部占用资源以继续发送其他待发送的数据包;及在收到接收错误的响应消息时,重新发送对应的数据包。
[0011]进一步地,所述步骤B包括:发送端通用接口芯片根据预设的仲裁策略为待发送的数据制定数据发送队列;发送端通用接口芯片对当前数据发送队列中处于最优先顺位的数据包按照预设的位宽进行重新组包并加入校验码;发送端通用接口芯片将重新组包的数据包发送给接收端通用接口芯片。
[0012]一种实现高速数据传输的通用接口芯片,所述通用接口芯片包括打包仲裁模块及打包模块,其中:打包仲裁模块,用于侦测并接收待发送的数据包;打包模块,用于对接收的数据包按照预设的位宽进行重新组包并加入校验码,将重新组包的数据包发送给接收端通用接口芯片,接收从接收端通用接口芯片发送来的响应消息,及根据收到的响应消息,对数据包进行相应的处理。
[0013]进一步地,所述通用接口芯片还包括包接收模块及解包模块,其中:包接收模块,用于接收从发送端通用接口芯片发送来的数据包;解包模块,用于对接收的数据包解包并校验,根据校验结果发送相应的响应消息给发送端通用接口芯片。
[0014]进一步地,所述解包模块用于:对接收的数据包解包,及校验接收的数据包是否正确;在数据包校验正确时,将校验正确的数据包发送给对应的子系统,并返回一个接收正确的响应消息给发送端通用接口芯片;在数据包校验错误时,丢弃校验错误的数据包,并返回一个接收错误的响应消息给发送端通用接口芯片。
[0015]进一步地,所述打包模块用于:在收到接收正确的响应消息时,释放内部占用资源以继续发送其他待发送的数据包;及在收到接收错误的响应消息时,重新发送对应的数据包。
[0016]进一步地,所述打包模块用于:根据预设的仲裁策略为待发送的数据制定数据发送队列;对当前数据发送队列中处于最优先顺位的数据包按照预设的位宽进行重新组包并加入校验码;将重新组包的数据包发送给接收端通用接口芯片。
[0017]相较现有技术,本发明通过利用预设的位宽对待发送的数据包进行重新组包并加入检验码,对于正确的响应消息立即释放系统资源,对于错误的响应消息进行数据包自动重传工作,降低了芯片的复杂程度和功耗水平,并保证了数据交换的速度和质量。
【专利附图】

【附图说明】
[0018]图1为本发明实现高速数据传输的通用接口芯片较佳实施例的系统架构图。
[0019]图2为图1中通用接口芯片之间数据传输的示例图。
[0020]图3为利用图1中通用接口芯片实现高速数据传输的方法较佳实施例的具体实施流程图。
[0021]本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。【具体实施方式】
[0022]应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0023]如图1所示,为本发明通用接口芯片较佳实施例的系统架构图。该通用接口芯片I用于数据交换及通信传输,例如图2所示,发送端的通用接口芯片I将与其保持通信互连的至少一个子系统10 (图中以3个为例)的数据,发送给与接收端的通用接口芯片I保持通信互连的至少一个子系统10 (图中以3个为例)。所述通用接口芯片I的物理层的连接针脚(pin)数目是可变的。
[0024]所述通用接口芯片I包括打包仲裁模块11、打包模块12、包接收模块13及解包模块15。
[0025]为更好的描述本发明,以下分发送端通用接口芯片I和接收端通用接口芯片I来阐述打包仲裁模块11、打包模块12、包接收模块13及解包模块15的功能。需要说明的是:发送端通用接口芯片I指需将数据发送另一个通用接口芯片I的通用接口芯片I ;接收端通用接口芯片I指接收从发送端通用接口芯片I发送来的数据的通用接口芯片I。
[0026]一、发送端通用接口芯片1:
[0027]该打包仲裁模块11,用于侦测并接收来自子系统10的待发送的数据包,根据预设的仲裁策略为待发送的数据制定数据发送队列。
[0028]在本实施例中,所述仲裁策略包括:为各子系统10配置数据传输优先级,优先级高的先传输;相同优先级时,则短数据先传输;相同优先级且数据长度相同时,则先到先传输;相同优先级、数据长度相同且到来的时间节点相同时,则优先传输来自最久没有进行数据传输的子系统10 (即:数据源)的数据。在本发明的其他实施例中,所述仲裁策略被配置包含其他任意适用的数据传输冲突仲裁策略。
[0029]该打包模块12,用于对当前数据发送队列中处于最优先顺位的数据包按照预设的位宽进行重新组包,并加入校验码。
[0030]在本实施例中,所述预设的位宽与通用接口芯片I的物理层的连接针脚数目一致;在本发明的其他实施例中,所述预设的位宽与通用接口芯片I的物理层的连接针脚数目不一致。
[0031]来自子系统10的待发送的数据包的位宽既可能小于所述预设的位宽,也可能大于所述预设的位宽。在本实施例中,该打包模块12对于小于所述预设的位宽的待发送的数据包重新组包的方式是拼接,对于大于所述预设的位宽的待发送的数据包重新组包的方式是切分,以使得重新组包后的数据包的位宽等于所述预设的位宽。
[0032]在本实施例中,所述校验码包括CRC(Cyclic Redundancy Check,循环冗余校验)码及ACK Number (Acknowledgment Number,确认码);在本发明的其他实施例中,所述校验码包括其他任意适用的校验码。
[0033]该打包模块12,还用于将重新组包的数据包发送给接收端通用接口芯片I。
[0034]在本实施例中,接收端通用接口芯片I可能由于时钟的偏斜与抖动而不能正确的获得CRC码及ACK Number,因此发送端通用接口芯片I把重新组包的数据包的发送时序延展成3个通用接口芯片I的有效工作时钟;接收端通用接口芯片I在接收时对中间的那个周期的值进行采样,从而避免信息采样出错而导致差错校验的失效,同时在通用接口芯片I的工作时钟频率较高时也能够保证检验信息的准确性。
[0035]二、接收端通用接口芯片1:
[0036]该包接收模块13,用于接收从发送端通用接口芯片I发送来的数据包。
[0037]该解包模块15,用于对接收的数据包解包,及校验接收的数据包是否正确。在本实施例中,该解包模块15对接收的数据包进行CRC码及ACK Number校验;在本发明的其他实施例中,该解包模块15对接收的数据包进行其他任意适用的检验码的校验。
[0038]该解包模块15,还用于在数据包校验正确时,将校验正确的数据包发送给对应的子系统10,并返回一个接收正确的响应消息给发送端通用接口芯片1,及在数据包校验错误时,丢弃校验错误的数据包,并返回一个接收错误的响应消息给发送端通用接口芯片I。
[0039]三、发送端通用接口芯片1:
[0040]该打包模块12,还用于接收从接收端通用接口芯片I发送来的响应消息,在收到接收正确的响应消息时,释放内部占用资源以继续发送其他待发送的数据包,及在收到接收错误的响应消息时,重新发送对应的数据包。
[0041]如图3所示,为利用图1中通用接口芯片实现高速数据传输的方法较佳实施例的具体实施流程图。
[0042]需要强调的是:图3所示流程图仅为一个较佳实施例,本领域的技术人员当知,任何围绕本发明思想构建的实施例都不应脱离于如下技术方案涵盖的范围:
[0043]发送端通用接口芯片1:侦测并接收来自子系统10的待发送的数据包;对接收的数据包按照预设的位宽进行重新组包,并加入校验码;将重新组包的数据包发送给接收端通用接口芯片I ;从接收端通用接口芯片I接收响应消息;根据收到的响应消息,对数据包进行相应的处理。
[0044]更细化地,接收端通用接口芯片1:接收从发送端通用接口芯片I发送来的数据包;对接收的数据包解包并校验;根据校验结果发送相应的响应消息给发送端通用接口芯片I。
[0045]以下是结合本实施例逐步实现通用接口芯片I间(即发送端通用接口芯片I与接收端通用接口芯片I间)的数据交换及通信传输。
[0046]步骤S10,发送端通用接口芯片I的打包仲裁模块11侦测并接收来自子系统10的待发送的数据包。
[0047]步骤SI I,发送端通用接口芯片I的打包仲裁模块11根据预设的仲裁策略为待发送的数据制定数据发送队列。
[0048]在本实施例中,所述仲裁策略包括:为各子系统10配置数据传输优先级,优先级高的先传输;相同优先级时,则短数据先传输;相同优先级且数据长度相同时,则先来先传输;相同优先级、数据长度相同且到来的时间节点相同时,则优先传输来自最久没有进行数据传输的子系统10的数据。在本发明的其他实施例中,所述仲裁策略被配置包含其他任意适用的数据传输冲突仲裁策略。
[0049]步骤S12,发送端通用接口芯片I的打包模块12对当前数据发送队列中处于最优先顺位的数据包按照预设的位宽进行重新组包,并加入校验码。
[0050]来自子系统10的待发送的数据包的位宽既可能小于所述预设的位宽,也可能大于所述预设的位宽。在本实施例中,该打包模块12对于小于所述预设的位宽的待发送的数据包重新组包的方式是拼接,对于大于所述预设的位宽的待发送的数据包重新组包的方式是切分,以使得重新组包后的数据包的位宽等于所述预设的位宽。
[0051]步骤S13,发送端通用接口芯片I的打包模块12将重新组包的数据包发送给接收端通用接口芯片I。
[0052]步骤S15,接收端通用接口芯片I的包接收模块13接收从发送端通用接口芯片I发送来的数据包,且接收端通用接口芯片I的解包模块15对接收的数据包解包。
[0053]步骤S16,接收端通用接口芯片I的解包模块15校验接收的数据包是否正确。
[0054]在接收的数据包正确时,转入执行下述步骤S17和S18,或者,在接收的数据包错误时,转入执行下述步骤S19和S20。
[0055]步骤S17,接收端通用接口芯片I的解包模块15将校验正确的数据包发送给对应的子系统10,并返回一个接收正确的响应消息给发送端通用接口芯片I。
[0056]步骤S18,发送端通用接口芯片I的打包模块12释放内部占用资源以继续发送其他待发送的数据包。
[0057]步骤S19,接收端通用接口芯片I的解包模块15丢弃校验错误的数据包,并返回一个接收错误的响应消息给发送端通用接口芯片I。
[0058]步骤S20,发送端通用接口芯片I的打包模块12重新发送对应的数据包
[0059]以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的【技术领域】,均同理包括在本发明的专利保护范围内。
【权利要求】
1.一种实现高速数据传输的方法,适用于通用接口芯片,特征在于,该方法包括步骤: A、发送端通用接口芯片侦测并接收待发送的数据包; B、发送端通用接口芯片对接收的数据包按照预设的位宽进行重新组包并加入校验码,将重新组包的数据包发送给接收端通用接口芯片; C、发送端通用接口芯片从接收端通用接口芯片接收响应消息; D、发送端通用接口芯片根据收到的响应消息,对数据包进行相应的处理。
2.如权利要求1所述的实现高速数据传输的方法,其特征在于,该方法还包括: E、接收端通用接口芯片接收从发送端通用接口芯片发送来的数据包; F、接收端通用接口芯片对接收的数据包解包并校验,根据校验结果发送相应的响应消息给发送端通用接口芯片。
3.如权利要求2所述的实现高速数据传输的方法,其特征在于,所述步骤F包括: 接收端通用接口芯片对接收的数据包解包,及校验接收的数据包是否正确; 接收端通用接口芯片在数据包校验正确时,将校验正确的数据包发送给对应的子系统,并返回一个接收正确的响应消息给发送端通用接口芯片; 接收端通用接口芯片在数据包校验错误时,丢弃校验错误的数据包,并返回一个接收错误的响应消息给发送端通用接口芯片。
4.如权利要求3所述的实现高速数据传输的方法,其特征在于,所述步骤D包括: 发送端通用接口芯片在收到接收正确的响应消息时,释放内部占用资源以继续发送其他待发送的数据包;及 在收到接收错误的响应消息时,重新发送对应的数据包。
5.如权利要求1所述的实现高速数据传输的方法,其特征在于,所述步骤B包括: 发送端通用接口芯片根据预设的仲裁策略为待发送的数据制定数据发送队列; 发送端通用接口芯片对当前数据发送队列中处于最优先顺位的数据包按照预设的位宽进行重新组包并加入校验码; 发送端通用接口芯片将重新组包的数据包发送给接收端通用接口芯片。
6.如权利要求5所述的实现高速数据传输的方法,其特征在于,所述仲裁策略包括: 配置数据传输优先级,优先级高的先传输; 相同优先级时,短数据先传输; 相同优先级且数据长度相同时,则先到先传输 '及/或 相同优先级、数据长度相同且到来的时间节点相同时,则优先传输来自最久没有进行数据传输的数据源的数据。
7.一种实现高速数据传输的通用接口芯片,其特征在于,所述通用接口芯片包括打包仲裁模块及打包模块,其中: 打包仲裁模块,用于侦测并接收待发送的数据包; 打包模块,用于对接收的数据包按照预设的位宽进行重新组包并加入校验码,将重新组包的数据包发送给接收端通用接口芯片,接收从接收端通用接口芯片发送来的响应消息,及根据收到的响应消息,对数据包进行相应的处理。
8.如权利要求7所述的通用接口芯片,其特征在于,所述通用接口芯片还包括包接收模块及解包模块,其中:包接收模块,用于接收从发送端通用接口芯片发送来的数据包; 解包模块,用于对接收的数据包解包并校验,根据校验结果发送相应的响应消息给发送端通用接口芯片。
9.如权利要求8所述的通用接口芯片,其特征在于,所述解包模块用于: 对接收的数据包解包,及校验接收的数据包是否正确; 在数据包校验正确时,将校验正确的数据包发送给对应的子系统,并返回一个接收正确的响应消息给发送端通用接口芯片; 在数据包校验错误时,丢弃校验错误的数据包,并返回一个接收错误的响应消息给发送端通用接口芯片。
10.如权利要求9所述的通用接口芯片,其特征在于,所述打包模块用于: 在收到接收正确的响应消息时,释放内部占用资源以继续发送其他待发送的数据包;及 在收到接收错误的响应消息时,重新发送对应的数据包。
11.如权利要求7所述的通用接口芯片,其特征在于,所述打包模块用于: 根据预设的仲裁策略为待发送的数据制定数据发送队列; 对当前数据发送队列中处于最优先顺位的数据包按照预设的位宽进行重新组包并加入校验码; 将重新组包的数据包发送给接收端通用接口芯片。
12.如权利要求11所述的通用接口芯片,其特征在于,所述仲裁策略包括: 配置数据传输优先级,优先级高的先传输; 相同优先级时,短数据先传输; 相同优先级且数据长度相同时,则先到先传输 '及/或 相同优先级、数据长度相同且到来的时间节点相同时,则优先传输来自最久没有进行数据传输的数据源的数据。
【文档编号】G06F13/42GK103838691SQ201210490534
【公开日】2014年6月4日 申请日期:2012年11月27日 优先权日:2012年11月27日
【发明者】陈续, 陈德炜, 冯立国, 徐洪波 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1