基于CAN总线的汽车空调控制系统设计说明书.doc

上传人:Q145****609 文档编号:6677810 上传时间:2020-03-02 格式:DOC 页数:41 大小:1,006.42KB
返回 下载 相关 举报
基于CAN总线的汽车空调控制系统设计说明书.doc_第1页
第1页 / 共41页
基于CAN总线的汽车空调控制系统设计说明书.doc_第2页
第2页 / 共41页
基于CAN总线的汽车空调控制系统设计说明书.doc_第3页
第3页 / 共41页
点击查看更多>>
资源描述
目 录摘 要Abstract第1章 绪 论1第2章 汽车空调系统工作原理4第3章 系统硬件结构设计6第4章 系统软件结构设计21第5章 总结与展望27参考文献28附 录29致 谢38I基于CAN总线的汽车空调控制系统设计摘 要本文对汽车空调控制系统进行设计,先介绍了汽车空调控制系统的基本工作原理和总成结构,然后利用CAN总线构成控制系统,接着选择了8051单片机,SJA1000控制器,PCA825C250驱动器,再然后进行了电源、显示、按键、CAN节点等电路设计,最后进行软件设计。软件的程序编写是用C语言,使用模块化的理念,大大简化了程序的编写。关键词:汽车空调;CAN总线;硬件电路;软件设计IIIDesign of Automobile Air Conditioner Control System Based on CAN BusAbstractThe design of automobile air conditioning control system is designed in this article. First ,it introduces the basic principle of operation and assembly structure of the automotive air-conditioning control system.Then I use the CAN bus to design the control system, and select 8051 single-chip microcomputer, SJA1000 controller, PCA825C250 driver.Follow, I design Power, display, buttons, CAN nodes and other circuit . Finally I conduct the software design. The programming of software uses C language, adopting the concept of modularization, which greatly simplifies the programming.Key words:Automotive air conditioning; CAN bus; Hardware circuit;Software design第1章 绪 论1.1 课题背景及意义近年来,随着国内汽车市场的不断扩大,汽车工业发展迅速。与此同时,汽车行业的竞争也越来越激烈。汽车用户体验在竞争中起着重要的作用,而汽车空调作为用户体验的指标之一,不可避免地受到各大汽车企业的关注和研究。汽车空调是一种调节汽车内部空气的装置,改善空调的一个方面是以往的汽车空调只能实现制冷和供暖功能,但现在随着人们对舒适性要求的不断提高和技术的不断提高,许多高端汽车空调还可以实现其他许多功能,如:汽车的内部空气温度、湿度、速度、空气洁净度在人体舒适性范围中得到调节。另一个改进的方面是空调系统的控制方式。过去,我国这方面的发展较晚,电子化程度远低于国外,因此空调控制采用人工机械控制。人工控制的主要不良影响有两种:一是手动控制不能及时、准确地调节温度,影响乘客乘坐汽车的经验;二是手动控制要求驾驶员操作。这会影响到司机的注意力,也会影响到司机的安全。随着计算机控制技术的不断发展,现代车辆上的电子设备和控制单元急剧增加,各个控制单元对系统响应时间也有不同的要求。有些控制单元要求很高的实时性,因为如果系统的命令不及时响应,就会产生非常严重的后果,甚至对人造成严重的影响,如安全气囊的控制。刹车、防抱死控制等.而且有些控制单元对实时性的要求不高,如空调控制、照明控制等,使以往的独立控制不能满足要求。在上述研究的基础上,现代车辆控制系统进行了很多改进,其中当然包括空调控制系统。因此,CAN总线技术应运而生。现代汽车通过CAN总线网络连接各种控制单元,不仅简化了线束连接,而且使系统更加可靠。就CAN总线技术而言,在现代汽车中的应用较好。国外著名的汽车制造商,如宝马、法拉利、悍马、大众、玛莎拉蒂、梅赛德斯-奔驰等,已经在产品中采用了CAN总线技术。总之,一套基于CAN总线的空调控制系统对于提高汽车市场竞争力具有重要意义。因此,本文研究了CAN总线技术和空调系统的控制原理,并设计了相应的硬件和软件。设计了一套可靠的汽车空调自动控制系统1。1.2 国内外发展状况近些年国内汽车空调控制系统已经有了一些很大的进步,但相较于国外来说,整体的设计和制造水平还是偏低在。在80年代末90年代初,汽车空调才算是正式在我国开始步入正轨。管理信息系统近些年来逐步在我国开始普及,国内许多厂家开始了对适合各自企业发展信息管理系统进行引进的尝试。举例说明:上海德尔福汽车空调系统有限公司就引进了产品数据管理系统IPMPDM,并且该公司通过对此系统的应用,统一了管理了管理产品设计信息和工艺信息,使该公司拥有了技术先进的工程信息数据库,通过ERP系统的管理信息数据库与计算机网络进行资源共享,并进行有效信息的交换,最终实现了公司CIMS的总体规划标准,并使公司进入了信息化时代。尽管如此,汽车空调在我国发展的时间还是太短,国内大部分汽车空调厂家不具有很强的设计力量,技术水平又落后,所以普遍存在差、散、乱、的3种现状。对于国内主要几家汽车空调厂而言,他们仍然处于仿制国外空调系统的阶段。为了提高技术水品,国内部分厂家首先引进了UG,Catia等三维设计软件,但由于设计人员基本上对蒸发器、暖风机和鼓风机没有完整的认识及开发能力,所以对于这些软件的使用效率非常低。在组装方面,我国汽车空调主要依赖CKD组装。但是汽车工业发展迅猛,导致市场对高性能、高质量汽车空调的需求量越来越大。因为大多数企业生产技术水平比较低,不能满足这个需求,所以很多企业从国外引进成套生产设备和先进技术,也有很多地方开始引进外资,进行汽车空调项目合作。为了积极推动汽车空调的国产化进程,国内各大汽车空调厂商与各高等学校进行合作,鼓励国内设计人员进行独立研究,以此来尽快掌握属于我们自己的蒸发器、鼓风机和暖风机的开发技术。从戴姆勒制造出第一辆汽车以来,人们对汽车的开发已经有了110年的历史。由于刚开始设计的汽车比较简单,使得乘坐这种汽车的人们夏天汗流满面,冬天手脚发麻。在研制出汽车加热装置和汽车空调设备之后,人们就开始乘坐装有空调的汽车了。美国人是这些设备的最先体验者,例如,早在上世纪30年代时,当时的汽车厂商就可以根据客户的要求给汽车安装加热装置了。而欧洲是在1950年才制造出第一辆安装有加热装置的汽车。这台汽车的加热装置还带有电子新鲜空气送风机,是由贝洱公司提供的。1963年,德国的一个卡车制造公司于自己的货车上安装了送风和加热装置。1953年,美国某公司在行李箱上安装了蒸发器,这是空调第一次作为一个系统进行生产,后来又将蒸发器和通风管道结合在了仪表板内。汽车空调在30年多的发展过程中经历了很多改变。1971年,加热和空调装置集成一体的装置首次问世。1981年,第一台可以分开控制的空调被制造出,驾驶员和乘客都可以根据自身的需求来调节气温。1994年又开发出了可以左右分开调控空气量的空调。如果仍然遵循温度单独调控原理,也可以把后排与前排乘客分开各自调控自己需要的温度。到现在为止,把第二个空调装置安装在后排,已经可以实现我们所想的四区空调装置2。1.3 汽车空调的特点及其控制系统的难点对于汽车空调来说,它和建筑内的空调有着很大的不同。首先,汽车在工作时它是不停地移动的,因而外界环境气候也会随时变化,车外的温度变化会很大,这就导致在进行车外设计时我们无法得到一个确定的参数值。其次,由于汽车是需要载客的,载客多了产生的热量就会很多,车内空间又是固定的而且比较小,因此对汽车空调的制冷能力有很大的要求,无论是驾驶员还是乘客,在进入车内时往往会第一时间打开空调,并且希望在短时间内就能享受到空调效果;而汽车在开启空调时车内的温度又很高,这几种因素导致汽车空调必须有着极大的工作负荷,才能让车内温度迅速满足乘客的需求。因此,从工作负荷方面来讲,汽车空调机组的工作负荷应该比建筑内的空调大。除此之外,汽车通常情况下是高速行驶的,与外界环境接触时间长,而且车身隔热困难,门窗所占汽车比例又大,所以车内温度变化频繁。还有许多复杂的情况,例如:汽车长时间暴露在太阳直射下(或风雪下),进入车内的热负荷(或冷负荷)比一般室内的要大得多;夏天汽车停在烈日下时间过长,车内温度甚至会上升到50以上。汽车所在的外界环境复杂多变,很有可能会十分的恶劣,这些环境因素往往会影响到汽车电子装置的性能,甚至使某些装置损坏而不能工作。因此与一般的空调控制系统相比,汽车空调控制系统有其特殊的要求:第一,要能够保证汽车在外界温度和湿度的考验下还可以正常工作。通常汽车外部的环境温度最高为50,最低为-40,但汽车内部各零件却有着各不相同的最佳工作温度。第二,汽车空调对其承受冲击和振动的能力有一定的要求。如果汽车行驶在状况很糟糕的路面上,汽车各零部件必须承受住较大的振动和冲击力。第三,要满足电气环境要求,汽车电源波动和瞬时过电压等将形成较坏的电气环境。 1.4 课题的提出与研究内容随着汽车制造商越来越重视汽车空调,对汽车空调控制系统的设计与研究就显得尤为重要了。如今,广大汽车厂商与汽车使用者已经普遍认可了汽车空调是用户乘坐舒适性的重要指标之一。完善的汽车空调系统可以对车内空气的温度、湿度、清洁度、风速、通风等进行自动调节,提高了乘坐舒适度,减少疲劳,为安全驾驶提供了一定的保证。以CAN总线构建网络,单片机为控制核心构成的汽车空调控制系统,其硬件简单,软件丰富,性能优良,运行稳定可靠且成本低。设计要求如下: 了解并学习CAN总线及其原理 简介汽车空调的基本工作原理 对空调控制系统进行硬件设计 对空调控制系统进行软件设计38第2章 汽车空调系统工作原理2.1 汽车空调的总成结构空气调节器,简称为空调。它主要的功能是调节室内的空气,使空气的温度、湿度、流速、和洁净度等达到人体所需要的舒适范围。汽车空调是空气调节器的一个重要分支,属于舒适性空调,它是为了车室内或驾驶室内的空气质量和数量达到舒适性标准而进行调节的装置。汽车空调一般由制冷系统、暖风系统、通风系统以及空气净化系统、控制系统等几个部分组成,具体可以通过六个受控装置来控制,它们分别是膨胀阀、鼓风机、储液干燥器、压缩机、冷凝器和蒸发器。各部件主要功用:压缩机:提高制冷剂的压力,促使其在冷凝器中液化放热,并且作为动力源,促使制冷剂在系统内循环流动。它是空调系统的心脏。冷凝器:将高温高压气态制冷剂冷却为高温高压液态制冷剂。储液干燥器:过滤制冷剂中的水分和杂质,储存制冷剂,保障制冷剂不间断地输送到膨胀阀。膨胀阀:通过节流将高温高压液态制冷剂变为低温低压液态制冷剂。蒸发器:低温低压液态制冷剂在蒸发器里吸热,进行热交换,变成低温低压气态制冷剂。鼓风机:将冷却后的空气不断吹入车厢。现代汽车空调系统总成一般是采用冷暖完全合一型,其风道系统如图2.1所示。2车内进风1车外进风3内外循环风门 4鼓风机5混合风门6制冷蒸发器9除霜风口10下吹风口7暖风散热器11前吹风口8风向风门图2.1 汽车空调结构2.2 汽车空调系统基本工作原理汽车空调制冷工作原理:从蒸发器流出的低压、低温的制冷剂蒸汽,经压缩机压缩后,成为高压、 气体,然后进入冷凝器。在汽车空调调节器中,均采用容积式压缩机。经压缩机排出的高温制冷剂气体进入冷凝器内,与外部的冷却介质进行热交换,其自身放出热量,发生相变,最终成为液态制冷剂流出冷凝器。膨胀阀对制冷剂节流降压,在降压的同时使制冷剂降温。制冷剂在流经膨胀阀时一部分液体成为气体。膨胀阀还起到控制制冷剂流量的作用,以保持冷凝器中制冷剂压力高于蒸发器内制冷剂压力。蒸发器是输出冷量的设备。节流后的制冷剂液体流经蒸发器时,吸收车室内空气的热量,液体气化吸热,从而达到制冷的目的,获得降温的效果。制冷剂经蒸发器后已变成低温低压气态,再经压缩机压缩,进入下一个循环,实现连续制冷3。下图2.2为基本工作原理图。图2.2 空调系统基本工作原理图第3章 系统硬件结构设计3.1 系统总体结构本文是研究基于CAN总线的汽车空调控制系统设计,在本系统中以中央节点为中心,多个控制执行机构节点和信号采集节点挂接在CAN总线上,以此来完成信息的交互和命令的执行。下图3.1为该控制系统总体结构示意图。3.1 系统结构图3.2 主要元件的选取3.2.1 单片机选择单片机又可以看做微型计算机,它是由微处理器、一定容量的RAM和ROM以及I/O口、定时器等电路集成在一块芯片上构成的。一个单片机好坏决定了整个系统快慢。目前,单片机对于我们来说不应该是陌生的东西了。因为它早就遍布了我们的周围。不仅是在我们的生活中,还有工业领域,医疗领域,计算机领域等等都离不开单片机。那么当然,汽车也是如此。那么车用单片机又有什么不一样的呢?车用单片机不同于一般的消费用单片机,其最大区别在于车用单片机经常会被要求在极苛刻的环境下运行。例如可能要工作在-40到+120的环境中,这就要求车用单片机需要有稳定性和可靠性。本设计使用到的MCU选用8位单片机,型号为8051。至于为什么选用这款单片机,在这里我简单说明一下。首先由于该款单片机出货量大,因此成本低,并且该单片机的功能也满足本设计的需求。再者,它的指令简单,很容易让人学会。还有它的外围电路简单,硬件设计方便。还有许多优点在此就不一一说明了。因此这款单片机适合采用。1981年,英特尔公司推出了以MCS-51为内核的8位微处理器,8051单片机。8051单片机包含以下部件:(1) 一个8位微处理器CPU。(2) 片内数据存储器RAM和特殊功能寄存器SFR。(3) 片内程序存储器ROM。(4) 两个定时/计数器T0、T1,可用作定时器,也可用以对外部脉冲进行计数。(5) 四个8位可编程的并行I/O端口,每个端口既可作输入,也可作输出。(6) 一个串行端口,用去数据的串行通信。(7) 中断控制系统。(8) 内部时钟电路。8051单片机的引脚分布图如图3.2所示:图 3.2 8051引脚分布图单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。电源:VCC-芯片电源,接+5V;VSS-接地端;时钟:XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。控制线:控制线共有4根 ALE/PROG:地址锁存允许/片内EPROM编程脉冲ALE功能:用来锁存P0口送出的低8位地址PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。PSEN:外ROM读选通信号。RST/VPD:复位/备用电源。 RST(Reset)功能:复位信号输入端。VPD功能:在Vcc掉电情况下,接备用电源。EA/Vpp:内外ROM选择/片内EPROM编程电源。EA功能:内外ROM选择端。 Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。I/O线8051共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。8051系列单片机最大特点就是他有4个复用的接口它们分别为图中P0系列接口,P1系列接口,P2系列,P3系列,每个系列接口都有8个接口。下面介绍下各个接口的功效:P0定义为数据地址复用线,具体可以根据具体情况选择到底是用作传送数据的数据线,还是用作传输地址的地址总线。但是,这样使用的前提是单片机需要外接存储器或其他控制器的功用,当不接外部储存器亦可以可用于通用I / O,但作为输入或输出的内部裸露电阻应连接至外部上拉电阻。P1端口仅用于I / O端口:内部有一个上拉电阻。P2的功效和之前p0接口相同也是数据地址复用线,也可以用作接I/O接口,但是不可以接那种内部有一个上拉电阻。P3有两个功能,一方面他可以作为数据地址的复用线。另一方面它也作为控制总线这个功能是由特殊寄存器设置。3.2.2 CAN控制器的选择CAN控制器是CAN局域网控制器的简称,它是一种串行数据通信总线,开发出它的目的在于实现了汽车上许多部件之间的数据交换4。CAN控制器用于实现CAN总线的协议底层以及数据链路层,用于生成CAN帧并以二进制码的方式发送,在这个过程中进行位填充、添加CRC校验、应答检测等操作;将接收到的二进制码进行解析并接受,在此过程中进行收发对比、去位填充、执行CRC校验的操作。除此以外还要进行冲突判断、错误处理的其他任务。CAN控制器分为两类:独立CAN控制器和集成于微处理器中的CAN控制器。在前面我们选择了8051单片机,而该单片机不带有CAN控制器,所以选择独立CAN控制器。目前市场上主流的 独立CAN 控制器有两种:MCP510和SJA1000。MCP510出现的时间比SJA1000晚,因而它的性能比较强大,但随之带来的问题是它比SJA1000复杂,而在本设计中只需要简单地对空调系统进行控制,所以本人选择了既简单又可以满足本设计需求的SJA1000.下面简单介绍下它。SJA1000是Philips公司生产的一种独立CAN控制器,用于控制移动目标和工业环境中的区域网络。它全面兼容CAN2.0B协议,同时支持11位和29位标识码,位速率可达1Mbits/S。SJA1000有两种工作模式:BasicCAN模式和PeliCAN模式。SJA1000的主要硬件组成及各自的职能:接口管理逻辑(IML):负责解释来自CPU的命令,控制 CAN 寄存器的寻址,向主控制器(CPU)提供中断信息和状态信息。发送缓冲器(TXB):是CPU 和位流处理器(BSP)之间的接口,负责存储发送到CAN总线上的一条完整的报文。发送缓冲器的长度为13个字节,由CPU写入、位流处理器读出。接收缓冲器(RXB、长度为13个字节):是验收滤波器和 CPU之间的接口,用来存储从CAN总线上接收并被确认的信息。作为接收FIFO(RXFIFO,长度为64字节)的一个窗口,接收缓冲器可被CPU访问。CPU在接收FIFO的支持下,可以在处理一条报文的同时接收其他报文。验收滤波器(ACF):将一条接收到的报文标识码与验收滤波器中的预设值相比较,以决定是否接收这条报文。在纯粹的接收测试中,所有的报文都保存在接收FIFO中,但只有验收滤波通过且无差错的报文,才能被保存在接收缓冲器中。 位流处理器(BSP):是一个控制发送缓冲器、接收FIFO和CAN总线之间数据流的程序装置。它还执行总线上的错误检测、仲载、总线填充和错误处理。位时序逻辑(BTL):监视串行的CAN总线和位时序。它在信息开头“弱势支配”的总线传输时,同步CAN总线位流(硬同步),接收报文时再次同步下一次传送(软同步)。错误管理逻辑(EML):负责限制传输层模块的错误。它接收来自位流处理器的出错报告,然后把有关错误统计告诉位流处理器和接口管理逻辑(IML)。SJA1000的芯片原理图如下图所示:图 3.3 SJA1000芯片原理图SJA1000一共有28个引脚,8个数据地址复用线可以与之前选的8051系列单片机直接连接。具体的引脚如下图所示:图 3.4 SJA1000引脚图3.2.3 CAN驱动器选择CAN驱动器是 CAN 控制器与物理总线之间的接口,它的职能主要是在物理层方面。首先它将控制器发送的信号进行转变,使得此信号符合物理层标准,然后在将此信号放大以及传输。另外,由于总线上发送过来的信号不能直接被控制器接收,所以它需要将信号转变为电平信号5。市面上现在存在的CAN收发器主要是飞利浦公司的PCA82C250系列,基于JFET结构(PCA82C250系列的升级版)TJA1040系列,IT公司的SN65HVD251系列和Freescale公司的MC33901系列。这些驱动器都能满足本设计的要求,但是后面几种是近几年才出现的,结构较为复杂,而且太熟悉,加上PCA82C250能够和SJA1000很好的兼容,所以选择了PCA82C250CAN驱动器。下图是它的引脚图:图 3.5 PCA82C250引脚图PCA82C250工作原理:PCA82C250主要是通过发送数据的串行输入线TXD端口接收控制器发来的串行信息,再将串行数据发送到达驱动器上,通过驱动器和连个三极管实现差动的发送高低电平,高电压流到CANH,低的则到CANL上。CANH与CANL就是负责高低电流的输入和输出,其两个端口就是接到总线上的。在接收总线来的消息时,高低电压主要经过接收器译码成串行数据,再通过输出端口RXD输出6。引脚Rs主要是控制收发器的工作方式不同的电流下有不同的工作方式,当RS电流为VCC接口上的0.75倍时,收发器处于待机状态。当电流为10微安到200微安时,处于斜率控制状态。而当Rs端电流大于0.3倍的VCC时,收发器处于高速状态。3.3 主要电路设计3.3.1 电源电路稳定的电源对于汽车仪表系统来说非常重要,在现代的微型汽车中,蓄电池是汽车仪表系统电源的最主要的电力来源7。蓄电池正常能够提供12V的电压,然而在本文的设计中所选取的微控制器、CAN的收发器等元件所需要的供电电压为5V。因此为了达到5V电压的需求,我们需要设计一个稳定的电源电压输出电路。在汽车仪表工作过程中,电源需供给稳定的电压,才能确保仪表系统工作稳定、及时、精确。在这里我们采用了比较常见的电路芯片7805将12V转换为5V,它的实物图如图3.6所示:图 3.6三稳压集成电路芯片7805为了达到减少振动和噪声,我们在电路中接了去耦电容。反接二极管的目的是防止短路,起到保护电源电路的作用。电源模块电路如下:图 3.7电源电路模块3.3.2 显示模块电路显示模块主要显示车内温度。本系统使用带背光的RT-1602C液晶显示屏。1602液晶显示器也叫1602字符型液晶显示器,它是一种专门用来显示字母、数字、符号等点阵型液晶显示器,它由若干个57或者511等点阵字符组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔,每行之间也有间隔 ,起到了字符间距和行间距的作用,正因为如此 ,所以他不能显示图形。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶显示器8。1602LCD的特性:1、+5V电压,对比度可调。2、内含复位电路。3、提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能。4、有80字节显示数据存储器DDRAM。5、内建有160个57点阵的字型的字符发生器CGROM。6、8个可由用户自定义的5X7的字符发生器CGRAM。字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚)9。显示屏1602的液晶接口及引脚1602液晶显示屏具体引脚如图3.8所示。引脚功能见表3.1。图3.8 1602液晶显示屏接口图表3.1 1602具体原理表格以及引脚对应:引脚号引脚名电平输入/输出作用1Vss电源地2Vcc电源(+5V)3Vee对比调整电压4RS0/1输入0-输入指令1-输入数据5R/W0/1输入0-向LCD写入指令数据1-从LCD读取数据6E1输入使能信号,1时读取信息10执行指令7DB00/1输入/输出数据总线line0(最低位)8DB10/1输入/输出数据总线line19DB20/1输入/输出数据总线line210DB30/1输入/输出数据总线line311DB40/1输入/输出数据总线line412DB50/1输入/输出数据总线line513DB60/1输入/输出数据总线line614DB70/1输入/输出数据总线line7(最高位)15A+VccLCD背光电源正极16K接地LCD背光电源负极3.3.3 按键输入电路本系统中需要8个按键,分别为启动键、风向键1(吹脸)、风向键2(吹脚)、除霜键、内循环、外循环以及“+”、“-”按键。这些按键直接接在8051的通用输入输出口P1.0、P1.1、P1.2、P1.3、P1.4、P1.5、P1.6、P1.7上,当某一个开关闭合,电路导通,所接的端口置为高电位。具体的电路图如下所示:图3.9 按键输入电路图3.3.4 8051单片机最小系统电路单片机的最小系统是基于单片机测控系统的核心部分,是整个系统能否正常运行的关键。随着目前单片机技术的不断发展,最小系统的定义也在不断的变化。按照字面理解,单片机最小系统是指使单片机上电之后能够正常自动运行,预先由用户烧写在程序存储器中代码的最小硬件构成,因此一般的单片机最小系统通常由以下几个部分构成:单片机最小系统=电源+复位电路+时钟电路+单片机也有的人愿意把LED指示灯、数码管或是按键等加入进去构成最小系统,当然根据需要来设计自己的系统是没问题的。以前单片机的片内资源还不是很丰富的时候,所谓的最小系统也是很大的。比如 Intel的8031很流行时,最小系统至少还要包括一片ROM芯片,因为8031本身是没有内置ROM的。而现在的一些单片机,有的已经把上电复位电路集成在了片内,因此复位电路也可以省去了10。本设计最小系统电路如下图所示:图 3.10 8051最小系统电路P0.0到P0.7的功能为地址与数据复用线,故将其与AD0到AD7相连;用于和CAN通信的IO端口:P2.0、P2.1、P2.2、P2.3,分别接SJA1000的、ALE。3.3.5 CAN收发接口电路根据SJA1000和CAN控制器的引脚功能将他们连起来接入到CAN总线上。SJA1000内部自带时钟,只需要在XTAL1与XTAL2之间相接一个谐振器和电容就能产生时钟信号。在CAN控制器的RS接口上接了一个电阻大小可调的斜率电阻后再与电源相连,目的是为了根据传输的速度做出调整。另外收发器也不是直接将CANH、CANL直接接入CAN总线中,需要在两者之间串联个电阻,起到保护电路的作用。控制器上还需要有复位电路,这里我直接将其接一个电容后接地。其余引脚均可对应着其功能或者相应的字母相互连接即可,这里不再一一说明。SJA1000和PCA82C250的连接电路如图3.11所示:图 3.11 CAN收发接口电路3.3.6 信号采集节点电路本系统有三个温度采集节点,分别是车内温度、车外温度和蒸发器表面温度。如果要系统正确运行,那么温度测量就必须十分精确,因此高精度的温度传感器对本系统来说是必不可少的。温度传感器的种类有很多,本设计一开始想选用的是AD590温度传感器,但之后发现其一些缺点并不适用本系统。比如说:它需要一个模拟信号转熟悉信号的电路;它的成本较高;它的精确度比较低,不满足本设计要求;它的测温点数量少;它的电路连接比较复杂繁多;它对线阻有要求。经过比较,最后本设计选用了DS18B20温度传感器。DS18B20温度传感器是由DALLAS(达拉斯)公司生产的,它是一种数字温度传感器,所以只需要本身一个元件就可以工作,也因此它的电路连接比其他温度传感器要简单的多。此外,它的体积很小,成本比较低,精确度却很高,信号线距离远,虽然它的测温范围较小,但是已经足够满足本系统的要求。 DS18B20的主要特征如下:数字温度转换和输出;先进的单总线数据通信;它的最高分辨率为12位,精确度为0.5摄氏度;12位分辨率的最大工作时间为750毫秒;可选择寄生工作方式;检测温度范围为-55CX 125C(-67)F_(257)F(7);64位光刻ROM,内置产品序列号,易于与多台机器连接.各种包装形式,适合不同的硬件系统。DS18B20的温度检测和数字数据输出都集成在一块芯片上,抗干扰能力更强。一个工作周期可以分为两个部分,即温度检测和数据处理。18B20有三种类型的内存资源,即:只读存储器,用于存储DS18B20ID编码。前8位为单行串行码,DS18B20为19 HN码,后48位为该芯片的唯一序列号。最后8位是上述56位的CRC码(冗余校验)。用户不会更改生产设置中的数据。DS18B20是64位ROM。RAM数据寄存器,用于内部计算和数据访问,数据断电后丢失总共9字节RAM,每字节8位。第一字节和第二字节是温度转换后的数据值信息,第三和第四字节是用户EEPROM的镜像(通常用于存储温度报警值)。当重置启动时,该值将被刷新。第五个字节是用户第三个EEPROM的镜像。第六、第七和第八个字节是计数寄存器,旨在使用户获得更高的温度分辨率,以及用于温度转换和计算的内部瞬态存储单元。第九个字节是CRC代码的前八个字节。EEPROM非易失性存储器用于存储需要长时间保存的数据,上限温度报警值和校验数据DS18B20有3位EEPROM,RAM中有镜像,便于用户操作11。 DS18B20只需要接到控制器(单片机)的一个I/O口上,它的运行依靠接受控制器的指令,它指令如图3.12所示。图 3.12 DS18B20指令DS18B20与单片机的连接十分简单,通常来说DS18B20不需要外接电源,可以通过数据线获得。但是本系统中为了保证其在动态转换周期获得足够的电流供应,所以使用VCC单独外接电源供电。由于车内外温度和蒸发器表面温度采集电路比较简单,而且结构差不多,所以这里就不一一说明了。具体电路图如图3.13所示:图 3.13 温度采集电路3.3.7 压缩机电机启停控制电路本系统对于压缩机的控制:首先通过蒸发器温度采集节点采集到温度信号并发送给中央节点,中央节点经过运算再向压缩机控制节点发送控制指令。如果蒸发器中的温度很低,那么中央节点发出的指令就是停止压缩机的运行,那么驱动压缩机运行的电机就要停止工作;相反,如果蒸发器中的温度过高,那么系统就会发出运行压缩机的指令,则电机需要启动。由于在压缩机控制节点上的8051的I/O口的输出电流较小,不能直接驱动电机,需要加驱动电路。本设计采用继电器来驱动电机,因为继电器可能会出现反向电压的现象,所以采用三极管作为驱动元件,三极管可以承受很高的反向。电压继电器选用JZX-18F,它的输出电压为12V,最大工作电流为3A,并且体积小,进入工作状态快。电路设计如图3.14所示。图 3.14 压缩机电机启停控制电路本设计中加入了光电藕和三极管,这样可以加强抗干扰能力和增加驱动能力。当单片机的P3.0口输入高电平时,光耦输入端产生电流,光耦内部的发光二极管开始发光,使得输出端的光敏三极管导通,继电器线圈通电,最终驱动电机。当P3.0口为低电平时,光耦输入端无电流产生,继电器线圈没有通电,电机不工作。同时二极管可以通过释放继电器线圈中的反电流,产生续流的作用,从而使继电器安全工作。3.3.8 风门控制电路风门控制电路用于控制冷热空气混合阀和出口风阀挡板的开度,从而控制出风的温度和方向。挡板开度控制的实质是控制电机的旋转角度。这种控制方法非常适合于步进电机的控制。步进电机是一种能将脉冲信号转换为角位移或线性位移的机电元件。实际上,它是一种单相或多相同步电动机。单相步进电机采用单通道电脉冲驱动,输出功率通常很小,其用途是小功率驱动。多相步进电机采用多相方波脉冲驱动,应用广泛。采用多相步进电机时,利用脉冲分频器将单通道脉冲信号转换为多相脉冲信号,经功率放大后送入步进电机各相绕组。当每个脉冲输入到脉冲分配器时,电机的每个相位的电状态都会发生变化,转子绕一定的角度(称为步进角)旋转。在正常情况下,步进电机的总旋转角与输入脉冲数成正比。当某一频率的脉冲连续输入时,电机的转速与输入脉冲的频率保持严格的对应关系。不受电压波动和负荷变化的影响。由于步进电机可以直接接收数字输入,特别适合微机控制。总的来说,步进电机有如下优点: 1、不需要反馈,简单控制。2、与微机的连接、速度控制(起动、停、反)以及驱动电路的设计相对简单。3、无角累积误差。4、当旋转停止时,你也可以保持旋转距离。5、无舵机等机械部件,不需维修,成本低。6、精确定位,即使没有传感器。7、根据给定的脉冲周期,它可以任意速度旋转。 考虑到以上考虑,本设计采用两相四线步进电机作为节流控制电机.为了保证电路的正常运行,步进电机的绕组必须具有足够的电压、电流和正确的波形。同时,必须保证驱动电路功率放大装置的安全运行。采用集成芯片L298N作为步进电机的驱动芯片。L298N是SGS公司设计的双通道推挽功率放大器ASIC,用于控制和驱动电机。将离散电路集成到单个集成电路中,降低了外围设备的成本,提高了整机的可靠性12。其具体的电路连接如下图3.15所示:图 3.15 风门控制电路3.3.9 鼓风机控制电路由于风机节点需要实现风速的调节,即控制直流电机的转速。8051单片机内部定时器可编程实现PWM波形的输出。因此,它可以用来通过脉宽调制来调节直流电机的转速。由于具有两个H桥的高压、大电流全桥驱动器,可用于驱动直流电机、步进电机、继电器线圈等感应负载;采用标准逻辑电平信号控制;有两个使能控制终端。该芯片可以驱动两相步进电机或四相步进电机,也可以驱动两台直流电机。因此,这里直流电机调速的驱动芯片采用L298N,其电路连接图如下3.16所示:图 3.16鼓风机控制电路 在这里,由于只需要控制电机的转速,不需要控制电机的正负旋转,所以In3,IN4不再连接到单片机的IO端口,而是直接固定在高低电平上,使电机始终保持转向。ENA和ENB与单片机T0和T1接口相连,用C语言编程,通过输出不同占空比的PWM波形,实现电机调速。第4章 系统软件结构设计对于CAN系统的开发需要哪些软件要根据系统而定,如果用SJA1000组成CAN系统,就需要一个控制器;如果控制器 是单片机,那么就需要单片机的相关开发环境(IDE);如果控制器是DSP或者FPGA,那就需要用相应厂家的IDE13。对于本系统而言,它的软件设计包括两个部分:单片机功能模块的软件设计和CAN 总线节点的软件设计。本人采用的编程语言是C语言,因为C语言在大学课程中学习过,有一定的知识基础,而且C语言是现在软件编程使用的最广泛的语言,所以用C语言编程是个很好的选择。4.1 单片机Keil开发环境简介单片机开发可以说是“硬件十软件”的结合体,有了硬件后,就要设计相应的软件。目前开发単片机程序主要有汇编和C语言两种,其区别是汇编与硬件结合紧密,时间控制准确,效率高,但是模块化程度不高,而且对于初学者往往比较难;C语言则相对简单,由于一般的理工科学生都接触过像C这样的高级程序语言,所以上手比较容易。不管用哪种语言,都需要一个高效、方便的编译环境,这个编译环境的作用说的简单一点就是:帮助我们检查程序的语法正确姓,进行必要的仿真,进行程序语言到机器码的转换,最后生成下载程序所需的.hex文件。把这个.hex文件下载进单片机后,单片机就能够按照我们的思路进行工作了。目前编译环境有很多,德国的开发软件Keil应用比较广14。4.2 CAN总线节点的程序设计对于CAN节点的程序设计,我们首先要分析该设计要实现的功能;然后对程序进行规划,绘制流程图;最后再编写程序代码。以下涉及到的具体编程都会在附录里说明。4.2.1 主节点程序设计主节点的工作主要包括通过CAN网络接收信息采集的子节点发送的传感器的采用信息、按键输入设置温度的接收、根据用户设定的温度对传感器的操作以及传感器的采样信息。将控制信息发送给控制子节点,在液晶显示屏上实时显示温度、光照等当前状态信息15。整个程序开发的过程如下图4.1所示:图 4.1 总体程序流程图CAN节点初始化CAN节点的初始化就是对SJA1000的寄存器进行必要的配置,使其根据配置进行工作。首先将与8051与CAN模块连接的IO进行地址映射,然后完成CAN收发器SJA1000的初始化工作,其流程如下图4.2所示:图4.2 CAN节点初始化流程图CAN节点发送程序设计根据要发送信息的目的地址,正确配置分组标识符寄存器;同时,信息标识符在自接收模式下仍然有效,准备要发送的数据并配置适当的寄存器。流程图4.3如下:图4.3 CAN节点发送程序流程图CAN节点接收程序设计检测CAN控制器的状态以确定接收缓冲区中存在可读消息。读取接收缓冲器中的数据并释放接收缓冲器。读取仲裁损失捕获寄存器和错误代码捕获寄存器以重新激活它们。具体的流程如下图4.4所示:图4.4 CAN节点接收程序流程图在本系统中主节点在进行CAN节点通信的同时,还要进行运算及人机交换任务,所以我们这里采用了多线程编程,也就是在主线程创建子线程,由这些子线程执行其他任务。在这里简单介绍下主线程和几个子线程的运行过程:主线程首先需要完成CAN模块的初始化,接着打开配置文件,以此来设定温度,风门开度等信息,然后创建可以保存车内外温度,冷凝器温度等信息的缓存区,最后创建子线程,完成温度控制的工作,并等待子线程退出。子线程主要有三个:一个是人机交换线程,它用来接收用户的按键;二是信息采集子线程,它的功能是读取CAN控制器的接收数据缓存区;三是运算线程,用来进行数据运算并根据所得的运算结果调用控制传输函数,并发出控制信息。程序流程图4.5如下:图4.5 主节点程序流程图4.2.2 子节点程序设计温度采集节点程序设计本设计中有3个温度采集子节点,但是由于它们结构相同,所以不需要一一设计。此程序首先需要CAN节点和温度传感器芯片DS18B20初始化,开始定时中断,完成后进入大周期。在循环中,根据中断标记位置,判断温度转换的需要,8051单片机通过P2.0端口将测温命令发送给温度传感器芯片,温度传感器接收命令。温度测量完成后,将测量结果转化为数字信号,发送给单片机。流程图4.6如下:图4.6 温度采集节点程序流程图压缩机控制节点程序设计压缩机控制节点程序设计比较简单,在这里就不做具体的说明了。因为它的工作状态只有运转或停止,如果当主节点命令其关闭时,只需将其相应的I/O端口设置为低级别,然后继电器失去电源并弹出打开,压缩机完成关闭命令;相反,端口被设置为较高级别。风门控制节点程序设计主节点向该子节点发送信息,子节点分析并确定信息中的风门转动方向和角度,然后8051单片机驱动步进电机做出反应。具体流程图4.7如下:图4.7 风门控制节点程序流程图鼓风机控制节点程序设计鼓风机的功能是调节风速,只有直流电机的转速才能被控制。通过对8051单片机内部定时器的编程,实现了PWM波形的输出,控制了直流电机的转速。因此,当节点从主节点接收指令时,通过单片机内部定时器实现PWM波形的输出,通过调整占空比来控制直流电机的转速。其具体流程图4.8如下:图4.8 鼓风机控制节点程序流程图第5章 总结与展望5.1 全文总结本文在参考并翻阅了大量文献的基础上简单介绍了汽车空调控制系统的组成与基本的工作原理,然后通过深入学习CAN总线技术,构建CAN网络结构,以8051单片机为控制核心创建CAN主节点和子节点。然后完成对主要元件的选取,设计出各节点,各模块的硬件电路,最后再进行软件设计,画出流程图,然后利用C语言编程完成整个汽车空调控制系统的设计。5.2 展望随着电子控制技术的持续发展,未来汽车空调控制系统也一定会被持续地进行改进。本人认为未来汽车空调控制系统主要有以下两个个方面的发展趋势:(1)综合考虑多种因素,继续创造更好的车内环境,包括对温度、湿度、空气洁净度的调节,甚至是辐射等。(2)汽车空调控制系统需要不断地向智能控制方向发展,这样能够使控制系统更精确,及时地完成各种指令,使汽车空调在运行中能保证驾驶员与乘客处在最舒适的状态。最后对于个人而言,以后本人还需要继续深入学习,争取进一步改进本系统设计。参考文献1彭轶涛. 基于CAN总线的乘用车内部空调智能控制系统研究与设计D.华南理工大学,20142陈文鑫. 基于CAN总线及智能控制算法的汽车空调控制系统的设计D.上海交通大学,2009.3杜飞. 汽车CAN总线网络控制系统设计及应用D.石家庄铁道大学,2013.4王琦. 基于CAN总线的Bootloader研究与实现D.南京邮电大学,2016.5秦慧敏. 基于CAN总线的数据采集系统设计D.吉林大学,2016.6覃新居. 基于CAN总线技术在汽车中的实际应用J.大众科技,2012,14(08)7刘文浩,项小东,李志远. 基于CAN总线的汽车仪表设计J.信息通信,2017(07)8毛泽强,杨耀权. 基于CAN总线的汽车虚拟仪表系统设计J.仪器仪表用户,2017,24(12)9李静. 基于CAN总线的新型汽车仪表系统的设计与实现D.南京邮电大学,2017.10杨建军. CAN总线技术在汽车中的应用J.上海汽车,2007(06)11王玮,初洪超. 汽车CAN总线拓扑结构设计J.汽车实用技术,2016(05)12郑聪. 基于CAN总线的车用仪表系统的设计分析J.中国新技术新产品,2017(15)13王昌柏,翁惠辉. 基于CAN总线技术的汽车空调测控系统设计J.长江大学学报(自然科学版)理工卷,2009,6(01)14徐进,钟芳梅. 基于LIN总线的汽车空调控制系统J.汽车电器,2014(06):12-13.15闫俊辉,余成波,李彦林. 基于CAN总线的汽车空调自动控制器的研制J.计算机测量与控制,2010,18(10)附 录中央节点单片机的主程序#include#include#includes.hVoid main void CAN_ init(void)Sbit switch1=P10;Sbit switch 2=P11;Sbit switch 3=P12;Sbit switch 4=P13;Sbit switch 5=P14;Sbit switch 6=P15;Sbits switch7 =P16;Sbit switch8 =P17;void ys(unsigned int i)While(1)P10=! P10 if (P10=1)void CAN_TXD(00 0x01 0x10 0 0x01 0x01 0 0x02 0x00 0x01 0x01);else void CAN_TXD(00 0x01 0x10 0 0x01 0x01 0 0x02 0x00 0x01 0x00);While(2)P20=! P20 if (P20=1)void CAN_TXD(00 0x01 0x10 0 0x01 0x01 0 0x02 0x00 0x02 0x01);else void CAN_TXD(00 0x01 0x10 0 0x01 0x01 0 0x02 0x00 0x02 0x00);While(3)P30=! P30 if (P30=1)void CAN_TXD(00 0x01 0x10 0 0x01 0x01 0 0x02 0x00 0x03 0x01); else void CAN_TXD(00 0x01 0x10 0 0x01 0x01 0 0x02 0x00 0x03 0x00);While(4)P40=! P40 if(P40=1)void CAN_TXD(00 0x01 0x10 0 0x01 0x01 0 0x02 0x00 0x04 0x01); else void CAN_TXD(00 0x01 0x10 0 0x01 0x01 0 0x02 0x00 0x04 0x00);While(5)P50=! P50 If(P50=1)void CAN_TXD(00 0x01 0x10 0 0x01 0x01 0 0x02 0x00 0x05 0x01);else void CAN_TXD(00 0x01 0x10 0 0x01 0x01 0 0x02 0x00 0x05 0x00);While(6)P60=! P60 if (P60=1)void CAN_TXD(00 0x01 0x10 0 0x01 0x01 0 0x02 0x00 0x06 0x01);else void CAN_TXD(00 0x01 0x10 0 0x01 0x01 0 0x02 0x00 0x06 0x00);While(7)P70=! P70 if (P70=1)void CAN_TXD(00 0x01 0x10 0 0x01 0x01 0 0x02 0x00 0x07 0x01);else void CAN_TXD(00 0x01 0x10 0 0x01 0x01 0 0x02 0x00 0x07 0x00);While(8)P80=! P80 if (P80=1)void CAN_TXD(00 0x01 0x10 0 0x01 0x01 0 0x02 0x00 0x08 0x01);else void CAN_TXD(00 0x01 0x10 0 0x01 0x01 0 0x02 0x00 0x08 0x00);/main函数:void main(void) /CPU初始化 SJA_CS = 0; /CAN总线片选有效 SJA_RST = 0;/软件复位SJA10
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸设计 > 毕设全套


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

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


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