CN114826938A - 一种通信协议仿真的实现方法 - Google Patents
一种通信协议仿真的实现方法 Download PDFInfo
- Publication number
- CN114826938A CN114826938A CN202210420047.8A CN202210420047A CN114826938A CN 114826938 A CN114826938 A CN 114826938A CN 202210420047 A CN202210420047 A CN 202210420047A CN 114826938 A CN114826938 A CN 114826938A
- Authority
- CN
- China
- Prior art keywords
- protocol
- simulation
- data
- data packet
- thread
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种通信协议仿真的实现方法,属于工业自动化控制领域;首先,针对进行通信的上位机和用户端,分别进行各自的端口配置并初始化各参数;针对不同的N种仿真通信协议,分别设定对应各种类的协议仿真模块;用户通过参数配置,将每种仿真通讯协议的数据包头和功能代码,分别录入到各自的协议仿真模块上;然后,在上位机上分割出N个独立内存,关联各协议仿真模块;用户输入待传输数据包到对应的协议仿真模块,将其传输到上位机的对应内存中;上位机利用动态编译法将数据包封装至响应消息列队中;最后监控线程通过配置路径对协议数据包进行加载运行,实现特定协议的数据仿真;本发明改进了通信协议特性研究中通信协议的仿真效率。
Description
技术领域
本发明属于工业自动化控制领域,具体涉及一种通信协议仿真的实现方法。
背景技术
通信协议是通信系统的基础,一个好的通信协议必须确保系统间信息传输的安全性、可靠性和迅速性。在一个通信协议制定后,为了验证该协议的性能,必须进行各方面的考核。协议仿真就是检验协议性能以及产品功能的重要手段。
仿真的概念使用非常广,最终的含义就是使用可控的手段来模仿真实的情况;与计算机模拟系统的区别在于,仿真器致力于模仿系统的外在表现和行为,而不是模拟系统的抽象模型。
然而,当前不同厂商所生产的信息传感设备所采用的通信协议通常是不相同的,通信协议种类的繁多,也导致了协议仿真的多样化。这就为用户同时仿真多个通信协议带来极大不便,为研究通信协议的特性造成了巨大阻力。
发明内容
针对上述问题,为了给研究多项通信协议性能创造基础,特别是针对不同类型通信协议的仿真,本发明提出了一种通信协议仿真的实现方法;以计算机为运行载体,数据引擎为数据存储中心,通过用户配置方式自定义通信协议的相关内容;以解决工业控制系统通信协议仿真难和仿真效率低等技术问题。
所述的通信协议仿真的实现方法,具体步骤在于:
步骤一、针对进行通信的上位机和用户端,分别进行各自的端口配置并初始化各参数;
上位机端的配置包括:唯一标识符;IP地址、端口或串口名、串口参数;最大连接数量;监控线程周期;线程池工作线程数;仿真数据等。
用户端的配置包括:通讯协议配置;数据引擎映射配置等。
初始化参数包括:监控线程、队列和线程池工作线程数等内部工作资源;
步骤二、针对不同的N种仿真通信协议,分别设定对应各种类的协议仿真模块;用户通过参数配置,将每种仿真通讯协议的数据包头和功能代码,分别录入到各自的协议仿真模块上;
每个协议仿真模块独立仿真某种通讯协议,形成协议仿真模块矩阵。
步骤三、在上位机上分割出N个独立内存,与各协议仿真模块一一对应关联;
步骤四、用户输入待传输数据包到对应的协议仿真模块,自定义函数根据协议仿真模块与上位机内存的对应关系,将其传输到上位机的对应内存中;
待传输数据包包括数据长度,起始地址以及数据类型;其中数据类型包括DI、DO、LD三种数字量或脉冲量,AI、AO、LA三种模拟量,通过配置,可提供至少包括布尔类型、字符型、无符号字符型、短整型、无符号短整型、整型、无符号整型、长整型、无符号长整型、浮点型等八种数据类型。
步骤五、上位机利用动态编译法将数据包封装至响应消息列队中;
步骤六、监控线程通过配置路径对协议数据包进行加载,并运行工作线程,实现特定协议的数据仿真。
监控线程包括以下:
1)守护进程是在指定工作线程运行时,使协议仿真模块在后台运行且不受任何上位机控制。
2)阻塞等待环节主要是阻塞主进程,直到指定工作线程退出。
3)当所有工作线程任务结束后,自动释放工作线程池、监控线程和队列等占用的系统资源。
本发明的有益效果在于:
本发明一种通信协议仿真的实现方法,不仅能够支持对通信协议的仿真,还可以为不同类型的通信协议如TCP、UDP、串口协议的仿真模拟提供一条有效的技术途径,以此改进通信协议特性研究中通信协议的仿真效率,解决不同仿真器间信息各自独立、数据共享程度低等技术问题,也为研究不同通信协议间的数据共享特性提供良好的通信基础。
附图说明
图1为本发明一种通信协议仿真的主程序原理图;
图2为本发明一种通信协议仿真的实现方法的流程图;
图3为本发明所述自定义函数的工作原理图;
图4为本发明所述监控线程的工作原理图;
图5为本发明协议仿真模块与内存的关联关系图;
图6为本发明实施例中基于TCP的通信协议仿真架构图;
图7为本发明实施例中基于UDP的通讯协议仿真架构图;
图8为本发明实施例中基于串口的通讯协议仿真架构图。
具体实施方式
下面结合具体实施例和附图对本发明做进一步详细解释说明。
本发明一种通信协议仿真的实现方法,如图1所示,具体包含系统配置、用户配置、初始化、守护进程、阻塞等待和释放资源共6个环节。
如图2所示,具体步骤在于:
步骤一、针对进行通信的上位机和用户端,分别进行各自的端口配置并初始化各参数;
本发明的系统配置和用户配置环节分别载入仿真器软件配置、通讯协议相关配置。
上位机端的系统配置包括:唯一标识符;IP地址、端口或串口名、串口参数;最大连接数量;监控线程周期;线程池工作线程数;仿真数据等。
用户端的配置包括:通讯协议配置;数据引擎映射配置等。
初始化环节主要是初始化监控线程、队列和线程池工作线程数等内部工作资源;
步骤二、针对不同的N种仿真通信协议,分别设定对应各种类的协议仿真模块;用户通过参数配置,将每种仿真通讯协议的数据包头和功能代码,分别录入到各自的协议仿真模块上;
每个协议仿真模块独立仿真某种通讯协议,形成协议仿真模块矩阵。
步骤三、在上位机上分割出N个独立内存,与各协议仿真模块一一对应关联;
步骤四、用户输入待传输数据包到对应的协议仿真模块,自定义函数根据协议仿真模块与上位机内存的对应关系,将其传输到上位机的对应内存中;
在初始化过程中,自定义函数主要负责特定协议数据包的产生,利用动态编译的方法将协议数据包封装至响应消息列队中,由主程序中的监控线程通过配置路径对协议数据包进行加载,运行工作线程,实现特定协议的数据仿真。
如图3所示,所述协议数据包的封装实现流程为:
(1)自定义函数模块启动协议仿真模块,同时在上位机创建协议仿真内存,然后将协议仿真内存与目标协议仿真模块关联,并设置所需仿真的协议的数据包头及功能码等参数;
(2)用户在上位机上输入数据d1,d2,…dn,自定义函数模块获取传输的数据实体,根据设置好的组态协议对应关系,将其放置到目标协议仿真模块对应的位置区域;
待传输数据包包括数据长度,起始地址以及数据类型;其中数据类型包括DI、DO、LD三种数字量或脉冲量,AI、AO、LA三种模拟量,通过配置,可提供至少包括布尔类型、字符型、无符号字符型、短整型、无符号短整型、整型、无符号整型、长整型、无符号长整型、浮点型等八种数据类型。
(3)自定义函数根据关联关系,将协议数据的包头及功能码等传输到上位机的对应内存中;
步骤五、上位机利用动态编译法将数据包封装至响应消息列队中;
步骤六、监控线程通过配置路径对协议数据包进行加载,并运行工作线程,实现特定协议的数据仿真。
如图4所示,监控线程包括以下:
阻塞等待环节主要是阻塞主进程,直到线程池中的指定工作线程退出。若阻塞成功,则主进程将一直等待到指定工作线程结束为止。若阻塞失败,则重启。
守护进程是在指定工作线程运行时,使协议仿真模块在后台运行且不受任何上位机控制。
当所有工作线程任务结束后,自动释放工作线程池、监控线程和队列等占用的系统资源。
本发明所述的通信协议仿真的实现方法,能够将单台主机资源隔离,分出多节点单位,每个协议仿真模块独立仿真某种通讯协议,形成协议仿真模块矩阵,实现多协议数据的并发,同时实现硬件资源的充分利用,节省空间。随着更多通讯协议需求的不断加入,可增加对应的协议仿真器,丰富协议仿真能力。
为实现上述功能,如图5所示,本发明的技术手段和措施如下:
(1)在上位机上分割出N个独立内存,这N个独立内存与N个协议仿真模块一一对应;
(2)用户通过参数配置,将N个协议的数据包头、功能代码等参数信息录入到N个协议仿真器上,然后将协议仿真器内存与协议区域关联;
(3)N个协议仿真模块根据内存与协议区域关联情况,将需需要传输的数据由协议仿真模块内存放置到相应的协议区域,并将其封装成协议数据包发送出去。
实施例:
本发明提供的一种通信协议仿真的实现方法,用户只需在系统配置和用户配置上进行不同的参数设置,就可同时实现对TCP、UDP和串口协议的仿真。其基本原理如下:
(1)TCP协议
该架构适用于基于TCP的通讯协议的仿真器。除主程序外,还包括监控线程、socket列表、socket fd监听池、自定义函数、数据引擎、工作线程池、待监听socket fd队列和待关闭socket fd队列等部分;如图6所示,各部分功能作用如下:
1)监控线程:接受连接请求,将连接放入监听池;将待监听socket fd队列放入监听池;关闭待关闭socket队列中的连接;新增任务到工作线程池;在socket列表中新增/删除连接,修改时间戳。
2)socket列表:记录每个连接最后一次活动的时间,用于管理连接的存活时间;表项内容由socket fd和时间戳组成。
3)socket fd监听池:负责监听fd上从外部写入数据的动作。
4)自定义函数:通讯协议部分相关内容,由具体通讯协议开发者定义。
5)数据引擎:仿真器的数据中心,作为仿真器的数据源和存储中心。
6)工作线程池:执行由监控线程提交的任务。
7)待监听连接队列:存放需要重新监听的socket fd。
8)待关闭连接队列:存放需要关闭的socket fd。
(2)UDP协议
该架构适用于基于UDP的通讯协议的仿真器;除主程序外,还包括监控线程、自定义函数、数据引擎、工作线程池和响应消息队列等部分。如图7所示,各部分功能作用如下:
1)监控线程:接收请求消息,进行数据校验,并新增任务到工作线程池;将响应消息队列中的数据发出。
2)自定义函数:通讯协议部分相关内容,由具体通讯协议开发者定义。
3)数据引擎:仿真器的数据中心,作为仿真器的数据源和存储中心。
4)工作线程池:执行由监控线程提交的任务。
5)响应消息队列:用于存放待发送的响应信息。工作线程执行任务完成后,将响应信息放入队列。
(3)串口协议
该架构适用于基于串口的通讯协议的仿真器。除主程序外,还包括监控线程、自定义函数、数据引擎、工作线程池和响应消息队列等部分。如图8所示,各部分功能作用如下:
1)监控线程:接收请求消息,进行数据校验,并新增任务到工作线程池;将响应消息队列中的数据发出。
2)自定义函数:通讯协议部分相关内容,由具体通讯协议开发者定义。
3)数据引擎:仿真器的数据中心,作为仿真器的数据源和存储中心。
4)工作线程池:执行由监控线程提交的任务。
5)响应消息队列:用于存放待发送的响应消息。工作线程执行任务完成后,将响应信息放入队列。
Claims (5)
1.一种通信协议仿真的实现方法,其特征在于,具体步骤如下:
首先、针对进行通信的上位机和用户端,分别进行各自的端口配置并初始化各参数;
针对不同的N种仿真通信协议,分别设定对应各种类的协议仿真模块;用户通过参数配置,将每种仿真通讯协议的数据包头和功能代码,分别录入到各自的协议仿真模块上;
然后、在上位机上分割出N个独立内存,与各协议仿真模块一一对应关联;
用户输入待传输数据包到对应的协议仿真模块,自定义函数根据协议仿真模块与上位机内存的对应关系,将其传输到上位机的对应内存中;上位机利用动态编译法将数据包封装至响应消息列队中;
最后、监控线程通过配置路径对协议数据包进行加载,并运行工作线程,实现特定协议的数据仿真。
2.如权利要求1所述的一种通信协议仿真的实现方法,其特征在于,所述上位机端的配置包括:唯一标识符;IP地址、端口或串口名、串口参数;最大连接数量;监控线程周期;线程池工作线程数以及仿真数据;
用户端的配置包括:通讯协议配置以及数据引擎映射配置;
初始化参数包括:监控线程、队列和线程池工作线程数。
3.如权利要求1所述的一种通信协议仿真的实现方法,其特征在于,所述每个协议仿真模块独立仿真某种通讯协议,形成协议仿真模块矩阵。
4.如权利要求1所述的一种通信协议仿真的实现方法,其特征在于,所述待传输数据包包括数据长度,起始地址以及数据类型;其中数据类型包括DI、DO、LD三种数字量或脉冲量,AI、AO、LA三种模拟量,通过配置,可提供至少包括布尔类型、字符型、无符号字符型、短整型、无符号短整型、整型、无符号整型、长整型、无符号长整型和浮点型等八种数据类型。
5.如权利要求1所述的一种通信协议仿真的实现方法,其特征在于,所述监控线程包括以下:
1)守护进程是在指定工作线程运行时,使协议仿真模块在后台运行且不受任何上位机控制;
2)阻塞等待环节主要是阻塞主进程,直到指定工作线程退出;
3)当所有工作线程任务结束后,自动释放工作线程池、监控线程和队列等占用的系统资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210420047.8A CN114826938B (zh) | 2022-04-20 | 2022-04-20 | 一种通信协议仿真的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210420047.8A CN114826938B (zh) | 2022-04-20 | 2022-04-20 | 一种通信协议仿真的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114826938A true CN114826938A (zh) | 2022-07-29 |
CN114826938B CN114826938B (zh) | 2022-11-11 |
Family
ID=82504933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210420047.8A Active CN114826938B (zh) | 2022-04-20 | 2022-04-20 | 一种通信协议仿真的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114826938B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050066086A1 (en) * | 2003-09-19 | 2005-03-24 | Microsoft Corporation | Generic emulator of devices in a device communications protocol |
CN101227343A (zh) * | 2008-02-01 | 2008-07-23 | 中兴通讯股份有限公司 | 一种TCPv6和/或UDPv6测试设备及方法 |
CN101808082A (zh) * | 2010-01-12 | 2010-08-18 | 河源市雅达电子有限公司 | 一种支持多协议的设备仿真方法 |
CN105577439A (zh) * | 2015-12-24 | 2016-05-11 | 江苏飞尚安全监测咨询有限公司 | 一种基于传感设备为基础的仿真模拟方法 |
CN111444609A (zh) * | 2020-03-24 | 2020-07-24 | 北京润科通用技术有限公司 | 数据处理方法及仿真系统 |
CN114095523A (zh) * | 2020-07-30 | 2022-02-25 | 比亚迪股份有限公司 | 综合调度系统中的通信数据处理方法、设备及系统 |
CN114115832A (zh) * | 2022-01-25 | 2022-03-01 | 北京微芯区块链与边缘计算研究院 | 一种物联网嵌入式设备与云平台通信协议实现方法 |
CN114285599A (zh) * | 2021-11-23 | 2022-04-05 | 中国人民解放军战略支援部队信息工程大学 | 基于控制器深度内存仿真的工控蜜罐构建方法及工控蜜罐 |
-
2022
- 2022-04-20 CN CN202210420047.8A patent/CN114826938B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050066086A1 (en) * | 2003-09-19 | 2005-03-24 | Microsoft Corporation | Generic emulator of devices in a device communications protocol |
CN101227343A (zh) * | 2008-02-01 | 2008-07-23 | 中兴通讯股份有限公司 | 一种TCPv6和/或UDPv6测试设备及方法 |
CN101808082A (zh) * | 2010-01-12 | 2010-08-18 | 河源市雅达电子有限公司 | 一种支持多协议的设备仿真方法 |
CN105577439A (zh) * | 2015-12-24 | 2016-05-11 | 江苏飞尚安全监测咨询有限公司 | 一种基于传感设备为基础的仿真模拟方法 |
CN111444609A (zh) * | 2020-03-24 | 2020-07-24 | 北京润科通用技术有限公司 | 数据处理方法及仿真系统 |
CN114095523A (zh) * | 2020-07-30 | 2022-02-25 | 比亚迪股份有限公司 | 综合调度系统中的通信数据处理方法、设备及系统 |
CN114285599A (zh) * | 2021-11-23 | 2022-04-05 | 中国人民解放军战略支援部队信息工程大学 | 基于控制器深度内存仿真的工控蜜罐构建方法及工控蜜罐 |
CN114115832A (zh) * | 2022-01-25 | 2022-03-01 | 北京微芯区块链与边缘计算研究院 | 一种物联网嵌入式设备与云平台通信协议实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114826938B (zh) | 2022-11-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7047176B2 (en) | Method and system for hardware simulation | |
US6832184B1 (en) | Intelligent work station simulation—generalized LAN frame generation simulation structure | |
EP0886932B1 (en) | Protocol interface gateway | |
CA2248986C (en) | Unix open systems interconnection layer testing | |
CN104978261B (zh) | 应用程序的测试方法、装置及系统 | |
CN110838954B (zh) | 一种轻量级大规模自主网络协议功能测试方法 | |
CN113028603B (zh) | 一种应用于中央空调系统的设备监测系统 | |
CN109005080B (zh) | 一种分布式包转发实现方法、实现系统及自动化测试方法 | |
CN111209154A (zh) | 虚拟1553b总线设备的实现方法 | |
CN112947125B (zh) | 一种基于高速串行总线的嵌入式无人机集群仿真系统 | |
CN115168129A (zh) | 植入仿真器的自动化测试系统及ssd硬盘测试方法 | |
CN114826938B (zh) | 一种通信协议仿真的实现方法 | |
US7526420B2 (en) | Method and system for virtual injection of network application codes into network simulation | |
CN113779913A (zh) | 一种面向ai多芯片系统的验证平台结构和测试方法 | |
CN105703946A (zh) | 一种面向QualNet的仿真场景节点信息定时修改方法 | |
CN111431739B (zh) | 面向QualNet的仿真通信网络的动态故障设置方法 | |
CN105592492A (zh) | 高层协议栈一致性测试平台及测试方法 | |
CN105323109B (zh) | 互连网络仿真器及用于仿真互连网络的方法 | |
Nakata et al. | Starbed2: Large-scale, realistic and real-time testbed for ubiquitous networks | |
CN112737815B (zh) | 一种动态配置网络模拟器事件队列的方法及系统 | |
CN105740039A (zh) | 基于rtx与vmic的gnc实时仿真系统构建方法 | |
CN115903569A (zh) | 一种全数字综合模块化航电系统 | |
CN108614447B (zh) | 风电机组的联合仿真方法、装置、设备及存储介质 | |
CN110493210A (zh) | 一种基于sdn的可配置网络安全实验系统 | |
CN112859643A (zh) | 一种物理系统仿真机及其组建方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |