发明内容
针对上述问题中的至少一个,本发明提供了一种EPA设备,其通过设置缓存资源管理,利用EPA设备的确定性调度,对与用户终端的数据交互进行控制,使得用户终端与EPA设备之间的数据交互更加合理、高效。
根据本发明的一个方面,提供了一种EPA设备。该EPA设备包括:接口处理模块,其被配置为从用户终端接收用户发送给EPA总线的用户数据以及从所述EPA总线接收发送给所述用户终端的设备数据;数据交互模块,其包括用于缓存从所述接口处理模块接收的一帧用户数据的下行数据缓存、用于缓存从所述EPA总线接收的一帧设备数据的上行数据缓存和用于保存所述下行数据缓存的状态和所述上行数据缓存的状态的用户数据控制模块;数据缓存池,其包括用于缓存来自所述下行数据缓存的多帧用户数据的下行数据缓存池和用于缓存来自所述EPA总线的多帧设备数据的上行数据缓存池;以及EPA逻辑控制电路,其被配置为根据所述EPA设备的配置参数从所述下行数据缓存池接收所述用户数据并发送给所述EPA总线以及从所述EPA总线接收所述设备数据并缓存至所述上行数据缓存池。
在一些实施例中,所述接口处理模块被配置为接收来自所述用户终端对所述下行数据缓存的写操作指示;读取所述用户数据控制模块所保存的所述下行数据缓存的状态;确定所述下行数据缓存的状态是有效还是无效;响应于确定所述下行数据缓存的状态是无效,将来自用户终端的用户数据写入所述下行数据缓存;以及将所述下行数据缓存的状态设置为有效。
在一些实施例中,所述接口处理模块还被配置为响应于确定所述下行数据缓存的状态是有效,再次读取所述下行数据缓存的状态。
在一些实施例中,所述接口处理模块被配置为:读取所述EPA设备的下一报文发送时刻和通信周期并发送给所述用户终端;以及
接收所述用户终端基于所述EPA设备的下一报文发送时刻和通信周期所调度的所述用户数据。
在一些实施例中,所述EPA设备还包括配置模块,其中所述接口处理模块还被配置为接收所述用户终端的写操作指示;确定所述写操作指示是对所述配置模块还是对所述下行数据缓存的写操作指示;响应于确定所述写操作指示是对所述配置模块的写操作指示,将从所述用户终端接收的针对所述EPA设备的配置参数写入所述配置模块,并且其中所述配置模块被配置为:基于所述配置参数控制所述EPA逻辑控制电路运行。
在一些实施例中,所述数据缓存池被配置为:实时检测所述下行数据缓存的状态是有效还是无效;响应于检测到所述下行数据缓存的状态是有效,确定所述下行数据缓存池的空闲空间是否大于或等于一帧下行数据;响应于确定所述下行数据缓存池的空闲空间大于或等于一帧下行数据,将所述下行数据缓存中的用户数据写入所述下行数据缓存池;以及将所述下行数据缓存的状态设置为无效。
在一些实施例中,所述EPA逻辑控制电路被配置为:从所述数据缓存池中连续读取并缓存多帧下行数据;基于所述EPA设备的EPA协议对每帧下行数据进行打包;以及在基于所述EPA设备的配置参数所确定的各个报文发送时刻,通过所述EPA总线将各帧下行数据发送给其他EPA设备。
在一些实施例中,所述下行数据缓存池包括第一下行数据缓存池和第二下行数据缓存池,所述第一下行数据缓存池用于缓存从所述用户终端发送给所述EPA总线的多帧实时下行数据,所述第二下行数据缓存池用于缓存从所述用户终端发送给所述EPA总线的多帧非实时下行数据。
在一些实施例中,所述下行数据缓存包括第一下行数据缓存和第二下行数据缓存,所述第一下行数据缓存用于缓存从所述用户终端发送给EPA总线的一帧实时下行数据,所述第二下行数据缓存用于缓存从所述用户终端发送给所述EPA总线的一帧非实时下行数据,并且所述用户数据控制模块分别保存所述第一下行数据缓存的状态和所述第二下行数据缓存的状态。
在一些实施例中,所述EPA逻辑控制电路被配置为:从所述EPA总线接收上行数据;确定所述上行数据缓存池的空闲空间是否大于或等于一帧上行数据;响应于确定所述上行数据缓存池的空闲空间大于或等于一帧上行数据,将所述上行数据写入所述上行数据缓存池;以及响应于确定所述上行数据缓存池的空闲空间小于一帧上行数据,丢弃所述上行数据并且将所述上行数据缓存池的状态设置为溢出。
在一些实施例中,所述数据缓存池被配置为实时检测所述上行数据缓存池中是否存在至少一帧上行数据;响应于检测到所述上行数据缓存池中存在至少一帧上行数据,确定所述上行数据缓存的状态是有效还是无效;响应于确定所述上行数据缓存的状态是无效,从所述上行数据缓存池向所述上行数据缓存写入一帧上行数据;以及将所述上行数据缓存的状态设置为有效,其中所述数据交互模块还被配置为在检测到所述上行数据缓存的状态为有效时,向所述用户终端发送中断信号以提示所述用户终端读取所述上行数据缓存中的上行数据。
在一些实施例中,所述接口处理模块被配置为读取所述用户数据控制模块所保存的所述上行数据缓存的状态;确定所述上行数据缓存的状态是有效还是无效;响应于确定所述上行数据缓存的状态是有效,从所述上行数据缓存读取一帧上行数据;将所述上行数据缓存的状态设置为有效;以及将所述上行数据发送给所述用户终端。
在一些实施例中,所述上行数据缓存池包括第一上行数据缓存池和第二上行数据缓存池,所述第一上行数据缓存池用于缓存从所述EPA总线发送给所述用户终端的多帧实时上行数据,所述第二上行数据缓存池用于缓存从所述EPA总线发送给所述用户终端的多帧非实时上行数据。
在一些实施例中,所述上行数据缓存包括第一上行数据缓存和第二上行数据缓存,所述第一上行数据缓存用于缓存从所述EPA总线发送给所述用户终端的一帧实时上行数据,所述第二上行数据缓存用于缓存从所述EPA总线发送给所述用户终端的一帧非实时上行数据,并且所述用户数据控制模块分别保存所述第一上行数据缓存的状态和所述第二上行数据缓存的状态。
具体实施方式
下面将参照附图更详细地描述本发明的优选实施方式。虽然附图中显示了本发明的优选实施方式,然而应该理解,可以以各种形式实现本发明而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本发明更加透彻和完整,并且能够将本发明的范围完整的传达给本领域的技术人员。
在下文的描述中,出于说明各种发明的实施例的目的阐述了某些具体细节以提供对各种发明实施例的透彻理解。但是,相关领域技术人员将认识到可在无这些具体细节中的一个或多个细节的情况来实践实施例。在其它情形下,与本申请相关联的熟知的装置、结构和技术可能并未详细地示出或描述从而避免不必要地混淆实施例的描述。
除非语境有其它需要,在整个说明书和权利要求中,词语“包括”和其变型,诸如“包含”和“具有”应被理解为开放的、包含的含义,即应解释为“包括,但不限于”。
在整个说明书中对“一个实施例”或“一些实施例”的提及表示结合实施例所描述的特定特点、结构或特征包括于至少一个实施例中。因此,在整个说明书的各个位置“在一个实施例中”或“在一些实施例”中的出现不一定全都指相同实施例。另外,特定特点、结构或特征可在一个或多个实施例中以任何方式组合。
此外,说明书和权利要求中所用的第一、第二、第三等术语,仅仅出于描述清楚起见来区分各个对象,而并不限定其所描述的对象的大小或其他顺序等,除非另有说明。
图1示出了根据本发明的实施例的示例性EPA系统1的示意图。如图1中所示,EPA系统1可以包括EPA设备10,其可以与用户终端20进行交互以从用户终端20接收数据和/或向用户终端20发送数据。EPA设备10可以通过EPA总线30与一个或多个其他EPA设备40相连。
图2示出了根据本发明的实施例的示例性EPA设备10的结构示意图。如图2中所示,EPA设备10可以包括接口模块110、接口处理模块120、配置模块130、数据交互模块140、数据缓存池150和EPA逻辑控制模块160。
接口模块110是用于与用户终端20进行交互的接口。接口模块110例如可以包括与用户终端20的主机进行交互的接口,如PCIe(Peripheral Component InterconnectExpress,高速外设互连)等、嵌入式常用的接口,如以太网口、UART(UniversalAsynchronous Receiver/Transmitter,通用异步收发器)以及衍生接口、并行接口、SPI(Serial Peripheral Interface,串行外设接口)、IIC(Inter-Integrated Circuit,集成电路总线)、CAN(Controller Area Network,控制器局域网)等。
接口处理模块120用于(例如经由接口模块110)从用户终端20接收用户发送给EPA总线30的用户数据以及从EPA总线30(例如经由如下所述的EPA逻辑控制模块160和数据缓存池150)接收发送给用户终端20的设备数据。在本文中,为了方便起见,也将用户发送给EPA总线30的数据称为下行数据,将EPA总线30发送给用户的数据称为上行数据。
在一些实施例中,接口处理模块120能够对从接口模块110接收的数据进行解析,以确定该数据是用于对EPA设备10进行配置的配置参数还是要与EPA总线30(即与其他EPA设备40)交互的用户数据,并且根据确定的结果将该数据发送给配置模块130或者数据交互模块140。例如,接口模块110接收的数据中可以包含目的地地址,该目的地地址可以指示该数据的目的地是当前EPA设备10还是其他EPA设备40。接口处理模块120能够根据该目的地地址确定该数据是EPA设备10的配置参数还是与其他EPA设备40交互的用户数据。
此外,对于从EPA总线30接收的设备数据,接口处理模块120可以对从上行数据缓存144接收的数据进行打包以发送给接口模块110。
配置模块130用于(例如经由接口模块110和接口处理模块120)接收来自用户终端20的配置参数。该配置参数是EPA设备10的运行参数,例如可以包括IP地址、发送偏移等,EPA设备10在EPA系统1中,可以根据该配置参数通过EPA总线30与其他EPA设备40进行交互。
数据交互模块140可以包括下行数据缓存142、上行数据缓存144和用户数据控制模块146。下行数据缓存142用于缓存从接口处理模块120接收的一帧用户数据,上行数据缓存144用于缓存从EPA总线30接收的一帧设备数据,用户数据控制模块146用于保存下行数据缓存142的状态和上行数据缓存144的状态。这里,一帧用户数据是下行数据缓存142一次可存取的数据单位,一帧设备数据是上行数据缓存144一次可存取的数据单位,其可以取决于下行数据缓存142和上行数据缓存144的硬件配置或数据缓存需求而不同,并且一帧用户数据可以与一帧设备数据大小相同也可以不同。用户数据控制模块146可以包括多个状态寄存器,每个状态寄存器用于保存一个对应的缓存的状态。
在一些实施例中,下行数据缓存142包括第一下行数据缓存1422和第二下行数据缓存1424。第一下行数据缓存1422用于缓存从用户终端20发送给EPA总线30的一帧实时下行数据,第二下行数据缓存1424用于缓存从用户终端20发送给EPA总线30的一帧非实时下行数据。在这种情况下,用户数据控制模块146可以分别保存第一下行数据缓存1422的状态和第二下行数据缓存1424的状态。
在一些实施例中,上行数据缓存144包括第一上行数据缓存1442和第二上行数据缓存1444。第一上行数据缓存1442用于缓存从EPA总线30发送给用户终端20的一帧实时上行数据,第二上行数据缓存1444用于缓存从EPA总线30发送给用户终端20的一帧非实时上行数据。在这种情况下,用户数据控制模块146可以分别保存第一上行数据缓存1442的状态和第二上行数据缓存1444的状态。
数据缓存池150可以包括下行数据缓存池152和上行数据缓存池154。下行数据缓存池152用于缓存来自下行数据缓存142的多帧用户数据,上行数据缓存池154用于缓存来自EPA总线30的多帧设备数据。数据缓存池150的下游模块可以实时检测对应的缓存池152或154的状态,以在其中有数据时按需随时从中读取一帧数据;数据缓存池150的上游模块也可以实时检测缓存池152或154的状态,以在其中没有数据时随时向其写入一帧数据,如下所详述。
在一些实施例中,下行数据缓存池152包括第一下行数据缓存池1522和第二下行数据缓存池1524。第一下行数据缓存池1522用于缓存从用户终端20发送给EPA总线30的多帧实时下行数据,第二下行数据缓存池1524用于缓存从用户终端20发送给EPA总线30的多帧非实时下行数据。也就是说,第一下行数据缓存池1522用于缓存来自第一下行数据缓存1422的多帧实时下行数据,第二下行数据缓存池1524用于缓存来自第二下行数据缓存1424的多帧非实时下行数据。
在一些实施例中,上行数据缓存池154包括第一上行数据缓存池1542和第二上行数据缓存池1544。第一上行数据缓存池1542用于缓存要发送给第一上行缓存1442的多帧实时上行数据,第二上行数据缓存池1544用于缓存要发送给第二上行缓存1444的多帧非实时上行数据。也就是说,第一上行数据缓存池1542用于缓存来自EPA总线30的要发送给用户终端20的多帧实时上行数据,第二上行数据缓存池1544用于缓存来自EPA总线30的要发送给用户终端20的多帧非实时上行数据。
EPA逻辑控制模块160可以根据(例如由用户通过用户终端20写入的)EPA设备10的配置参数从下行数据缓存池152接收用户数据并发送给EPA总线30以及从EPA总线30接收设备数据并缓存至上行数据缓存池154。EPA逻辑控制模块160是EPA协议实现电路,其能够根据配置参数运行以使得EPA设备10与其他EPA设备40进行通信。
通过利用数据交互模块140中的数据缓存和数据缓存池150对用户终端20与EPA总线10之间交互的用户数据和设备数据进行缓存,并且将这种数据缓存与EPA逻辑控制模块160的操作分离,使得用户数据和设备数据能够快速及时地存储到EPA设备10中,并且EPA逻辑控制模块160可以仅在由其配置参数确定的时刻向EPA总线30发送用户数据,从而能够更好地利用EPA系统1中的各个EPA设备的确定性调度的优点。以下结合图3至图7的流程图进一步描述EPA设备10的各个模块的操作。
图3示出了根据本发明的一些实施例的EPA设备10的接口处理模块120的处理300的流程图。处理300可以用于将从用户终端20发送给EPA总线30的下行数据缓存到数据交互模块140的下行数据缓存142。
如图3中所示,在步骤310,接口处理模块120可以接收来自用户终端20对下行数据缓存142的写操作指示。
在一些实施例中,用户终端20的写操作指示仅针对下行数据缓存142。
在另一些实施例中,用户终端20的写操作指示可以是针对配置模块130或者针对下行数据缓存142的。在这种情况下,如前所述,接口处理模块120可以根据从接口模块110接收的数据的目的地地址确定用户终端20的写操作指示是对配置模块130的写操作指示还是对下行数据缓存142的写操作指示。如果确定该写操作指示是对配置模块130的写操作指示,则接口处理模块120将从用户终端20接收的针对EPA设备10的配置参数写入配置模块130。配置模块130可以基于该配置参数控制EPA逻辑控制模块160运行。
进一步地,在一些实施例中,接口处理模块120还可以确定接收的写操作指示是针对下行数据缓存142的第一下行数据缓存1422的实时数据写操作还是针对下行数据缓存142的第二下行数据缓存1424的非实时数据写操作。这里,类似地,接口处理模块120可以根据从接口模块110接收的数据的目的地地址来进一步确定用户终端20的写操作指示是针对第一下行数据缓存1422的写操作指示还是针对第二下行数据缓存1424的写操作指示。例如,用户在通过用户终端20向EPA设备10发送用户数据时,其可以根据用户数据的性质或类型指定该用户数据是在周期时间段发送还是非周期时间段发送(即该用户数据是实时下行数据还是非实时下行数据),从而用户终端20在对该用户数据进行打包时将目的地地址设置为相应的第一下行数据缓存1422的地址或者第二下行数据缓存1424的地址。
在步骤320,接口处理模块120可以读取用户数据控制模块146所保存的下行数据缓存142的状态。
在步骤330,接口处理模块120可以确定下行数据缓存142的状态是有效还是无效。
这里,下行数据缓存142的状态用于指示该下行数据缓存142中是否存在尚未被读取的一帧数据。如果该下行数据缓存142中存在尚未被读取的一帧数据,则下行数据缓存142的状态被认为是有效,反之,如果该下行数据缓存142中不存在尚未被读取的一帧数据,则下行数据缓存142的状态被认为是无效。用户数据控制模块146可以在每次下行数据缓存142中的数据被读取后,将其所保存的下行数据缓存142的状态设置为有效,而在每次下行数据缓存142中被写入一帧数据时,将下行数据缓存142的状态设置为无效,从而实时反映下行数据缓存142的状态。
如果在步骤330确定下行数据缓存142的状态是无效,在步骤340,接口处理模块120将来自用户终端20的用户数据写入下行数据缓存142。
接下来,在步骤350,可以将下行数据缓存142的状态设置为有效。
另一方面,如果在步骤330确定下行数据缓存142的状态是有效,即下行数据缓存142中存在尚未被读取的一帧数据,则可以再次读取下行数据缓存142的状态,以重复上述处理300。
在另一些实施例中,在步骤310之前,接口处理模块120可以读取EPA设备10的下一报文发送时刻和通信周期(即宏周期)并将其提供给用户终端20。在这种情况下,用户终端20可以根据EPA设备10的下一报文发送时刻和通信周期对用户数据进行调度。例如,用户终端20可以确定当前时刻与EPA设备10的下一报文发送时刻之间的时间长度是否足够用户数据经由EPA设备10(即经过接口模块110、接口处理模块120、数据交互模块140、数据缓存池150和EPA逻辑控制模块160)通过EPA总线30发送出去。如果确定该时间长度足以发送该用户数据,则用户终端20可以优先调度该用户数据的发送。另一方面,如果确定该时间长度不足以发送该用户数据,用户终端20可以基于其配置参数调度该用户数据以在一个或多个通信周期之后进行发送。在一些实施例中,用户终端20可以根据用户接口的数据传输速度以及用户数据的量来确定应该在几个通信周期之后发送该用户数据。例如,假设EPA设备10的通信周期是0.5ms,每个通信周期发送1000字节有效数据。用户数据从发送到EPA逻辑控制模块160所需的时间为200us。如果用户接口需要的下行数据带宽为2MB/s,则用户终端20可以每0.5ms发送一帧用户数据(1000字节),即每个通信周期,用户终端20都需发送一帧用户数据。如果读取的下一报文发送时刻与当前时刻之间的时间长度为250us,其大于200us,则用户终端20可以启动用户数据的发送。如果读取下一报文发送时刻与当前时刻之间的时间长度为150us,其小于200us,则用户终端20可以在下一个通信周期发送该用户数据。更具体地,可以在下一通信周期的报文发送时刻前200us启动用户数据发送。即,启动用户数据发送的时刻是150us+0.5ms-200us之后。
相应地,接口处理模块120可以接收用户终端20如上所述基于该EPA设备10的下一报文发送时刻和通信周期所调度的用户数据。
在下行数据缓存142包括第一下行数据缓存1422和第二下行数据缓存1424的情况下,在步骤310,接口处理模块120可以进一步确定用户终端20的写操作指示是针对第一下行数据缓存1422还是第二下行数据缓存1424的。如果确定该写操作指示是针对第一下行数据缓存1422的,则在步骤320读取第一下行数据缓存1422的状态,在步骤330确定第一下行数据缓存1422的状态是有效还是无效,并且在确定第一下行数据缓存1422的状态是无效时,在步骤340将来自用户终端20的用户数据写入第一下行数据缓存1422,并且在步骤350将第一下行数据缓存1422的状态设置为有效。如果确定该写操作指示是针对第二下行数据缓存1424的,则在步骤320读取第二下行数据缓存1424的状态,在步骤330确定第二下行数据缓存1424的状态是有效还是无效,并且在确定第二下行数据缓存1424的状态是无效时,在步骤340将来自用户终端20的用户数据写入第二下行数据缓存1424,并且在步骤350将第二下行数据缓存1424的状态设置为有效。
通过这种方式,数据交互模块140可以及时将来自用户终端20的用户数据进行缓存。在数据交互模块140进行缓存之后,该数据可以被送入数据缓存池150进行缓存。
图4示出了根据本发明一些实施例的EPA设备10的在数据缓存池150中的处理400的流程图。处理400可以用于将下行数据缓存到数据缓存池150的下行数据缓存池152。
如图4中所示,在步骤410,数据缓存池150实时检测用户数据控制模块146中保存的下行数据缓存142的状态是有效还是无效。
如果检测到下行数据缓存142的状态是有效,即,下行数据缓存142中存在尚未被读取的下行数据,在步骤420,可以继续确定下行数据缓存池152的空闲空间是否大于或等于一帧下行数据。
如果确定下行数据缓存池152的空闲空间大于或等于一帧下行数据,则在步骤430,可以将下行数据缓存142中的用户数据写入下行数据缓存池152。
接下来,在步骤440,将下行数据缓存142的状态设置为无效。
另一方面,如果检测到下行数据缓存142的状态为无效或者确定下行数据缓存池152的空闲空间小于一帧下行数据,则可以返回步骤410以重复处理400。
在下行数据缓存142包括第一下行数据缓存1422和第二下行数据缓存1424并且下行数据缓存池152包括第一下行数据缓存池1522和第二下行数据缓存池1524的情况下,在步骤410,数据缓存池150可以分别实时检测第一下行数据缓存1422的状态和第二下行数据缓存1424的状态,并且在步骤410确定第一下行数据缓存1422的状态是有效且在步骤420确定第一下行数据缓存池1522的空闲空间大于或等于一帧实时下行数据时,在步骤430将第一下行数据缓存1422中的实时下行数据写入第一下行数据缓存池1522;在步骤410确定第二下行数据缓存1424的状态是有效且在步骤420确定第二下行数据缓存池1524的空闲空间大于或等于一帧非实时下行数据时,在步骤430将第二下行数据缓存1424中的非实时下行数据写入第二下行数据缓存池1524,然后分别将第一下行数据缓存1422和第二下行数据缓存1424的状态设置为无效。
通过这种方式,来自用户终端20的用户数据被及时从数据交互模块140缓存至数据缓存池150,从而数据交互模块140可以进一步接收来自用户终端20的其他用户数据。
在用户数据被缓存至数据缓存池150之后,EPA逻辑控制模块160可以从数据缓存池150中读取一帧或多帧下行数据(实时下行数据或者非实时下行数据),根据EPA协议进行打包,并且在基于EPA设备10的配置参数(如发送偏移)所确定的各个报文发送时刻,通过EPA总线30将各帧下行数据发送给EPA系统1中的其他EPA设备40。
在一些实施例中,EPA逻辑控制模块160可以每次从数据缓存池150中读取一帧下行数据,并且在所确定的报文发送时刻将其发送给EPA系统1中的其他EPA设备40。在完成该帧下行数据的发送之后,EPA逻辑控制模块160可以再次从数据缓存池150中读取另一帧下行数据并且在所确定的下一报文发送时刻进行发送。
在另一些实施例中,EPA逻辑控制模块160可以从数据缓存池150中连续读取并缓存多帧下行数据,并且在所确定的各个报文发送时刻依次发送各帧下行数据。在数据缓存池150处理性能大于EPA逻辑控制模块160发送用户数据的带宽,并且EPA逻辑控制模块160能够存储多帧数据时,通过这种方式,EPA逻辑控制模块160能够满足对数据缓存池150中的数据尽发。
至此,完成了用户数据从用户终端20通过EPA设备10发送给其他EPA设备40的过程,即下行数据传输过程。以下,将结合图5至图7描述设备数据从EPA总线30通过EPA设备10发送给用户终端20的过程,即上行数据传输过程。
图5示出了根据本发明的一些实施例的EPA设备10的EPA逻辑控制模块160的处理500的流程图。处理500可以用于将从EPA总线30发送给用户终端20的上行数据缓存到数据缓存池150的上行数据缓存池154。
如图5中所示,在步骤510,EPA逻辑控制模块160可以从EPA总线30接收上行数据。该上行数据即为EPA设备10要发送给用户终端20的数据,即设备数据。
在步骤520,EPA逻辑控制模块160可以确定上行数据缓存池154的空闲空间是否大于或等于一帧上行数据。
如果确定上行数据缓存池154的空闲空间大于或等于一帧上行数据,在步骤530,EPA逻辑控制模块160可以将从EPA总线30接收的上行数据写入上行数据缓存池154。
另一方面,如果确定上行数据缓存池154的空闲空间小于一帧上行数据,则在步骤540,EPA逻辑控制模块160可以丢弃该上行数据并且将上行数据缓存池154的状态设置为溢出。
在上行数据缓存池154包括第一上行数据缓存池1542和第二上行数据缓存池1544的情况下,在步骤510,EPA逻辑控制模块160还可以确定接收的上行数据是实时上行数据还是非实时上行数据。如果确定接收的上行数据是实时上行数据,在步骤520,EPA逻辑控制模块160可以确定第一上行数据缓存池1542的空闲空间是否大于或等于一帧实时上行数据,并且在确定第一上行数据缓存池1542的空闲空间大于或等于一帧实时上行数据时,在步骤530将该实时上行数据存储到第一上行数据缓存池1542,或者在步骤540将第一上行数据缓存池1542的状态设置为溢出。如果确定接收的上行数据是非实时上行数据,在步骤520,EPA逻辑控制模块160可以确定第二上行数据缓存池1544的空闲空间是否大于或等于一帧非实时上行数据,并且在确定第二上行数据缓存池1544的空闲空间大于或等于一帧非实时上行数据时,在步骤530将该非实时上行数据存储到第二上行数据缓存池1544,或者在步骤540将第二上行数据缓存池1544的状态设置为溢出。
通过这种方式,EPA逻辑控制模块160可以及时将来自EPA总线30的设备数据进行缓存。在EPA逻辑控制模块160进行缓存之后,该数据可以被送入数据交互模块140进行缓存以供用户终端20读取。
图6示出了根据本发明的一些实施例的EPA设备10的数据缓存池150的处理600的流程图。处理600可以用于将从EPA总线30发送给用户终端20的上行数据从数据缓存池150的上行数据缓存池154中缓存至数据交互模块140的上行数据缓存144中。
如图6中所示,在步骤610,可以实时检测上行数据缓存池154中是否存在至少一帧上行数据。
如果检测到上行数据缓存池154中存在至少一帧上行数据,在步骤620,可以确定上行数据缓存144的状态是有效还是无效。
与下行数据缓存142类似,上行数据缓存144的状态用于指示该上行数据缓存144中是否存在尚未被读取的一帧数据。如果该上行数据缓存144中存在尚未被读取的一帧数据,则上行数据缓存144的状态被认为是有效,反之,如果该上行数据缓存144中不存在尚未被读取的一帧数据,则上行数据缓存144的状态被认为是无效。用户数据控制模块146可以在每次上行数据缓存144中的数据被读取后,将其所保存的上行数据缓存144的状态设置为有效,而在每次上行数据缓存144中被写入一帧数据时,将上行数据缓存144的状态设置为无效,从而实时反映上行数据缓存144的状态。
进一步地,在上行数据缓存144包括第一上行数据缓存1442和第二上行数据缓存1444的情况下,用户数据控制模块146可以类似地设置第一上行数据缓存1442的状态和第二上行数据缓存1444的状态。
如果在步骤620确定上行数据缓存144的状态是无效,在步骤630,从上行数据缓存池154向上行数据缓存144写入一帧上行数据。
接下来,在步骤640,可以将上行数据缓存144的状态设置为有效。
另一方面,如果确定上行数据缓存池154中不存在至少一帧上行数据或者检测到上行数据缓存144的状态为有效,则可以返回步骤610以重复处理600。
在数据交互模块140(更具体地,用户数据控制模块146)检测到上行数据缓存144的状态为有效时,其可以向用户终端20发送中断信号以提示用户终端20读取该上行数据缓存144中的上行数据。
在上行数据缓存池154包括第一上行数据缓存池1542和第二上行数据缓存池1544并且上行数据缓存144包括第一上行数据缓存1442和第二上行数据缓存1444的情况下,在步骤610,数据缓存池150可以分别实时检测第一上行数据缓存池1542和第二上行数据缓存池1544中是否存在至少一帧上行数据。如果确定检测到第一上行数据缓存池1542中存在至少一帧实时上行数据,在步骤620确定第一上行数据缓存1442的状态是有效还是无效。如果确定第一上行数据缓存1442的状态是无效,则在步骤630从第一上行数据缓存池1542向第一上行数据缓存1442写入一帧实时上行数据,并且在步骤640将第一上行数据缓存1442的状态设置为有效。如果确定检测到第二上行数据缓存池1544中存在至少一帧非实时上行数据,在步骤620确定第二上行数据缓存1444的状态是有效还是无效。如果确定第二上行数据缓存1444的状态是无效,则在步骤630从第二上行数据缓存池1544向第二上行数据缓存1444写入一帧非实时上行数据,并且在步骤640将第二上行数据缓存1444的状态设置为有效。
通过这种方式,数据交互模块140可以及时将来自用户终端20的用户数据进行缓存。在数据交互模块140进行缓存之后,该数据可以被送入数据缓存池150进行缓存。
图7示出了根据本发明的一些实施例的EPA设备10的接口处理模块120的处理700的流程图。处理700例如在用户终端20接收到用户数据控制模块146的中断信号时,向EPA设备10发起读操作后由接口处理模块120执行,以从上行数据缓存144中读取该上行数据。
如图7中所示,在710,接口处理模块120可以读取用户数据控制模块146所保存的上行数据缓存144的状态。
在步骤720,接口处理模块120可以确定上行数据缓存144的状态是有效还是无效。
如果在步骤720确定上行数据缓存144的状态是有效,在步骤730,接口处理模块120可以从上行数据缓存144读取一帧上行数据。
然后,可以将上行数据缓存144的状态设置为有效。
另一方面,如果在步骤720确定上行数据缓存144的状态是有效,即上行数据缓存144中存在尚未被读取的一帧上行数据,则可以再次读取上行数据缓存144的状态,以重复上述处理700。
在接口处理模块120从上行数据缓存144读取该上行数据之后,在步骤750,接口处理模块120可以(例如经由接口模块110)将该上行数据发送给用户终端20。
另一方面,如果确定上行数据缓存144的状态为无效,即,上行数据缓存144中不存在尚未被读取的数据,则可以返回步骤710以重复处理700。
在上行数据缓存144包括第一上行数据缓存1442和第二上行数据缓存1444的情况下,在步骤710,接口处理模块120可以分别读取第一上行数据缓存1442和第二上行数据缓存1444的状态并且在步骤720确定第一上行数据缓存1442和第二上行数据缓存1444的状态是有效还是无效。如果在步骤720确定第一上行数据缓存1442的状态是有效,则在步骤730从第一上行数据缓存1442读取一帧实时上行数据并且在步骤740将第一上行数据缓存1442的状态设置为有效,在步骤750将该实时上行数据发送给用户终端20。如果在步骤720确定第二上行数据缓存1444的状态是有效,则在步骤730从第二上行数据缓存1444读取一帧非实时上行数据并且在步骤740将第二上行数据缓存1444的状态设置为有效,在步骤750将该非实时上行数据发送给用户终端20。
通过这种方式,接口处理模块120可以响应于用户终端20的读请求及时读取设备数据并发送给用户终端20。
图8示出了适合实现本发明的实施例的EPA设备800的方框图。EPA设备800可以用来实现如图1和图2中所示的EPA设备10。
如图所示,EPA设备800可以包括处理器810。处理器810控制EPA设备800的操作和功能。例如,在某些实施例中,处理器810可以借助于与其耦合的存储器820中所存储的指令830来执行各种操作。存储器820可以是适用于本地技术环境的任何合适的类型,并且可以利用任何合适的数据存储技术来实现,包括但不限于基于半导体的存储器件、磁存储器件和系统、光存储器件和系统。尽管图8中仅仅示出了一个存储器820,但是本领域技术人员可以理解,EPA设备800可以包括更多个物理上不同的存储器820。
处理器810可以是适用于本地技术环境的任何合适的类型,并且可以包括但不限于通用计算机、专用计算机、微处理器、数字信号处理器(DSP)以及基于处理器的多核处理器架构中的一个或多个多个。EPA设备800也可以包括多个处理器810。处理器810与收发器840耦合,收发器840可以借助于通信接口和/或其他部件来实现信息的接收和发送。
当EPA设备800执行上述各种功能时,处理器810和收发器840可以在存储器820中的指令830的控制下配合操作,以实现上文参考图3至图7描述的方法300至700中的EPA设备10的各个模块的功能。上文参考图1至图7所描述的所有特征均适用于EPA设备800,在此不再赘述。
本发明可以实现为方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本发明的各个方面的计算机可读程序指令。
在一个或多个示例性设计中,可以用硬件、软件、固件或它们的任意组合来实现本发明所述的功能。例如,如果用软件来实现,则可以将所述功能作为一个或多个指令或代码存储在计算机可读介质上,或者作为计算机可读介质上的一个或多个指令或代码来传输。
本文公开的装置的各个单元可以使用分立硬件组件来实现,也可以集成地实现在一个硬件组件,如处理器上。例如,可以用通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件或用于执行本文所述的功能的任意组合来实现或执行结合本发明所描述的各种示例性的逻辑块、模块和电路。
本领域普通技术人员还应当理解,结合本发明的实施例描述的各种示例性的逻辑块、模块、电路和算法步骤可以实现成电子硬件、计算机软件或二者的组合。
本发明的以上描述用于使本领域的任何普通技术人员能够实现或使用本发明。对于本领域普通技术人员来说,本发明的各种修改都是显而易见的,并且本文定义的一般性原理也可以在不脱离本发明的精神和保护范围的情况下应用于其它变形。因此,本发明并不限于本文所述的实例和设计,而是与本文公开的原理和新颖性特性的最广范围相一致。