CN111338753B - 基于计算机实现电子控制单元硬件仿真的*** - Google Patents
基于计算机实现电子控制单元硬件仿真的*** Download PDFInfo
- Publication number
- CN111338753B CN111338753B CN202010096217.2A CN202010096217A CN111338753B CN 111338753 B CN111338753 B CN 111338753B CN 202010096217 A CN202010096217 A CN 202010096217A CN 111338753 B CN111338753 B CN 111338753B
- Authority
- CN
- China
- Prior art keywords
- bsp
- hardware
- module
- electronic control
- simulation
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种基于计算机实现电子控制单元硬件仿真的***,包括BSP仿真模块,用于提供与真实BSP相同的接口;BSP配置模块,与所述的BSP仿真模块相连接,用于根据项目需求对BSP接口进行编辑;硬件仿真模块,与所述的BSP仿真模块相连接,用于模拟仿真电子控制单元硬件;硬件仿真配置模块,与所述的硬件仿真模块相连接,用于根据电子控制电路的组成选择对应的控件组装为虚拟电子控制单元。采用了本发明的基于计算机实现电子控制单元硬件仿真的***,在不依赖真实硬件的情况下,随时进行计算机仿真验证上层软件功能。只需将BSP仿真模块替换为真实软件模块,利用交叉编译器编译链接后即可作为完整软件运行在真实硬件上,如此大大提升了开发效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及仿真开发领域,具体是指一种基于计算机实现电子控制单元硬件仿真的***。
背景技术
为测试和验证目的,在嵌入式软件开发时往往需要硬件在环(Hardware-in-the-Loop,HIL)台架验证软件的功能和性能。然而对于一些电子控制单元,如仪表、BCM、娱乐终端、网关等,其功能开发并不总是一直需要HIL台架。纯PC仿真软件或只仿真电路的物理性能,或仿真特定的客观物理***,并不针对电子控制单元的客户订制的需求。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种满足效率高、操作简便、适用范围较为广泛的基于计算机实现电子控制单元硬件仿真的***。
为了实现上述目的,本发明的基于计算机实现电子控制单元硬件仿真的***如下:
该基于计算机实现电子控制单元硬件仿真的***,其主要特点是,所述的***包括:
BSP仿真模块,用于提供与真实BSP相同的接口;
BSP配置模块,与所述的BSP仿真模块相连接,用于根据项目需求对BSP接口进行编辑;
硬件仿真模块,与所述的BSP仿真模块相连接,用于模拟仿真电子控制单元硬件;
硬件仿真配置模块,与所述的硬件仿真模块相连接,用于根据电子控制电路的组成选择对应的控件组装为虚拟电子控制单元。
较佳地,所述的硬件仿真模块包括显示层、解析层和套接字通信层,所述的解析层与显示层相连接,所述的套接字通信层与解析层相连接。
较佳地,所述的硬件仿真模块将电子控制单元的外部设备仿真为各种控件,并根据电子控制单元硬件增减控件和配置参数。
较佳地,所述的BSP仿真模块提供的接口数据包含定时器访问数据、非易失性随机访问存储器读写数据、输入/输出模拟量、输入/输出离散量和频率采集数据。
较佳地,所述的硬件仿真模块的模拟元件包括非易失性随机访问存储器、步进电机、液晶显示屏和LED指示灯。
较佳地,所述的BSP仿真模块和硬件仿真模块通过套接字进行通信。
较佳地,所述的BSP仿真模块通过套接字接口利用JSON协议将BSP接口的调用数据发送至硬件仿真模块。
采用了本发明的基于计算机实现电子控制单元硬件仿真的***,在不依赖真实硬件的情况下,随时进行计算机仿真验证上层软件功能。只需将BSP仿真模块替换为真实软件模块,利用交叉编译器编译链接后即可作为完整软件运行在真实硬件上,如此大大提升了开发效率。
附图说明
图1为本发明的基于计算机实现电子控制单元硬件仿真的***的结构图。
图2为本发明的基于计算机实现电子控制单元硬件仿真的***的硬件仿真模块实施例的结构图。
图3为本发明的基于计算机实现电子控制单元硬件仿真的***的硬件配置模块实施例的结构图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
本发明的该基于计算机实现电子控制单元硬件仿真的***,其中包括:
BSP仿真模块,用于提供与真实BSP相同的接口;
BSP配置模块,与所述的BSP仿真模块相连接,用于根据项目需求对BSP接口进行编辑;
硬件仿真模块,与所述的BSP仿真模块相连接,用于模拟仿真电子控制单元硬件;
硬件仿真配置模块,与所述的硬件仿真模块相连接,用于根据电子控制电路的组成选择对应的控件组装为虚拟电子控制单元。
作为本发明的优选实施方式,所述的硬件仿真模块包括显示层、解析层和套接字通信层,所述的解析层与显示层相连接,所述的套接字通信层与解析层相连接。
作为本发明的优选实施方式,所述的硬件仿真模块将电子控制单元的外部设备仿真为各种控件,并根据电子控制单元硬件增减控件和配置参数。
作为本发明的优选实施方式,所述的BSP仿真模块提供的接口数据包含定时器访问数据、非易失性随机访问存储器读写数据、输入/输出模拟量、输入/输出离散量和频率采集数据。
作为本发明的优选实施方式,所述的硬件仿真模块的模拟元件包括非易失性随机访问存储器、步进电机、液晶显示屏和LED指示灯。
作为本发明的优选实施方式,所述的BSP仿真模块和硬件仿真模块通过套接字进行通信。
作为本发明的优选实施方式,所述的BSP仿真模块通过套接字接口利用JSON协议将BSP接口的调用数据发送至硬件仿真模块。
本发明的具体实施方式中,提出一种计算机仿真电子控制单元硬件的方法。在无需真实电子控制单元、且不引入HIL的情况下,随时进行计算机仿真验证上层软件功能,提升了开发效率。
BSP仿真模块、BSP配置模块、硬件仿真模块、硬件仿真配置模块。
BSP仿真模块向上层软件提供与真实BSP相同的接口,但接口利用计算机资源实现接口。
BSP配置模块使用户根据具体项目需求在UI界面中对BSP接口进行编辑。
硬件仿真模块(HW-Sim)模拟真实的电子控制单元硬件,包括MCU上的硬件资源和外部设备。
硬件仿真配置模块(Sim Configuration)根据具体电子控制单元电路的组成选择对应的控件组装为虚拟电子控制单元。
BSP仿真模块利用计算机资源实现了与真实BSP相同的接口,包括:定时器访问、读写非易失性随机访问存储器、输入/输出模拟量、输入/输出离散量、频率采集等。
BSP配置使用xml描述,并在BSP配置模块的UI界面中编辑。
硬件仿真模块模拟电子控制单元的外部设备为非易失性随机访问存储器、步进电机、液晶显示屏、LED指示灯等。
硬件仿真配置模块将电子控制单元的外部设备抽象为控件,并可根据不同项目的电子控制单元硬件增减控件和配置参数。
BSP仿真模块和硬件仿真模块通过Socket通信,通信协议为JSON。
计算机仿真电子控制单元硬件的***具有如下构成:BSP仿真模块、BSP仿真模块配置模块、硬件仿真模块和硬件仿真配置模块。
BSP仿真模块利用计算机资源实现了与真实BSP相同的接口。BSP接口由xml文件BSPSpecification.xml描述,主要包括如下内容:
1.<get|set>AnalogInput():读取/输出某1路模拟量的输入
2.<get|set>DiscreteInput():读取/输出某1路离散量的输入
3.<get|set>非易失性随机访问存储器():读写非易失性随机访问存储器
4.getFrequencyInput():读取某1路频率输入
5.setTelltale():控制某个LED灯
6.setStepMotor():控制某个步进电机
7.setDisplay():将显示内容推送到显示屏上
上层软件提供两个接口供BSP调用:
1.AppStart():BSP初始化完毕后启动上层软件
2.AppRun():BSP定时调用AppRun(),上层软件在AppRun()中实现操作***功能
BSP仿真模块在计算机操作***的线程中模拟硬件定时器,驱动AppRun()。
BSP仿真模块通过计算机操作***的Socket接口利用JSON协议将上层软件对BSP接口的调用发送给硬件仿真模块,硬件仿真模块将执行结果返回给BSP仿真模块,从而模拟上层软件对硬件的操作。
BSP配置模块则通过图形化的界面对BSPSpecification.xml进行编辑。
硬件仿真模块包括模拟量输入的Slider、离散量输入的checkBox、数值输入的stepper Motor、表示显示屏的Canvas等若干控件。其组成结构分为Socket通信层、解析层和显示层,如图2所示。
当硬件仿真模块的Socket通信层通过socket接收到计算机-BSP发来的请求后,将该请求转交给解析层将数据解析为若干Functions分发到对应的显示层控件中。当用户在硬件仿真显示层中滑动Slider,点击checkbox或输入数值时,对应的控件则将数值发给按照JSON协议组装为socket数据,在通过socket发送出去。另一端计算机-BSP收到后转发给上层软件,实现模拟的输入。
硬件仿真配置模块将各个控件的位置、大小、输入还是输出、数据类型、关联的BSP接口等信息保存在xml中,并由专门的有图形界面的计算机软件维护。如图3所示。其中关联的BSP接口信息均来自BSPSpecification.xml。
上层软件和BSP仿真模块结合在一起,利用计算机编译器编译链接生成1个计算机上可执行的文件计算机IC.exe,该可执行文件不需要界面。计算机-Sim单独编译链接生成1个有GUI界面的程序,用户可以看到的计算机IC.exe输出信号,也可以拖动输入控件将模拟的硬件输入信号发给计算机IC.exe。
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
该实例中BSP仿真模块用来模拟的电子控制单元主要有如下外部设备:
·1个EEPROM芯片作为非易失性随机访问存储器
·4个Stepper Motors作为Gauges
·1个彩色显示屏
·若干模拟量输入
·若干离散量输入
·若干LED灯
BSP仿真模块用C语言完成,提供对应的函数:
<read|write>NvRam(uint32 addr,uint8 data[],uint8 length);
setGaugeValue(uint8 gaugeId,uint32 gaugeValue);
updateDisplay(uint8 layerId,uint8 displayBuffer[]);
getAnalogInput(uint8 channelId,uint32*value);
getDiscreteInput(uint8 channelId,bool*value);
setLedTelltale(uint8 telltaleId,bool value);
BSP仿真模块中有1个线程模拟定时中断,周期性调用AppRun()。
BSP仿真模块中有1个Socket通信模块和HW-Sim进行通信;
BSP仿真模块中有1个JSON协议的解析模块,负责BSP函数和Socket数据之间的相互转换。
本发明的BSP配置模块使用C++语言在Qt中完成设计,主要包括以下模块:
Deserializer从BSPSpecification.xml中析取BSP functions到BSP的数据模型中。UI界面使用户对这些数据模型修改;Serializer将数据模型写回到BSPSpecification.xml中。
本发明的硬件仿真模块使用C++语言在Qt中完成设计,主要包括以下模块:
Deserializer从BSPSpecification.xml中析取相关的BSP functions;从simConfiguration.xml析取出控件与BSP function的绑定关系,以及这些控件在仿真图形界面的位置、尺寸、类型、取值范围等信息。
3个自定义绘制的控件:DisplayCanvas、Gauge和NvRAM Table分别模拟显示屏,steppter motor和非易失性随机访问存储器。
1个Socket通信模块与进行BSP仿真模块通信。
1个JSON协议解析模块负责BSP函数和Socket数据之间的相互转换。
本发明的应将仿真配置模块是另1个独立的计算机软件,C++语言在Qt中完成设计其框架如图3所示,主要包括以下模块:
Deserializer从BSPSpecification.xml中析取相关的BSP functions;从simConfiguration.xml析取出控件与BSP function的绑定关系,以及这些控件在仿真图形界面的位置、尺寸、类型、取值范围等信息。
model模块暂存了Deserializer模块析取出来的的数据关系,并接收用户对这些数据关系进行的修改。
Serializer模块将model模块的数据关系写回到simConfiguration.xml中。为保证与计算机-BSP的一致性,BSPSpecification.xml是只读的。
图形界面模块将model中的数据关系显示在图形界面上,使用户通过鼠标拖放和键盘输入即可完成设置。
在该发明中的计算机仿真电子控制单元硬件的方法和***的其它实例中,还可以采用Visual Studio,VB,Java等其它开发工具和语言开发硬件仿真和应将仿真配置。
采用了本发明的基于计算机实现电子控制单元硬件仿真的***,在不依赖真实硬件的情况下,随时进行计算机仿真验证上层软件功能。只需将BSP仿真模块替换为真实软件模块,利用交叉编译器编译链接后即可作为完整软件运行在真实硬件上,如此大大提升了开发效率。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
Claims (5)
1.一种基于计算机实现电子控制单元硬件仿真的***,其特征在于,所述的***包括:
BSP仿真模块,用于提供与真实BSP相同的接口;
BSP配置模块,与所述的BSP仿真模块相连接,用于根据项目需求对BSP接口进行编辑;
硬件仿真模块,与所述的BSP仿真模块相连接,用于模拟仿真电子控制单元硬件;
硬件仿真配置模块,与所述的硬件仿真模块相连接,用于根据电子控制电路的组成选择对应的控件组装为虚拟电子控制单元;
所述的硬件仿真模块包括显示层、解析层和套接字通信层,所述的解析层与显示层相连接,所述的套接字通信层与解析层相连接;
所述的硬件仿真模块将电子控制单元的外部设备仿真为各种控件,并根据电子控制单元硬件增减控件和配置参数;
且所述的硬件仿真配置模块将各个控件的位置、大小、输入、输出、数据类型以及关联的BSP接口的信息均保存在xml中,并由专门的有图形界面的计算机软件维护。
2.根据权利要求1所述的基于计算机实现电子控制单元硬件仿真的***,其特征在于,所述的BSP仿真模块提供的接口数据包含定时器访问数据、非易失性随机访问存储器读写数据、输入/输出模拟量、输入/输出离散量和频率采集数据。
3.根据权利要求1所述的基于计算机实现电子控制单元硬件仿真的***,其特征在于,所述的硬件仿真模块的模拟元件包括非易失性随机访问存储器、步进电机、液晶显示屏和LED指示灯。
4.根据权利要求1所述的基于计算机实现电子控制单元硬件仿真的***,其特征在于,所述的BSP仿真模块和硬件仿真模块通过套接字进行通信。
5.根据权利要求1所述的基于计算机实现电子控制单元硬件仿真的***,其特征在于,所述的BSP仿真模块通过套接字接口利用JSON协议将BSP接口的调用数据发送至硬件仿真模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010096217.2A CN111338753B (zh) | 2020-02-17 | 2020-02-17 | 基于计算机实现电子控制单元硬件仿真的*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010096217.2A CN111338753B (zh) | 2020-02-17 | 2020-02-17 | 基于计算机实现电子控制单元硬件仿真的*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111338753A CN111338753A (zh) | 2020-06-26 |
CN111338753B true CN111338753B (zh) | 2021-09-03 |
Family
ID=71181587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010096217.2A Active CN111338753B (zh) | 2020-02-17 | 2020-02-17 | 基于计算机实现电子控制单元硬件仿真的*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111338753B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112614403A (zh) * | 2020-12-25 | 2021-04-06 | 深圳市小喵科技有限公司 | 硬件仿真方法及装置 |
CN112764739B (zh) * | 2021-01-20 | 2024-07-12 | 上海创景信息科技股份有限公司 | 基于国产操作***的标准化bsp图形化配置***及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1252593C (zh) * | 2001-11-16 | 2006-04-19 | 中兴通讯股份有限公司 | 板级支持包的仿真方法 |
CN101174283A (zh) * | 2007-12-03 | 2008-05-07 | 电子科技大学 | 一种基于网络的软硬件协同仿真平台 |
-
2020
- 2020-02-17 CN CN202010096217.2A patent/CN111338753B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111338753A (zh) | 2020-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7340693B2 (en) | System for designing re-programmable digital hardware platforms | |
US7913170B2 (en) | System and method for performing type checking for hardware device nodes in a graphical program | |
CN112270149B (zh) | 验证平台自动化集成方法、***及电子设备和存储介质 | |
US7743335B2 (en) | System and method for accessing registers of a hardware device in a graphical program | |
US7945895B2 (en) | Graphical programs with FIFO structure for controller/FPGA communications | |
US7606950B2 (en) | Graphical programs with direct memory access FIFO for controller/FPGA communications | |
US7043693B2 (en) | System and method for programmatically generating a second graphical program based on a first graphical program | |
US7725877B2 (en) | Graphical program which includes an I/O node for hardware abstraction | |
US20080147371A1 (en) | User Defined Virtual Instruments in a Simulation Environment | |
JP4982020B2 (ja) | 分散ブロック・ダイアグラム実行およびユーザ・インタフェース表示を使用するグラフィカル・プログラミング・システム | |
US20050091618A1 (en) | Method and apparatus for decomposing and verifying configurable hardware | |
US20060036799A1 (en) | Multi-platform development and execution of graphical programs | |
JP2009116876A (ja) | 試験装置のシミュレーションシステム、方法、及びプログラム製品 | |
CN111338753B (zh) | 基于计算机实现电子控制单元硬件仿真的*** | |
Pohl et al. | vMAGIC—automatic code generation for VHDL | |
Palazzetti | Getting started with UDOO | |
US9329840B1 (en) | Graphical programming of custom device drivers | |
US7523441B2 (en) | Implementing a synchronous reactive system in a graphical program | |
CN112114899A (zh) | 一种芯片调试***及调试器 | |
CN116340150A (zh) | 一种基于uvm的可重用的寄存器性能交互验证***及其应用 | |
JP2013020425A (ja) | オープンソースソフトウェアを利用したハードウェア・ソフトウェア協調検証方法 | |
CN107526585B (zh) | 基于Scala的FPGA开发平台及其调试、测试方法 | |
CN208589013U (zh) | 一种基于cpu通过jtag方式远程更新fpga的装置 | |
Birsan et al. | Embedded systems platform-based design from teaching to industry or vice-versa | |
CN115935876B (zh) | 一种fpga电路模拟仿真的方法及装置 |
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 |