CN117319224A - 汽车总线虚拟通道的实现方法及实现系统 - Google Patents
汽车总线虚拟通道的实现方法及实现系统 Download PDFInfo
- Publication number
- CN117319224A CN117319224A CN202311402885.3A CN202311402885A CN117319224A CN 117319224 A CN117319224 A CN 117319224A CN 202311402885 A CN202311402885 A CN 202311402885A CN 117319224 A CN117319224 A CN 117319224A
- Authority
- CN
- China
- Prior art keywords
- client
- server
- program
- client process
- bus message
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 405
- 230000008569 process Effects 0.000 claims abstract description 410
- 238000012544 monitoring process Methods 0.000 claims abstract description 54
- 230000004044 response Effects 0.000 claims abstract description 10
- 238000004590 computer program Methods 0.000 claims description 10
- 230000006854 communication Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- 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/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40267—Bus for use in transportation systems
- H04L2012/40273—Bus for use in transportation systems the transportation system being a vehicle
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明属于车用软件开发技术领域,具体涉及一种汽车总线虚拟通道的实现方法及实现系统,其中汽车总线虚拟通道的实现方法包括:设计单实例服务端进程,启动后通过UDP协议监听本地计算机的固定端口;设计多实例客户端进程,启动后分别通过UDP协议监听本地计算机的随机端口;客户端进程向服务端进程发送注册请求数据包,服务端进程成功接收注册请求数据包后反馈成功接收信号至客户端进程,客户端进程接收到反馈后则按特定间隔时间向服务端进程发送心跳包,并等待服务端进程对该心跳包的应答;客户端进程向服务端进程发送汽车总线报文。
Description
技术领域
本发明属于车用软件开发技术领域,具体涉及一种汽车总线虚拟通道的实现方法及实现系统。
背景技术
为了实现在计算机上模拟各类汽车总线的通信过程,为总线工具提供虚拟硬件支持,使得多款总线工具进程之间可以通过虚拟硬件相连,进行实时通信。在相关车用软件开发技术中,通常是通过编写驱动程序,在系统底层控制虚拟总线的数据传输。
发明内容
本发明的目的是提供一种汽车总线虚拟通道的实现方法及实现系统。
为了解决上述技术问题,本发明提供了一种汽车总线虚拟通道的实现方法,包括:
设计单实例服务端进程,启动后通过UDP协议监听本地计算机的固定端口;设计多实例客户端进程,启动后分别通过UDP协议监听本地计算机的随机端口;客户端进程向服务端进程发送注册请求数据包,服务端进程成功接收注册请求数据包后反馈成功接收信号至客户端进程,客户端进程接收到反馈后则按特定间隔时间向服务端进程发送心跳包,并等待服务端进程对该心跳包的应答;客户端进程向服务端进程发送汽车总线报文。
进一步,创建服务端进程的方法包括:
所述服务端进程程序启动后尝试创建一个以该程序名称命名的互斥量,如果该互斥量已存在,则创建失败,退出进程程序,否则创建成功,进程程序运行,并在进程程序结束时释放该互斥量;
程序启动后监听本地计算机的固定端口,若监听失败,则退出进程程序并释放互斥量。
进一步,创建至少一个客户端进程的方法包括:
各客户端进程程序启动后分别尝试监听本地计算机的任一随机端口,若监听失败,则尝试监听本地计算机的另一个随机端口,直至监听成功。
进一步,所述注册请求数据包包括:客户端进程监听的随机端口号;以及
所述心跳包包括:客户端进程监听的随机端口号。
进一步,服务端进程设置汽车总线报文的时间戳,包括:
服务端进程启动后读取当前系统性能计数器值并存入变量T1;
服务端进程收到客户端进程发送的汽车总线报文后,再次读取当前系统性能计数器并存入变量T2;
则时间戳T=(T2-T1)/F,其中F为系统性能计数器的频率。
进一步,所述服务端进程在启动后,通过UDP协议或者TCP协议监听本地计算机的固定端口;以及
各客户端进程在启动后,通过UDP协议或者TCP协议分别监听本地计算机的随机端口。
又一方面,本发明还提供了一种计算机可读存储介质,存储有计算机可读指令,当其由至少一个处理器执行时,使得如前所述的汽车总线虚拟通道的实现方法的程序被执行。
第三方面,本发明还提供了一种电子设备,包括:
至少一个存储指令的存储器;
至少一个处理器,其执行所述指令以使得处理器执行以下操作:
创建服务端进程作为虚拟通道的提供者,启动后监听本地计算机的固定端口;
创建至少一个客户端进程,各客户端进程分别作为虚拟通道的使用者,启动后分别监听本地计算机的随机端口;
客户端进程向服务端进程发送注册请求数据包,服务端进程成功接收注册请求数据包后反馈成功接收信号至客户端进程,客户端进程接收到反馈后则按特定间隔时间向服务端进程发送心跳包,并等待服务端进程对该心跳包的应答;
客户端进程向服务端进程发送汽车总线报文,若发送成功,则服务端进程设置该汽车总线报文的时间戳后发回该客户端进程,并修改汽车总线报文的方向属性为发送,同时将此汽车总线报文发送至其余客户端进程,并修改汽车总线报文的方向属性为接收。
进一步,创建服务端进程的方法包括:
所述服务端进程程序启动后尝试创建一个以该程序名称命名的互斥量,如果该互斥量已存在,则创建失败,退出进程程序,否则创建成功,进程程序运行,并在进程程序结束时释放该互斥量;
程序启动后监听本地计算机的固定端口,若监听失败,则退出进程程序并释放互斥量。
进一步,创建至少一个客户端进程的方法包括:
所述至少一个客户端进程程序启动后尝试监听本地计算机的任一随机端口,若监听失败,则尝试监听本地计算机的另一个随机端口,直至监听成功。
所述注册请求数据包包括:客户端进程监听的随机端口号;以及
所述心跳包包括:客户端进程监听的随机端口号。
进一步,服务端进程设置汽车总线报文的时间戳,包括:
服务端进程启动后读取当前系统性能计数器值并存入变量T1;
服务端进程收到客户端进程发送的汽车总线报文后,再次读取当前系统性能计数器并存入变量T2;
则时间戳T=(T2-T1)/F,其中F为系统性能计数器的频率。
第四方面,本发明还提供了一种汽车总线虚拟通道的实现系统,包括:计算机装置,所述计算机装置被配置为执行客户端进程和服务端进程;其中
客户端进程,被配置为向服务端进程发送注册请求数据包、按特定间隔时间向服务端进程发送心跳包和向服务端进程发送汽车总线报文;
服务端进程,被配置为接收客户端进程发送的注册请求数据包、心跳包和汽车总线报文,以及设置汽车总线报文的时间戳后发回该客户端进程,并修改汽车总线报文的方向属性为发送,同时将此汽车总线报文发送至其余客户端进程,并修改汽车总线报文的方向属性为接收。
进一步,所述计算机装置还被配置为创建服务端进程,包括:
所述服务端进程程序启动后尝试创建一个以该程序名称命名的互斥量,如果该互斥量已存在,则创建失败,退出进程程序,否则创建成功,进程程序运行,并在进程程序结束时释放该互斥量;
程序启动后监听本地计算机的固定端口,若监听失败,则退出进程程序并释放互斥量。
进一步,所述计算机装置还被配置为创建至少一个客户端进程,包括:
各客户端进程程序启动后尝试监听本地计算机的任一随机端口,若监听失败,则尝试监听本地计算机的另一个随机端口,直至监听成功。
进一步,所述注册请求数据包包括:客户端进程监听的随机端口号;以及
所述心跳包包括:客户端进程监听的随机端口号。
进一步,服务端进程设置汽车总线报文的时间戳,包括:
服务端进程启动后读取当前系统性能计数器值并存入变量T1;
服务端进程收到客户端进程发送的汽车总线报文后,再次读取当前系统性能计数器并存入变量T2;
则时间戳T=(T2-T1)/F,其中F为系统性能计数器的频率。
进一步,服务端进程在启动后,通过UDP协议或者TCP协议监听本地计算机的固定端口;以及
各客户端进程在启动后,通过UDP协议或者TCP协议分别监听本地计算机的随机端口。
第五方面,本发明还提供了一种计算机程序产品,包括计算机程序或指令,其中在计算机上执行所述计算机程序或指令时,使得计算机能够执行如前所述的汽车总线虚拟通道的实现方法的操作。
本发明的有益效果是,本发明的汽车总线虚拟通道的实现方法使得虚拟通道的提供者通过上述方法实现了虚拟通道的多个使用者之间的报文路由和数据收发,从而模拟出报文路由和数据收发在真实网络中的运行机制,实现实时通信,进而实现了实时仿真的需求。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了一些实施例所涉及的汽车总线虚拟通道的实现方法的步骤图;
图2示出了一些实施例所涉及的汽车总线虚拟通道的实现系统的原理框图;
图3示出了一些实施例所涉及的汽车总线虚拟通道的实现系统的原理框图;
图4示出了一些实施例所涉及电子设备的原理框图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了实现在计算机上模拟各类汽车总线的通信过程,为总线工具提供虚拟硬件支持,使得多款不同厂家的总线工具进程之间可以通过虚拟硬件相连,进行实时通信。在相关车用软件开发技术中,通常是通过编写驱动程序,在系统底层控制虚拟总线的数据传输实现多款总线工具进程之间可以通过虚拟硬件相连,进行实时通信。但通过编写驱动程序制虚拟总线的数据传输的方法存在如下问题:
1)驱动程序在需要安装后,需重启电脑才可使用,无法做到打开即用;
2)驱动程序和软件系统紧密绑定,如果在Windows系统上创建了驱动程序实现了虚拟通道,该驱动程序无法在Linux系统中运行,移植性差;
3)驱动程序更新能力差,即驱动程序即使支持了CAN总线、LIN总线的虚拟通道,无法自动升级以支持新的FlexRay总线和以太网的虚拟通道。
因此,至少一个实施例提供了一种汽车总线虚拟通道的实现方法,包括:创建服务端进程作为虚拟通道的提供者,启动后通过UDP协议监听本地计算机的固定端口;创建至少一个客户端进程,每一个客户端进程实例作为一个虚拟通道使用者,启动后分别通过UDP协议监听本地计算机的随机端口;客户端进程向服务端进程发送注册请求数据包,服务端进程成功接收注册请求数据包后反馈成功接收信号至客户端进程,客户端进程接收到反馈后则按特定间隔时间向服务端进程发送心跳包,并等待服务端进程对该心跳包的应答;客户端进程向服务端进程发送汽车总线报文,若发送成功,则服务端进程设置该汽车总线报文的时间戳后发回该客户端进程,并修改汽车总线报文的方向属性为发送,同时将此汽车总线报文发送至其余客户端进程,并修改汽车总线报文的方向属性为接收。
虚拟通道的提供者通过上述方法实现了虚拟通道的多个使用者之间的报文路由和数据收发,从而模拟出报文路由和数据收发在真实网络中的运行机制,实现实时通信,进而实现了实时仿真的需求。
下面结合附图,详细说明本公开的实施例的各种非限制性实施方式。
如图1所示,一些实施例提供了一种汽车总线虚拟通道的实现方法,包括:
步骤S101,创建服务端进程作为虚拟通道的提供者,启动后通过UDP协议监听本地计算机的固定端口;创建至少一个客户端进程,各客户端进程分别作为虚拟通道的使用者,启动后分别通过UDP协议监听本地计算机的随机端口;
步骤S102,客户端进程向服务端进程发送注册请求数据包,服务端进程成功接收注册请求数据包后反馈成功接收信号至客户端进程,客户端进程接收到反馈后则按特定间隔时间向服务端进程发送心跳包,并等待服务端进程对该心跳包的应答;
步骤S103,客户端进程向服务端进程发送汽车总线报文,若发送成功,则服务端进程设置该汽车总线报文的时间戳后发回该客户端进程,并修改汽车总线报文的方向属性为发送,同时将此汽车总线报文发送至其余客户端进程,并修改汽车总线报文的方向属性为接收。
具体的,服务端进程可以提供一个或多个虚拟通道;而每个客户端进程可以使用一个或多个虚拟通道。
以汽车CAN网络通信的虚拟通道实现作为案例详细说明本公开的实施例提供的一种汽车总线虚拟通道的实现方法。
对应一些实施例中的步骤S101:
首先创建一个独立命令行进程“VirtualCANServer.exe”作为CAN总线虚拟通道的服务端进程,即虚拟通道的提供者。该服务端进程启动后,开启自身携带的UDP服务器,监听一个固定端口例如11898。
其次根据使用需求,创建多个独立进程分别作为CAN总线虚拟通道的客户端进程,如动力总成客户端进程、工具客户端进程、车辆模型客户端进程、汽车底盘的客户端进程等。为了便于介绍,本案例突出介绍汽车底盘的客户端进程,具体为:创建一个独立进程“Chassis1.exe”以模拟汽车底盘上的ECU的行为,该进程作为CAN总线虚拟通道的客户端进程,即虚拟通道的使用者。该客户端进程启动后,也开启自身携带的UDP服务器,监听一个随机端口例如50000。
对应一些实施例中的步骤S102:
客户端进程启动成功后,向服务端进程的监听端口11898发送注册请求用UDP数据包。
服务端进程收到该注册请求用UDP数据包后,创建一个客户端进程实例,该客户端进程实例包含客户端进程的UDP监听端口50000以及客户端进程维持心跳的计数器AliveCounter(初始值为最大容忍值,例如10),并将该客户端进程实例添加到按通道分组的数据分发队列中。添加完成后,服务端进程向该客户端进程的监听端口发送注册确认用UDP数据包。
客户端进程接收到来自自身监听端口50000的注册确认用UDP数据包后,设置服务端进程有效标志位,最后以特定间隔时间(例如以一秒一个UDP数据包的发送频率),向服务端进程的监听端口11898发送维持通信用的心跳包。
服务端进程收到客户端进程的心跳包后,将对应客户端进程的维持心跳计数器AliveCounter重置为容忍值,例如10。随后服务端进程向该客户端进程的监听端口50000发送心跳确认用UDP数据包,即服务端进程完成了对该心跳包的应答。
若客户端进程接收到来自自身监听端口50000的心跳确认用UDP数据包后,重置自身的服务器反馈计数器ServerCounter为容忍值。若客户端进程未接收到来自自身监听端口50000的心跳确认用UDP数据包,则将服务器反馈计数器ServerCounter递减1。当该服务器反馈计数器ServerCounter减少至0时,客户端进程报错,显示服务端进程已离线,虚拟通道已断开连接。
对应一些实施例中的步骤S103:
客户端进程在需要发送CAN总线报文时,向服务端进程发送携带CAN总线报文的数据收发用数据包,数据收发用数据包通过压缩和加密方式实现编码,数据收发用数据包包含CAN总线报文的通道索引、Id、数据长度、数据字节等属性;当服务端进程成功收到该CAN总线报文时,首先对其进行解码,并解析该CAN总线报文携带的通道索引,以决定将该CAN总线报文路由至哪个虚拟通道。随后服务端进程修改该CAN总线报文携带的时间戳为收到该CAN总线报文后服务端进程主动获取的时间戳。
接下来进入了数据分发环节,服务端进程首先将该CAN总线报文的方向改为发送,并将其发送至汽车底盘的客户端进程。该客户端进程接收到来自自身监听端口50000的CAN总线报文后,首先对其进行解码,得到了带着最新时间戳的CAN总线报文,该客户端进程由此得知其所发出的CAN总线报文在什么时间被其他客户端进程应答。
服务端进程随后将CAN总线报文的方向改为接收,并通过对应虚拟通道的数据分发队列将该CAN总线报文分发至所有对应的客户端进程。客户端进程接收到来自自身监听端口50000的CAN总线报文后,首先对其进行解码,得到了带着最新时间戳的CAN总线报文,即客户端进程由此得知其所模拟的ECU在什么时刻收到了来自其他客户端进程模拟的ECU发送的CAN总线报文。
在一些实施例中,创建服务端进程的方法包括:
所述服务端进程程序启动后尝试创建一个以该程序名称命名的互斥量,如果该互斥量已存在,则创建失败,退出进程程序,否则创建成功,进程程序运行,并在进程程序结束时释放该互斥量;
程序启动后监听本地计算机的固定端口,若监听失败,则退出进程程序并释放互斥量。
以Windows端独立的CAN总线虚拟通道的提供者的服务端进程程序“VirtualCANServer.exe”为例详细说明创建服务端进程的方法:
服务端进程程序“VirtualCANServer.exe”启动后调用软件系统提供的互斥量API函数“CreateMutex”,以该服务端进程程序的名称“VirtualCANServer”为互斥量名称创建互斥量,随后通过GetLastError函数获取错误码,如果错误码等于系统常量“ERROR_ALREADY_EXISTS”则意味着互斥量存在,创建失败,服务端进程程序退出。否则服务端进程程序进入正常工作状态。
服务端进程程序进入正常工作状态后,首先开启UDP监控端口11898,若开启失败,说明该监控端口被占用,服务端进程报错退出。
在正常情况或非正常情况下的服务端进程退出时,如果互斥量已被创建,则调用API函数“ReleaseMutex”以释放所创建的互斥量。
在一些实施例中,创建至少一个客户端进程的方法包括:
各客户端进程程序启动后尝试监听本地计算机的任一随机端口,若监听失败,则尝试监听本地计算机的另一个随机端口,直至监听成功。
以Windows端的CAN总线虚拟通道的使用者的客户端进程程序“Chassis1.exe”为例详细说明创建至少一个客户端进程的方法:
客户端进程程序“Chassis1.exe”在启动后,开启自身携带的UDP服务器,监听一个随机端口例如50000。如果监听失败,则再生成一个随机端口例如32768,并继续尝试监听该端口,直至监听成功,假设监听成功的端口为12345,客户端进程程序进入正常运行状态,并保持监听该端口。
在一些实施例中,所述注册请求数据包包括:客户端进程监听的随机端口号;以及所述心跳包包括:客户端进程监听的随机端口号。
在一些实施例中,客户端进程启动成功后,向服务端进程的11898端口发送注册请求用UDP数据包,该注册请求用UDP数据包中携带本客户端进程的UDP监听端口,例如50000。
客户端进程向服务端进程注册成功后,向服务端进程的11898端口发送维持心跳用UDP数据包,该维持心跳用UDP数据包中携带本客户端进程的UDP监听端口,例如50000。
在一些实施例中,服务端进程设置汽车总线报文的时间戳,包括:
服务端进程启动后读取当前系统性能计数器值并存入变量T1;
服务端进程收到客户端进程发送的汽车总线报文后,再次读取当前系统性能计数器并存入变量T2;
则时间戳T=(T2-T1)/F,其中F为系统性能计数器的频率。
服务端进程处理总线报文需要设置时间戳。在Windows平台中,服务端进程在启动时,通过调用QueryPerformanceFrequency系统API函数,获取系统性能计数器的频率,并存入变量F中。再通过调用QueryPerformanceCounter系统API函数,获取当前系统的性能计数器值,并存入变量T1中。
当服务端进程获取到客户端进程发送的报文时,会调用
QueryPerformanceCounter系统API函数,得到当前系统的性能计数器值,并存入变量T2中。则该条报文的时间戳T=(T2–T1)/F。对于CAN总线,客户端进程发送的报文一旦在总线上被成功应答,该报文的时间戳就已被确定,所有接收到该报文的ECU都获得了相同的时间戳。
如图2所示,一些实施例还提供了一种汽车总线虚拟通道的实现系统,包括计算机装置,所述计算机装置被配置为执行客户端进程和服务端进程;其中
客户端进程,作为虚拟通道的使用者,被配置为向服务端进程发送注册请求数据包、按特定间隔时间向服务端进程发送心跳包和向服务端进程发送汽车总线报文;
服务端进程,作为虚拟通道的提供者,被配置为接收客户端进程发送的注册请求数据包、心跳包和汽车总线报文,以及设置汽车总线报文的时间戳后发回该客户端进程,并修改汽车总线报文的方向属性为发送,同时将此汽车总线报文发送至其余客户端进程,并修改汽车总线报文的方向属性为接收。
如图3所示,一些实施例还提供了一种汽车总线虚拟通道的实现系统,包括计算机装置,所述计算机装置被配置为执行进程创建模块、客户端进程和服务端进程;其中
进程创建模块,被配置为创建服务端进程和至少一个客户端进程;
客户端进程,作为虚拟通道的使用者,被配置为向服务端进程发送注册请求数据包、按特定间隔时间向服务端进程发送心跳包和向服务端进程发送汽车总线报文;
服务端进程,作为虚拟通道的提供者,被配置为接收客户端进程发送的注册请求数据包、心跳包和汽车总线报文,以及设置汽车总线报文的时间戳后发回该客户端进程,并修改汽车总线报文的方向属性为发送,同时将此汽车总线报文发送至其余客户端进程,并修改汽车总线报文的方向属性为接收。
其中,关于进程创建模块、客户端进程、服务端进程具体实施功能在计算机装置中进行实现,具体可以考前述汽车总线虚拟通道的实现方法的内容,此处不在赘述。
下面从硬件处理的角度对本公开的实施例中的电子设备进行描述:
本公开的实施例并不对电子设备的具体实现做限定。
如图3所示,一些实施例还提供了一种电子设备,包括:至少一个存储指令的存储器;至少一个处理器,其执行所述指令以使得处理器执行以下操作:创建服务端进程作为虚拟通道的提供者,启动后监听本地计算机的固定端口;创建至少一个客户端进程,各客户端进程分别作为虚拟通道的使用者,启动后分别监听本地计算机的随机端口;客户端进程向服务端进程发送注册请求数据包,服务端进程成功接收注册请求数据包后反馈成功接收信号至客户端进程,客户端进程接收到反馈后则按特定间隔时间向服务端进程发送心跳包,并等待服务端进程对该心跳包的应答;客户端进程向服务端进程发送汽车总线报文,若发送成功,则服务端进程设置该汽车总线报文的时间戳后发回该客户端进程,并修改汽车总线报文的方向属性为发送,同时将此汽车总线报文发送至其余客户端进程,并修改汽车总线报文的方向属性为接收。
在一些实施例中,创建服务端进程的方法包括:所述服务端进程程序启动后尝试创建一个以该程序名称命名的互斥量,如果该互斥量已存在,则创建失败,退出进程程序,否则创建成功,进程程序运行,并在进程程序结束时释放该互斥量;程序启动后监听本地计算机的固定端口,若监听失败,则退出进程程序并释放互斥量。
在一些实施例中,创建至少一个客户端进程的方法包括:所述至少一个客户端进程程序启动后尝试监听本地计算机的任一随机端口,若监听失败,则尝试监听本地计算机的另一个随机端口,直至监听成功。
在一些实施例中,所述注册请求数据包包括:客户端进程监听的随机端口号;以及所述心跳包包括:客户端进程监听的随机端口号。
在一些实施例中,服务端进程设置汽车总线报文的时间戳,包括:服务端进程启动后读取当前系统性能计数器值并存入变量T1;服务端进程收到客户端进程发送的汽车总线报文后,再次读取当前系统性能计数器并存入变量T2;则时间戳T=(T2-T1)/F,其中F为系统性能计数器的频率。
在一些实施例中,计算机装置、工控机也可以作为电子设备的一种。
图3示出的结构并不构成对电子设备的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
在一些实施例中,通信接口可以是RS232、RS485、USB口和TYPE口等,可以与外部总线适配器连接的通信接口。还可以包括有线或无线网络接口,网络接口可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该计算机装置与其他电子设备之间建立通信连接。
其中,可读存储介质或者计算机可读存储介质至少包括一种类型的存储器,存储器包括闪存、硬盘、多媒体卡、卡型存储器(例如SD存储器等)、磁性存储器、磁盘、光盘等。在一些实施例中可以是计算机装置的内部存储单元,例如该计算机装置的硬盘。存储器在另一些实施例中也可以是计算机装置的外部存储设备,例如计算机装置上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器还可以既包括计算机装置的内部存储单元也包括外部存储设备。存储器不仅可以用于存储安装于计算机装置的应用软件及各类数据,例如计算机程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器中存储的程序代码或处理数据,例如执行计算机程序等。
在一些实施例中,通讯总线也可以是输入输出总线,其可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(EnhancedIndustry Standard Architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。
可选地,计算机装置还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的,用户接口还可以包括标准的有线接口、无线接口。可选的,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在计算机装置中处理的信息以及用于显示可视化的用户界面。
所述处理器执行所述程序时实现上述图1所示的汽车总线虚拟通道的实现方法实施例中的步骤,例如图1所示的步骤S101至S103。或者,处理器执行计算机程序时实现上述各装置实施例中各模块或单元的功能。
一些实施例中,处理器具体用于实现如下步骤:
创建服务端进程作为虚拟通道的提供者,启动后通过UDP协议监听本地计算机的固定端口;
创建至少一个客户端进程,各客户端进程分别作为虚拟通道的使用者,启动后分别通过UDP协议监听本地计算机的随机端口;
客户端进程向服务端进程发送注册请求数据包,服务端进程成功接收注册请求数据包后反馈成功接收信号至客户端进程,客户端进程接收到反馈后则按特定间隔时间向服务端进程发送心跳包,并等待服务端进程对该心跳包的应答;
客户端进程向服务端进程发送汽车总线报文,若发送成功,则服务端进程设置该汽车总线报文的时间戳后发回该客户端进程,并修改汽车总线报文的方向属性为发送,同时将此汽车总线报文发送至其余客户端进程,并修改汽车总线报文的方向属性为接收。
可选的,作为一种可能的实施方式,处理器还可以用于实现如下步骤:
创建服务端进程的方法包括:
所述服务端进程程序启动后尝试创建一个以该程序名称命名的互斥量,如果该互斥量已存在,则创建失败,退出进程程序,否则创建成功,进程程序运行,并在进程程序结束时释放该互斥量;
程序启动后监听本地计算机的固定端口,若监听失败,则退出进程程序并释放互斥量。
可选的,作为一种可能的实施方式,处理器还可以用于实现如下步骤:
创建至少一个客户端进程的方法包括:
各客户端进程程序启动后尝试监听本地计算机的任一随机端口,若监听失败,则尝试监听本地计算机的另一个随机端口,直至监听成功。
可选的,作为一种可能的实施方式,处理器还可以用于实现如下步骤:
所述注册请求数据包包括:客户端进程监听的随机端口号;以及
所述心跳包包括:客户端进程监听的随机端口号。
可选的,作为一种可能的实施方式,处理器还可以用于实现如下步骤:
服务端进程设置汽车总线报文的时间戳,包括:
服务端进程启动后读取当前系统性能计数器值并存入变量T1;
服务端进程收到客户端进程发送的汽车总线报文后,再次读取当前系统性能计数器并存入变量T2;
则时间戳T=(T2-T1)/F,其中F为系统性能计数器的频率。
一些实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有汽车总线虚拟通道的实现方法的程序,该程序被处理器执行时,可以实现汽车总线虚拟通道的实现方法的具体步骤,请参见汽车总线虚拟通道的实现方法的具体描述,此处不再赘述。
一些实施例还提供了一种计算机程序产品,包括计算机程序或指令,其中在计算机上执行所述计算机程序或指令时,使得计算机能够执行上述任一种可能的汽车总线虚拟通道的实现方法。
在一些实施例的车用开发调试系统中,关于汽车总线虚拟通道的实现方法的具体方法与前述汽车总线虚拟通道的实现方法相同,此处不再赘述。
在一些实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。
Claims (10)
1.一种汽车总线虚拟通道的实现方法,其特征在于,包括:
创建服务端进程作为虚拟通道的提供者,启动后监听本地计算机的固定端口;
创建至少一个客户端进程,各客户端进程分别作为虚拟通道的使用者,启动后分别监听本地计算机的随机端口;
客户端进程向服务端进程发送注册请求数据包,服务端进程成功接收注册请求数据包后反馈成功接收信号至客户端进程,客户端进程接收到反馈后则按特定间隔时间向服务端进程发送心跳包,并等待服务端进程对该心跳包的应答;
客户端进程向服务端进程发送汽车总线报文,若发送成功,则服务端进程设置该汽车总线报文的时间戳后发回该客户端进程,并修改汽车总线报文的方向属性为发送,同时将此汽车总线报文发送至其余客户端进程,并修改汽车总线报文的方向属性为接收。
2.根据权利要求1所述的汽车总线虚拟通道的实现方法,其特征在于,
创建服务端进程的方法包括:
所述服务端进程程序启动后尝试创建一个以该程序名称命名的互斥量,如果该互斥量已存在,则创建失败,退出进程程序,否则创建成功,进程程序运行,并在进程程序结束时释放该互斥量;
程序启动后监听本地计算机的固定端口,若监听失败,则退出进程程序并释放互斥量。
3.根据权利要求1所述的汽车总线虚拟通道的实现方法,其特征在于,
创建至少一个客户端进程的方法包括:
各客户端进程程序启动后分别尝试监听本地计算机的任一随机端口,若监听失败,则尝试监听本地计算机的另一个随机端口,直至监听成功。
4.根据权利要求3所述的汽车总线虚拟通道的实现方法,其特征在于,
所述注册请求数据包包括:客户端进程监听的随机端口号;以及
所述心跳包包括:客户端进程监听的随机端口号。
5.根据权利要求1所述的汽车总线虚拟通道的实现方法,其特征在于,
服务端进程设置汽车总线报文的时间戳,包括:
服务端进程启动后读取当前系统性能计数器值并存入变量T1;
服务端进程收到客户端进程发送的汽车总线报文后,再次读取当前系统性能计数器并存入变量T2;
则时间戳T=(T2-T1)/F,其中F为系统性能计数器的频率。
6.根据权利要求1所述的汽车总线虚拟通道的实现方法,其特征在于,
所述服务端进程在启动后,通过UDP协议或者TCP协议监听本地计算机的固定端口;以及
各客户端进程在启动后,通过UDP协议或者TCP协议分别监听本地计算机的随机端口。
7.一种计算机可读存储介质,其特征在于,存储有计算机可读指令,当其由至少一个处理器执行时,使得如权利要求1所述的汽车总线虚拟通道的实现方法的程序被执行。
8.一种电子设备,包括:
至少一个存储指令的存储器;
至少一个处理器,其执行所述指令以使得处理器执行以下操作:
创建服务端进程作为虚拟通道的提供者,启动后监听本地计算机的固定端口;
创建至少一个客户端进程,各客户端进程分别作为虚拟通道的使用者,启动后分别监听本地计算机的随机端口;
客户端进程向服务端进程发送注册请求数据包,服务端进程成功接收注册请求数据包后反馈成功接收信号至客户端进程,客户端进程接收到反馈后则按特定间隔时间向服务端进程发送心跳包,并等待服务端进程对该心跳包的应答;
客户端进程向服务端进程发送汽车总线报文,若发送成功,则服务端进程设置该汽车总线报文的时间戳后发回该客户端进程,并修改汽车总线报文的方向属性为发送,同时将此汽车总线报文发送至其余客户端进程,并修改汽车总线报文的方向属性为接收。
创建服务端进程的方法包括:
所述服务端进程程序启动后尝试创建一个以该程序名称命名的互斥量,如果该互斥量已存在,则创建失败,退出进程程序,否则创建成功,进程程序运行,并在进程程序结束时释放该互斥量;
程序启动后监听本地计算机的固定端口,若监听失败,则退出进程程序并释放互斥量。
创建至少一个客户端进程的方法包括:
所述至少一个客户端进程程序启动后尝试监听本地计算机的任一随机端口,若监听失败,则尝试监听本地计算机的另一个随机端口,直至监听成功。
所述注册请求数据包包括:客户端进程监听的随机端口号;以及
所述心跳包包括:客户端进程监听的随机端口号。
服务端进程设置汽车总线报文的时间戳,包括:
服务端进程启动后读取当前系统性能计数器值并存入变量T1;
服务端进程收到客户端进程发送的汽车总线报文后,再次读取当前系统性能计数器并存入变量T2;
则时间戳T=(T2-T1)/F,其中F为系统性能计数器的频率。
9.一种汽车总线虚拟通道的实现系统,其特征在于,包括:计算机装置,所述计算机装置被配置为执行客户端进程和服务端进程;其中
客户端进程,被配置为向服务端进程发送注册请求数据包、按特定间隔时间向服务端进程发送心跳包和向服务端进程发送汽车总线报文;
服务端进程,被配置为接收客户端进程发送的注册请求数据包、心跳包和汽车总线报文,以及设置汽车总线报文的时间戳后发回该客户端进程,并修改汽车总线报文的方向属性为发送,同时将此汽车总线报文发送至其余客户端进程,并修改汽车总线报文的方向属性为接收。
所述计算机装置还被配置为创建服务端进程,包括:
所述服务端进程程序启动后尝试创建一个以该程序名称命名的互斥量,如果该互斥量已存在,则创建失败,退出进程程序,否则创建成功,进程程序运行,并在进程程序结束时释放该互斥量;
程序启动后监听本地计算机的固定端口,若监听失败,则退出进程程序并释放互斥量。
所述计算机装置还被配置为创建至少一个客户端进程,包括:
各客户端进程程序启动后尝试监听本地计算机的任一随机端口,若监听失败,则尝试监听本地计算机的另一个随机端口,直至监听成功。
所述注册请求数据包包括:客户端进程监听的随机端口号;以及
所述心跳包包括:客户端进程监听的随机端口号。
服务端进程设置汽车总线报文的时间戳,包括:
服务端进程启动后读取当前系统性能计数器值并存入变量T1;
服务端进程收到客户端进程发送的汽车总线报文后,再次读取当前系统性能计数器并存入变量T2;
则时间戳T=(T2-T1)/F,其中F为系统性能计数器的频率。
服务端进程在启动后,通过UDP协议或者TCP协议监听本地计算机的固定端口;以及
各客户端进程在启动后,通过UDP协议或者TCP协议分别监听本地计算机的随机端口。
10.一种计算机程序产品,包括计算机程序或指令,其中在计算机上执行所述计算机程序或指令时,使得计算机能够执行如权利要求1-6任一项所述的汽车总线虚拟通道的实现方法的操作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202318380187A | 2023-10-15 | 2023-10-15 | |
US18/380,187 | 2023-10-15 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117319224A true CN117319224A (zh) | 2023-12-29 |
Family
ID=89281151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311402885.3A Pending CN117319224A (zh) | 2023-10-15 | 2023-10-26 | 汽车总线虚拟通道的实现方法及实现系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117319224A (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050228930A1 (en) * | 2004-04-09 | 2005-10-13 | Broadcom Corporation | Programmable inter-virtual channel and intra-virtual channel instructions issuing rules for an I/O bus of a system-on-a-chip processor |
US20070150594A1 (en) * | 2005-12-22 | 2007-06-28 | International Business Machines Corporation | System, method, and program product for providing local load balancing for high-availability servers |
CN102999375A (zh) * | 2011-09-19 | 2013-03-27 | 腾讯科技(深圳)有限公司 | 防止应用程序运行多个实例的方法、装置及信息处理系统 |
CN105847332A (zh) * | 2016-03-17 | 2016-08-10 | 汉柏科技有限公司 | 桌面虚拟化方法、客户端设备和服务端设备 |
CN106657053A (zh) * | 2016-12-19 | 2017-05-10 | 中国人民解放军国防信息学院 | 一种基于端状态迁移的网络安全防御方法 |
CN106686091A (zh) * | 2016-12-30 | 2017-05-17 | 广州尚融网络科技有限公司 | 一种虚拟通道控制方法及系统 |
WO2017162054A1 (zh) * | 2016-03-23 | 2017-09-28 | 中兴通讯股份有限公司 | 一种虚拟化环境下自动部署应用程序的方法及装置 |
CN110022267A (zh) * | 2018-01-09 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 网络数据包处理方法及装置 |
CN112751870A (zh) * | 2020-12-30 | 2021-05-04 | 湖南麒麟信安科技股份有限公司 | 一种基于代理转发的nfs安全传输装置及方法 |
CN115695067A (zh) * | 2021-07-27 | 2023-02-03 | 伟巴斯特车顶供暖系统(上海)有限公司 | 用于车辆总线的通信方法和装置 |
CN116708070A (zh) * | 2023-05-29 | 2023-09-05 | 深蓝汽车科技有限公司 | 基于域控制器的can报文存储方法、装置、设备及存储介质 |
-
2023
- 2023-10-26 CN CN202311402885.3A patent/CN117319224A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050228930A1 (en) * | 2004-04-09 | 2005-10-13 | Broadcom Corporation | Programmable inter-virtual channel and intra-virtual channel instructions issuing rules for an I/O bus of a system-on-a-chip processor |
US20070150594A1 (en) * | 2005-12-22 | 2007-06-28 | International Business Machines Corporation | System, method, and program product for providing local load balancing for high-availability servers |
CN102999375A (zh) * | 2011-09-19 | 2013-03-27 | 腾讯科技(深圳)有限公司 | 防止应用程序运行多个实例的方法、装置及信息处理系统 |
CN105847332A (zh) * | 2016-03-17 | 2016-08-10 | 汉柏科技有限公司 | 桌面虚拟化方法、客户端设备和服务端设备 |
WO2017162054A1 (zh) * | 2016-03-23 | 2017-09-28 | 中兴通讯股份有限公司 | 一种虚拟化环境下自动部署应用程序的方法及装置 |
CN106657053A (zh) * | 2016-12-19 | 2017-05-10 | 中国人民解放军国防信息学院 | 一种基于端状态迁移的网络安全防御方法 |
CN106686091A (zh) * | 2016-12-30 | 2017-05-17 | 广州尚融网络科技有限公司 | 一种虚拟通道控制方法及系统 |
CN110022267A (zh) * | 2018-01-09 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 网络数据包处理方法及装置 |
CN112751870A (zh) * | 2020-12-30 | 2021-05-04 | 湖南麒麟信安科技股份有限公司 | 一种基于代理转发的nfs安全传输装置及方法 |
CN115695067A (zh) * | 2021-07-27 | 2023-02-03 | 伟巴斯特车顶供暖系统(上海)有限公司 | 用于车辆总线的通信方法和装置 |
CN116708070A (zh) * | 2023-05-29 | 2023-09-05 | 深蓝汽车科技有限公司 | 基于域控制器的can报文存储方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210357276A1 (en) | System, method and computer program product for sharing information in a distributed framework | |
CN111399884A (zh) | 一种车辆组件的升级方法、装置及电子设备 | |
US8762544B2 (en) | Selectively communicating data of a peripheral device to plural sending computers | |
JP2012093899A (ja) | 計算機システム、シミュレーション方法、及びプログラム | |
CN111796577A (zh) | 一种数据指令处理方法、装置、车辆及存储介质 | |
CN114064091A (zh) | Ota升级控制方法、装置、电子设备及自动驾驶车辆 | |
CN108845946B (zh) | 一种终端、调试系统以及终端调试方法 | |
WO2014000299A1 (zh) | 串口重定向处理方法、设备和系统 | |
CN117319224A (zh) | 汽车总线虚拟通道的实现方法及实现系统 | |
CN108055186B (zh) | 一种主从处理器通信方法及装置 | |
CN113254062B (zh) | 一种bmc参数配置及生效的方法、装置、设备和介质 | |
CN107766066B (zh) | 一种更新从属模块固件的方法 | |
CN113867145A (zh) | 一种应用控制方法、装置、电子设备及存储介质 | |
CN112764995A (zh) | 一种服务器硬件资源监控方法、装置和介质 | |
CN112910910A (zh) | Opcda协议报文处理方法、装置、设备以及存储介质 | |
US20230215226A1 (en) | Method for vehicle diagnostics, diagnostic connector, and diagnostic device | |
CN108108243B (zh) | 一种资源分享系统和方法 | |
KR20240009766A (ko) | 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 네트워크 가상화 장치 및 방법 | |
WO2020129531A1 (ja) | 車両用電子制御装置、異常信号生成方法、異常信号生成プログラム | |
CN116521593A (zh) | 基板管理控制器的通信方法、系统及相关设备 | |
CN115203165A (zh) | 区块链管理方法、装置、服务器及介质 | |
CN117453412A (zh) | 自动化任务数据归档方法、装置、设备及存储介质 | |
CN117596143A (zh) | 一种计算与网络集成的实时虚拟化架构及平台 | |
CN115729552A (zh) | 算子级别的并行度的设置方法及其装置 | |
CN111600928A (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 |