毕业设计(论文)-基于can总线汽车车窗控制器设计.doc_第1页
毕业设计(论文)-基于can总线汽车车窗控制器设计.doc_第2页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编号: 毕业设计说明书课 题:基于can总线的汽车车窗控制器设计学 院: 信息与通信学院 专 业: 电子信息工程 学生姓名: 学 号: 姓 名: 职 称: 教授 题目类型:理论研究 实验研究 工程设计 工程技术研究 软件开发 2016 年 6 月 10 日第 1 页 共 2 页桂林电子科技大学毕业设计(论文)报告用纸摘 要 随着电子技术的发展,汽车电子技术领域的应用也越来越多。汽车技术的发展越来越多的体现在汽车电子领域,现代的汽车电子技术已经走向了整车集成电子化、智能化、模块化的广阔道路。汽车总线技术的发展,是车载电子领域的一个主要体现。目前有多种常用的汽车总线技术。本次课题对其中用的比较多的can总线技术进行研究。can是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率和电磁干扰的高阻力,并产生出可以检测到任何错误。目前,在国外一些国家的can总线控制技术已经被广泛应用于汽车行业。 can其独特的优势,已经取代了传统的路由控制。本课题主要遵循can2.0b协议的汽车车窗can网络通信控制系统,其中着重讨论了以微控制器stm32、can通信收发器tja1050等为核心器件来设计并制作pcb实验板,以电机的正反转来模拟汽车车窗的升降,完成硬件设计。同时以keil公司设计、研发的uvision4 ide为开发工具,采用c语言编写控制程序的软件设计,对程序进行调试、编译后,利用专用的单片机烧写软件,将程序写入pcb实验板中,完成本实验的网络控制模拟研究。本次课题将设计主控节点与四个从节点,通过主节点通过can总线各个节点对其进行控制。关键词:汽车电子;can总线;车窗控制第 2 页 共 2 页桂林电子科技大学毕业设计(论文)报告用纸abstract with the development of electronic technology, automotive electronic technology application areas is also increasing. development of automobile technology more and more reflected in the field of automotive electronics, hyundais automotive electronics technology has been integrated to the vehicle electronics, intelligent, modular broad road. development of automotive bus technology, is a mainly automotive electronics field. there are a variety of commonly used automotive bus technology. the issue of where the relatively large number of can bus technology used in the study. can is a multi-master mode serial communication bus, the basic design specification requires a high bit rate and high resistance to electromagnetic interference, and produce can detect any errors. at present, some foreign countries can bus control technology has been widely used in the automotive industry. can its unique advantages, has replaced the traditional routing control. this topic mainly follow can2.0b car windows can protocol network traffic control system, which focuses on the micro controller stm32, can communication transceiver tja1050 like experimental design and production of pcb board as the core device in order to reverse the motor turn to simulate the car window lift, complete the hardware design. while keil designed, developed uvision4 ide development tools, using c language control program software design, debug the program, compiled, using a dedicated microcontroller programming software, the program is written pcb breadboard, complete simulation of the experiment network control. this topic will be designed from the master node and four node, through the master node through the can bus to control each node.key words:automotive electronics; can bus; window control第 1 页 共 2 页桂林电子科技大学毕业设计(论文)报告用纸目 录引言11 绪论11.1 课题研究背景11.2 国内外研究现状及发展21.2.1汽车电子的发展现状21.2.2汽车电子发展的趋势21.3 车窗控制发展的趋势31.4 本课题研究的内容31.4.1 研究重点31.4.2 研究难点32 系统设计:42.1 can总线技术42.1.1can协议42.1.2电气参数及信号表示52.2 系统方案选择52.2.1can控制收发模块方案52.2.2直流电源电路方案选择62.2.3电机驱动模块的选择62.2.4键盘操作电路选择62.3 系统总体实施方案73 系统硬件设计73.1 元器件介绍73.1.1 stm32f103单片机73.1.2 can收发芯片tja105083.1.3 l298n电机驱动芯片83.2 电路设计:93.2.1 stm32最小系统电路设计93.2.2 直流稳压电源电路设计103.2.3 can收发器tja1050电路113.2.4 电机驱动部分l298n电路113.2.5 键盘输入电路123.2.6 led显示电路134 系统软件设计:144.1系统设计主流程图144.2 can模块程序软件设计154.3 led指示软件设计165 系统调试过程175.1 硬件调试175.1.1can节点调试175.1.2 电机控制模块调试185.2 软件调试18第 2 页 共 2 页桂林电子科技大学毕业设计(论文)报告用纸5.2.1 can节点通信调试185.3 调试结果分析196 总结19谢 辞21附 录23附录一 系统硬件实物图23附录二 系统各模块电路图及pcb23附录三 系统部分程序26桂林电子科技大学毕业设计(论文)报告用纸第 31 页 共 31 页引言科技不断发展汽车电子技术已经越发成熟,越来越多的应用到了汽车应用当中,为人们的生活生产提供了更多的便利。21世纪以来,越来越多的汽车零部件的电子控制单元(ecu)控制,如电子燃油喷射装置,防抱死刹车系统,安全气囊装置等。用集成电路和微控制器广泛应用于汽车,汽车的ecu的数量也随之增加。因此,利用传统的布线方式,即电线和开关连接的一端和与电气设备连接的另一端,接线将导致在汽车的数量急剧增加,其质量将占约4的汽车总质量。此外,增加了电路的复杂性就会降低车辆的可靠性。为此,一种新的概念车用控制器局域网络can(controller area network)应运而生。先进的技术是在can总线上的最大动力汽车应用的,也是最主要的原因为汽车制造商竞争的can总线应用。在现代汽车的设计中,can已经成为一个设备必须使用,奔驰,宝马,大众,沃尔沃,雷诺等汽车作为can控制器联网的手段。据相关报道,中国的第一款混合动力汽车can网络的奇瑞汽车已经组装成功并运行。上海大众帕萨特,汽车就polo引can总线技术。can总线控制技术是提高汽车的性能的好方法。但总的来说,在中国汽车行业总目前can总线技术的应用还处于试验和起步阶段,大部分汽车使用总线没有设计的车,所以有很多缺点。就像汽车电子技术在20世纪70年代引入集成电路、80年代引入微处理器一样,现在数据can总线技术的引入也将是汽车电子技术发展的一个里程碑。本次课题通过研究can总线的特点来实现can总线在汽车电子领域的一个应用通过can总线控制汽车车窗。本系统运用了can总线来实现多个单片机之间的通信。通过can总线的多节点控制汽车的各个车窗,模拟现实生活中的应用,以及完善现实应用中的一些不足。1 绪论1.1 课题研究背景 随着计算机技术,网络通讯技术,集成电路技术,全数字现场总线控制仪表为代表场景的快速发展。设备的大量应用,使得复杂的现场连线被单一简单的现场总线网络所取代,工业控制当前用户带来了极大的好处,己形成hart,linkwork,profibus,bitbus及canbus等多种现场总线协议。 当前,can总线技术已在客车上广泛应用并受到重视。有专家表示:“can总线在客车展上被重视,就像前几年客车上的空气悬架,它代表客车的一种潮流、一种技术水平。”据了解,尽管目前can总线在我国轿车上已经普及,但在客车上的应用却刚刚开始。到目前为止,国内使用can总线的客车比例不高,而卡车上使用can总线的更是寥寥无几。欧洲客车的发展趋势和我国目前的种种迹象表明,can总线将成为客车技术发展的一种重要趋势。can总线的应用,将各种汽车电子装置连接成为一个网络。这项技术使客车“有皮肤,有视觉,有判断”成为可能。比如,驾驶员可以通过仪表盘上的图像显示屏监控车门的开关情况、胎压情况以及客车其他的故障情况。不仅如此,还可以对驾驶员的行车进行有效的监控和指挥。实际上,它对行车的安全有很大的作用。汽车技术的发展越来越电子化,电子控制单元也越来越多。如果不采用can总线技术,将导致车上电线数目急剧增加,复杂的电路不仅降低了汽车可靠性,增加了维修难度,也使汽车的质量增加。据悉,在2003年欧洲客车刚刚采用can总线技术时,威帝就开始了can总线产品的开发,到现在已有8大系列,800多个规格型号产品,并且可按用户的要求设计。can总线技术是实现汽车智能化的窗口,是汽车技术发展的一种必然趋势。这项技术目前已在欧洲商用车上普及,国内的商用车也必然朝着这个方向发展。1.2 国内外研究现状及发展1.2.1汽车电子的发展现状 电子技术、控制技术、传感器技术、网络技术、卡特电子技术、汽车电子技术,包括汽车、电子和计算机技术的基础。汽车电子控制系统技术的使用上,现代汽车的多数的注意车的动态性能、舒适及演出费。汽车电子技术的引进,不仅现有车辆的性能、电子信息技术的应用程序打开新的领域,如今的汽车电子时代的进步。汽车电子技术在汽车开发过程中旋转的的汽车电子零部件是汽车工业的测量该国的水平的重要指标。1.2.2汽车电子的发展趋势汽车电子和智能网的可靠性提供廉价的网络连接can总线,通过电子控制单元的开发的方向移动,所以电机、开关、传感器、照明等本地网站的连结通过(lin)的网络。世界级的制造规模的解决方案是:can8908mcu/lin公共汽车也控制方式,控制程序,can / lin网络解决方案的基础上lin主控制的上述转向轮控制9s12c32 16位控制器、照明开关、空调风扇控制lin slave)hvac鼓风机,空气调节挡板(lin slavehvacdamperdoor)和设备(linslavecluster)等。汽车制造商及供应商群体越来越复杂的安全性,动力系统、底盘及身体系统的协调问题。远程控制,防止冲突、驾驶员辅助系统及其他新兴而稳定,预测可能的方式是非常高的数据速率为网络提供必要的。most但网络标准的汽车多媒体设计所连接的高数据速率可以支持。只要正常数据速度125klmbps。许多ecu连接的网络。而且,这也是低优先级消息被发送,传输时的最高优先级的消息对高优先级消息后,总是将消息发送仲裁优先使用。相对较低的数据速率和缺陷性不足(如:生物系统和钢丝)的高级应用程序can适应的,lin的本质can便宜的孩子相对慢的网络连接类型,上述要求的数据速率中使用的高级车辆安全系统的新一代不能达到。1.3 车窗控制的发展趋势 国内电流控制系统由多个大多国产车和重保护继电器电路,每经过保护电路的信号通过导线连接到一个中继,然后对发送到电子控制由中继单元(ecu)控制,由于大量的信号,这需要大量的电线束,如果你需要添加其他功能,整条生产线要重新改变。这样一来,就会出现如下问题: (1)线路众多难以分辨给系统维护带来极大麻烦;(2)成捆导线容易产生信号间的相互干扰;(3)众多的导线及大型的继电器和保护电器必然会加大车身的重量成为改善汽车动态性能而不可忽视的障碍。尤其是当现状越来越多的电子设备、先进通信设备进入汽车之后,复杂的线路一来增大汽车的体积空间,而来对现代车载电子设备的工作造成干扰。而通过工业现场总线对汽车车窗控制,将使汽车电子控制显得更加智能化。1.4 研究内容本课题是基于can总线的汽车窗控制网络系统的设计与实现,即采用can总线技术,利用微控制器实现车窗的控制功能,利用can总线技术,能够共享中央节点发送的信息,不仅节约成本,而且有效实现了资源共享,简短系统响应时间,提高控制的有效性、实时性。本课题需要达到的指标:(1)设计5个can控制节点分别实现汽车4个车窗和1个天窗进行监控;(2)设计主控节点,向can控制节点发送不同的命令,实现汽车车窗的控制。1.4.1 研究重点(1)can总线通信协议的理解及在汽车电子中的应用;(2)can控制器与单片机的接口设计及多节点通信的电路设计;(3)汽车车窗电机驱动装置的设计。1.4.2 研究难点(1)can总线的使用;(2)基于单片机的can总线通信程序设计实现;(3)模拟汽车车窗的机械装置设计;2 系统设计2.1 can总线技术can是80年代由德国bosch公司最初用于汽车内部测试和控制仪器之间的数据通信的一种有效支持分布式控制或实时控制的串行通信网络。目前can 总线规范已被国际标准化组织iso制订为国际标准iso11898,并得到了motorola,intel,philips等大半导体器件生产厂家的支持,迅速推出各种集成有can协议的产品。目前can总线主要用于汽车自动化领域,如发动机自动点火、注油、复杂的加速刹车控制(asc)、抗锁定刹车系统(abs)和抗滑系统等。benz、bmw等著名汽车上已经采用can来满足上述功能。在工业过程控制领域,can也得到了广泛的应用。2.1.1can协议 can总线采用分层结构,规范规定了任意两个节点之间的兼容性。包括电气特件利数据解释协议。 can协议可分为:目标层、传送层、物理层。其中目标层和传送层包括了iso/osi定义的数据链路的所有功能。目标层的功能包括:确认要发送的信息;位应用层提供接口。传送层功能包括:数据帧组织,总线仲裁,检错、错误报告、错误处理。 can总线以报文为单位进行信息交换,报文中含有标示符(id),它既描述了数据的含义又表明了报文的优先权。can总线上的各个协点都可主动发送数据。当同时有两个或两个以上的节点发送报文时,can控制器采用id进行仲裁。id控制节点对总线的访问。发送具有最高优先权报文的节点获得总线的使用权,其他节点自动停止发送,总线空闲后,这些节点将自动重发报文。can支持四类信息帧类型。(1)数据帧can协议有两种数据帧类型标准2.0a和标准2.0b。两者本质的不同在于id的长度不同。在2.0a类型中,id的长度为11位;在2.0b类型中id为29位。一个信息震中包括7个主要的域:帧起始域标志数据帧的开始,由一个显性位组成。仲裁域内容由标示符和远程传输请求位(rtr)组成,rtr用以表明此信息帧是数据帧还是不包含任何数据的远地请求帧。当2.0a的数据帧和2.0b的数据帧必须在同一条总线上传输时,首先判断其优先权,如果id相同,则非扩展数据帧的优先权高于扩展数据帧。控制域r0、r1是保留位,作为扩展位,dlc表示一帧中数据字节的数目。数据域包含08字节的数据。校验域检验位错用的循环冗余校验域,共15位。应答域包括应答位和应答分隔符。正确接收到有效报文的接收站在应答期间将总线值为显性电平。帧结束由七位隐性电平组成。(2)远程帧接受数据的节点可通过发远程帧请求源节点发送数据。它由6个域组成:帧起始、仲裁域、控制域、校验域、应答域、帧结束。(3)错误指示帧由错误标志和错误分界两个域组成。接收节点发现总线上的报文有误时,将自动发出“活动错误标志”其他节点检测到活动错误标志后发送“错误认可标志”。(4)超载帧由超载标志和超载分隔符组成。超载帧只能在一个帧结束后开始。当接收方接收下一帧之前,需要过多的时间处理当前的数据,或在帧问空隙域检测到显性电平时,则导致发送超载帧。(5)帧间空隙位于数据帧和远地帧与前面的信息帧之间,由帧间空隙和总线空闲状态组成。帧间空隙是必要的,在此期间,can不进行新的帧发送,为的是can控制器在下次信息传递前有时间进行内部处理操作。当总线空闲时can控制器方可发送数据。2.1.2电气参数及信号表示总线上的数据采用不归零编码方式(nrz),可具有两种互补的逻辑值之一:显性及隐性。can总线中各节点使用相同的位速率。它的每位时间由同步段、传播段、相位缓冲段1及相位缓冲段2组成。发送器在同步段前改变输出的位数值,接受器在两个相位缓冲段间采样输入位值,而两个相位缓冲段长度可自由调节,以保证采样的可靠性。另外,can总线采用时钟同步技术来保证通讯的同步。2.2 系统方案选择2.2.1can控制收发模块方案can总线节点由主控微处理器加上can控制、can报文收发模块组成,用到该模块的组合有很多种,从微处理器的角度大概分为两种方案:方案一:常规优势can公共汽车等独立控制的微型计算机的老毛病,电路的设计spi巴士不仅通过更复杂的相对独立的can控制器sja1000 can模块集成芯片不是mcp2515的双向通信。主mcu作为最普遍使用的老单芯片51单片机。一般使用的艺术情节at89s 52、国内宏观水晶技术企业stc系列所生成的51内核微控制器。方案二:使用内置can收发模块的单片机,例如意法半导体的stm32、美国微芯公司生产的c8051f系列、nxp的lpc系列等,这种方案的优点是芯片集成度高,电路设计简单,缺点是代码不可移植,但是由于内置了can模块,也有提供专门的can通信源代码。两种方案主要区别于主控单片机是否有集成can通信模块,而无论集成内置模块与否,在通信端都需要连接can收发器芯片,can收发器芯片主要有tja1050、82c250、mcp2551等。两种方案在功能上、成本上相差不大,各有千秋,本次设计采用以stm32f103vbt6单片机为核心部件,以单片机内置can总线模块作为can通信控制单元,tja1050作为can收发器的组合作为can节点模块设计方案。 2.2.2直流电源电路方案选择方案一:采用lm7812作为+12v直流稳压管,lm7805作为+5v直流稳压管设计直流稳压电源为系统供电,lm78系列稳压器价格低廉,适用于多种场合的稳压电源电路,且输出稳定性较好、使用起来非常方便、具有输出过流、过热的自动保护功能,但是稳压器要求压降较大,输入输出压差至少要有3v,输出电流峰值才1.5a。方案二:采用ti公司生产的lm2596s系列的开关稳压器作为直流稳压元件,lm2596s系列开关型稳压器的输出线性很好并且负载可以调节,电流输出最高可以达到3a,功耗小,效率高,价格也不贵,更具ttl断电功能。方案三:采用分立元件三极管加运放来设计开关型直流稳压电源,电路设计简单,但是稳压效果不稳定,由于负载电阻变化时影响lc滤波电路的绿波效果,因而采用分立元件设计的开关型稳压电路不适用于负载变化较大的场合。 终上所述,在本课题设计时选择方案一作为本次设计的电源电路设计方案。 2.2.3电机驱动模块的选择电机驱动,就是模拟控制车窗的部分,方案从电路层面主要有分立元器件跟集成芯片两种:方案一:分立元器件,即使用继电器模块控制,由于电机部分要求按照汽车上的标准12v供电,于是单片机输出通过控制继电器的通断来控制电机。由于要正反转,需要两个继电器的交叉转换实现控制,比较麻烦。方案二:用集成芯片,使用常用的电机控制芯片l298n对其进行控制,l298n具有功率放大的功能,可通过公共地输出来测量输出电压,通过判断电压是否在正常值来判断电动机的工作状态。方案一虽然成本低、电路简单,但是课扩展功能少,缺乏控制的实施性,而且在过流检测部分实现起来比较麻烦,方案二为成熟模块,资料多,便于操作,故采纳方案二,使用l298n对车窗的电动机进行控制。2.2.4键盘操作电路选择方案一:采用独立按键作为操作控制按钮,独立按键编程简单,但是使用多按键时程序较繁琐,每个按键需要占用一个i/o口,浪费单片机资源。方案二:采用4x4矩阵键盘作为系统操作按钮,矩阵键盘虽然电路较复杂,但是编程不是很复杂,16个按键也才占用8个i/o口。终上所述,本课题在设计时采用方案一中的矩阵键盘作为系统操作按钮。2.3 系统总体实施方案系统总体模块框图,如图2-1所示:图2-1系统总体框图系统的基本原理是主节点芯片控制的传输和发送接收到从节点了。主节点的can协议及节点中的双向传递,上述主节点的多个开关的开关控制的。主节点的本地窗口升降机殿下更全面部左侧驾驶,节点的节点总数的主窗口左侧前方为手段,视窗元件同步的所有节点控制。一些并且窗口的状态监测,显示主节点上重新can公共汽车通过错误监控、故障信息为视窗驱动马达,通过芯片的数据传输信息的节点从can传到了微型计算机的控制。驱动器电路监视电动机的电流检测电阻两端的电压检测,压力下降及上述电动机的电动机启动电流和串联电阻电流传感器检测到小的电阻值。达到临界值的读出电阻上的电压设置之前,马达总成传感器达到临界值下降运行。马达检测窗口的位置,停止旋转。窗口到达最终位置测量的情况,说明障碍窗口,窗口自动回到初始位置。窗口的位置窗口是预定义的限制达到的位置决定了压电传感器、电压而产生的压力的装备这个窗口实时控制。3 硬件设计与实现3.1 元器件介绍3.1.1 stm32f103单片机 stm 32系列是高性能、低消耗的要求专门为基于电力林的应用程序特别arm核心材质m3设计。按内核架构分为不同产品:其中stm32f1系列有:stm32f103“增强型”系列、stm32f101“基本型”系列、stm32f105、stm32f107“互联型”系列。72mhz产品的类似产品的最高性能的103系列的时钟速度,36mhz左右。基本时钟频率产品的价格32使用的最好的选择是生成物的性能大大提高16位产品。两个系列的32k内置128k闪光,sram周边接口组合的最大容量的除外。一下子,36ma的stm 32电力消费产品32位的低消费电力市场运行72mhz乐队的时钟频率的0.5ma /兆赫兹的等价。3.1.2 can收发芯片tja1050 tja1050是一个可容错的高速can器件,可作为can协议控制器和物理总线接口。tja1050可为can协议控制器提供差分收发能力,它完全符合iso-11898标准,包括能满足24v电压要求。典型情况下,can系统上的每个节点都必须有一个器件,把can控制器生成的数字信号转化成为适合总线传输的信号。它也为can控制器和can总线上的高压尖峰信号之间加入了缓冲器,这些高压尖峰信号可能是由外部器件产生的。tja1050的引脚与一般的can收发器相同,为8个引脚,常用dip-8的封装,用tja1050于独立can控制器所组合控制can模块的工作。图3-5 tja1050封装3.1.3 l298n电机驱动芯片l298n是st的高电压,古典类电机驱动芯片制造。该芯片是15针包使用。主要特点是:高电压、最大输出到46v电压,电流瞬时峰值电流到3a,也2a的连续运转电流、额定25w。在两个控制端使用的标准逻辑电平信号控制,特区马达和行走者马达继电器诱导性、线圈等部驱动可用于两个h桥,电压及古典类草桥驱动装置,包括影响或逻辑电源输入,低电压内部逻辑电路部分中,外部输入信号的检测重新控制电路的电阻变化量。两个特区马达驱动芯片上行走者2 4相步进电机、器马达驱动芯片l298n使用马达驱动。图3-6 l298n芯片实物图及其封装l298n芯片的主要指标:n 主要芯片:l298n、光电耦合器n 尺寸:80mmx45mmn 工作电压:控制信号直流5v;电机电压直流3v46v(建议使用36伏以下)n 最大工作电流:2.5an 额定功率:25wl298n的主要特点:l 可实现正反转 l 具有过电压和过电流保护l 采用光电隔离l 抗干扰能力强l 可单独控制一台步进电机l 可单独控制两台直流电机3.2 电路设计3.2.1 stm32最小系统电路设计stm32单片机最小系统主要包括时钟振荡电路,单片机复位电路,启动方式选择电路,jtag仿真/下载接口电路,电源供电滤波电路,vbat为rtc和后备寄存器供电电路,下面将分别对每个模块电路进行详细的描述。时钟振荡电路设计在stm32中一共有5个时钟源,在本课题设计时使用到低速外部时钟和高速外部时钟两个外部时钟源,电路如图3.1所示,低速外部时钟引脚接了一个32.768khz的石英晶振和c1、c2两个电容,c1和c2的接入使其构成并联谐振电路,这样就组成了一个自激振荡器,电容的容值具有微调的功能,一般采用5pf-15pf,本课题设计时选取10pf,高速外部时钟选择常用的8mhz的石英晶振和电容c3、c4,c3、c4的作用跟c1、c2相同,但是取值大小有些许差异,可用5pf-25pf,,本课题设计时选取20pf,跟低速外部时钟不同的是高速外部时钟在晶振之间添加了一个1m欧姆的电阻,用来加快电路起振的速度。 图3.1 时钟振荡电路stm32单片机电源分为数字电源和模拟电源两部分,因为采用的stm32型号共有11组数字电源,所以在数字滤波电路设计中采用11个104(0.1uf)的电容滤波,数字滤波电路如图3.2所示,在设计pcb时每组数字电源对应一个滤波电容,由于刚上电时,电源电流不稳定,通过电容滤波,可以避免高压脉冲引起stm32误动作,在电源端加图3.2 数字滤波电路上滤波电容,可以得到更平稳的电源,减少电源干扰,使芯片的工作状态更稳定。3.2.2 直流稳压电源电路设计整个系统中需要用到+12v直流电源,+5v直流电源和+3.3v直流电源供电,所以直流稳压电源电路设计部分主要包含三个稳压部分,电机驱动电路需要12v的电源,在l298n的电机驱动电路中,+12v电源由直流稳压源提供。lm7805稳压管将12v电压转换为5v电压输出,输入输出端各加一个104电容作为滤波。因为stm32单片机为3.3v供电,所以还需要把+5v电压转换成3.3v,本课题设计时采用ams1117-3.3稳压ic,首先+5v的电压经过电容c1、c2滤波后再经过一个二极管(此处的二极管起到保护作用)从ams1117的3脚输入,然后从2脚输出,就可以得到+3.3v的电压给stm32单片机供电。图 3-8 12v转5v稳压电路图 3-9 5v转3.3v电路3.2.3 can收发器tja1050电路图3-10 tja1050电路一般在工业领域设计中,会采用串联几个电阻作为限流,并联电容来滤波,反接二极管作为保护作用,在收发器与can独立控制器之间加光耦以做光电隔离作用,此次设计未用到上述措施,由于设计比较简单,简化了电路。其中r4为120欧的电阻,在多节点通信是并在首尾节点的can总线接口两端。3.2.4 电机驱动部分l298n电路 电机驱动模块主要的电路组成部分由驱动芯片l298n的电路、比较器lm393电路、电源转换电路组成,l298n电路中,采用l298n芯片的a通道,即导通in1、in2、out1、out2这两路。out1、out2接电动机模块。其两端并联一个104的瓷片电容。in1、in2两个引脚接单片机的io口,由单片机输出的电平控制其正转反转,此通路的使能端ena也接单片机的io口,当遇到问题的时候(如夹手、车窗转动到头时)关断使能端,使得电机停止转动。而两个输入端无法对其进行控制。图3-11 电机驱动模块电路 本次设计中需要实现防夹功能,根据电动机的原理,当其停止转动但两端仍有电流通过时,其输出的电流会增大,在l298n芯片控制的电路中,由第1、15引脚分别对应两路输入输出端的输出,在其管脚与地之间串联一个检测电阻,通过该电阻可以实现过流过压检测。3.2.5 键盘输入电路 键盘是计算机不可缺少的输入设备,是实现人际对话的纽带。键盘可以分为:独立键盘和矩阵键盘两种。独立键盘与单片机连接时,每一个按键都要占用单片机的一个i/o口,由于本系统需要较多按键,使用独立按键就需要占用过多的i/o口资源。单片机的i/o口资源往往比较宝贵,当用到多个按键时,往往采用矩阵式键盘。图3-16 独立键盘电路(位于主节点,用于控制从节点)图3-16 从节点上的独立键盘3.2.6 led显示电路本次设计中的led指示灯电路,采用共阳极接法,两支led的阳极通过一个1k的电阻接到3.3v电源上,电阻的作用为分压限流。led的阴极接到单片机。图3-17 led显示电路4 系统软件设计:4.1系统设计主流程图系统流程图如图4-1、4-2。分别为从节点与主节点的流程图,从节点通过接收报文后经过单片机判断对电机模块发出指令进行控制图4-1 从节点主控程序流程图 图4-2 系统主节点流程图4.2 can模块程序软件设计can控制器是根据总线上的两根线的电位差来判断总线的电平的。can总线的电平分为显性电平和隐性电平两种,显性电平对应逻辑为0,两根线的电平差约为2.5v,隐性电平对应逻辑为1,两根线的电平差为0v,总线只能是一种状态,不是显性电平,就是隐性电平,发送端通过让总线的电平发生改变,然后将数据发送给接收方。stm32自带的是bx-can,即基本扩展can。它支持can 协议2.0a 和2.0b。can发送流程为:程序选择1个空置的邮箱(tme=1)然后设置标识符(id),设置数据长度和待发送数据,接着设置can_tier的txrq位为1,最后请求请求发送邮箱挂号(等待成为最高优先级)预定发送(等待总线空闲)发送邮箱空置。can接收流程为:fifo空收到有效报文然后挂号(存入fifo的一个邮箱),最后在溢出之前读出报文。由于本课题采用的是stm32内置的can控制器,所以首先要配置can相关寄存器模式,设置好btr-ts1和btr-ts2的参数以及波特率分频器btr-brp的参数得到can总线通信的波特率,最后设置发送内容就可以完成can总线的通信。完整的配置stm32的can总线通信功能如下函数所示,包括gpio配置,完整配置can总线功能,can中断配置,can单元寄存器模式配置,can的过滤器配置。代码主要的几个函数, 首先是 can_mode_init 函数。该函数用于 can 的初始化,该函数带有 5 个参数,可以设置 can 通信的波特率和工作模式等,在该函数中,我们设计滤波器组 0 工作在 32 位标识符屏蔽模式, 从设计值可以看出,该滤波器是不会对任何标识符进行过滤的,因为所有的标识符位都被设置成不需要关心。第二个函数,can_sendmsg 函数。该函数用于can报文的发送,主要是设置标识符 id等信息,写入数据长度和数据,并请求发送,实现一次报文的发送。第三个函数,can_receive_msg 函数。用来接受数据并且将接受到的数据存放到buf 中。can.c 里面,还包含了中断接收的配置,通过can.h的can_rx0_int_enable 宏定义,来配置是否使能中断接收。4.3 led指示软件设计led.c文件中的代码如下:#include led.h void led_init(void) gpio_inittypedef gpio_initstructure; rcc_apb2periphclockcmd(rcc_apb2periph_gpiob, enable); gpio_initstructure.gpio_pin = (gpio_pin_12|gpio_pin_14); gpio_initstructure.gpio_mode = gpio_mode_out_pp; /推挽输出 gpio_initstructure.gpio_speed = gpio_speed_50mhz; /io口速度为50mhz gpio_init(gpiob, &gpio_initstructure); gpio_setbits(gpiob,gpio_pin_12|gpio_pin_14);该代码里面就包含了一个函数 void led_init(void),该函数的功能就是用来实现配置 pb12和 pb14 为推挽输出。 这里需要注意的是: 在配置 stm32 外设的时候,任何时候都要先使能该外设的时钟。gpio 是挂载在 apb2 总线上的外设,在固件库中对挂载在apb2 总线上的外设时钟使能是通过函数 rcc_apb2periphclockcmd()来实现的。在 led.h 中输入如下代码:#ifndef _led_h#define _led_h#include sys.h/led 端口定义#define led0 pbout(12)/ ds0#define led1 pbout(14)/ ds1void led_init(void);/初始化#endif这段代码里面最关键就是 2 个宏定义:#define led0 pbout(12)/ led0#define led1 pbout(14)/ led1这里使用的是位带操作来实现操作某个 io 口的 1 个位的,关于位带操作。需要说明的是, 这里同样可以使用固件库操作来实现 io 口操作。如下:gpio_setbits(gpiob, gpio_pin_12);/设置 gpiob.12 输出 1,等同 led0=1;gpio_resetbits (gpiob, gpio_pin_12);/ 设置 gpiob.12 输出 0,等同 led0=0;5 系统调试过程系统调试对于一个作品来说是非常重要的,应该贯穿于设计制作的全过程,本章将就作品从制作开始到完成的过程中所用到的方法和遇到的问题就此做个介绍。5.1 硬件调试5.1.1can节点调试 在设计中首先进行的部分是系统的核心can总线通信调试。这也是本次设计中最难点的部分所在。can节点调试的主要的测试流程是先对两个节点之间的通信做个简单的调试,然后再增加节点,逐步调试多节点调试。实现基本的can通信收发功能,其功能实现是通过一个节点控制另一个节点上,由led的亮灭来作为演示。在调试的过程中,遇到的问题比较多。主要体现在通信的稳定性方面。在做系统通信模块的时候,问题主要集中体现在系统的硬件制作方面,在硬件电路上做的电路板做了很多块,其中在元件的封装这种低级问题中也出了些问题。比如贴片的元件画反,晶振的放置挡住了单片机底座的放置等等,在作出电路板之后,又有经过了程序的调试,在调试中发现也没有立即连通。在结合程序的分析中,can节点的通信主要问题体现在下面几个细节:在can收发器电路的设计中,第8个引脚需要连接下拉电阻而非直接接地。一般can收发器件的引脚功能基本都差不多,1脚为txd,2脚为地,3脚接电,4脚接txd,6、7脚分别是can_l和can_h。而5脚的功能用的不多,一般为悬空,8脚一般接下拉电阻。我最开始设计的时候参考书上的资料跟实验板的电路图结合,书上资料有很多硬件接口在实际应用中可用可不用,比如光电隔离器件,我在设计中删减了一些电路。其中也将收发器的下拉电阻也删除了,最后在第一个板子中电路不通,后面对程序跟电路都做了分析之后,结合别人设计的测试过成功的电路后载加入了那个下拉电阻,后面才得以实现正常通信。由于can节点电路基本都是一摸一样的,所以每次在制作电路板的时候都是一次做两块,用一对,不过由于之前失败的板子比较多,也导致了做了很多的废弃的电路板,这些板子基本上是最小系统能用,但can收发模块无法正常工作。在调通的过程中,我后面是做了单独的can模块,用杜邦线连接单片机最小系统,调试成功后再继续做剩余的电路板。5.1.2 电机控制模块调试比于can节点收发模块,电机控制模块的制作难度就显得小了很多,只是其调试条件多一点而已,需要用到12v电源,电源的连接线比较多。在l298n的电路调试中,由于这个电路是个成熟的模块,被非常广泛的运用到智能小车的设计制作中。在调试的过程中也显得顺利了很多,其特点就是接线比较麻烦而已。有时候经常出现有些线没有接上而导致电机没有运行,而在其使能端接通后,有时候输入端只需要接一根线也能通。测试的时候先是直接接电源,后面改用单片机控制。单片机控制正反转的程序也比较简单。测试过程比较顺利。电机转动比较快,检测其正反转需要接个轮子之类的东西来模拟,以便观察电动机的工作。电动机的堵转是测试的关键,在设计比较器电路之前,需要先测试其正常工作电压与堵转电压,测试中观察的情况是,输出电压值的波动比较大,不是直流的电压,而在堵转时,由于电机转动过快,要抓住它比较困难,不过基本测试了其正常工作电压与堵转电压。在设计比较器电路时以便于搭配输入端比较电压。比较器电路的测试:先单独做了比较器模块,测试时未输出正常电平,经测试后发现输入端的电阻分掉了输入电压,以至于输入端电压趋于0,后几经修改能够正常工作了。后面接到之前做的电机驱动电路板子上面,后面发现在堵转时能够输出高电平,但是在正常工作的时候输出的也不是低电平而是1.52.5v之间的电压,后面通过调节电位器改变比较端电压,使正常工作时的电压降到1v以下,而在堵转时的电压也能经过比较器之后达到5v的高电平。比较器电路测试是比较麻烦,也比较耗时间的部分,主要体现在同向输入端的输入电压比较难调,在输出端的输出电平没有那么稳定。5.2 软件调试5.2.1 can节点通信调试在can节点通信中,主要调试工作体现一个是多节点通信方面,一个是节点之间的数据传输。通过对各个寄存器的了解,对其程序的读懂,在节点通信方面是在原有的实例程序的基础上加以修改。其中节点之间传输数据通过修改发送数组中的数据,通过不同的指针控制相应的变量,实现通过can总线的远程控制。节点程序主要是在各个从节点中,而各个从节点的控制的数据量也比较小,主要就是电机正转(升车窗)、电机反转(降车窗)。在多节点通信主要是在主节点的程序中的内容,由主节点实现一对多控制。can总线的报文收发为广播型的模式,通过主节点的发送到各个节点接收,由于各个节点的地址不同,只有相应的地址才会收到相应的信息。在收发的过程中,通过报文滤波判断对应的节点,而从节点向上发送数据的过程中,则是一对一的过程,只由相应的主节点接收。主节点在控制时,程序设计中采用switch语句判断从节点,if语句判断自身节点所控制的模块。两种选择结构并列,在主函数中扫描。在can多节点通信中遇到的主要问题是:有部分的节点通信不稳定,复位没多久就没有信号输入了。解决方法:通过对比通信较为稳定的从节点,发现主函数中while(1)循环中的部分语句屏蔽之后,节点的通信会变得稳定些,结论:在主函数中通信代码段过于复杂的话会影响其扫描的状态,以至于有的时候

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论