汽车驾驶模拟器单片机系统设计

发布者:sedsedq最新更新时间:2011-11-22 关键字:汽车驾驶模拟器  单片机系统 手机看文章 扫描二维码
随时随地手机看文章

  引言

  汽车驾驶模拟器是一种能正确模拟汽车的驾驶操纵动作,获得实车驾驶感觉的仿真系统。目前的汽车驾驶模拟器集合了传感器、计算机三维实时动画、计算机接口、人工智能、数据通信、网络、多媒体等多种先进技术,主要用于驾驶员的培训,也可以对微观交通进行仿真,对汽车的控制特性进行研究[1]。汽车驾驶模拟器具有安全性高、再现性好的特点。利用驾驶模拟器来进行研究和训练,可方便地模拟各种道路环境、天气状况,分析汽车的技术性能指标,从而可以节省大量的自然资源,具有很高的经济价值[2]。

  在汽车驾驶模拟器中,传感控制系统的性能直接影响到整个汽车驾驶模拟系统的交互性和实时性,是衡量汽车驾驶模拟器实用性能的重要指标。传感控制系统主要由各种传感器、数据采集和处理系统、以及接口电路等组成。其中,数据采集和处理系统是整个传感控制系统的核心。目前,很多汽车驾驶模拟器采用数据采集卡实现操纵数据的采集,这种基于数据采集卡的数据采集和处理系统成本相对较高,采集模拟量时不是很稳定,必须在仿真程序中采用专门的算法对模拟量进行处理,同时接口的数量也很有限,这为后续的开发带来了一些困难。而基于单片机的数据采集系统虽然开发周期较长,但成本相对较低,接口的可扩展性好,同时,模拟量和开关量的预处理工作也可以由单片机来完成,完全可以满足模拟器系统的交互性和实时性要求。下面介绍汽车驾驶模拟器单片机系统的设计思路。

  1系统的工作原理

  在模拟汽车运动时,传感器采集驾驶员的操纵数据,通过接口电路对这些信号进行放大和滤波,并对其中的模拟信号进行A/D转换,最后单片机系统将控制信号通过RS-232接口传送给主控计算机。在仿真程序中,计算机根据控制信号、汽车的运动状态、驾驶操作规则等来控制视景系统、音响系统、仪表系统、评价系统。利用单片机系统驱动程序中相应的功能函数,可以将单片机系统采集的信号转换为控制汽车运动状态和位置的参数。当驾驶员进行模拟驾驶时,单片机系统采集的数据会根据驾驶员的驾驶操作实时地发生变化,从而实现对驾驶模拟器视景系统中汽车运动状态和位置的控制,控制系统的精度由仿真程序内部的算法保证。

系统的工作流程

图1 系统的工作流程

  汽车驾驶过程的基本操纵部件是方向盘、油门、离合器、刹车和档位,另外还有点火开关、转向指示灯等辅助性操纵部件。与实车驾驶相同,这些操纵部件的协同工作可以对虚拟视景中的汽车模型进行控制,驾驶训练者与视景的变化是实时的、交互的。驾驶训练者对操纵部件的操作通过传感器被系统感知后,系统经过处理和运算得到汽车模型的控制参数,最后根据这些参数控制视景系统的渲染输出,驾驶训练者就在虚拟视景中实时地观察到所驾驶车辆的运行情况。系统的工作流程如图1所示。[page]

  2 单片机系统的设计

  2.1 传感器的选择

  汽车驾驶模拟器主要的控制信号如表1所示。

汽车驾驶模拟器主要的控制信号

  汽车驾驶模拟器主要有方向盘、离合器、制动器、油门、6个挡位、手刹等信号需要采集,使用的传感器包括开关传感器、位移传感器、角位移传感器三类[3]。方向盘采用角位移传感器;离合器、刹车、油门采用位移传感器;点火、手刹、换档等采用开关传感器。

  经过综合考察与比较后,选用TWZ型直流位移传感器、QXJ-BZ-V型角位移传感器、ITR8102型对射式光电开关分别作为线位移量、角位移量以及开关量传感器。其中,TWZ型直流位移传感器的分辨率为10μm,QXJ-BZ-V型角位移传感器的分辨率为0.01o,ITR8102型对射式光电开关的响应时间为20μs。实践证明,所选的传感器完全满足了汽车驾驶模拟器的控制要求,取得了较好的效果。

  2.2硬件电路的设计

  汽车驾驶模拟器传感控制系统需要完成开关量和模拟量的采集与处理,指示灯与仪表的显示控制,以及与主控计算机之间进行数据传输等功能。根据以上要求,主控芯片选用Atmel公司生产的AT89C52, AT89C52是一种低电压,高性能的CMOS 8位单片机,与标准MCS-51产品的引脚和指令系统完全兼容[4]。

  AT89C52片内含8K的闪烁可编程可擦除只读存储器(FPEROM),256 B的内部随机数据存储器(RAM),已经可以满足本系统程序设计的需要,因此不需要进行外部程序存储器和数据存储器的扩展。

  由于本系统中需要处理的开关量和模拟量较多,因此选用8255对输入输出接口进行了扩展。将AT89C52的P1口作为A/D、D/A转换接口,用于模拟量的输入和输出,A/D、D/A转换芯片分别选用ADC0809和DAC0832,片选信号由高位地址线P2口提供。8255的扩展接口用作开关量的输入和输出,8255的端口选择和片选信号由经74LS373锁存后的低位地址线提供。

 另外,AT89C52还提供了一个具有多级 通讯功能的全双工串行接口,可以用作与主控计算机之间进行通讯。由于RS-232串行通信端口是PC机的标准接口,而且RS-232用作双向数据通信时接线十分简洁,因此选用RS-232作为通讯接口[4]。但是,RS-232的输出信号不但有正电压,还有负电压,所以选用半导体公司的RS-232接口芯片MAX232实现信号转换。图2为汽车驾驶模拟器单片机系统硬件电路简图。

系统硬件电路简图


图2 系统硬件电路简图

[page]

  2.3软件系统的设计

  汽车驾驶模拟器单片机软件系统需要完成模拟量和开关量的采集和处理、串行数据的发送与接收、控制信号的输出与显示、故障的监控与保护等功能。软件采用模块化设计思想,通过汇编语言编制而成,主要由主程序、定时器中断服务程序、串行口中断服务程序、数据采集和处理程序、信号的输出与显示程序等几部分构成。

软件系统程序流程图

图3 软件系统程序流程图

  主程序主要完成系统的初始化工作;定时器中断服务程序主要完成看门狗功能,在单片机发生异常情况时,能使程序及时复位,保证单片机系统能够正常工作;串行口中断服务程序主要实现单片机与主控计算机之间的通讯;数据采集和处理程序主要完成模拟量和开关量的采集,获取驾驶员的操控数据;信号的输出与显示程序将主控计算机的控制信息传送给单片机,用于控制指示灯和仪表的显示输出。图3为汽车驾驶模拟器单片机软件系统的程序流程图。

  3结论

  基于单片机的数据采集系统成本相对较低,接口的可扩展性好,同时,模拟量和开关量的预处理工作也可以由单片机来完成。系统完全可以满足汽车驾驶模拟器的交互性和实时性要求,已在所开发的汽车驾驶模拟器中得到了应用,取得了较好的效果。

 

 

关键字:汽车驾驶模拟器  单片机系统 引用地址:汽车驾驶模拟器单片机系统设计

上一篇:基于PC机与单片机的电子油门检测系统设计
下一篇:基于单片机的动力电池管理系统的硬件设计

推荐阅读最新更新时间:2024-03-16 12:46

单片机系统低功耗设计策略
在嵌入式应用中,系统的功耗越来越受到人们的重视,这一点对于需要电池供电的便携式系统尤其明显。降低系统功耗,延长电池的寿命,就是降低系统的运行成本。对于以单片机为核心的嵌入式应用,系统功耗的最小化需要从软、硬件设计两方面入手。   随着越来越多的嵌入式应用使用了实时操作系统,如何在操作系统层面上降低系统功耗也成为一个值得关注的问题。限于篇幅,本文仅从硬件设计和应用软件设计两个方面讨论。 1 硬件设计   选用具有低功耗特性的单片机可以大大降低系统功耗。可以从供电电压、单片机内部结构设计、系统时钟设计和低功耗模式等几方面考察一款单片机的低功耗特性。 1.1 选用尽量简单的CPU内核   在选择CPU内核
[单片机]
<font color='red'>单片机系统</font>低功耗设计策略
一种机器人视觉系统模块的设计
  一、概述   视觉技术是近几十年来发展的一门新兴技术。机器视觉可以代替人类的视觉从事检验、目标跟踪、机器人导向等方面的工作,特别是在那些需要重复、迅速的从图象中获取精确信息的场合。尽管在目前硬件和软件技术条件下,机器视觉功能还处于初级水平,但其潜在的应用价值引起了世界各国的高度重视,发达国家如美国、日本、德国、法国等都投入了大量的人力物力进行研究,近年来已经在机器视觉的某些方面获得了突破性的进展,机器视觉在车辆安全技术、自动化技术等应用中也越来越显示出其重要价值。本文根据最新的CMOS图像采集芯片设计了一种通用的视觉系统模块,经过编制不同的图像处理、模式识别算法程序本模块可以应用到足球机器人,无人车辆等各种场合。   二、设
[单片机]
一种机器人视觉系统模块的设计
单片机系统设计与C51编程实践分享
1.1 了解单片机的能力 【规则1】设计满足要求的最精简的系统。正确估计单片机的能力,知道单片机能做什么,最大程度的挖掘单片机的潜力对一个单片机系统设计者来说是至关重要的。我们应该有这样一个认识,即单片机的处理能力是非常强大的。早期的PC机,其CPU(8086)处理能力和8051 相当,却能处理相当复杂的任务。单片机的能力的关键就在软件设计者编写的软件上。只有充分地了解到单片机的能力,才不会做出“冗余”的系统设计。而采用许多的外围芯片来实现单片机能实现的功能。这样做,即增加了系统成本,也可能会降低了系统的可靠性。1.2 系统可靠性至关重要 【规则2】使用看门狗。看门狗电路通常是一块在有规律的时间间隔中进行更新的硬件。更新一般由
[单片机]
单片机系统中什么是数据、地址、指令
数据、地址、指令:之所以将这三者放在一起,是因为这三者的本质都是一样的──数字,或者说都是一串 0 和 1 组成的序列。换言之,地址、指令也都是数据。指令:由单片机芯片的设计者规定的一种数字,它与我们常用的指令助记符有着严格的一一对应关系,不能由单片机的开发者更改。地址:是寻找单片机内部、外部的存储单元、输入输出口的依据,内部单元的地址值已由芯片设计者规定好,不可更改,外部的单元能由单片机开发者自行决定,但有一些地址单元是一定要有的(详见程序的执行过程)。数据:这是由微处理机处理的对象,在各种不一样的应用电路中各不相同,一般而言,被处理的数据可能有这么几种情况: 1 地址(如MOV DPTR,#1000H),即地址1000H送入D
[单片机]
单片机系统抗干扰措施应从哪些方面设计
  1 引言   目前,开关电源模块单片机系统在星载仪器中担负着非常重要的任务,星载仪器往往处于复杂的空间环境之中,存在着大量的干扰源,如高能带电粒子主要通过单粒子效应对单片机系统构成影响,使其发生单粒子翻转事件,将导致程序走向混乱,使系统无法正常工作。因此,在系统设计上充分考虑MTD2002抗干扰设计,提高系统的可靠性尤为重要。对于单片机系统而言,干扰有两种,一是来源于系统外部环境和其它电气设备产生的干扰,通过传导和辐射等途径影响单片机系统正常工作;二是来源于系统内部,由系统结构、制造工艺等决定以及内部元器件在工作时产生干扰,通过地址、电源线、信号线、分布电容等传输,影响开关电源模块系统工作状态。MTD2002单片机系统抗干扰
[单片机]
最小单片机系统
  MCS-51系列是由INTEL公司于1980年所开发的8位单片机系列,最初的产品为带内部ROM的8051和不带内部ROM的8031。随着MCS-51系列单片机用户的增加,INTEL公司推出了带内部EPROM的8751和扩展功能的8032、8052、8752,同时其他公司也推出了在MCS-51单片机内核基础上设计的产品,如ATMEL的带FLASH MEMORY 的89C51、89C52,带在系统编程(ISP)接口的89S51、89S52。8031的内核还被集成在诸如智能IC卡一类的集成电路中。MCS-51系列的微控制器以其良好的可扩展性被广泛地应用。   MCS-51单片机具有4个8位的端口,分别为P0、P1、P2、P3。P0、P
[单片机]
最小<font color='red'>单片机系统</font>
利用Flash实现单片机系统的在线维护
1 引 言 单片机应用系统具有结构简单,可靠性高,灵活性强,性能价格比高等特点,如今已被广泛地应用于计算机行业的各个领域。随着单片机应用的推广,相应地带来了单片机系统的维护问题,特别是在相同硬件结构条件下多个版本软件的管理问题,因此实现单片机系统的在线维护是非常必要的。 2 系统设计原理 单片机系统的在线维护有两种情况,一种就是就将系统的程序分成两个部分,并分别装载到单片机的EPROM与FLASH中,如AT89C52等,因为 EPROM一般需要通过专门的编程仪器才能实现编程,所以一般是不能在线更改的;但是由于FLASH可以在线进行改写,通过对FLASH的在线编程就可实现单片机系统的在线维护了。此时的FLASH芯片也可以看成是
[单片机]
利用Flash实现<font color='red'>单片机系统</font>的在线维护
单片机系统常用软件抗干扰措施
单片机的可靠性设计是一项系统工程,单片机系统的可靠性必须从软件、硬件以及结构设计等方面全面考虑。硬件系统的可靠性设计是单片机系统可靠性的根本,而软件系统的可靠性设计起到抑制外来干扰的作用。软件系统的可靠性设计的主要方法有:开机自检、软件陷阱(进行程序“跑飞”检测)、设置程序运行状态标记、输出端口刷新、输入多次采样、软件“看门狗”等。通过软件系统的可靠性设计,达到最大限度地降低干扰对系统工作的影响,确保单片机及时发现因干扰导致程序出现的错误,并使系统恢复到正常工作状态或及时报警的目的。   一、开机自检 开机后首先对单片机系统的硬件及软件状态进行检测,一旦发现不正常,就进行相应的处理。开机自检程序通常包括对RAM、ROM、I/O口
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved