CN116711279A - 用于多个虚拟ecu的模拟和测试的***和方法 - Google Patents
用于多个虚拟ecu的模拟和测试的***和方法 Download PDFInfo
- Publication number
- CN116711279A CN116711279A CN202080103529.XA CN202080103529A CN116711279A CN 116711279 A CN116711279 A CN 116711279A CN 202080103529 A CN202080103529 A CN 202080103529A CN 116711279 A CN116711279 A CN 116711279A
- Authority
- CN
- China
- Prior art keywords
- vecu
- computer systems
- virtual
- protocol
- field
- 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 59
- 238000004088 simulation Methods 0.000 title abstract description 40
- 238000012360 testing method Methods 0.000 title abstract description 15
- 238000004891 communication Methods 0.000 claims abstract description 48
- 230000008569 process Effects 0.000 description 19
- 230000001360 synchronised effect Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000003860 storage Methods 0.000 description 8
- 238000013500 data storage Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 239000000284 extract Substances 0.000 description 4
- 239000000969 carrier Substances 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012369 In process control Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 210000004544 dc2 Anatomy 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004190 ion pair chromatography Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000009885 systemic effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012795 verification Methods 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
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/20—Arrangements for monitoring or testing data switching networks the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
-
- 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
- H04L12/40006—Architecture of a communication node
- H04L12/40019—Details regarding a bus master
-
- 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
- H04L12/40006—Architecture of a communication node
- H04L12/40032—Details regarding a bus interface enhancer
-
- 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
- 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
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0817—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
-
- 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/22—Parsing or analysis of headers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- 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)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
Abstract
用于多个虚拟电子控制单元(VECU)的模拟和测试的***和方法。方法(1000)包括由一个或多个计算机***(101)执行第一VECU(502)。该方法包括执行虚拟总线(510),该虚拟总线(510)与第一VECU(502)相关联。该方法包括执行至少一个第二VECU。该方法包括通过使用虚拟总线(510)管理第一VECU(502)和所述至少一个第二VECU之间的通信来模拟多VECU***。
Description
技术领域
所公开技术针对用于虚拟控制器和设备的模拟和测试的技术,包括虚拟控制器之间的通信。所公开技术的各个实施方式对于多个虚拟汽车电子控制单元的模拟和测试是特别有用的。
背景技术
汽车电子控制单元(ECU)是指控制车辆中的一个或多个电气***或子***的汽车电子设备中的任何嵌入式***。ECU的类型包括发动机控制模块、动力系控制模块、变速器控制模块、制动控制模块、中央控制模块、中央定时模块、通用电子模块、车身控制模块、悬架控制模块、以及其它控制器、控制单元或控制模块。总之,这些***有时被称为汽车的计算机。有时,一个组件结合有若干单独的控制模块。
一些现代机动车辆具有多达200个ECU。ECU中的嵌入式软件在行计数、复杂性、和精密性方面持续增长。管理车辆中ECU的日益增加的复杂性和数量已经成为对原始设备制造商(OEM)的关键挑战。为此,使用虚拟ECU(VECU)来模拟各个ECU的操作,而不需要实际制造和编程每个版本的ECU。需要改进的用于模拟和测试ECU的***。
发明内容
各个所公开实施例包括由一个或多个计算机***执行的方法。一种方法包括由一个或多个计算机***执行第一虚拟电子控制单元(VECU)。所述方法包括由一个或多个计算机***执行虚拟总线,该虚拟总线与第一VECU相关联。该方法包括由一个或多个计算机***执行至少一个第二VECU。该方法包括由一个或多个计算机***通过使用虚拟总线管理第一VECU和所述至少一个第二VECU之间的通信来模拟多VECU***。
在各个实施例中,第一VECU和所述至少一个第二VECU一起表示汽车控制***的一部分。在各个实施例中,虚拟总线使用协议管理器转换来自第一VECU的第一协议中的通信,并且使用进程间通信(IPC)信道将通信传输到所述至少一个第二VECU。在各个实施例中,通信是在IPC信道上的载波中传输的,该载波具有导频字段、先进先出(FIFO)字段、和确认(ACK)字段。在各个实施例中,导频字段包括标识符字段、定义FIFO字段的帧类型和大小的帧定义字段、以及标识FIFO字段的协议类型的协议字段,并且其中协议类型对应于第一协议。各个实施例包括:使用虚拟总线来同步对第一VECU和至少一个第二VECU的执行。在各个实施例中,第一VECU被指定为主VECU,并且同步执行包括将同步消息从第一VECU发送到第二VECU,使第二VECU提前预定的虚拟模拟时间执行。在各个实施例中,第一VECU被指定为主VECU,并且同步执行包括将同步消息从第一VECU发送到第二VECU,使第二VECU提前预定的虚拟模拟时间执行,并且在从第二VECU接收到确认消息之前,不提前执行第一VECU。各个实施例包括:由虚拟总线在由第一VECU发送的消息和由第三VECU发送的消息之间进行仲裁(arbitrate)。
所公开实施例包括计算机***,每个计算机***具有处理器和可访问存储器,其被配置来一起执行本文所公开的过程。所公开实施例包括存储有可执行指令的非暂时性计算机可读介质,所述可执行指令在被执行时使一个或多个计算机***执行如本文所公开的过程。
前面已经相当宽泛地概述了本公开的特征和技术优点,使得本领域技术人员可以更好地理解下面的详细描述。下文将描述形成权利要求主题的本公开的其它特征和优点。所属领域的技术人员将了解,其可以轻易使用所公开的概念和特定实施例作为修改或设计用于实施本发明的相同目的的其它结构的基础。本领域的技术人员还将认识到,这种等效结构不会偏离本公开的最宽泛形式的精神和范围。
在描述以下具体实施方式之前,阐述在本专利文件中使用的某些词语或短语的定义将是有利的:术语“包括”和“包含”以及其派生词意为包括但不限于;术语“或”是包容性的,意为和/或;短语“与…相关联”和“与其相关联”以及其派生词可以意为包括、被包括在内、与…互连、包含、被包含在内、连接到或与…连接、耦合到或与…耦合、可与…通信、与…协作、交错、并列、邻近、被绑定到或与…绑定、具有、具有…的性质等;并且术语“控制器”意为控制至少一个操作的任何设备、***或其部分,而无论这种设备是以硬件、固件、软件或其中至少两者的组合来实施的。应当注意,与任何特定控制器相关联的功能可以是集中式的或分布式的,而无论是本地的还是远程的。在本专利文件中提供了对某些词语和短语的定义,并且本领域普通技术人员将理解,这些定义在许多(如果不是大多数)实例中应用于这种定义的词语和短语的先前以及将来形式的使用。虽然一些术语可包括多种实施例,但所附权利要求可以将这些术语明确地限于特定实施例。
附图说明
为了更完整地理解本公开及其优点,现在结合附图参考以下描述,其中相同的数字表示相同的对象,并且其中:
图1和图2示出了可用于实施所公开技术的各个实施例的计算机***的组件;
图3示出了根据所公开实施例的VECU模拟***的示例;
图4(以图4A和图4B示出)示出了根据所公开实施例的虚拟通信总线架构和相关联的数据结构的示例;
图5示出了根据所公开实施例的以服务器同步模式操作的VECU模拟***的示例;
图6示出了根据所公开实施例的以服务器-客户端同步模式操作的VECU模拟***的示例;
图7示出了根据所公开实施例的虚拟总线上的仲裁的示例;
图8(以图8A和图8B示出)示出了根据所公开实施例的与其他***集成的VECU模拟***;
图9示出了根据所公开实施例的虚拟总线的架构;以及
图10示出了根据所公开实施例的过程。
具体实施方式
在本专利文件中,下面讨论的附图以及用于描述本公开原理的各个实施例仅仅是示例性的,而不应以任何方式解释为限制公开的范围。本领域技术人员将理解,可以在任何适当布置的设备中实施当前公开的原理。将参考示例性非限制性的实施例来描述本申请的多种创新教导。
总体考虑
当前公开技术的各个方面涉及多VECU的模拟和测试,特别是用于汽车应用,以及各个元件之间的通信。在以下描述中,出于解释的目的阐述了许多细节。然而,本领域的普通技术人员将认识到,可以在不使用这些具体细节的情况下实践所公开技术。在其它情况下,没有详细描述已知的特征以避免混淆当前公开的技术。
可以以存储在计算机可读介质上的软件指令、在计算机上执行的软件指令、或这两者的某种组合来实施本文描述的一些技术。例如,所公开的一些技术可以实施为电子设计自动化(EDA)工具的一部分。可以在单个计算机上或在联网的计算机上执行这些方法。
尽管为了方便呈现,以特定的顺序描述了所公开方法的操作,但是应当理解,这种描述方式包括重新排列,除非下面阐述的特定语言需要特定的顺序。例如,在某些情况下,按顺序描述的操作可以被重新排列或同时执行。此外,为了简化起见,所公开的流程图和框图通常未示出可以结合其他方法所使用的特定方法的各种方式。另外,详细描述有时使用诸如“执行”、“划分”和“提取”等术语来描述所公开的方法。这些术语是所执行的实际操作的高层级描述。对应于这些术语的实际操作将根据特定的实施方式而变化,并且本领域普通技术人员可以容易地辨别。
示例性操作环境
可使用由一个或多个可编程计算设备执行的计算机可执行软件指令来实施本文所述的各个过程的执行。由于可以使用软件指令来实施这些过程,因此将首先描述其上可以采用这些过程的各个实施例的通用可编程计算机***的组件和操作。此外,由于一些电子设计和测试过程的复杂性以及许多电路设计的大尺寸,因此各种电子设计和测试工具被配置成在能够同时运行多处理线程的计算***上操作。因此,将参考图1来描述具有主机或主计算机以及一个或多个远程计算机或从计算机的计算机***的组件和操作。然而,该操作环境仅是适当操作环境的一个示例,而并不旨在对本发明的任何实施方式的应用范围或功能提出任何限制。
在图1中,计算机***101包括主计算机103。在所示示例中,主计算机103是包括多个输入和输出设备105和存储器107的多处理器计算机。输入和输出设备105可以包括用于从用户接收输入数据或向用户提供输出数据的任何设备。输入设备可以包括例如从用户接收输入的键盘、麦克风、扫描仪或指点设备。然后,输出设备可以包括显示监视器、扬声器、打印机或触觉反馈设备。这些设备及其连接在本领域中是已知的,因此本文将不再详细讨论。
可以使用计算机可读介质(其可由主计算机103访问)的任何组合来类似地实施存储器107。计算机可读介质可以包括例如微电路存储器设备,诸如读写存储器(RAM)、只读存储器(ROM)、电可擦可编程只读存储器(EEPROM)或闪存微电路设备、CD-ROM盘、数字视频盘(DVD)、或其它光学存储设备。计算机可读介质还可以包括磁带盒、磁带、磁盘或其它磁存储设备、穿孔介质、全息存储设备、或可以用于存储所需信息的任何其它非暂时性存储介质。如本文所使用的,术语“非暂时性”是指存储信息以供随后在所需时间检索的能力,而不是传播电磁信号。
如将在下面详细讨论的,主计算机103运行软件应用以用于执行根据本发明的各个示例的一个或多个操作。因此,存储器107存储软件指令109A,该软件指令109A在被执行时将实施用于执行一个或多个操作的软件应用。存储器107还存储将与软件应用一起使用的数据109B。在所示实施例中,数据109B包含软件应用用来执行操作的处理数据,其中至少一些操作可以是并行的。
主计算机103还包括接口设备113和多个处理器单元111。处理器单元111可以是将被编程以执行软件指令109A的任何类型的处理器设备,但通常可以是微处理器设备。例如,处理器单元111中的一者或多者可以是商业上通用的可编程微处理器,例如或XeonTM微处理器、Advanced Micro Devices的AthlonTM微处理器、或Motorola的68K//>微处理器。可替代地或附加地,处理器单元111中的一者或多者可以是定制的处理器,例如被设计为优化地执行特定类型的数学运算的微处理器。接口设备113、处理器单元111、存储器107和输入/输出设备105通过总线115连接在一起。
根据本发明的一些实施方式,主计算机103可以采用具有多于一个处理器核心的一个或多个处理单元111。因此,图2示出了可以与本发明的各个实施例一起采用的多核处理器单元111的示例。如该图中所示,处理器单元111包括多个处理器核心201。每个处理器核心201包括计算引擎203和存储器高速缓存205。如本领域普通技术人员已知的,计算引擎包含逻辑设备,用于执行各种计算功能(例如获取软件指令)并随后执行在所获取的指令中指定的动作。这些动作可以包括,例如加、减、乘、和比较数字、执行逻辑运算(例如AND、OR、NOR和XOR)、以及检索数据。然后,每个计算引擎203可以使用其对应的存储器高速缓存205来快速存储和检索数据和/或用于执行的指令。
每个处理器核心201连接到互连207。互连207的特定结构可以根据处理器单元201的架构而变化。利用一些处理器核心201,例如由Sony公司、Toshiba公司、和IBM公司创建的Cell微处理器,互连207可以实现为互连总线。然而,对于其它处理器单元201,例如可从加利福尼亚州森尼维耳市的Advanced Micro Devices获得的OpteronTM和AthlonTM双核处理器,互连207可以实施为***请求接口设备。在任何情况下,处理器核心201通过互连207与输入/输出接口209和存储器控制器211通信。输入/输出接口209在处理器单元201和总线115之间提供通信接口。类似地,存储器控制器211控制处理器单元201和***存储器107之间的信息交换。利用本发明的一些实施方式,处理器单元201可以包括附加组件,例如由处理器核心201共享的可访问的高级高速缓冲存储器。
尽管图2示出了可以由本发明的一些实施例采用的处理器单元201的一个示例,但是应当理解,该示例仅是代表性的,而不是限制性的。还应当理解,在一些实施方式中,可以使用多核处理器单元111来代替多个分开的处理器单元111。例如,计算***101的替代性实施方式可以采用具有六个核心的单个处理器单元111、两个多核处理器单元(每个具有三个核心)、具有四个核心的多核处理器单元111连同两个分开的单核处理器单元111等,而不是采用六个分开的处理器单元111。
现在回到图1,接口设备113允许主计算机103通过通信接口与从计算机117A、117B、117C、…、117x通信。通信接口可以是任何适当类型的接口,包括例如常规的有线网络连接或光传输的有线网络连接。通信接口还可以是无线连接,例如无线光连接、射频连接、红外连接、或者甚至是声学连接。接口设备113根据一个或多个通信协议(例如传输控制协议(TCP)、用户数据报协议(UDP)和因特网协议(IP))将来自主计算机103和每个从计算机117的数据和控制信号转换为网络消息。这些和其它传统的通信协议在本领域中是已知的,因此在本文将不进行更详细的讨论。
每个从计算机117可以包括通过***总线127连接在一起的存储器119、处理器单元121、接口设备123、以及可选的一个或多个输入/输出设备125。与主计算机103一样,用于从计算机117的可选输入/输出设备125可以包括任何常规的输入或输出设备,例如键盘、指点设备、麦克风、显示监视器、扬声器、和打印机。类似地,处理器单元121可以是任何类型的常规的或定制的可编程处理器设备。例如,处理器单元121中的一者或多者可以是商业上通用的可编程微处理器,例如或XeonTM微处理器、Advanced Micro Devices的AthlonTM微处理器、或Motorola的68K//>微处理器。可替代地,处理器单元121中的一者或多者可以是定制的处理器,例如被设计为优化地执行特定类型的数学运算的微处理器。此外,处理器单元121中的一者或多者可以具有多于一个的核心,如以上参考图2所描述的。然后,可以使用上面讨论的计算机可读介质的任意组合来实施存储器119。与接口设备113类似,接口设备123允许从计算机117通过通信接口与主计算机103通信。
在所示示例中,主计算机103是具有多个处理器单元111的多处理器单元计算机,而每个从计算机117具有单个处理器单元121。然而,应当注意,该技术的替代性实施方式可以采用具有单个处理器单元111的主计算机。此外,从计算机117中的一者或多者可以具有多个处理器单元121,这取决于它们的预期应用,如之前讨论的。此外,虽然对于主计算机103和从计算机仅示出了单个接口设备113或123,但是应当注意,在本发明的替代性实施例中,计算机103、从计算机117中的一者或多者、或这两者的某种组合可以使用两个或多个不同的接口设备113或123来通过多个通信接口进行通信。
在计算机***101的各个示例中,主计算机103可以连接到一个或多个外部数据存储设备。可以使用非暂时性计算机可读介质(其可由主计算机103访问)的任何组合来实施这些外部数据存储设备。计算机可读介质可以包括例如微电路存储器设备,诸如读写存储器(RAM)、只读存储器(ROM)、电可擦可编程只读存储器(EEPROM)或闪存微电路设备)、CD-ROM盘、数字视频盘(DVD)、或其它光学存储设备。计算机可读介质还可以包括磁带盒、磁带、磁盘或其它磁存储设备、穿孔介质、全息存储设备、或可以用于存储所需信息的任何其它介质。根据计算机***101的一些实施方式,从计算机117中的一者或多者可替代地或附加地连接到一个或多个外部非暂时性数据存储设备。通常,这些外部非暂时性数据存储设备将包括还连接到主计算机103的数据存储设备,但是它们也可以不同于可由主计算机103访问的任何数据存储设备。
还应当理解,图1和图2中所示的计算机***101的描述仅作为示例提供,而并不旨在对本发明的各个实施例的应用范围或功能提出任何限制。
所公开实施例包括用于以允许多个VECU使用各种协议(包括控制器区域网络总线(CAN总线)协议和本文讨论的其它协议)来交换包的方式互连多个VECU的改进的***和方法。各个实施例可以对许多通信VECU的***(例如可以在车辆中找到)建模。所公开实施例包括在VECU之间交换包的虚拟总线。该虚拟总线可以使用进程间通信(Inter-ProcessCommunication,IPC),作为用于在VECU之间建立信道的标准机制。所公开实施例通过模拟多个VECU,使得能够在包括汽车开放***架构(AUTomotive Open System Architecture,AUTOSAR)应用的多个VECU上运行宽范围的应用,其中任何VECU都可以执行真实的汽车应用。在各个实施例中,虚拟总线可以被移植到不同的操作***,例如MICROSOFT WINDOWS操作***和UNIX/LINUX操作***。
根据各个实施例,虚拟总线在所有VECU之间在模拟时间内保持同步。使用虚拟总线在VECU之间的同步是基于所需的模拟精度完全可配置的。模拟可以被配置成在不同的VECU之间完全异步,以实现用于运行应用的超性能,或者为了调试和跟踪的目的,不同的VECU可以被配置成在模拟期间同步。在***中的所有VECU中,可以同步任何数量的VECU以实现针对所有VECU的完全同步模拟。在示例性实施方式中,由于虚拟总线的可重新配置性/灵活性,可以使用异步操作将模拟设置为最佳/最高性能,并且可以仅在需要调试某些特定VECU上的某些软件问题时才使用同步操作。
图3示出了根据所公开实施例的可以用于VECU测试的VECU模拟***300的示例。在该示例中,存在多个相互通信元件:服务器VECU 302、客户端VECU 304和306、以及测试客户端308,但是可以以具有两个或更多相互通信元件的任何***实施所公开的实施例。如本文所讨论的,服务器VECU 302与客户端VECU 304和306之间不必存在任何结构性差异;在许多情况下,根据正在测试或模拟的操作,相互通信VECU中的一者被简化地指定为其它VECU的服务器。该示例包括测试客户端308,其可以操作ECU测试应用,例如Vector的CANOE软件应用。
可以使用本文描述的一个或多个单独的计算机***来实施VECU模拟***300。也就是说,VECU 302、304和306中的每一者、以及任何测试客户端308或其它相互通信元件,可以在充当主机的相同物理硬件上实现,以不同的过程执行,并以本文公开的方式在VECU模拟***300内彼此通信。在其它实施例中,相互通信元件中的一者或多者可以在分开的物理硬件上实施,被连接使得它们可以如本文所公开的那样进行通信。
本领域的技术人员将认识到,为了简单和清楚起见,本文没有描绘或描述适用于本公开的所有数据处理***或计算机***的全部结构和操作。相反,仅描绘和描述了本公开所特有的或对于理解本公开所必需的数据处理***或计算机***。该数据处理***的构造和操作的剩余部分可以符合本领域已知的各种当前实施方式和实践中的任何一种。
所公开实施例可以适应不同协议以支持不同VECU之间的进程间通信(IPC),并且在特定实施例中使用事务级建模(Transaction Level Modeling,TLM)来实施VECU之间的虚拟总线。该虚拟总线可以用作虚拟汽车总线。例如,图3的VECU模拟***300中的每个通信路径可以在虚拟总线上用TLM来实施。在这种实施方式中,可以在VECU模拟***的每个VECU中创建TLM套接字(socket),以允许通信。
各个实施例可以使用诸如Accellera Systems Initiative的SYSTEMC设计和验证语言的产品作为一个或多个VECU中的虚拟硬件定时协议来解决与定时相关的问题。这种虚拟硬件定时协议允许***或用户配置面向硬件的延迟,用于同步和识别VECU内的硬件(HW)参数。在各个实施例中,在相同的虚拟硬件定时协议时间(例如在T=0)从所创建的TLM套接字中检测虚拟总线上的TLM事务。
如上所述,本文公开的***是独立于协议的。图4示出了根据所公开实施例的虚拟通信总线架构400和关联的数据结构的示例。虚拟通信总线架构400包括作为虚拟总线402的一部分的IPC信道,该IPC信道连接到VECU 404A和404B(或统称为VECU 404)中的每一者,以在它们之间传递通信。注意,此示例仅示出了虚拟总线402中的单个IPC信道,但其它实施例可包括虚拟总线402中的多个IPC信道。
特定实施例通过(例如使用动态链表)将先进先出(FIFO)队列406实例化以接收具有统一结构的任何实施的协议的不同事务来实现这一点。FIFO队列406存储FIFO元素408A-408D(或统称为FIFO元素408)。FIFO队列406可以包含任何数量的FIFO元素408。FIFO元素408在载波410中传输,其中载波410在虚拟总线402上传输。载波410包含三个主要字段:导频字段412、FIFO字段414、和ACK字段416。分离的FIFO队列可用于正由特定VECU发送的数据和正由该VECU接收的数据。
导频字段412是用于标识载波、帧类型和大小、以及帧协议的结构。每个载波410具有用于将不同的载波彼此区分开的导频字段412。导频字段包含三个字段:标识载波410的大小固定的标识符字段418、包含正由该载波传输的帧的帧类型和帧大小的固定大小的帧定义字段420、以及包含正由该载波传输的帧的协议类型的动态大小的协议字段422,例如CAN,控制器区域网络灵活的数据速率(CANFD)等。
FIFO字段414在大小上是动态的,并且取决于所传输的帧格式,并且用于指向FIFO队列406中的当前FIFO元素408。ACK字段416包含所接收的帧的大小,并由接收元素返回到发送元素以验证接收到该帧。
FIFO队列406是FIFO元素408A-408D的链表,其可以是基于帧类型的不同结构。如图4所示,载波410的FIFO字段414指向FIFO队列608中的第一FIFO元素408A。在该示例中,FIFO元素408A是CAN结构。FIFO元素408A指向第二FIFO元素408B,该第二FIFO元素408B是将在另一载波(通常是载波410之后的下一个载波)上传送的CANFD结构等。
如图4所示,每个FIFO元素408可以包括指向下一个FIFO元素408的指针,该指针标识下一个FIFO元素结构。例如,FIFO元素408A包括指向具有CANFD结构的下一个FIFO元素408B的“P_next_canfd”指针。FIFO元素408B包括指向具有以太网结构的下一个FIFO元素408B的“P_next_ethernet”指针。
IPC信道允许使用服务器-客户端套接字对来连接许多VECU 404,使得如本文所述的给定虚拟总线可支持多个IPC信道,并且每个信道可以被指定特定端口号。给定虚拟总线402优选地仅包含一个VECU作为服务器VECU并包括限定数量的客户端VECU。在图4的示例中,存在两个VECU 404,其中VECU 404A充当服务器并且VECU 404B充当客户端。每个VECU404具有用于所支持的协议(例如CAN、本地互连网络(LIN)、以太网、CANFD和XProtocol)的不同主/从端口。例如,可以使用Accellera System Initiative的SYSTEMC TLM产品来实施端口。所有端口都应连接到所需的控制器。
每个VECU 404可以实现用于通信功能的有限状态机(FSM)。如图所示,VECU 404A充当服务器VECU。其用于发送数据包的状态可以包括:
·就绪状态,其中根据每种协议将数据包进行传递以填充帧。检查IPC信道以确定其是否忙于传输载波。如果IPC信道忙,则用于VECU 404A的FSM移至等待状态。如果IPC信道不忙,则用于VECU 404A的FSM可以转换到服务器状态(如果需要协议管理)或运行状态。VECU 404A可以在通过TLM套接字接收到任何数据包且该数据包准备好进行传输后进入就绪状态;
·等待状态,其中服务器VECU可以等待虚拟总线402恢复畅通并且适当地更新其链表。只要IPC信道忙,VECU 404A FSM就保持在这种状态。一旦信道就绪(不忙),用于VECU404A的FSM从等待状态移至运行状态(或者首先移至用于协议管理功能的服务器状态,然后移至运行状态);
·服务器状态,其中服务器VECU执行协议管理功能;和
·运行状态,其中服务器VECU在虚拟总线402上传输。运行状态负责基于特定的协议管理和基于作为服务器或客户端来发送和接收数据包。
这些示例性状态是非限制性的,并且仅描述了一些通信功能状态。特定的实施方式可以具有更多或不同的通信功能状态。每个服务器VECU的操作的剩余部分不限于任何特定的状态机或相应的状态。如图所示,VECU 404B充当客户端VECU。其用于接收数据包的通信功能状态可以包括:
·接收状态,其中客户端VECU可以从虚拟总线402接收。在这种状态下,VECU 404B可以解析数据包并且基于协议提取信息,然后将该信息发送到与该协议对应的协议提取状态;和
·协议提取状态,其中客户端VECU从载波中提取数据,无论其中以何种协议进行传输。在这种状态下,基于协议使用情况(例如,CAN协议提取状态)来提取数据。帧字段可以被传递到TLM套接字,该TLM套接字连接到对应于协议的控制器(例如,CAN控制器)。
这些示例性状态是非限制性的,并且仅描述了一些通信功能状态。特定的实施方式可以具有更多的或不同的通信功能状态。每个客户端VECU的操作的剩余部分不限于任何特定的状态机或相应的状态。
TLM端口上(例如在SYSTEMC TLM产品中)以相同硬件时间发生的不同事务可以作为单独的帧元素被缓冲在链表上。
虚拟总线可以在不同的同步模式下操作。在异步模式下,不能保证不同VECU之间的模拟的同步。可以通过设置VECU模拟***300中的模拟参数来配置该模式。包括许多VECU的大多数物理***(例如汽车***)是异步***,并且不维持各个ECU之间的时序。
图3可用于说明根据所公开实施例的同步模式中的差异的示例。在异步模式中,可以在任何时间发送/接收任何相互通信元素(节点)。VECU 302、304、306以不同的执行时间(execution time,ET)运行,但它们具有相同的虚拟模拟时间(virtual simulation time,VST)。VST和ET对于所有的VECU 302、304、306是完全独立的。例如,如果多个VECU的***运行的执行时间为ET=1s,则服务器VECU 302被模拟的虚拟模拟时间为VST=120ms,而客户端VECU 304被模拟的虚拟模拟时间为VST=900ms(因为它们是异步运行的)。每个VECU的模拟速度取决于诸如主机CPU时钟、RAM、由每个VECU执行的任务等因素。
异步模式的显著优点包括非常高的性能,因为任何节点的模拟均没有停止,并且每个节点自由运行以实现最高可行性能。此外,由于并不跟踪VECU之间的时序,所以可以容易地验证各个VECU及其相互通信的功能。异步模式的不足仅在于,VECU的模拟没有同步,除非操作与时序不紧密耦合,否则不可能调试多个VECU,因为每个VECU的模拟是完全独立的。
所公开实施例可以实现不同的同步模式,包括服务器同步模式和服务器-客户端同步模式。
在服务器同步模式中,使用图3的示例,选择服务器VECU 302,因为其(在该示例中)是在各个VECU中具有最长执行时间的VECU。服务器VECU 302向所有客户端(包括在每个执行步骤处的客户端VECU 304和306,并且可以包括测试客户端308)发送同步消息以继续执行。服务器不等待任何确认信息,以便客户端继续进行。由于客户端VECU 304和306比服务器VECU 302更快,并且必须等待服务器VECU通信使得它们可以继续,因此迫使操作与较慢速度的服务器VECU 302同步,而不需要进一步的同步消息。注意,在一些实施例中,在服务器VECU或客户端VECU被描述为发送消息的情况下,与该服务器VECU或客户端VECU相关联的虚拟总线可以实际生成、发送、或接收相应的消息。
服务器同步模式提供了若干显著的优点,包括其允许调试服务器VECU,并且提供了相对高的性能,因为唯一的限制因素是服务器VECU速度。这也是主要不足-最慢的VECU(具有最长ET)必须是服务器,因此执行速度被限制为最慢VECU的执行速度。注意,在各个实施例中,可使用配置参数将任何VECU配置成充当服务器VECU或客户端VECU。例如,在单个***中,尽管优选地仅有一个VECU被配置成充当服务器VECU,但是也可以有许多VECU被配置成充当客户端VECU(多达99个或更多个)。
图5示出了根据所公开实施例的以服务器同步模式操作的VECU模拟***500的示例。在该示例中,存在多个相互通信元件:服务器VECU 502和客户端VECU 504、506、和508,但是可以在具有两个或更多相互通信元件的任何***中实施所公开的实施例。如本文所讨论的,服务器VECU 502与客户端VECU 504、506、和508之间不必存在任何结构性差异;在该服务器同步模式示例中的实际差异在于,服务器VECU 502是在各个VECU中具有最长执行时间的VECU。本文使用的虚拟模拟时间(VST)是指用于VECU的每个执行步骤的虚拟时间,其可以是虚拟时钟速度、选定的持续时间、或其它。
在该示例中,服务器VECU 502和客户端VECU 504、506、和508使用虚拟总线510相互通信,其在该示例中支持至少两个IPC信道512和514。在该示例中,IPC信道512被用作数据交换信道,并且在主机上的可用端口上操作,使用端口2048仅作为示例。IPC信道514用作同步信道,并且在主机端口上的另一可用端口上操作,在该示例中使用端口1024。
在该示例中,服务器VECU 502(除了它正在执行的任何其他VECU应用或过程之外)还执行服务器同步线程,该服务器同步线程以VECU 502的任何速度操作或以选定速率(在该示例中为每1ms)生成同步数据包520。
客户端VECU 504、506、和508中的每一者(除了它正在执行的任何其他VECU应用或过程之外)还执行客户端同步线程,该客户端同步线程阻止提前该客户端VECU的同步时间,直到它从服务器VECU 502接收到同步数据包。也就是说,不是每个客户端VECU 504、506、和508以其最快速度以其自己的执行时间/时钟操作,而是每个客户端VECU 504、506、和508的VST被限制到它从服务器VECU 502接收同步数据包的速率(在这种情况下是每1ms)。
在服务器-客户端同步模式中,保证执行在所有VECU之间是完全同步的。因此,不仅客户端等待来自服务器的同步消息,而且服务器也等待来自所有客户端的确认消息,以便能够继续执行。根据各个实施例,从客户端发送到服务器的确认消息可以指示客户端已经接收到同步消息并将继续进行,或者可以指示客户端已经接收到同步消息,执行其自身执行的下一步骤,并且已经提前其自身的VST以匹配服务器的VST及其同步消息。可以使用上面讨论的ACK字段来实施确认消息。
服务器-客户端同步模式提供了若干显著的优点,包括所有VECU具有相同的VST。在这种模式下,所有的VECU都可以被调试,因为VECU模拟***会暂停,直到对所有VECU的模拟提前。本文公开的服务器-客户端同步模式的主要不足是,由于***是完全同步的,因此性能最低;***不能比最慢的VECU更快地操作,并且通常将更慢地操作以适应最慢的VECU和同步消息以及来自每个客户端VECU的响应。
图6示出了根据所公开实施例的以服务器-客户端同步模式操作的VECU模拟***600的示例。
在该示例中,存在多个相互通信元件:服务器VECU 602和客户端VECU 604、606、和608,但是可以在具有两个或更多相互通信元件的任何***中实施所公开的实施例。如本文所描述的,服务器VECU 602与客户端VECU 604、606、和608之间不必存在任何性结构差异。在该服务器同步模式示例中的一个实际差异在于,服务器VECU 602不必是在各个VECU中具有最慢执行时间的VECU。
在该示例中,服务器VECU 602和客户端VECU 604、606、和608使用虚拟总线610相互通信,其在该示例中支持至少两个IPC信道612和614。在该示例中,IPC信道612被用作数据交换信道,并且在主机上的可用端口上操作,使用端口2048仅作为示例。IPC信道614用作同步信道,并且在主机端口上的另一可用端口上操作,在该示例中使用端口1024。
在该示例中,服务器VECU 602(除了它正在执行的任何其他VECU应用或过程之外)还执行服务器同步线程,在该服务器同步线程提前其自己的执行时间时生成同步数据包620。
客户端VECU 604、606、和608中的每一者(除了它正在执行的任何其他VECU应用或过程之外)还执行客户端同步线程,该客户端同步线程阻止提前该客户端VECU的同步时间,直到它从服务器VECU 602接收到同步数据包。也就是说,不是每个客户端VECU 604、606、和608以其最佳速度以其自己的执行时间/时钟操作,而是每个客户端VECU 604、606、和608的执行时间被限制到它从服务器VECU 602接收同步数据包的速率(在这种情况下是每1ms)。
当每个客户端VECU 604、606、和608接收到同步数据包620时,其发送确认包622,确认其已经接收到同步数据包620并提前其执行时间。只有在服务器VECU 602已经接收到所有同步数据包620之后,才提前其自己的执行时间。这样,服务器VECU 620和每个客户端VECU 604、606、和608的执行时间完全同步。
例如,服务器VECU 602基于自身的执行时间,可以在每个可能适于***执行的时间周期(在该示例中为12ms)发送周期性同步数据包620,以提前VECU模拟***600的执行时间。每个客户端VECU可以周期性地(例如每3ms)发送响应数据包,并且该响应数据包可以是每次接收到同步数据包620时的确认包622。这在每个已知时间周期(对于该示例为12ms)以提前一次所有VECU的执行时间来有效地保持VECU模拟***600的同步。
本文公开的VECU模拟***还可以在不同VECU对虚拟总线的访问之间进行仲裁。
在现实世界的ECU实施方式中,当网络中的两个或多个节点几乎同时试图访问总线时,在物理共享介质(例如CAN总线)上可能发生冲突,这将导致难以接受的效果,例如总线访问延迟或甚至消息的破坏/损坏。CAN协议例如通过使用节点的消息ID来避免消息/数据冲突。也就是说,具有最高优先级(在CAN协议中,是最低的消息ID)的消息将获得对总线的访问,而所有其它节点(具有较低优先级和较高消息ID)切换到“监听”模式。
所公开实施例可以模拟并执行针对虚拟总线上的冲突的仲裁,以适当地模拟对应的物理ECU实施方式。例如,服务器-客户端同步模式可以模拟再现这样的冲突,因为所有的VECU是完全同步的并且具有相同的执行时间,例如SYSTEMC时间基准,即使它们在不同的物理机或虚拟机上执行。两个或更多个VECU/节点可以在本文公开的VECU模拟***中同时发送ID。虚拟总线处理仲裁以模拟物理总线上的冲突。
本文公开的VECU模拟***的具体技术优点包括在虚拟总线上的同一IPC套接字上使用不同协议处理不同VECU的能力,以及为可能以不同速度运行或使用不同内核(例如不同的SYSTEMC内核)的不同VECU提供同步机制。
图7示出了在同一模拟时间通过同一虚拟CAN总线702发送的三个VECU节点704、706、和708之间执行仲裁700的例子。如上文所描述的,虚拟总线702使用消息标识符710(十六进制格式)或712(二进制格式)在三个VECU 704、706、和708之间保持正确的仲裁,以避免总线上的争用。最低消息标识符(在该示例中为710或712)对应于节点2 706,并且该消息显示在虚拟CAN总线702上。这种仲裁在更可能存在消息冲突的服务器-客户端同步模式中是特别有用的,并且适当地模拟了物理ECU网络上的消息冲突和仲裁。
图8示出了根据所公开实施例的VECU模拟***800,其用于示出可以在各个实施例中实施的各个特征。注意,任何给定的实施方式可以包括本文讨论的特征中的单个特征、多个特征、或所有特征。
该图示出了连接到本文所公开的虚拟总线880的服务器VECU 810。还连接到虚拟总线880的有客户端VECU:VECU0 824、VECU1 826、VECU2 828、VECU3 830、VECU4 832、以及,概括表示为,VECU5…n 834。
如该图所示,服务器VECU可以使用各种协议中的一者或多者进行通信,并在必要时可以由软件通信适配器/接口来辅助。在该示例中,服务器VECU 810可以使用CAN接口802、CANFD接口804、LIN接口806、以太网接口808、或其它协议接口(X-Protocol接口)830中的一者或多者在虚拟总线880上进行通信。虽然在任何给定的模拟中,服务器VECU 810可以不实施或不使用这些接口中的每一者,但是该图用于例示所公开实施例可以在必要时适应任何协议。由服务器VECU 810和其它连接的设备和过程发送的通信在虚拟总线880上在一个或多个IPC中发送。每个IPC如本文所示和上面例如参考图4所描述的那样传送载波,并且每个载波可以指定用于该载波的相应协议。在该示例中,示例性载波包括LIN协议载波816、以太网协议载波818、CANFD协议载波820、和CAN协议载波822、以及通用的其它类型的协议(X协议)载波814。
根据所公开实施例的VECU模拟***800可以适应任何数量的不同协议和设备(真实的或虚拟的)。例如,VECU 824可以是VECTOR CANOE工具,其被连接以经由被实施为CANOE动态链接库接口的软件通信适配器与虚拟总线880通信。VECU 826可以是MATLAB工具,其被连接以经由被实施为库接口的软件通信适配器与虚拟总线880通信。VECU 828可以是功能模型接口(Functional Mock-Up Interface,FMI)工具,其被连接以经由被实施为FMI动态链接库接口的软件通信适配器与虚拟总线880通信。VECU 830可以是来自明导公司(MentorGraphics)的VELOCE模拟平台工具,或者是使用MICROSOFT VISUAL STUDIO产品实施的VECU,其被连接以经由被实施为库接口的软件通信适配器与虚拟总线880通信。VECU 832可以是物理板(例如物理ECU),其被连接以经由充当物理板和虚拟总线880之间的VECU代理的软件通信适配器与虚拟总线880通信。可以实施任何数量的其他VECU,并表示为VECU 5…n834,并且可以使用任何适当的接口(例如上述的那些接口、CAN或CANFD控制器、或其他接口)进行连接。本文还示出了DSPACE型ECU840,其被连接以经由被实施为DSPACE桥的软件通信适配器与虚拟总线880通信。
图8还示出了可用于实现同步或以如本文所述的其它方式控制执行时间的各种协议。例如,各个真实或虚拟设备或过程可以通过CANOE应用编程接口(如在842所示)、通过SYSTEMC机制(如在844所示)、或通过FMI功能性模型单元和/或非侵入式跟踪(NIT)(如在846所示)等来利用同步。
图9示出了根据所公开实施例的虚拟总线900的架构。在该示例中,虚拟总线900与特定VECU相关联-在这个例子中,关联的VECU 960作为客户端VECU来操作-并且与一个或多个其它VECU 950通信,所述一个或多个其它VECU 950包括至少一个服务器VECU及潜在的多个其它客户端VECU。当然,无论关联的VECU 960是作为服务器VECU来操作还是作为客户端VECU来操作,虚拟总线900的逻辑结构都是相同的。虚拟总线900充当关联的VECU 960、其它VECU 950、和如本文所述的其它外部设备之间的接口。
在该示例中,虚拟总线900的协议管理器902使用任何数目的信道和如本文所述的协议(包括CAN、CANFD、以太网、LIN、或其它协议)与关联的VECU 960交互。协议管理器902管理被发送到其它设备的和从其它设备接收的数据,并根据需要使用本文讨论的任何技术、库、或其它工具来转换协议。
当关联的VECU 960正发送数据时,例如,其使用它支持的任何协议将该数据传输到协议管理器902。然后,协议管理器可以转换该数据以进行如本文所述的传输,将其传递到传输(TX)模块906。TX模块906将经转换的数据添加到TX队列918(例如上述的FIFO队列),并经由TX线程920将排队的数据发送到载波TX线程912,所述载波TX线程912将经转换的数据放入如上所述的载波格式。然后,载波TX线程912使用本示例中的IPC将该数据传输到一个或多个其它VECUS 950。
当关联的VECU 960正接收数据时,执行相反的进程。经由IPC从其它VECU 950中的一者接收载波格式的接收数据。载波RX线程910接收载波格式的数据,并从信道中提取上述帧或其它数据。数据被传递到RX模块904的接收(RX)队列916,例如上述的FIFO队列。RX模块904的RX线程914将数据从RX队列916传递到协议管理器902,协议管理器902将其转换以供关联的VECU 960使用并将其发送到关联的VECU 960。
虚拟总线900还可在关联的VECU 960与除其它VECU 950以外的设备之间进行通信。例如,协议管理器902可以与DSPACE控制/桥通信,使得关联的VECU 960可以与DSPACE型ECU通信。协议管理器902可以与一个或多个物理总线926通信,使得关联的VECU 960可以与一个或多个连接的物理设备通信。例如,物理总线926可以是能够与外部基于以太网的***(例如汽车以太网)进行通信的以太网连接。物理总线926可以是能够与外部控制器或利用CAN协议或CANFD协议的其它设备进行通信的物理CAN总线。物理总线926可以被用于支持与使用由协议管理器902转换的任何协议的任何其它物理设备的通信。
虚拟总线900还可包括同步控制924,其将如本文所述的传输和执行进行同步。例如,同步控制924可以包括或实施诸如SYSTEMC内核的元素并且发送/接收线程或本文描述的或本领域技术人员已知的其它时序/同步数据。
图10示出了根据所公开实施例的由一个或多个计算机***(以下统称为“***”,例如计算机***101)执行的用于多个VECU的模拟和测试的进程1000。
该***执行第一虚拟电子控制单元(VECU)(1002)。第一VECU模拟电子控制单元(ECU)的操作;模拟的ECU可以是汽车ECU。
该***执行虚拟总线,该虚拟总线与第一VECU相关联(1004)。
该***执行至少一个第二VECU(1006)。
该***通过使用虚拟总线管理第一VECU和所述至少一个第二VECU之间的通信来模拟多VECU***(1008)。多VECU***可以表示汽车控制***的一部分。虚拟总线可以使用协议管理器转换来自第一VECU的第一协议中的通信,并且使用进程间通信(IPC)信道将该通信传输到所述至少一个第二VECU。
如上所述,通信可以是在IPC信道上的载波中传输的,该载波具有导频字段、先进先出(FIFO)字段、和确认(ACK)字段。导频字段可以包括标识符字段、定义FIFO字段的帧类型和大小的帧定义字段、以及标识FIFO字段的协议类型的协议字段,其中该协议类型对应于上述第一协议。
在模拟多VECU***的同时,该***使用虚拟总线来同步对第一VECU和至少一个第二VECU的执行(1010)。在一些情况下,第一VECU被指定为主VECU,并且同步执行包括将同步消息从第一VECU发送到第二VECU,使第二VECU提前预定的执行时间执行。在一些情况下,在从第二VECU接收到确认消息之前,不提前执行第一VECU。
重要的是要注意,虽然本公开包括在全功能***的环境中的描述,但是本领域技术人员将理解,本公开的至少一部分机制能够以包含在机器可用介质、计算机可用介质、或计算机可读介质内的指令的形式以各种形式分布,并且无论用于实际执行该分布的指令或信号的承载介质或存储介质的特定类型如何,本公开同样适用。机器可用/可读介质或计算机可用/可读介质的示例包括:非易失性的硬编码类型的介质(例如只读存储器(ROM)或可擦除电可编程只读存储器(EEPROM))、以及用户可记录类型的介质(例如软盘、硬盘驱动器和光盘只读存储器(CD-ROM)或数字多功能盘(DVD))。
尽管已经详细描述了本公开的示例性实施例,但是本领域技术人员将理解,在不背离本公开的最宽泛形式的精神和范围的情况下,可以进行本文公开的各种改变、替代、变化和改进。可以省略、重复、与其它步骤或过程顺序地或同时地执行各种过程步骤,或将各种过程步骤与其它步骤或过程组合。本文公开的特征或步骤可以在本公开的范围内与其它特征或步骤组合或交换。
本申请中的任何描述都不应被理解为暗示任何特定元素、步骤、或功能都是必须包括在权利要求范围内的必要元素:专利的主题范围仅由所允许的权利要求来限定。此外,除非确切的词语“用于…的装置”后面跟有分词,否则这些权利要求都不旨在援引35USC§112(f)。权利要求中所使用的术语诸如(但不限于)“机构”、“模块”、“设备”、“单元”、“部件”、“元件”、“构件”、“装置”、“机器”、“***”、“处理器”、或“控制器”应被理解并且旨在表示相关领域技术人员已知的结构,并通过权利要求本身的特征进一步修改或增强,但并不旨在援引35U.S.C.§112(f)。
Claims (20)
1.一种由一个或多个计算机***(101)执行的方法(1000),包括:
由所述一个或多个计算机***(101)执行(1002)第一虚拟电子控制单元(VECU)(502);
由所述一个或多个计算机***(101)执行(1004)虚拟总线(510),所述虚拟总线(510)与所述第一VECU(502)相关联;
由所述一个或多个计算机***(101)执行(1006)至少一个第二VECU(504);
由所述一个或多个计算机***(101)通过使用所述虚拟总线(510)管理所述第一VECU(502)和所述至少一个第二VECU(504)之间的通信来模拟(1008)多VECU***。
2.根据权利要求1所述的方法,其中,所述第一VECU(502)和所述至少一个第二VECU(504)一起表示汽车控制***的一部分。
3.根据权利要求1所述的方法,其中,所述虚拟总线(510)使用协议管理器转换来自所述第一VECU(502)的第一协议中的通信,并且使用进程间通信(IPC)信道(512)将所述通信传输到所述至少一个第二VECU(504)。
4.根据权利要求3所述的方法,其中,所述通信是在所述IPC信道(512)上的载波(410)中传输的,所述载波(410)具有导频字段(412)、先进先出(FIFO)字段(414)、和确认(ACK)字段(416)。
5.根据权利要求4所述的方法,其中,所述导频字段(412)包括:标识符字段(416),定义所述FIFO字段(414)的帧类型和大小的帧定义字段(420)、以及标识所述FIFO字段(414)的协议类型的协议字段(422),并且其中所述协议类型对应于所述第一协议。
6.根据权利要求1所述的方法,还包括:使用所述虚拟总线(510)来同步(1010)对所述第一VECU(502)和所述至少一个第二VECU(504)的执行。
7.根据权利要求6所述的方法,其中,所述第一VECU(502)被指定为主VECU,并且同步执行包括将同步消息从所述第一VECU(502)发送到所述至少一个第二VECU(504),使所述至少一个第二VECU(504)提前预定的虚拟模拟时间执行。
8.根据权利要求6所述的方法,其中,所述第一VECU(502)被指定为主VECU,并且同步执行包括将同步消息从所述第一VECU(502)发送到所述第二VECU,使所述至少一个第二VECU(504)提前预定的虚拟模拟时间执行,并且在从所述至少一个第二VECU(504)接收到确认消息之前,不提前执行所述第一VECU(502)。
9.根据权利要求1所述的方法,还包括:由所述虚拟总线(510)在由所述第一VECU(502)发送的消息(704)和由第三VECU(506)发送的消息(708)之间进行仲裁(700)。
10.一个或多个计算机***(101),每个计算机***(101)包括:
处理器(111);和
可访问的存储器(107),所述一个或多个计算机***(101)一起被配置成:
执行(1002)第一虚拟电子控制单元(VECU)(502);
执行(1004)虚拟总线(510),所述虚拟总线(510)与所述第一VECU(502)相关联;
执行(1006)至少一个第二VECU(504);
通过使用所述虚拟总线(510)管理所述第一VECU(502)和所述至少一个第二VECU(504)之间的通信来模拟(1008)多VECU***。
11.根据权利要求10所述的一个或多个计算机***,其中,所述第一VECU(502)和所述至少一个第二VECU(504)一起表示汽车控制***的一部分。
12.根据权利要求10所述的一个或多个计算机***,其中,所述虚拟总线(510)使用协议管理器转换来自所述第一VECU(502)的第一协议中的通信,并且使用进程间通信(IPC)信道(512)将所述通信传输到所述至少一个第二VECU(504)。
13.根据权利要求12所述的一个或多个计算机***,其中,所述通信是在所述IPC信道(512)上的载波(410)中传输的,所述载波(410)具有导频字段(412)、先进先出(FIFO)字段(414)、和确认(ACK)字段(416)。
14.根据权利要求10所述的一个或多个计算机***,其中,所述导频字段(412)包括:标识符字段(416)、定义所述FIFO字段(414)的帧类型和大小的帧定义字段(420)、以及标识所述FIFO字段(414)的协议类型的协议字段(422),并且其中所述协议类型对应于所述第一协议。
15.根据权利要求10所述的一个或多个计算机***,其中,所述一个或多个计算机***(101)还被配置成使用所述虚拟总线(510)来同步对所述第一VECU(502)和所述至少一个第二VECU(504)的执行。
16.根据权利要求15所述的一个或多个计算机***,其中,所述第一VECU被指定为主VECU,并且同步执行包括将同步消息从所述第一VECU(502)发送到所述至少一个第二VECU(504),使所述至少一个第二VECU(504)提前预定的虚拟模拟时间执行。
17.根据权利要求15所述的一个或多个计算机***,其中,所述第一VECU(502)被指定为主VECU,并且同步执行包括将同步消息从所述第一VECU(502)发送到所述至少一个第二VECU(504),使所述至少一个第二VECU(504)提前预定的虚拟模拟时间执行,并且在从所述至少一个第二VECU(504)接收到确认消息之前,不提前执行所述第一VECU(502)。
18.一种存储有可执行指令(109A)的非暂时性计算机可读介质(107),当所述可执行指令(109A)被执行时使一个或多个计算机***(101):
执行(1002)第一虚拟电子控制单元(VECU)(502);
执行(1004)虚拟总线(510),所述虚拟总线(510)与所述第一VECU(502)相关联;
执行(1006)至少一个第二VECU(504);
通过使用所述虚拟总线(510)管理所述第一VECU(502)和所述至少一个第二VECU(504)之间的通信来模拟(1008)多VECU***。
19.根据权利要求10所述的一个或多个计算机***,其中,所述第一VECU(502)和所述至少一个第二VECU(504)一起表示汽车控制***的一部分。
20.根据权利要求10所述的一个或多个计算机***,其中,所述可执行指令还使所述一个或多个计算机***(101)使用所述虚拟总线(510)来同步对所述第一VECU(502)和所述至少一个第二VECU(504)的执行。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2020/047794 WO2022046035A1 (en) | 2020-08-25 | 2020-08-25 | SYSTEM AND METHOD FOR SIMULATION AND TESTING OF MULTIPLE VIRTUAL ECUs |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116711279A true CN116711279A (zh) | 2023-09-05 |
Family
ID=72356536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080103529.XA Pending CN116711279A (zh) | 2020-08-25 | 2020-08-25 | 用于多个虚拟ecu的模拟和测试的***和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230261961A1 (zh) |
EP (1) | EP4185955A1 (zh) |
CN (1) | CN116711279A (zh) |
WO (1) | WO2022046035A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102020133748B4 (de) * | 2020-12-16 | 2022-12-08 | Lisa Dräxlmaier GmbH | Fahrzeugsteuergerät mit synchronem treiber |
CN115412394B (zh) * | 2022-08-22 | 2023-08-18 | 奥特酷智能科技(南京)有限公司 | 基于AutoSar的异构域控制器核间通信方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103543999A (zh) * | 2012-07-10 | 2014-01-29 | 帝斯贝思数字信号处理和控制工程有限公司 | 用于创建和测试控制器程序的方法和装置 |
DE102014101321A1 (de) * | 2014-02-04 | 2015-08-06 | Dspace Digital Signal Processing And Control Engineering Gmbh | Testeinrichtung zum Test eines virtuellen Steuergeräts |
DE102016222091A1 (de) * | 2015-11-10 | 2017-05-11 | Denso Corporation | Elektronische steuereinheit |
CN107784152A (zh) * | 2016-08-26 | 2018-03-09 | 株式会社日立制作所 | 包括多个模拟器的模拟 |
DE102018111851A1 (de) * | 2018-05-17 | 2019-11-21 | Dspace Digital Signal Processing And Control Engineering Gmbh | Verfahren zur ereignisbasierten Simulation eines Systems |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8924619B2 (en) * | 2013-03-15 | 2014-12-30 | Seagate Technology Llc | Unified message-based communications |
-
2020
- 2020-08-25 EP EP20767688.3A patent/EP4185955A1/en active Pending
- 2020-08-25 WO PCT/US2020/047794 patent/WO2022046035A1/en active Application Filing
- 2020-08-25 US US18/041,009 patent/US20230261961A1/en active Pending
- 2020-08-25 CN CN202080103529.XA patent/CN116711279A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103543999A (zh) * | 2012-07-10 | 2014-01-29 | 帝斯贝思数字信号处理和控制工程有限公司 | 用于创建和测试控制器程序的方法和装置 |
DE102014101321A1 (de) * | 2014-02-04 | 2015-08-06 | Dspace Digital Signal Processing And Control Engineering Gmbh | Testeinrichtung zum Test eines virtuellen Steuergeräts |
DE102016222091A1 (de) * | 2015-11-10 | 2017-05-11 | Denso Corporation | Elektronische steuereinheit |
CN107784152A (zh) * | 2016-08-26 | 2018-03-09 | 株式会社日立制作所 | 包括多个模拟器的模拟 |
DE102018111851A1 (de) * | 2018-05-17 | 2019-11-21 | Dspace Digital Signal Processing And Control Engineering Gmbh | Verfahren zur ereignisbasierten Simulation eines Systems |
Also Published As
Publication number | Publication date |
---|---|
US20230261961A1 (en) | 2023-08-17 |
WO2022046035A1 (en) | 2022-03-03 |
EP4185955A1 (en) | 2023-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20110307847A1 (en) | Hybrid system combining TLM simulators and HW accelerators | |
US5493672A (en) | Concurrent simulation of host system at instruction level and input/output system at logic level with two-way communication deadlock resolution | |
US20030144828A1 (en) | Hub array system and method | |
US20210081585A1 (en) | Method for event-based simulation of a system | |
CN116711279A (zh) | 用于多个虚拟ecu的模拟和测试的***和方法 | |
US9418181B2 (en) | Simulated input/output devices | |
US20030037222A1 (en) | Method and apparatus for controlling a massively parallel processing environment | |
WO2024130861A1 (zh) | 一种云原生的硬件逻辑仿真fpga加速方法及*** | |
KR20170042600A (ko) | 셀룰러 오토머턴을 이용한 클러스터 서버의 구성 | |
Loveless | On TTEthernet for integrated Fault-Tolerant spacecraft networks | |
KR101704751B1 (ko) | 모듈 간의 타이밍 정보를 이용하는 멀티코어 시스템의 시뮬레이터, 및 그 시뮬레이션 방법 | |
CN117075570A (zh) | 数据处理方法、设备及*** | |
Guo et al. | Model checking of in-vehicle networking systems with CAN and FlexRay | |
US7627462B2 (en) | Hardware simulation using a test scenario manager | |
US7395197B2 (en) | Verification method and system for logic circuit | |
JP2014170361A (ja) | 情報処理装置、バス分割方法、及びバス分割プログラム | |
US20150378949A1 (en) | Method of Transaction and Event Ordering within the Interconnect | |
CN112966335B (zh) | 接口仿真装置和自动驾驶仿真测试平台 | |
WO2019021898A1 (ja) | 開発支援装置 | |
US20240231956A9 (en) | Apparatus and method for synchronizing participants of a simulation | |
Buzdalov | Simulation of AADL models with software-in-the-loop execution | |
CN117795492A (zh) | 仿真硬件的速度桥接器 | |
Shakhmatov et al. | A functional verification system of IP-blocks in network protocols | |
KR20240009766A (ko) | 차량용 소프트웨어 플랫폼의 시뮬레이션을 위한 네트워크 가상화 장치 및 방법 | |
CN116305759A (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 |