消息处理装置、方法及通信系统与流程

文档序号:17375269发布日期:2019-04-12 23:14阅读:172来源:国知局
消息处理装置、方法及通信系统与流程

本发明涉及通信技术领域,特别是涉及一种消息处理装置、方法及通信系统。



背景技术:

随着通信技术领域的发展,通信设备之间可采用主从模式的通信方式进行通信。目前,基于低可靠性的硬件接口(如串行接口)通常数据都是由主设备发起,从设备响应数据,从设备不能主动发送消息,主设备无法处理从设备的突发消息;而对于高可靠性的硬件接口(如以太网接口)虽可实现异步消息的处理,但是硬件成本大,且系统设计难度大。

在实现过程中,发明人发现传统技术中至少存在如下问题:在通信设备之间进行通信中,难以兼顾系统的硬件成本和通信的可靠性。



技术实现要素:

基于此,有必要针对传统的通信设备难以兼顾系统的硬件成本和通信的可靠性的问题,提供一种消息处理装置、方法及通信系统。

为了实现上述目的,本发明实施例提供了一种消息处理装置,包括缓冲池、消息接收单元、查询响应单元和上报消息处理单元;缓冲池包括多个缓冲区;

消息接收单元,用于将从设备传输的上报消息缓存至缓冲区;

查询响应单元,用于根据主设备发送的查询命令,阻塞消息接收单元运行,并等待接收从设备传输的数据;数据包括响应消息和上报消息;还用于在检测到数据为响应消息时,处理响应消息;在检测到数据为上报消息时,将上报消息缓存至缓冲区;

上报消息处理单元,用于从缓冲区中读取上报消息,并处理读取到的上报消息。

在其中一个实施例中,消息接收单元,还用于根据上报消息,从缓冲池中申请状态为空闲的缓冲区,并将上报消息缓存至缓冲区;在上报消息缓存完毕时,将缓冲区的状态更改为就绪状态。

在其中一个实施例中,查询响应单元,还用于在检测到数据为上报消息时,将上报消息缓存至状态为空闲的缓冲区,且在上报消息缓存完毕时,将缓冲区的状态更改为就绪状态。

在其中一个实施例中,上报消息处理单元,还用于从状态为就绪的缓冲区中读取上报消息,并处理读取到的上报消息。

在其中一个实施例中,消息接收单元,还用于在将从设备传输的上报消息缓存至缓冲区之前,获取接收锁;接收锁用于表征接收消息的权限;在将从设备传输的上报消息缓存至缓冲区之后,释放接收锁;

查询响应单元,还用于在阻塞消息接收单元运行之前,获取接收锁;在检测到数据为响应消息之后,释放接收锁。

在其中一个实施例中,消息接收单元,还用于在获取接收锁之后,若预设时间内未接收到上报消息,则释放接收锁。

在其中一个实施例中,消息接收单元,还用于在将从设备传输的上报消息缓存至缓冲区之前,获取缓冲区锁;缓冲区锁用于表征将消息缓存至缓冲区的权限;在将从设备传输的上报消息缓存至缓冲区之后,释放缓冲区锁;

查询响应单元,还用于在将上报消息缓存至缓冲区之前,获取缓冲区锁;在将上报消息缓存至缓冲区之后,释放缓冲区锁。

在其中一个实施例中,消息接收单元,还用于在上报消息缓存至缓冲区时,将缓冲区的状态更改为忙碌状态;

查询响应单元,还用于在等待接收从设备传输的数据之后,将接收到的数据缓存至状态为忙碌的缓冲区。

在其中一个实施例中,查询响应单元,还用于在将接收到的数据缓存至状态为忙碌的缓冲区之前,获取缓冲区锁;在将接收到的数据缓存至状态为忙碌的缓冲区之后,释放缓冲区锁。

在其中一个实施例中,上报消息处理单元,还用于在处理读取到的上报消息之后,将缓冲区清空,并将缓冲区的状态更改为空闲状态。

在其中一个实施例中,上报消息处理单元,还用于在将缓冲区清空之前,获取缓冲区锁;在将缓冲区的状态更改为空闲状态之后,释放缓冲区锁。

在其中一个实施例中,查询响应单元,还用于在预设时间内、未检测到响应消息时,向主设备反馈查询失败消息。

另一方面,本发明实施例还提供了一种消息处理方法,包括以下步骤:

使用消息接收单元将从设备传输的上报消息缓存至缓冲区;

使用查询响应单元根据主设备发送的查询命令,阻塞消息接收单元运行,并等待接收从设备传输的数据;数据包括响应消息和上报消息;在检测到数据为响应消息时,处理响应消息;在检测到数据为上报消息时,将上报消息缓存至缓冲区;

使用上报消息处理单元从缓冲区中读取上报消息,并处理读取到的上报消息。

另一方面,本发明实施例还提供了一种通信系统,包括主设备以及连接主设备的从设备;

主设备用于执行上述消息处理方法的步骤。

在其中一个实施例中,主设备通过串行接口连接从设备。

另一方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现上述消息处理方法的步骤。

上述技术方案中的一个技术方案具有如下优点和有益效果:

从设备产生上报消息时,可通过运行消息接收单元和上报消息处理单元,实现从设备将上报消息主动传输给主设备,进而主设备可及时处理上报消息;具体地,消息接收单元可将从设备传输的上报消息缓存至缓冲区,上报消息处理单元读取并处理缓冲区中的上报消息,进而主设备可及时处理从设备主动上报的上报消息。主设备需要查询从设备时,可通过运行查询响应单元,实现主设备主动获取从设备的响应消息;具体地,查询响应单元可根据查询命令,阻塞消息接收单元运行,并等待接收从设备传输的数据;在检测到数据为响应消息时,处理响应消息;在检测到数据为上报消息时,将上报消息缓存至缓冲区,进而可通过上报消息处理单元读取并处理缓冲区中的上报消息,实现主设备获取响应消息的过程中,及时接收从设备的上报消息,防止上报消息的丢失,提高了通信可靠性;此外,上述消息处理装置可在低可靠性的通信接口中实现,大大降低了硬件系统的成本。

附图说明

图1为一个实施例中消息处理装置的结构示意图;

图2为一个实施例中消息接收单元的工作流程框图;

图3为一个实施例中查询响应单元的工作流程框图;

图4为一个实施例中上报消息处理单元的工作流程框图;

图5为一个实施例中消息处理方法的流程示意图;

图6为一个实施例中通信系统的第一结构示意图;

图7为一个实施例中通信系统的第二结构示意图。

具体实施方式

为了便于理解本申请,下面将参照相关附图对本申请进行更全面的描述。附图中给出了本申请的首选实施例。但是,本申请可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本申请的公开内容更加透彻全面。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。

在一个实施例中,如图1所示,提供了一种消息处理装置,包括缓冲池110、消息接收单元120、查询响应单元130和上报消息处理单元140;缓冲池110包括多个缓冲区。

消息接收单元120,用于将从设备传输的上报消息缓存至缓冲区。

查询响应单元130,用于根据主设备发送的查询命令,阻塞消息接收单元运行,并等待接收从设备传输的数据;数据包括响应消息和上报消息;还用于在检测到数据为响应消息时,处理响应消息;在检测到数据为上报消息时,将上报消息缓存至缓冲区。

上报消息处理单元140,用于从缓冲区中读取上报消息,并处理读取到的上报消息。

其中,缓冲池110指的是缓存数据的缓存器,缓冲区可用来分类缓存上报消息。缓冲池110可包括多个缓冲区,缓冲区可用来缓存上报消息。上报消息指的是从设备主动向主设备发送的上报消息;例如从设备产生异常时,可生成用于指示产生异常的上报消息。主设备可以是通信设备;从设备可以是通信设备。消息接收单元120可用来接收上报消息;在一个示例中,在系统初始化时,可启动消息接收单元,通过消息接收单元120可实时对上报消息进行接收。上报消息处理单元140可用来处理上报消息。查询响应单元130可用来接收数据(包括响应消息和上报消息),并对接收到的响应消息进行处理和对接收到的上报消息进行缓存;在一个示例中,在主设备需要主动查询从设备时,可启动查询响应单元130,通过查询响应单元130处理查询响应过程。查询命令指的是一种查询指令;在一个示例中,主设备可将生成的查询命令发送给从设备,从设备根据查询命令向主设备反馈响应消息。

具体地,在从设备产生上报消息需要上报给主设备时,可通过启动消息接收单元120,将从设备传输的上报消息缓存至缓冲区,实现从设备将上报消息主动传输给主设备;通过启动上报消息处理单元140,读取并处理缓冲区中的上报消息,实现及时处理从设备紧急的上报消息。在主设备需要查询从设备时,可通过启动查询响应单元130,根据主设备发送的查询命令,阻塞消息接收单元运行,并等待接收从设备传输的数据;接收到从设备传输的数据后,判断该数据的类型,在检测到数据为响应消息时,处理响应消息,实现主设备主动获取从设备的响应消息;在检测到数据为上报消息时,将上报消息缓存至缓冲区,进而可通过上报消息处理单元140读取并处理缓冲区中的上报消息,实现主设备获取响应消息的过程中,及时接收从设备的上报消息,防止上报消息的丢失,提高了通信可靠性。

进一步的,在系统初始化时,可启动消息接收单元120和上报消息处理单元140,通过消息接收单元120检测是否接收到从设备的上报消息,若接收到上报消息,则将上报消息缓存在缓冲区;若未接收到上报消息,则继续检测是否接收到上报消息。上报消息处理单元140可遍历缓冲池中的各个缓冲区,从缓冲区中读取上报消息,并将读取到的上报消息进行处理,实现及时处理从设备的上报消息。在系统运行过程中,若主设备主动向从设备发送查询命令,可启动查询响应单元130,通过查询响应单元130阻塞消息接收单元,使得消息接收单元暂停运行,无法得到调度;主设备将查询命令发送给从设备后,进入等待阶段,等待接收从设备传输的数据。在等待阶段,查询响应单元130可实时检测接收到的数据是否为响应消息,若检测到数据为响应消息,则直接对该响应消息进行处理;若检测到的数据为上报消息,则将上报消息缓存至缓冲区,进而可通过上报消息处理单元140读取并处理上报消息,实现系统的高可靠性通信。

需要说明的是,消息接收单元120、查询响应单元130和上报消息处理单元140可配置在主设备上。

需要说明的是,在一个时间节点上,只有消息接收单元120运行或查询响应单元130运行,即消息接收单元120运行或查询响应单元130不能同时运行。

基于本实施例,从设备产生上报消息时,可通过运行消息接收单元和上报消息处理单元,实现从设备将上报消息主动传输给主设备,进而主设备可及时处理上报消息;主设备需要查询从设备时,可通过运行查询响应单元接收从设备传输的数据,实现主设备主动获取从设备的响应消息,并对接收到的上报消息进行及时缓存;可在低可靠性的通信接口中实现上述主从设备的实时通信,大大降低了硬件系统的成本,同时实现对上报消息与响应消息的实时处理,防止处理响应消息和处理上报消息引起的冲突,以及防止上报消息的丢失,提高了通信的可靠性。

在一个实施例中,如图1所示,消息接收单元120,还用于根据上报消息,从缓冲池中申请状态为空闲的缓冲区,并将上报消息缓存至缓冲区;在上报消息缓存完毕时,将缓冲区的状态更改为就绪状态。

其中,缓冲区的状态为空闲状态可用来指示当前时刻该缓冲区未缓存有上报消息;缓冲区的状态为就绪状态可用来指示当前时刻该缓冲区已缓存有上报消息。

具体地,消息接收单元120接收到上报消息时,可根据接收到的上报消息,从缓冲池110中申请状态为空闲的缓冲区,并将接收到的上报消息缓存到该缓冲区中。在上报消息缓存完毕后,可将缓冲区的状态更改为就绪状态,以便上报消息处理单元140读取上报消息。通过对缓冲区设置缓存的状态,进而消息接收单元可分类缓存上报消息,防止消除处理冲突。

在一个实施例中,如图1所示,查询响应单元130,还用于在检测到数据为上报消息时,将上报消息缓存至状态为空闲的缓冲区,且在上报消息缓存完毕时,将缓冲区的状态更改为就绪状态。

具体地,查询响应单元130在检测到从设备传输的数据为上报消息时,可从缓冲池中申请状态为空闲的缓冲区,并将上报消息缓存到该缓冲区中。在上报消息缓存完毕后,可将缓冲区的状态更改为就绪状态,以便上报消息处理单元140读取上报消息。通过在查询响应过程中,及时获取上报消息,进而可防止上报消息的丢失;通过对缓冲区设置缓存的状态,进而查询响应单元可分类缓存上报消息,防止消除处理冲突。

在一个实施例中,如图1所示,上报消息处理单元140,还用于从状态为就绪的缓冲区中读取上报消息,并处理读取到的上报消息。

具体地,上报消息处理单元140可通过查询缓冲池110中各个缓冲区的状态,若查询到缓冲区的状态为就绪状态,则从状态为就绪状态的缓冲区中读取上报消息,并对读取到的上报消息进行处理,实现对上报消息的及时处理。

在一个实施例中,如图1所示,消息接收单元120,还用于在将从设备传输的上报消息缓存至缓冲区之前,获取接收锁;接收锁用于表征接收消息的权限;在将从设备传输的上报消息缓存至缓冲区之后,释放接收锁。

查询响应单元130,还用于在阻塞消息接收单元运行之前,获取接收锁;在检测到数据为响应消息之后,释放接收锁。

其中,接收锁可用于指示接收上报消息的权限,还可用于指示接收响应消息的权限。通过获取接收锁,即可获取到接收上报消息的权限;通过释放接收锁,即可释放接收上报消息的权限,以便其他单元(如消息接收单元)获取接收锁。

具体地,在从设备产生上报消息需要上报给主设备时,可通过启动消息接收单元120,获取接收锁;根据获取到的接收锁,可将从设备传输的上报消息缓存至缓冲区,在上报消息缓存完毕后,可释放接收锁,即完成了本轮的消息接收过程。实现从设备将上报消息主动传输给主设备。在主设备需要查询从设备时,可通过启动查询响应单元130,获取接收锁;在获取到接收锁后,进而可根据主设备发送的查询命令,阻塞消息接收单元120的运行,并等待接收从设备传输的数据;在检测到数据为响应消息时,可释放接收锁,并处理响应消息,实现主设备主动获取从设备的响应消息;通过设置接收锁,可防止消息传输的冲突,提高了通信可靠性。

进一步的,消息接收单元120接收上报消息之前,可获取接收锁;在上报消息缓存完毕,将缓冲区的状态更改为就绪状态后,可释放接收锁,完成本轮的消息接收。

在一个示例中,主设备通过串行接口连接从设备,通过设置接收锁的机制,可实现在串行接口上主从通信时消息不丢失,进而提高了通信可靠性。

在一个实施例中,如图1所示,消息接收单元120,还用于在获取接收锁之后,若预设时间内未接收到上报消息,则释放接收锁。

具体地,消息接收单元120在获取接收锁之后,若预设时间内未接收到上报消息,即消息接收超时,表示在本轮未接收到上报消息,则释放接收锁,结束本轮的消息接收,防止在从设备为长时间未产生上报消息,或消息接收发生异常时,消息接收单元120占用接收锁,提高了通信的可靠性。

在一个实施例中,如图1所示,消息接收单元120,还用于在将从设备传输的上报消息缓存至缓冲区之前,获取缓冲区锁;缓冲区锁用于表征将消息缓存至缓冲区的权限;在将从设备传输的上报消息缓存至缓冲区之后,释放缓冲区锁。

查询响应单元130,还用于在将上报消息缓存至缓冲区之前,获取缓冲区锁;在将上报消息缓存至缓冲区之后,释放缓冲区锁。

其中,缓冲区锁可用于指示缓冲区的权限;缓冲区的权限包括读、写和擦除等权限,其中读权限可用于读取缓冲区的消息;写权限可用来将消息缓存至缓冲区;擦除权限可用来清空缓冲区。

具体地,在从设备产生上报消息需要上报给主设备时,可通过启动消息接收单元120,获取缓冲区锁;根据获取到的缓冲区锁,可将从设备传输的上报消息缓存至缓冲区;在将上报消息缓存至缓冲区之后,释放缓冲区锁,实现本轮的消息缓存,防止数据缓存过程中的数据冲突,实现从设备将上报消息主动传输给主设备过程中,消息的同步和互斥。在主设备需要查询从设备时,若检测到数据为上报消息,可获取缓冲区锁,进而可将上报消息缓存至缓冲区,在上报消息缓存完毕后,可释放缓冲区锁,完成本轮的上报消息缓存。实现主设备获取响应消息的过程中,及时接收从设备的上报消息,防止消息缓存过程中的数据冲突,提高了通信可靠性。

在一个实施例中,如图1所示,消息接收单元120,还用于在上报消息缓存至缓冲区时,将缓冲区的状态更改为忙碌状态。

查询响应单元130,还用于在等待接收从设备传输的数据之后,将接收到的数据缓存至状态为忙碌的缓冲区。

其中,缓冲区的状态为忙碌状态可用来指示当前时刻该缓冲区正在缓存上报消息,且上报消息未缓存完毕。

具体地,消息接收单元120接收到上报消息时,可根据接收到的上报消息,从缓冲池110中申请状态为空闲的缓冲区,并将接收到的上报消息缓存到该缓冲区中。在上报消息开始缓存时,可将缓冲区的状态更改为忙碌状态,通过设置缓冲区的忙碌状态,以便指示上报消息正在缓存过程中。查询响应单元130阻塞消息接收单元运行,并等待接收从设备传输的数据时,若当前缓冲池中存在状态为忙碌的缓冲区,则表示该状态为忙碌的缓冲区正在缓存上报消息,即此时查询响应单元130接收到的数据为上报消息,进而将接收到的数据(即上报消息)缓存至状态为忙碌的缓冲区,防止查询响应过程中上报消息的丢失。

在一个实施例中,如图1所示,查询响应单元130,还用于在将接收到的数据缓存至状态为忙碌的缓冲区之前,获取缓冲区锁;在将接收到的数据缓存至状态为忙碌的缓冲区之后,释放缓冲区锁。

具体地,查询响应单元130阻塞消息接收单元运行,并等待接收从设备传输的数据时,若当前缓冲池110中存在状态为忙碌的缓冲区,则表示该状态为忙碌的缓冲区正在缓存上报消息,则获取缓冲区锁,进而基于获取到的缓冲区锁将接收到的数据(即上报消息)缓存至状态为忙碌的缓冲区;在数据缓存完毕后,释放缓冲区锁,实现在查询响应过程中,对上报消息的及时接收,防止查询响应过程中上报消息的丢失。

在一个实施例中,如图1所示,上报消息处理单元140,还用于在处理读取到的上报消息之后,将缓冲区清空,并将缓冲区的状态更改为空闲状态。

具体地,上报消息处理单元140在从缓冲区中读取上报消息进行处理后,清空该缓冲区,并将缓冲区的状态更改为空闲状态,实现对上报消息处理后,对应该上报消息的缓冲区的重新初始化,以备后续消息缓存中继续使用,提高了缓存利用率。在其他实施例中,上报消息处理单元140可在缓冲区中读取上报消息后,且在处理上报消息之间,清空该缓冲区,并将缓冲区的状态更改为空闲状态。

需要说明的是,在一个示例中,上报消息处理单元140在从缓冲区中读取上报消息之前,可先获取缓冲区锁,进而可根据缓冲区锁的读权限,从缓冲区中读取上报消息。在从缓冲区中读取上报消息之后,释放该缓冲区锁。在另一个示例中,上报消息处理单元140还可直接从缓冲区中读取上报消息,而无需先获取缓冲区锁。

在一个实施例中,如图1所示,上报消息处理单元140,还用于在将缓冲区清空之前,获取缓冲区锁;在将缓冲区的状态更改为空闲状态之后,释放缓冲区锁。

具体地,上报消息处理单元140在从缓冲区中读取上报消息进行处理后,可获取缓冲区锁;基于获取到的缓冲区锁,清空该缓冲区,并将缓冲区的状态更改为空闲状态;在缓冲区的状态更改为空闲状态后,释放缓冲区锁,实现对上报消息处理后,对应该上报消息的缓冲区的重新初始化;通过设置缓冲区锁,提高了通信的可靠性。

在一个实施例中,如图1所示,查询响应单元130,还用于在预设时间内、未检测到响应消息时,向主设备反馈查询失败消息。

其中,查询失败消息可用来指示查询结果响应超时。

具体地,在主设备需要查询从设备时,可通过启动查询响应单元130,并等待主设备发送查询命令;若在预设时间内,未检测到主设备发送查询命令,则认为查询响应超时,向主设备反馈查询失败消息,并接收本轮的查询响应过程。

上述实施例中,可在低可靠性的通信接口中实现,大大降低了硬件系统的成本,同时避免了通信过程中处理上报消息与响应消息容易引起的冲突,提高了通信的可靠性。

在一个实施例中,如图2所示,为消息接收单元的工作流程框图,消息接收单元的具体工作过程为:

在从设备产生上报消息需要上报给主设备时,可通过启动消息接收单元,获取接收锁;判断在预设时间内是否有接收到上报消息,若未接收到上报消息,则表示消息接收超时,释放接收锁,完成本轮消息接收;若接收到上报消息,则从缓冲池中申请状态为空闲的缓冲区,并获取缓冲区锁,基于获取到的缓冲区锁将接收到的上报消息缓存到该缓冲区中;在上报消息缓存时,将该缓冲区的状态更改为忙碌状态,表示该缓冲区正在接收上报消息;当上报消息接收完毕后,将该缓冲区的状态更改为就绪状态,表示该缓冲区的上报消息已缓存完毕,可以被上报消息处理单元使用。

如图3所示,为查询响应单元的工作流程框图,查询响应单元的具体工作过程为:

在主设备需要查询从设备时,可通过启动查询响应单元,获取接收锁;根据主设备发送的查询命令,阻塞消息接收单元运行,并等待接收从设备传输的数据;在等待接收从设备传输的数据时,检测缓冲池中是否有状态为忙碌的缓冲区,若有状态为忙碌的缓冲区,则获取缓冲区锁,并将接收到的数据继续缓存在状态为忙碌的缓冲区中,并在数据缓存完毕后,释放缓冲区锁;在接收到从设备传输的数据时,判断检测到的数据是否为响应消息;若检测到数据为响应消息,释放接收锁,并处理响应消息,实现主设备主动获取从设备的响应消息;若检测到数据为上报消息,则获取缓冲区锁,则从缓冲池中申请状态为空闲的缓冲区,并将上报消息缓存至状态为空闲的缓冲区;在上报消息缓存完毕后,释放缓冲区锁,实现主设备获取响应消息的过程中,及时接收从设备的上报消息,防止上报消息的丢失,提高了通信可靠性。

如图4所示,为上报消息处理单元的工作流程框图,上报消息处理单元的具体工作过程为:

基于上报消息缓存至缓冲池中,且上报消息缓存结束后,缓存该缓冲区的状态更改为就绪状态;上报消息处理单元可通过遍历缓冲池中各个缓冲区,判断缓冲池中是否有状态为忙碌的缓冲区,若有,则读取该缓冲区的上报消息,并对上报消息进行上报处理;在上报消息处理完毕后,可获取缓冲区锁,将对应上报消息的缓冲区清空,并将该缓冲区的状态更改为空闲状态,即对该缓冲区进行重新初始化,以备后续消息接收继续使用该缓冲区。

需要说明的是,消息接收单元从缓冲池中申请状态为空闲的缓冲区时,可记录该缓冲区的id(身份识别码),通过记录缓冲区的id可用于后续判断当前时刻是否有上报消息未接收完,还可用于判断遍历缓冲区是否有状态为忙碌的缓冲区。

基于本实施例,可在低可靠性的通信接口中实现高可靠性的双端通信机制,使得总线上的主设备既能主动接收响应消息,还能随时接收从设备突发的上报数据。

在一个实施例中,如图5所示,提供一种消息处理方法。包括以下步骤:

步骤s510,使用消息接收单元将从设备传输的上报消息缓存至缓冲区。

步骤s520,使用查询响应单元根据主设备发送的查询命令,阻塞消息接收单元运行,并等待接收从设备传输的数据;数据包括响应消息和上报消息;在检测到数据为响应消息时,处理响应消息;在检测到数据为上报消息时,将上报消息缓存至缓冲区。

步骤s530,使用上报消息处理单元从缓冲区中读取上报消息,并处理读取到的上报消息。

其中,上述步骤s510、步骤s520和步骤s530的具体内容过程可参考上文中对于消息处理装置描述的内容,此处不再赘述。

具体地,从设备产生上报消息时,可通过运行消息接收单元和上报消息处理单元,实现从设备将上报消息主动传输给主设备,进而主设备可及时处理上报消息;主设备需要查询从设备时,可通过运行查询响应单元,实现主设备主动获取从设备的响应消息,实现主设备获取响应消息的过程中,及时接收从设备的上报消息,防止上报消息的丢失,提高了通信可靠性;此外,上述消息处理装置可在低可靠性的通信接口中实现,大大降低了硬件系统的成本。

应该理解的是,虽然图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图6所示,提供一种通信系统。该系统包括主设备610以及连接主设备610的从设备620。

主设备610可用于执行以下步骤:

使用消息接收单元将从设备传输的上报消息缓存至缓冲区;

使用查询响应单元根据主设备发送的查询命令,阻塞消息接收单元运行,并等待接收从设备传输的数据;数据包括响应消息和上报消息;在检测到数据为响应消息时,处理响应消息;在检测到数据为上报消息时,将上报消息缓存至缓冲区;

使用上报消息处理单元从缓冲区中读取上报消息,并处理读取到的上报消息。

基于本实施例,可在低可靠性的通信接口中实现高可靠性的通信,大大降低了硬件系统的成本,对小成本产品的通信系统提供了一种有效可靠的通信机制。使得总线上的主设备既能主动接收响应消息,还能随时接收从设备突发的上报数据。

在一个实施例中,如图7所示,提供了一种通信系统,包括主设备710以及连接主设备710的从设备720;其中,主设备710通过串行接口连接从设备720。

主设备710可用于执行以下步骤:

使用消息接收单元将从设备传输的上报消息缓存至缓冲区;

使用查询响应单元根据主设备发送的查询命令,阻塞消息接收单元运行,并等待接收从设备传输的数据;数据包括响应消息和上报消息;在检测到数据为响应消息时,处理响应消息;在检测到数据为上报消息时,将上报消息缓存至缓冲区;

使用上报消息处理单元从缓冲区中读取上报消息,并处理读取到的上报消息。

基于本实施例,可在低可靠性的串行接口中实现高可靠性的通信,大大降低了硬件系统的成本,对小成本产品的通信系统提供了一种有效可靠的通信机制。使得总线上的主设备既能主动接收响应消息,还能随时接收从设备突发的上报数据。

关于通信系统的具体限定可以参见上文中对于消息处理装置的限定,在此不再赘述。

需要说明的是,主设备可运行上述的消息处理装置,例如,主设备可配置上述的消息处理装置,通过线程处理消息接收单元、查询响应单元和上报消息处理单元,实现高可靠性的通信。

需要说明的是,对应主设备连接多个从设备进行通信时,具体的通信过程与主设备连接一个从设备进行通信时类似,在此不再赘述。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

使用消息接收单元将从设备传输的上报消息缓存至缓冲区;

使用查询响应单元根据主设备发送的查询命令,阻塞消息接收单元运行,并等待接收从设备传输的数据;数据包括响应消息和上报消息;在检测到数据为响应消息时,处理响应消息;在检测到数据为上报消息时,将上报消息缓存至缓冲区;

使用上报消息处理单元从缓冲区中读取上报消息,并处理读取到的上报消息。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各除法运算方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1