资源描述
摘 要1Abstract2前 言3第一章 自动雨刷控制系统的总体设计41.1 自动雨刷控制系统设计思路41.2 设计原理方框图41.3 系统使用部件选择41.3.1 单片机AT89S52,AT89C2051的比较与选择51.3.2 电机选择61.3.3 电机驱动芯片的选择71.4 汽车自动雨刷控制系统的主要特点11第二章 控制系统的硬件设计132.1 电源电路的设计与分析132.2 单片机模块设计142.2.1 单片机AT89S52142.2.2 单片机最小系统设计172.3 感应模块的设计与分析202.4 电机及驱动模块212.4.1 电机控制电路的设计与分析212.4.2 不进电机的驱动芯片25第三章 汽车自动雨刷控制系统软件的设计293.1 主程序设计293.1.1主程序的初始化内容303.1.2 代码转换程序303.2 中断服务程序303.2.1中断服务程序的设计313.3检测脉冲及电机运行程序的设计31第四章 汽车自动雨刷控制系统调试334.1 调试单片机最小系统334.2 问题分析及雨滴感应模块调试334.3 步进电机驱动模块调试334.4 系统软件调试34第五章 总结与展望36参 考 文 献37致 谢38附录I39附录II42附录III612摘 要 本次设计的汽车自动雨刷省去了人为手动操作雨刷的问题,能够自动感应雨量并进行相应的工作。自动雨刷用雨滴传感器作为检测器来感应雨量的大小,把感应信号传给单片机,通过软件的控制驱动芯片自动调节电机的正反转与转动频率。此次设计采用40引脚的单片机AT89S52,设计中运用ULN2003AN驱动芯片来驱动步进电机的运转,克服了电机在低频工作时的噪音大,震动大的缺点。本次设计在一定的程度上为驾驶者提供了舒适性和安全性的保障,避免了由于驾驶者手动操作雨刷的不当而带来的交通安全问题,同时也大大的提高了汽车雨刷的全面性与可靠性。关键词:汽车自动雨刷,雨滴传感器,单片机,步进电机第 64 页 共 66 页Abstract The design of the automatic wipers is improved further in the traditional manual based on.Automatic wiper with rain sensor as the detector size induced precipitation,the induction signal is sent to the single chip microcomputer.reversing and turning frequency automatic adjusting motor through the control of the software driver.The design is based on the 40pin of the mic AT89S52.That use of ULN2003AN to drive the stepper motor driver chip design operation.The pulse width modulations chopper driver mode.Thus greatly overcome the noise when the motor work in the low frequency ,vibration faults.Provide comfort and safely guarantee this design in a certain extent for the driver,to avoid the traffic safety problem caused by the driver manually operated wiper improper.At the same time also greatly improve the comprehensiveness and reliability of automobile windshield wiper. Keyword:Automatic wipers ,Rain sensor,SCM,Stepper motor前 言 根据科学家针对消费者对中性车产品属性偏好的研究,结果显示消费者对配备及式样依序包括预缩安全带、前座安全气囊、驾驶席安全气囊、主动护颈头枕、前雾灯、可调间歇式雨刷、电动收藏广角后视镜、倒车雷达等。可见,对安全性的设备已超过了对舒适性的设备需求。其中对可调间歇雨刷的需求排在了第六位,消费者认为汽车雨刷必须具有可调频率,以应对不同车况和前挡风玻璃落雨量之需求。然而驾驶人自己来判断前挡风玻璃落雨量的模糊程度,再去手动调节雨刷,不仅使驾驶者分心,而且使玻璃上落雨量刮除清晰度不一,两者均关系到驾驶的安全。 随着当今社会经济的迅速发展,对汽车性能的追求则在不断的提升,随着汽车制造业不断的创新,汽车中安装了越来越多自动控制系统,增加了汽车的安全性与舒适性,据统计,在雨天行车,世界上因为驾驶员对雨刷的操作不当而带来的交通事故占6%之多。所有自动雨刷系统的安装对于汽车来说是十分重要的。自动雨刷控制系统免去了驾驶员手动调节雨刷的麻烦,有效的提高了在雨天驾驶的安全性与可靠性;同时,也避免了因为路边积水溅在挡风玻璃上,驾驶员来不及操作而恐慌造成的交通事故。 国内外许多汽车厂商以雨水传感器为基础的自动雨刷控制系统,不是格昂贵就是系统不完善,反映不灵敏。现今,则主要是把用雨水传感器检测出来的雨量大小的信号转变成电信号,然后传递给单片机,通过软件的控制来控制电机驱动芯片从而带动电机的旋转。目前市场上的雨量传感器大都分为以下两种:利用电阻压变,光强变化的传感器与各种信号控制器连接,来控雨刷电机的转动。前一种是把传感器直接装在汽车挡风玻璃的外侧,雨滴直接落在传感器上来感应雨量的大小;后一种则是安装在挡风玻璃内侧,由光照引起的折射强度的变化来检测雨量的大小。 因为汽车雨刷主要功能是刮除挡风玻璃上的水渍及污垢,给驾驶者提供一个清晰的视野,所以自动雨刷系统属于必须的安全设备。主动性安全系统是每个汽车系统工程师努力目标之一,雨刷系统是每辆车上为保证挡风玻璃清晰的唯一选择。而此次设计的自动雨刷,乃目前各车厂投注心力的开发方向。第一章 自动雨刷控制系统的总体设计 本章主要阐述设计的整体设计思路,系统使用部件选择,设计原理框图与本次设计系统的主要特点。1.1 自动雨刷控制系统设计思路设计的总体思路是:运用雨滴传感器感应雨量的大小,把感应信号输给单片机系统,然后通过软件控制雨刷电机根据相应的环境做出不同的转动。例如,当检测为小雨量的时候,电机工作在小雨模式(电机旋转一个来回要停留10秒再继续进行旋转);当检测为中大雨的时候则,启动中大雨运转模式(电机旋转一个来回停止5秒后再继续工作);当检测为大雨的时候,则启动大雨运转模式(电机连续进行来回旋转)。设计中运用AT89S52单片机,步进电机采用ULN2003AN驱动芯片进行驱动。1.2 设计原理方框图本次设计由检测部分,控制部分,驱动部分组成,其框图如图1.1: 图1.1 设计原理框图1.3 系统使用部件选择 系统主要是由单片机最小控制系统(包括晶振电路,复位电路,供电电源),雨滴感应模块,电机驱动模块组成。1.3.1 单片机AT89S52,AT89C2051的比较与选择 单片机AT89S2051是具有可编程可擦除只读存储器的低电压,高性能的8位CMOS微处理器,有15根I/O线、16位定时/计数器两个、全双向的串行口一个、并且其内部含有精密的比较器和片内振荡器,具有4.25-5.5V的电压工作范围和12MHz的工作频率,同时还具有加密阵列的二级程序存储器加锁和时钟电路等。此外还支持二种软件可选的电源节电方式。在空闲的时候,CPU停止工作,而RAM、定时/计数器、串行口和中断系统仍然继续工作。共有20个引脚,引脚图如图1.2所示 图1.2 单片机AT89C2051引脚图 单片机AT89S52是种低能耗,高性能的8位CMOS微控制器,在系统中具有8K可编程Flash存储器。使用Atmel公司高密非易失性存储器技术制造,片上允许程序存储器在系统可编程,同样也适合常规的编程。在单片机上拥有灵巧的8位CPU和在系统上可编程存储器Flash,让它在众多嵌入式控制应用系统提供高灵活有效的解决方案。AT89S52单片机具有:8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器。能实现的功能比单片机AT89C2052更加全面,内存更大,引脚更加全面引脚如图1.3所示 图1.3 单片机AT89S52引脚图由上可知,为了更加便于操作,降低难度,不用担心引脚不够的问题,且考虑本次毕业设计小组能够协同工作,则选择单片机AT89S52,另外其是各性能比较全面,在郑州市场比较好买到的价格便宜的理想单片机。1.3.2 电机选择 设计中选择了步进电机来代替了传统的雨刷电机,相比传统的电机其更加的灵活,精度高。步进电机是一种电脉冲转化为角位移的执行机构。通俗的来讲就是当驱动器接受到一个脉冲信号,就会相应的驱动步进电机按照设定好的方向转动一个固定的角度。通过脉冲个数可以来控制角位移量,从而达到准确定位的目的;同时也可以通过控制脉冲频率来控制电机 转动的速度和加速度,从而达到调速的目的。 在性能上步进电机更适合作为雨刷电机,并且其价格便宜,在市场上供货也比较多所以,所以在本次设计中选择步进电机。 步进电机的原理接线图如图1.4所示: 图1.4 步进电机原理图1-2相励磁顺序表,从输出轴方向看-逆时针方向如下表1.1 表1.1 输出轴方向看-逆时针方向 主要的功能参数如下: 1额定电压 2相数 3减速比 4步距角 5驱动方式 6自定位转矩 7绝缘电阻1.3.3 电机驱动芯片的选择 根据设计书的要求,本次设计核心就是对电机的控制,所以对于选择理想的驱动芯片来驱动电机则就成为了十分重要的一部分了。最常用的就是脉宽调制式斩波驱动方式,大多步进电机都选择这种驱动方式来进行调速控制,TA8535H与ULN2003AN都是比较常用的,性能也是比较稳定可靠的专用芯片。 TH8435驱动芯片东芝公司生产的脉宽调制式斩波器型二相步进电机驱动芯片,工作稳定可靠,工作电压为10-40V,具有整步,半步,1/4细分和1/8细分运动方式供选择。其由1个解码器,2个驱动桥式电路,2个电流控制电路,2个输出电流限制电路等功能模块构成。ULN2003AN是一种最常用的驱动步进电机的芯片,而且接线十分简单,用单片机驱动小量步进电机是很好的选择,有16个引脚其中有七个为输入引脚另外七个为输出引脚,8号是接地引脚,9号是接电源12V或5V的引脚。比如步进电机公共端接5V,其余四个引脚接驱动芯片的四个输出端,然后单片机或者外围电路接上ULN2003的四个输入引脚。 其实在本设计中这两种芯片都可以选择,但是ULN2003驱动芯片原理更加简单,操作容易,在驱动电机时,工作稳定;而且在市场上驱动芯片ULN2003使用比较广泛,所以选择ULN2003AN作为驱动芯片。1.3.4 雨滴传感器的选择 在目前市场上雨滴传感器的工作原理大都分为以下两种:利用电阻压变,光强变化的传感器与控制器相连接,来控雨刷电机的转动。前种是把传感器直接装在汽车挡风玻璃的外面,雨滴直接落在传感器上来感应雨量的大小;后种则是安装在挡风玻璃内侧,由光照引起的折射强度的变化来检测雨量的大小。 后种是在设计和发展上比较完善的传感器,但在市场上买配件的时候发现前电阻式的更便于设计操作而被选择。 目前在我国光强变化传感器与控制电路相接组成的雨滴传感器发展的比较完善,所以以下我对这两种雨滴传感器做个具体的分析:光变雨滴传感器的工作原理: 1 光学原理 光线射在两种介质分界面上,当光线从一种介质射入另外一种介质时,光线的传播方向会发生一定的改变,这称之为光的折射。在另一种介质中折射的光线和分界面的法线n0 的夹角称之为折射角。入射角i和折射角r的关系如下: (式1) 上式1中为第二种介质对第一种介质的相对折射率。 光从光密介质射入光疏介质时,如果入射角大到一定的角度,便能使折射角达到90,这时折射光线就会完全的消失,光会全部反射到原来介质,这种现象叫做光的全反射。折射角等于90时的入射角叫做全反射临界角。全反射的条件是:光从光密介质射入向光疏介质中;入射角等于或大于临界角。 这种传感器就是根据全反射光学原理制成的。空气和水的折射率分别为1和1.33,玻璃的折射率为1.5。根据上式计算得出,玻璃和空气两种介质的临界角是42,玻璃和水之间的临界角是63。 2 工作原理 雨水传感器由红外光发射电路和接收电路组成。原理框图如图1.5 图1.5 红外光发射电路和接收电路 由红外光发射元器件发出的红外光在挡风玻璃的外表面以全反射角反射,其角度必须控制在42和63之间。如果挡风玻璃上有水,一些光会双倍折射出,这样会使红外感光元件接收到的反射光减弱。在挡风玻璃发生反射的区域被称之为传感器“敏感区域”,仅当雨水在这个敏感区域时,才可以被探测出。为了使系统更加灵敏可靠,灵敏区域和挡风玻璃区域之间必须要有一个较好的比例,如上图所示。 3 红外发射电路 红外发射管用硅光电二极管,其具有暗电流小,噪声低,受温度影响小等优点。红外发射管用三个并联,采用脉宽调制驱动方式,工作在38kHZ的频率下。 4 红外接收电路 红外接收电路由光接收二极管,放大电路,带通滤波器,检波电路等构成。其中放大电路的作用是对光脉冲信号进行线性放大与整形。带通滤波器的作用是进行频率选择,滤除干扰信号。检波电路滤掉载频后检出的原始信号。因而电路比较复杂,体积也比较大。 在市场上还有种简捷的接收电路,采用的是红外专用集成接收芯片TK1838,将各功能电路封装在一起,用来接收红外光信号,塑料封装可滤除可见光。内部结构如图1.6。 图1.6 芯片TK1838内部结构图TK1838只有接收到38kHz的脉冲信号时才会起作用。它具有微型一体化的塑料封装,体积小,可靠性高,抗干扰光的能力强,用5V电源供电,功能损耗小,输出信号比较灵敏等优点。其内部集成了放大、滤波、解调和控制电路。当TK1838接收不到38kHz的脉冲信号时,输出为高电平;当接收到38kHz的脉冲信号时,输出低电平(有效信号)。 5传感器参数的选择 这种雨量传感器的参数可根据自己的需求,调节参数。例如:在小雨的时,定为每10ms输出脉冲的个数小于80个;在中雨时,输出的脉冲个数大于等于80小于等于160个;在大雨时,可以设定输出脉冲个数为每10ms大于160个。本设计中选用的雨滴模块介绍如下: 1 具体参数即功能描述电压:5V 控制板大小:3*1.6cm 大面积雨滴检测板:5.4*4.0cm 电源指示灯,输出信号LED指示灯 TTL电平输出,输出有效信号为低电平,驱动能力为100MA左右灵敏度可以通过电位器调节。没有雨的时候LED点亮,整体检测芯片输出高电平;有雨滴上去时,输出低电平,开关指示灯亮,表明为有效信号 雨滴板和控制板是分开的方便将线引出大面积的雨滴板更有利于检测到雨水 2 接线方法 VCC:接电源正极 GND:接电源负极 DO:TTL开关信号输出 AO:模拟信号输出 3 使用方法 接上5V电源电源灯亮,检测板上没有水滴时,DO输出为高电平,开关指示灯不亮 ,当滴上一滴水时,DO输出低电平,开关指示灯亮,刷掉上面的水滴,又恢复到,输出高电平状态。 AO模拟输出,作为模拟演示时使用,可以连接到单片机的AD口来检测滴在上面的雨量大小。 DO TTL数字输出,用来连接到单片机上,检测是否有雨。1.4 汽车自动雨刷控制系统的主要特点 基于单片机AT89S52对步进电机控制制作系统的主要特点: (1) 本设计运用步进电机来代替传统的雨刷电机,从而使控制精度更高,响应速度更快,抗干扰能力更强,且外围电路简单易懂。 (2)运用单片机控制系统,程序定化,系统更加稳定。 (3)雨水感应式自动雨刷控制系统使驾驶员去除了手动操作雨刷的麻烦,有效地提高了在雨天行驶的安全性。 (4) 设计中运用元件价格便宜,较适合推广使用。 (5) 整个系统可集成于一个芯片上,因此体积小,功耗低。 通过以上方案的分析,我们可以看出单片机技术是现代电子设计的重要发展部分。采用单片机AT89S52和步进电机结合的自动雨刷控制系统的设计方案,无论是性能上,特点上,还是原理图上,或是在电路设计上都具有简单,使用性强的优点。第二章 控制系统的硬件设计 根据设计要求,本次设计控制系统的硬件模块按功能主要分为:电源模块,单片机模块,感应检测模块,电机及驱动模块。其中单片机AT89S52模块是本次设计的核心模块。 在本章的这几小节主要对各模块的电路设计进行详细的设计和分析。2.1 电源电路的设计与分析 稳压电源的输出电压UO(或电压可调范围UOmin UOmax)和最大输出电流IOmax是它的特性指标,这两个指标决定了该电源的适用范围,同时也决定了稳压器的特性指标以及如何选择变压器、整流管和滤波电容。而输出电阻、纹波电压、温度系数是稳压电源的质量指标,它们决定了稳压器的稳压系数、输出阻抗、温度系数和滤波电容的选择。 设计的稳压电源设计原理图如图2.1 图2.1 稳压电源设计原理图 在本次设计中本分逻辑元件需要稳压电源为5V的直流电,而步进电机的额定电压为12V,所以设计了5V与12V的额定电压电源。为了解决这个问题,采用双路输出的直流稳压电源。直流稳压电源又分成线性直流稳压电源和开关型直流稳压电源,因为线性直流稳压电源电路成熟,稳定度高,文波小,干扰小而且。由上图可见,这个双路输出的线形直流稳压电源结构简单,只用了一个220V变12V的变压器,一个整流桥,两块稳压集成电路7812和7805和四个电容。图中有一个大容量的电解电容,起低频滤波的作用。由于其本身的电解比大,对高频交流成分的滤波效果会比较差,所以为改善滤波电路对高频抑制特性,在其傍边并联一个高频滤波性能良好的小电容。而直流稳压电路输出端的电容是用来改善稳压电源电路的瞬态负载响应特性。2.2 单片机模块设计AT89S52单片机是ATMEL公司采用ATMEL高密度非易失存储器制造技术来制造的,其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,同时为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。2.2.1 单片机AT89S52 1单片机的特点 与MCS-51单片机产品兼容 8K字节在系统可编程 1000次擦写周期 全静态操作:0-33Hz 三级加密程序存储器 32个可编程I/O口线 三个16位定时器/计数器 八个中断源 全双工UART串行通道 低功耗空闲和断电模式 双数据指针 2 AT89S52单片机的管脚说明 单片机AT89S52为40引脚芯片 引脚图如图2.2: 图2.2 单片机AT89S52引脚图 各引脚说明如下: VCC:电源 GND:地 P0口:P0口十余个8位的漏极开路双向I/O口,作为输出口,每位能够驱动8个TTL逻辑电平。对P0口写“1”是,引脚做高阻抗输入。在Flash编程的时候,也可用着接收指令字节;在程序进行校验时,输出指令字节,不过程序校验的时候外部需要接上拉电阻。 P1口:其是一个内部具有上拉电阻的8位双向I/O口,输出缓存器能驱动4个TTL逻辑电平。对其写“1”时,内部的上拉电阻会把端口拉高,此时可作为输入使用。在Flash编程与校验的时候,P1口接收低8位地址字节如下表2.1 表2.1 P1口接收低8位地址字节 P2口:其是一个内部具有上拉电阻的8位双向I/O口,输出缓存器能驱动4个TTL逻辑电平。对其写“1”时,内部的上拉电阻会把端口拉高,此时可作为输入使用。 在Flash编程和校验时,P2口接收高8位地址字节和一些控制信号。 P3口:其是一个内部具有上拉电阻的8位双向I/O口,输出缓存器能驱动4个TTL逻辑电平。对其写“1”时,内部的上拉电阻会把端口拉高,此时可作为输入使用。 P3口亦作为AT89S52特殊功能(即第二功能)使用,如下表所示 在Flash编程和校验时,P3口接收一些控制信号如下表2.2。表2.2 P3口接收控制信号 RST:复位输入。晶振工作时,引脚持续2个机器周期高电平将会使单片机复位。看门狗及时完成后,引脚输出96个晶振周期的高电平。 30引脚:地址锁存控制信号ALE在访问外部程序存储器的时候锁存住低8位地址的输出脉冲,在Flash编程的时候作为编程的输入脉冲。 当AT89S52从外部程序存储器执行外部代码时,每个机器周期被激活两次,而在访问外部数据存储器时,将不被激活。 31引脚:访问存储器控制信号。为了使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。 为了执行内部程序指令,EA接电源 在Flash编程的时候,也要接电源。 XTAL1与XTAL2接晶振电路。2.2.2 单片机最小系统设计 单片机最小系统包括有晶振电路设计、复位电路设计、电源电路等,其连线图如下图2.3 图2.3 单片机最小系统连线图1 其中晶振电路设计与分析 晶振器特性:XTAL1和XTAL2分别是反向放大器的输入和输出。此反向放大器可以当作为片内振荡器。而且石晶振荡和陶瓷振荡均可采用。有余输入至内部时钟信号时要通过一个二分频的触发器,因此对外部的时钟信号的脉宽没有任何要求,但必须要保证脉冲的高低电平要求的宽度。2 时钟电路设计 单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。在XTAL1和XTAL2两个引脚外接晶体振荡器(简称晶振)或陶瓷谐振器,便构成了内部振荡方式。由于单片机内部有个高增益反相放大器,当其外接晶振后,就构成了自激振荡器并会产生振荡时钟脉冲。内部振荡方式的外部电路如下图2.4所示。图中,两个电容器起到稳定振荡频率、快速起振的作用,电容值的范围一般在5-30pF之间。晶振频率典型值为12MHz。内部振荡方式所得的时钟信号比较稳定,实用电路中使用较多。 外部振荡方式则是把外部已有的时钟信号导入单片机内。这种方式适合用来把单片机的时钟同外部信号保持同步。外部震荡方式线图如下图2.5 图2.4 内部振荡接线图 图2.5 外部振荡连线图3 复位电路的设计与分析 复位电路是在上位或是复位的工程中,控制CPU的复位状态,这段时间内让CPU保持复位的状态,而不是以上电或是刚复位完就开始工作,防止器发出错误的指令,同时也可以提高电磁的兼容性。单片机在启动的时候都需要进行复位,以使CPU及系统各部件处于初始的状态,并从初始状态开始工作。设计上电复位电路图如图2.6 图2.6 上电复位电路图 接通电源后,电源便通过电阻对电容进行充电。这时电阻有瞬时电流通过,RST脚的电压等于电阻两端的电压之差。也就相当于电源的电压值,也就是高电平。在充电的过程中,随着电容端的电压逐步趋于电源电压,电阻两端最终将没有电流通过,这时RST引脚相当于地相连,因此RST引脚上的电压将最终将接近于0。这个过渡过程的长短取决于电阻和电容值的大小。10uF电容足以使RST脚上的电压在振荡器启振后尚有两个机器周期以上的时间保持高于施密特触发器的低门槛电平,从而能够使整个复位过程得以完成。4 单片机复位后的状态与分析单片机复位操作使得单片机进入初始化状态,其中包括使程序计数器PC0000H,这表明此程序从0000H地址单元开始执行。单片机冷启动之后,片内RAM为随机值,之后运行中的复位操作不会改变片内RAM区中的内容,其中21个特殊功能寄存器被复位后的状态为确定值,如下表所示。值得指出的是,记住一部分特殊功能寄存器复位后的主要状态,对于了解单片机的初态,减少应用程序中的初始化部分是十分必要的。 注明:表2.3中符号*为随机状态; 表2.3 特殊功能寄存器初始状态特殊功能寄存器初始状态特殊功能寄存器初始状态PSW00HTH000HP0P3FFHSBUF不定IP*00000BSCON00HIE0*00000BPCON0*BA00HTMOD00HB00HTCON00HSP07HTL000HDPL00HTH100HDPH00HTL100HPSW为00H时,表明选寄存器0组为工作寄存器组;SP07H,表明堆栈指针指向单片机内RAM 07H字节单元,根据堆栈操作的先加后压法则,可以知道第一个被压入的内容写入到08H单元中;PoP3FFH,表明已经向各端口写入1,此时,各端口既可以作为输入又可以作为输出;IP*00000B,表明各个中断源处在低优先级;IE0*00000B,表明每个中断源均被关断;A00H,表明累加器已被清零; 此单片机的复位是由RESET引脚控制的,此引脚与高电平相接时间超过24个振荡周期之后,单片机便进入芯片内部复位状态,并且一直在这种状态下等待,直到RESET引脚转成低电平之后,才会检查EA引脚是高电平或低电平,若是高电平则会执行芯片内部的程序代码,若是低电平便会执行外部程序。单片机在系统复位时,会将其内部的一些重要的寄存器设置成为特定的值,至于内部RAM内部的数据则不变。2.3 感应模块的设计与分析 本次设计中的雨滴感应模块是由雨滴板、LN393低功率低失调电压双比较器、电位器、指示灯等组成。 控制模块信号接收的连线图如图2.7 图2.7 控制模块信号接收的连线图 雨滴感应模块信号输出接线图如图2.8 图2.8 感应模块信号输出接线图 在图2.7中当k1(雨滴板)没有雨滴的时候1与2脚之间显示断开,这时输入信号为高电平信号,电源指示灯亮,开关指示灯灭;当有雨滴时,1与2引脚显示接通,这时输入的为低电平,此时开关指示灯亮起,为有效信号。雨滴模块的实物图如图2.9所示: 图2.9 雨滴模块的实物图2.4 电机及驱动模块2.4.1 电机控制电路的设计与分析 本次设计运用步进电来取代传统的雨刷电机,步进电机是将电脉冲信号转变为角位移或者是线位移的开环控制元件。在没有超载的情况下,电机的转速和停止的位置只取决于脉冲信号的频率与脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而没有累积误差等特点。使其在速度、位置等控制领域用步进电机来控制变的非常的简单。 1 步进电机的基本原理和特点 步进电机是一种将电脉冲信号转化为角位移的执行机构。当电机中步进驱动器接收到一个脉冲信号,它就会驱动步进电机按设定的方向转动一个固定的角度称之为“步距角”,其旋转是以固定角度一步一步运行的。我们可以通过控制脉冲的个数来控制角位移量,从而达到较为准确定位的目的;同时还可以通过控制脉冲的频率来控制不进电机的转动速度和加速度,来达到调速的目的。步进电机可以作为一种开环控制用的特种电机,利用其没有积累误差的特点(即精度为100%),广泛应用于各种开环控制。 常见的步进电机分为三种:永磁式(PM),反应式(VR)和混合式(HB),永磁式电机步进一般为两相,转矩和体积都较小,步进角一般为7.5 度 或15 度;反应式电机步进一般为三相,可实现较大转矩输出,步进角一般为1.5 度,但因为噪声和振动都很大。欧美等发达国家在80 年代就被淘汰了;混合式步进电机则混合了永磁式和反应式的优点。它分为两相和五相两种:两相的步进角一般为1.8 度,五相的步进角一般为 0.72 度。这种步进电机在当下的应用最为广泛。 步进电机是一种数字控制电机,它将脉冲信号转变为角位移,即给一个脉冲信号,步进电机就相应的转动一个角度,因此非常适合于单片机来控制。步进电机与其他的控制电机最大的区别在于步进电机是通过输入的脉冲信号来进行控制的,就是说电机的总转动角度是由输入的脉冲数决定的,电机的转速是由脉冲信号的频率决定的。 步进电机的控制信号由单片机产生,步进电机的驱动电路根据控制信号而工作。其基本原理如下: (1)控制换相顺序 通电换相这一过程称为之脉冲分配。 (2)控制步进电机的转向 如果给定的工作方式是正序换相通电,则步进电机正转,如果是按反序通电 换相,则电机就反转。 (3)控制步进电机的速度 如果给步进电机一个控制脉冲,它就相应的转动一步,再发给一个脉冲,它就会再转一步。两个脉冲之间的时间间隔越短,则步进电机就会转得越快。因此我们可以调整单片机发出的脉冲频率,来对步进电机的转速进行我们所需的调动。 (4)步进电机的静态指标 相数:产生不同的对极N、S 磁场的激磁线圈的对数。常用m来表示。 拍数:在完成一个磁场周期性变化时所需要的脉冲数。常用n 表示,或者是电机转过一个齿距角所需脉冲数,用四相电机为例,有四相四拍的运行方式:AB-BC-CD-DA-AB,有四相八拍的运行方式: A-AB-B-BC-C-CD-D-DA-A. 步距角:对应一个脉冲信号,电机转子转过的角位移,用 表示。=360 度/(转子齿数*拍数),以常规二、四相,转子齿数为50 齿电机为例。四拍运行时步距角为=360 /(50*4)=1.8 度(称为整步),则八拍运行时步距角为=360 /(50*8)=0.9 度(称之为半步)。 定位转矩:电机在不通电的状态下,电机转子的自身锁定力矩。 静转矩:电机在额定的静态电作用下,就是说电机不作旋转运动时,电机转轴的锁定力矩。这个力矩是用来衡量电机体积(即几何尺寸)的标准,与驱动电压及驱动电源是无关的。静转矩与电磁激磁安的匝数成正比,同定齿转子间的气隙有关,但是过分的采用减小气隙,增加激磁安匝数来提高静力矩的做法是不可取的,这样会造成电机过于发热及机械噪音。 (5) 步进电机的动态指标: 步距角精度:步进电机每转一个步距角的实际值与理论值之间的误差。用百分比表示为:误差/步距角*100%。不同运行拍数其精度值不同,四拍运行时的误差应在5%之内,八拍运行时的误差应在15%以内。 失步:电机运转时所运转的步数,不等于理论上的步数。则称之为失步。 失调角:转子齿轴线偏离定子齿轴线的角度,电机运转则必然存在失调角,由于失调角产生的误差,采用细分驱动是无法解决的。 最大空载起动频率:电机于某种驱动形式、电压和额定电流的接入下,在不加负载的情况时,能够直接起动的最大频率。 最大空载的运行频率:电机于某种驱动形式,电压和额定电流的状态下,电机不加负载的最高转速频率。 运行矩频特性:步进电机在某一种测试的条件下,测得运行中输出的力矩与频率之间的关系曲线称为运行矩频特性,这是电机诸多动态曲线中最重要的,也是电机选择的根本依据。 电机一旦被选定后,电机的静力矩则就确定下来了,而动态力矩且不确定,电机的动态力矩是于电机运行时的平均电流(而不是静态电流)所决定的,平均电流越大,则电机输出力矩就越大,即电机的频率特性就越硬。如图2.10 图2.10 步进电机特性曲线 如上图所示,其中,曲线3 的电流最大或者电压最高;曲线1 的电流最小或者是电压最低。曲线与负载横线的的交点是此负载的最大速度点。想要使平均电流大,应该尽可能的提高驱动电压(必须要主要电机的额定电压值),采用小电感大电流的不进电机。 电机的共振点:步进电机都会有固定的共振区域,共振区一般会在180-250pps 之间(步距角为1.8 度时)或是在400pps 左右(步距角为0.9 度时),电机的驱动电压越高,电机电流则越大,负载越轻,电机的体积越小,则共振区会向上偏移,反之则亦然,为了使电机输出大的电矩,同时不失步和整个系统的噪音降低,一般电机的工作点都应该偏移共振区较多。 根据设计要求,本设计选用的步进电机为四相五线制5V步进电机,其也可以当作两相电机使用。大多步进电机在低频工作的时,都会有振动大、噪声大的缺点。但是如果采用细分方式,就能够很好的解决上面的这个问题,步进电机细分控制,从本质上来说是通过对电机的励磁绕组中电流的控制,来使步进电机内的合成磁场变为均匀的圆形的旋转磁场,从而来实现步进电机步距角的细分,在一般情况下,其合成磁场矢量的幅值是由步进电机旋转力矩的大小来决定的,相邻的两合成磁场矢量之间的夹角大小会决定步距角的大小,步进电机的半步工作方式就蕴涵了细分这种方式的工作原理。2.4.2 不进电机的驱动芯片 实现细分方式有多方法,最常用的是采用脉宽调制式斩波驱动的方式,大多数专用步进电机的驱动芯片都采用这种驱动方式来进行驱动,ULN2003AN是其中的一种芯片,在本次设计中我们所使用的为感性负载步进电动机,因此不能直接用单片机来进行直接驱动。选用ULN2003AN芯片来进行驱动不进电机。 ULN2003AN是高压大电流达林顿晶体管阵列系列产品,具有电流增益高,工作电压高,温度范围宽,带负载能力强等特点,适用于各类要求高速大功率驱动的系统,其电路是美国Texas Instruments公司和Sprag公司开发的晶体管阵列电路。 驱动芯片ULN2003AN的引脚图如图2.11; 图2.11 驱动芯片ULN2003AN的引脚图 驱动芯片ULN2003内部电路原理图如图2.12所示 图2.12 驱动芯片ULN2003内部电路原理图 各引脚的功能符号如下表2.4所示: 表2.4 驱动芯片ULN2003各引脚符号 1 步进电机与驱动芯片连接的电路设计与分析 步进电机由驱动芯片驱动的连接线图如图2.13 图2.13 步进电机由驱动芯片驱动的连接线图 (1)驱动电机 电机驱动的关键是精确的控制电机旋转的角度。程序设计是要根据传感器的信息来判断旋转的方向,以便启动相应的转动方向子程序。正反控制程序分别按控制脉冲顺序的要求采用相应的控制模型,并判断是否大幅度转向,采用调节脉冲宽度的方式来实现电机调速。程序设计时把步进电机的控制方式简历成控制模型,并以数据表形式存于存储器中,设计程序是可以直接调用该存储器的数据。 (2)电机对零 对零点事电机操作最重要的环节之一,在步进电机进行点位控制之前首先必须确定出一个绝对坐标系,系统就将对零点位置作为第一个绝对坐标系。上电后首先进行归零操作,电机一开始以顺时针(或逆时针)方向任意旋转,一旦接受到主控台传来的信号就立即控制电机停止运动,并等待接收旋转的数据,然后开始控制电机的运转。 (3)速度的控制 不但要求电机能够精确的定位,而且还要求快速的到达预定的位置,也就是要求准确的控制步进电机的转动速率。步进电机的速率控制方法主要是通过改变每个脉冲信号的时间间隔,可以采用设置定时器的初始时间来获得延时时间,也可以采用改变程序中的延时时间来满足。假如转动方向变化比较大时,如果点击还是按照恒定的转速进行工作,那么转动的时间就会比较长。因为步进电机的响应频率fs比较低(100步/秒-250步/秒),而电机的启动频率还要低于最高空载的启动频率,当电机启动后,在进入稳态时工作频率又会远远的大于启动频率。由此可见,一个静态的不进电机是不可能马上达到较高稳定工作频率,而要求在启动电机的瞬间采取加速措施来完成,一般我们会在起步的时候采用升频的方式,时间范围约为0.1-1秒;反之,从高速运转到停止的时候有件减速的措施,而且减速时的加速度的绝对值要比加速时的加速度要大,这样所需的时间就会变短。为了解决快速而不失步的问题,对电机提出了相应的要求,如下“低速启动接着高速运转,然后降低速度,最后停止”。这种三段允许频率方式我们利用程序的延时来完成。 利用高耐压,大电流的达林顿陈列ULN2003直接与负载电机相连接,并驱动步进电机,电机的转动速度由机械设计和单片机程序进行控制。由该芯片在5V的工作电压下与TTL信号和CMOS电路直接相连,保证负载电流的供给,同时也减少了其他驱动芯片容易被烧的事故。2 电机与控制模块连接的实物图如图2.14图2.14 电机与控制模块连接的实物图 单片机上用P3.0、P3.1、 P3.2、P3.3四个输出口与图中驱动芯片的1B、2B、3B、4B四个引脚相连,作为信号的输入,从而控制步进电机作相应的运转。其中电机的四根控制线有电流通过时,指示灯不断的闪烁。第三章 汽车自动雨刷控制系统软件的设计 系统软件的设计包括有主程序的设计,电机转速设置程序设计和各中断服务等程序的设计。3.1 主程序设计 本次设计单片机的控制程序采用51汇编语言编写的,在编写过程中,使用结构化、模块化的形式编写,整个程序的清单见附录II。本章将对本系统的程序做下具体的分析。 首先我来分析主程序的流程,其主程序程序流程图如图3.1所示 图3.1 主程序程序流程图 用两个定时计数器,Timer0用中断方式(每定时10ms中断一次);Timer1用查值方式,用来计数(Timer0每中断一次,就来读取他的一次值,并作出相应的处理)3.1.1主程序的初始化内容 如图3.1显示,本设计的主程序设计比较简单。程序首先送初值,即给AT89S52送取一个占空比为50%的数据。(当然也可送其它占空比数据,这里为了更好的展示,根据不同系统的需要,其值是可变)。接着对数据和中断进行初始化。MCS-51系列单片机复位后,(PC)=0000H,而0003H002BH分别为各中断源的入口地址。所以,编程的时候应在0000H处写一条跳转指令。当CPU接收到中断请求信号并做出响应后,CPU会把当前的PC内容压入堆栈中进行保护,然后跳转到相应的中断服务程序入口执行相应的中断程序。一般会在相应的中断服务程序入口处写一条跳转指令,并以跳转指令的目标地址作为中断服务程序的其实地址进行编程。 MCS-51系列单片机复位后,除了SP为07H,P0P3口为FFH外,其余给内存单元内容均为00H,所以应对IE、IP进行初始化编程,用来开放CPU的中断,允许某些中断源中断设置中断优先级等。3.1.2 代码转换程序 人们日常习惯用十进制的数,而计算机键盘的输入和输出以及显示常采用二进制编码的十进制数或ASCII码。因此,在程序设计中经常需要进行代码的转换。各种代码之间转换十分有用,除了对硬件逻辑转换外,程序设计中还会采用算法处理和查表方式。3.2 中断服务程序 中断服务的程序是一种具有特定功能的独立程序段。它为中断源所需要的特定要求而服务,以中断返回指令而结束。由于工序操作和计数请求响应采用中断处理方式,所以中断服务程序设计是本系统软件设计的核心。在中断响应过程中,断点的保护和恢复主要由单片机内部的电路来实现。在编写中断服务程序时,必须要考虑是否有需要保护的现场,也就是说在主程序中用到的寄存器、存储单元等,同样在中断程序中也要使用。如果有,应该注意不要遗漏;在恢复现场时,需要注意压栈与出栈指令必须成对使用,先入栈的内容应该后弹出。另外,还要及时清除需要用软件清除的中断标志。3.2.1中断服务程序的设计 本次设计中采用的是工序操作中断服务程序,此程序中用延时表示工序操作的处理过程。其程序流程图如图3.2所示图3.2 工序操作程序流程图3.3检测脉冲及电机运行程序的设计 检测出雨量传感器输出的脉冲是实现本系统的关键步骤,通过对雨量大小的检测的信息能准确控制步进电极的运行。实现检测的程序流程图如下图3.3所示Timer0保护现场关闭Timer0 Timer1读取Timer1判断Timer1的值调用小雨程序处理方案调用中雨程序处理方案调用大雨程序处理方案Timer0 Timer1清零中断返回开启 Timer0 Timer1 大于160大于等于80小于等于160小于80图3.3 实现检测的程序流程图第四章 汽车自动雨刷控制系统调试 本次总体硬件设计结束后,随后完成了实验板的焊接工作。在这硬件都完成之后,然后对软件进行调试工作。4.1 调试单片机最小系统 首先在单片机的P2.0引脚接个闪灯(电源 发光二极管 电阻和电容串联接入单片机引脚P2.0引脚),然后通过实验板上的下载口向单片机内下载闪灯程序,下载完成后发现闪灯没有进行闪灯,进过对比最小程序电路图,发现单片机第31个引脚没有接电源。出现了一些连线的错误,经改正后,闪灯能够按照程序理想的进行闪灯工作。 因此,可以断定单片机的最小系统的接线没有问题,最小系统调试完成。4.2 问题分析及雨滴感应模块调试 当最小系统调试完成之后,接下来向单片机内下载步进电机驱动程序,电机无法工作,接通电源一段时间,步进电机出现发热现象。出现这种现象考虑到问题可能有以下几种情况: 1,雨滴感应模块除了问题,没能够传送出感应信号 2,系统程序编程出现了错误,对信号的接收和处理不到位 3,步进电机驱动模块可能没法接收信号 接下来对雨滴感应模块做了具体的分析,用万能表检查,当没有雨滴的时候雨滴模块输出电压接近电源电压,为高电平信号;当有雨滴的时候输出为低电压,接近于0V,为低电平,输出为有效信号。同样检测单片机接收引脚的时候同样如此,由此可以的断定在雨滴感应信号的发出与接收这块是没有问题的。4.3 步进电机驱动模块调试 如果步进电机要是没有问题的话,直接向单片机内下载电机驱动程序的话,步进电机应该会做相应的相应。有了这个想法之后,在网上直接下载了电机的驱动程序,做了相应的改动和转换格式之后下载到单片机内,完成之后,电机能够做相应的正转与反转。 电机的转动,证实了,电机驱动模块工作正常。接下来的问题那边是单片机的程序问题。4.4 系统软件调试 上面几步对系统的硬件做了相应的调试之后,基本上能够把问题之所在控制在了软件错误。 由于对电机的调试,控制程序能够控制步进电机做正反转,便引出了一个想法,那就是如果在步进电机驱动程序中加入雨滴感应信号的检测程序,然后在做相应的变动那便是一个自动雨滴控制程序。本次设计只采用了一块雨滴感应模块,则雨滴感应信号也就只有一个输入,程序简单易懂。 根据观察调试,把电机正反转系统编译改成如下程序/*正向旋转相序表*unsigned char code FFW8=0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09;/*反向旋转相序表* unsigned char code REV8=0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08; 重新下载到单片机后,问题又出现了,步进电机有时候一直正传,有时候电机正传结束后,停止一段时间接着正传。问题便出在了反转程序的编辑和调用上。对反转程序做了进一步修改,完成后再次下载到单片机内,这时步进电机的现象是:步进电机做正传之后,停止一段时间,接下来有时会做反转相应,有时候不动,然后紧跟着又做起了正转相应。这里对电机发热的现象做了有效的改进。通过上面的现象,对延时程序做了修正如下/*延时子程序* void delay(unsigned int t) unsigned int k; while(t-)
展开阅读全文