基于STM32单片机的汽车远程监测系统_第1页
基于STM32单片机的汽车远程监测系统_第2页
基于STM32单片机的汽车远程监测系统_第3页
基于STM32单片机的汽车远程监测系统_第4页
基于STM32单片机的汽车远程监测系统_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

-1-第1章绪论1.1课题研究目的及意义汽车的高速发展,也是因为现代人们的生活水平快速提升。人们的生活水平提升就带来了对生活品质的更高的需求。而作为汽车的选择,不仅仅是看汽车的动力指数,还要看他的功能性,很多汽车的实用性功能也是人们所要关注的。最开始的汽车动力,汽车的安全性还有驾驶的舒适性,这都是人们要考虑的东西。同时也给人们带来了很多的选择。汽车的高速发展,还有各个汽车公司的进行产品的竞争设计,汽车产品的功能也是从最开始的照明,还有自动雨刷这些基础功能,逐渐的发展成刹车的防抱死功能,主动刹车功能,还有无钥匙进入功能,还有汽车的自动泊车功能,座椅的加热功能,座椅的通风功能,座椅的按摩功能等等,这些功能都主要是为了提升功能汽车的品质生活,提高产品的核心竞争力。所以现在人们对可以使用手机进行检测汽车的各种数据,这样就可以不用人到汽车内就可以得到各种信息。1.2国内研究现状最近由于国际局势的大环境,以及科技的发展。新能源领域上,新能源汽车的发展也搭上了智能化的春风。现在新能源汽车在国家的政策扶植下,我国的新能源汽车发展的速度很快,逐渐的成为了世界的领军地位[1]。我国的新能源汽车,以及汽车的智能化发展已经是处于遥遥领先的地位,在智能汽车的驾驶辅助领域上,以L2级别的驾驶辅助技术应用最广,据相关数据预测,当到2025年的时候,我国的L2驾驶辅助技术渗透率能达到50%艺术,到2030年车路协同将成为一个万亿级别市场[2].在最近的中国汽车研究大会上,各方学者专家都对我国的智能领域汽车发展方向提出自己的畅想,我国的信息研究专家介绍,我国目前已经上路的L2辅助驾驶技术已经上路的汽车就能达到800万台以上,这个市场的渗透率能达到30%以上[3]。证明我国对于辅助驾驶技术的认可度还是很高的,同时也证明我国市场领域具有很大的输出空间。同时根据我国的乡村和住房建设司副司长所说,我国已经在16各城市进行2000对个重点道路的设置,也进行相关的全自动驾驶,也就是人们所定义的L4驾驶。L4的驾驶是完全可以进行无人驾驶的技术。目前已经累计测试超过2700万公里,为了以后的更加智能化打下了基础[4]。1.3国外研究现状在西方发达国家的科技发展当中,对于自动驾驶技术的研究是很早就开始。首先提出的是美国进行自动驾驶技术,美国想要实现无人驾驶技术,这样无人驾驶汽车可以进行自动驾驶[5]。但是最开始的时候,由于人们对于无人驾驶的不信任,所以对于无人驾驶汽车的技术只停留在理论研究,并没有进行实际测试。但是随着科技的发展,以及高速公路的普及,因为高速公路大家都可以用很快的速度进行行驶,而且在高速公路上的车况很少,十分有利于无人驾驶技术的使用[6]。所以在80年代的时候,美国的很多大学都进行相关研究,尤其是美国的卡耐基梅隆大学进行自动驾驶技术设计,在当时已经成功的进行了5000km的实验。而且整个测试过程可以是十分完美的,也给后续的安全测试打下一定的基础[7]。意大利的科学家也进行了相关的无人驾驶技术开发。意大利的科学家进行设计无人驾驶智能汽车进行了2000km的测试。而且无人驾驶的里程也达到了好多的占比[8]。而且美国的智能计划由国防部提出的并且进行了相关的设计,在这个设计当中计划生产数十台无人驾驶的汽车在日本进行测试,同时日本的自动驾驶技术也是通过这次无人驾驶进行了相关提升。通过参与这次测试,日本也将本国的自动驾驶技术提升了一大步。而且在后期的整车调试也得到了核心的技术[9]。韩国的无人驾驶技术也是走出了自己的特殊,通过颜色识别,图像识别进行了相关环境的数据采集,可以实现汽车的自动避障功能,交通信号的自动采集功能。同时无人自动驾驶技术也是进行了多次的测试,每次测试结果还是很令人满意的[10]。同时,对于汽车的智能化,还设计了对于汽车的各个传感器数据进行统计的能力,这个数据的检测,这样当汽车出现相关问题时就可以及时的进行解决[11]。智能汽车控制系统是当前汽车市场的热门话题,其核心技术是芯片技术。为了满足市场需求,各大芯片厂商加强了对汽车控制芯片的集成化专用化研究[12]。目前,生产汽车控制芯片的厂商主要集中在国外,包括恩智浦公司(NXP)、微芯公司(Microchip)、德州仪器公司(TI)、艾特梅尔公司(Atmel)等半导体芯片公司[13]。其中,恩智浦公司(NXP)是最早提出智能汽车控制芯片技术方案的公司,其技术方案采用PCF7952或者PCF7953为车控制的微处理器芯片,提高高灵敏度的信号接收器,支持低功耗的8位简单指令集,并且对数据信息的传输提供加密解密技术。然而,该技术方案成本较高,市场占有率较小。现在,智能汽车控制系统已经成为汽车控制研究领域的热点之一[14]。同时智能驾驶技术的芯片还有新的安装技术,不仅仅是给使用者带来了利好,也给各大车商带了重大利好。因为通过新技术的引用,可以减少成本,从而获得更多的利润[15]。我国的电子信息技术这些年得到了高速的发展,使得我国的电子信息技术与国外的差距越来越小,尤其在软件的设计方面,我国与国外的设计技术甚至已经完成了反超,但是在硬件制造领域上,我国与国外还是有不小的差距距[16]。尤其是硬件的制造能力,我国国内优秀的厂商已经可以设计出更好的芯片,但是由于国能的制造厂商没有办法满足国内设计的硬件制造水准,所以这个成为了我国过能厂商的弊端,而且国内的新能源新希望汽车制造厂商与国内高效的联系也不紧密,尤其是我国的顶尖大学,往往得不到汽车厂商的支持,使得我国国内高校得不到一手的设计信息,也导致国内大学没有足够的资本去进行研究,同时汽车厂商也拿不到最新的技术进行产品升级,这样就进入了各种怪圈,而且当科技技术没有提升上去,我国国内厂商就不得不陷入高成本买技术的境地,这样国内的汽车成本完全讲不下去,也导致我国国内新能源车企没有国外汽车具有品牌的竞争力[17]。1.4本设计研究主要内容本本设计采用以STM32单片机为基础,使用传感器和无线通信技术,设计一个汽车远程监控管理系统:通过震动检测车辆是否被毁,通过传感器检测车门是否关闭,车床天窗等是否关闭,通过压力传感器检测汽车胎压,定位监测、以无线的形式传输到手机APP中,同时还设置了一键报警求救功能,当车内有情况时,一键报警,会在APP中提示。第2章技术选择2.1单片机的选取方案一:STC89C51单片机STC89C51RC是一款高性能的单片机,它的内核采用的是8051,,最高工作时钟频率可达80MHz。该单片机内置4KBytes的Flash只读存储器,可进行1000次重复擦写。同时,STC89C51RC兼容标准MCS-51指令系统和80C51引脚,内部集成通用8位中央处理器和ISPFlash存储单元。此外,STC89C51RC系列单片机以8051为核心,采用高速低功耗8051单片机,采用全新的流水线/精简指令集结构,内置MAX810专用复位电路,具有出色的性能表现。方案二:STM32F103C8T6单片机因为STM32系列单片机的内核采用的是ARM公司的基础内核,所以它的功能效率更加优秀,而且由于内置的高性能内核,使得它可以32位的工作模式。而且还具有以下的特点:1.串行单线JTAG调试口下载接口具有十分常见的JTAG调试口,这个调试口可以采用在线调试的功能,而且利用单片机的内部电路可以十分方便的进行调试,而且调试工具在市面上很容易就能找到,价格低廉。2.丰富的通信接口STM32是一款功能强大的单片机,不仅支持SPI串口通信,而且具有3个SPI接口,每个接口速度都非常快,可以快速传输大量数据。此外,STM32还支持DMA,用户可以通过软件进行相关配置,无论是SPI还是I2C传输,都可以完美地完成数据传输。另外,STM32还支持外部SD卡的数据存储和读取。此外,STM32还具有5个USART接口,可以构成与外部数据传输的重要接口,通信波特率可根据实际需要进行设置,并且支持DMA。在本系统中,STM32与许多外部模块相连接,例如GSM/GPRS模块、GPS/北斗模块、摄像头模块、RTC模块、CAN总线模块以及两个主控芯片ARM之间的通信等等。3.丰富的IO口资源STM32单片机的IO口也是十分丰富的。包括了各种功能的I/O口。各个引脚口是单片机与系统外围电路信息传递的重要接口。这些IO口可以通过高低电平进行相关的数据传输。同时因为STM32具有相当丰富的配置库,可以根据功能不同进行不同的配置,例如可以进行上拉配置,也可以进行下拉配置,也可以进行悬浮配置进行等待数据的输入。同时因为每个IO引脚都可以输出5V,这样一些不需要很大电流的工作硬件,就可以使用IO口提供一个安全的5V电压进行供电。在本文当中,就采用了很多地方,想蜂鸣器的控制,各个电源控制,都是使用了IO口的供电功能。4.定时器和看门狗功能STM32具有很强大的定时器和看门狗功能,这些功能都是STM32的巨大优势。这种优势表现在他具有8个定时器,其中1,8计时器的功能室特殊计时器的功能,2-5是通用计时器,6,7是专用的计时器,而且通用定时器还具有分频器的功能。将定时器的检测位数进行尽可能多的分频,由于STM32的功能限制,加上分频器的功能进行辅助,可以完成从1到65536之间任意进行分频。同时虽然有这么多的定时器,但是每一个定时器的功能都是独立的,完全不受任何一个定时器的感染。同时每个定时器都是用来进行设计单片机输出PWM波形,或者其他的控制信号。同时STM32也具有两个看门狗,看门狗的功能就是当系统出现问题,人没有及时发现的时候。看门狗程序就会自动的重新启动程序,防止系统出现不可靠的结果。5.快速的中断处理通过以上详细的说明,结合整体的功能与现实环境。选用方案二进行系统的设计,因为STM32F103VC是具有很多优点,相比较于STC89C51的处理速度以及可靠性上都有很大的优势。图2.1STM32单片机实物图2.2显示模块的选择显示器方面,在显示模块上有两种方案可以选择,一种是常用的LCD显示模块,一种是最近比较流行的OLED显示模块,这两种显示模块各有各的优缺点,具体信息如下:方案一OLED显示模块:OLED显示模块,又叫做有机发光二极管,他是近几年被研发出来的新型显示模块,具有可以自发光,不需要背光调试的有点。而且由于可以自发光,所以他的发光角度宽,显示的亮度更加的优秀,同时因为不需要背光进行调节,可以大幅度的减小显示模块的厚度。而且使用的温度也不苛刻。现在受到越来越多人的喜爱。但是OLED也具有造价过于昂贵的特点,因为它采用的材料更贵,造价就更贵。虽然它的自发光优点可以大幅度的提高显示分辨率,但是将它使用在大屏幕的时候不仅成本是跟高,显示的效果缺没有LCD显示的效果好,方案二LCD1602显示屏:LCD的显示原理就是利用电压去驱动液晶电路进行排序,根据不同的驱动信号,液晶分子就可以按照人们想要的顺序去排列。当然为了能使得显示的图片更加清晰,就一定要增加透光遮光的显示层,这个现实层一般是采用三色的滤光层进行显示。通常情况下,根据液晶分子可以自由流动的特点,通过电压给分子进行相关激励,这样液晶就会产生一个光学的显示。当电压扯去以后,液晶分子还会回到原先的状态,这样就可以反复的去显示数据。LCD显示屏具有一下的优点:1.显示质量高LCD显示模块的显示亮度是恒定的,而且布局合理,显示的状态也不是频闪的,对人体去识别十分具有优势。2.数字式接口LCD1602显示的数据可以通过数字信号进行传输,这样的优点就是传输的数据准确,而且与单片机链接十分方便。3.体积小、重量轻整个显示屏的体积可以控制到很小,这样使用起来就很方便。而且因为体积小导致它的重量也很轻。4.功耗低因为液晶的驱动耗能特别小,而LCD1602的主要耗能就是通过驱动液晶耗掉的,所以完全可以说液晶显示电路的功耗特别低。通过对比可以发现,虽然OLED显示屏的技术更加的先进,但是由于本系统追求的是更好的适用性,所以LCD1602具有不可替代性。它的功耗,它的易用性,它的成本低,都是趋势本系统选择的原因,实物图如图所示。图2.2LCD1602实物图2.3开关控制模块的选择方案一步进电机:而步进电机由于其精度高、步长高、精密运动控制好等优点,在机械手臂等精密控制领域得到了广泛的应用。通过对该方案的具体情况进行了分析,认为该方案是一种高精度、低转速的控制方式,采用步进电机对其进行精密的控制,确保了其稳定、准确的转速控制。方案二直流电机:直流电机根据命名规则可以知道,直流电机就是通过直流电供能的电极,直流电极是最常用的电机之一。他可以讲电能转换成机械能,主要的工作原理就是因为电流可以产生对应的磁场,在把电线放在两个磁铁之间,这样当通电的导线具有磁场以后,就会进行旋转,这样就把电能转换成机械能。根据不同的激励方式,可以将直流电极分成自激励,它激励,还有永磁体这三大类。同时根据是导电线圈转动还是磁铁转动也分为,定子,转子,磁体等器件。最后,本文将两种方法进行了比较,得出结论:采用二种方法,其稳定性较好,较适用于本系统的设计。图2.3直流电机实物图2.4按键模块的选择型号一:小型自锁开关自锁开关就是每一次都会固定状态,按下去以后它自己就锁上了。就不会改变它自己的状态,除非再次按下,这样就会改变一次状态。这种按键最常见的就是电源开关,因为电源开关要一直保持原有的状态,那么自锁开关就完全符合这个需求。我们常见的插排当中的那个电源开关就是自锁开关的一种。图2.4自锁开关实物图型号二:小型微动开关微动开关的功能和自锁开关正好是反过来的。微动开关按一次就有一个改边信号,除非一直按下去,不然它就立刻变回原有状态,一般这个原有状态就是开的状态。它一般是用在按键电路当中。因为按键电路是通过识别被按下的次数,来完成固定的功能,那么它就可以完美的完成这个功能,将微动开关与地想链接,按下一次就会有一个低电平信号触发。图2.5微动开关实物图经以上介绍,按键系统是单次触发的,每一次按下都要使得单片机可以接受到信号,所以采用方案二微动开关。2.5报警模块的选择方案一:5V扬声器扬声器是一种将电信号转换成声音信号的装置,这种装置被广泛的应用正在声音信号的输出。主要的工作原理就是利用不同的电压信号去激励纸盆进行振动,这样纸盆的振动就产生了声音信号。产生信号的好坏主要是和纸盆的好坏,还有电信号的处理状态有关。图2.6扬声器方案二:5V蜂鸣器蜂鸣器的声音转换原理和扬声器是差不多的,也是将电信号转换成声音信号。区别是蜂鸣器的显示声音并不是已显示清晰的语音为目的,是已显示高昂的,引人注意的音调为主要目的,所以它被经常用在各种报警电路当中。图2.75V蜂鸣器实物图以为报警电路主要是发出声音提示用户系统出现问题,对于发出声音的具体内容并不是很重要,所以在选择报警设备上,选择了方案二,作为报警模块。2.6震动传感器的选择图2.8震动传感器如图2.8所示,振动检测模块主要是通过检测导针与振动轴是否接触到。当它接触到的时候就是代表此时没有振动产生,只要有振动产生那么振动轴就会发生振动,那么就不会与导针A或者B链接,那么整体电路就是断路。这样系统就可以检测到整体发生了振动。整个振动传感器的工作原理很简单,但是使用起来确实是很方便。本方案采用的就是这种工作原理的震动传感器模块。2.7车门车窗检测模块的选择车门是否关闭可以采用限位开关进行检测,因为当车门关闭的时候,就可以驱动限位开关闭合,这样只要检测限位开关的状态就可以确定当前车门是否关闭。下图为限位开关的实物图。图2.9限位开关车窗检测是否关闭,再采用限位开关就有一些不合适,因为车窗的横截面积比较小,去挤压限位开关可能会出现误触发或者不触发的可能。所以在车窗和天窗是否开合的模块选择,就采用了更加稳妥的方案,采用光电开关进行识别是否关闭。下图为光电开关的实物图。图2.10限位开关2.8胎压检测模块的选择由于胎压就是轮胎内的气压,所以选用了可以检测到气压的检测模块,这款气体检测模块具有高精度检测效果。采用的是最常见的DIP封装,这款封装型号是可以讲芯片的引脚完全表现出来。同时芯片内部集成了大量电路,例如压力传感器,以及对于压力传感器的检测电路,信号处理电路。甚至还内部封装了一个处理芯片,用来处理当前检测到的压力信号。这款压力传感器是被广泛的应用在各种检测压力的领域上,例如胎压检测,握力检测等。图2.11胎压检测模块2.9汽车定位传感器的选择根据功能的设计,要选用一款可以定位汽车的模块。方案一,采用我国最先进的北斗定位系统,我国的北斗定位系统不仅具有更高精度的定位能力,还具有更快的反应速度。而且北斗定位系统现在被用在多设备的定位上。定位系统的本质就是对当前位置的具体定位。工作原理就是通过接受响应的卫星信号进行位置的判断。同时定位模块的工作难点主要是集中在对于信号的传输过程,信号的传输过程决定了当前定位的准确℃。通过三个以上的卫星传递过来的信息就可以进行相关位置的确定。确定的信息包括经纬度,高度,当前时间等信息。每一个信息都是通过系统对于当前卫星发来的信息进行的相关计算。方案二,选用GPS定位模块(VK2828U7G5LF模块)这款定位模块在网上有广泛的应用,而且资料更加的完善,所以选用该模块作为汽车定位传感器。图2.12VK2828U7G5LF模块2.10WiFi模块的选择最常见的WiFi模块就是ESP8266,这款WiFi模块是市面上最常见的应用最广泛的WiFi模块。这款WiFi模块功耗低,性能好,被经常用在需要用到WiFi通讯的模块上。例如智能安防的信息传输,智能楼宇的用户交流,智能家居的远程联网,这些都是使用这款WiFi模块。同时它也在小小的模块当中集成了超级多的功能。集成了一个32位的单片机进行数据的处理,同时也有数据传输和接受的天线。对于标准的数据传输协议也是完全满足的。同时网上的链接协议站都是最全,最新的。使用者可以通过这个WiFi模块,将它的系统连接到网络当中。同时它也具有一下的优点。(1)工作电压满足3.3V就可以工作;(2)引脚的输出最大电流可以达到12mA;(3)NRST引脚的输出规则可以进行自定义,即可以定义低电平有效,也可以定义高电平有效;(4)同时WiFi模块还具有升级的功能,可以通过识别引脚的高低电平,来进行识别当前的工作模式。(5)还具有与外界通讯的功能,下图为WiFi模块的实物图。图2.13ESP8266模块2.11开发环境介绍程序是使用Keil5软件进行的软件设计,这款软件是嵌入式单片机最常用的软件之一,如图2.14所示。图2.14keil5软件编程界面系统总体设计3.1整体的方案设计整体方案是通过单片机作为主控芯片,这样根据单片机将各个模块检测的数据进行分析,然后再将检测的数据进行相关分析与处理。这样就可以实现将汽车的相关数据传输给手机app。具体工作内容是:通过震动模块检测汽车是否发生移动,通过车门检测模块检测当前车窗状态,通过胎压检测模块检测轮胎的胎压,通过定位模块检测汽车的位置,通过按键模块进行系统的设置。这些数据传输给单片机以后,单片机进行处理数据,并且将这些数据传输给显示模块,当检测到某些数据超出设定值,单片机就会触发报警模块,以及可以通过天窗驱动进行控制天窗开关,也可以通过车门驱动控制模块来控制车门的状态。整体的数据通过单片机与wifi模块将这些数据传输给手机的app当中。下图为基于单片机整体方案设计图。图3.1基于单片机整体方案设计图3.2基本内容本设计采用以STM32单片机为基础,使用传感器和无线通信技术,设计一个汽车远程监控管理系统:通过震动检测车辆是否被毁,通过传感器检测车门是否关闭,车床天窗等是否关闭,通过压力传感器检测汽车胎压,定位监测、以无线的形式传输到手机APP中,同时还设置了一键报警求救功能,当车内有情况时,一键报警,会在APP中提示。主要设计硬件和软件两部分。在硬件设计部分,以STM32作为中心控制单元,负责数据处理和发送。微动开关、光电开关、压力传感器、震动传感器、GPS模块、显示屏等采用相应的传感器以及适合的设计方法。在软件设计部分开发一个App,主要通过App进行控制。同时在App上显示主要信息App通过WiFi热点的形式连接模块连接到硬件部分,通过手机APP可以实时查看检测信息以及控制车窗开关等操作。主要模块及功能如下:车门车窗检测模块:车门用微动开关来检测,车窗和天窗用光电开关来检测,车门、车窗、天窗各一个来替代,来检测当前状态。(1)检测模块的设计检测模块尽可能的选择已有,成熟的模块作为检测模块。因为成熟的检测模块,不仅具有完善的信息资料,而且外围电路的设计也十分简单。同时成熟的检测模块还可以输出准确的数据。(2)按键模块的设计按键模块主要是信号的输入端,起到将使用者想要输入的信息,可以输入到系统内的作用。(3)驱动模块的设计由于系统当中有两个驱动模块,所以就要进行驱动模块的设计。需要选择合适的驱动进行控制车窗和车门。(4)显示方案的设计系统当中要选择合适的显示模块,进行数据的显示。因为根据整体的设计,是需要一个合适的显示模块,将系统所检测的数据,充分的检测出来。通讯模块的设计本文系统当中主要的功能就是可以通过通讯模块与手机进行连接,这样使用者就可以远程的检测汽车当前状态。系统硬件设计4.1显示模块的设计显示模块主要是要将检测到的信息进行显示,根据程序的设计,一共要显示经纬度信息,车辆开关信息,胎压信息,车窗和车门关闭信息。详细的显示程序流程图请参照下图所示。开始开始程序初始化数据接收结束数据显示图4.1显示流程设计4.2震动模块的硬件设计根据上一章震动模块的硬件设计可以知道,电路是将震动传感器的信号放大以后传输给单片机的PB1引脚。所以软件设计当中,只需要识别PB1引脚的电平变换就可以。详细的设计流程图请参照下图所示。开始开始程序初始化采集PB1引脚电压平结束单片机识别图4.2震动检测流程设计4.3车门,车窗关闭模块的硬件设计根据硬件的设计,这三部分的检测模块分别与单片机的PB7,PB8,PC13连接。分别起到的功能是,单片机的PB7-8是车窗,天窗的检测,当这两个引脚变成高电平的时候就代表车窗和天窗是关闭的,反之就是打开的。而单片机的PC13脚检测的是车门的开关,当这个引脚是低电平的时候,就代表此时车门已经关闭。详细的设计流程图请参照下图所示。开始开始初始化检测门窗状态结束报警是否关闭?NOYSE图4.3车窗车门检测流程图4.4胎压检测模块硬件设计由于选用的STM32单片机自带AD转换器,是一个十位转换,分成高八位和低二位。编写程序时,我们首先需要选择相应的通道,打开8路通道,还需要能够清除前一次的数据。当然,十位的寄存器也需要选择相应的移位与或运算。因为传感器本身的系统设计,可以通过查阅硬件手册获得信息,我们是要将检测到的数据,通过数学公式进行相关的校准。因为单片机的最大工作能力,我们最大的测试速度只能达到150mm/s,但是能由于通过AD转换,只能转换成10进制,所以对于150mm/s就需要将数据进行修正,通过计算可以得到,修正的参数为0.147,然后我们就可以将测试程序靠近单片机进行测试,这个测试的过程是得到数据进一步的进行校准,最后经过多次数据的校准,得到准确的计算公式,下图为胎压检测模块软件流程图。开始开始初始化接受数据结束数据转化数据分析图4.4胎压检测流程图4.5定位检测模块硬件设计定位检测模块采用的是vk2828u7g5lf,该芯片采用的也是串行通信的数据传输方式,定位检测模块采用的是数据传输模式。也就是定位检测模块可以检测到当前的位置,然后通过串口进行数据传输。下图为定位检测模块流程图开始开始初始化串口连接结束数据通信图4.5定位检测模块软件流程图4.6天窗,车门驱动模块硬件设计天窗,车门驱动采用的是两个直流电机进行控制,软件的设计主要是通过控制驱动芯片L293D来控制两个直流电机。下图为天窗,车门驱动模块软件设计。开始开始初始化功能识别结束电机正转/反转图4.6天窗,车门驱动模块软件流程图4.7按键模块的设计根据硬件按键功能的设计,在软件上将各个功能进行完善。详细的按键设计流程图请参照下图所示。开始开始初始化结束按键扫描按键识别按键1按键2按键3按键4按键5紧急报警模式切换数据加数据减改变汽车状态图4.7按键流程图第5章系统软件设计软件设计就是为了使得硬件电路可以正常工作的设计,因为不同的硬件采集模块输出的信号也不相同,如果在硬件之间进行信息通讯的话,就会造成很大的麻烦,而将这些信息统一的给单片机输入,然后再通过单片机中软件的设计,进行数据处理,那么就会得到很好的结果。为了维持软件的高效、稳定,通常需要遵守以下原则。1、尽量降低扩展接口与内部各模块之间的复杂度;2、模块之间的独立性应该增强,这样后期维护比较方便;3、当软件系统规模比较大的时候,应该努力提升软件系统的可靠性。当软件的可靠性越高,那么它抗衡问题故障的能力自然也就越强,硬件的可靠性能的影响因素主要是物理作用机理衰变和老化,而软件可靠性的干扰因素最重要的是整体设计与实现。故而,软件的可靠性和耐久性应该在设计阶段就确定下来,生产与测试阶段再考虑就为时已晚了。4、软件系统的健壮性突出了软件设计者的设计能力。

5、易读性是可靠性、可修改性的关键前提。易读性不仅仅指文档清晰明了,关键是要结构简单。这充分考验了软件设计者的观察力、创造力、理解力。6、高效性

,决定高效性的因素主要是代码运行的时间和占用内存的大小。当然,在满足项目需求的情况下,占用内存越小越好。5.1主程序的设计按照系统的功能设计,详细地画出了系统的主要流程。具体内容见下面的图表。开始开始初始化位置检测并显示胎压检测并显示车辆状态检测并显示胎压是否超范围?进行报警继续检测是否超过振动限定?结束进行报警车窗侧门是否关闭?进行报警YSENOYSENOYSENO图5.1主流程图设计5.2WiFi模块软件设计串口通讯(SerialCommunications)是一种简单的数据传输方式,它采用按位(bit)发送和接收字节的方式。与并行通信相对,串口通信只需要一根线传输数据,每次只能传输一个位,因此传输一个字节需要传输8次。单片机的串口(USART)有接收和发送端,其中RX用于接收数据,TX用于发送数据。通过串口通信,两个单片机可以进行数据传输。在WiFi与STM32之间的数据传输中,采用了串口通讯方式。下图为WiFi软件流程图。开始开始初始化串口连接结束数据通信图5.2WiFi检测流程图5.3串口数据调试根据系统的设置,需要将检测到的所有数据通过串口传输给手机,这个时候就要将检测到的各个数据通过系统的软件程序进行设定,这样才可以在手机上正确的显示,根据查阅资料将下列信息进行处理:voidUart_Send_dat(){ uartdat_byte(1,"Data,"); if(Press>999) uartdat(1,0x30+Press/1000%10); else uartdat_byte(1,""); uartdat(1,0x30+Press/100%10); uartdat(1,0x30+Press/10%10); uartdat_byte(1,"."); uartdat(1,0x30+Press/1%10); uartdat_byte(1,","); if(Press_H>999) uartdat(1,0x30+Press_H/1000%10); else uartdat_byte(1,""); uartdat(1,0x30+Press_H/100%10); uartdat(1,0x30+Press_H/10%10); uartdat_byte(1,"."); uartdat(1,0x30+Press_H/1%10); uartdat_byte(1,","); //--压强压强阈值12 uartdat(1,0x30+jing_du/1000%10); uartdat(1,0x30+jing_du/100%10); uartdat(1,0x30+jing_du/10%10); uartdat_byte(1,"."); uartdat(1,0x30+jing_du/1%10); uartdat_byte(1,","); uartdat(1,0x30+wei_du/100%10); uartdat(1,0x30+wei_du/10%10); uartdat_byte(1,"."); uartdat(1,0x30+wei_du/1%10); uartdat_byte(1,","); //--经纬度值34 if(Car.Door==0) uartdat_byte(1,"0,"); else uartdat_byte(1,"1,"); if(Car.Window==0) uartdat_byte(1,"0,"); else uartdat_byte(1,"1,"); if(Car.Sky==0) uartdat_byte(1,"0,"); else uartdat_byte(1,"1,"); //--车门车窗天窗567 if(ShockTime==0) uartdat_byte(1,"0,"); else uartdat_byte(1,"1,"); if(Car.Police==0) uartdat_byte(1,"0,"); else uartdat_byte(1,"1,");//--震动紧急报警89 uartdat(1,0x30+key_set/1%10); uartdat_byte(1,","); //--按键设置10 33 if(Car.State==0) uartdat_byte(1,"0,"); else uartdat_byte(1,"1,");//--汽车状态11 if(Press>Press_H) uartdat_byte(1,"0,"); else uartdat_byte(1,"1,");//--胎压状态12 if(Press_L>999) uartdat(1,0x30+Press_L/1000%10); else uartdat_byte(1,""); uartdat(1,0x30+Press_L/100%10); uartdat(1,0x30+Press_L/10%10); uartdat_byte(1,"."); uartdat(1,0x30+Press_L/1%10); uartdat_byte(1,","); //--压强压强阈值12 if(Press<Press_L) uartdat_byte(1,"0,"); else uartdat_byte(1,"1,");//--胎压状态12 uartdat_byte(1,"\r\n");}第6章系统测试本章重点介绍了本系统的最终测试部分。对各种功能进行测试,并依据实际反馈结果对其进行功能检验。这是最后一步,也是最关键的一步。这一章是对上一章的一次测试,通过实际的生产,以验证硬件和软件的流程是否正确。6.1软件测试Keil5软件在程序编写完成后,可以使用自带的编辑调试功能进行软件程序的检查。如下图箭头所示,当程序编写完成后可以按下箭头所指的第一个按键,对程序进行编译。这个时候,如果程序有没有问题,有问题的话会有多少个,都会在图6.2显示出来。图6.1调试按键图6.2编译结果如图6.2所示,程序的软件编译结果显示没有错误,那就可以将软件进行联合编译,同时输出可执行文件,这个功能就是按下图6.1的第二个按键。此时就会生成一个可以通过USB串口传输给单片机的.Hex文件。下图为联合编译的输出结果。图6.3联合编译输出结果在保存程序输出的文件夹当中,找到STM32.hex文件,将这个文件下载到STM32单片机中就可以了。图6.4STM32.hex文件所在位置6.2实物制作在电路设计中,涉及到的模块通常不止一种,而是包括多个模块,例如传感器模块、单片机模块、显示报警模块等。由于这些模块之间的相互作用和影响,调试过程较为繁琐,不确定因素也较多。为了避免各模块之间的干扰,通常采用分块调试的方法,即将整个电路分成若干个模块进行独立调试,最终再将各个模块组合起来进行整体调试。在电路安装完成后,必须进行以下调试前的检查工作。首先要检查连线情况,包括错接、少接和多接等连线错误。可以直接对照电路原理图进行检查,也可以以元器件为中心逐一检查引脚的连线情况。为确保连线的可靠性,还可以使用万用表电阻档进行连通检查。在检查过程中,还要注意硬件焊接的质量,检测元器件的好坏以及各个硬件模块功能是否正常。这些检查工作的目的是为了确保电路的连通性和稳定性,避免在调试过程中出现不必要的问题。在完成以上检查并确认无误后,方可进行通电调试。但在此之前,务必注意电源的正、负极性不能接反,并检查电源输入端与公共接地端间是否存在短路。这些注意事项的目的是为了避免电路短路或损坏,确保调试过程的安全性和顺利性。在通电调试过程中,需要逐一测试各个模块的功能是否正常,以及模块之间的相互作用是否符合设计要求。如果出现问题,需要逐一排查,找出问题所在并进行修复。只有在所有模块都调试完毕且整个电路运行正常后,才能进行下一步的应用和测试。图6.5实物图6.2.1显示测试显示测试主要是看显示数据是否乱码,同时显示的数据要准确,清晰。根据软件的设计,第一行显示经纬度,以及汽车的当前状态,第二行显示胎压和车窗和天窗的开关状态。请参照下图所示。图6.6屏幕测试图6.2.2按键调节设置通过按键可以进行相关的数据设置和操作,详细的按键检测请参照下图所示。下图测试的是胎压的上下限定。图6.7上限测试图6.2.3车窗天窗检测测试通过两个光电开关进行模拟检测车窗和天窗关闭状态,在测试当中,选用了盒子去遮挡一下亮光光电开关,这样就可以得到车窗和天窗关闭的状态信号,同时也可以在显示屏上显示,测试方法采用将车窗传感器遮挡,天窗传感器未遮挡的情况,具体测试如下图所示:图6.8实物测试图6.2.4胎压检测模块测试根据测试不同压强的结果来证明胎压检测模块正常工作,这里测试的时候采用了针管挤压空气来产生不同的气压进行检测,具体测试图如下图所示。图6.9胎压测试图6.2.5WiFi模块测试根据功能设定,需要将数据通过WiFi传输给手机,同时也可以通过手机对系统进行设置。首先将手机与系统的WiFi进行连接。系统的WiFi名为:TendDaDianZi。连接完成以后打开手机软件“WiFi”就可以看见手机的控制界面,同时按动手机控制界面,系统有相关反应,证明WiFi模块是正常工作的。下图为WiFi的手机控制界面。图6.10WiFi测试图6.2.6天窗和车门驱动模块测试采用了两个直流电机进行模拟驱动天窗和车门,所以对于天窗和车门的具体驱动测试,就是通过驱动直流电机正转反转进行测试。下图天窗和车门驱动模块检测示意图。图6.11驱动模块功能测试总结本课题详细介绍了关于基于STM32的远程汽车检测的相关设计,市面上虽然已经有相关的汽车远程数据检测技术,但由于体积大,成本高等特点,阻碍了大部分消费者的购买欲望,所以,本设计的开发,一方面对单片机今后的发展,不同领域的延伸等等,有着重要的发展意义,同时又对汽车行业起到很大的辅助意义。硬件设备应用到了STM32最小系统板、红外线传感器、气压检测传感器、振动检测模块、显示模块,报警模块,WiFi模块等。在软件的使用上,电路图的绘制应用AltiumDesigner,程序的编译编写应用KeiluVision5。并且还创新的应用了手机app编程软件,将手机端的WiFiapp进行了图形化的设计。本设计采用以STM32单片机为基础,使用传感器和无线通信技术,设计一个汽车远程监控管理系统:通过震动检测车辆是否被毁,通过传感器检测车门是否关闭,车床天窗等是否关闭,通过压力传感器检测汽车胎压,定位监测、以无线的形式传输到手机APP中,同时还设置了一键报警求救功能,当车内有情况时,一键报警,会在APP中提示。参考文献[1]单承赣,单玉峰,姚磊.射频识别(RFID)原理与应用[M].北京:电子工业出版社,2020.[2]邬明宽.CAN总线原理和应用系统设计[J].2021.[3]李罗,卢建刚.KEELOQ加密算法在硬件加密中的应用[J].电子技术应用,2019,32(9):42-43.[4]陈伟,唐厚君,沈会.基于PIC16F886单片机的KEELOQ防盗系统设计[J].电气自动化,2022,34(6):74-75.[5]RajiRS.Smartnetworksforcontrol[J].Spectrum,IEEE,2020,31(6):49-55.[6]RawalA.RFID:TheNextGenerationAuto-IDTechnology-Areviewofradiofrequencyidentificationtechnology,includingitssuccessesandchallenges[J].MicrowaveJournal;Internationaled,2019,52(3):58.[7]AltmanZ,MittraR,BoagA.Newdesignsofultrawide-bandcommunicationantennasusingageneticalgorithm[J].AntennasandPropagation,IEEETransactionson,2020,45(10):1494-1501.[8]ABR,BJT,CSKS.Stochasticmodellingandanalysisofmobilitymodelsforintelligentsoftwaredefinedinternetofvehicles[M].Wiley,2021.[9]OmeizaD,AnjomshoaeS,WebbH,etal.FromSpokenThoughtstoAutomatedDrivingCommentary:PredictingandExplainingIntelligentVehicles'Actions[J].2022.[10]赵烽.KEELOQ加密算法安全性探究[J].信息网络安全,2021(8):29-31.[12]薛巨峰,乔鹏.基于KEELOQ技术的遥控门禁系统的实现[J].电子技术应用,2021,39(2):45-47.[12]程和生.被动门禁系统的设计及关键技术的研究[D].安徽:合肥工业大学,2021.[13]肖军.传感器在汽车中的应用和发展趋势[J].农业工程,2019,12(12):20-21.[14]雷双江.基于BP神经网络的移动机器人循迹控制[J].机床与液压,2020,41(3):99-101.[15]刘海超,刘红旗,冯明,等.智能汽车集成式线控制动系统传动机构优化设计[J].机械工程学报,2022,58(20):11.[16]臧勇,蔡英凤,孙晓强,等.基于可拓博弈的智能汽车轨迹跟踪协调控制方法研究[J].机械工程学报,2022,58(8):14.[17]蔡英凤,俞学凯,陈龙,等.一种基于深度高斯过程的智能汽车动力学预测模型,训练数据获取方法,以及训练方法:,CN202211063588.6[P].2022.#include"led.h"#include"delay.h"#include"sys.h"#include"usart.h" #include"usmart.h" #include"math.h"#include"lcd1602.h"#include"hcsr04.h"#include"exti.h"#include"key.h"#defineBEEPPBout(9)//PB9u8TxData[10];//发送数据数组externunsigned

温馨提示

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

评论

0/150

提交评论