具有多个外设接口的数据交互系统和方法

文档序号:6472153阅读:212来源:国知局

专利名称::具有多个外设接口的数据交互系统和方法
技术领域
:本发明涉及外设接口通讯技术,尤其涉及一种具有多个外设接口的数据交互系统和方法。
背景技术
:片上系统(S0C)芯片是指在单芯片上集成微电子应用产品所需的全部功能系统,是一种实现产品系统最大包容的集成芯片,随着SOC芯片技术的发展,单个芯片一般都需要支持相当多的外设接口,比如串行外围接口(SPI)、内部集成电路(12C)、安全数字I/0(SDIO)、通用异步接收/发送装置(UART)等。并且外部芯片往往需要通过对应的这些外设接口访问内部模块寄存器和内存。目前,关于外部设备与内部寄存器等进行数据交互一般采用图1所示的方式即,针对每一个外设,对应有一个外设接口模块(例如图中所示的外设l接口12、外设2接口14、外设n接口16等),其内部需要实现对应的接口协议转换,然后再连接到内部总线20上,从而实现各个外设与内部总线20的通讯。但是,如果外设的主控方(例如图1中与各个外设接口对应的外设1主控端模块2、外设2主控端模块4、外设3主控端模块6)与内部数据交互的协议有更改,比如芯片内部总线的地址总线位数发生变化,由16位更改为32位等。针对这些情况,各个外设接口模块的接口协议转换部分则分别需要重新修改,并且一一重新进行验证,因此操作比较繁琐复杂,降低了外设接口设计的一致性和重用性。
发明内容本发明的目的旨在至少解决现有技术中的上述问题之一。为此,本发明的实施例提出一种具有多个外设接口的数据交互系统和方法,以达到更好的设计一致性和重用性。根据本发明的一个方面,本发明实施例提供了一种具有多个外设接口的数据交互系统,包括多个外设主控端模块、多个外设接口模块和接口转换模块;所述多个外设主控端模块与所述多个外设接口模块对应,并根据与内部总线的数据交互协议预先定义命令字和数据,并通过所述外设接口模块传输;所述多个外设接口模块,分别用于将对应的所述命令字和所述数据传输到所述接口转换模块;所述接口转换模块,按照所述数据交互协议解析和转换所述命令字和所述数据,以执行与内部总线的数据交互。根据本发明进一步的实施例,所述接口转换模块包括接口转换处理模块,处理与所述外设接口模块的信号交互,以采集和传输所述命令字和所述数据;命令解析模块,解析所述命令字;主控模块,根据所述解析命令字进行写数据或读数据控制;写数据处理模块,根据所述写数据控制,按照所述数据交互协议将所述数据转换为对应的写地址和写数据,并传输到内部总线;读数据处理模块,根据所述读数据控制,按照所述数据交互协议将内部总线返回的读数据传输给所述接口转换处理模块;和总线接口模块,提供所述写数据处理模块、所述读数据处理模块与内部总线之间的连接和数据交互。根据本发明进一步的实施例,所述多个外设主控端模块根据所述数据交互协议的变化重新定义所述命令字和数据,并且所述接口转换模块根据所述重新定义的所述命令字和数据进行相应的解析和转换。根据本发明的另一方面,本发明实施例提出一种具有多个外设接口的数据交互方法,包括以下步骤根据与内部总线的数据交互协议,在与多个外设接口对应的多个外设主控端中预先定义用于数据交互的命令字和数据;将通过所述多个外设接口对应传输的所述命令字和数据按照数据交互协议进行解析和转换;和根据解析和转换的所述命令字和数据,执行与内部总线的数据交互。根据本发明进一步的实施例,所述命令字和数据的解析和转换步骤包括解析所述命令字,并根据所述解析命令字进行写数据或读数据控制;根据所述写数据控制,按照所述数据交互协议将所述数据转换为对应的写地址和写数据,并传输到内部总线;根据所述读数据控制,按照所述数据交互协议读取内部总线返回的数据。根据本发明进一步的实施例,根据所述数据交互协议的变化重新定义所述多个外设主控端的所述命令字和数据,并且根据所述重新定义的所述命令字和数据进行相应的解析和转换。本发明将多个外设接口仅用于外设模块的主控端命令字和数据的传输,使得各种外设接口仅专注与外部的交互,本身不再按照对应数据交互协议执行命令字和数据的解析和转换。而是按照外设主控端与内部总线的数据交互协议,对外设接口传输的命令和数据进行解析和转换,来执行与内部总线的数据交互。因此当外设主控端和内部总线的内部数据交互协议有更改的时候,只需要按照变化的交互协议,单独执行一次修改和验证即可,而无需对多个外设接口分别进行接口协议的转换和对应的多次重新验证,因此与现有技术相比,本发明简化了多个外设模块访问内部数据的验证工作,提高了代码的重用性,可以达到更强的设计一致性和重用性,并提高可测性。本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。本发明的上述和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中图1为现有技术具有多个外设接口的外部设备与内部数据交互结构示意图;图2为本发明的具有多个外设接口的外部设备与内部数据交互系统方框图;图3为本发明实施例的外设模块通过接口转换模块写数据的协议示意图;图4为本发明实施例的外设模块通过接口转换模块读数据的协议示意图;图5为本发明实施例的接口转换模块的内部结构示意图;图6为本发明的具有多个外设接口的数据交互方法的总体流程图;禾口图7为本发明实施例的具有多个外设接口的数据交互方法的具体步骤流程图。具体实施例方式下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。请参考图2,该图显示了本发明的具有多个外设接口的外部设备与内部数据交互系统结构。如图所示,包括n个外设主控端模块,例如外设1主控端模块2'、外设2主控端模块4'及外设n主控端模块6'。这些外设主控端模块分别与n个外设模块对应,并且与n个外设接口模块(例如图中的外设l接口12'、外设2接口14'及外设n接口16')对应。另外,如图所示,各个外设接口12'、14'及16'与内部总线20之间设置有一个接口转换模块30。从而,各个外设模块通过对应连接的外设接口以及接口转换模块30,实现对内部总线的访问和数据交互。上述多个外设模块对应的外设主控端模块2'、4'及6'根据与内部总线20的数据交互协议预先定义命令字和数据,例如,当内部总线为16位地址总线,16位数据总线时,外设主控端模块可以定义如下协议写寄存器的命令字为Oxl,读寄存器的命令字为0x2;写寄存器时,后面紧跟的数据依次为地址高8位,地址低8位,数据高8位,数据低8位;读寄存器时,写地址时紧跟的数据依次为地址高8位,地址低8位;后续读操作时数据为数据高8位,数据低8位。当然,根据与内部总线数据交互协议的不同,外设主控端模块可以自由更改这些命令字和数据。正如图2所示,在多个外设接口的输出端连接有接口转换模块30,接口转换模块30用来按照外设主控端模块与内部总线20的数据交互协议,解析和转换外设主控端模块对应外设模块发出的命令字和数据,以执行与内部总线的数据交互。也就是说,这里多个外设接口12'、14'及16'仅仅将外设模块的命令字和数据传输给接口转换模块30,不再按照对应数据交互协议执行命令字和数据的解析和转换。并且,外设接口可以很容易产生与接口转换模块30的交互数据与控制信号。这样,通过设置接口转换模块30,可以使得多个外设接口12'、14'及16'可以通过与一个一致的接口转换模块30进行数据交互,并且当外设主控端模块和内部总线20的内部数据交互协议有更改的时候,只需要按照变化的交互协议,对接口转换模块30进行一次修改和验证即可,而无需对应多个外设接口12'、14'及16'分别进行接口协议的转换和对应的多次重新验证,因此与现有技术相比,本发明简化了操作流程,可以达到更强的设计重用性并提高可测性。下面,结合图3至图5对本发明的数据交互系统作出详细描述。其中图3为本发明实施例的外设模块通过接口转换模块写数据的协议示意图,图4为本发明实施例的外设模块通过接口转换模块读数据的协议示意图,和图5为本发明实施例的接口转换模块的内部结构示意图。对于设置用于按照数据交换协议执行与内部总线20数据交互的接口转换模块30,其需要和n个外设模块确定相应的端口定义和端口协议。例如,接口转换模块30与外设模块的端口定义如表1所示表l5<table>tableseeoriginaldocumentpage6</column></row><table>g卩,接口转换模块30与n个外设接口的交互信号包括表1所列的信号。另外,外设模块通过接口转换模块写数据的协议如图3所示,其中BIF用于表示接口转换模块,CMD表示外设主控端模块安装内部交互协议定义的命令字,DATA1...DATAn表示外设主控端模块定义的数据,包括写地址和对应的写数据。图4给出了外设模块通过接口转换模块30读数据的协议,其中DATA1...DATAn表示写入的读数据地址,Dl、D2、...Dn表示内部总线20后续返回的读数据。现在,结合图5实施例的接口转换模块30的各个部件对本发明的数据交互系统详细说明如下。如图所示,接口转换模块30包括接口转换处理模块302、命令解析模块304、主控模块306、写数据处理模块308、读数据处理模块310和总线接口模块312。当req信号为有效时,说明外设接口模块与接口转换模块30之间有数据交互,此时,如果valid有电平翻转,说明该时刻有数据传输(高到低,低到高,各为一次有效数据传输)。接口转换处理模块302,处理与外设接口模块的信号交互,因此采集外设接口模块传输的每一个数据,并且将外设模块发出的命令字和数据传送给命令解析模块304、写数据处理模块308。命令解析模块304解析接收的第一个命令字(CMD),根据命令字的不同,驱动主控模块306进入不同的操作流程执行相应的写数据控制或者读数据控制。例如,命令解析模块304解析接收的命令字为写寄存器,主控模块306则控制写数据处理模块308对接收的数据执行相应的操作;若解析的命令字为读寄存器,主控模块306则控制写数据处理模块308和读数据处理模块执行相应的操作。写数据处理模块308用于根据主控模块306的写数据控制,按照数据交互协议将接口转换处理模块302传输的数据转换为对应的写地址和写数据;根据主控模块306的读数据控制,则按照数据交互协议将接口转换处理模块302传输的数据转换为对应的读地址。因此,写数据处理模块308根据读/写操作控制,将接收的数据转换为对应的地址、数据等不同类型的数据,并传输到内部总线中。读数据处理模块310根据读数据控制,按照所述数据交互协议将内部总线20返回的读数据转换为连续的字节流,并传输给接口转换处理模块302,从而通过接口转换处理模块302、对应的外设接口将读数据返回到对应的外设模块中。如图3实施例所示,写数据处理模块308、读数据处理模块310与内部总线20之间提供有总线接口模块312,提供相应部件之间的连接和数据交互,并处理与读/写数据处理模块308/310之间的内部读/写数据。一般来说,总线接口模块312需要根据实际芯片采用的总线类型来定义,常用的有内存访问接口,高级外围总线(APB,AdvancedPeripheralBUS)接口等。下面以上文所述芯片内部总线为16位地址总线,16位数据总线,以及外设主控端模块的命令字和数据定义为实施例,结合一个简单的寄存器读、写例子,对本发明具有多个外设接口的数据交互系统如何通过图4和图5对应的协议来完成外设主控端模块对芯片的操作作出详细说明。假设外设主控端模块要往芯片的0x2233的地址写数据0x4455,则外设主控端模块需要通过外设模块写如下数据0x01,0x22,0x33,0x44,0x55。相应地,接口转换模块30的命令解析模块304接收0x01的命令字,并且写数据处理模块308按照内部数据交互协议,接收对应的2个数据0x22,0x33作为写地址,并接收0x44,0x55作为写数据,从而将外设模块传输的数据转换为相应的写地址和写数据,并写入到内部总线20中。假设外设主控端模块要从芯片的0x6677的地址读数据,所要读取的数据为0x8899,则外设主控端模块需要通过外设模块写如下数据0x02,0x66,0x77。接口转换模块30的命令解析模块304接收0x02的命令字,并且写数据处理模块308按照内部数据交互协议,接收对应的2个数据0x66,0x77作为读地址,并写入到内部总线20中。读数据处理模块310将内部总线20返回的读数据转换为0x88,0x99,从而通过接口转换处理模块302传输给外设模块,则能获得相应的读数据。因此,在该协议有所更改的情况下,比如地址和数据位从16位调整到32位,只需要外设主控端模块更改相应的写数据,以及接口转换模块30相应修改对传输数据的解析和转换,例如对16位的地址和数据总线,需要写入2个数据作为地址,2个数据作为数据,对于调整的32位的地址和数据位,相应写入4个数据作为地址,4个数据作为数据即可。通过上述模块的相应更改,则能够实现外设与内部总线的数据交互,而无需再修改各个外设接口,从而降低测试的重复性。现在,请参考图6,图6给出本发明的具有多个外设接口的数据交互方法的总体流程步骤。如图所示,首先根据与内部总线的数据交互协议,在与多个外设接口对应的多个外设主控端中预先定义用于数据交互的命令字和数据(步骤102),然后,将通过所述多个外设接口对应传输的所述命令字和数据按照数据交互协议进行解析和转换(步骤104)。最后,根据解析和转换的所述命令字和数据,执行与内部总线的数据交互(步骤106)通过上述方法,多个外设接口仅用于外设模块的主控端命令字和数据的传输,仅使得各种外设接口专注与外部的交互,它们本身不再按照对应数据交互协议执行命令字和数据的解析和转换。而是通过一个额外程序处理步骤,按照外设主控端与内部总线的数据交互协议,解析和转换外设主控端的命令字和数据,来执行与内部总线的数据交互。因此当外设主控端和内部总线的内部数据交互协议有更改的时候,只需要按照变化的交互协议,单独执行程序的一次修改和验证即可,不涉及太多的硬件开销,而无需对多个外设接口分别进行接口协议的转换和对应的多次重新验证,因此与现有技术相比,本发明简化了多个外设模块访问内部数据的验证工作,提高了代码的重用性,可以达到更强的设计重用性并提高可测性。下面,结合图7对本发明实施例的具有多个外设接口的数据交互方法的具体步骤给出详细说明。在该实施例中,与外设进行数据交互的内部总线为16位地址总线,16位数据总线,外设主控端定义的协议如下写寄存器的命令字为Oxl,读寄存器的命令字为0x2;写寄存器时,后面紧跟的数据依次为地址高8位,地址低8位,数据高8位,数据低8位;读寄存器时,写地址时紧跟的数据依次为地址高8位,地址低8位;后续读操作时数据为数据高8位,数据低8位。根据与内部总线数据交互协议的不同,外设主控端可以自由更改这些命令字和数据。首先,判断数据传输请求是否有效(步骤402),若有效则说明外设接口有数据传输,接着进一步判断该请求是否为写命令(步骤402),即外设主控端是否请求向内部总线执行数据读/写的地址和数据写入。若是,则接收命令字(步骤408),然后解析命令字判断接收的命令是否为写数据命令(步骤410),从而进行写数据或读数据控制。若为写数据命令,执行写数据控制,对于该实施例的16位地址总线和16位数据总线的数据交互协议,接收2个数据作为地址(步骤412),并接收2个数据作为写数据(步骤414)。然后,将数据写入内部总线(步骤416)。在写入过程中,判断数据传输请求是否无效(步骤418),以判断数据是否已经全部写入。若请求有效,则需要等待,直至数据连续写入到内部总线;若无效,则完成写入并进入空闲状态。在步骤410判断为读数据命令时,则执行读数据控制,按照数据交互协议接收2个数据作为写入的读地址(步骤420),并发送读数据请求到内部总线(步骤422)。判断内部总线是否返回对应的读数据(步骤424),若返回则保存数据(步骤426)。然后,判断请求是否无效(步骤428),等待到无效时将保存的数据,并恢复空闲状态。通过外设接口再次发出的数据传输请求(步骤402),以及通过步骤404判断请求是否为写命令,在不是写命令的情况下,将内部总线传递的保存读数据返回给外设(步骤406)。在该协议更改的情况下,各个外设接口无需根据协议变化逐一进行修改,只需要外设主控端更改相应的写数据,以及步骤412、414和420相应修改对传输数据的解析和转换,例如对地址和数据位从16位调整到32位,只需要相应地将写入作为地址的2个数据、作为数据的2个数据,修改为写入4个数据作为地址,4个数据作为数据。通过上述相应更改,则能够实现外设与内部总线的数据交互,从而降低测试的重复性。通过以上方法,与现有技术相比,本发明进行一次修改和验证即可,而无需对应多个外设接口分别进行接口协议的转换和对应的多次重新验证,因此简化了多个外设接口修改和验证的操作,可以达到更强的设计重用性并提高可测性。尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。权利要求一种具有多个外设接口的数据交互系统,其特征在于,包括多个外设主控端模块、多个外设接口模块和接口转换模块;所述多个外设主控端模块与所述多个外设接口模块对应,并根据与内部总线的数据交互协议预先定义命令字和数据,并通过所述外设接口模块传输;所述多个外设接口模块,分别用于将对应的所述命令字和所述数据传输到所述接口转换模块;所述接口转换模块,按照所述数据交互协议解析和转换所述命令字和所述数据,以执行与内部总线的数据交互。2.如权利要求1所述的数据交互系统,其特征在于,所述接口转换模块包括接口转换处理模块,处理与所述外设接口模块的信号交互,以采集和传输所述命令字和所述数据;命令解析模块,解析所述命令字;主控模块,根据所述解析命令字进行写数据或读数据控制;写数据处理模块,根据所述写数据控制,按照所述数据交互协议将所述数据转换为对应的写地址和写数据,并传输到内部总线;读数据处理模块,根据所述读数据控制,按照所述数据交互协议将内部总线返回的读数据传输给所述接口转换处理模块;禾口总线接口模块,提供所述写数据处理模块、所述读数据处理模块与内部总线之间的连接和数据交互。3.如权利要求1或2所述的数据交互系统,其特征在于,所述多个外设主控端模块根据所述数据交互协议的变化重新定义所述命令字和数据,并且所述接口转换模块根据所述重新定义的所述命令字和数据进行相应的解析和转换。4.一种具有多个外设接口的数据交互方法,其特征在于,包括以下步骤根据与内部总线的数据交互协议,在与多个外设接口对应的多个外设主控端中预先定义用于数据交互的命令字和数据;将通过所述多个外设接口对应传输的所述命令字和数据按照数据交互协议进行解析和转换;和根据解析和转换的所述命令字和数据,执行与内部总线的数据交互。5.如权利要求4所述的数据交互方法,其特征在于,所述命令字和数据的解析和转换步骤包括解析所述命令字,并根据所述解析命令字进行写数据或读数据控制;根据所述写数据控制,按照所述数据交互协议将所述数据转换为对应的写地址和写数据,并传输到内部总线;根据所述读数据控制,按照所述数据交互协议读取内部总线返回的数据。6.如权利要求4或5所述的数据交互方法,其特征在于,根据所述数据交互协议的变化重新定义所述多个外设主控端的所述命令字和数据,并且根据所述重新定义的所述命令字和数据进行相应的解析和转换。全文摘要一种具有多个外设接口的数据交互系统,包括多个外设主控端模块、多个外设接口模块和接口转换模块;所述多个外设主控端模块与所述多个外设接口模块对应,并根据与内部总线的数据交互协议预先定义命令字和数据,并通过所述外设接口模块传输;所述多个外设接口模块,分别用于将对应的所述命令字和所述数据传输到所述接口转换模块;所述接口转换模块,按照所述数据交互协议解析和转换所述命令字和所述数据,以执行与内部总线的数据交互。本发明能够提高多个外设接口与内部数据交互设计的一致性和重用性。文档编号G06F13/42GK101770442SQ20081024688公开日2010年7月7日申请日期2008年12月30日优先权日2008年12月30日发明者李晓强申请人:易视芯科技(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1