一种虚拟串口系统及其通信方法

文档序号:6338832阅读:212来源:国知局
专利名称:一种虚拟串口系统及其通信方法
技术领域
本发明涉及通信技术领域,尤其涉及一种虚拟串口系统及其通信方法。
背景技术
在工业控制领域,存在很多通信终端设备,这些设备通过物理串口和主站设备进行通信,随着终端设备数量的不断增加,主站设备上对应的物理串口数量也不断增加。现有技术中,一般通过增加新的串口卡来支持物理串口数量的不断增加,但这样不但增加了硬件成本,而且维护难度也在加大。因此,现有技术中提出了虚拟串口技术,以解决此问题。即主站设备上并不配置物理串口,而是通过软件进行模拟,对运行在主站上的串口应用程序而言,操作的对象看起来仍然是串口,这样就可以保护原有的软件投资,实现平滑的切换。虚拟串口技术目前已经得到广泛应用,不同厂家的实现千差万别,存在的主要问题是没有对跨操作系统(OS)平台给出统一解决方案,比如对Windows和Linux操作系统, 采用的方案完全不同。从用户角度看,同类功能产品对用户的体验差异很大,比如,Windows 平台提供用户操作配置界面,而Linux平台提供命令行操作配置。从程序开发角度看,大量的重复工作导致开发效率的降低,不利于快速推出产品。

发明内容
本发明实施例提供了一种虚拟串口系统及其通信方法,用以实现跨OS平台的虚拟串口系统,避免虚拟串口系统无法在不同OS平台上通信。本发明实施例提供的一种虚拟串口系统包括位于客户端的串口客户端组件模块,用于向用户提供与串口服务器端组件模块交互的界面,并根据用户操作,生成虚拟串口消息,并发送给位于服务器端的串口服务器端组件模块;位于服务器端的串口服务器端组件模块,用于对所述串口客户端组件模块发送的虚拟串口消息进行解析,根据解析结果确定该消息对应的操作系统平台。本发明实施例提供的一种虚拟串口系统的通信方法包括通过在客户端设置的串口客户端组件模块,向用户提供与串口服务器端组件模块交互的界面,并根据用户操作,生成虚拟串口消息,并发送给位于服务器端的串口服务器端组件模块;通过在服务器端设置的串口服务器端组件模块,对所述串口客户端组件模块发送的虚拟串口消息进行解析,根据解析结果确定该消息对应的操作系统平台。本发明实施例,位于客户端的串口客户端组件模块,用于向用户提供与串口服务器端组件模块交互的界面,并根据用户操作,生成虚拟串口消息,并发送给位于服务器端的串口服务器端组件模块;位于服务器端的串口服务器端组件模块,用于对所述串口客户端组件模块发送的虚拟串口消息进行解析,根据解析结果确定该消息对应的操作系统平台,从而实现了虚拟串口系统的跨OS平台通信,使得虚拟串口技术的跨平台应用能够方便、快速地实现,从而提升客户体验。


图1为本发明实施例提供的一种虚拟串口系统的结构示意图;图2为本发明实施例提供的一种虚拟串口软件分布式组件架构示意图;图3为本发明实施例提供的一种串口服务器端组件模块的结构示意图;图4为本发明实施例提供的一种虚拟串口系统的通信方法的流程示意图。
具体实施例方式本发明实施例提供了一种虚拟串口系统及其通信方法,用以实现跨OS平台的虚拟串口系统,避免虚拟串口系统无法在不同OS平台上通信。本发明实施例提供的一种跨平台的虚拟串口系统,采用分布式组件架构,即采用客户端/服务器端(C/幻架构设计,使得服务器(Server)端组件可以支持跨平台操作。下面结合附图对本发明实施例提供的技术方案进行说明。参见图1,本发明实施例提供的一种虚拟串口系统,包括位于客户端的串口客户端组件模块101,用于向用户提供与串口服务器端组件模块交互的界面,并根据用户操作,生成虚拟串口消息,并发送给位于服务器端的串口服务器端组件模块102 ;位于服务器端的串口服务器端组件模块102,用于对所述串口客户端组件模块 101发送的虚拟串口消息进行解析,根据解析结果确定该消息对应的操作系统平台。较佳地,所述串口服务器端组件模块102,包括串口管理单元201,用于对串口客户端组件模块101发送的虚拟串口消息进行解析,确定虚拟串口消息中包含虚拟串口的配置类命令,或虚拟串口的数据;以及,将适配单元202返回的结果发给串口客户端组件模块101 ;适配单元202,用于根据串口管理单元201的解析结果,确定虚拟串口消息对应的操作系统平台,以及将操作系统平台返回的结果发给串口管理单元201。较佳地,所述适配单元202包括Win2L适配单元301,用于当虚拟串口消息中包含虚拟串口的配置类命令时,确定需要将该命令发往的操作系统平台,并将操作系统平台返回的命令执行结果发给串口管理单元201 ;驱动适配单元302,用于当虚拟串口消息中包含虚拟串口的数据时,确定需要将该命令发往的操作系统平台的黑盒驱动解码组件模块,以及将黑盒驱动解码组件模块的执行结果发给串口管理单元201。较佳地,所述Win2L适配单元301,通过在Linux平台上模拟Windows平台的API 接口,接收虚拟串口的配置类命令。较佳地,所述操作系统平台,为Linux平台或Windows平台。下面给出详细的解释说明。本发明实施例提供的虚拟串口软件架构,如图2所示,软件架构上采用低耦合、高内聚的结构化设计,整个虚拟串口软件是一个分布式的软件,包括串口 client组件、串口 Server组件、黑盒驱动解码组件。位于客户端的串口客户端组件模块101,简称串口 client组件,可以基于Windows 平台开发,提供用户操作界面,和位于服务器端的串口服务器端组件模块102(简称串口 krver组件)之间,通过网络进行通信。由于Windows操作系统开发⑶I程序比较简单,因此,串口 client组件可以选择在Windows平台上开发,以提供用户操作图形界面。串口 client组件,还负责下发虚拟串口的配置类命令和诊断调试命令,以及接收串口 krver组件返回的命令执行结果。其中,所述配置类命令,例如增加或删除虚拟串口、虚拟串口关联等。所述的诊断调试命令,包括串口收发数据、数据的统计、上报及显示寸。并且,串口 client组件还负责接收串口 krver组件上报的状态信息,所述状态信息例如虚拟串口收发统计、虚拟串口数据流跟踪。串口 client组件不需要保存配置过程数据,所有的数据在串口 krver组件端保存,故简化了串口 client组件的设计,串口 client组件可以不考虑跨平台移植,即对于虚拟串口软件运行在不同的OS平台的应用场景,可以使用同样的串口 client组件,因为串口 client组件运行在独立的pc机上。也就是说,本发明实施例中所述串口 client组件,主要是实现图形用户界面 (GUI,Graphical User Interface,又称图形用户接口),用户可以通过client界面实现和 Server的交互,具体包括命令下发和结果显示。命令包括配置类命令和诊断调试命令。本发明实施例中的串口 krver组件,设计了 Win2L适配单元301(简称Win2L适配层)和驱动适配单元302 (简称驱动适配层)。参见图3,串口 krver组件,支持多OS平台,可以采用标准C语言实现,为了屏蔽底层OS的API接口实现差异,设计了 Win2L适配层,在Linux平台上模拟实现Windows平台的API接口,从而可以快速实现Windows到Linux的切换,而不影响原有的Windows相关实现。串口管理软件,无论是信令处理,还是媒体处理,都认为是运行在Windows平台, 使用Windows提供的API编程接口,但在Linux平台上,这些接口实际是不存在的,Win2L 适配层就是模拟实现了这些Windows的API接口,使得原来在Windows平台上开发的串口 Server组件可以快速地移植到Linux平台上。另外,由于串口 krver组件和操作系统平台的黑盒驱动解码组件模块(简称黑盒驱动解码组件)是运行在同一台pc上的,故通过驱动适配层,屏蔽了底层驱动程序的差异, 对上层应用提供统一的接口。所述的黑盒驱动解码组件,逻辑上独立,不同的OS平台驱动开发模式有很大的不同,对于跨平台,提供不同的黑盒驱动解码组件,对于Windows平台,以sys文件提供黑盒驱动解码组件功能,对于Linux平台,以ko文件提供黑盒驱动解码组件功能。串口 krver组件工作在用户态,黑盒驱动解码组件工作在内核态,整个串口数据流向大致如下串口 krver组件从网口接收到串口 client组件发送的数据,然后写到对应的串口设备,这样串口应用程序就可以读出来;反方向,串口应用程序写数据到串口设备,串口 Server组件从串口设备将数据读出来,从网口发送给串口 client组件。
本发明实施例中,串口 krver组件和黑盒驱动解码组件交互完成串口数据的收发,对于Windows平台,通过device_ioctl机制实现串口 krver组件对内核态串口设备的读/写操作,对于Linux平台,通过proc机制实现串口 krver组件对内核态串口设备的读
/写操作。参见图4,本发明实施例提供的一种虚拟串口系统的通信方法包括步骤S101、通过在客户端设置的串口客户端组件模块,向用户提供与串口服务器端组件模块交互的界面,并根据用户操作,生成虚拟串口消息,并发送给位于服务器端的串口服务器端组件模块;S102、通过在服务器端设置的串口服务器端组件模块,对所述串口客户端组件模块发送的虚拟串口消息进行解析,根据解析结果确定该消息对应的操作系统平台。较佳地,所述通过在服务器端设置的串口服务器端组件模块,对所述串口客户端组件模块发送的虚拟串口消息进行解析,根据解析结果确定该消息对应的操作系统平台, 包括通过串口服务器端组件模块中的串口管理单元,对串口客户端组件模块发送的虚拟串口消息进行解析,确定虚拟串口消息中包含虚拟串口的配置类命令,或虚拟串口的数据;通过串口服务器端组件模块中的适配单元,根据串口管理单元的解析结果,确定虚拟串口消息对应的操作系统平台,以及将操作系统平台返回的结果发给串口管理单元;串口管理单元,将适配单元返回的结果发给串口客户端组件模块。较佳地,所述适配单元,根据串口管理单元的解析结果,确定虚拟串口消息对应的操作系统平台,以及将操作系统平台返回的结果发给串口管理单元,包括当虚拟串口消息中包含虚拟串口的配置类命令时,确定需要将该命令发往的操作系统平台,并将操作系统平台返回的命令执行结果发给串口管理单元;当虚拟串口消息中包含虚拟串口的数据时,确定需要将该命令发往的操作系统平台的黑盒驱动解码组件模块,以及将黑盒驱动解码组件模块的执行结果发给串口管理单兀。较佳地,所述适配单元,通过在Linux平台上模拟Windows平台的API接口,接收串口管理单元发送的虚拟串口的配置类命令。较佳地,所述操作系统平台,为Linux平台或Windows平台。综上所述,本发明实施例,位于客户端的串口客户端组件模块,用于向用户提供与串口服务器端组件模块交互的界面,并根据用户操作,生成虚拟串口消息,并发送给位于服务器端的串口服务器端组件模块;位于服务器端的串口服务器端组件模块,用于对所述串口客户端组件模块发送的虚拟串口消息进行解析,根据解析结果确定该消息对应的操作系统平台,从而实现了虚拟串口系统的跨OS平台通信,使得虚拟串口技术的跨平台应用能够方便、快速地实现,从而提升客户体验。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种虚拟串口系统,其特征在于,该系统包括位于客户端的串口客户端组件模块,用于向用户提供与串口服务器端组件模块交互的界面,并根据用户操作,生成虚拟串口消息,并发送给位于服务器端的串口服务器端组件模块;位于服务器端的串口服务器端组件模块,用于对所述串口客户端组件模块发送的虚拟串口消息进行解析,根据解析结果确定该消息对应的操作系统平台。
2.根据权利要求1所述的系统,其特征在于,所述串口服务器端组件模块,包括串口管理单元,用于对串口客户端组件模块发送的虚拟串口消息进行解析,确定虚拟串口消息中包含虚拟串口的配置类命令,或虚拟串口的数据;以及,将适配单元返回的结果发给串口客户端组件模块;适配单元,用于根据串口管理单元的解析结果,确定虚拟串口消息对应的操作系统平台,以及将操作系统平台返回的结果发给串口管理单元。
3.根据权利要求2所述的系统,其特征在于,所述适配单元包括Win2L适配单元,用于当虚拟串口消息中包含虚拟串口的配置类命令时,确定需要将该命令发往的操作系统平台,并将操作系统平台返回的命令执行结果发给串口管理单元;驱动适配单元,用于当虚拟串口消息中包含虚拟串口的数据时,确定需要将该命令发往的操作系统平台的黑盒驱动解码组件模块,以及将黑盒驱动解码组件模块的执行结果发给串口管理单元。
4.根据权利要求3所述的系统,其特征在于,所述Win2L适配单元,通过在Linux平台上模拟Windows平台的API接口,接收虚拟串口的配置类命令。
5.根据权利要求3或4所述的系统,其特征在于,所述操作系统平台,为Linux平台或 Windows 平台。
6.一种虚拟串口系统的通信方法,其特征在于,该方法包括通过在客户端设置的串口客户端组件模块,向用户提供与串口服务器端组件模块交互的界面,并根据用户操作,生成虚拟串口消息,并发送给位于服务器端的串口服务器端组件模块;通过在服务器端设置的串口服务器端组件模块,对所述串口客户端组件模块发送的虚拟串口消息进行解析,根据解析结果确定该消息对应的操作系统平台。
7.根据权利要求6所述的方法,其特征在于,所述通过在服务器端设置的串口服务器端组件模块,对所述串口客户端组件模块发送的虚拟串口消息进行解析,根据解析结果确定该消息对应的操作系统平台,包括通过串口服务器端组件模块中的串口管理单元,对串口客户端组件模块发送的虚拟串口消息进行解析,确定虚拟串口消息中包含虚拟串口的配置类命令,或虚拟串口的数据;通过串口服务器端组件模块中的适配单元,根据串口管理单元的解析结果,确定虚拟串口消息对应的操作系统平台,以及将操作系统平台返回的结果发给串口管理单元;串口管理单元,将适配单元返回的结果发给串口客户端组件模块。
8.根据权利要求7所述的方法,其特征在于,所述适配单元,根据串口管理单元的解析结果,确定虚拟串口消息对应的操作系统平台,以及将操作系统平台返回的结果发给串口管理单元,包括当虚拟串口消息中包含虚拟串口的配置类命令时,确定需要将该命令发往的操作系统平台,并将操作系统平台返回的命令执行结果发给串口管理单元;当虚拟串口消息中包含虚拟串口的数据时,确定需要将该命令发往的操作系统平台的黑盒驱动解码组件模块,以及将黑盒驱动解码组件模块的执行结果发给串口管理单元。
9.根据权利要求8所述的方法,其特征在于,所述适配单元,通过在Linux平台上模拟 Windows平台的API接口,接收串口管理单元发送的虚拟串口的配置类命令。
10.根据权利要求9所述的方法,其特征在于,所述操作系统平台,为Linux平台或 Windows 平台。
全文摘要
本发明公开了一种虚拟串口系统及其通信方法,用以实现跨OS平台的虚拟串口系统,避免虚拟串口系统无法在不同OS平台上通信。本发明提供的一种虚拟串口系统包括位于客户端的串口客户端组件模块,用于向用户提供与串口服务器端组件模块交互的界面,并根据用户操作,生成虚拟串口消息,并发送给串口服务器端组件模块;位于服务器端的串口服务器端组件模块,用于对所述串口客户端组件模块发送的虚拟串口消息进行解析,根据解析结果确定该消息对应的操作系统平台。
文档编号G06F9/455GK102567071SQ201010590930
公开日2012年7月11日 申请日期2010年12月15日 优先权日2010年12月15日
发明者刘俊峰, 李纯静, 谷超 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1