智能化车窗升降控制系统设计

上传人:都** 文档编号:6045712 上传时间:2020-02-15 格式:DOC 页数:47 大小:11.50MB
返回 下载 相关 举报
智能化车窗升降控制系统设计_第1页
第1页 / 共47页
智能化车窗升降控制系统设计_第2页
第2页 / 共47页
智能化车窗升降控制系统设计_第3页
第3页 / 共47页
点击查看更多>>
资源描述
中国地质大学(武汉)远程与继续教育学院毕业设计(论文)远程与继续教育学院本科毕业论文(设计)题目: 智能化车窗升降控制系统设计 学习中心: 内蒙古学习中心 学 号: 090F31143086 姓 名: 戴元哲 专 业: 电气工程及其自动化 指导教师: 苏娜 2016 年 9 月 2 日 中国地质大学(武汉)远程与继续教育学院本科毕业论文(设计)指导教师指导意见表学生姓名: 戴元哲 学号: 090F31143086 专业: 电气工程及其自动化 毕业设计(论文)题目: 智能化车窗升降控制系统设计 指导教师意见:(请对论文的学术水平做出简要评述。包括选题意义;文献资料的掌握;所用资料、实验结果和计算数据的可靠性;写作规范和逻辑性;文献引用的规范性等。还须明确指出论文中存在的问题和不足之处。)填写要求:1.请指导教师按以上要求填写意见,2.学生在上传论文时不得将以上括号内的内容删除。3.当学生论文评阅成绩不及格重写时,指导教师要重新填写意见及新的指导日期。(指导教师填写指导意见时请将填写要求删除)指导教师结论: (合格、不合格)指导教师姓名所在单位指导时间中国地质大学(武汉)远程与继续教育学院 本科毕业设计(论文)评阅教师评阅意见表 学生姓名: 戴元哲 学号: 090F31143086 专业: 电气化及其自动化 毕业设计(论文)题目: 智能化车窗升降控制系统设计 评阅意见:(请对论文的学术水平做出简要评述。包括选题意义;文献资料的掌握;所用资料、实验结果和计算数据的可靠性;写作规范和逻辑性;文献引用的规范性等。还须明确指出论文中存在的问题和不足之处。)填写要求:1.请评阅教师按以上要求填写意见,2.上传论文时不得将以上括号内的内容删除。3.当学生论文评阅成绩不及格重写时,评阅教师要重新填写意见及新的评阅日期。 (评阅教师填写指导意见时请将填写要求删除)修改意见:(针对上面提出的问题和不足之处提出具体修改意见。评阅成绩合格,并可不用修改直接参加答辩的不必填此意见。)毕业设计(论文)评阅成绩 (百分制): 评阅结论: (同意答辩、不同意答辩、修改后答辩)评阅人姓名所在单位评阅时间论文原创性声明本人郑重声明:本人所呈交的本科毕业论文智能化车窗升降控制系统设计,是本人在导师的指导下独立进行研究工作所取得的成果。论文中引用他人的文献、资料均已明确注出,论文中的结论和结果为本人独立完成,不包含他人成果及使用过的材料。对论文的完成提供过帮助的有关人员已在文中说明并致以谢意。本人所呈交的本科毕业论文没有违反学术道德和学术规范,没有侵权行为,并愿意承担由此而产生的法律责任和法律后果。 论文作者(签字):戴元哲 日期:2016年9月2日3摘 要汽车车窗升降控制系统是车身电子中重要组成部分。本课题以汽车车窗永磁直流电机为控制对象,设计了智能化车窗升降控制系统,利用C语言编写控制策略程序,实现了车窗上升、下降、停止、防夹等功能。首先,介绍了本论文课题来源和意义,并指出了课题研究的主要内容。其次,深入分析了汽车电动车窗的结构和工作原理,指出了汽车电动车窗的智能化及网络化发展趋势。再次,本论文设计了汽车车窗升降控制器,其中包括硬件电路设计和相关的控制软件设计,结合具体的实际条件,提出了汽车车窗的防夹控制策略。最后,对全文做了总结,并提出了后期的工作展望。本课题设计的智能化车窗升降控制系统,不仅避免了汽车电控系统的增加而导致的线束复杂、布线困难等缺点,而且优化了车窗控制方法,有利于车窗的实时控制,满足了人们对于汽车安全性、舒适性和方便性的要求。关键词:1 、汽车车窗 2、升降控制 3、CAN总线 4、防夹目 录第一章 绪论1(一)课题的来源及意义1(二)毕业论文主要内容1第二章 汽车车窗结构和原理2(一)车窗结构21、车窗开关结构22、车窗电动机结构23、车窗升降器结构2(二)车窗工作原理31、传统型车窗32、新型车窗4(三)本章小结5第三章 车窗升降控制系统硬件设计6(一)系统整体硬件设计方案6(二)系统核心元器件介绍61、微控制芯片STC12C5A08S262、CAN控制器SJA100073、CAN收发器82C25084、电机驱动芯片MC334868(三)车窗升降控制系统电路设计91、 电源模块电路设计102、CAN通讯电路设计113、电机驱动电路设计124、串口通讯电路设计125、按键电路设计136、时钟及复位电路设计14(四)车窗控制器及调试系统搭建14(五)本章小结15第四章 车窗升降控制系统软件设计16(一)系统软件设计概述161、 软件设计思想162、系统功能实现16(二)Keil集成开发环境介绍17(三)系统程序设计181、车窗上升及下降程序设计182、按键程序设计213、电流A/D转换程序设计244、参数修正程序设计265、防夹及过流保护程序设计276、CAN通讯程序设计29(四)系统功能调试341、车窗上升和下降功能调试342、车窗参数修正功能调试343、车窗防夹功能调试354、车窗CAN通讯功能调试36(五)本章小结36第五章 结论37致 谢38参考文献39 6中国地质大学(武汉)远程与继续教育学院本科毕业设计(论文)第一章 绪论(一)课题的来源及意义跟随汽车电子技术的飞速发展,现代汽车中所使用电子通讯控制系统系统日益渐多,如发动机电控系统、防滑控制系统(ASR)、防抱死制动系统(ABS)、自动变速器控制系统、自动巡航系统(ACC)和车载多媒体系统等,这些系统之间均需进行大量数据交换,如此巨大的数据交换量,如果仍采用传统点对点的连接传输方式将是难以想象的1-5。目前,大多数汽车都应用了CAN总线技术,特别是在车身电子控制网络方面,其具有不可替代的优势。 CAN控制器 局域网络(Controller Area Network,CAN)由于具有成本低、可靠性高等特点,因此CAN总线技术颇受青睐。智能化汽车车窗升降控制系统是车身电子系统中的重要组成部分,通过CAN总线实现车窗升降控制系统的网络化,优化了控制方法,避免了汽车电控系统的增加而导致的线束复杂、布线困难等缺点6。(二)毕业论文主要内容本论文以汽车车窗永磁直流电机为控制对象,设计了智能化车窗升降控制系统,利用C语言编写控制策略程序,实现车窗上升、下降、停止及防夹等功能。本文主要研究内容如下:(1)车窗结构和原理阐述;(2)智能化车窗升降控制系统的硬件电路设计,具体包括CAN总线接口、电源、电机驱动电路等;(3)结合具体的实际条件及车窗升降电机工作电流的特点,提出车窗防夹算法;(4)结合模块化和层次化思想进行控制系统软件设计;(5)通过实验并调试该系统车窗上升、下降和防夹等功能。第二章 汽车车窗结构和原理(一)车窗结构1、车窗开关结构汽车左前车窗开关结构如图2-1所示,主要由开关外壳、开关后盖及电路板组成。左前车窗开关可以实现整车车窗的集中控制。其它三个车窗开关结构基本相似,功能上只能控制相应的车窗升降7,8。图2-1 汽车左前车窗开关结构图2、车窗电动机结构汽车车窗电动机主要由电动机、减速装置等组成。车窗电动机是永磁、两级直流电动机,其内部有减速装置,通过改变电流方向来实现电机正反转,从而调整车窗的升降9。3、车窗升降器结构汽车车窗升降器结构如图2-2所示,主要由升降器电机、夹持器、托架、拉索、绳轮组成10。图2-2 汽车车窗升降器结构图(二)车窗工作原理车窗基本工作原理是:驾驶员通过车窗开关控制电动机正反转,电机通过内部减速装置,减少输出转速,增大扭矩,从而驱动车窗升降器玻璃稳定升降11,12。其工作原理如图2-3所示。图2-3 汽车车窗工作原理图1、传统型车窗传统电动车窗控制部分主要由主、副开关、电动机、电动机断路器等组成。其具备的基本功能有车窗的上升、下降和停止等动作13。如图2-4为传统电动车窗电路图。 图2-4 传统电动车窗电路图2、新型车窗图2-5 为新型电动车窗结构图。新型电动车窗在车窗开关处有专门的电路控制模块,其功能还增加了防夹、软停止、电机堵转保护及电机温度保护等14。图2-5 新型电动车窗结构图随着汽车总线技术的不断发展,新型电动车窗开始运用汽车总线技术,将汽车车窗各个控制模块组成一个网络,从而对车窗进行实时有效控制。由于电机霍尔元件的存在,不仅能定位车窗玻璃的位置,而且更有利于车窗防夹算法的可靠性15,16。(三)本章小结本章主要介绍了汽车电动车窗的结构和工作原理。通过对车窗结构和工作原理的介绍,更加深入地了解电动车窗的基本工作过程。另外,通过传统电动车窗和新型电动车窗的介绍,了解了汽车电控车窗技术的发展动态,特别是汽车总线技术的不断发展,更有利于汽车车窗控制系统的网络化和智能化。第三章 车窗升降控制系统硬件设计汽车车窗从机械控制到逐步实现电动控制经历了无数技术突破。起初,汽车电动车窗控制主要通过主、副开关实现不同的电路连接,从而实现车窗电机的正反转控制。目前,大多数电动车窗都有车窗控制电路板,通过微控制器实现车窗升降,并且车窗功能更加完善。(一)系统整体硬件设计方案文中智能化汽车车窗升降控制系统主要设计并实现以下功能:1、车窗上升、下降及停止;2、按键长按、短按(点动)功能;3、CAN通讯功能;4、防夹及电机过流保护功能;本论文系统硬件设计内容如下:硬件整体设计方案;微控制芯片(ECU)型号的选择;电源电路设计;ECU外围电路设计;电机驱动电路设计; CAN通信接口电路设计等。其硬件构成如图3-1所示。接口电路微控制芯片(ECU)STC12C5A08S2电源接 口 电 路串口通讯霍尔传感器车窗按键A/D电机电流CAN通讯MC33486电机 图3-1 系统硬件结构示意图(二)系统核心元器件介绍1、微控制芯片STC12C5A08S2微控制芯片是控制系统的核心部件,主要负责按键状态采集、霍尔传感器数据采集、电机工作电流A/D转换、电机驱动电路控制以及CAN总线数据发送和接收等任务。因此微控制芯片的选型是整个系统设计的关键环节。本系统选用宏晶科技8051单片机STC12C5A08S2芯片17,18,其为强型8051 CPU,频率:0 35MHz,相当于普通8051的0 420MHz;片上集成1280字节RAM,有EEPROM功能;40个通用I/O口;支持IAP/ISP编程;4个16位定时器;2路PWM(脉宽调制),2路PCA(可编程计数器阵列)等功能。图3-2 STC12C5A08S2管脚图2、CAN控制器SJA1000选用的CAN控制器信号为SJA1000,它是PHILIPS半导体PCA82C200 CAN控制器(BasicCAN)的替代品,具备PeliCAN工作模式,支持很多新特性的CAN2.0B协议,其内部结构如图3-3所示。SJAl000主要有以下几个功能模块20-22:接口管理逻辑(IML)、发送缓冲器(TXB)等。在硬件电路设计上,对于单片机而言,SJA1000相当于外部RAM。图3-3 SJA1000内部结构框图3、CAN收发器82C250CAN收发器选用82C250, 82C250具体功能如下。其主要特性如下: 与ISO11898标准完全兼容; 高速率(最高可达1Mbps); 采用斜率控制(Slope Control),降低射频干扰(RFI); 过热保护; 低电流待机模式; 总线至少可连接110个节点。4、电机驱动芯片MC33486对于本系统车窗升降电机,最大工作电流可达20A,故选用MC33486作为驱动芯片。该芯片包括两个N沟道功率MOS管和一个控制模块,是当今市场最流行的电动车窗驱动芯片23-25。其引脚排列如图3-4所示。图3-4 MC33486引脚图MC33486内部有两个高功率MOS管,通过外部再连接两个功率MOS管可实现电机的H桥式控制。GLSl、GLS2为2个低端输出,OUT1和OUT2为2个高端输出引脚26,27。该芯片功能特性如下:(1)正常输出直流电流为10A;(2)最大峰值电流可达35A;(3)直流输入电压范围较宽,达828V;(4)电压超过28V时具有过压保护;(5)对低端和高端均具有过流保护;(6)斩波控制下频率可达30KHz;(三)车窗升降控制系统电路设计本论文采用Protel DXP对车窗控制系统进行电路设计。Protel DXP软件包含SCH设计、SCH仿真、PCB设计等功能,覆盖了以PCB为核心的整个物理设计28,29。图3-5为智能车窗升降控制系统原理图,图3-6为智能车窗升降控制系统PCB图。图3-5车窗控制器原理图图3-6车窗控制器PCB图1、 电源模块电路设计在系统硬件电路设计中,电源电路设计是整个系统功能实现的关键。电源由蓄电池提供12V电源,MCU芯片工作电压为5V,故进行电压转换。本设计电源模块如图3-7所示。图3-7电源模块电路图LM78系列三端稳压IC是非常广泛的稳压集成电路芯片。LM78芯片所需外围电路极少,且内部已集成过流、过热等保护电路30。在电源模块中,12V电源经过LM7809稳压输出9V电源,然后经过LM7805将9V电源稳压输出5V电源;220uF的电解电容保证电源稳定输出,防止电源波动;0.1uF的贴片陶瓷电容在系统中起到防止高频干扰的作用。此外,在电源模块中还有一个DC/DC芯片B0505M1W,该芯片应用在CAN通讯电路中,起到电压隔离的作用。2、CAN通讯电路设计如图3-8所示为CAN通信原理图,该模块主要包括独立CAN控制器SJA1000等。控制器SJA1000的AD0 AD7连接微控制器STC12C5A08S2的P0端口,由于P0口无上拉电阻,故需要外接10K的电阻。片选端口连接微控制器的P2.7端口,微控制器通过将P2.7置0来选中SJA1000,通过此端口也确定了SJA1000的片外地址,微控制器就可以方便的读/写数据。图3-8 CAN通讯电路图由于CAN通讯模块关系到数据的正确发送和接收,因此在抗干扰方面也采取了一定的措施:(1)SJA1000的TX0和RX0不直接与82C250的TXD和RXD相连,而是通过高速光耦6N137后与82C250相连,有利于总线上各个节点的电气隔离;(2)为了提高节点可靠性,光耦通过DC/DC电源隔离模块将两个VCC和+5V完全隔离;3、电机驱动电路设计车窗电机额定工作电流小于8A,堵转电流大于20A,可正反转动,可在驱动控制中提供防夹功能。图3-9是车窗电机驱动电路图。MC33486输出引脚OUT1、OUT2为高端输出口,直接用来驱动车窗电机。例如INl、IN2分别为逻辑1、0时,相应的GLS1、GLS2被控制输出逻辑0、1,则Q1截止,Q2导通,所以OUT1、OUT2输出逻辑为1、0,从而驱动电机在某方向运转;反之,电机向另一个方向运转。ST端口可以检测芯片运行状态。图3-9 电机驱动电路图本论文所实现的汽车车窗防夹功能主要是通过检测电机的工作电流来实现的。MC33486功率芯片有一个CUR端口,可以镜像输出与工作电流成正比的电流,即ICUR= (1/3700)*Iload(Iload为车窗电机工作电流)31-33。通过电阻R9把电流I转换为电压U,输入到MCU控制器A/D模块。车窗电机运动遇到阻力时,其电流I则会按照一定规律变化,这些电流变化都可以通过MC33486电流采样实时地反映到微控制器中。4、串口通讯电路设计串口通讯电路如图3-10所示。图3-10 串口通讯电路图RS-232电平与TTL和CMOS电平完全不一样,必须要进行电平转换。常用的RS-232接口芯片有MAX232、MAX202E、MAX3222、AD232等35,36,本设计中所用的是MAX232。MAX232是单+5V电源的RS-232收发器,只需外接4个0.1F的电容。5、按键电路设计本课题按键电路如图3-11所示。对于右前车窗、左后车窗、右后车窗这三个控制节点,有两个功能按键,分别控制车窗上升和下降。对于左前车窗,由于功能按键多,所以设计了外接按键接口,以利于外部连接按键。单片机不断监测按键状态信号,并根据车窗的运行状态执行不同的操作。为了更好的实时显示按键状态,设计了按键指示灯来指示按键操作。图3-11 按键电路图从按键电路图可以看出,按键采用的是独立按键设计,SW1、SW2分别连接MCU的P2.2、P2.3引脚,其中10K的电阻R连接到VCC,使输入引脚上保持为高电平;若按键按下,则经过开关接地,输入引脚上变为低电平;放开按键时,输入引脚上将恢复为高电平,这样可产生一个负脉冲信号。上升和下降指示灯采用端口直接驱动,将端口设置为推挽/强上拉,可输出可达20mA,通过串联限流电阻可以调节LED亮度。6、时钟及复位电路设计宏晶STC12C5A08S2除了可以使用传统的外部时钟外,还可以选择内部R/C 振荡器时钟源(内部时钟)37,38。由于使用内部时钟源误差较大,所以在对时序要求较高或者有串行通信的情况下不建议使用内部R/C 时钟源。对于MCU,复位RESET是一项很重要的归零调整操作。本论文时钟及复位电路如图3-12所示。图3-12 时钟及复位电路图(四)车窗控制器及调试系统搭建硬件电路设计完成之后,将PCB图发到印刷电路板公司进行加工,然后购买相关元器件,最后按照设计要求进行元器件焊接。图3-13为最终完成的车窗控制器。图3-13车窗控制器车窗控制系统软件的调试必须依靠相应的硬件电路来实现,本设计分两步进行软件调试系统搭建。如图3-14所示,第一步,搭建单个车窗控制器的调试系统;第二步,在上一步调试成功的前提下,搭建基于CAN网络的车窗调试系统,如图3-15所示。图3-14 单个车窗控制器调试系统(五)本章小结本章主要介绍了车窗控制系统的硬件电路设计及相关内容。在对宏晶单片机STC12C5A08S2、CAN控制器SJA1000、CAN收发器82C250等电路核心器件介绍的基础上,对车窗控制电路各个模块做了深入地分析。第四章 车窗升降控制系统软件设计软件是车窗升降控制系统的灵魂。对控制系统来说,只有硬件无法实现车窗所设计的功能。软件设计就是将控制策略及程序算法通过一定的编程语言表达出来,让硬件电路按照设计者的意图进行工作,实现系统功能36-39。(一)系统软件设计概述1、 软件设计思想软件设计是一个非常发杂、系统的过程。车窗控制系统控制单元多、功能实现复杂、实时性强,设计时应该严格遵循一定的软件设计思想。本软件设计过程中,采用了自顶向下、模块化、结构化和参数化设计思想。(1)自顶向下 所谓自顶向下,就是在充分考虑系统功能的基础上,对软件进行整体的架构,然后逐层分解、逐层细化、逐层调试。(2)模块化模块化设计更有利于程序的移植,减少程序不必要的代码重复,因此采用模块化设计思想减少了程序存储空间。(3)结构化 程序的结构化更有利于程序的调试及分析,程序逻辑性强。(4)参数化 参数化的设计思想使程序的调用更加灵活。通过修改设置的参数,即可适用于其它的运行环境。本课题首先按照自顶向下的设计思想,建立软件的整体架构,完成主程序结构,然后按照实现的功能,将程序模块化,加入到主程序进行调试,并逐步细化各个功能模块,最后完成软件设计。2、系统功能实现对于左前车窗控制器,主程序流程如图4-1所示。图4-1 主程序流程图程序基本流程为:(1)系统初始化,包括变量声明、函数定义、定时器初始化、PCA初始化、AD转换初始化等函数;(2)执行防夹和过流保护功能;(3)检测按键状态,若有按键按下,执行相应的模块功能。对于右前车窗控制器、左后车窗控制器及右后车窗控制器与左前基本相似,只是在CAN通讯模块有所区别,这三个控制器在程序里有CAN接收子函数,没有发送子函数,按键也只有3个。(二)Keil集成开发环境介绍Keil uVision2整合式开发环境(IDE)是美国Keil Software公司开发的一套相当好的8051开发软件。该软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。Keil uVision操作界面如图4-2所示。图4-2 Keil uVision操作界面在整合式开发环境里,包括项目管理器(Project Manager)、源程序编辑器(Editor)、组译器(Assembler)、编译器(Compiler)、链接器(Linker)、调试器(Debugger)等。Keil uVision2可提供C语言与汇编语言的编辑、编译与链接、调试与仿真等功能,另外,可生成HEX文件用于在线仿真或烧录到芯片里。(三)系统程序设计程序结构的合理性对系统性能有很大的影响,因此本课题车窗控制系统软件主要由主程序、系统初始化程序、车窗上升及下降子程序、CAN通讯子程序、电机电流A/D 转换子程序、中断服务子程序、防夹及过流保护子程序等构成。1、车窗上升及下降程序设计电动车窗的上升及下降是通过改变输入永磁直流电机的极性来实现的。为了降低电机启动时的电流冲击,采用PWM原理,在启动阶段逐渐增加空占比。其子程序如下:/* 函数名称up()描 述:车窗上升函数入口参数:无出口参数:无 */ void up(void) wake=1; /电机使能CCON=0x40; /启动PCA定时器CCAP0H=0xcc; /PCA模块0的重装值为0xcc,占空比为20%,in1输出高电平 CCAP1H=0xff; /PCA模块1的重装值为0xff,占空比为0%,in2输出低电平delay10ms(); /延时10msCCAP0H=0x99; /PCA模块0的重装值为0x99,占空比为40%,in1输出高电平 CCAP1H=0xff; /PCA模块1的重装值为0xff,占空比为0%,in2输出低电平delay10ms(); /延时10msCCAP0H=0x66; /PCA模块0的重装值为0x66,占空比为60%,in1输出高电平 CCAP1H=0xff; /PCA模块1的重装值为0xff,占空比为0%,in2输出低电平delay10ms(); /延时10msCCAP0H=0x33; /PCA模块0的重装值为0x33,占空比为80%,in1输出高电平CCAP1H=0xff; /PCA模块1的重装值为0xff,占空比为0%,in2输出低电平delay10ms(); /延时10msCCAP0H=0x00; /PCA模块0的重装值为0x00,占空比为100%,in1输出高电平CCAP1H=0xff; /PCA模块1的重装值为0xff,占空比为0%,in2输出低电平 /* 函数名称down()描 述:车窗下降函数入口参数:无出口参数:无 */ void down(void)wake=1; /电机使能CCON=0x40; /启动PCA定时器CCAP0H=0xff; /PCA模块0的重装值为0xff,占空比为0%,in1输出低电平 CCAP1H=0xcc; /PCA模块1的重装值为0xcc,占空比为20%,in2输出高电平delay10ms(); /延时10msCCAP0H=0xff; /PCA模块0的重装值为0xff,占空比为0%,in1输出低电平CCAP1H=0x99; /PCA模块1的重装值为0x99,占空比为40%,in2输出高电平 delay10ms(); /延时10msCCAP0H=0xff; /PCA模块0的重装值为0xff,占空比为0%,in1输出低电平CCAP1H=0x66; /PCA模块1的重装值为0x66,占空比为60%,in2输出高电平 delay10ms(); /延时10msCCAP0H=0xff; /PCA模块0的重装值为0xff,占空比为0%,in1输出低电平CCAP1H=0x33; /PCA模块1的重装值为0x33,占空比为80%,in2输出高电平delay10ms(); /延时10msCCAP0H=0xff; /PCA模块0的重装值为0xff,占空比为0%,in1输出低电平CCAP1H=0x00; /PCA模块1的重装值为0x00,占空比为100%,in2输出高电平 /* 函数名称stop()描 述:车窗停止函数入口参数:无出口参数:无 */ void stop(void)wake=0; /电机禁止CCAP0H=0x00; /PCA模块0的重装值为0x00,占空比为100%,in1输出高电平CCAP1H=0x00; /PCA模块1的重装值为0x00,占空比为100%,in2输出高电平CCON=0x00; /关闭PCA定时器 2、按键程序设计 本课题单个车窗控制器的功能按键主要有2个,分别为上升键和下降键。这2个按键都有长按及短按两种状态。按键扫描函数获得按键键值,键值处理函数对键值进行长按及短按判断。其子程序如下:/* 函数名称Keyscan() 描 述:按键扫描函数入口参数:无出口参数:无 */ void Keyscan(void) keyflag = 0; /按键标志清0keyval = 0; /键值清0 if(sw1=0) /按键1按下,上升键delay10ms(); /延时防抖动 if (sw1=0) keyflag=1; /按键标志置1keyval=1; /按键键值置1 if(sw2=0) /按键2按下,下降键 delay10ms(); /延时防抖动 if (sw2=0) keyflag=1; /按键标志置1keyval=2; /按键键值置2/* 函数名称Key_getval() 描 述:键值处理函数入口参数:无出口参数:无 */ void Key_getval(void)if(keyflag=0) /如无键按下或键已抬起if(keypre=1) /如上次按键值为1, if(keyyear20) /如键龄小于20 flag_shortan1=1; /短按键1标志置1keyprocess=1; /按键有效标志置1keypress=1; /键码置1if(keypre=2) /如上次按键值为2, if(keyyear20) /如键龄小于20 flag_shortan2=1; /短按键2标志置1keyprocess=1; /按键有效标志置1keypress=2; /键码置2 keyyear=0; /键龄清0keypre=0; /上次键值清0flag_longan1 = 0; /清标志位flag_longan2 = 0; /清标志位else if(keyflag=1)&(keypre=0)|(keypre!=keyval) /如按键没放开,且上次键值为0或上次键值与本次键值不等 keypre=keyval; /保存本次键值 keyyear=1; /键龄置为1 else if(keyflag=1)&(keypre=keyval) /如按键没放开,且本次与上次键值相等 keyyear+; /键龄+1if(keyyear=20)&(keyval=1) /如键龄等于20,且键值为1 flag_longan1=1; /长按键1标志置1keyprocess=1; /置按键有效标志keypress=1; /键码置为1if(keyyear=20)&(keyval=2) /如键龄等于20,且键值为2 flag_longan2=1; /长按键2标志置1keyprocess=1; /置按键有效标志keypress=2; /键码置为23、电流A/D转换程序设计本课题电机工作电流A/D转换子程序是通过定时器1中断进行电流检测的,单片机每过10ms进行一次A/D转换。A/D转换的结果经过数据处理得出电机的工作电流,然后将该电流值存储在一个数组里,采集5个电流值取平均值,取平均值的目的在于降低电机启动时电流峰值的影响。在此程序里,还有参数修正处理,当车窗处于参数修正模式的情况下,判断工作电流是否大于最大工作电流,及时更新最大电流。其子程序如下:/* 函数名称ISR_T1()描 述:定时器1中断子函数,10ms入口参数:无出口参数:无 */ void ISR_T1(void) interrupt 3 uchar i; /定义局部变量 uint acc_current=0; /定义10次电流之和变量 uint ad_result=0; /定义AD转换结果 TH1=H_1; /设置T1计数量高8位 TL1=L_1; /设置T1计数量低8位 ADC_CONTR|=0x08; /启动AD转换 _nop_(); /空指令,适当的延时_nop_(); /空指令,适当的延时_nop_(); /空指令,适当的延时_nop_(); /空指令,适当的延时while(ADC_CONTR & 0x10)=0); /等待A/D转换结束ADC_CONTR = ADC_CONTR&0xE7; /清ADC_FLAG位,停止A/D转换ad_result=(ad_result | ADC_RES)stand_A) /如果电流大于最大电流 stand_A=current /更新最大电流 if(+count1=5) count1=0; /循环计数 for(i=0;istand_down) /如果电流大于标准值 flag_down=0; /下降标志位置0 led2=0; /上升指示灯灭 stop(); /车窗停止下降 flag_up=1; /上升标志位置1 if(flag_up) /开始上升 led1=1; /上升指示灯亮up(); /车窗上升函数 while(flag_up) if(!flag_top) /在防夹区域内 flag_study=1; /参数修正标志位置1 if(currentstand_up) /如果堵转,判断是否到顶部 stop(); /车窗停止上升led1=0; /上升指示灯灭flag_up=0; /上升标志位置0flag_study=0; /车窗学习标志位置0 5、防夹及过流保护程序设计车窗在上升过程中,有一个非常重要的功能就是防夹,此功能不仅避免了车窗对伸出窗外物体的伤害,而且也有利于车窗电机的保护。车窗上升过程中突然出现的障碍物,会造成电机工作电流突然增大,从而损坏车窗电机。在车窗防夹技术领域里,防夹策略一般有3种:(1)检测电机电流的方式(2)HALL传感器的方式(3)利用HALL传感器加上检测电机电流的方式 由于实验条件的限制,本论文采用检测电机工作电流的方式作为防夹判断。由于电机工作电流与输出转矩成正比,通过检测电流即可确定是否遇到阻力。程序具体防夹策略为:在初始阶段,车窗自学习进行参数修正,将电机最大工作电流存入单片机EEPROM。当车窗上升时,检测电机运行电流,当检测的电流大于学习电流时,认为在运行过程中遇到障碍物,并相应的控制车窗下降。其子程序如下:/* 函数名称Project()描 述:防夹及过流保护函数入口参数:无出口参数:无 */ void Project(void)if(flag_up) /如果上升,检测电流,大于标准值车窗停止 if(ave_currentstand_up) /如果堵转 stop(); /车窗停止上升 led1=0; /上升指示灯灭 flag_up=0; /上升标志位置0 if(flag_top=0) /如果防夹开启 if(ave_currentstand_A) /如果平均电流大于标准值 if(k_currentstand_k) /如果电流斜率大于标准值 down(); /车窗下降函数 led1=0; /上升指示灯灭 led2=1; /下降指示灯亮 flag_down=1; /下降标志位置1 if(flag_down) /如果下降,检测电流,大于标准值车窗停止 if(ave_currentstand_down) /如果电流大于标准值 stop(); /车窗停止下降 led2=0; /上升指示灯灭 flag_down=0; /下降标志位置0 6、CAN通讯程序设计本课题CAN通讯程序分3个模块子程序:初始化子程序、CAN发送和接收子程序。其子程序如下:/* 函数名称kinit_sja1000()描 述:独立CAN控制器SJA1000的初始化入口参数:无出口参数:无 */void init_sja1000(void) uchar state;uchar ACRR4;uchar AMRR4;/接收代码寄存器ACRR0 = 0x11;ACRR1 = 0x22;ACRR2 = 0x33;ACRR3 = 0x44;/接收屏蔽寄存器AMRR0 = 0x00;AMRR1 = 0Xff;AMRR2 = 0x00;AMRR3 = 0xff;/使用do-while语句确保进入复位模式do MODR = 0x09; /设置MOD.0=1-进入复位模式,以便设置相应的寄存器 state = MODR;while( !(state & 0x01) ); /对SJA1000部分寄存器进行初始化设置 CDR = 0x88; /CDR为时钟分频器 BTR0 = 0x31; / 总线定时寄存器0 ;总线波特率设定 BTR1 = 0x1c; / 总线定时寄存器1 ;总线波特率设定 IER = 0x01; / IER.0=1-接收中断使能; IER.1=0-关闭发送中断使能 OCR = 0xaa; / 配置输出控制寄存器 CMR = 0x04; / 释放接收缓冲器/ 初始化接收代码寄存器 ACR0 = ACRR0; ACR1 = ACRR1; ACR2 = ACRR2; ACR3 = ACRR3; / 初始化接收屏蔽寄存器 AMR0 = AMRR0; AMR1 = AMRR1; AMR2 = AMRR2; AMR3 = AMRR3; / 使用do-while语句确保退出复位模式 do MODR = 0x08; /MOD.3=0-双滤波器模式 state = MODR; while( state & 0x01 );/*
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸设计 > 毕业论文


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!