掌桥专利:专业的专利平台
掌桥专利
首页

单通道设备通信中间件

文献发布时间:2023-06-19 11:49:09


单通道设备通信中间件

技术领域

本发明涉及嵌入式通信技术领域,尤其涉及单通道设备通信中间件。

背景技术

近些年来,随着电子技术的不断发展,现代电子装备系统集成已经进入了一个崭新的时代—模块化高度综合(IME)系统集成时代。采用可重配的通用模块构件复杂的电子系统有助于提升系统的可用性、增加系统的成功率、大幅度减少系统的体积/质量/功耗及全寿命周期成本。传统的单通道通信设备应用于复杂的电子系统中,如can、uart,其单个通道的输入输出越来越无法满足复杂需求,不能够支持多个业务同时输入输出,只能通过增加设备数量来解决,增加了硬件成本和更多不可靠因素。

目前,单通道通信设备的使用方式:字符设备:支持单个业务或应用的输入输出;网络设备:如can设备,加入到网络设备能够被多用户业务或应用共享使用;

这两种方式都有各自的缺陷和不足:字符设备:只支持单个业务或应用使用,对于高度综合电子系统的任务迁移和单通道通信设备硬件资源有限的情况下,不能满足多个业务的同时使用;网络设备:虽然能够支持多路设备,但经过了网络协议栈,其消息的及时性和实时性得不到保障,对于嵌入式领域的设备来说,由于某些硬件资源的匮乏不足以支撑网络协议栈的使用。

发明内容

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供单通道设备通信中间件,通过对单一操作的设备增加一个通信中间件,用以解决多个业务或应用同时使用某一单通道通信设备的通信问题。

为实现上述目的,本发明提供了单通道设备通信中间件,所述通信中间件在应用和设备驱动间构成一个通信渠道,用以管理同一类设备并支持多个用户使用;当用户业务或应用打开通信中间件的虚拟设备时,设置其关心的消息掩码和使用的通信设备;通信中间件根据用户业务或应用传递的参数操作相应的通信设备,并建立该业务或应用专属收发消息队列;当通信设备接收到数据后,检查消息是否与用户关心的消息掩码相符,相符则发送给用户,如此方式依次发给每个用户;用户发送消息时,如果开启了本地回环,发送的消息亦可以被同一系统内使用同一设备的其他关心该消息的用户接收到,之后由设备向外发出。

优选的,所述通信中间件以一个虚拟设备的形式存在于设备驱动中,可热插拔。

优选的,所述通信中间件对通信消息进行两级消息过滤。

优选的,所述通信中间件对同一类通信设备集中管理和使用,应用层可复用驱动通信接口,进行一系列操作。

优选的,所述设备驱动对应的通信设备为一个,所述应用为多个,所述多个应用之间的数据通道相互隔离。

优选的,所述通信中间件支持用户业务或应用的四个操作:虚拟设备打开、虚拟设备关闭、发送消息和接收消息。

优选的,所述虚拟设备打开的操作具体为:当用户操作通信中间件的虚拟设备打开时,会检查系统内是否有该通信设备存在,如存在则继续后续操作,通信中间件会为该用户创建专属消息队列和消息掩码,并加入该通信设备消息队列集,同时将该消息掩码与该设备的全局掩码合并;当该通信设备被用户首次操作时,会创建针对该通信设备的收发任务用以处理该通信设备的收发事宜。

优选的,所述虚拟设备关闭的操作具体为:当用户操作通信中间件的虚拟设备关闭时,通信中间件会在对应通信设备的消息队列集中删除其专属的消息队列和消息掩码,如果删除的消息队列是消息队列集中的最后一个,通知对应通信设备的收发任务关闭设备并退出。

优选的,所述发送消息的操作具体为:当发送任务检测到用户发来了新消息,接收消息;如果开启了本地回环,先将新消息转发到接收任务,然后发送消息给通信设备,由通信设备向外发出,然后继续等待新消息到来。

优选的,所述接收消息的操作具体为:

当接收任务检测到有新消息接收到,确认接收消息来源,如果本地回环开启且有消息转发过来则接收,如果是通信设备有新消息,则接收设备消息;

获得新消息与该设备的全局掩码匹配,匹配不成功则继续等待新消息,反之继续下一步操作;

查找该设备的消息队列集中的有效消息队列,使用新消息匹配消息队列对应的消息掩码,匹配成功则转发到对应的消息队列,用户业务或应用接收消息即可,匹配不成功或发送完成后在消息队列集中查找下一个有效消息队列,依次匹配发送,直至消息队列集被遍历完,继续等待下一个新消息的到来。

本发明的有益效果是:

1、支持多个用户使用同一通信设备,且保障用户间使用互不干扰;

2、减少了大系统内设备的资源竞争;

3、降低了硬件成本,减少了硬件升级带来的不确定性;避免了硬件资源不足,而且保证支持多个业务访问的同时保证消息传递的实时性;

4、解决了在IMA系统中任务迁移时使用同一设备的问题;

5、可以对同一类设备集中管理,减少用户程序代码复杂度;

6、通信中间件支持热插拔,更换、升级、增加接口设备,不需要重启系统,增加系统的可靠性。

以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。

附图说明

图1是本发明的软件架构图。

图2是本发明的用户打开操作软件流程图。

图3是本发明的用户关闭操作软件流程图。

图4是本发明的通信中间件中发送任务软件流程图。

图5是本发明的通信中间件中接收任务软件流程图。

具体实施方式

如图1所示,本发明提供了单通道设备通信中间件,通信中间件在应用和设备驱动间构成一个通信渠道,用以管理同一类设备并支持多个用户使用,如图,设备驱动对应的通信设备为一个,应用为多个,多个应用之间的数据通道相互隔离;当用户业务或应用打开通信中间件的虚拟设备时,设置其关心的消息掩码和使用的通信设备;通信中间件根据用户业务或应用传递的参数操作相应的通信设备,并建立该业务或应用专属收发消息队列;当通信设备接收到数据后,检查消息是否与用户关心的消息掩码相符,相符则发送给用户,如此方式依次发给每个用户;用户发送消息时,如果开启了本地回环,发送的消息亦可以被同一系统内使用同一设备的其他关心该消息的用户接收到,之后由通信设备向外发出。

上述通信中间件对通信消息进行两级消息过滤,通信中间件对同一类通信设备集中管理和使用,应用层复用驱动通信接口,进行一系列操作。

同时,通信中间件以一个虚拟设备的形式存在于设备驱动中,可热插拔,嵌入式系统驱动热插拔支持原理:

该功能是基于SylixOS的热插拔功能实现的,因为在现有的其他嵌入式系统中,内核中没有一个内核线程用于检测工业总线的接口的变化,而驱动部分代码必须运行在内核线程下面。

SylixOS系统支持热插的原理如下:

1、在内核态下有一专门检测总线状态的线程;

2、检测到总线状态变化后,能够读取总线设备类型;

3、读取到设备类型后,在内核态调用系统对应的驱动程序,在系统上创建当前的设备;

4、完成设备驱动,内核热插拔线程会发送模块插入信号给关注的应用进程;

5、应用进程收到模块插入信号后,即可使用插入的模块了,从而完成设备的热插使用。

SylixOS系统支持热拔的原理如下:

1、使用该驱动的应用程序,上电的时候会注册一个该驱动的插拔事件;

2、当子模块被拔掉的时候,内核热插拔线程通过检测总线管脚会感知到;

3、当感知到模块被拔走后,内核热插拔线程会发送模块拔出事件信号给注册的应用线程;

4、应用线程收到模块拔走信号,然后关闭对子模块的使用,从而完成设备的热拔隔离。

如图2-5所示,通信中间件支持用户业务或应用的四个操作:虚拟设备打开、虚拟设备关闭、发送消息和接收消息。

用户打开操作软件流程图如图2所示,虚拟设备打开的操作具体为:当用户操作通信中间件的虚拟设备打开时,会检查系统内是否有该通信设备存在,如存在则继续后续操作,通信中间件会为该用户创建专属消息队列和消息掩码,并加入该通信设备消息队列集,同时将该消息掩码与该设备的全局掩码合并;当该通信设备被用户首次操作时,会创建针对该通信设备的收发任务用以处理该通信设备的收发事宜。

用户关闭操作软件流程图如图3所示,虚拟设备关闭的操作具体为:当用户操作通信中间件的虚拟设备关闭时,通信中间件会在对应通信设备的消息队列集中删除其专属的消息队列和消息掩码,如果删除的消息队列是消息队列集中的最后一个,通知对应通信设备的收发任务关闭设备并退出。

通信中间件中发送任务软件流程图如图4所示,发送消息的操作具体为:当发送任务检测到用户发来了新消息,接收消息;如果开启了本地回环,先将新消息转发到接收任务,然后发送消息给通信设备,由设备向外发出,然后继续等待新消息到来。

通信中间件中接收任务软件流程图如图5所示:接收消息的操作具体为:

当接收任务检测到有新消息接收到,确认接收消息来源,如果本地回环开启且有消息转发过来则接收,如果是通信设备有新消息,则接收设备消息;

获得新消息与该设备的全局掩码匹配,匹配不成功则继续等待新消息,反之继续下一步操作;

查找该设备的消息队列集中的有效消息队列,使用新消息匹配消息队列对应的消息掩码,匹配成功则转发到对应的消息队列,用户业务或应用接收消息即可,匹配不成功或发送完成后在消息队列集中查找下一个有效消息队列,依次匹配发送,直至消息队列集被遍历完,继续等待下一个新消息的到来。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思做出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

相关技术
  • 单通道设备通信中间件
  • 雷达全脉冲转发干扰单通道抑制方法、装置及电子设备
技术分类

06120113066889