一种可配置的多端口通用数据桥接系统的工作方法与流程

文档序号:18127110发布日期:2019-07-10 09:58阅读:158来源:国知局
一种可配置的多端口通用数据桥接系统的工作方法与流程

本发明属于通信技术领域,具体涉及一种可配置的多端口通用数据桥接系统的工作方法。



背景技术:

随着社会信息化和数据化程度的加深,数据和信息的共享和交流已经成为工业领域实现自动化、智能化的关键。为便于行业领域内的数据沟通,行业领域定义了诸多标准数据通信协议,以便于行业领域内实现信息沟通。然而,由于使用要求不同,企业或生产厂商往往采用不同的数据系统,使用的公用数据协议,或采用以公用协议为基础进行修改后的数据协议,甚至采用自定义数据协议。数据协议的不统一为企业和生产厂商之间建立数据交流制造了障碍,其数据共享实现只能依赖于数据协议转换。

目前,常用的转换解决方案是采用协议转换器,定向地实现一种协议到另一种协议的转换。在需要转换为第三种协议的场合,一般采用串接另一种规格的协议转换器的方式,实现间接的协议转换;或重新开发、采购新的协议转换器。不论何种方式,都会提高数据沟通成本,使用起来也较为不便。尤其在解决自定义协议的转换时,这些问题更为突出。



技术实现要素:

本发明的目的就是为了解决上述现有技术中的不足,提供一种可配置的多端口通用数据桥接系统的工作方法,可以将不同数据系统桥接起来,提供了一种更为低成本并且便捷的数据桥接方案。

本发明的目的是通过以下技术方案实现的。

本发明提供一种可配置的多端口通用数据桥接系统,所述系统包含硬件部分及实现特定功能的软件部分,并能够通过软件配置,确定一个数据源端口和若干数据桥接端口,实现不同数据系统之间的数据共享。

所述硬件部分包含若干数据通信端口、存储单元、主控单元,其中,所述数据通信端口具备发送和接收数据功能,用于收发数据帧;所述存储单元用于存储所需的数据和文件;所述主控单元用于运行软件部分,协调数据通信端口和存储单元运行,完成数据桥接过程;所述软件部分包括配置文件、数据帧缓存队列、数据协议包、控制程序和数据库;其中,所述配置文件用于配置数据通信端口以及数据转换关系,所述数据帧缓存队列用于临时存储未处理的数据帧,所述数据协议包用于解析数据帧格式,获取数据帧所包含的正文信息,所述数据库用于存储数据帧所包含的信息,所述控制程序用于控制协议转换过程。

在上述技术方案中,所述配置文件包含数据通信端口协议配置部分和桥接关系配置部分;其中,数据通信端口协议配置部分指定了各个数据通信端口所遵循的数据协议,并为需要使用的数据通信端口选择了工作模式;桥接关系配置部分则指定了某一数据通信端口到另一个或另几个数据通信端口的数据桥接关系。

在上述技术方案中,所述数据帧缓存队列包含接收缓存队列和发送缓存队列,数据帧缓存队列用于缓存接收到的或者待发送的数据帧,并以先入先出的原则存取数据帧。

在上述技术方案中,所述数据协议包是数据协议的集合组成,包含数据协议本身、对应使用的校验函数和相关参数,用于解析数据帧内容或组织数据帧。

在上述技术方案中,所述数据库按所使用的数据协议规划对应数据区,并将数据帧所包含的正文信息存储到对应数据区中。

本发明还提供了一种上述的可配置的多端口通用数据桥接系统的工作方法,包括系统启动和数据桥接过程:

(1)系统启动

步骤一,启动系统;

步骤二,初始化系统各数据通信端口及数据库;

步骤三,根据配置文件,将连接至数据源的数据桥接端口配置为数据源端口模式,将其他工作的数据桥接端口配置为数据桥接端口模式;

步骤四,读取配置文件,检查数据通信端口所配置的数据协议在数据协议包中是否存在;若通过检查则继续,否则报告错误;

步骤五,根据数据通信端口所配置的数据协议,从数据协议包中调用对应的数据协议,并据此在数据库内划分数据区,同时建立对应的存储模型;

步骤六,启动数据桥接过程;

(2)数据桥接

步骤一,系统启动各个数据通信端口;

步骤二,根据数据源端口使用的数据协议,系统向数据源发送请求数据的数据帧;

步骤三,系统等待数据源返回应答数据帧,若1s后未获得应答数据帧则返回步骤二,并记录重发次数并跳转至步骤四,若收到应答数据帧则跳转至步骤五;

步骤四,检查重发次数,若未超过重发次数3次,则返回步骤二,否则终止此次数据获取过程,并向系统报告错误;

步骤五,系统按所配置的数据协议校验收到的数据帧,若通过校验则继续,否则终止此数据获取过程,并向系统报告错误;

步骤六,系统按所配置的数据协议解析收到的数据帧,并提取数据帧正文信息存放入数据库中数据源端口及数据通信端口各存储模型的相应位置;

步骤七,检查数据帧接收缓存队列,判断数据通信端口是否接收到数据帧,若接收到数据帧,则跳转至步骤八,否则跳转至步骤一;

步骤八,系统按所配置的数据协议校验收到的数据帧,若通过校验则继续,否则抛弃相应此次数据通信端口所收到的数据帧;

步骤九,系统按所配置的数据协议解析收到的数据帧并确定其问答关系;

步骤十,依照问答关系,系统读取数据库中对应的已填充好的数据通信端口侧数据,依照数据协议组织为正确数据帧后由数据通信端口发送;

步骤十一,返回步骤一。

在上述技术方案中,根据数据通信端口所配置的数据协议,从数据协议包中调用对应的数据协议,并据此在数据库内划分数据区,同时建立对应的存储模型,其具体步骤如下:

步骤一,系统根据数据协议所提供的数据帧格式、各字段长度及内容,在数据库中为各条数据帧开辟足够大小的存储空间;

步骤二,系统根据数据协议所定义的数据帧和字段,按照特定顺序将各条数据帧所定义的字段内常量和变量部署在数据库分配的对应位置,其中,所定义的常量直接存储在分配的存储空间,变量则由数据库向系统返回为其分配的存储地址、变量名称和数据长度;

步骤三,依据数据协议所定义的问答关系,数据库对各条数据帧的应答关系进行对应,采用一字节数据表示这一问答关系,其中,最高位为问答标志位,此位为0则表示询问数据帧,此位为1则表示应答数据帧;低7位表示问答关系编号,可由用户自行编制,以便区分不同的问答关系;特殊的,00H表示不具备问答关系的数据帧。

本发明可配置的多端口通用数据桥接系统与现有技术相比,其优点在于:仅需通过更改配置文件改变端口所使用的协议以及协议转换关系,更换协议时仅需添加或替换协议包内的对应协议,从而避免了重新开发协议转换器或串接新的协议转换器,降低了通信成本,更为方便高效。

附图说明

图1为本发明中可配置的多端口通用数据桥接系统的硬件部分结构示意图。

图2为本发明中可配置的多端口通用数据桥接系统的软件部分构架示意图。

图3为本发明系统启动的流程图。

图4为本发明系统的数据桥接的流程图。

具体实施方式

以下结合附图和具体实施方式对本发明原理和实施作进一步说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。

如图1所示,本实施例提供了一种可配置的多端口通用数据桥接系统,其硬件部分依次包括数据通信端口、电源管理单元、存储器和主控单元。

其中,数据通信端口包含了主流通信接口,如CAN、RS232、RS485、USB等接口,包含对应的物理连接器和收发器,实现本系统数据通信的物理链接,提供数据传输的通道;存储器为非易失性存储,如Flash或EEPROM,用于部署系统软件、建立数据库以及保存系统运行时所产生的数据。存储器容量和存储结构可根据实际需要进行设计。主控单元用于运行系统软件,并正确执行系统的运算和控制功能。

如图2所示,本实施例提供了一种可配置的多端口通用数据桥接系统,其软件部分包括配置文件、数据帧缓存队列、数据协议包、控制程序和数据库;其中,所述配置文件用于配置数据通信端口以及数据转换关系,所述数据帧缓存队列用于临时存储未处理的数据帧,所述数据协议包用于解析数据帧格式,获取数据帧所包含的正文信息,所述数据库用于存储数据帧所包含的信息,所述控制程序用于控制协议转换过程。

其中,所述配置文件包含数据通信端口协议配置部分和桥接关系配置部分;其中,数据通信端口协议配置部分指定了各个数据通信端口所遵循的数据协议,并为需要使用的数据通信端口选择了工作模式;桥接关系配置部分则指定了某一数据通信端口到另一个或另几个数据通信端口的数据桥接关系。

所述数据帧缓存队列包含接收缓存队列和发送缓存队列,数据帧缓存队列用于缓存接收到的或者待发送的数据帧,并以先入先出的原则存取数据帧。

所述数据协议包是数据协议的集合组成,包含数据协议本身、对应使用的校验函数和相关参数,用于解析数据帧内容或组织数据帧。

所述数据库按所使用的数据协议规划对应数据区,并将数据帧所包含的正文信息存储到对应数据区中。

所述控制程序用于初始化系统,并控制协议转换过程,完成正确的协议转换。

本实施例还提供了上述可配置的多端口通用数据桥接系统的工作方法,包括系统启动和数据桥接过程

(1)系统启动

步骤一,启动系统;

步骤二,初始化系统各数据通信端口及数据库;

步骤三,根据配置文件,将连接至数据源的数据桥接端口配置为数据源端口模式,将其他工作的数据桥接端口配置为数据桥接端口模式;

步骤四,读取配置文件,检查数据通信端口所配置的数据协议在数据协议包中是否存在;若通过检查则继续,否则报告错误;

步骤五,根据数据通信端口所配置的数据协议,从数据协议包中调用对应的数据协议,并据此在数据库内划分数据区,同时建立对应的存储模型;

步骤六,启动数据桥接过程;

(2)数据桥接

步骤一,系统启动各个数据通信端口;

步骤二,根据数据源端口使用的数据协议,系统向数据源发送请求数据的数据帧;

步骤三,系统等待数据源返回应答数据帧,若1s后未获得应答数据帧则返回步骤二,并记录重发次数并跳转至步骤四,若收到应答数据帧则跳转至步骤五;

步骤四,检查重发次数,若未超过重发次数3次,则返回步骤二,否则终止此次数据获取过程,并向系统报告错误;

步骤五,系统按所配置的数据协议校验收到的数据帧,若通过校验则继续,否则终止此数据获取过程,并向系统报告错误;

步骤六,系统按所配置的数据协议解析收到的数据帧,并提取数据帧正文信息存放入数据库中数据源端口及数据通信端口各存储模型的相应位置;

步骤七,检查数据帧接收缓存队列,判断数据通信端口是否接收到数据帧,若接收到数据帧,则跳转至步骤八,否则跳转至步骤一;

步骤八,系统按所配置的数据协议校验收到的数据帧,若通过校验则继续,否则抛弃相应此次数据通信端口所收到的数据帧;

步骤九,系统按所配置的数据协议解析收到的数据帧并确定其问答关系;

步骤十,依照问答关系,系统读取数据库中对应的已填充好的数据通信端口侧数据,依照数据协议组织为正确数据帧后由数据通信端口发送;

步骤十一,返回步骤一。

下面再对本发明中的数据协议作进一步说明。

数据协议定义了数据帧的语义和格式,是解析和组织数据帧的工具。协议包描述了数据帧格式及问答关系。

根据数据帧的特点,数据帧可划分为若干字段,以特定的形式分别指明了每一字段的格式。用字段名、字节数、内容等关键词描述数据帧字段,其基本形式为,字段名:字节数 内容。其中,字段名表示该字段名称,用于区别各个字段;字节数表示该字段包含的字节总数;内容表示该字段内所包含的数据内容,若内容固定则以常量填充,否则以变量名称代替。例如,SZ:3 7EH E7H 7EH,其字段名称为SZ,该字段包含字节数为3,其内容固定为7EH E7H 7EH;又例如,DZ: 6 UA UB UC IA IB IC,其字段名称为DZ,该字段包含字节数为6,其内容不固定,分别用变量UA、UB、UC、IA、IB、IC表示。特殊地,某个内容需要使用多个字节进行表示时,可在变量后加上.n,n=0时表示最低位字节,n依次增加1,表示该变量所需的字节依次增加;例如DZ: 12 UA.1 UA.0 UB.1 UB.0 UC.1 UC.0 IA.1 IA.0 IB.1 IB.0 IC.1 IC.0,其字段名称为DZ,该字段包含字节数为12,其内容分别为UA高字节、UA低字节、UB高字节、UB低字节、UC高字节、UC低字节、IA高字节、IA低字节、IB高字节、IB低字节、IC高字节、IC低字节。

将所定义的字段进行有序组合,即可构成所需的数据帧格式。例如:字段名A 字段名B 字段名C 字段名D,是由4个字段按照ABCD的顺序构成的数据帧格式。

数据通信过程常常以查询的方式实现,必须由上位机发出查询报文后,现场设备才能根据此报文回复相应的应答报文,因此某些数据帧具备特定的问答关系。这种问答关系可表示为:关键字Qn表示查询报文,关键字An表示应答报文,其中n为正整数。为统一格式,某些不具有问答关系的数据帧也采用这种方式进行区别,其不同之处在于问答关系关键字固定为Q0。

若数据帧包含校验字段,则按照如下格式进行定义:校验方法关键字 校验起始字段 校验终止字段校验结果位置。其中,校验结果位置以字段名.内容名的形式表示。例如,CRC 字名段A 字段名D 字段E.CHK,其表示采用CRC校验方式,校验起始字段为字段名A,终止字段为字段名D,校验结果存放位置为字段E中CHK所在位置。校验结果将自动对齐所定义的内容长度,并按照字节顺序存放。

基于上述字段定义和数据帧定义,即可编写数据协议。数据协议包含字段定义和数据帧定义。字段定义以符号“$”作为起始标志,并使用关键字FIELD标志该定义区域;数据帧以符号“$”作为起始标志,并使用关键字MESSEGE为标志该定义区域;字段定义和数据帧定义均以“$END”作为结束标志;各字段定义和数据帧定义均已符号“#”作为起始标志,以符号“;”作为结束标志。数据协议格式举例如下:

$FIELD

#SZ:3 7EH E7H 7EH;

#CHK: 2 CRC_RES SUM_RES;

……

$END

$MESSEGE

#Q1, SZ DZ CHK EZ, CRCDZDZ CRC.CRC_RES, SUM DZDZ CRC.SUM_RES;

#A1, SZ A B C CHK EZ, CRC A C CRC.CRC_RES, SUM A C CRC.SUM_RES;

#Q0, SZ F G N CHK EZ, CRC F G CRC.CRC_RES, SUM F G CRC.SUM_RES;

$END

数据协议描述了数据通信的格式和语义,据此即可组织数据数据帧。系统依据数据协议所提供的相关定义,在数据库中建立各条数据帧的存储模型,其步骤如下:

(1)为需要使用的数据协议分配存储空间。系统根据数据协议所提供的数据帧格式、各字段长度及内容,在数据库中为各条数据帧开辟足够大小的存储空间。

(2)构建各条数据帧数据库内存储模型。系统根据数据协议所定义的数据帧和字段,按照特定顺序将各条数据帧所包含的字段内常量和变量部署在数据库分配的对应位置。其中,所定义的常量直接存储在分配的存储空间,变量则由数据库向系统返回为其分配的存储地址、变量名称和数据长度。例如,定义变量为UA,则给系统返回变量UA在数据库中的存储地址、数据长度1及变量名称UA;特殊的,多个字节表示的数据,例如,定义变量为UA.1 UA.0,则给系统返回变量UA在数据库中的存储地址、数据长度2及变量名称UA。

(3)建立问答关系。依据数据协议所定义的问答关系,数据库对各条数据帧的应答关系进行对应。采用一字节数据表示这一问答关系,其中,最高位为问答标志位,此位为0则表示询问数据帧,此位为1则表示应答数据帧;低7位表示问答关系编号,可由用户自行编制,以便区分不同的问答关系;特殊的,00H表示不具备问答关系的数据帧。例如,57H(二进制表示为01010111)表示询问数据帧,编号为87;D7H(二进制表示为11010111)表示应答数据帧,编号为87;这两条数据帧为一组具备问答关系的数据帧。

以如下数据协议为例:

#DZ1: 2 A B;

#DZ2: 4 IA.1 IA.0 IB.1 IB.0;

#CHK: 2 CRC_RES SUM_RES;

#EZ: 1 0DH;

$END

$MESSEGE

#Q1, SZ DZ1 CHK EZ, CRCDZ1 DZ1 CHKCRC_RES, SUM DZ1 DZ1 CHK.SUM_RES;

#A1, SZ DZ2 C CHK EZ, CRC DZ2 DZ2 CHK.CRC_RES, SUM DZ2 DZ2 CHK.SUM_RES;

$END

将其部署在数据库中结果如下:

(4)数据协议对应关系的确定。数据协议确定了数据通信所遵循的格式和语义,为使得不同系统进行数据交流,其各自使用的协议必须建立正确的对应关系。本发明专利中采用字段名对应的方式建立数据协议的对应关系。

根据已经定义的数据协议A,以其规定的字段定义为基础,在数据协议B的字段定义中,按照实际使用需要继承原有数据协议A的字段定义的中变量名称,仅对数据协议B中的字段名称、长度等内容重新定义。以如下数据协议为例:

数据协议A字段定义如下:

#DZ1: 2 A B;

#DZ2: 4 IA.1 IA.0 IB.1 IB.0;

#CHK: 2 CRC_RES SUM_RES;

#EZ: 1 0DH;

重新编写数据协议B的字段定义如下:

#DZ11: 1 A;

#DZ12: 2 B.1 B.0;

#DZ21: 2 IA.1 IA.0;

#DZ22: 2 IB.1 IB.0;

#CHK: 1 XOR_RES;

#EZ: 1 0DH;

其中,数据协议B继承了数据协议A中定义的变量A、B、IA、IB,它们具有相同的变量名称。其中,变量B在数据协议B中被重新定义为了2字节变量。根据重新编写的字段定义,数据协议B可定义新的数据帧存储模型。

在部署数据协议A和数据协议B时,具备相同名称的变量占用相同的存储空间,例如上述实施例中数据协议A和数据协议B中的变量A、IA、IB都在数据库中占用同一存储空间;同名变量的长度发生变化时,则以较长长度的变量为准开辟存储空间,并遵循低位对其的原则存储,例如上述实施例中数据协议A和数据协议B中的变量B,以数据协议B中的变量B长度为准,在数据库中开辟2字节长度的存储区用于变量B的存储,数据协议A中的变量B则存放于这一存储区中的第字节。

本说明书未作详细描述的内容属于本领域专业技术人员公知的现有技术。

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