引言 ---车辆仪表是驾驶员与汽车进行信息交流的重要接口和界面,是车辆**行驶的重要保证。随着电子技术的广泛应用,传统汽车仪表逐渐被微处理器为核心的电子控制数字仪表取代已成为必然趋势。然而,目前国内车辆仪表数字化水平还不高,绝大部分仪表还是模拟式的,而大多数模拟仪表表头的体积较大、数量多,使得显示系统拥挤不堪,影响美观;另外一些模拟仪表故障率高,增加了用户的经济负担,减小了车辆行使的**系数。 ---为克服这些缺点,文中提出用51单片机、模/数转换器件ADC0809及霍尔开关及数字式温度传感器DS18B20等对其进行技术改进,设计并实现了新型全数字仪表系统,该仪表系统有显示直观准确、灵敏度高、使用寿命长、灵巧美观、成本低等优点。 1系统组成及工作原理 ---本系统功能由硬件和软件两大部份协调完成,硬件部分主要完成各种传感器信号的采集、转换,各种信息的显示等;软件主要完成信号的处理及控制功能等。 ---其工作原理是89C51单片机依次查询各传感器的输出信号(气压、油压等模拟传感器输出的模拟信号需要经过ADC0809进行模数转换);然后89C51对输入信号进行相应处理后通过显示模块44780输出,同时还可输出各种告警信号。 2硬件构成 ---该系统硬件主要包括以下几个模块:89C51主控模块、传感器模块、ADC0809模/数转换模块、44780显示模块等。其中89C51主要完成外围硬件的控制以及一些运算功能,传感器完成信号的采样功能,ADC0809完成将模拟信号转换成数字信号的功能,44780显示模块完成字符、数字的显示功能。 2.1 主控模块 ---系统采用ATMEL公司生产的AT89C51单片机,它带有4KB闪速式存储器、128B内存,*大工作频率24MHz,同时,具有32条输入输出线,16位定时/计数器,5个中断源,1个串行口。 2.2 温度传感器DS18B20 ---DS18B20是Dallas公司推出的单线数字式测温芯片,它能在现场采集温度数据,并将温度数据直接转换成数字量输出。DS18B20与AT89C51的接口电路图如图2所示,其中DS18B20工作在外部电源供电方式,单片机89C51采用P2.0和DS18B20通信。 2.3 44780显示模块 ---本系统采用44780驱动的LCD,HD44780(KS0062)是用低功耗CMOS技术制造的大规模点阵LCD控制器(兼带驱动器),和4bit/8bit微处理器相连,它能使点阵LCD显示大小写英文字母、数字和符号等丰富的信息,同时有较强的通用性应用,使用方便,用户能用少量元件就可组成一个完整点阵LCD系统,送入相关的数据和指令就可实现所需的显示。 ---44780显示模块有8条数据线,3条控制线。可与微处理器或微控制器相连,通过送入数据和指令,就可使模块正常工作,44780显示模块和89C51单片机连接电路如图3所示。 ---需要说明的是,真正投入使用的显示模块需要根据车辆生产厂家对仪表显示界面的具体需求到液晶生产公司定制。 2.4 A/D转换模块 ---由于本系统需处理多路模拟信号,故采用ADC0809A/D转换模块,它采用逐次逼近的方法完成A/D转换;其片内带有锁存功能的8 路模拟开关,可对8路0~5V的输入模拟电压信号进行转换,完成一次转换约需100μs。其输出具有TTL三态锁存缓冲器,可直接接到单片机89C51的P0口。 ADC0809与89C51接口电路如图4所示。 2.5 测速传感器 ---经调查,速度传感器是车辆传感器中的易损器件,所以该系统对测速传感器进行了改进,测速传感器由霍尔开关、磁铁组成。其工作原理是将霍尔开关和磁铁分别安装在车架、车轮的适当位置,车辆行驶时,在磁铁的作用下,霍尔开关产生开关信号,通过在单位时间对其计数可计算出车辆的行驶的瞬时速度,累计开关信号可计算出车辆行使的距离。它具有灵敏度高、价格低廉、不易损坏等优点。 2.6 其他模拟传感器 ---气压、油压、油量等参数的测量采用模拟传感器,其输出的模拟信号通过ADC0809模数转换后输入单片机89C51,经过相应软件处理后输出。 2.7 抗干扰设计 ---由于本仪表系统是为汽车、摩托车设计的,而汽车、摩托车的点火系统有较强的电磁干扰,另外车辆移动性大,有可能处于较强电磁干扰的环境中,因此必须采取抗干扰措施,否则系统难以稳定、可靠运行。本系统采用的是由硬件和软件相结合的抗干扰措施。 ---具体地讲,该系统主要采用了以下五个方面的抗干扰措施。 ---采用抗干扰电源: ---单片机系统供电线路是干扰的主要来源,本系统的电源由车载电瓶提供,车辆的点火系统、音响设备等都可能对本系统产生干扰,为此,可将车载电瓶12V电源经磁珠和电容组成π形滤波电路后,再经过UA7805C变压,然后经过稳压、滤波得到本系统电源。另外给每个集成电路芯片都安置一个0.01mF的陶瓷电容器,来消除大部分高频干扰。同时,良好接地是系统稳定工作的重要条件,由于本系统既有模拟电路又有数字电路,因此设计时将数字地与模拟地要分开,*后只在一点相连。 ---光电隔离: ---在I/O通道上采用光电隔离器,将单片机系统与各种传感器、开关从电气上隔离开来,很大一部分干扰可被阻挡。本系统的测速子系统输出的开关信号经光电隔离器4N33耦合至单片机P3.2口。 ---过压保护电路: ---本系统在输入输出通道上也设计了过压保护电路,它由限流电阻和稳压管组成,以防止引入高电压,损害单片机系统。 ---另外,本系统中,为消除按钮动作时产生抖动干扰,在按键与89C51间加入一个Schmitt触发器74HC14。 ---模/数转换电路的抗干扰措施: ---本系统模/数转换模块ADC0809送出的数字信号经锁存器锁存后传送给单片机,锁存器对干扰非常敏感,当锁存线上出现干扰时,会盲目锁存当前数据,为此可将锁存器与单片机设计在同一电路板上,使传输线上传送的是已经锁存好的控制信号。设计软件时,尽可能快地重复输出同一个信号,以减小干扰信号影响的概率。 ---CPU抗干扰措施: ---当干扰信号作用到单片机本身时,单片机将不能按正常状态执行程序,从而引起混乱。为此本系统采用了以下几种方法。 ---人工复位:当微处理器失控时,可使用复位方法处理,使程序自动从0000H开始执行。为此系统设置了复位键,当微处理器失控时,只要按下复位键,并持续10ms以上即可。 ---掉电保护:因为当车辆颠簸的路况时,可能引起电源等接触**,使系统陷入混乱状态,电源电压恢复正常后,系统难以恢复正常。为此系统设计了掉电保护。掉电信号由硬件电路检测到,加到单片机的外部中断输入端。将掉电中断规定为**中断,使系统及时对掉电做出反应。在掉电中断子程序中,首先进行现场保护,当电源恢复正常时,单片机重新复位,恢复现场,继续工作。至于程序跑飞,可以用软件陷阱和看门狗将程序拉回到复位状态。具体的讲,可以在RAM中埋一些标志,在每次程序复位时,通过这些标志,可以判断复位原因并根据不同的标志直接跳到相应的程序。这样可以使程序运行有连续性,用户在使用时也不易察觉到程序被重新复位过。 3 软件设计 ---该系统软件主要由主程序、中断子程序、数据采集与A/D转换子程序、显示子程序、告警子程序等六大模块组成,因为C语言编写的软件易于实现模块化,生成的机器代码质量高、可读性强、移植好,所以本系统的软件采用C语言编写,在KeilVision3 Demo版本的集成开发环境下进行编译连接。 3.1主程序设计 ---主程序主要完成硬件初始化、子程序调用等功能,主程序流程图如图5所示。 3.2数据采集子程序设计 ---数据采集与A/D转换子程序根据输入参数对相应的模拟信号进行采样、量化及处理,并将相应信号的数值返回主程序。 3.3显示子程序设计 ---显示子程序完成符号、数值的显示输出。 3.4中断子程序设计 ---中断子程序有三种中断源:键盘、车轮(车轮每转一圈产生一个中断脉冲)及掉电保护电路,分别完成面板功能设置、测速功能和掉电保护。由于本系统中断源共有6个,所以用优先权编码器(74LS148)对外部中断源进行了扩展。 3.5告警子程序 ---主要实现异常情况下控制告警信号输出。如当冷却液温度升高到接近沸点(例如95~98℃)时,或燃油箱内的燃油量少于某一规定值时,音频告警装置会发出不同频率的告警信号,同时相应的指示灯发亮(点亮告警指示灯的任务由显示子程序来完成),以引起驾驶员的注意。 4 仿真与调试 4.1仿真器选择 ---本系统选用ME-52单片机仿真开发系统,它实时仿真频率高达33MHz,提供2~24MHz的时钟信号。同时它提供64KB程序代码存储器,支持仿真所有程序和数据地址空间,支持FranklinV3.xx/Keil6.xx编译连接工具。具有分别独立控制项目文件的项目管理器。另外具有VC++风格的窗口驻留,窗口动态切分和工作簿模式窗口界面。 4.2仿真调试 ---在仿真调试阶段,采用“自底向上逐步集成”的策略,逐模块进行仿真测试,在此基础上逐步集成。譬如可先仿真显示模块、测速子模块、测温子模块等,然后将仿真成功的模块逐个加入主程序进行仿真,在仿真过程中发现错误,采用“分块压缩策略”,快速找到并改正错误;注意在集成过程中出现问题,大多是由于模块间资源使用冲突引起的。当软件模块仿真成功后,可与硬件一起进行在线仿真,此时在调试中出现的问题大多是由于连接线连接错误、虚焊、布线不合理等原因造成的。 |