多软件运行环境通信方法、使多软件运行环境通信的方法技术

技术编号:8562899 阅读:183 留言:0更新日期:2013-04-11 04:32
本发明专利技术公开一种多个软件运行环境之间的通信方法、及使多个软件运行环境之间通信的方法,其中,所述多个软件运行环境之间的通信方法包括以下步骤,S1、源软件运行环境根据待发送信息的类型与所述目的软件运行环境约定传输信息时选择的信息通道;以及,通过被选择的信息通道将所述待发送信息发送至通信驱动;S2、所述目的软件运行环境通过被选择的信息通道接收自所述通信驱动传送的待发送信息。通过本发明专利技术提供的技术方案,可以实现多个软件运行环境之间的通信。

【技术实现步骤摘要】

本专利技术涉及复杂嵌入式系统的软件领域,尤其涉及在多核处理器基础上的一种多个软件运行环境之间的通信方法,以及使多个软件运行环境之间通信的方法。
技术介绍
随着嵌入式系统的应用越来越广泛,多核处理器有了更多的用武之地。所谓多核处理器就是在一片处理器芯片内部集成多个完全独立的处理单元,可以并行的处理业务。传统的单核处理器在主频提升方面已经很难突破芯片材料的物理极限,也就意味着处理性能很难再有所提升,而多核处理器却从另一种思路实现并行处理为处理性能的提升预留了很大的空间。为了更好地发挥多核处理器的并行处理能力,软件设计上通常采用多个软件运行环境在不同的处理器内核上单独运行。正如图1所示,复杂嵌入式系统由多个硬件和软件组件构成,每个组件相对独立地并行处理某种业务,从而实现高性能的计算处理系统。现在的一些复杂嵌入式系统中,往往米用多核处理器作为中心引擎,一个系统内涉及多个软件运行环境。这种情况下,非常需要一种完整的便于使用的多个软件运行环境之间的通信方法,以这种通信方法为基础构建复杂并且可靠的嵌入式系统。专利[CN101216814A]阐述的主要方法是通过虚拟数据通道进行数据传输,所述虚拟数据通道包括相互连接的操作系统对应的虚拟接口(例如虚拟网口)。这份说明文档公开的多核多操作系统之间通信方法,不使用硬件芯片,降低硬件成本;第三方软件不需要改动就可以移植,降低了软件移植成本;采用共享内存和核间消息实现数据收发,实现数据零拷贝,提高数据收发效率。从上述说明文档的技术过程分析,建立虚拟数据通道的方法适合传输数据消息,不适合传输控制消息,另外采用共享内存和核间消息不使用硬件芯片的特点是大多数多核通信共用的方法,这种方法没有经过很好的设计封装只能作为底层的技术原理并未实现方便操作的通信系统。专利[CN101170511A]阐述的主要方法是在嵌入式操作系统中实现多核处理器通信的装置及方法,包括内存模块、网络模块,其中,所述内存模块,在对外通信中,用于存储向网络模块发送的报文,通知网络模块将该报文发送;所述网络模块,用于接收所述内存模块发送的报文,同时发送中断请求,完成CPU核的通信。应用本专利技术,克服了现有技术的不足,首先无论是对外通信还是核间通信都挂接协议栈,功能更强大,上层应用开发更加方便;其次将对外通信和核间通信对于上层透明化,使得应用层无须关注底层的传输细节。从上述说明文档的技术过程分析,让CPU内核之间的通信挂接协议栈虽然使得应用层无需关注底层的传输细节,但是对于整个嵌入式设备来看被分成了多个独立的系统,需要为每个独立的系统协议栈独立分配一些必要的资源,比如地址标识,不利于复杂嵌入式系统的设计和集成。专利[CN1904873A]阐述的主要方法是在嵌入式实时操作系统中多核处理器的核间通信方法,包括在共享内存区中分配内存作为多核共享消息池;源核将要发送的消息写入多核共享消息池;源核将所述消息在多核共享消息池中的地址、目的任务标识通过数据管道发送给目的核;目的核将多核共享消息池中所述地址存放的所述消息传送给目的任务。本专利技术还公开了一种核间通信装置。本专利技术实现了核间的消息队列通信机制,提高了核间通信的效率,使每次传输消息的长度不再受到限制;本专利技术还实现了核内通信和核间通信的统一,为应用程序的开发提供了方便。从上述说明文档的技术过程分析,使用共享内存的机制让每条消息携带内核编号和任务编号实现多核通信,但是这种方法的主要缺点是应用程序开发的时候需要关注具体的CPU内核硬件类型,另外基于单条消息的传输方式对于大量的数据传输来说效率不高。
技术实现思路
本专利技术主要解决的技术问题是提供一种多个软件运行环境之间的通信方法,以及,使多个软件运行环境之间通信的方法。为解决上述问题,本专利技术采用的一种技术方案是提供一种多个软件运行环境之间的通信方法,包括以下步骤,S1、源软件运行环境根据待发送信息的类型与所述目的软件运行环境约定传输信息时选择的信息通道;以及,通过被选择的信息通道将所述待发送信息发送至通信驱动;S2、所述目的软件运行环境通过被选择的信息通道接收自所述通信驱动传送的待发送信息。其中,所述步骤SI包括以下步骤,S10、所述源软件运行环境向目的软件运行送信息时判断所述待发送信息的类型是消息还是数据;若判定所述待发送信息的类型为消息,则与所述目的软件运行环境约定传输信息时选择的信息通道为消息通道,并执行步骤Sll ;若判定所述待发送信息的类型为数据,则与所述目的软件运行环境约定传输信息时选择的信息通道为数据通道,并执行步骤S12 ;S11、所述源软件运行环境建立与所述目的软件运行环境连接的消息通道,并通过上述建立好的消息通道将所述待发送信息发送至通信驱动;S12、通过数据通道将所述待发送信息发送至通信驱动。其中,所述步骤Sll中消息通道具体通过下步骤被建立,S110、所述源软件运行环境向所述目的软件运行环境发送建立连接的请求;S111、接收所述目的软件运行环境对上述请求的响应,并建立与所述目的软件运行环境创建之间的连接,形成消息通道。其中,所述待发送信息中还包含有调用所述目的软件运行环境函数的调用指令。其中,所述步骤S2中,所述目的软件运行环境接收消息时,向所述源软件运行环境发送消息应答。其中,所述通信驱动为共享内存通信驱动,或为以太网通信驱动。其中,所述源软件运行环境为Linux内核或操作系统,或为应用程序,或为基于硬件的单线程专用程序。其中,当所述通信驱动为共享内存通信驱动时,所述步骤SI中通过被选择的信息通道将所述待发送信息发送至通信驱动的步骤和所述步骤S2之间,还包括以下步骤,S20、判断所述源软件运行环境是为Linux内核或操作系统,是为应用程序,还是为基于硬件的单线程专用程序;当判定为Linux内核或操作系统时,执行步骤S21 ;当判定为应用程序时,执行步骤S22 ;当判定为基于硬件的单线程专用程序时,执行步骤S23 ;S21、所述源软件运行环境向所述目的软件运行环境发送一个中断,用于通知所述目的软件运行环境接收所述待发送信息;S22、所述源软件运行环境向所述目的软件运行环境发送一个信号事件,用于通知所述目的软件运行接收所述待发送信息;S23、所述源软件运行环境直接将所述待发送信息发送至所述目的软件运行环境。所述目的软件运行环境通过轮询的方式接收所述待发送信息。其中,当所述通信驱动为以太网通信驱动时,所述待发送信息被封装在以太网报文内部。其中,所述共享内存通信驱动中的缓存是以2048字节为大小的存储块。为解决上述问题,本专利技术采用的另一种技术方案是提供一种使多个软件运行环境之间通信的方法,包括以下步骤,S01、为系统中每个软件运行环境分配一个通信编号,并为需与目的软件运行环境进行通信的源软件运行环境分配至少一个接收端口号;S02、在所述源软件运行环境及目的软件运行环境中创建端点,根据待传输信息的类型在所述源软件运行环境端点、目的软件运行环境端点之间建立相应的信息通道。其中,所述步骤S02包括以下步骤,S020、判断所述待传输信息的类型是为数据,还是为消息;当判定所述待传输信息的类型为数据时,执行步骤S021 ;当判定所述待传输信息的类型为消息时,执行步骤S022 ;S021、在所述源软件运行环境中创建第一端点,并与本文档来自技高网
...

【技术保护点】
一种多个软件运行环境之间的通信方法,其特征在于,包括以下步骤,S1、源软件运行环境根据待发送信息的类型与所述目的软件运行环境约定传输信息时选择的信息通道;以及,通过被选择的信息通道将所述待发送信息发送至通信驱动;S2、所述目的软件运行环境通过被选择的信息通道接收自所述通信驱动传送的待发送信息。

【技术特征摘要】
2012.05.29 CN 201210170684.01.一种多个软件运行环境之间的通信方法,其特征在于,包括以下步骤, 51、源软件运行环境根据待发送信息的类型与所述目的软件运行环境约定传输信息时选择的信息通道;以及,通过被选择的信息通道将所述待发送信息发送至通信驱动; 52、所述目的软件运行环境通过被选择的信息通道接收自所述通信驱动传送的待发送信息。2.根据权利要求1所述的多个软件运行环境之间的通信方法,其特征在于,所述步骤SI包括以下步骤, 510、所述源软件运行环境向目的软件运行送信息时判断所述待发送信息的类型是消息还是数据; 若判定所述待发送信息的类型为消息,则与所述目的软件运行环境约定传输信息时选择的信息通道为消息通道,并执行步骤Sll ;若判定所述待发送信息的类型为数据,则与所述目的软件运行环境约定传输信息时选择的信息通道为数据通道,并执行步骤S12 ; 511、所述源软件运行环境建立与所述目的软件运行环境连接的消息通道,并通过上述建立好的消息通道将所述待发送信息发送至通信驱动; 512、通过数据通道将所述待发送信息发送至通信驱动。3.根据权利要求2所述的多个软件运行环境之间的通信方法,其特征在于,所述步骤Sll中消息通道具体通过下步骤被建立, S110、所述源软件运行环境向所述目的软件运行环境发送建立连接的请求; sill、接收所述目的软件运行环境对上述请求的响应,并建立与所述目的软件运行环境创建之间的连接,形成消息通道。4.根据权利要求3所述的多个软件运行环境之间的通信方法,其特征在于,所述待发送信息中还包含有调用所述目的软件运行环境函数的调用指令。5.根据权利要求3所述的多个软件运行环境之间的通信方法,其特征在于,所述步骤S2中,所述目的软件运行环境接收消息时,向所述源软件运行环境发送消息应答。6.根据权利要求1至5任一项所述的多个软件运行环境之间的通信方法,其特征在于,所述通信驱动为共享内存通信驱动,或为以太网通信驱动;所述源软件运行环境为Linux内核或操作系统,或为应用程序,或为基于硬件的单线程专用程序。7.根据权...

【专利技术属性】
技术研发人员:罗来财
申请(专利权)人:福建三元达通讯股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1