毕业设计(论文)基于can总线汽车车窗控制器设计.doc

上传人:laozhun 文档编号:2958574 上传时间:2023-03-05 格式:DOC 页数:36 大小:1.09MB
返回 下载 相关 举报
毕业设计(论文)基于can总线汽车车窗控制器设计.doc_第1页
第1页 / 共36页
毕业设计(论文)基于can总线汽车车窗控制器设计.doc_第2页
第2页 / 共36页
毕业设计(论文)基于can总线汽车车窗控制器设计.doc_第3页
第3页 / 共36页
毕业设计(论文)基于can总线汽车车窗控制器设计.doc_第4页
第4页 / 共36页
毕业设计(论文)基于can总线汽车车窗控制器设计.doc_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《毕业设计(论文)基于can总线汽车车窗控制器设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于can总线汽车车窗控制器设计.doc(36页珍藏版)》请在三一办公上搜索。

1、编号: 毕业设计说明书课 题:基于CAN总线的汽车车窗控制器设计学 院: 信息与通信学院 专 业: 电子信息工程 学生姓名: 学 号: 姓 名: 职 称: 教授 题目类型:理论研究 实验研究 工程设计 工程技术研究 软件开发 2016 年 6 月 10 日摘 要 随着电子技术的发展,汽车电子技术领域的应用也越来越多。汽车技术的发展越来越多的体现在汽车电子领域,现代的汽车电子技术已经走向了整车集成电子化、智能化、模块化的广阔道路。汽车总线技术的发展,是车载电子领域的一个主要体现。目前有多种常用的汽车总线技术。本次课题对其中用的比较多的CAN总线技术进行研究。CAN是一种多主方式的串行通讯总线,基

2、本设计规范要求有高的位速率和电磁干扰的高阻力,并产生出可以检测到任何错误。目前,在国外一些国家的CAN总线控制技术已经被广泛应用于汽车行业。 CAN其独特的优势,已经取代了传统的路由控制。本课题主要遵循CAN2.0B协议的汽车车窗CAN网络通信控制系统,其中着重讨论了以微控制器STM32、CAN通信收发器TJA1050等为核心器件来设计并制作PCB实验板,以电机的正反转来模拟汽车车窗的升降,完成硬件设计。同时以Keil公司设计、研发的uVision4 IDE为开发工具,采用C语言编写控制程序的软件设计,对程序进行调试、编译后,利用专用的单片机烧写软件,将程序写入PCB实验板中,完成本实验的网络

3、控制模拟研究。本次课题将设计主控节点与四个从节点,通过主节点通过CAN总线各个节点对其进行控制。关键词:汽车电子;CAN总线;车窗控制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, Hyund

4、ais 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

5、 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 contr

6、ol 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

7、 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 th

8、e 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.

9、Key words:Automotive electronics; CAN bus; Window control目 录引言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 系统总体

10、实施方案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 电

11、机控制模块调试185.2 软件调试185.2.1 CAN节点通信调试185.3 调试结果分析196 总结19谢 辞21附 录23附录一 系统硬件实物图23附录二 系统各模块电路图及PCB23附录三 系统部分程序26引言科技不断发展汽车电子技术已经越发成熟,越来越多的应用到了汽车应用当中,为人们的生活生产提供了更多的便利。21世纪以来,越来越多的汽车零部件的电子控制单元(ECU)控制,如电子燃油喷射装置,防抱死刹车系统,安全气囊装置等。用集成电路和微控制器广泛应用于汽车,汽车的ECU的数量也随之增加。因此,利用传统的布线方式,即电线和开关连接的一端和与电气设备连接的另一端,接线将导致在汽车的数量

12、急剧增加,其质量将占约4的汽车总质量。此外,增加了电路的复杂性就会降低车辆的可靠性。为此,一种新的概念车用控制器局域网络CAN(Controller Area Network)应运而生。先进的技术是在CAN总线上的最大动力汽车应用的,也是最主要的原因为汽车制造商竞争的CAN总线应用。在现代汽车的设计中,CAN已经成为一个设备必须使用,奔驰,宝马,大众,沃尔沃,雷诺等汽车作为CAN控制器联网的手段。据相关报道,中国的第一款混合动力汽车CAN网络的奇瑞汽车已经组装成功并运行。上海大众帕萨特,汽车就POLO引CAN总线技术。CAN总线控制技术是提高汽车的性能的好方法。但总的来说,在中国汽车行业总目前

13、CAN总线技术的应用还处于试验和起步阶段,大部分汽车使用总线没有设计的车,所以有很多缺点。就像汽车电子技术在20世纪70年代引入集成电路、80年代引入微处理器一样,现在数据CAN总线技术的引入也将是汽车电子技术发展的一个里程碑。本次课题通过研究CAN总线的特点来实现CAN总线在汽车电子领域的一个应用通过CAN总线控制汽车车窗。本系统运用了CAN总线来实现多个单片机之间的通信。通过CAN总线的多节点控制汽车的各个车窗,模拟现实生活中的应用,以及完善现实应用中的一些不足。1 绪论1.1 课题研究背景 随着计算机技术,网络通讯技术,集成电路技术,全数字现场总线控制仪表为代表场景的快速发展。设备的大量

14、应用,使得复杂的现场连线被单一简单的现场总线网络所取代,工业控制当前用户带来了极大的好处,己形成Hart,Linkwork,Profibus,Bitbus及Canbus等多种现场总线协议。 当前,CAN总线技术已在客车上广泛应用并受到重视。有专家表示:“CAN总线在客车展上被重视,就像前几年客车上的空气悬架,它代表客车的一种潮流、一种技术水平。”据了解,尽管目前CAN总线在我国轿车上已经普及,但在客车上的应用却刚刚开始。到目前为止,国内使用CAN总线的客车比例不高,而卡车上使用CAN总线的更是寥寥无几。欧洲客车的发展趋势和我国目前的种种迹象表明,CAN总线将成为客车技术发展的一种重要趋势。CA

15、N总线的应用,将各种汽车电子装置连接成为一个网络。这项技术使客车“有皮肤,有视觉,有判断”成为可能。比如,驾驶员可以通过仪表盘上的图像显示屏监控车门的开关情况、胎压情况以及客车其他的故障情况。不仅如此,还可以对驾驶员的行车进行有效的监控和指挥。实际上,它对行车的安全有很大的作用。汽车技术的发展越来越电子化,电子控制单元也越来越多。如果不采用CAN总线技术,将导致车上电线数目急剧增加,复杂的电路不仅降低了汽车可靠性,增加了维修难度,也使汽车的质量增加。据悉,在2003年欧洲客车刚刚采用CAN总线技术时,威帝就开始了CAN总线产品的开发,到现在已有8大系列,800多个规格型号产品,并且可按用户的要

16、求设计。CAN总线技术是实现汽车智能化的窗口,是汽车技术发展的一种必然趋势。这项技术目前已在欧洲商用车上普及,国内的商用车也必然朝着这个方向发展。1.2 国内外研究现状及发展1.2.1汽车电子的发展现状 电子技术、控制技术、传感器技术、网络技术、卡特电子技术、汽车电子技术,包括汽车、电子和计算机技术的基础。汽车电子控制系统技术的使用上,现代汽车的多数的注意车的动态性能、舒适及演出费。汽车电子技术的引进,不仅现有车辆的性能、电子信息技术的应用程序打开新的领域,如今的汽车电子时代的进步。汽车电子技术在汽车开发过程中旋转的的汽车电子零部件是汽车工业的测量该国的水平的重要指标。1.2.2汽车电子的发展

17、趋势汽车电子和智能网的可靠性提供廉价的网络连接CAN总线,通过电子控制单元的开发的方向移动,所以电机、开关、传感器、照明等本地网站的连结通过(LIN)的网络。世界级的制造规模的解决方案是:CAN8908MCU/LIN公共汽车也控制方式,控制程序,CAN / LIN网络解决方案的基础上LIN主控制的上述转向轮控制9S12C32 16位控制器、照明开关、空调风扇控制LIN slave)HVAC鼓风机,空气调节挡板(LIN SlaveHVACDamperDoor)和设备(LINSlaveCluster)等。汽车制造商及供应商群体越来越复杂的安全性,动力系统、底盘及身体系统的协调问题。远程控制,防止冲

18、突、驾驶员辅助系统及其他新兴而稳定,预测可能的方式是非常高的数据速率为网络提供必要的。MOST但网络标准的汽车多媒体设计所连接的高数据速率可以支持。只要正常数据速度125KlMbps。许多ECU连接的网络。而且,这也是低优先级消息被发送,传输时的最高优先级的消息对高优先级消息后,总是将消息发送仲裁优先使用。相对较低的数据速率和缺陷性不足(如:生物系统和钢丝)的高级应用程序CAN适应的,LIN的本质CAN便宜的孩子相对慢的网络连接类型,上述要求的数据速率中使用的高级车辆安全系统的新一代不能达到。1.3 车窗控制的发展趋势 国内电流控制系统由多个大多国产车和重保护继电器电路,每经过保护电路的信号通

19、过导线连接到一个中继,然后对发送到电子控制由中继单元(ECU)控制,由于大量的信号,这需要大量的电线束,如果你需要添加其他功能,整条生产线要重新改变。这样一来,就会出现如下问题: (1)线路众多难以分辨给系统维护带来极大麻烦;(2)成捆导线容易产生信号间的相互干扰;(3)众多的导线及大型的继电器和保护电器必然会加大车身的重量成为改善汽车动态性能而不可忽视的障碍。尤其是当现状越来越多的电子设备、先进通信设备进入汽车之后,复杂的线路一来增大汽车的体积空间,而来对现代车载电子设备的工作造成干扰。而通过工业现场总线对汽车车窗控制,将使汽车电子控制显得更加智能化。1.4 研究内容本课题是基于CAN总线的

20、汽车窗控制网络系统的设计与实现,即采用CAN总线技术,利用微控制器实现车窗的控制功能,利用CAN总线技术,能够共享中央节点发送的信息,不仅节约成本,而且有效实现了资源共享,简短系统响应时间,提高控制的有效性、实时性。本课题需要达到的指标:(1)设计5个CAN控制节点分别实现汽车4个车窗和1个天窗进行监控;(2)设计主控节点,向CAN控制节点发送不同的命令,实现汽车车窗的控制。1.4.1 研究重点(1)CAN总线通信协议的理解及在汽车电子中的应用;(2)CAN控制器与单片机的接口设计及多节点通信的电路设计;(3)汽车车窗电机驱动装置的设计。1.4.2 研究难点(1)CAN总线的使用;(2)基于单

21、片机的CAN总线通信程序设计实现;(3)模拟汽车车窗的机械装置设计;2 系统设计2.1 CAN总线技术CAN是80年代由德国Bosch公司最初用于汽车内部测试和控制仪器之间的数据通信的一种有效支持分布式控制或实时控制的串行通信网络。目前CAN 总线规范已被国际标准化组织ISO制订为国际标准ISO11898,并得到了Motorola,Intel,Philips等大半导体器件生产厂家的支持,迅速推出各种集成有CAN协议的产品。目前CAN总线主要用于汽车自动化领域,如发动机自动点火、注油、复杂的加速刹车控制(ASC)、抗锁定刹车系统(ABS)和抗滑系统等。BENZ、BMW等著名汽车上已经采用CAN来

22、满足上述功能。在工业过程控制领域,CAN也得到了广泛的应用。2.1.1CAN协议 CAN总线采用分层结构,规范规定了任意两个节点之间的兼容性。包括电气特件利数据解释协议。 CAN协议可分为:目标层、传送层、物理层。其中目标层和传送层包括了ISO/OSI定义的数据链路的所有功能。目标层的功能包括:确认要发送的信息;位应用层提供接口。传送层功能包括:数据帧组织,总线仲裁,检错、错误报告、错误处理。 CAN总线以报文为单位进行信息交换,报文中含有标示符(ID),它既描述了数据的含义又表明了报文的优先权。CAN总线上的各个协点都可主动发送数据。当同时有两个或两个以上的节点发送报文时,CAN控制器采用I

23、D进行仲裁。ID控制节点对总线的访问。发送具有最高优先权报文的节点获得总线的使用权,其他节点自动停止发送,总线空闲后,这些节点将自动重发报文。CAN支持四类信息帧类型。(1)数据帧CAN协议有两种数据帧类型标准2.0A和标准2.0B。两者本质的不同在于ID的长度不同。在2.0A类型中,ID的长度为11位;在2.0B类型中ID为29位。一个信息震中包括7个主要的域:帧起始域标志数据帧的开始,由一个显性位组成。仲裁域内容由标示符和远程传输请求位(RTR)组成,RTR用以表明此信息帧是数据帧还是不包含任何数据的远地请求帧。当2.0A的数据帧和2.0B的数据帧必须在同一条总线上传输时,首先判断其优先权

24、,如果ID相同,则非扩展数据帧的优先权高于扩展数据帧。控制域r0、r1是保留位,作为扩展位,DLC表示一帧中数据字节的数目。数据域包含08字节的数据。校验域检验位错用的循环冗余校验域,共15位。应答域包括应答位和应答分隔符。正确接收到有效报文的接收站在应答期间将总线值为显性电平。帧结束由七位隐性电平组成。(2)远程帧接受数据的节点可通过发远程帧请求源节点发送数据。它由6个域组成:帧起始、仲裁域、控制域、校验域、应答域、帧结束。(3)错误指示帧由错误标志和错误分界两个域组成。接收节点发现总线上的报文有误时,将自动发出“活动错误标志”其他节点检测到活动错误标志后发送“错误认可标志”。(4)超载帧由

25、超载标志和超载分隔符组成。超载帧只能在一个帧结束后开始。当接收方接收下一帧之前,需要过多的时间处理当前的数据,或在帧问空隙域检测到显性电平时,则导致发送超载帧。(5)帧间空隙位于数据帧和远地帧与前面的信息帧之间,由帧间空隙和总线空闲状态组成。帧间空隙是必要的,在此期间,CAN不进行新的帧发送,为的是CAN控制器在下次信息传递前有时间进行内部处理操作。当总线空闲时CAN控制器方可发送数据。2.1.2电气参数及信号表示总线上的数据采用不归零编码方式(NRZ),可具有两种互补的逻辑值之一:显性及隐性。CAN总线中各节点使用相同的位速率。它的每位时间由同步段、传播段、相位缓冲段1及相位缓冲段2组成。发

26、送器在同步段前改变输出的位数值,接受器在两个相位缓冲段间采样输入位值,而两个相位缓冲段长度可自由调节,以保证采样的可靠性。另外,CAN总线采用时钟同步技术来保证通讯的同步。2.2 系统方案选择2.2.1CAN控制收发模块方案CAN总线节点由主控微处理器加上CAN控制、CAN报文收发模块组成,用到该模块的组合有很多种,从微处理器的角度大概分为两种方案:方案一:常规优势CAN公共汽车等独立控制的微型计算机的老毛病,电路的设计SPI巴士不仅通过更复杂的相对独立的CAN控制器SJA1000 CAN模块集成芯片不是MCP2515的双向通信。主MCU作为最普遍使用的老单芯片51单片机。一般使用的艺术情节A

27、T89S 52、国内宏观水晶技术企业STC系列所生成的51内核微控制器。方案二:使用内置CAN收发模块的单片机,例如意法半导体的STM32、美国微芯公司生产的C8051F系列、NXP的LPC系列等,这种方案的优点是芯片集成度高,电路设计简单,缺点是代码不可移植,但是由于内置了CAN模块,也有提供专门的CAN通信源代码。两种方案主要区别于主控单片机是否有集成CAN通信模块,而无论集成内置模块与否,在通信端都需要连接CAN收发器芯片,CAN收发器芯片主要有TJA1050、82C250、MCP2551等。两种方案在功能上、成本上相差不大,各有千秋,本次设计采用以STM32F103VBT6单片机为核心

28、部件,以单片机内置CAN总线模块作为CAN通信控制单元,TJA1050作为CAN收发器的组合作为CAN节点模块设计方案。 2.2.2直流电源电路方案选择方案一:采用LM7812作为+12V直流稳压管,LM7805作为+5V直流稳压管设计直流稳压电源为系统供电,LM78系列稳压器价格低廉,适用于多种场合的稳压电源电路,且输出稳定性较好、使用起来非常方便、具有输出过流、过热的自动保护功能,但是稳压器要求压降较大,输入输出压差至少要有3V,输出电流峰值才1.5A。方案二:采用TI公司生产的LM2596S系列的开关稳压器作为直流稳压元件,LM2596S系列开关型稳压器的输出线性很好并且负载可以调节,电

29、流输出最高可以达到3A,功耗小,效率高,价格也不贵,更具TTL断电功能。方案三:采用分立元件三极管加运放来设计开关型直流稳压电源,电路设计简单,但是稳压效果不稳定,由于负载电阻变化时影响LC滤波电路的绿波效果,因而采用分立元件设计的开关型稳压电路不适用于负载变化较大的场合。 终上所述,在本课题设计时选择方案一作为本次设计的电源电路设计方案。 2.2.3电机驱动模块的选择电机驱动,就是模拟控制车窗的部分,方案从电路层面主要有分立元器件跟集成芯片两种:方案一:分立元器件,即使用继电器模块控制,由于电机部分要求按照汽车上的标准12V供电,于是单片机输出通过控制继电器的通断来控制电机。由于要正反转,需

30、要两个继电器的交叉转换实现控制,比较麻烦。方案二:用集成芯片,使用常用的电机控制芯片L298N对其进行控制,L298N具有功率放大的功能,可通过公共地输出来测量输出电压,通过判断电压是否在正常值来判断电动机的工作状态。方案一虽然成本低、电路简单,但是课扩展功能少,缺乏控制的实施性,而且在过流检测部分实现起来比较麻烦,方案二为成熟模块,资料多,便于操作,故采纳方案二,使用L298N对车窗的电动机进行控制。2.2.4键盘操作电路选择方案一:采用独立按键作为操作控制按钮,独立按键编程简单,但是使用多按键时程序较繁琐,每个按键需要占用一个I/O口,浪费单片机资源。方案二:采用4x4矩阵键盘作为系统操作

31、按钮,矩阵键盘虽然电路较复杂,但是编程不是很复杂,16个按键也才占用8个I/O口。终上所述,本课题在设计时采用方案一中的矩阵键盘作为系统操作按钮。2.3 系统总体实施方案系统总体模块框图,如图2-1所示:图2-1系统总体框图系统的基本原理是主节点芯片控制的传输和发送接收到从节点了。主节点的CAN协议及节点中的双向传递,上述主节点的多个开关的开关控制的。主节点的本地窗口升降机殿下更全面部左侧驾驶,节点的节点总数的主窗口左侧前方为手段,视窗元件同步的所有节点控制。一些并且窗口的状态监测,显示主节点上重新CAN公共汽车通过错误监控、故障信息为视窗驱动马达,通过芯片的数据传输信息的节点从CAN传到了微

32、型计算机的控制。驱动器电路监视电动机的电流检测电阻两端的电压检测,压力下降及上述电动机的电动机启动电流和串联电阻电流传感器检测到小的电阻值。达到临界值的读出电阻上的电压设置之前,马达总成传感器达到临界值下降运行。马达检测窗口的位置,停止旋转。窗口到达最终位置测量的情况,说明障碍窗口,窗口自动回到初始位置。窗口的位置窗口是预定义的限制达到的位置决定了压电传感器、电压而产生的压力的装备这个窗口实时控制。3 硬件设计与实现3.1 元器件介绍3.1.1 STM32F103单片机 STM 32系列是高性能、低消耗的要求专门为基于电力林的应用程序特别ARM核心材质M3设计。按内核架构分为不同产品:其中ST

33、M32F1系列有: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协议控制器和物理总

34、线接口。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针

35、包使用。主要特点是:高电压、最大输出到46V电压,电流瞬时峰值电流到3a,也2A的连续运转电流、额定25W。在两个控制端使用的标准逻辑电平信号控制,特区马达和行走者马达继电器诱导性、线圈等部驱动可用于两个H桥,电压及古典类草桥驱动装置,包括影响或逻辑电源输入,低电压内部逻辑电路部分中,外部输入信号的检测重新控制电路的电阻变化量。两个特区马达驱动芯片上行走者2 4相步进电机、器马达驱动芯片L298N使用马达驱动。图3-6 L298N芯片实物图及其封装L298N芯片的主要指标:n 主要芯片:L298N、光电耦合器n 尺寸:80mmX45mmn 工作电压:控制信号直流5V;电机电压直流3V46V(建

36、议使用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所示

37、,低速外部时钟引脚接了一个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组数字电源,所

38、以在数字滤波电路设计中采用11个104(0.1uF)的电容滤波,数字滤波电路如图3.2所示,在设计PCB时每组数字电源对应一个滤波电容,由于刚上电时,电源电流不稳定,通过电容滤波,可以避免高压脉冲引起STM32误动作,在电源端加图3.2 数字滤波电路上滤波电容,可以得到更平稳的电源,减少电源干扰,使芯片的工作状态更稳定。3.2.2 直流稳压电源电路设计整个系统中需要用到+12V直流电源,+5V直流电源和+3.3V直流电源供电,所以直流稳压电源电路设计部分主要包含三个稳压部分,电机驱动电路需要12V的电源,在L298N的电机驱动电路中,+12V电源由直流稳压源提供。LM7805稳压管将12V电压

39、转换为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独

40、立控制器之间加光耦以做光电隔离作用,此次设计未用到上述措施,由于设计比较简单,简化了电路。其中R4为120欧的电阻,在多节点通信是并在首尾节点的CAN总线接口两端。3.2.4 电机驱动部分L298N电路 电机驱动模块主要的电路组成部分由驱动芯片L298N的电路、比较器LM393电路、电源转换电路组成,L298N电路中,采用L298N芯片的A通道,即导通IN1、IN2、OUT1、OUT2这两路。OUT1、OUT2接电动机模块。其两端并联一个104的瓷片电容。IN1、IN2两个引脚接单片机的IO口,由单片机输出的电平控制其正转反转,此通路的使能端ENA也接单片机的IO口,当遇到问题的时候(如夹手、

41、车窗转动到头时)关断使能端,使得电机停止转动。而两个输入端无法对其进行控制。图3-11 电机驱动模块电路 本次设计中需要实现防夹功能,根据电动机的原理,当其停止转动但两端仍有电流通过时,其输出的电流会增大,在L298N芯片控制的电路中,由第1、15引脚分别对应两路输入输出端的输出,在其管脚与地之间串联一个检测电阻,通过该电阻可以实现过流过压检测。3.2.5 键盘输入电路 键盘是计算机不可缺少的输入设备,是实现人际对话的纽带。键盘可以分为:独立键盘和矩阵键盘两种。独立键盘与单片机连接时,每一个按键都要占用单片机的一个I/O口,由于本系统需要较多按键,使用独立按键就需要占用过多的I/O口资源。单片

42、机的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模块程序软件设计C

43、AN控制器是根据总线上的两根线的电位差来判断总线的电平的。CAN总线的电平分为显性电平和隐性电平两种,显性电平对应逻辑为0,两根线的电平差约为2.5V,隐性电平对应逻辑为1,两根线的电平差为0V,总线只能是一种状态,不是显性电平,就是隐性电平,发送端通过让总线的电平发生改变,然后将数据发送给接收方。STM32自带的是bx-can,即基本扩展CAN。它支持CAN 协议2.0A 和2.0B。CAN发送流程为:程序选择1个空置的邮箱(TME=1)然后设置标识符(ID),设置数据长度和待发送数据,接着设置CAN_Tier的TXRQ位为1,最后请求请求发送邮箱挂号(等待成为最高优先级)预定发送(等待总线

44、空闲)发送邮箱空置。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 的初

45、始化,该函数带有 5 个参数,可以设置 CAN 通信的波特率和工作模式等,在该函数中,我们设计滤波器组 0 工作在 32 位标识符屏蔽模式, 从设计值可以看出,该滤波器是不会对任何标识符进行过滤的,因为所有的标识符位都被设置成不需要关心。第二个函数,CAN_SendMsg 函数。该函数用于CAN报文的发送,主要是设置标识符 ID等信息,写入数据长度和数据,并请求发送,实现一次报文的发送。第三个函数,CAN_Receive_Msg 函数。用来接受数据并且将接受到的数据存放到buf 中。can.c 里面,还包含了中断接收的配置,通过can.h的CAN_RX0_INT_ENABLE 宏定义,来配置是

46、否使能中断接收。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),该函数的功能就是用来

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号