背景介绍

  一般的xPC仿真需要2台电脑来分别实现目标机和宿主机,两者之间通过以太网或者串口实现通讯。Matlab的xPC Target提供了一个运行在目标机上的高度剪裁的实时操作内核,无需在目标机上面安装任何的操作系统,只需要包含实时内核的启动盘启动目标机即可,也就是说BIOS是实时内核所需要的唯一软件。一般的双机方法需要制作xPC的目标启动盘,有多种方式,软盘,U盘(具体方法可以参考U盘DOS启动盘的制作),CD盘,硬盘等的方式。

xPC工作过程

  1. 载入BIOS,BIOS自动搜索目标启动盘中的启动映像文件。启动映像文件首先将CPU从实模式状态切换到保护模式下,然后设置目标PC机并启动实时内核。
  2. 启动实时内核后,将激活应用程序载入程序,并等待从宿主机上下载目标应用程序。将目标应用程序复制到指定内存区域后设置目标程序处于准备执行状态。
  3. 通过函数或其他应用程序与目标程序进行通讯。

本文思路

  本文的方式是在一台电脑上利用虚拟机充当目标机的方式实现一台电脑的双机方法。虚拟机是在硬盘上虚拟出来的电脑,和真是的电脑几乎完全一样,且拥有独立的CMOS、硬盘和操作系统,提供的虚拟网络功能可以实现互联,能够使用外部机器的物理接口和硬件,能够提供更加有效的底层硬件使用。

实现方法

目标机的配置

  用VMvare软件(12.1.1 build-3770994)配置一台虚拟机即作为目标机。选择创建新的虚拟机,选择典型配置,稍后安装操作系统,在选择客户机操作系统的时候,由于xPC Target对硬 件要求很低且不需要安装其它操作系统,故选择其他,修改虚拟机名称和位置,然后可以分配较小的硬盘和内存。这样,目标机就创建完成了。
  接下来对目标机进行配置,这里我们采用以太网通信的方式(也可以采用串口,虚拟机也支持与外部的串口通信),在虚拟机设置,硬件设置,网络适配器里面选择仅主机模式(host-only)。

  在选择仅主机模式时,宿主机与目标机通信的虚拟网卡为VMvare Network Adaptor VMnet1,需要将其在控制面板中启用(与锐捷网卡冲突,平时禁用)。虚拟网卡型号有很多,有着不同的性能。一般默认的型号为AMD PCNet,恰好属于xPC Target网卡驱动列表中支持的 RTLANCE类型。可以查看到虚拟网卡的IP地址为192.168.163.XXX。

宿主机的配置
  在宿主机(Win7)打开matlab(R2011b)命令窗口运行xpceplr。在xPC Target Explorer窗口中进行相关设置。
  首先设置Host PC Root的Compiler(s) Configuration为你自己的C编译器目录。
  然后选择TargetPC1的Configuration的Communication,选择Host target communication为TCP/IP方式,将目标机IP地址设为与宿主机同一网段。TCP/IP target driver可以选择RTLANCE也可以设置成为auto,其他保持默认。在Settings里面将Target RAM size调为人工模式并适当调大点,自动的话只有10M。

制作目标机启动盘
  选择Configuration,可以看到有多种启动盘制作方式。可以通过虚拟软驱制成.img格式的软盘镜像文件,然后在VMvare虚拟的目标机软驱中加载。这里采用使用CD Boot制作CD启动盘(在刻盘提醒时忽略),把生成的.iso文件加载到目标机虚拟机的CD-ROM中。由于虚拟机自带BIOS,如果没有系统的话,会自动寻找启动文件。如果用的是带系统的虚拟机,就要设置引导顺序,将CD引导方式设为首选。

进行连接测试
  启动虚拟机,显示如下说明xPC Target的实时内核启动:

  在matlab命令串口输入xpctest命令行进行通信测试:

  如图显示通信正常,可建立xPC在虚拟机上进行目标机的仿真。而且根据VMvare官方介绍:

Virtual machines can connect to smart card readers that interface to serial ports, parallel ports, PCMCIA slots, and PCI slots. A virtual machine considers a smart card reader to be a type of USB deveice.

  因此可以在此基础上进行与其他硬件相连接通信的半物理仿真。

参考文献

孙逸神. 利用VMware在一台PC上实现xPC Target实时仿真[J]. 电脑知识与技术:学术交流, 2009, 5(22):6298-6299.

用虚拟机在一台电脑上实现xPC实时仿真相关推荐

  1. 怎么复制一台虚拟机到另外一台电脑上

    现在要想把一台电脑上虚拟机的ubuntu系统复制到另外一个台电脑上的虚拟机上 我的做法是直接复制ubuntu系统, 右键一个ubuntu系统,设置, 找到工作目录 这个目录就这个ubuntu系统的全部 ...

  2. 两台电脑上的虚拟机之间相互通信

    我们的目标是想要在两个真实节点上的虚拟机之间实现互相通信. 我是在一台电脑上用VMware部署两个虚拟节点,一个master,一个node,组成一个小型kubernetes集群架构.现在的问题是,我想 ...

  3. 一台电脑访问另一台电脑上虚拟机

    解释: "一台电脑访问另一台电脑上虚拟机"指的是:有两台电脑A和B, 其中B电脑上安装了一个虚拟机VMWare软件,VMWare上安装的是CentOS7操作系统,A电脑现在想访问B ...

  4. 在同一台电脑上同时使用IE6和IE7

    编者按:最近微软发布了IE7简体中文版,有了很多改进.毫无疑问,是Mozilla的Firefox激发了微软改良浏览器的雄心.只要简单看一下IE7的接口即可充分的证明这一点,尤其是以下这些功能:新分类的 ...

  5. ubuntu系统备份还原(迁移)到另外一台电脑上

    ubuntu系统备份还原(迁移)到另外一台电脑上 主要参考如下博客: https://blog.csdn.net/zeg635702733/article/details/53992224 https ...

  6. 西门子博途软件TIA PORTAL不同版本安装在一台电脑上的个人总结

    关于西门子博途软件TIA PORTAL不同版本同时安装在同一台电脑上的个人总结 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到网站. 个人开始使用博途软件 ...

  7. 把VMware虚拟机从一台电脑复制到另一台电脑

    1.选中.vmx文件和所有的.vmdk文件,添加到压缩文件 vmx是虚拟系统配置文件,而vmdk则是虚拟磁盘文件,它们都是VMware所支持的文件格式 2.复制压缩文件到另一台电脑上,并解压 3.在另 ...

  8. VMware虚拟机从一台电脑复制到另一台电脑

    1.选中.vmx文件和所有的.vmdk文件,添加到压缩文件 vmx是虚拟系统配置文件,而vmdk则是虚拟磁盘文件,它们都是VMware所支持的文件格式 2.复制压缩文件到另一台电脑上,并解压 3.在另 ...

  9. 如何在一台电脑上同时安装Windows和Linux双操作系统

    相关说明: 1.台电脑上同时安装Windows7和CentOS7双操作系统,本教程同样适用于安装其它版本的多操作系统 2.安装双系统应该先安装Windows,再安装Linux,因为Windows的引导 ...

  10. 如何使用 Parallels Desktop 虚拟机软件在Mac电脑上安装 Windows11 Arm

    很多人虽然入坑了Mac但是由于种种原因,有的时候还是需要用一下Windows,那么虚拟机软件就是必不可少的,现在免费的.收费的其实有很多虚拟机软件,对于非常忙不喜欢折腾的人,Parallels Des ...

最新文章

  1. 洛谷 P1598 垂直柱状图【字符串+模拟】
  2. ECCV2020最佳论文解读之递归全对场变换(RAFT)光流计算模型
  3. 递归神经网络不可思议的有效性
  4. php oauth 服务端,OAuth 2.0 PHP客户端和服务器示例
  5. 01-缓存一致性---基础知识
  6. 安义县农业结构调整-农业大健康·林裕豪:从玉农业谋定基地
  7. 著名软件公司的java笔试算法题!(含参考答案)
  8. Python之路番外(第二篇):PYTHON基本数据类型和小知识点
  9. Android第三十三天
  10. AngularJS快速入门指南03:表达式
  11. jdk、spring、mybatis、线程的源码分析
  12. java字节输出流方法,Java-IO:File和字节输入输出流
  13. wordpress phpmyadmin_wordpress企业主题网站迁移并更换域名方法
  14. git删除分支_程序员必须要掌握的 Git 使用技巧
  15. 全网首发:终于把freetype的bitmap模式汉字字体旋转成功了
  16. sql语句修改mysql数据库密码_修改mysql数据库密码的3中方法
  17. MapGIS数据中心是什么?
  18. 重磅,12306抢票小助手开源了!
  19. SaaS、PaaS、IaaS是什么意思
  20. 程序员之路:Gmail邮箱客户端配置

热门文章

  1. java中bool_java中boolean用法
  2. VB.NET学习笔记:异步委托实现等待窗体(loading界面),执行任务超时可以取消操作
  3. gif跟随ProgressBar一起动/pk进度条gif特效
  4. SpringClould之Eureka原理详解
  5. python爬取斗鱼弹幕_【Python3爬虫】斗鱼弹幕爬虫
  6. windows安装JDK步骤
  7. 脚本录制软件python 按键精灵 tc_Keymouse Go鼠标键盘脚本录制下载|开源版按键精灵软件_最火软件站...
  8. springboot 整合 shiro (Web Applications)避坑一 ,请看shiro官网
  9. 群晖NAS设备安装和基础操作详细流程(例:DS920+)
  10. JVM调优--04---dump文件分析 、arthas在线排查工具