




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业论文船用柴油机遥控系统设计
毕业设计(论文)
题目船用柴油机遥控系统设计
完成日期年月日
毕业设计(论文)课题任务书
(----学年)
学位论文原创性声明
本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其它个人或集体已经发表或
撰写的成果作品。本人完全意识到本声明的法律后果由本人承担。
作者签名:必须本人签字年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保障、使用学位论文的规定,同意学校保留并向有关学位论文管理部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权省级优秀学士学位论文评选机构将本学位论文的全部或部分年月日
导师签名:必须本人签字年月日
目录
摘要„„„„„„„„„„„„„„„„„„„„„„„„„„„„„“1前言„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„21船舶遥控系统设计的背景和要求„„„„„„„„„„„„„„„„„
1.1船舶遥控系统设计的背景„„„„„„„„„„„„„„„„„„„
1.2船舶遥控系统设计的基本要求„„„„„„„„„„„„„„„„„2船舶柴油机遥控的系统设计„„„„„„„„„„„„„„„3
2.1系统的结构设计„„„„„„„„„„„„„„„„„„„„„„3
2.2系统的主要功能设计„„„„„„„„„„„„„„„„„„„„„83系统硬件电路设计„„„„„„„„„„„„„„„„„„„„„„„12
3.1系统硬件结构介绍„„„„„„„„„„„„„„„„„„„„„„3.2上位机电路设计„„„„„„„„„„„„„„„„„„„„„„14
3.2.1电源电路设计„„„„„„„„„„„„„„„„„„„„
3.2.2显示电路设计„„„„„„„„„„„„„„„„„„„„3.3下位机电路设计„„„„„„„„„„„„„„„„„„„„„„15
3.3.1LED灯显示电路设计„„„„„„„„„„„„„„“„„„
3.3.2继电器状态检测电路设计„„„„„„„„„„„„„„„„„
3.3.3继电器驱动电路设计„„„„„„„„„„„„„„„„„„„
3.3.4直流电机桥式驱动电路设计„„„„„„„„„„„„„„„„
3.3.5转速脉冲降幅电路设计„„„„„„„„„„„„„„„„„„4系统软件设计„„„„„„„„„„„„„„„„„„„„„„„„„„
4.1RS-485通信原理与实现„„„„„„„„„„„„„„„„„„„„
4.1.1RS-485通信原理„„„„“„„„„„„„„„„„„„„„
4.1.2RS-485通信的实现„„„„„„„„„„„„„„„„„„„4.2系统程序结构设计„„„„„„„„„„„„„„„„„„„„„„
4.3遥控功能程序设计„„„„„„„„„„„„„„„„„„„„„„
4.4手动功能程序设计„„„„„„„„„„„„„„„„„„„„„„
4.5参数的测量与设备的控制„„„„„„„„„„„„„„„„„„„„5系统调试与结论„„„„„„„„„„„„„„„„„„„„„„„„致谢”„„„„„„„„„„„„„„„„„„„„„„„„„„„„„27参考文献„„„„„„„„„„„„„„„„„„„„„„„„„„„„28附录„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„30
305
船用柴油机遥控系统设计
摘要:本柴油机遥控系统设计研究的主要内容是基于核心控制器——atmega16单片机,围绕其检测系统、控制系统、执行系统、报警系统四大系统进行的,其核心技术涉及到柴油机各状态参数的检测、控制信号的数字输出、EIA-485通信三大问题。本设计解决了船舶柴油机的遥控问题。能检测柴油机的主机滑油压力、齿轮箱滑油压力、主机转速、主机冷却水温、离合器失能、齿轮箱正车挂排缸压力、齿轮箱倒车挂排缸压力等重要参数,确保了柴油机的运行安全。且设计采用的自识别系统和优化技术,能保证推进装置始终处于最佳工作状态,解决了遥控大换向时经常出现的主机闷车熄火的通病。适用于长期在长江、内河及沿海湖泊作业的中、小型船舶。
关键词:atmega16单片机;EIA-485通信;船舶柴油机;遥控
Abstract:Thisenginecontrolsystemdesign,themaincontentsisbasedonthecorecontrollerchiparounditsatmega16--andtestingsystem,controlsystem,implementsystem,alarmsystem,thesystemoffourcoretechnologyinvolvesdieselstatusparameterstestingandcontrolsignaldigitaloutput,EIA-485communicationsthreeproblems.ThedesignoftheMarinedieselenginecontroltosolveproblems.Todetectdieselengineluboilpressure,andthemaingearboxluboilpressureandspeed,mainenginecoolingwaterhost,clutchincapacitation,gearboxarehangedlinecylinderpressure,cargearboxhangbackrowcylinderpressureandotherimportantparameters,ensurethesafetyoperationofthedieselengine.Andthedesignandoptimizationtechnologysincerecognitionsystemcanensurepropulsionsystemarealwaysthebestworkingstate,solvedthelargeremotehoststuffyoftenappearinthecarstalled.ApplicableintheYangtzeriver,theriverandlong-termassignmentsinthecoastal
306lakes,smallships.
Keywords:Atmega16microcontroller;EIA–485communication;Marinedieselengine;remote
前言
现代电子技术和计算机技术的迅猛发展和普及应用,使得自动测控这个技术领域发生了革命性的变化,从而波及各行各业。在船舶的控制领域,也因而发生了翻天覆地的变化。现代船舶几乎都采用了高度自动化的主机遥控系统。这类系统的主要特点是,用微型计算机的软件程序来实现主机遥控的各种逻辑和控制回路,系统的各个环节和遥控系统的操作较为复杂,而且功能也非常的完善。
此外,船舶的柴油机是船舶前行的动力装置,如何控制好该动力装置,直接关系到船舶运行的安全和效率。船舶主机的全自动控制业已成为船舶制造的一个发展方向,遥控技术的发展即可解决这个难题。实现对柴油机各状态参数的实时检测,利用自动控制算法对各参数进行处理,将处理结果清晰显示,将故障状态实时告警,根据处理结果对操作系统发出控制指令,自动控制柴油机安全可靠运行。本设计充分考虑了现实系统的各要素性质,相互关系和规律,并进行一定的抽象,建立的可以描述该系统的逻辑关系和数学关系的理论模型,然后利用编程技术将这些模型编成微型计算机系统能够识别的程序,以实现系统要求达到的功能。
国内船舶柴油机的遥控属于船舶自动化技术领域,经历了由轮机当班人员依照驾驶台指令操作的本地控制、采用机舱集控室的集中控制、机舱无人值班船舶到属于全自动化以节能为中心的网络型发展的过程。由此,船舶主机遥控系统应运而生,且成立世界主要造船国家船级社的通用标准。国内外的许多同类产品的控制器都采用了PLC作为控制器,致使装置本身的体积偏大,造价成本偏高。部分产品的通信采用了TCP/IP协议,使得网络的结构复杂化,可靠性降低,可维护性不强。供电电源也较为单一,不能满足不间断电控的要求。逻辑运算能力也颇低,没有可靠的自动控制算法作保障。
因而本设计采用了atmega16单片机作为控制器,以RS-484通讯方式进行控制系统(上位机和下位机之间)数据和命令的传递。藉由系统里检测系统、控制系统、执行系统、报警系统四大模块,实现了船舶柴油机运行参数的检测,利用调速电机对柴油机转速和方向进行控制,以及人机交互。达到了简化系统结构、提高可维护性、显示简洁,输入操作简单,降低成本的目的。
307
1船舶遥控系统设计的背景和要求
1.1船舶遥控系统设计的背景
目前,我国应用比较广泛的船用主机遥控装置,如果以控制方式进行划分,大致可分为以下四种方式:机械式;全气动控制式;气电混合控制式;全电控制式。其中,机械式还可分软轴控制式和钢丝绳控制式,因其受控制距离的限制,主要用于近距离控制或小型船舶。
全气动控制式遥控装置的控制原理一般采用气动逻辑元件或气动阀件组成气动发讯及程序控制回路,然后通过气动三位置气缸控制齿轮箱换向,通过气动膜片执行器控制主机油门调速。因为气动元件以气为动力和介质而不需要电,以及气动元件的密封性和不会产生电火花,所以气动遥控装置即使在失电的情况下仍可以安全驾驶,比较适合易燃防爆(如油船、液化气船、化学品船)及环境条件比较恶劣的船舶使用。全气动遥控装置具有原理比较简单易懂,适应各种易燃、易爆等恶劣环境,维修维护比较容易等特点。另外,全气动遥控装置使用范围广,执行机构力矩大,几乎所有国产和进口机型均可采用。
气电混合控制式遥控装置的控制原理是采用气动元件和电器元件结合起来,组成程序控制系统,然后通过电磁阀进行转换,再通过气动执行偶控制齿轮箱转向(如果齿轮箱为电控转向齿轮箱则不需要转换,直接控制)。而主机调速则一般直接采用气动控制,不进行转换。气电混合控制式遥控装置从全气动遥控装置的基础上发展而来,其性能和控制原理与气动控制原理基本相同,只是将其气动控制转向发令及自动程序部分改为电气控制,然后再将电信号转换为气信号通过气动执行机构执行。
电动控制式遥控装置从发令到程序采用电子元件和高集成电路,然后采用控制电机转换成机械行程,控制主机和齿轮箱调速和转向。电子遥控装置安装连接比以上两种遥控装置都简单,可以实现更复杂的程序和功能,更适合多个控制站对主机组进行控制。当然其执行力矩没有以上两种装置大,其使用范围有一定的局限性。电动控制式遥控装置国内从上世纪八十年代开始研发,但其早期的电动遥控装置因安装比较复杂,元器件性能比较差,因而性能不是很稳定。现在电动遥控装置多采用先进的芯片控制技术,控制微型电机作输出位移,然后通过软轴和主机换向及油门把手连接,实现对主机的控制。电动遥控设计控制对象主要为国外进口或引进机型,对国内部分机型不太合适,存在油门执行推拉力不足的缺点。但是电动控制遥控装置无需气源,驾驶室与机舱连接完全采用电缆连接,因而安装简单。但其价格相对于国产全气动遥控与气电混合控制式遥控来说比较
308高。
现今,国内外的同类产品都在向着带有简易传令车钟装置,体积小,建议操作,直观感强的方向发展。部分产品已经做到了只需4X1电缆即可完成整个系统(报警箱报警采集点除外),结构相对较为简单。其供电电源多希望采用两路电源自动切换措施,一保障供电的可靠性,设备的可靠性。以求适应恶劣环境、保证线路简单、程序极易修改的目的。在初级逻辑运算的基础上,希望增加数值运算、死循环调节功能,增加模拟量和PID调节模块,提高运算的速度。因此本设计采用的控制方式为电动控制遥控方式。
1.2船舶遥控系统设计的基本要求
目前国内外大型船舶的自动化程度都比较高,技术上基本采用了当前最新的计算机网络监控于控制技术,真正实现了无人机舱。但由于结构复杂和其初始投资较高,故在小型船舶上的推广应用还有一定的难度。同时大多数主机遥控装置使用自行研发的专业控制装置,可靠性差,通用性弱。因而船舶的遥控设计要求装置简单,易操作,可靠性强,耗能低,抗干扰能力强,控制精确及系统的可拓展性强。结合机舱条件、调试简单、维护简单等因素,我们需要使船舶的遥控在设计的时候满足下列要求:灵活性好、可调性高、通讯性强、性价比高,维护性好。
过去,电气工程师必须为每套设备配置专用的控制装置,严重的限制了遥控装置的通用性和拓展能力。现在采用电气控制遥控装置,主控芯片采用高性能单片机,因而我们只需要根据不同的环境编写不同的控制程序。如此可使得遥控装置的灵活性得到了大大的提高,在性能拓展方面,我们只需根据实际需要添加相应的程序即可完成功能的拓展。而一旦出现故障,系统的自检功能将指出故障的部位,便于维修人员更换模块,使维修难度和时间降低到了最低程度。同时,亦压缩了备件库存。降低了成本。
船舶遥控装置设计的初期,需要做大量的调试工作,利用单片机可对所控制的功能在实验室内进行模拟调试,大大增加了系统的调试性能,缩短了现场调试的时间和难度,减少了遥控产品的开发周期。
目前,随着船舶的大型化,其需要连接的控制设备的距离也增加了许多。要实现对主机及各设备的精确和及时控制,势必对遥控系统的通信能力提出了很高的要求。利用单片机做控制器,可灵活的选用成熟的串口通信技术实现及时通讯。如RS-485技术便可完全满足现代规模庞大、结构复杂、功能综合、因素众多的工程大系统的控制要求。
由于单片机自身数据处理、逻辑判断能力相对都较强,且可与外部电路配合,特别是与集成电路元件配合,可大大降低遥控装置的成本。此外,应用集成元件
309可降低系统的复杂度,结构变的极为简单。若在硬件设计上采取光电隔离、滤波等技术,在软件上利用一系列控制算法、滤波技术、自诊断等技术,既可抵消环境的干扰,又提高了设备的可靠性。
船舶遥控的主要设计依据是《船用中速柴油机主机遥控装置技术规格书》,《内河钢船建造规范》,《钢质海船入级与建造规范》,《船舶与海上设施与电气电子设备型式试验指南》。
由上述规范知:在驾驶室用操纵手柄直接遥控齿轮箱按设定的程序换向和控制主机按给定的加速和减速程序调速。操纵器发送指令(正车、停车或倒车指令),若齿轮箱处于相反工作状态,则齿轮箱等待脱排,延时0.5秒后开始脱排,同时接通柴油机限速阀,延时5分钟后脱排完成。接通相应换向阀(正车或倒车换向阀),断开柴油机限速阀,齿轮箱开始脱排;若齿轮箱正处于脱排状态,则直接连通相应的换向阀,齿轮箱开始合拍;整个指令的完成过程时间不能超过12秒。控制器接收到急停命令,检测齿轮箱工作状态,若齿轮箱处于合排状态,则要求齿轮箱等待脱排,延时0.5秒后开始脱排,延时5秒后脱排完成,保持脱排状态;若齿轮箱已处于脱排状态则保持脱排状态。一旦实施过急脱排控制,只有确认主机状态正常后,由机旁输入急停指令才可以解除该状态。系统由操纵器发出指令,直到齿轮箱到达相应指令要求的状态,整个相应过程应不超过12秒,若超过时间,控制器发出错向报警。
2船舶柴油机遥控装置的系统设计
2.1系统结构设计
本设计主要有两个大的组成部分,即上位机控制部分、下位机控制部分和RS485通信部分组成。其系统结构框图如图2.1。
3010
图2.1系统结构框图
上位机控制部分和下位机控制部分都是围绕以下四个子系统来设计实现的,即检测系统、控制系统、执行系统、报警系统、电源系统。检测系统包括数字量输入检测、模拟量输入检测。模拟量输入检测主要完成电压的检测,数字量输入检测主要完成对外围设备物理开关量的检测。控制系统由三部分组成,智能芯片自动控制器,键盘模块和显示模块。智能芯片控制器实现对各数字量、模拟量的数字运算与逻辑分析,并对执行系统给出明确的指令。键盘模块和显示模块可实现人机交互。下位机的执行系统比较复杂,可细分为柴油机的调速系统,柴油机的转向控制系统,报警系统的控制。报警系统分为灯光报警和声音报警,灯光报警有两种状态,一是常亮,二是闪烁。由于要保证微型控制器的持续可靠工作,则必须保证电源的持续、稳定、可靠、安全的工作,因而本系统的电源系统很好的解决了这个问题。RS485通信系统完成上位机系统和下位机系统的数据传输、命令传递两个主要的功能。
2.2系统的功能设计
本遥控系统有的主要功能包含手动控制,遥控控制,紧急停车和越控,它们完成了船舶柴油机遥控装置的主要功能,柴油机遥控的后备保护(车钟遥控装置)不在本设计的考虑范围之列。
手动控制需要在上位机和下位机同时切换到手动操作,且经确认一致后操作才有效。该功能包含四个操作:分别为完车、备车、停车和消音操作。完车、备车、停车操作在单方面发生时,系统会声音报警和灯光闪烁报警,在上位机和下位机的操作取得一致时,声音报警解除,灯光闪烁报警改为常亮提示。当进行消
3011音操作后,声音报警也可单方面解除,灯光闪烁报警也变为常亮提示。
遥控控制,当上位机手柄动作时,上位机控制芯片检测手柄的动作状态,做出顺车、停车、倒车的判断,把命令发送到下位机,下位机根据收到的命令控调速直流电机和顺车、倒车电磁阀动作。下位机检测调速直流电机的动作状态和顺车、倒车电磁继电器的状态,判断顺车、倒车动作是否准确,并判断是否有错向发生。下位机还将对柴油机的转速进行检测,并根据转速作出是否会发生共振、是否超速,若检测的转速可能引起共振,下位机将向上位机发出转速禁区的报警信号。若检测的转速超出预置的转速,将自动调用减速控制程序以保证柴油机在正常的转速区间工作。当系统处于遥控控制状态时,下位机将自动检测外部设备的工作状态,如主机水温、主机油压、齿轮箱油温,齿轮箱油压、离合器压力。上述的报警动作将在故障排除或者有消音操作时解除。下位机对检测到得这些参数进行智能分析,若上述参数异常,下位机将作声音报警和灯光闪烁报警,并实时将上述故障点通过MAX485发送到上位机,由上位机控制进行声音报警和灯光闪烁报警。
越控控制功能主要是针对轻微故障和紧急情况而设置的操作。在遥控控制正常工作时,一旦发生轻微的外围设备故障或遥控程序故障时,进行越控操作能够使柴油机的工作状态恢复正常,屏蔽掉对外围设备故障状态的处理。该操作只能在上位机进行,下位机无此操作。在进行越控操作时,上位机将进行声音报警和灯光闪烁报警,整个报警过程可由动作完成或消音操作解除。这是系统的一种自我修复能力的体现。这从很大程度上加强了整个遥控装置的可靠性,同时也对紧急事件的处理能力有了极大的提高。
紧急停车功能主要是为了应对紧急情况。当船舶柴油机主机需要立即停车时,由遥控装置控制柴油机按一定得操作规范智能停车。不论是上位机还是下位机,都可单方面的进行紧急停车的操作,无须验证上位机和下位机的该操作是否同步有效。但在进行该操作时,会发出声音报警和灯光闪烁报警信号,且报警信号须传送到另一方的控制芯片,作出相应的报警动作。该报警信号在停车操作完成或有消音操作时解除。由于紧急停车操作在手动控制和遥控控制时都有效,无须切换到后备保护(车钟操作控制),很大程度上保证了船舶运行的安全性。
3系统硬件电路设计
3.1硬件结构设计
整个遥控系统由上位机控制部分、通信模块和下位机控制部分组成,其系统硬件结构图如图3.1所示。
3012
图3.1系统硬件结构图
上位机控制部分由A/D采样模块、显示模块、按键模块、报警模块组成。下位机控制部分由A/D采样模块、转速检测模块、显示模块、按键模块、报警模块、继电器工作状态检测模块、电机调速模块组成。按键输入模块、报警模块比较简单,将不做详细介绍。显示模块含LED灯显示电路、数码管显示电路。报警模块指蜂鸣器的报警电路。A/D采样模块是指对电压的检测电路。按键输入模块是指按键的检测电路。转速检测模块是指柴油机的检测电路。继电器检测模块是指各继电器开关量的输入检测电路。
3.2上位机电路设计
3.2.1电源电路设计
电源电路设计包括电源自动切换设计、降压稳压电路设计和失电检测设计。由于本系统属于电动式遥控控制装置,因此必须保证电源的可靠性、只需性,可靠性,否则,一旦出现电源故障,整个控制装置将不能工作,势必对船舶的正常运行造成极大的危害。为此,在上位机和下位机的硬件电路设计时,都对电源电路做了专门的设计,既有供电的自动切换,也有降压稳压电路设计,还有失电的检测。可实现交流电源发生故障时,后备电源(蓄电池电源)自动切换。工作原理为:当交流电源出现故障时,24V蓄电池将自动投入电路,向系统提供稳定的24V电源。图中的整流二极管可以使蓄电池电源的电流流向控制系统。稳压二极管可以防止交流电源过来的电流破坏蓄电池。
3013
图3.2.1降压稳压电路所示
降压稳压电路如图3.2.1所示。其功能为将24V电压降到稳定的5V电压。由于系统中的集成芯片的工作电压都是5V,故要对24V电压进行降压稳压处理。图中稳压芯片采用LM2575,LM2575系列开关稳压集成电路是美国国家半导体公司生产的1A集成稳压电路,它内部集成了一个固定的振荡器,只须极少外围器件便可构成一种高效的稳压电路,可大大减小散热片的体积,而在大多数情况下不需散热片;内部有完善的保护电路,包括电流限制及热关断电路等;芯片可提供外部控制引脚。是传统三端式稳压集成电路的理想替代产品。最大输出电流为1A,最大输入电压63V。输出电压:3.3V、5V、12V、ADJ(可调),震荡频率54KHz,最大稳压误差4%;转换效率75%~88%(不同的电压输出效率不同)。
失电检测电路如图3.2.3所示。其功能是检测外部电源的工作状态,当外部电源不故障时,将故障信号通过单片机报警。图中电源代表交流电源输入,OFF输出到单片机的PB5。当交流电源供电正常,三极管关断,单片机的PB5脚检测到低电平。当交流电源故障,三极管开通,OFF输出高电平,单片机即可检测到高电平,判断为失电,然后报警。
3014
图3.2.3失电检测电路
3.2.2数码管显示电路
本设计的显示功能由两部分完成,一是数码管显示,二是LED灯显示。数码管显示主要用来显示转速,LED灯则是用来显示各操作的状态和外围设备的状态。LED的显示分为闪烁和常亮两种,用来进行灯光报警。
图3.2.4数码管显示电路
数码管的显示电路如图3.2.4所示。数码管主要用来显示转速。数码管采用共阳7段数码管,显示驱动芯片采用74LS164。单片机采用Timer2定时器定时20mS,将所要显示的数据送出后就不再管,直到下一次显示数据需要更新时,即下一个20mS定时到,再传送一次新数据,该显示方式显示数据稳定,占用很少的CPU时间。若采用动态显示,则需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。图中还采用了一个NPN三极管,利用PWM
3015控制数码管显示的亮度,四级调节。改变PWM信号的占空比,即改变了电压的有效值,因而可实现对数码管显示亮度的调节。图中的DATA端口用于单片机向移位寄存器送数据,SCK端口用于单片机为移位寄存器移位提供时钟信号。该显示的驱动程序如下:
voiddisplay(uchar*str)
{
uchari,j,tmp;
for(i=0;i<4;i++)
{
tmp=led_7[*str++];
for(j=0;j<8;j++)
{
SCK=0;
DAT=tmp&0x01;
SCK=1;
tmp>>=1;
}
}
}
Led_7[]数组中存放数码管显示需要的段码,0到9十个数字的段码为{0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09}。tr[]数组用于存放需要显示的数据,该显示数据根据转速检测的结果计算得出。上面驱动程序执行时每次送8位数据,连续送4次,即可实现四位转速的显示。
LED灯(即报警灯、指示灯)的显示电路如图3.2.5所示。LED灯主要用来显示特命令的操作以及检测各继电器的状态。显示驱动芯片采用MM74C373,该芯片是并入并出芯片,芯片的D1~D8引脚分别连接到单片机的PC口的PC0~PC7。每片显示驱动芯片采用MM74C373有一个使能端LE,当该引脚为高电平时,芯片被选中,芯片才能有效工作。使用结束,需要对LE清0,关闭驱动芯片,以防干扰。该显示芯片可以直接操作到位,即对每个灯实现直接的控制。所有的LED灯的电源端都是接的NPN型三极管2N3906。三极管的基极电压由单片机的PWM信号提供,单片机可通过改变占空比实现对LED灯发光亮度的调节。
3016
图3.2.5LED灯显示电路
3.3下位机电路设计
下位机的转速显示与上位机的转速显示电路相同,只是少了一个调节光亮强度的功能,即少了三极管部分。下位机的电源电路与上位机也是一致的,下位机仅仅少了一个失电检测的功能部分。
3.3.1LED灯显示电路
下位机的LED显示电路与上位机不同,采用的显示驱动芯片为74LS595。其电路原理图如图3.3.1所示。
3017
图3.3.1下位机LED显示驱动电路
该电路也被用来显示特命令的操作以及检测各继电器的状态。74ls595的数据端:QA~QH:八位并行输出端,可以直接控制数码管的8个段,在该显示电路中,由每一位去控制各个LED灯。QH’:级联输出端。用来连接下一个74LS595的数据输入端SI。SI:串行数据输入端。74LS595的控制端说明:SRCLR(10脚):低电平时将移位寄存器的数据清零。本电路中直接与VCC相连。SRCLK(11脚):上升沿时数据寄存器的数据移位。QAQBQC„QH;下降沿移位寄存器数据不变。(脉冲宽度:5V时,大于20纳秒。)RCLK(12脚)上升沿时移位寄存器的数据进入数据存储寄存器,下降沿存储寄存器数据不变。先给RCLK低电平,当移位结束后,在RCK端产生一个正脉冲,更新数据。OE(13脚):高电平时禁止输出(高阻态)。电路中直接与地相连。74164和74595功能相仿,都是8位串行输入转并行输出移位寄存器。74164的驱动电流(25mA)比74595(35mA)的要小,14脚封装,体积也小一些。74164和74595功能相仿,都是8位串行输入转并行输出移位寄存器。74164的驱动电流(25mA)比74595(35mA)的要小,14脚封装,体积也小一些。74595的主要优点是具有数据存储寄存器,在移位的过程中,输出端的数据可以保持不变。这在串行速度慢的场合很有用处,数码管没有闪烁感。与164只有数据清零端相比,595还多有输出端时能/禁止控制端,可以使输出为高阻态。
该显示电路的驱动程序如下:
str[]={0x00,0XFE,0XFD,0XFB,0XF7,0XEF,0XDF,0XBF,0X7F,0xff,0xbe}用于存放需要显示的LED灯段位码。
voidled_display(uchar*str)
{
uchari=0,j=0;
for(i=0;i<2;i++)
{
OutByte=*str++;//再输出段码
3018for(j=0;j<8;j++)
{
SLclk=0;
Bout=Bit_Out;
OutByte>>=1;
SLclk=1;//位同步脉冲输出
}
Sclk=0;
Sclk=1;//一个锁存脉冲输出
}
}
3.3.2继电器状态检测电路
继电器状态检测电路主要用来检测柴油机的主机滑油压力、齿轮箱滑油压力、主机转速、主机冷却水温、离合器失能、齿轮箱正车挂排缸压力、齿轮箱倒车挂排缸压力等重要参数和遥控/手动、紧急停车按键状态。检测电路电路如图
3.3.2所示。
由于系统需要测量的外部逻辑数据(开关量)比较多,而单片机的32个I/O口不够用,必须进行端口的扩展,以测量外部的开关信号。图中的RP2为2K的排阻,起限流作用。D30~D36为稳压二极管,防止外部设备的电压对芯片造成破坏。74LS165是并行输入,串行输出移位寄存器。其引脚A、B、C、D、E、F、G、H为并行输入端。QH为串行输出端。CLOCK:时钟输入端。CLOCKINH:时钟禁止端。当时钟禁止端为低电平时,允许时钟输入,本电路直接与地相连。S/L:移位与置位控制端。QH:扩展多个74LS165首尾连接端。本电路没有用到此功能,故不作考虑。
3019
图3.3.2单片机端口扩展电路
该扩展电路的驱动程序如下:程序返回值read_temp用于存放单片机读到的外部开关信号。
ucharread_data(void)
{
uchari;
DATA=0;//锁存八位数据
DATA=1;
for(i=0;i<8;i++)
{
read_temp<<=1;//左移一位
RCLK=0;
if(DATAIN==1)
read_temp|=0x01;
RCLK=1;
}
returnread_temp;
}
3.3.3继电器驱动电路
继电器驱动电路主要用来驱动电磁继电器控制柴油机的正转或反转,以及直流调速电机的驱动电流的放大。其驱动电路原理图如图3.3.3所示。
3020
图3.3.32803驱动电路原理图
由于单片机的I/O口的驱动电流比较小,只有20mA,不能直接驱动直流电机和电磁继电器,故需要做一个专门的驱动电路,以放大单片机I/O口的输出电流,达到能够驱动达林顿管和电磁继电器的目的。设计中采用的驱动芯片为ULN2803,使得输出电流大于200mA。图中的限流电阻RP1采用5K的排阻。IN8~IN1分别连接到单片机PC口的PC0~PC7。
ULN2803它的内部结构是达林顿管阵列,在芯片内部做了一个消线圈反电动势的二极管。内部的输入输出是一个反相器,实际上相当于一个三极管,当输入高电平时,输出是低电平;当输入低电平时,输出高电平。
如图3.3.4为电磁继电器的驱动电路。当OUT5~OUT8输入低电平时,对应的电磁继电器吸合,其输出(C7、C9、C14、C16)即可接通到24V的直流电源上,为电磁阀和报警器提供电源。OUT5~OUT8受单片机控制,其电流镜ULN2803放大之后,电平与单片机的输出相反。
图3.3.4电磁继电器的连接图
3.3.4直流电机桥式驱动电路
直流电机桥式驱动电路主要是控制直流调速电机的转向,以实现对柴油机加速和减速的控制。驱动电路电路图如图3.3.5所示:
3021
图3.3.5直流电机驱动电路
柴油机的调速是通过直流电机的位移量改变的。因此直流电机的功率较大,其工作电流大,电压也较大,为24V。为了保护系统电路和加强电机驱动的稳定性和可靠性,利用桥式电路又做了一个驱动电路。当图中OUT1为低电平,OUT4为高电平时,三极管Q1开通,和三极管Q4闭合时,电机电源满足工作条件,可正转,实现柴油机的加速;同时必须使得OUT2为高电平,OUT3为低电平,三极管Q2关闭,三极管Q3开通,以减小漏电流对电机运行控制的干扰,及提高电机供电的可靠性。同理,要使电机反转,实现柴油机的减速操作,只需要进行相反的操作即可。若要停止电机则需要使Q1、Q2同时关断。
3.3.5转速脉冲降幅电路
转速脉冲降幅电路的功能是将传感器24V的脉冲信号转化成5V的脉冲信号,以及对脉冲信号整波,使脉冲上升沿和下降沿更陡。该降幅电路原理图如图
3.3.6所示。
3022
图3.3.6转速脉冲降幅电路原理图
柴油机的转速经电磁传感器检测、变换之后,输出的是0V和24V的TTL信号,而单片机的允许电压最大只有5V,因此需要对转速脉冲进行降幅处理,使其转化为0V和5V的TTL信号。该降幅电路图采用了比较器工作的原理,当输入电压大于比较器设定的参考电压时,比较器输出高电平5V,当输入电压低于设定的参考电压时,比较器输出0V,这样即实现了对转速脉冲的幅值变换,还对转速脉冲可以起到整波的效果。原理图中的比较器选用的是LM339。6号输入端起到了门限电压的作用,经两个电阻分压之后,门限电压约为2.5V,7号输入端输入转速脉冲,图中D21限流二极管防止了输入转速脉冲对门限电压的干扰。
4系统软件设计
4.1RS-485通信
4.1.1RS-485通信原理
串行通讯标准RS-485,是由电子工业协会(EIA)制订并发布的。标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。
RS-485通信的数据信号采用差分传输方式,也称作平衡传输,它使用一对双绞线,将其中一线定义为A,另一线定义为B。通常情况下,发送驱动器A、B之间的正电平在+2~+6V,是一个逻辑状态,负电平在-2V~6V,是另一个逻辑状态。另有一个信号地C,在RS-485中还有一个“使能”端。“使能”端是用于控制发送驱动器与传输线的切断与连接。当“使能”端起作用时,发送驱动器处于高阻状态,称作“第三态”,即它是有别于逻辑“1”与“0”的第三态。
RS-485标准,具有多点、双向通信能力,即允许多个发送器连接到同一条总线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了总线共模范围,
3023后命名为TIA/EIA-485-A标准。RS-485可以采用二线与四线方式,二线制可实现真正的多点双向通信。RS-485采用平衡发送和差分接收,因此具有抑制共模干扰的能力。加上总线收发器具有高灵敏度,能检测低至200mV的电压,故传输信号能在千米以外得到恢复。RS-485采用半双工工作方式,任何时候只能有一点处于发送状态,因此,发送电路须由使能信号加以控制。RS-485用于多点互连时非常方便,可以省掉许多信号线。应用RS-485可以联网构成分布式系统,其允许最多并联32台驱动器和32台接收器。RS-485的共模输出电压在-7V至+12V之间。RS-485的最大传输距离约为1219米,最大传输速率为10Mbps。平衡双绞线的长度与传输速率成反比,在100Kbps速率以下,才可能使用规定最长的电缆长度。只有在很短的距离下才能获得最高速率传输。一般100米长双绞线最大传输速率仅为1Mbps。
4.1.2MAX485的结构和性能
MAX485接口芯片是Maxim公司的一种RS-485芯片。采用单一电源+5V工作,额定电流为300μA,采用半双工通讯方式。它完成将TTL电平转换为RS-485电平的功能。MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在与单片机连接时接线非常简单。只需要一个信号控制MAX485的接收和发送即可。同时将A和B端之间加匹配电阻,一般可选100Ω的电阻。
4.1.3RS-485通信的实现
MAX485在实现RS-485通信时采用如图4.1所示的电路连接。
3024
图4.1MAX485的点对点RS-485通信连接图
图4.1是单片机点对点的RS-485通信连接,MAX485与单片机的连接关系为:MAX485的1号脚(RO)接单片机的14号脚RXD,单片机接收MAX485传输的数据。MAX485的4号脚(DI)接单片机的15号脚(TXD),单片机向MAX485传送数据,当TXD上的低电平强制输出A为低电平,而输出B为高电平。同理,TXD上的高电平强制输出A为高电平,而输出B为低电平。MAX485的2号脚(RE)和3号脚(DE)接单片机的16号脚(PD2),当PD2为低电平时,RO有效,驱动器输出为高阻状态,器件被用作线接收器;当PD2为高电平时,RO为高阻状态,驱动器输出A与B有效,器件被用作线驱动器。Rt为100Ω的匹配电阻(也称终接电阻),接在传输线的两端,增大吸收,减少信号回波反射。
RS-485的通信实现用到了单片机的串口USART。上位机采用定时发送,每5mS钟发送一次数据,接收采用usart中断接收。下位机不主动发送数据,接收采用usart中断接收,在每次接收完后,并进行简单的数据提取处理,处理完成后立即向上位机发送数据。
上位机通信数据帧长度定义为12个字节。往下位机发送的数据帧包括:下位机的LED显示数据s_led[0],s_led[1];下位机要接收的AD值s_ad_dat[0],s_ad_dat[1];手动/遥控命令s_shoudong默认为0,代表遥控状态;按键值s_key_value默认为,代表无按键操作,1,2,3,4分别代表完、备、停车和紧急停车命令。接收的下位机的数据帧包括:下位机测的的转速led_su[0],led_su[1],led_su[2],led_su[3];下位机传上来的LED显示数据r_led[0],r_led[1],r_led[2];手动/遥控命令shoudong默认为,代表遥控状态;下位机的按键值r_key_valuve,初始为代表无按键操作,1,2,3,4分别代表完、备、停车和紧急停车命令;遥控是顺、倒、停车的闪烁控制shanshuo_flag=0,默认常亮。
下位机通信数据帧长度定义为12个字节。往上位机位机发送的数据帧包括:下位机测的的转速led_su[0],led_su[1],led_su[2],led_su[3];上位机的LED需要显示的数据
3025s_led[0],s_led[1],s_led[2];手动/遥控命令s_shoudong默认为,代表遥控状态;下位机的按键值s_key_valuve,初始为代表无按键操作,1,2,3,4分别代表完、备、停车和紧急停车命令;遥控是顺、倒、停车的闪烁控制shanshuo_flag=0,默认常亮。接收的上位机数据帧包括:上位机测得得AD值ad_dat[0],ad_dat[1];手动/遥控命令r_shoudong默认为0,代表遥控状态;按键值r_key_value默认为,代表无按键操作,1,2,3,4分别代表完、备、停车和紧急停车命令。
开始标志位同一定义为“@”,结束标志位同一定义为“$”。Rx为已接收字节数,uartStart为开始接受标志,初始化为0,finish为接受结束标志,初始化为0。通信速率为9600bps,波特率寄存器的初始化可以由系统软件得到。fosc8106
正常异步模式的计算公式:UBRR11510x3316BAUD169600
通信的校验方式采用和校验,即对发送的数据进行求和,对接收的数据进行求和,将两个和值进行比较,若二者一致,则可认为通信数据正常,否则抛弃不正常数据。下位机的通信函数包含上位机通信函数的所有功能,故只给出下位机的数据发送函数、中断接收函数、接受数据处理函数分别如下所示:
voidsend_485()
{
uchari;
E485=1;//485发送使能
UCSRB=0x08;
output[0]=0x40;//"@"
output[1]=led_su[0];//向上位机发送数码管转速显示数据,此位对应最高位
output[2]=led_su[1];//向上位机发送数码管转速显示数据,此位对应第二位
output[3]=led_su[2];//向上位机发送数码管转速显示数据,此位对应第三位
output[4]=led_su[3];//向上位机发送数码管转速显示数据,此位对应最低位
output[5]=s_led[0];
output[6]=s_led[1];
output[7]=s_led[2];
output[8]=s_shoudong;
output[9]=s_key_value;
3026output[10]=shanshuo_flag;
output[11]=0x24;//"$"
for(i=0;i<12;i++)
{
UDR=output[i];
while(!(UCSRA&0x40));
delay_ms(1);
}
UCSRB=0x90;
delay_ms(1);
E485=0;//485接收使能
}
interrupt[USART_RXC]voidusart_rx_isr(void)
{
chartmp;
tmp=UDR;
if(tmp==0x40)//"@"
{
rx=0;
uartStart=1;
}
elseif(tmp==0x24)//"$"
{
uartStart=0;
finish=1;
}
else
{
if(uartStart==1)
{
buffer[rx]=tmp;
rx++;
}
}
3027}
voidreceive()
{
if(finish==1)
{
r_key_value=buffer[5];//接收上位机紧急停车、完、备、停信号
r_shoudong=buffer[4];//接收上位机手动/遥控信号
r_led[1]=buffer[3];//接收上位机LED显示数据,对应U3
r_led[0]=buffer[2];//接收上位机LED显示数据,对应U2
ad_da[1]=buffer[1]&0x03;//接收上位机检测的AD数据,高两位
ad_da[0]=buffer[0];//接收上位机检测的AD数据,低八位
finish=0;
delay_ms(10);
send_485();
}
ad_v=ad_da[1];//取出上位机电压的高两位数据
ad_v<<=8;
ad_v|=ad_da[0];//取出上位机电压的第八位,求与
}
4.2系统程序结构设计
系统由上位机和下位机两块智能控制芯片控制,在系统运行中,各自发挥着不同的作用,因而各自的执行程序也不相同。
上位机主程序结构流程图如图4.2.1所示。在没有越控操作、紧急停车操作时,将根据手动/遥控按键确定需要手动还是遥控操作。若有越控操作命令或紧急停车操作命令时,执行相应的命令。在所有的函数执行完后,对所有的需要通信数据更新,显示数据更新,这样保证了通信的高效率与可靠,也保证了显示的准确性,不会因为逻辑的复杂性而造成显示的混乱。
3028
图4.2.1上位机主程序流程图
上位机若检测到中断请求信号,执行中断服务程序。上位机的中断处理服务程序如图4.2.2所
4.2.2上位机中断程序流程图示。
进行判断上位机为了节省数码管显示占用大量的资源,利用人的视觉误差,由Timer2定时20mS,每20mS更新一次显示数据,这样较在主程序里循环调用
3029程序要节省资源。为了使程序简练,防止反复调用通信的发送数据程序对下位机的处理产生影响和通信堵塞,由Timer2定时5mS,每5mS发送一次数据。在数据接收方面,上位
采用了中断接收的方式,只有在USART的接收端口RXD检测到电平的变化时,触发USART中断,然后执行USART中断接收处理程序。在对手柄的电压采样的时候,程序也调用了A/D中断处理函数。其ADC转换过程为:选择通道和转换频率启动转换转换结束检查读取转换数据。
下位机主程序结构流程图如图4.2.3所示。首先检测输入数据,在没有越控操作、紧急停车操作时,将根据手动/遥控按键确定需要手动还是遥控操作。若有越控操作命令或紧急停车操作命令时,执行相应的命令。在所有的函数执行完后,对所有的需要通信数据更新,显示数据更新,这样保证了通信的高效率与可靠,也保证了显示的准确性,不会因为逻辑的复杂性而造成显示的混乱。
机
图4.2.3下位机主程序流程图
下位机若检测到中断请求信号,执行中断服务程序。下位机的中断处理服务程序如图4.2.4所示。下位机在数据接收方面,也采用了中断接收的方式,只有在USART的接
3030
图4.2.4下位机中断程序流程图
收端口RXD检测到电平的变化时,触发USART中断,然后执行USART中断接收处理程序。在中断处理结束后,即执行向上位机发送数据的函数,这样避免了通信过程中的通信冲突,提高了通信的效率。在对直流电机调速装置电压采样的时候,程序也调用了A/D中断处理函数。其ADC转换过程为:选择通道和转换频率启动转换转换结束检查读取数据。唯一不同于上位机的地方是下位机采用了ICP输入捕捉中断,输入信号的上升沿时Timer1内置的计数器开始计数,程序还开通了输入捕获噪声抑制器,只有在输入捕捉信号连续4次采样都有效时,输入捕获标志位才置位。需要注意的是相邻两次捕捉操作间的间隔不得小于中断响应时间与中断服务程序执行的时间之和。
4.3手动功能设计
3031
图4.3手动程序流程图
手动控制的程序流程图如图4.3所示,实现了遥控装置的完车、停车、备车的手动操作控制。上位机和下位机的手动控制程序流程图都一样,都是按着上述思路进行函数的调用,实现手动功能的。
4.4遥控功能设计
图4.4下位机遥控程序流程图
上位机的遥控功能函数比较简单,不需要对电机进行直接的智能控制。故只给出下位机的遥控功能函数,以说明系统式如何针对不同的转速,对电机进行智能控制的。下位机的遥控控制程序流程图如图4.4所示。
3032
4.5参数的测量与设备的控制
4.5.1转速的测量
转速的测量是对柴油转速的检测。通过电磁传感器将转速转化成方波信号,然后ATmega16去对方波信号进行检测。即将一个磁铁固定在柴油机的转轴上,然后使电磁传感器探头与转轴保持约1cm的距离。电磁测速传感器的输出电压为0V和24V的跳变电压。转轴每旋转一周,产生一次高低电平的变化,因而转速与方波的频率在数值上是相等的。由于柴油机的最大转速在2000rad/min左右,因此所测得的最大频率应为35Hz,不会超过40Hz。我们需要测量的频率范围即在0~40Hz范围内,属于低频测量。转速的测量的精确度要求不是很高,但是转换成频率后,每相差1Hz即会相差60转。故我们的误差允许范围不能超过0.2Hz,即精度要小于0.5%。
现有的测量方法有:M法测速,T法测速,M/T法测速。
M法测速:测取Tc时间内输入脉冲(被测频率fx)的个数M1,用以计算这段时间内的平均转速,称为M法测速。
被测频率=Tc
M1测量精度=d%=-M1_1
?100%M1100%
由上式可知该测量方法只适用于被测频率很大的场合才能满足较高的精确度,至少M1>200,在频率为40Hz的时候,测量时间Tc=5S;在频率为1Hz的时候,测量时间Tc=200S;。可见在频率较低时,测量时间要求很长。
T法测速:记录两个相邻的输入脉冲之间T时间内高频计数脉冲f0的个数M2,用以计算这段时间内的平均转速,称为T法测速。
被测频率=1
M2f0
f0M2f0f0
f0
测量精度δ%=f0f0f0100%M21100%100%M21100%
显然,这种方法只适用于被测频率fx为低频的时候,并且高速计数脉冲很大的时候才可以满足精度要求。因为:M1210.5%M21200又因为:f0M2
M2f0T
3033所以:f0200
Tf0(200fx)
如果被测频率为1Hz,则应计数脉冲f0>200Hz;如果被测频率为40Hz,则应计数脉冲f0>8000Hz。由于ATmega16自带输入捕捉功能,且符合T法的测量原理。当一个输入捕捉事件发生,如外部引脚ICP1上的逻辑电平变化时,T/C1计数器TCNT1中的计数值被实时的写入到输入捕捉寄存器ICR1中,并置位输入捕获标志位ICF1,产生中断申请。因此,利用输入捕捉功能可以实现对周期的精确测量。
采用输入捕捉功能进行精确周期测量的基本原理比较简单,实际上就是将被测信号作为ICP1的输入,被测信号的上升(下降)沿作为输入捕捉的触发信号。T/C1工作在常规计数器方式,对设定的已知系统时钟脉冲进行计数。在计数器正常工作过程中,一旦ICP1上的输入信号由低变高(假定上升沿触发输入捕捉事件)时,TCNT1的计数值被同步复制到了寄存器ICR1中。换句话将,当每一次ICP1输入信号由低变高时,TCNT1的计数值都会再次同步复制到ICR1中。如果能及时的将两次连续的ICR1中数据记录下来,那么2次ICR1的差值乘上已知的计数器计数脉冲的周期就是输入信号一个周期的时间。由于在整个过程中,计数器的计数工作没有受到任何影响,捕捉事件发生的时间印记也是由硬件自动同步复制到ICR1中的。
初始化代码如下:
TCCR1A=0X00;
TCNT1=0;
ICR1=0;
TCCR1B=0Xc5;//上升沿触发,输入噪声抑制,1024分频
中断测量程序如下:
interrupt[TIM1_CAPT]voidtimer1_capt_isr(void)
{
newcount=ICR1;
if((newcount&0x0007)!=(oldcount&0x0007))//低三位不一样,频率{
oldcount=newcount;//改变较大,要接受新值
zhuansu=468750/oldcount;//8M1024分频,每0.000128s计数
一次,//count
}
ICR1=0;
为计数值,468750=8000000/1024*60
3034TCNT1=0;
TCCR1B=0Xc5;
TIMSK=0X80;//关输入捕捉中断使能
}
转速在测得后还需要要把数据的各位取出,把各位数字发送给相应的数码管。本段程序不仅实现了改功能,还在高位数字为0时,实现了关闭相应数码管显示位的功能,其数据处理程序如下:
voidzhuansudisplay_chuli()
{
led_su[0]=zhuansu/1000;
led_su[1]=zhuansu/100%10;
led_su[2]=zhuansu%100/10;
led_su[3]=zhuansu%100%10;
if(led_su[0]==0)
{
led_su[0]=11;
if(led_su[1]==0)
{
led_su[1]=11;
if(led_su[2]==0)
{
led_su[2]=11;
}
}
}
}
4.5.2电压的测量
电压测量即对上位机手柄、下位机调速电机电位器电压的检测,可间接得到手柄和电机运动的位置。上位机手柄动作位置的检测,以及下位机直流电机动作位置的检测,都是通过手柄装置和电机调速装置的多圈电位器的输出电压确定的。手柄每动作一定的角度,手柄装置内的多圈电位器即改变相应的电阻值,电位器的输出电压也改变相应的电压大小。且这三者都是线性变化的。测出电压值,即能感知手柄动作的位置。下位机的调速原理也是如此,也是利用了电位器的输出电压与直流电机运动的位置之间的线性关系。对于电压的检测,都是通过A/D
3035转换后实现的,由于本系统选用的单片机自带10位的A/D,测量电压范围也在0~5V,因而在外部电路中不须选用专门的A/D转换芯片,只须进行简单的电容滤波即可。
单片机内部集成有一个10位逐次比较(successiveapproximation)ADC电路。因此使用AVR可以非常方便的处理输入的模拟信号量。ATmega16的ADC与一个8通道的模拟多路选择器连接,能够对以PORTA作为ADC输入引脚的8路单端模拟输入电压进行采样,单端电压输入以0V(GND)为参考。另外还支持16种差分电压输入组合,其中2种差分输入方式(ADC1,ADC0和ACD3,ADC2)带有可编程增益放大器,能在A/D转换前对差分输入电压进行0dB(1×),20dB(10×)或46dB(200×)的放大。还有七种差分输入方式的模拟输入通道共用一个负极(ADC1),此时其它任意一个ADC引脚都可作为相应的正极。若增益为1×或10×,则可获得8位的精度。如果增益为200×,那么转换精度为7位。AVR的ADC功能单元由独立的专用模拟电源引脚AVcc供电。AVcc和Vcc的电压差别不能大于±0.3V。ADC转换的参考电源可采用芯片内部的2.56V参考电源,或采用AVcc,也可使用外部参考电源。使用外部参考电源时,外部参考电源由引脚ARFE接入。使用内部电压参考源时,可以通过在AREF引脚外部并接一个电容来提高ADC的抗噪性能。
ADC功能单元包括采样保持电路,以确保输入电压在ADC转换过程中保持恒定。
ADC通过逐次比较(successiveapproximation)方式,将输入端的模拟电压转换成10位的数字量。最小值代表地,最大值为AREF引脚上的电压值减1个LSB。可以通过ADMUX寄存器中REFSn位的设置,选择将芯片内部参考电源(2.56V)或AVcc连接到AREF,作为A/D转换的参考电压。这时,内部电压参考源可以通过外接于AREF引脚的电容来稳定,以改进抗噪特性。
模拟输入通道和差分增益的选择是通过ADMUX寄存器中的MUX位设定的。任何一个ADC的输入引脚,包括地(GND)以及内部的恒定能隙(fixedbandgap)电压参考源,都可以被选择用来作为ADC的单端输入信号。而ADC的某些输入引脚则可选择作为差分增益放大器的正、负极输入端。当选定了差分输入通道后,差分增益放大器将两输入通道上的电压差按选定增益系数放大,然后输入到ADC中。若选定使用单端输入通道,则增益放大器无效。
通过设置ADCSRA寄存器中的ADC使能位ADEN来使能ADC。在ADEN没有置“1”前,参考电压源和输入通道的选定将不起作用。当ADEN位清“0”后,ADC将不消耗能量,因此建议在进入节电休眠模式前将ADC关掉。
ADC将10位的转换结果放在ADC数据寄存器中(ADCH和ADCL)。默认情况下,
3036转换结果为右端对齐(RIGHTADJUSTED)的。但可以通过设置ADMUX寄存器中ADLAR位,调整为左端对齐(LEFTADJUSTED)。如果转换结果是左端对齐,并且只需要8位的精度,那么只需读取ADCH寄存器的数据作为转换结果就达到要求了。否则,必须先读取ADCL寄存器,然后再读取ADCH寄存器,以保证数据寄存器中的内容是同一次转换的结果。因为一旦ADCL寄存器被读取,就阻断了ADC对ADC数据寄存器的操作。这就意味着,一旦指令读取了ADCL,那么必须紧接着读取一次ADCH;如果在读取ADCL和读取ADCH的过程中正好有一次ADC转换完成,ADC的2个数据寄存器的内容是不会被更新的,该次转换的结果将丢失。只有当ADCH寄存器被读取后,ADC才可以继续对ADCL和ADCH寄存器操作更新。
ADC有自己的中断,当转换完成时中断将被触发。尽管在顺序读取ADCL和ADCH寄存器过程中,ADC对ADC数据寄存器的更新被禁止,转换的结果丢失,但仍会触发ADC中断。
本设计中选择的转换通道为ADC0,分频系数为2,参考电压为外部参考电压+5V,ADC转换数据为右对齐方式,省略掉了测量数据的最后一位,防止电机运动5000mV作判断是抖动。电压测量的换算公式:ad_valueADCW1024
其示例程序如下:
voidad_celiang()
{
ADCSRA.6=1;
while(!ADCSRA.4);
ad_value=ADCW;
ad_value=ad_value*0.48828;
}
上位机的软件滤波程序:
voidpinjun()
{
staticuintADNum[120];
staticucharpos=0;
uintAD;
uchari;
ADNum[pos]=ad_value;
for(i=0;i<120;i++)
ADNum[i]=ad_value;
AD=0;
3037for(i=0;i<120;i++)
AD+=ADNum[i];
ad_value=AD/120;
ad_dat[0]=ad_value&0xff;
ad_dat[1]=ad_value>>8;
ad_dat[1]&=0x03;
}
下位机的滤波程序:
voidpinjun()
{
staticuintADNum[50];
uintAD;
uchari;
for(i=0;i<50;i++)
ADNum[i]=ad_value;
AD=0;
for(i=0;i<50;i++)
AD+=ADNum[i];
ad_value=AD/50;
}
上位机的滤波程序和下位机的滤波程序原理都为算术平均滤波法。算数平均滤波方法可以增加平滑度,但是可能在一定得程度上影响灵敏度,对一般具有随机干扰的信号具有极好的滤波效果。试验中为了防止电机运行过程中的抖动,必须增加信号的平滑性,且系统对实时性要求的不是很高,故选择了此滤波方法。上位机和下位机的采样次数选择是根据实验得出的实验数据。上位机滤波程序后的取样操作是因为通信数据是以字节的形式传送的,直接传送不了10位数据。
4.5.3电机的控制
电机的控制是控制电机的运动距离,以控制柴油机油门的大小,以控制柴油机的速度。系统要求电机的运动速度要均匀,给定电压值与电机运动距离须满足线性关系。给定电压值由上位机的手柄给出,电机的运动距离改变电机调速装置中电位器的阻值,下位机将检测该阻值大小,作为反馈值。
手柄处于中性点位置时,电机不动作。手柄向前或向后动作,直流调速电机执行加速程序,电机正转;当手柄从前或者后方向向中性点运动时,直流调速电
3038机做减速动作,电机反转。手柄向前或向后动作都要经过一个阈值,只有超过阈值点,电机才开始动作,到达限值点就不再执行加速操作,以防损坏设备。手柄从限值点向中性点动作,在手柄到达阈值点时,电机就必须回到基准点(零点)。电机相对手柄的响应曲线如图4.2.1所示。
图4.5电机响应函数曲线
10.86064.815x1.2x2.21图4.5中曲线的函数表达式为:y0.32.2x3.2○
3.17822x10.18593.2x4.8
因为调速电机的电压变化范围为0.3~5V,手柄的顺车的动作电压范围为
3.2~4.8V,
手柄的倒车的动作电压范围为1.2~2.2V。
顺车动作区间:即在手柄打到4.8V的位置时,电机必须运动到5V的位置,手柄回到3.2V位置时,电机必须运动到0.3V位置(即零点位置)。现知道两个端点值,又知道函数关系为线性关系,即为一次函数的求解。5yy0.3因而可得方程:4.8xx3.2
y3.17822x10.1859
同理,倒车动作区间:即在手柄打到1.2V的位置时,电机必须运动到5V的位置,手柄回到2.2V位置时,电机必须运动到0.3V位置(即零点位置)。现知道两个端点值,又知道函数关系为线性关系,即为一次函数的求解。5yy0.3因而可得方程:1.2xx2.2
y10.86064.815x
3039当手柄处于2.2~3.2V区间范围时,电机必须停止在0.3V(零点)位置。因而有方程:y=0.3
1中的x代表上位机手柄的电压值,y代表给电机运动的给定值,电机方程○
调速装置检测的电压值为反馈值,反馈值与给定值y比较,若小于给定值yZmV时,则电机需要正转,若大于给定值yZmV,则电机需要反转。调节Z的大小,可调节电机运动的平滑性和动作的精确性。若Z较大,则平滑性较好,但是灵敏度不高,若Z较小,则灵敏度高,但平滑性不好,电机容易抖动。若抖动太厉害,可能损坏柴油机。由于电机调速装置电压的变化约为5V,现取Z=20mV。
20100%0.4%,此时平滑性经试验也较好,可接受。则灵敏度=4700
现给出电机的停止函数:
voidstop(void)
{
M1=0;//OFF
M2=0;//OFF
M3=1;//ON
M4=1;//ON
}
电机的反转函数:
voidfanzhuan(void)
{
M3=1;//OFF
M2=0;//OFF
M1=1;//ON
M4=0;//ON
}
电机的正转函数:
voidzhengzhuan(void)
{
uchari=0;
M1=0;//OFF
M4=1;//OFF
for(i=0;i<3;i++)
{
M2=1;//ON
3040delay_ms(5);
M2=0;
delay_us(500);
}
M3=0;//ON
}
程序中的M1、M2、M3、M4分别受单片机的PC7、PC6、PC5、PC4控制。由于系统要求慢加速,快减速。故在加速程序,即正转程序里采用了仿PWM信号的算法,改变输出电压的有效值,即控制高电平和低电平的时间比。但是整个信号的时间不能太长,否则电机的控制会滞后。若时间太短,则达林顿管的关断条件达不到,无法实现慢速正转的效果。因此程序中选择了500mS的关断时间,和5S的开通时间相结合,连续给三次这样的信号。
5系统调试与结论
本系统的调试主要分两个部分:各个单独模块的单独调试,系统的整体调试。系统各个模块的调试,如电源模块、通信模块、显示模块、电压测量模块、转速测量模块、继电器信号测量模块、电机控制模块、按键输入模块、报警模块,都单独调试通过,且部分模块的性能很好。在这之后进行系统的整体联调。
1.电源模块的调试主要是对外部输入24V电源转换成5V信号的调试。利用数字示波器观测外部输入24V电压信号,调试结果显示,该输入电压在18V~24V范围内都能输出5V的稳定电压信号,且降压稳压后输出的5V系统电压信号稳定在4.997V,无纹波。在调试时需要注意电感、电容的选用必须匹配。电感太小,电压将大大偏离5V输出的理论值,电容也不能太小,否则输出电压不稳定,有纹波。
2.按键输入模块、报警模块的电路与程序设计都比较简单,调试也简单,效果也好。
3.显示模块的调试进行了数码管的显示调试、LED灯显示调试。数码管的驱动芯片都是采用的74LS164,LED灯的驱动芯片在上位机采用的M74C373,下位机采用74HC595。数码管能够完
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民航概论空中交通管理
- 2024-2025学年度四川省达州市万源中学高二下学期4月月考历史试题(含答案)
- 2025年南昌货车上岗证理论模拟考试题库
- 财务会计档案管理
- 《奇幻绚丽的自然》课件
- 房屋买卖的委托书
- 集成功率放大电路型号
- 激光测距传感器应用场景
- 借款担保合同起诉状
- 西安小区出入管理制度
- 大学英语(西安石油大学)知到智慧树章节测试课后答案2024年秋西安石油大学
- 《市域智慧共享中药房建设指南》
- 不稳定型心绞痛和非ST段抬高心肌梗死治疗指南解读
- 民宿的经营成本分析报告
- 2025 预应力混凝土钢管桁架叠合板
- 废酸处置合同协议
- 2024年吉安职业技术学院单招职业技能测试题库附答案
- DB15-T 3738-2024 家政服务机构星级划分及评定规范
- 《高致病禽流感现状》课件
- 实验室危险化学品安全管理
- 新疆乌鲁木齐市(2024年-2025年小学六年级语文)部编版期末考试(上学期)试卷及答案
评论
0/150
提交评论