基于USB半物理仿真平台的实现

基于USB半物理仿真平台的实现

ID:38783607

大小:1.23 MB

页数:9页

时间:2019-06-19

基于USB半物理仿真平台的实现_第1页
基于USB半物理仿真平台的实现_第2页
基于USB半物理仿真平台的实现_第3页
基于USB半物理仿真平台的实现_第4页
基于USB半物理仿真平台的实现_第5页
资源描述:

《基于USB半物理仿真平台的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于USB、Socket和Quest3D的半物理仿真平台的实现钟爱平、魏风波、师光飞摘要:QUEST3D是一款优秀的3D仿真软件,其优秀的实时3D、强大的物理仿真引擎以及图形化的编程界面,使用户在很短的时间内就可以构建出3D展示、漫游等实景仿真程序,但是由于QUEST3D与外部硬件的通信方式比较简单,目前与硬件直接通信的方式只有串口,当构建半物理仿真器时,其与硬件部分的通讯将变得困难。本文提出了一种使用VisualC++编写的通讯中介程序,融合USB总线、Socket套接字通讯,有效解决QUES

2、T3D与硬件的通讯问题,并以此为基础搭建一种虚拟驾驶的半物理仿真器。关键字:仿真、Socket、USB、Abstract:Quest3Disanexcellent 3Dsimulationsoftware,withthe real-time 3Dengine , good graphicprogramming interface, users canbuilda 3D sceneinaveryshortperiodoftime ,suchasvirtualroaming simulation,v

3、irtualshowing program, butthecommunicationmethodtoexternalhardwareinQUEST3D  isrelativelysimple, thecurrent  way isonly serial,whenconstructinga semi-physical simulator, the  communication willbedifficult.Thisarticlepresentsa Visual C++written commun

4、ication mediumprogram , integratsofUSBbus, Socket communication, effectivelysolvethe communicationproblem betweenQUEST3Dandhardware, Baseonthisprogrambuildasemiphysical simulation of virtual driving.KEYWORDS:simulationSocketUSB0、系统构成Quest3d在制作高效、逼真的三

5、维交互式仿真程序中有着不可比拟的优势,但在外设通讯等功能上却显得力不从心。为了弥补quest3d与USB设备通讯功能的不足,采用VisualC++搭桥的方式,通过TCP/IP协议与quest3d通讯,同时通过Cypress公司提供的API函数与USB设备进行通讯,从而实现虚拟平台quest3d与物理平台USB设备之间的通讯,以达到结合两者的优点,以长补短的目的。系统的结构构成如下图所示:图1:半物理仿真平台总体架构通信中介程序与外部设备的通信使用USB总线,与三维仿真程序的通信使用了TCP/IP

6、协议。三维仿真程序中的客户端必须知道服务器端的IP和端口号才能与之连接,而quest3d在获取本机IP、端口方面并不擅长,因此,由通讯中介程序获取本地IP和端口,通过文本文件与三维仿真程序共享。由于通信中介程序和三维仿真程序分别基于不同的平台构建,本质上是2个独立的程序,为了使三者能构成一个协调的整体,应设置程序的启停顺序,使系统的启停与单一程序没有区别,即通信中介序启动后最小化到系统托盘上,然后创建服务器端,查询USB接口,然后启动三维仿真程序。在退出时,先退出三维仿真程序,之后通信中介程序自

7、动退出。这样,整个系统在启停上成为一个整体。0、QUEST3D中的套接字编程Quest3d目前版本中关于Socket的通信功能并不完备,只能作为TCPClient与已经建立好的TCPServer进行连接。在quest3d中封装好的有关socket通讯的channel有socketaction、socketstring。前者主要用于执行创建客户端的一些命令,如:connect、disconnect、senddata等,后者用于接收服务器端发送来的数据。因为quest3d的程序运行方式是从上到下、从

8、左至右扫描运行的,如果对一个命令不加以限制,将会无限运行下去,造成错误。用这2个channel进行通讯编程时必须与onetime模块配合使用。图2:Quest3d中的程序运行流程socketaction的属性如图3所示,可见执行Connect命令时,需要两个参数:服务器端的IP和端口,仿真程序运行于本机,因此应该使用本机的IP。这两个参数可以事先写入到quest3d的代码中固定下来,但是带来的后果就是程序的可移植性变差,一旦更换电脑或是更改IP地址将导致程序的失效,所以参数应该在程序中动态获取。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。