CN106230826A - 应用***接口协议自动解析装置 - Google Patents
应用***接口协议自动解析装置 Download PDFInfo
- Publication number
- CN106230826A CN106230826A CN201610624526.6A CN201610624526A CN106230826A CN 106230826 A CN106230826 A CN 106230826A CN 201610624526 A CN201610624526 A CN 201610624526A CN 106230826 A CN106230826 A CN 106230826A
- Authority
- CN
- China
- Prior art keywords
- sdo
- module
- agreement
- data
- application system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
应用***接口协议自动解析装置,本发明提供一种无需编程和解析效率高的应用***接口协议自动解析装置。包括:用户配置信息处理模块,用于获取协议类型分类信息;协议类型分类模块,用于根据协议类型分类信息,对输入的应用***数据进行分类,将包含指定协议类型的应用***数据传输到协议转SDO模块,将不包含指定协议类型的应用***数据传输到以太网网络数据输出接口;协议转SDO模块,用于按照用户配置的SDO模板,将包含指定协议类型的应用***数据转换成SDO模板中与相应应用***接口协议类型对应的SDO数据并通过SDO输出接口输出本。发明基于芯片66AK2E05的DSP实现。本发明用于应用***接口协议解析。
Description
技术领域
本发明涉及一种应用***接口协议自动解析装置,特别涉及一种采用芯片66AK2E05开发的应用***接口协议自动解析装置。
背景技术
目前,应用***接口协议解析通常在通用计算机上,通过编写专用的协议解析软件实现,针对不同***的不同应用***接口协议,需专门编写解析软件,费时费力;目前也有基于普通计算机的通用协议解析软件框架,用户可通过免编程方式,加载协议模板,实现协议的自动解析,但都是在计算机上Windows***下实现的,由于Windows为非实时操作***,解析效率较低。此外,目前也存在基于硬件FPGA+DSP的应用***协议自动解析装置,但不支持动态协议的自动解析。
发明内容
本发明为了解决上述不足,提供一种无需编程和解析效率高的应用***接口协议自动解析装置。
本发明的应用***接口协议自动解析装置,包括:用户配置信息处理模块、协议类型分类模块和协议转SDO模块;
用户配置信息处理模块,用于对用户配置信息进行处理,获取协议类型分类信息和SDO模板;
协议类型分类模块,用于根据获取的协议类型分类信息,对输入的多条包含不同协议类型的应用***数据进行分类,将包含指定协议类型的应用***数据传输到协议转SDO模块,将不包含指定协议类型的应用***数据传输到以太网网络数据输出接口;
协议转SDO模块,用于按照用户配置的SDO模板,将包含指定协议类型的应用***数据转换成SDO模板中与相应应用***接口协议类型对应的SDO数据并通过SDO输出接口输出;
其中,用户配置信息处理模块和协议转SDO模块基于芯片66AK2E05的ARM实现,协议类型分类模块基于芯片66AK2E05的DSP实现。
优选的是,所述用户配置信息处理模块获取的协议类型分类信息的结构和参数如下:
其中,数量表示包含的用户指定协议类型分类条件的数量;
序号,作为每个协议类型分类条件的分隔符,表示第几个相应协议类型分类条件;
协议项n内容:分类信息中第n类协议项的内容,n为正整数;
不匹配端口,表示不匹配协议项内容的数据传输至以太网网络数据输出接口的号。
优选的是,所述协议类型分类模块包括协议项内容识别模块和数据链路层以太网端口;
协议项内容识别模块,通过对接收到的应用***数据的每帧数据与协议类型分类信息中的各个协议项内容中的帧头逐个进行匹配,当匹配成功,将应用***数据通过核间传输IPC传输到协议转SDO模块,若匹配不成功,将应用***数据通过数据链路层以太网端口传输到以太网网络数据输出接口。
优选的是,所述数据链路层以太网端口连接着外部PHY芯片的SGMI I接口和媒体访问操控器MAC;
外部PHY芯片,用于实现物理层的功能;
媒体访问操控器MAC,用于实现数据链路层的功能;
SGMII接口,为连接物理层和数据链路层的媒体独立接口;
所述SGMII接口包括PHY芯片初始化模块、选择连接模块和SERDES串并转换模块;
所述将应用***数据通过数据链路层以太网端口传输到以太网网络数据输出接口的工作过程包括如下:
步骤1a:控制PHY芯片初始化模块初始化PHY芯片;
步骤2a:根据连接选择模块,判断需传输数据双方是否进行自动协商连接,若是,进行自动协商连接,转入步骤3a,若否,进行强制连接,转入步骤3a;
步骤3a:打开媒体访问操控器MAC的ALE功能,等待设定时间,执行步骤4a;
步骤4a:当媒体访问操控器MAC利用ALE功能接收到匹配不成功的应用***数据的数据时,将应用***数据经SERDES串/并转换模块进行并串转换,转换后的串行数据经PHY芯片发送至以太网网络数据输出接口。
优选的是,所述装置还包括DDR3;
所述协议项内容识别模块,将应用***数据通过核间传输IPC传输到协议转SDO模块的过程包括:
协议项内容识别模块发送包括自己的ID和协议转SDO模块的ID的中断信息,当协议转SDO模块从接收的中断信息中确定接收到协议项内容识别模块的ID和自己的ID后,协议转SDO模块将自己的ID发送至协议项内容识别模块,经协议项内容识别模块验证为 协议转SDO模块的ID后,将要传输的应用***数据存入DDR3中,此时协议项内容识别模块会得到一个描述符,描述符的缓冲区指针指向DDR3中该数据存放的首地址;
协议项内容识别模块将该描述符所在队列名称及该描述符在队列中的位置的队列信息发送给协议转SDO模块,协议转SDO模块通过该描述符,接收到协议项内容识别模块要传输的应用***数据。
优选的是,所述协议转SDO模块基于所述HIT-TENA平台实现,HIT-TENA平台植到ARM的Linux***中;
所述协议转SDO模块包括协议转SDO组件和中间件接口;
协议转SDO组件,接收从用户配置信息处理模块发送过来的SDO模板,并根据这该模板将包含指定协议类型的应用***数据转换成SDO数据;
中间件接口,用于发送SDO数据。
优选的是,所述SDO模板的组成为:
优选的是,所述用户配置信息处理模块包括用户配置信息接收模块和用户配置信息读取及分发模块;
用户配置信息接收模块,采用TFTP传输协议接收用户配置信息,并将用户配置信息的存储路径发送至用户配置信息读取及分发模块;
用户配置信息存储的格式为XML文件,包括协议类型分类信息和SDO模板;
用户配置信息读取及分发模块,根据收到的存储路径去对应的地址寻找XML文件,读取XML文件中的信息,并将其中的协议类型分类信息和SDO模板分别发送给协议类型分类模块和协议转SDO模块。
优选的是,所述用户配置信息读取及分发模块的工作过程包括如下步骤:
步骤1b:根据收到的存储路径,打开用户配置信息XML文件,建立SDO.xml文件;
步骤2b:读取用户配置信息XML文件的XML首部,并写入SDO.xml文件中;
步骤3b:读取用户配置信息XML文件中协议类型分类信XML信息中各协议项内容,获得协议类型分类信息;
步骤4b:将获得的协议类型分类信息发送至协议类型分类模块;
步骤5b:读取用户配置信息XML文件中SDO的组件参数、各协议序号及协议转SDO对应信息和XML尾部,并写入SDO.xml文件中;
步骤6b:将SDO.xml文件传输至协议转SDO模块;
用户配置信息XML文件的结构和参数为:
本发明的有益效果在于,本发明采用芯片66AK2E05,利用其内部的DSP+ARM资源,在装置中通过硬件实现协议模板的动态加载、应用***接口数据与协议模板的自动匹配、应用***接口数据的自动分类、动态协议解析等功能。利用本装置,针对不同的应用***接口,用户只需将协议模板加载到本发明装置中,无需编程,即可实现对应用***接口数据的解析,提高了协议解析的通用性;此外,由于协议匹配、分类、解析全部在硬件中实现,提高了解析效率。
附图说明
图1为具体实施方式中应用***接口协议自动解析装置的原理示意图。
图2为具体实施方式中应用***接口协议格式的结构示意图。
图3为本发明具体实施方式中协议类型分类模块的原理示意图。
图4为具体实施方式中协议类型分类信息的结构和参数。
图5为具体实施方式中应用***数据的帧格式。
图6为具体实施方式中数据链路层以太网端口的原理示意图。
图7为具体实施方式中核间传输IPC传输的原理示意图。
图8为具体实施方式中SDO的结构示意图。
图9为具体实施方式中三种处理函数示意图。
图10为具体实施方式中协议转SDO模块的原理示意图。
图11为具体实施方式中SDO模板数据组成。
图12为具体实施方式中用户配置信息处理模块的原理示意图。
图13为具体实施方式中TFTP服务器和TFTP客户端的传输原理示意图。
图14为具体实施方式中用户配置信息的数据组成。
图15为IP地址分类信息的结构和参数。
具体实施方式
本实施方式为一种应用***接口协议自动解析装置,包括:用户配置信息处理模块、协议类型分类模块和协议转SDO模块,如图1所示;
用户配置信息处理模块,用于对用户配置信息进行处理,获取协议类型分类信息和 SDO模板;
协议类型分类模块,用于根据获取的协议类型分类信息,对输入的多条包含不同协议类型的应用***数据进行分类,将包含指定协议类型的应用***数据传输到协议转SDO模块,将不包含指定协议类型的应用***数据传输到以太网网络数据输出接口;
协议转SDO(分布式状态模型,State Distributed Object,SDO)模块,用于按照用户配置的SDO模板,将包含指定协议类型的应用***数据转换成SDO模板中与相应应用***接口协议类型对应的SDO数据并通过SDO输出接口输出;
其中,用户配置信息处理模块和协议转SDO模块基于芯片66AK2E05的ARM实现,协议类型分类模块基于芯片66AK2E05的DSP实现。
本实施方式中,协议类型分类模块的主要功能是根据应用***接口协议类型对数据进行分类。应用***接口协议的格式如图2所示,应用***接口协议格式分为四层,分别为协议集、协议项、协议帧头/协议帧尾/协议元素项以及协议元素位。下面结合列表来分别介绍四层的具体数据结构:
协议集。如表1所示,协议集指的是在该协议集下包含的所有下一层协议项的集合,其存储方式为映射表。
表1 协议型号数据结构
序号 | 属性名称 | 数据类型 |
1 | 协议集名称 | String |
2 | 协议项映射表 | PtrMap |
协议项。如表2所示,协议项指的是一条协议完整信息的表达,其包含协议项名称、协议源设备、协议目标设备。其中动态帧标识符指的是该协议项有可能是动态可变的,可变部分由动态帧长度和帧头起始位置确定。协议帧头/协议帧尾/协议元素项为下一层数据结构,它们的存储方式都是数组。
表2 协议项的数据结构
协议帧头/协议帧尾/协议元素项。协议帧头和协议帧尾的数据结构如表3,其中协议帧头/协议帧尾类型为DataType,数据结构如表4,协议帧头/协议帧尾进制为BaseType,数据结构如表5。
表3 协议帧头/尾数据结构
序号 | 属性名称 | 数据类型 |
1 | 帧头/尾位置 | Int |
2 | 帧头/尾类型 | DataType |
3 | 帧头/尾内容 | String |
4 | 帧头/尾进制 | BaseType |
表4 DataType数据结构
序号 | 名称 | 含义 |
1 | byte_Type | 字节型 |
2 | char_Type | 字符型 |
3 | short_Type | 短整型 |
4 | word_Type | 无符号短整型 |
5 | int_Type | 整型 |
6 | dword_Type | 无符号整型 |
7 | float_Type | 浮点型 |
8 | double_Type | 双精度浮点型 |
9 | user_Type | 用户自定义 |
表5 BaseType数据结构
序号 | 名称 | 含义 |
1 | binary_Type | 二进制 |
2 | octonary_Type | 八进制 |
3 | decimal_Type | 十进制 |
4 | hexadecimal_Type | 十六进制 |
协议元素项的数据结构如表6所示,其中处理函数为FunctionType,数据结构如表7所示,元素位为下一层数据结构,它的存储方式为数组。
表6 协议元素项数据结构
序号 | 属性名称 | 数据型号 |
1 | 元素ID | Int |
2 | 元素名称 | String |
3 | 元素类型 | DataType |
4 | 元素长度 | Int |
5 | 可选标识符 | Bool |
6 | 前导符类型 | DataType |
7 | 前导符长度 | Int |
8 | 元素前导符 | String |
9 | 符号位标识符 | Bool |
10 | 分辨率 | Double |
11 | 处理函数 | FunctionType |
12 | 目标数据类型 | DataType |
13 | 动态帧元素标识符 | Bool |
14 | 嵌套标识符 | Bool |
15 | 元素位数组 | PtrArray |
16 | 备注 | String |
表7 FunctionType数据结构
协议元素位的数据结构如表8所示。
表8 协议元素位数据结构
序号 | 属性名称 | 数据型号 |
1 | 元素位 | String |
2 | 位组合值 | String |
3 | 位组合值含义 | String |
从应用***接口协议四层结构可以看出,按照应用***接口协议类型对数据进行分类,实际是对数据的协议项内容进行识别。用户在上位机输入自己需要的协议项内容,比如协议项ID为0x55aa,发送到协议类型分类模块,然后协议类型分类模块以0x55aa为基准,将接收到的应用***接口协议数据的协议项ID进行对比识别,识别后符合的数据传输至协议转SDO模块,不符合的数据传输至以太网网络数据输出口。优选的实施例中,协议类型分类模块包括协议项内容识别模块和数据链路层以太网端口,如图3所示;
协议项内容识别模块,通过对接收到的应用***数据的每帧数据与协议类型分类信息中的各个协议项内容中的帧头逐个进行匹配,当匹配成功,将应用***数据通过核间传输IPC(Inter-Processors Communication)传输到协议转SDO模块,若匹配不成功,将应用***数据通过数据链路层以太网端口传输到以太网网络数据输出接口。
协议项内容识别模块进行识别之前,需要接收并读取协议类型分类信息,用户配置信息处理模块获取的协议类型分类信息的结构和参数如图4所示,其中,数量表示包含的用户指定协议类型分类条件的数量;序号,作为每个协议类型分类条件的分隔符,表示第几个相应协议类型分类条件;不匹配端口,表示不匹配协议项内容的数据传输至以太网网络数据输出接口的号。协议项n内容:分类信息中第n类协议项的内容,n为正整数;协议项内容用于存储表2中的信息。
应用***数据通常按如图5所示的方式传输:
一帧数据由帧头、帧长、多个数据元素、帧尾等组成。通常通过帧头可区分不同类别协议,一个数据帧中必须包含帧头。通常以帧长或帧尾标志本帧数据结束,但数据帧中可不含有帧长或帧尾信息;一帧数据的主体部分包含具体信息的数据元素,数据元素分为静态元素和动态元素,动态元素不是必须的,只有当协议项中的“动态帧标识符”为真时,数据帧中才包含动态元素。静态元素指的是在一个数据帧中出现且只出现一次的数据元 素;动态元素指的是在一个数据帧中可连续重复出现多次的数据元素,且重复次数不固定。
协议识别程序主要通过对接收到的数据帧与用户设置的协议类型分类信息中的帧头逐个进行匹配,当匹配成功,就将应用***数据通过IPC传输到协议转SDO模块,而如果接收到的数据与所有设定的协议项内容都不匹配,数据将通过数据链路层以太网端口向不匹配端口发送出去。
优选实施例中,数据链路层以太网端口包括连接着外部PHY芯片的SGMI I接口和媒体访问操控器MAC,如图6所示;
外部PHY芯片实现物理层的功能,媒体访问操控器MAC实现数据链路层的功能,而SGMII接口则是连接物理层和数据链路层的媒体独立接口。
SGMII接口包括PHY芯片初始化模块、选择连接模块和SERDES串并转换模块;
媒体独立接口指的是在不对MAC进行任何改动的情况下,更换任何型号的PHY芯片都不影响媒体访问操控器MAC的工作,这就需要在媒体独立接口对PHY芯片进行初始化。
媒体独立接口类型有很多种,常见的有MII接口、RMII接口、GMII接口、RGMII接口以及SGMII接口,前两种用于百兆以太网,后三种用于千兆以太网。本实施方式使用的是SGMII接口,因为SGMII接口使用的是串行传输,相比于GMII接口和RGMII接口的并行传输,经过SERDES串并转换模块串并转换之后的SGMII接口能在传输高速网络数据时保持更高的稳定性。
在数据正式开始传输之前,需传输数据的双方先进行自动协商连接或者强制连接,这也是SGMII接口的一个功能。自动协商连接,指的是需传输数据的双方互相告诉对方自己所具有的最高传输速度及传输方式,然后选择双方都支持的最高传输速度及传输方式进行传输。强制连接,指的是需传输数据的一方直接告诉对方这次传输的传输速度及传输方式,然后要求对方配合。本实施方式最高传输速度为1000Mb/s,传输方式支持半双工及全双工。
至于数据链路层只接收符合本实施方式MAC地址数据帧的问题,66AK2E05芯片的媒体访问操控器MAC具有ALE功能,使用这一功能就能接收到应用***全体数据帧。
根据上述分析,本实施方式中,所述将应用***数据通过数据链路层以太网端口传输到以太网网络数据输出接口的工作过程包括如下:
步骤1a:控制PHY芯片初始化模块初始化PHY芯片;
步骤2a:根据连接选择模块,判断需传输数据双方是否进行自动协商连接,若是,进行自动协商连接,转入步骤3a,若否,进行强制连接,转入步骤3a;
步骤3a:打开媒体访问操控器MAC的ALE功能,等待设定时间,执行步骤4a;
步骤4a:当媒体访问操控器MAC利用ALE功能接收到匹配不成功的应用***数据的数据时,将应用***数据经SERDES串/并转换模块进行并串转换,转换后的串行数据经PHY芯片发送至以太网网络数据输出接口。
本实施方式中IPC(Inter-Processors Communication)是芯片66AK2E05的DSP核和ARM核之间的传输机制,它利用芯片内或者芯片外DSP核和ARM核共享的内存空间作为两者之间传递数据的介质。在芯片内,两个核之间有2MB大小的MSMC SRAM作为共享内存空间,MSMC SRAM传输速度极快,但空间大小只有2MB,不适合作为此次应用***接口协议数据从数据协议类型分类模块到协议转SDO模块的传输。本实施方式传输采用的是芯片外的DDR3,DDR3虽然传输速度稍慢于MSMC SRAM,但其空间达到了4GB,能充分满足此次传输的需求。
本实施方式中,协议项内容识别模块将应用***数据通过核间传输IPC传输到协议转SDO模块的过程如图7所示:
芯片每个核都有自己唯一的ID,协议项内容识别模块发送包括自己的ID和协议转SDO模块的ID的中断信息,当协议转SDO模块从接收的中断信息中确定接收到协议项内容识别模块的ID和自己的ID后,协议转SDO模块将自己的ID发送至协议项内容识别模块,经协议项内容识别模块验证为协议转SDO模块的ID后,将要传输的应用***数据存入DDR3中,此时协议项内容识别模块会得到一个描述符,描述符的缓冲区指针指向DDR3中该数据存放的首地址。
协议项内容识别模块将该描述符所在队列名称及该描述符在队列中的位置的队列信息发送给协议转SDO模块,协议转SDO模块通过该描述符,接收到协议项内容识别模块要传输的应用***数据。
本实施方式通过对应用***接口协议格式的分析,从应用***接口协议的协议项内容入手,重点研究了当协议项内容包含动态帧时协议识别的方法,并将分类出来的包含指定协议类型的应用***接口协议数据通过核间传输机制IPC传输到协议转SDO模块中,将剩余的不包含指定协议类型的应用***接口协议数据通过数据链路层以太网端口传输到以太网网络数据输出接口,完成了协议类型分类模块的功能。
协议转SDO模块的主要功能是完成应用***接口协议和SDO之间的相互转换。SDO是HIT-TENA(Harbin Institute of Technology-Test and Training EnablingArchitecture,哈尔滨工业大学开发的试验训练使能体系结构)平台提供了一种开放性的数据格式,只要 符合SDO,就可以直接利用HIT-TENA平台提供的订阅/发布机制进行传输,节约用户的时间、精力。SDO结构如图8所示。
对比图2和图8可以看出,SDO的结构也可分为四层,分别为SDO集、SDO项、SDO帧头组/帧尾组/元素以及SDO子元素。SDO集和协议集对应,指的是下一层所有SDO项的集合。SDO项与协议项对应,指的是一条SDO完整信息的表达,其包含SDO帧头组、SDO元素以及SDO帧尾组。SDO帧头组将所有协议帧头组合起来,SDO帧尾组将所有协议帧尾组合起来,但SDO元素并不是将所有协议元素项组合起来。所有的协议元素项以及其下一级的协议元素位都属于SDO元素下的SDO子元素,而且与协议元素项和协议元素位并不全是简单一一对应关系。在协议元素项的数据结构中,有一数据类型为FunctionType的属性,其名为处理函数。处理函数一共有三种,分别是不处理、位解析以及物理值计算。
三种处理函数处理过程如图9所示。不处理指的是直接将协议元素项或协议元素位当做一个子元素。位解析会将协议元素项或协议元素位按位进行解析,如图中的一个二进制数值为10011101的协议元素位,位解析会先将该协议元素位分成三个二进制数值100、11和101,然后将这三个二进制数值转化为十进制数值4、3和5,最后这三个十进制数值成为SDO里的三个SDO子元素。物理值计算指的是将协议元素项或协议元素位进行加减乘除,得到的新数值成为SDO子元素,该注意的是,物理值计算有可能造成数值类型的变化,如源数值类型为Int整数型,乘以一个系数后可能变为Double双精度浮点型。
协议元素项和协议元素位正是按照这三种处理函数转换成SDO子元素,应用***接口协议数据也借此转换为SDO数据。
根据协议转SDO模块的功能和SDO格式的分析,协议转SDO模块包括协议转SDO组件和中间件接口;首选将HIT-TENA平台植到ARM的Linux***中;然后在HIT-TENA平台中编写协议转SDO组件,协议转SDO组件用于接收从用户配置信息处理模块发送过来的SDO模板,并根据这该模板将包含指定协议类型的应用***数据转换成SDO数据;由于现有SDO模板的格式过于复杂,故本实施方式的的SDO模板的数据组成如图11所示。
SDO模板文件格式为XML文件,除了XML首部和尾部,其由三部分组成,组件参数、协议序号和协议与SDO对应信息。其中组件参数为组件初始化做准备,而协议序号与图4中的序号对应,说明这次转换的协议类型。
根据用户配置信息处理模块的功能要求,本实施方式的用户配置信息处理模块包括用户配置信息接收模块和用户配置信息读取及分发模块,如图10所示。
由图10中可以看出,用户配置信息接收模块首先通过用户配置信息接收子模块将用户配置信息从用户配置信息输入接口接收到ARM核的Linux***中,信息存储的格式为XML文件。用户配置信息接收模块将用户配置信息文件存储的路径发送给用户配置信息读取及分发模块。用户配置信息读取及分发模块收到路径后去路径对应的地址寻找XML文件,读取文件中的信息,并将其中的协议类型分类信息和SDO模板分别发送给协议类型分类模块和协议转SDO模块。由于用户配置信息处理模块和协议转SDO模块都在ARM核的Linux***中,传递十分方便。但用户配置信息处理模块传输信息到DSP核中的协议类型分类模块时,需要通过66AK2E05芯片的核间通信机制IPC。
本实施方式中用户配置信息接收模块的功能是从用户配置信息输入接口接收用户配置信息XML文件,这一功能实际上就是两台网络设备间的文件传输过程。在TCP/IP协议里,常用的实现文件传输的协议有两种——FTP协议和TFTP协议,其两者各有优缺点。
TFTP协议是基于UDP实现的,它在传输前不会经过握手确认连接是否可靠,但如果客户端接收不到数据而无法对服务器回应时,服务器会认定接收超时并向客户端重新发出数据;而FTP协议是基于TCP实现的,它在传输前会让客户端和服务器经过三次握手,保证两者之间连接的可靠性。TFTP协议并不需要对客户端进行验证,而FTP协议需要。由于FTP协议的功能比TFTP协议多,性能也比TFTP协议优秀,所以FTP协议占用的资源比TFTP协议要多。
本实施方式每次上断电,配置次数只为一次,所以在本实施方式这种资源不是很充足的嵌入式设备中,要求用户配置信息模块占用的资源尽量缩小,而且用户配置信息文件大小范围为10KB至1MB,较为微小,在本实施方式与上位机这种距离不长的局域网传输并不需要过分追求连接的可靠性,故决定使用TFTP协议作为实现用户配置信息接收模块的文件传输协议。
在TFTP协议中,客户端与服务器之间的数据传输涉及到以下五种包:读请求包(RRQ)、写请求包(WRQ)、数据包(DATA)、确认包(ACK)和错误包(ERROR)。下面表9至表12是这五种包的格式。
表9 RRQ/WRQ格式
RRQ/WRQ包含三部分,Opcode操作码,Filename文件名和Mode模式。Opcode为1时代表RRQ,为2时代表WRQ。Filename为需传输的文件字符串名,其后面的’0’代表字符串终止符。Mode一共有两个值,当其为netascii时代表之后传递的数据包数据格式为8bit ascii码,其为octet时代表之后传递的数据包数据格式为binary普通的二进制型。跟在Mode后面的’0’也是字符串终止符。
表10 DATA格式
序号 | 数据名称 | 数据类型 |
1 | Opcode | 2 bytes |
2 | Block# | 2 bytes |
3 | Data | n bytes |
DATA也包含三部分,Opcode操作码,Block#块序号和Data数据。此时的Opcode数值为3。Block#从1开始递增,代表此DATA包是总体数据里的第几个包。Data承载着需传输文件里的具体数据,除非是最后的数据包,其他数据包的Data部分大小必须为512bytes,最后一个数据包大小为1~511bytes,从而表达传输结束的信息。
表11 ACK格式
序号 | 数据名称 | 数据类型 |
1 | Opcode | 2 bytes |
2 | Block# | 2 bytes |
ACK包含两部分,Opcode操作码和Block#块序号。此时的Opcode数值为4。当RRQ、WRQ和DATA发送出去时,均需要得到回应,RRQ需要DATA或ERROR的回应,WRQ需要ACK或ERROR的回应,DATA需要ACK或ERROR的回应。当ACK用于回应WRQ时,其Block#数值为0。当ACK用于回应DATA时,其Block#数值为对应DATA里面的Block#数值。
表12 ERROR格式
ERROR包含三部分,Opcode操作码、ErrorCode错误码和ErrMsg错误信息。此时的Opcode数值为5。ErrorCode错误码指的是错误的类型,ErrMsg可给程序员用于编写错误信息字符串,其之后的’0’为字符串终止符。
TFTP服务器和客户端之间传输过程如图13所示:
TFTP协议是以UDP为基础的,UDP实现方式为socket套接字编程,所以TFTP协议也是利用socket套接字编程实现。首先TFTP服务器利用socket函数来建立一个套接字,然后调用listen函数等候TFTP客户端的信息。TFTP客户端建立套接字后通过sendto函数发送RRQ或者WRQ给TFTP服务器,TFTP服务器通过recvfrom函数接收,如果接收到的是RRQ则回应DATA,如果接收到的是WRQ则回应ACK。TFTP客户端也会根据TFTP服务器发送的包进行对应的回应,如此循环下去,直到检测到传输的DATA里数据部分大小不足512bytes时,双方均认为此次传输完成,最后利用close函数将套接字关闭。
在本实施方式中,用户配置信息接收模块作为TFTP服务器,与用户配置信息输入接口相连的上位机配置程序为TFTP客户端。本实施方式上电时,用户配置信息接收模块建立好套接字并处于等待接收的状态。当上位机配置程序配置好信息并生成XML文件时,上位机向本实施方式发出WRQ,本实施方式回应后上位机将生成的XML文件发送到本实施方式的的用户配置信息接收模块里。
在对用户配置信息进行操作前,首先需知道用户配置信息的文件格式和其数据组成。用户配置信息的文件格式以XML文件的形式存在,其里面的数据组成如图14所示。
除了XML首部和尾部,用户配置信息包含了IP地址分类XML信息、协议类型分类XML信息、组件参数、协议序号和协议转SDO对应信息。IP地址分类XML信息的内容与图15所示的IP地址分类信息一样,但数据结构为XML标准,协议类型分类XML信息的内容与图4所示的协议类型分类信息一样,但数据结构为XML标准。而把IP地址分类XML信息和协议类型分类XML信息提取出来之后,剩下的就组成如图11所示的SDO模板了。
如图15所示,IP地址分类信息第一个参数为数量,指的是这个信息内一共包含的用户指定IP地址分类条件的数量,之后的序号作为每个IP地址分类条件的分隔符,说明这是第几个分类条件。每个IP地址分类条件都会包含目的IP地址、源IP地址和匹配目的地及备注。目的IP地址和源IP地址不一定都需要配置,如不需对源IP地址进行分类时,可将源IP地址配置为0。匹配目的地指的是当应用***数据包含该IP地址时,应用***数据被送达的地方,匹配目的地后面的备注只在匹配目的地为以太网端口时有效,它指的 是匹配的数据被送达哪个以太网端口。IP地址分类信息最后的不匹配目的地指的是不包含所以指定的IP地址的应用***数据被送达的地方。
但Linux***的内核中并不提供对XML文件进行解析的***函数或库函数,所以要想解析XML文件,需在Linux***中安装第三方的函数库。而且由于对XML文件进行解析需要进行多次字符串匹配,这会占用巨大的***资源,使得***其它工作的效率大大降低。
Linux***内核虽然不提供XML协议的***函数,但它提供了对基本二进制文件读写的open、write、read等文件操作***函数。这时再观察图11,发现虽然由于协议转SDO对应信息中动态帧的存在使得整个用户配置信息长度并不固定,但IP地址分类信息和协议类型分类信息的内容在用户配置信息XML文件里面的位置是固定的。
Linux***可以调用文件操作***函数在不对用户配置信息XML文件解析的情况下从这些固定的位置提取出协议类型分类信息的内容,从而得到协议类型分类信息,并通过IPC将其传输到协议类型分类模块。当协议类型分类信息被提取出来后,将之后直到XML尾部的信息结合XML首部则能得到SDO模板。用户配置信息读取及分发模块的工作过程包括如下步骤:
步骤1b:根据收到的存储路径,打开用户配置信息XML文件,建立SDO.xml文件;
步骤2b:读取用户配置信息XML文件的XML首部,并写入SDO.xml文件中;
步骤3b:读取用户配置信息XML文件中协议类型分类信XML信息中各协议项内容,获得协议类型分类信息;
步骤4b:将获得的协议类型分类信息发送至协议类型分类模块;
步骤5b:读取用户配置信息XML文件中SDO的组件参数、各协议序号及协议转SDO对应信息和XML尾部,并写入SDO.xml文件中;
步骤6b:将SDO.xml文件传输至协议转SDO模块。
Claims (9)
1.一种应用***接口协议自动解析装置,其特征在于,包括:用户配置信息处理模块、协议类型分类模块和协议转SDO模块;
用户配置信息处理模块,用于对用户配置信息进行处理,获取协议类型分类信息和SDO模板;
协议类型分类模块,用于根据获取的协议类型分类信息,对输入的多条包含不同协议类型的应用***数据进行分类,将包含指定协议类型的应用***数据传输到协议转SDO模块,将不包含指定协议类型的应用***数据传输到以太网网络数据输出接口;
协议转SDO模块,用于按照用户配置的SDO模板,将包含指定协议类型的应用***数据转换成SDO模板中与相应应用***接口协议类型对应的SDO数据并通过SDO输出接口输出;
其中,用户配置信息处理模块和协议转SDO模块基于芯片66AK2E05的ARM实现,协议类型分类模块基于芯片66AK2E05的DSP实现。
2.根据权利要求1所述的应用***接口协议自动解析装置,其特征在于,所述用户配置信息处理模块获取的协议类型分类信息的结构和参数如下:
其中,数量表示包含的用户指定协议类型分类条件的数量;
序号,作为每个协议类型分类条件的分隔符,表示第几个相应协议类型分类条件;
协议项n内容:分类信息中第n类协议项的内容,n为正整数;
不匹配端口,表示不匹配协议项内容的数据传输至以太网网络数据输出接口的号。
3.根据权利要求1所述的应用***接口协议自动解析装置,其特征在于,
所述协议类型分类模块包括协议项内容识别模块和数据链路层以太网端口;
协议项内容识别模块,通过对接收到的应用***数据的每帧数据与协议类型分类信息中的各个协议项内容中的帧头逐个进行匹配,当匹配成功,将应用***数据通过核间传输IPC传输到协议转SDO模块,若匹配不成功,将应用***数据通过数据链路层以太网端口传输到以太网网络数据输出接口。
4.根据权利要求3所述的应用***接口协议自动解析装置,其特征在于,所述数据链路层以太网端口连接着外部PHY芯片的SGMII接口和媒体访问操控器MAC;
外部PHY芯片,用于实现物理层的功能;
媒体访问操控器MAC,用于实现数据链路层的功能;
SGMII接口,为连接物理层和数据链路层的媒体独立接口;
所述SGMII接口包括PHY芯片初始化模块、选择连接模块和SERDES串并转换模块;
所述将应用***数据通过数据链路层以太网端口传输到以太网网络数据输出接口的工作过程包括如下:
步骤1a:控制PHY芯片初始化模块初始化PHY芯片;
步骤2a:根据连接选择模块,判断需传输数据双方是否进行自动协商连接,若是,进行自动协商连接,转入步骤3a,若否,进行强制连接,转入步骤3a;
步骤3a:打开媒体访问操控器MAC的ALE功能,等待设定时间,执行步骤4a;
步骤4a:当媒体访问操控器MAC利用ALE功能接收到匹配不成功的应用***数据的数据时,将应用***数据经SERDES串/并转换模块进行并串转换,转换后的串行数据经PHY芯片发送至以太网网络数据输出接口。
5.根据权利要求3所述的应用***接口协议自动解析装置,其特征在于,所述装置还包括DDR3;
所述协议项内容识别模块,将应用***数据通过核间传输IPC传输到协议转SDO模块的过程包括:
协议项内容识别模块发送包括自己的ID和协议转SDO模块的ID的中断信息,当协议转SDO模块从接收的中断信息中确定接收到协议项内容识别模块的ID和自己的ID后,协议转SDO模块将自己的ID发送至协议项内容识别模块,经协议项内容识别模块验证为协议转SDO模块的ID后,将要传输的应用***数据存入DDR3中,此时协议项内容识别模块会得到一个描述符,描述符的缓冲区指针指向DDR3中该数据存放的首地址;
协议项内容识别模块将该描述符所在队列名称及该描述符在队列中的位置的队列信息发送给协议转SDO模块,协议转SDO模块通过该描述符,接收到协议项内容识别模块要传输的应用***数据。
6.根据权利要求1所述的应用***接口协议自动解析装置,其特征在于,所述协议转SDO模块基于所述HIT-TENA平台实现,HIT-TENA平台植到ARM的Linux***中;
所述协议转SDO模块包括协议转SDO组件和中间件接口;
协议转SDO组件,接收从用户配置信息处理模块发送过来的SDO模板,并根据这该模板将包含指定协议类型的应用***数据转换成SDO数据;
中间件接口,用于发送SDO数据。
7.根据权利要求6所述的应用***接口协议自动解析装置,其特征在于,所述SDO模板的组成为:
8.根据权利要求1所述的应用***接口协议自动解析装置,其特征在于,所述用户配置信息处理模块包括用户配置信息接收模块和用户配置信息读取及分发模块;
用户配置信息接收模块,采用TFTP传输协议接收用户配置信息,并将用户配置信息的存储路径发送至用户配置信息读取及分发模块;
用户配置信息存储的格式为XML文件,包括协议类型分类信息和SDO模板;
用户配置信息读取及分发模块,根据收到的存储路径去对应的地址寻找XML文件,读取XML文件中的信息,并将其中的协议类型分类信息和SDO模板分别发送给协议类型分类模块和协议转SDO模块。
9.根据权利要求1所述的应用***接口协议自动解析装置,其特征在于,所述用户配置信息读取及分发模块的工作过程包括如下步骤:
步骤1b:根据收到的存储路径,打开用户配置信息XML文件,建立SDO.xml文件;
步骤2b:读取用户配置信息XML文件的XML首部,并写入SDO.xml文件中;
步骤3b:读取用户配置信息XML文件中协议类型分类信XML信息中各协议项内容,获得协议类型分类信息;
步骤4b:将获得的协议类型分类信息发送至协议类型分类模块;
步骤5b:读取用户配置信息XML文件中SDO的组件参数、各协议序号及协议转SDO对应信息和XML尾部,并写入SDO.xml文件中;
步骤6b:将SDO.xml文件传输至协议转SDO模块;
用户配置信息XML文件的结构和参数为:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610624526.6A CN106230826B (zh) | 2016-08-02 | 2016-08-02 | 应用***接口协议自动解析装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610624526.6A CN106230826B (zh) | 2016-08-02 | 2016-08-02 | 应用***接口协议自动解析装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106230826A true CN106230826A (zh) | 2016-12-14 |
CN106230826B CN106230826B (zh) | 2019-03-29 |
Family
ID=57536277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610624526.6A Active CN106230826B (zh) | 2016-08-02 | 2016-08-02 | 应用***接口协议自动解析装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106230826B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107547574A (zh) * | 2017-10-31 | 2018-01-05 | 哈尔滨工业大学 | 一种基于通用协议的通信***及方法 |
CN107800717A (zh) * | 2017-11-17 | 2018-03-13 | 广西小草信息产业有限责任公司 | 一种通信处理***和方法 |
CN108345558A (zh) * | 2017-12-29 | 2018-07-31 | 河南平高电气股份有限公司 | 一种支持多协议的rs485集配单元 |
CN109347884A (zh) * | 2018-12-05 | 2019-02-15 | 北京和利时***工程有限公司 | 一种实时以太网到现场总线的转换方法及装置、存储介质 |
CN109388591A (zh) * | 2017-08-07 | 2019-02-26 | 北京北斗星通导航技术股份有限公司 | 一种matlab应用***与stk应用***接口适配器和适配方法 |
CN109947681A (zh) * | 2019-03-20 | 2019-06-28 | 天津芯海创科技有限公司 | 串化/解串器及高速接口协议交换芯片 |
CN110351325A (zh) * | 2018-04-08 | 2019-10-18 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关设备 |
CN110532208A (zh) * | 2019-07-12 | 2019-12-03 | 优刻得科技股份有限公司 | 一种数据处理方法、接口转换结构及设备 |
CN111083153A (zh) * | 2019-12-24 | 2020-04-28 | 杭州求是优脉科技有限公司 | 医疗接口间的业务访问方法、装置、设备及可读存储介质 |
CN111428462A (zh) * | 2020-03-04 | 2020-07-17 | 厦门科灿信息技术有限公司 | 通讯协议模板构建的方法及终端设备 |
CN111464565A (zh) * | 2020-05-13 | 2020-07-28 | 中国科学院自动化研究所 | 遵循通用信息交换协议规范的智能解码方法及解码器 |
CN112187722A (zh) * | 2020-09-02 | 2021-01-05 | 博依特(广州)工业互联网有限公司 | 一种基于fpga的安全隔离*** |
CN112333574A (zh) * | 2021-01-04 | 2021-02-05 | 深圳市亿联无限科技有限公司 | 通信接入终端产品快速发现及管理方法及*** |
CN114615350A (zh) * | 2022-03-08 | 2022-06-10 | 通号城市轨道交通技术有限公司 | 一种接口数据处理方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626351A (zh) * | 2008-07-09 | 2010-01-13 | 青岛高校信息产业有限公司 | 多协议数据采集网关 |
US8122459B2 (en) * | 2008-09-26 | 2012-02-21 | Atlantis Cyberspace, Inc. | Engine agnostic interface for communication between game engines and simulations systems |
CN102496192A (zh) * | 2011-12-15 | 2012-06-13 | 广西交通科学研究院 | 嵌入式一体化车道控制机 |
US20160173654A1 (en) * | 2014-11-28 | 2016-06-16 | Electronics And Telecommunications Research Institute | Method and apparatus for live-virtual-constructive interoperation |
-
2016
- 2016-08-02 CN CN201610624526.6A patent/CN106230826B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101626351A (zh) * | 2008-07-09 | 2010-01-13 | 青岛高校信息产业有限公司 | 多协议数据采集网关 |
US8122459B2 (en) * | 2008-09-26 | 2012-02-21 | Atlantis Cyberspace, Inc. | Engine agnostic interface for communication between game engines and simulations systems |
CN102496192A (zh) * | 2011-12-15 | 2012-06-13 | 广西交通科学研究院 | 嵌入式一体化车道控制机 |
US20160173654A1 (en) * | 2014-11-28 | 2016-06-16 | Electronics And Telecommunications Research Institute | Method and apparatus for live-virtual-constructive interoperation |
Non-Patent Citations (1)
Title |
---|
李微: "HIT-TENA通用协议转换软件开发", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388591A (zh) * | 2017-08-07 | 2019-02-26 | 北京北斗星通导航技术股份有限公司 | 一种matlab应用***与stk应用***接口适配器和适配方法 |
CN109388591B (zh) * | 2017-08-07 | 2021-07-16 | 北京北斗星通导航技术股份有限公司 | 一种matlab应用***与stk应用***接口适配器和适配方法 |
CN107547574B (zh) * | 2017-10-31 | 2020-08-25 | 哈尔滨工业大学 | 一种基于通用协议的通信***及方法 |
CN107547574A (zh) * | 2017-10-31 | 2018-01-05 | 哈尔滨工业大学 | 一种基于通用协议的通信***及方法 |
CN107800717A (zh) * | 2017-11-17 | 2018-03-13 | 广西小草信息产业有限责任公司 | 一种通信处理***和方法 |
CN108345558A (zh) * | 2017-12-29 | 2018-07-31 | 河南平高电气股份有限公司 | 一种支持多协议的rs485集配单元 |
CN108345558B (zh) * | 2017-12-29 | 2020-02-21 | 河南平高电气股份有限公司 | 一种支持多协议的rs485集配单元 |
CN110351325A (zh) * | 2018-04-08 | 2019-10-18 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关设备 |
CN110351325B (zh) * | 2018-04-08 | 2022-04-29 | 腾讯科技(深圳)有限公司 | 一种数据处理方法及相关设备 |
CN109347884A (zh) * | 2018-12-05 | 2019-02-15 | 北京和利时***工程有限公司 | 一种实时以太网到现场总线的转换方法及装置、存储介质 |
CN109947681A (zh) * | 2019-03-20 | 2019-06-28 | 天津芯海创科技有限公司 | 串化/解串器及高速接口协议交换芯片 |
CN110532208B (zh) * | 2019-07-12 | 2021-05-28 | 优刻得科技股份有限公司 | 一种数据处理方法、接口转换结构及数据处理设备 |
CN110532208A (zh) * | 2019-07-12 | 2019-12-03 | 优刻得科技股份有限公司 | 一种数据处理方法、接口转换结构及设备 |
CN111083153A (zh) * | 2019-12-24 | 2020-04-28 | 杭州求是优脉科技有限公司 | 医疗接口间的业务访问方法、装置、设备及可读存储介质 |
CN111428462A (zh) * | 2020-03-04 | 2020-07-17 | 厦门科灿信息技术有限公司 | 通讯协议模板构建的方法及终端设备 |
CN111428462B (zh) * | 2020-03-04 | 2023-02-28 | 厦门科灿信息技术有限公司 | 通讯协议模板构建的方法及终端设备 |
CN111464565A (zh) * | 2020-05-13 | 2020-07-28 | 中国科学院自动化研究所 | 遵循通用信息交换协议规范的智能解码方法及解码器 |
CN112187722A (zh) * | 2020-09-02 | 2021-01-05 | 博依特(广州)工业互联网有限公司 | 一种基于fpga的安全隔离*** |
CN112333574A (zh) * | 2021-01-04 | 2021-02-05 | 深圳市亿联无限科技有限公司 | 通信接入终端产品快速发现及管理方法及*** |
CN114615350A (zh) * | 2022-03-08 | 2022-06-10 | 通号城市轨道交通技术有限公司 | 一种接口数据处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106230826B (zh) | 2019-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106230826A (zh) | 应用***接口协议自动解析装置 | |
US9817067B2 (en) | Testbench builder, system, device and method including latency detection | |
US10666718B2 (en) | Dynamic data transport between enterprise and business computing systems | |
CN105703883A (zh) | 在统一协议通信中交换错误信息的装置、方法和*** | |
CN106534178B (zh) | RapidIO网络通用套接字的实现***及方法 | |
US11916740B2 (en) | K8S-based service deployment method and apparatus, device, and medium | |
CN104144156A (zh) | 报文处理方法和装置 | |
CN112445700B (zh) | 测试方法和装置 | |
US20160173349A1 (en) | Simulator for testing a gateway device | |
CN105389120A (zh) | 支持通过活动消息的rma api | |
CN106210172B (zh) | 以太网络数据ip地址高速分类装置 | |
KR101559089B1 (ko) | 장치의 컴포넌트들 간에 메모리 자원들을 공유하기 위한 통신 프로토콜 | |
CN110290187A (zh) | 数据信息的传输方法及装置、存储介质、电子装置 | |
CN113472637A (zh) | 一种lora网关 | |
CN106792828A (zh) | 一种户外无线ap设备间速度测试方法及工具 | |
CN102208998B (zh) | 基于fpga的corba通信装置 | |
CN107070809A (zh) | 一种大规模传感器数据的实时转发方法 | |
US20200311040A1 (en) | Dynamically rendering an application programming interface for internet of things applications | |
Rast et al. | Transport-independent protocols for universal AER communications | |
CN104954443B (zh) | 局域网中数据传输方法及*** | |
Roth | A Communication Middleware for Mobile and Ad-hoc Senarios. | |
Bathula et al. | Designing and implementing of serial ports to ethernet gateway on embedded System | |
CN110505222B (zh) | 一种用于电力设备专用校准装置的协议转换方法 | |
Tao et al. | A design of network remote control system | |
Li et al. | Design of ZigBee-WiFi Gateway Based on MicroBlaze |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |