发明内容
本发明的目的,就是针对现有技术的缺陷,提供一种数据解析方法,将主机与外设模块视为一个局域网,将主机视为服务器、外设模块视为网络设备,将主机与外设模块间的数据传输进行物理连接与应用链接区分:硬件USB底层驱动程序只负责解析USB协议数据,应用数据解析交由传输控制协议/网际协议(Transmission Control Protocol/InternetProtocol,TCP/IP)程序完成。通过本发明方法的改进,智能心电图设备主机的一个USB端口就可以连接多个功能外设模块,从而提升了硬件设计的灵活性降低了设备成本;又有,因为许多上位机系统的基础库都带有TCP/IP解析函数,本发明方法充分利用现有资源,不但提高了产品研发效率,还降低了设备在未来升级与拓展时对底层协议软件兼容性的维护工作量。
为实现上述目的,本发明提供了一种数据解析方法,其特征在于,所述方法包括:
外设模块通过第一物理连接方式与主机进行连接生成第一物理传输通道;
所述外设模块通过所述第一物理传输通道向所述主机发送第一物理数据包;
所述主机通过所述第一物理传输通道获取所述第一物理数据包,并使用第一物理通道主机协议程序对所述第一物理数据包进行解析,生成第一网络数据包;
所述主机获取系统安全状态字,并根据所述系统安全状态字,使用安全解码程序对所述第一网络数据包进行解析,生成第一应用数据包;所述第一应用数据包至少包括:第一设备网络地址、第一设备子网掩码、第一设备指令数据;
所述主机根据所述第一应用数据包的所述第一设备网络地址、所述第一设备子网掩码,查询系统静态路由表,对所述外设模块进行模块合法化判断处理;
在当模块合法化判断成功之后,所述主机调用与所述第一设备指令数据对应的处理程序进行代码执行生成第一设备指令响应数据;
所述主机对所述第一设备网络地址、第一设备子网掩码、第一设备指令响应数据,进行打包操作生成第一应用响应数据包;
所述主机根据所述系统安全状态字,使用安全加密程序对所述第一应用响应数据包进行加密操作生成第一网络响应数据包;
所述主机使用所述第一物理通道主机协议程序对所述第一网络响应数据包进行物理协议字头加载操作生成第一物理响应数据包;
所述主机通过所述第一物理传输通道向所述外设模块发送所述第一物理响应数据包。
进一步的,所述方法还包括:所述第一物理连接方式具体为通用串行总线USB方式。
进一步的,所述方法还包括:所述第一物理数据包至少包括:设备描述符、配置描述符、接口描述符、端点描述符。
优选的,所述主机通过所述第一物理传输通道获取所述第一物理数据包,并使用第一物理通道主机协议程序对所述第一物理数据包进行解析,生成第一网络数据包,具体包括:
所述主机通过所述第一物理传输通道获取所述第一物理数据包;
所述主机使用所述第一物理通道主机协议程序从所述第一物理数据包的所述端点描述符中提取输入数据生成所述第一网络数据包。
进一步的,所述方法还包括:所述安全状态字包括:明文状态标识符、校验状态标识符、密文状态标识符中的一个或多个。
优选的,所述主机获取系统安全状态字,并根据所述系统安全状态字,使用安全解码程序对所述第一网络数据包进行解析,生成第一应用数据包,具体包括:
所述主机获取所述系统安全状态字;
在当所述安全状态字为所述明文状态标识符时,所述主机提取所述第一网络数据包的所有数据生成所述生成第一临时应用数据包,使用传输控制协议/网际协议TCP/IP解析程序对所述第一临时应用数据包进行解析生成所述第一应用数据包;
在当所述安全状态字为所述校验状态标识符时,所述主机调用系统校验算法对所述第一网络数据包进行第一数据校验操作,当所述第一数据校验操作执行成功之后所述主机提取所述第一网络数据包的应用数据段生成第二临时应用数据包,所述主机使用所述TCP/IP解析程序对所述第二临时应用数据包进行解析生成所述第一应用数据包;
在当所述安全状态字为所述密文状态标识符时,所述主机获取系统解密密钥并根据所述系统解密密钥对所述第一网络数据包进行数据解密操作生成第三临时应用数据包,所述主机使用所述TCP/IP解析程序对所述第三临时应用数据包进行解析生成所述第一应用数据包。
进一步的,所述主机根据所述第一应用数据包的所述第一设备网络地址、所述第一设备子网掩码,查询系统静态路由表,对所述外设模块进行模块合法化判断处理,具体包括:
所述主机根据所述第一应用数据包的所述第一设备网络地址、所述第一设备子网掩码,生成第一网段;
所述主机获取所述系统静态路由表的设定子网段,生成第二网段;
所述主机根据所述第一网段、第二网段,进行合法网段校验;
所述主机根据所述第一设备网络地址、系统静态路由表,进行合法地址校验;
在当所述合法网段校验与所述合法地址校验都为成功时,对所述外设模块的所述模块合法化判断成功。
优选的,所述主机根据所述第一网段、第二网段,进行合法网段校验,具体包括:
在当所述第一网段与所述第二网段相同时,所述合法网段校验成功。
优选的,其特征在于,
所述系统静态路由表包括多个预置的设备地址参数;
所述主机根据所述第一设备网络地址、系统静态路由表,进行合法地址校验,具体包括:所述主机对所述系统静态路由表的所有设备地址参数进行轮询,在当前轮询的设备地址参数等于所述第一设备网络地址时,所述合法地址校验成功。
进一步的,所述方法还包括:在当所述模块合法化判断失败之后,所述主机退出外设数据处理流程并向与所述主机连接的显示设备发送错误信息:外设模块为非授权设备。
本发明提供的一种数据解析方法,在外设模块与主机之间直接的USB连接方式之上附加TCP/IP协议与安全状态字。当外设通过USB向主机发送第一物理数据包时,主机使用USB协议解析程序将第一物理数据包解析生成第一网络数据包;系统提供安全状态字标识第一网络数据包是否经过密文处理,主机根据本地存储的系统安全状态字对第一网络数据包进行解码处理,生成第一应用数据包;获得第一应用数据包之后,主机进一步查询系统静态路由表判断外设模块是否属于合法模块;在认为当前连接的外设模块为合法模块之后,主机调用程序处理第一设备指令数据并生成第一设备指令响应数据;在主机将响应数据发送回外设模块之前,对应与数据解析流程,主句依次对第一设备指令响应数据进行TCP/IP协议、报文加密、USB协议字头打包等操作最终生成第一物理响应数据包;主机向外设模块发送第一物理响应数据包。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1为本发明实施例一提供的一种数据解析方法的示意图所示,本方法主要包括如下步骤:
步骤1,外设模块通过第一物理连接方式与主机进行连接生成第一物理传输通道。
此处,第一物理连接方式具体为通用串行总线(Universal Serial Bus,USB)方式。
步骤2,外设模块通过第一物理传输通道向主机发送第一物理数据包。
此处,根据USB协议,第一物理数据包至少包括:设备描述符、配置描述符、接口描述符、端点描述符。
在USB设备的逻辑组织中,包含设备、配置、接口和端点4个层次。每个USB设备都提供了不同级别的配置信息,可以包含一个或多个配置,配置由多个接口组成。接口由多个端点组成,代表一个基本的功能,是USB设备驱动程序控制的对象,一个功能复杂的USB设备可以具有多个接口。端点是USB通信的最基本形式,每一个USB设备接口在主机看来就是一个端点的集合。主机只能通过端点与设备进行通信,以使用设备的功能。每个端点都有一定的属性,其中包括传输方式、总线访问频率、带宽、端点号和数据包的最大容量等。一个USB端点只能在一个方向承载数据,或者从主机到设备(称为输出端点),或者从设备到主机(称为输入端点),因此端点可看作一个单向的管道。
基于上述USB协议说明,第一物理数据包的设备描述符,具体是关于设备的通用信息,如供应商标识、产品标识和修订标识信息等,并且包括当前USB设备支持的设备类、子类和适用的协议以及默认端点的最大包大小等。
第一物理数据包的配置描述符,主要包括配置中的接口数、支持的挂起和恢复能力以及功率要求。
第一物理数据包的接口描述符,主要包括接口类、子类和适用的协议,接口备用配置的数目和端点数目。
第一物理数据包的端点描述符,主要包括端点地址、方向和类型,支持的最大包大小,如果是中断类型的端点则还包括轮询频率。
步骤3,主机通过第一物理传输通道获取第一物理数据包,并使用第一物理通道主机协议程序对第一物理数据包进行解析,生成第一网络数据包,
具体包括:步骤31,主机通过第一物理传输通道获取第一物理数据包;
步骤32,主机使用第一物理通道主机协议程序从第一物理数据包的端点描述符中提取输入数据生成第一网络数据包。
此处,主机从本地设备USB硬件接口获取到第一物理数据包之后,使用主机系统的USB协议驱动软件对第一物理数据包进行解析即可获得第一物理数据包的设备描述符、配置描述符、接口描述符、端点描述符等信息。其中设备描述符可以提取外设模块的设备名称、厂商名称等数据用于显示,配置描述符、接口描述符等主要是外设模块的USB硬件配置信息,外设模块向主机传送的应用层数据(第一网络数据包)就包含在端点描述符的数据包中。
步骤4,主机获取系统安全状态字,并根据系统安全状态字,使用安全解码程序对第一网络数据包进行解析,生成第一应用数据包;第一应用数据包至少包括:第一设备网络地址、第一设备子网掩码、第一设备指令数据,
具体包括:步骤41,在当安全状态字具体为明文状态标识符时,主机提取第一网络数据包的所有数据生成第一临时应用数据包,使用标准传输控制协议/网际协议(Transmission Control Protocol/Internet Protocol,TCP/IP)解析程序对第一临时应用数据包进行解析生成第一应用数据包;
步骤42,在当安全状态字具体为校验状态标识符时,主机调用系统校验算法对第一网络数据包进行第一数据校验操作,在当第一数据校验执行成功之后主机提取第一网络数据包的应用数据段生成第二临时应用数据包,主机使用TCP/IP解析程序对第二临时应用数据包进行解析生成第一应用数据包;
步骤43,在当安全状态字具体为密文状态标识符时,主机获取系统解密密钥并根据系统解密密钥对第一网络数据包进行第一数据解密操作生成第三临时应用数据包,主机使用TCP/IP解析程序对第三临时应用数据包进行解析生成第一应用数据包。
此处,安全状态字具体包括:明文状态标识符、校验状态标识符、密文状态标识符。
本发明实施例将外设模块与主机间传输的数据进行了物理层与应用层的区分,针对物理层数据(第一物理数据包)采用标准USB协议进行解析生成网络层数据(第一网络数据包),针对网络层数据(第一网络数据包)采用TCP/IP进行解析生成应用层数据(第一应用数据包)。为确保应用层数据未在传输中被窃取或者破坏,本发明实施例在对应用层数据进行TCP/IP协议解析之前做一次数据安全校验处理,上述安全状态字即是对安全处理方式的具体指定。当安全状态字为明文状态标识符时,表示无需对第一网络数据包进行安全解析;当安全状态字为校验状态标识符时,表示需对第一网络数据包进行一次全文检验操作,校验码包含在了第一网络数据包末尾;当安全状态字为密文状态标识符时,表示需对第一网络数据包进行一次解密操作,解密密钥为系统解密密钥。
步骤5,主机根据第一应用数据包的第一设备网络地址、第一设备子网掩码,查询系统静态路由表,对外设模块进行模块合法化判断处理,
具体包括:步骤51,主机根据第一应用数据包的第一设备网络地址、第一设备子网掩码,生成第一网段;
步骤52,主机获取系统静态路由表的设定子网段,生成第二网段;
步骤53,主机根据第一网段、第二网段,进行合法网段校验,
具体的:在当第一网段与第二网段相同时,合法网段校验成功;
此处,第一网段的计算方法是,将第一设备网络地址与第一设备子网掩码进行按位与计算即可生成。
步骤54,主机根据第一设备网络地址、系统静态路由表,进行合法地址校验,
具体的:步骤541,系统静态路由表包括多个预置的设备地址参数;
步骤542,主机对系统静态路由表的设备地址参数进行轮询,在当前轮询的设备地址参数等于第一设备网络地址时,合法地址校验成功;
步骤55,在当合法网段校验与合法地址校验都为成功时,对外设模块的模块合法化判断成功。
本发明方法对每一个外设模块分配一个唯一的静态网络地址作为设备唯一标识,系统内预置的静态路由表就是主机与各个外设组成的局域网配置表。在表中,已经将可以与本主机连接工作的各个合法外设模块的静态网络地址均作了预注册处理。当一个外设模块接入之后,首先根据局域网特性,判断该外设的局域网信息(第一网段)是否属于本主机管理的局域网,其次再对静态路由表中已注册的设备网络地址进行轮询查询当前接入的外设模块是否已经注册。
步骤6,在当模块合法化判断成功之后,主机调用与第一设备指令数据对应的处理程序进行代码执行生成第一设备指令响应数据。
步骤7,主机对第一设备网络地址、第一设备子网掩码、第一设备指令响应数据,进行打包操作生成第一应用响应数据包。
步骤8,主机根据系统安全状态字,使用安全加密程序对第一应用响应数据包进行加密操作生成第一网络响应数据包。
步骤9,主机使用第一物理通道主机协议程序对第一网络响应数据包进行物理协议字头加载操作,生成第一物理响应数据包。
步骤10,主机通过第一物理传输通道向外设模块发送第一物理响应数据包。
如图2为本发明实施例二提供的一种数据解析方法的示意图所示,本方法主要包括如下步骤:
步骤101,外设模块通过第一物理连接方式与主机进行连接生成第一物理传输通道。
步骤102,外设模块通过第一物理传输通道向主机发送第一物理数据包。
步骤103,主机通过第一物理传输通道获取第一物理数据包,并使用第一物理通道主机协议程序对第一物理数据包进行解析,生成第一网络数据包,
具体包括:步骤1031,主机通过第一物理传输通道获取第一物理数据包;
步骤1032,主机使用第一物理通道主机协议程序从第一物理数据包的端点描述符中提取输入数据生成第一网络数据包。
步骤104,主机获取系统安全状态字,并根据系统安全状态字,使用安全解码程序对第一网络数据包进行解析,生成第一应用数据包;第一应用数据包至少包括:第一设备网络地址、第一设备子网掩码、第一设备指令数据,
具体包括:步骤1041,在当安全状态字具体为明文状态标识符时,主机提取第一网络数据包的所有数据生成第一临时应用数据包,接着主机使用TCP/IP解析程序对第一临时应用数据包进行解析生成第一应用数据包;
步骤1042,在当安全状态字具体为校验状态标识符时,主机调用系统校验算法对第一网络数据包进行第一数据校验操作,在当第一数据校验执行成功之后主机提取第一网络数据包的应用数据段生成第二临时应用数据包,接着主机使用TCP/IP解析程序对第二临时应用数据包进行解析生成第一应用数据包;
步骤1043,在当安全状态字具体为密文状态标识符时,主机获取系统解密密钥并根据系统解密密钥对第一网络数据包进行第一数据解密操作生成第三临时应用数据包,接着主机使用TCP/IP解析程序对第三临时应用数据包进行解析生成第一应用数据包。
步骤105,主机根据第一应用数据包的第一设备网络地址、第一设备子网掩码,查询系统静态路由表,对外设模块进行模块合法化判断处理,
具体包括:步骤1051,主机根据第一应用数据包的第一设备网络地址、第一设备子网掩码,生成第一网段;
步骤1052,主机获取系统静态路由表的设定子网段,生成第二网段;
步骤1053,主机根据第一网段、第二网段,进行合法网段校验,
具体的:判断第一网段与第二网段是否相同,如果第一网段与第二网段相同则合法网段校验成功,如果第一网段与第二网段不相同则合法网段校验失败;
步骤1054,主机根据第一设备网络地址、系统静态路由表,进行合法地址校验.
具体的:步骤10541,系统静态路由表包括多个预置的设备地址参数;
步骤10542,主机根据第一设备网络地址对系统静态路由表的设备地址参数进行轮询比对,如果系统静态路由表中包含第一设备网络地址则合法地址校验成功,如果系统静态路由表中不包含第一设备网络地址则合法地址校验失败;
步骤1055,判断合法网段校验与合法地址校验是否都成功,如果合法网段校验与合法地址校验都成功则对外设模块的模块合法化判断成功,如果合法网段校验与合法地址校验不是全成功则对外设模块的模块合法化判断失败。
步骤106,判断模块合法化是否为成功,如果模块合法化判断成功则转至步骤107,如果模块合法化判断失败则转至步骤410。
步骤107,主机调用与第一设备指令数据对应的处理程序进行代码执行生成第一设备指令响应数据。
步骤108,主机对第一设备网络地址、第一设备子网掩码、第一设备指令响应数据,进行打包操作生成第一应用响应数据包。
步骤109,主机根据系统安全状态字,使用安全加密程序对第一应用响应数据包进行加密操作生成第一网络响应数据包。
步骤110,主机使用第一物理通道主机协议程序对第一网络响应数据包进行物理协议字头加载操作,生成第一物理响应数据包。
步骤111,主机通过第一物理传输通道向外设模块发送第一物理响应数据包。
步骤410,主机退出外设数据处理流程并向与主机连接的显示设备发送错误信息:外设模块为非授权设备。
此处,一般导致该类错误的原因可能是外设模块预置的网段信息与主机不匹配,或者外设模块预置的网络地址信息未在主机的静态路由表中被预先注册。
本发明提供的一种数据解析方法,在外设模块与主机之间直接的USB连接方式之上附加TCP/IP协议与安全状态字。当外设通过USB向主机发送第一物理数据包时,主机使用USB协议解析程序将第一物理数据包解析生成第一网络数据包;系统提供安全状态字标识第一网络数据包是否经过密文处理,主机根据本地存储的系统安全状态字对第一网络数据包进行解码处理,生成第一应用数据包;获得第一应用数据包之后,主机进一步查询系统静态路由表判断外设模块是否属于合法模块;在认为当前连接的外设模块为合法模块之后,主机调用程序处理第一设备指令数据并生成第一设备指令响应数据;在主机将响应数据发送回外设模块之前,对应与数据解析流程,主句依次对第一设备指令响应数据进行TCP/IP协议、报文加密、USB协议字头打包等操作最终生成第一物理响应数据包;主机向外设模块发送第一物理响应数据包。通过本发明方法的改进,智能心电图设备主机的一个USB端口就可以连接多个功能外设模块,从而提升了硬件设计的灵活性降低了设备成本;又有,因为许多上位机系统的基础库都带有TCP/IP解析函数,本发明方法充分利用现有资源,不但提高了产品研发效率,还降低了设备在未来升级与拓展时对底层协议软件兼容性的维护工作量。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。