汽车报警系统.docx
汽车报警系统的设计摘要本文所设计的汽车报警系统是一种基于STM32系列单片机芯片以及GPRS的报警系统,该系统能够较为准确的检测到汽车发生的异常信息,并且能够发出报警信号以及及时的反馈给车主,以便做出控制指令。本文介绍了相关模块的硬件电路设计过程,以及相关模块的软件设计流程,该系统能够具有较高的从可靠性与实时性。关键词:汽车报警;STM32;GPRS。ABSTRACT A kind of alarm system of the car alarm system based on STM32 series single chip and GPRS is designed in this paper . The abnormal information of the car can be detected accurately by the system, and the alarm signal can be timely sent to the car owner, in order to make the control command. This paper introduces the process of hardware circuit design and software design of related modules. The system has high reliability and real-time.Keywords:The car alarm system;STM32;GPRS.目录1.前言11.1 本设计的目的和意义11.2 本设计在国内外的发展概况与存在的问题11.3 本设计应解决的主要问题22.系统总体设计与框架图33.系统硬件设计介绍4 3.1.STM32f103c6t8单片机.43.1 SIM800AGPRS模块43.2 指纹识别as608模块53.3 信号采集与控制模块5 3.5 OLED显示模块.64.系统软件设计介绍74.1 指纹识别模块软件设计84.2 OLED程序设计94.3 双向通信控制软件设计105.结论11参考文献12附录131. 前言1.1 本设计的目的和意义近年来现代电子科技的快速发展,人们在日常生活中对于电子产品的需求与要求都越来越高。随着国家经济实力的飞速提高,普通百姓家的生活水平不断得到提升,作为日常交通工具的汽车也进入寻常百姓之家。但是在汽车给我们的日常生活提供交通便利的同时,汽车的使用存在着一个大难题,那就是汽车的防盗报警。如前所述,日常生活中家庭都会用到汽车,而车主对于汽车的防盗性能也要求越来越高,电子智能防盗报警系统也随之应运而生。市场上出现的传统的防盗报警系统的容易被破解,防盗性能较差,而近年来兴起的网络防盗系统误报率较高,反馈周期较长。根据以上分析可知,现在市面上有的汽车防盗系统不能够满足我们用户对汽车报警系统的要求,而且以为汽车报警系统发生误报情况会带来较大的噪声污染,影响周围人的日常生活,因此我们需要设计新型的更为可靠更为环境友好的汽车报警系统。1.2 本设计在国内外的发展概况与存在的问题当今市场上一般使用的汽车防盗报警系统所依据的中心思想就是要在防止汽车被盗方面入手,另一种说法也就是即便考虑盗贼闯入汽车内,也无法把车主的汽车盗走,目前这些报警系统所采用的报警手段包括了如下四种形式:机械式的,电子式的,芯片数码式的,GPS网络报警式的以及车载电话系统报警形式的。1) 机械式防盗报警器该类报警器在当今市场上经常见到,主要包括了两大类,即方向盘锁以及排挡锁,这类报警器所存在的缺点也显而易见,就是防盗功能可靠性较低,每次进行拆装该类报警器步骤比较复杂。2) 电子式防盗报警器该类报警器主要可以分为以下两大类,分别为单向与双向。第一类报警系统的主要功能是,不管所保护的汽车哪一个部件发生了异常情况,该报警器都能给出报警信号以便得到用户的注意。第二类报警器与第一类报警器相比更为直观能够使得汽车的实时情况能够反馈给车主,当汽车报警器发出报警信号时,汽车的实时状况会显示在该报警器的遥控器上面,该类报警器的缺点是有效范围很小仅为200米。该类报警器还存在一个最大的致命问题,问题的根源在于该类报警器所使用的操作方式为电子密码方式和遥控操作方式。在汽车车主用该报警系统的遥控器打开或者关闭车门时,附近的小偷就可以利用接收器来接受遥控器所发出的信号,然后再将该信号破解,就能够达到破解该报警系统的目的,这样一来该报警系统的可靠性出现了致命问题。与此同时,该报警器容易发生错误发出报警信号的情况,影响周围居民。3) 芯片式数码防盗报警器该类报警器是现在汽车报警器发展的新型关键领域,目前大多数的汽车都将该类报警器作为汽车原装报警器。该类报警器采用将汽车发动机,电路以及油路系统锁定的方式,提高系统的可靠性,在盗车贼没有芯片钥匙时,其根本找不到开启该车辆的方法。因为密码采用数字化的形式时可靠性比较高,能够满足可靠性的要求。4) GPS网络式防盗报警系统该类报警器的性能与其他报警器相比最为先进。下面来介绍以下该类报警器的基本工作原理,该类报警器就是将一个小型的GPS系统安装在汽车上面,然后根据无线通讯网络以及GPS中心连接为一个整体系统,这类报警器具有的优势包括定位较为准确,所监测的范围较为大,能够主动报警,报警反应速度较快,失窃车辆召回概率较高,在汽车出现异常情况时能够将报警信息及时的送达车主,退一步说,汽车即便被偷窃,该报警系统仍然能够帮助警方找回的丢失的汽车。此外,该装置在夜间车主熟睡的情况下仍然能够自动监测警情并及时通知车主。该报警装置具有如下优势:能够使得跟踪控制车辆的过程变得较为简单,能够较为高效的找回失窃的汽车。但是与此同时,该类报警器的缺点也比较明显,那就是该报警系统所需要的跟踪系统比较庞大,也需要用户24小时对车辆进行人工监控,与上述报警系统相比价格比较昂贵。以上所述几种防盗报警装置各有优缺点,汽车防盗报警系统正在不断朝着芯片式和GPS网络式发展,这也是本文所重点考虑的设计方向。1.3 本设计应解决的主要问题本文所介绍的汽车报警系统以STM32芯片为控制主芯片,基于GPRS通讯技术,完成车主与汽车的双向交互控制功能,本设计的主要任务如下:能够采样汽车的异常信号,并发出报警信号,在利用指纹识别芯片判别系统使用者身份为车主之后,由车主做出针对车辆异常信息的控制指令,实现双向控制功能。综上所述,本文所设计的电子智能防盗报警系统以STM32为核心芯片,通过相关的传感器以及GPRS网络实现了汽车较为精准的实时防盗报警功能,及时反馈给车主汽车信息,车主得到信息后能够对汽车发出控制指令做出反应,实现了用户和汽车之间的双向控制功能。 2.系统总体设计与框架图本章主要介绍后了本文所设计的基于GPRS的STM32单片机为核心芯片的汽车报警控制系统。本系统所采用的核心芯片为STM32系列的单片机,该类单片机将主要控制部分集成在一个控制芯片上面,这些主要部分包括了中央处理器,随机存储器,只读存储器,中断系统,定时器以及定时器,还有I/O接口。单片机具有所占空间较小,能够完成计算机系统的功能,本文中所使用的单片机主要利用了该芯片的控制功能。图2.1 控制框架图如上图所示该汽车报警系统包括了如下几个模块:给系统其他模块供电的电源模块,利用GPRS业务以及SIM800A芯片模块的GPRS模块,该GPRS模块能够完成信息的传输和发送功能。另外还有振动传感器模块,人体红外传感器模块,as608芯片模块,oled芯片模块以及用于报警的蜂鸣器模块。3.系统硬件设计介绍3.1 STM32F103C8T6单片机现如今的单片机发展太迅速,像之前学习的C51系列的单片机渐渐的退出历史舞台,而本设计使用的STM32单片机,渐渐取代C51系列的单片机的地位,C51单片机能达到的要求,STM32单片机也能达到,并且STM32处理数据的速度比C51单片机快得多。STM32F103C8T6单片机是具有基于ARM的32位微控制器,是通用类型,增强型,具有48个引脚和256k字节的闪存存储器,封装为LQFP,具有32KB存储量。总电源正极接单片机5V电源端口。端口具有通用定时器(TIMx),普通I/O端口,I2C总线端口,SPI串行外设接口,ADC接口等等。STM32单片机的调试端口有两种,一种是SWD,一种是JTAG接口调试,JTAG接口使用最为普遍,现如今基本上都是使用JTAG接口,而SWD一样可以进行调试,并且SWD接线比起JTAG接口少得多,本设计使用到的是JTAG接口。在STM32的外面有4个接口供用户使用,该端口是接连单片机内部的JTAG调试模块上的,用户可以根据需要进行接连调试。STM32F103C8T6单片机是整个系统的中心处理器,就像人的大脑一样,可以命令自己的四肢一样,如果没有单片机,整个系统也运行不起来,本设计钟的单片机的作用是把六个模块连接起来,模块之间根据单片机内的编程代码,可以使得模块之间相互配合运行,以此来满足用户安全性的要求。3.2 SIM800AGPRS模块GPRS 模块所使用的是SIM800a模块,该模块的主要特点介绍如下:1) SIM800A采用高性能工业级GSM/GPRS模块:SIM800A2) 工作频段:GSM900/1800MHZ3) 可以实现电话语音,发送短信和彩信4) GPRS数据传输功能外(支持透传模式,域名解析和IP模式)5) 还具有DTMF解码(可以识别对方按键)6)音频接口:音频的输出和输入接口通过排针引脚,以供用户灵活使用。2)具有TTL串口和RS232串口(USART串口) 8)一路SIM卡接口 9)支持蓝牙功能 该模块的主要参数如下所示:供电:电压范围:5V 18V 频段 :GSM900该模块支持的串行接口形式为8线制,传输速率宽带范围为1.2kbps-115.2kbps。该模块提供了两个异步串行接口,这两个接口分别用于通讯功能和软件调试功能。该模块的TXD发送数据到处理器的RXD上,RXD在处理器 的TXD数据线3上进行数据的接收。在进行SIM800a模块与STM32单片机芯片之间进行数据传输的过程中用到了AT命令。GPRS模块具有标准的SIM卡的接口。在对GPRS模块进行硬件电路设计的过程中需要分为以下几个模块来进行具体设计:该芯片的的供电模块,SIM卡模块,SIM卡模块的开机硬件设计。模块电源可以控制模块的重启,该模块高电平供电,低电平断电,当模块出现程序混乱或者是死机的情况下,可以断开电源的方式进行模块的复位,而且该模块具有上电自动开机的功能,无需使用开关,使用时简单方便。SIM800AGPRS模块在系统中即是输入端也是输出端,用户可以借助该模块控制系统的运作。用户发送信息到该模块上,模块会把信息传给单片机,单片机根据发送的信息内容进行指纹的录入,或者是启动安全模式。而当进入安全模式后,当外界发生异常情况,单片机命令该模块把出现异常的情况以信息的方式发送到车主的手机上,这样的设计使用户控制时更加方便,也便于车主在第一时间作出反应。3.3 指纹识别as608模块指纹识别模块as608传感器主要用于车主身份的识别,在MCU将识别的信号处理之后,经过对该信号的判别即可做出控制响应。下面我们来见到介绍一下数字智能热释电红外传感器AS608的基本原理和主要特性AS608传感器芯片是由AS608指纹识别芯片所制作的指纹芯片,在我们使用该芯片时,厂家已经设计好外围电路,已经集成出了一个指纹芯片,该指纹芯片可以提供二次开发。基于该芯片的指纹识别模块的控制电路与控制协议基本上相同。硬件接口AS608模块采用8pin的控制接口,供电电压为3.3V,通信总线的具体形式分为以下两类,包括了串口通信方式和USB通讯方式;在采用第一种通讯模式下,编程的步骤较为简明,比较常用,但是兼容性能较差;采用USB通讯的模式之下,编程较为困难,但是兼容性较好。在实际控制接线中,该模块的touch引脚接到单片机芯片的普通I/O口上,当检测到有指纹按下时,该引脚触发一个高电平信号;TX,RX引脚接到单片机模块的串口引脚上。需要特别注意的是该指纹识别模块只能使用3.3V 电压供电,不能使用5V电压供电。在单片机对指纹识别模块进行控制过程中,需要基于指纹识别模块所规定的通讯格式,将串口数据进行发送以及处理,另外该指纹识别模块的其他控制功能也必须基于上述的通讯格式来执行。控制指令分为三类,包括了指令包,数据包,结束包。一般情况下单片机将指令包一般指令包发送给指纹识别芯片当中,该芯片在接收到控制指令后,将相对应的数据包返回给单片机;指令包主要包括了包头,芯片地址,包标识,包长度,控制参数以及校验和;数据包与指令包的区别在于将控制参数替换为数据。数据包与结束包的区别在于包标识。AS608指纹模块有两个功能,第一个功能就是录入用户的指纹存于单片机内,而另一个功能就是系统验证是否车主本人的一个依据,当汽车报警系统出现异常后,用户可以使用本人的指纹关闭系统的报警状态。3.4 信号采集与控制模块下面来介绍一下本文所设计的控制系统当中的信号采集模块,该模块利用传感器芯片来将外界对汽车的作用采集起来,然后对这些外部信号进行分辨与检测。在汽车被强行拖车或者打开车门,发生碰撞都属于需要采集的信号,本系统所侧重采集的就是诸如此类的汽车异常信号,因此本系统采用的震动传感器以判别汽车的异常状态。本系统所选用的震动传感器通过内部微球来检测判断汽车车体所受到的震动情况,这里所使用的内部微球起到了如下所用:该微球是两个触点传感器的内部电极相互连接的部分,这样就能够使得两个外部连接垫片电阻的电阻数值下降。汽车发生的异常情况的信息在得到传感器的采集之后,通过GPRS网络由车主发送应对异常信息的指令控制模块电路来实现对汽车的控制。车主对车辆的控制措施当中由紧急报警等具体功能。收集外界信号有两个模块,人体红外传感器和震动传感器,两个传感器均是输出端,是收集外界异常的两个模块,也是触发报警的源头,报警器安全性的高低,很大程度上是传感器的质量,传感器收集数据越准确,报警器的安全性往往就越高,而本设计使用的人体红外传感器和震动传感器也是报警器中常用的传感器。3.5 OLED显示模块 本文所设计的控制系统所选用的显示芯片为OLED芯片,该芯片名称表示有机发光二极管显示器。传统的LCD液晶显示相比本文所采用的OLED芯片而言,诸多性能不如后者。主要包括了,传统的LCD液晶显示需要单独给背光的操作才能够使得显示屏所显示的信息较为明显的呈现出来。另外,LCD显示屏的黑位水平、对比度、厚度、视角、颜色均匀性等方面的性能,与本文所选用的OLED芯片相比较为落后。 本文所选用的OLED显示模块的正常工作维度范围在-40+70之间,内部自带升压电路,分辨率为128*64像素,供电电压在3-5V即可。本文所选用的通信接口方式设置为SPI串口模式。 本文所设计的控制系统当中OLED显示模块采用的通信接口方式为SPI串口通信接口模式。 在该通信接口模式中,STM32单片机与该模块通信依靠排针连接,单片机连接引脚与普通的LCD液晶模块的连接引脚基本一致:在这些连接引脚中必须包括电源引脚与接地引脚,主其他主要的引脚包括了如下几个:CS片选信号;RES复位线;DC数据或指令选择信号;D0为SPI时钟线,D1为SPI数据线等。在控制该模块时,首先需要选择输入的是指令抑或是数据,之后将片选引脚的电位取为低电平,然后将写信号使能设置好,将数据写入到所用到的数据线内,这样就能进行数据的读写操作。因为模块为串行通信,为了与STM32单片机兼容连接,模块中的D0,D1端口需要连接单片机串行口,具体连接是:VCC引脚接系统总电源正极,GND引脚接总电源负极,D0引脚接PA0引脚,D1引脚接PA1引脚,CS引脚接PB0引脚。OLED显示模块主要是显示AS608指纹识别模块上的内部的程序运行,模块上显示的内容可以让车主清楚AS608指纹录入是否成功,识别是否成功,如果没有显示模块,车主并不知道指纹是否传达给单片机,使用时也不知道匹配是否成功,所以该模块是非常方便用户识别指纹录入和识别的情况。4.系统软件设计介绍开始单片机初始化否是否收到信息否否是SIM800AGPRS是否接受到ADDSIM800AGPRS是否接受到SAFE是是启动AS608指纹模块录入指纹启动汽车报警系统否否触发震动传感器,人体红外传感器,AS608指纹识别失败录入指纹是否成功是将用户指纹存于单片机是蜂鸣器发声用户指纹识别成功 蜂鸣器停止发声SIM800AGPRS模块发送信息wrong到用户手机 图4.1软件逻辑流程图系统采用C语言进行编程,然后将编写好的程序写入单片机闪存内。主要控制流程如下所示:首先进行系统的初始化过程,在初始化结束后对系统是否在要转变为警戒状态进行判断;在判断为要转变为警戒态后,将GPRS模块和各种传感器模块进行使能,开启以上功能。在汽车受到外部影响进入异常状态的情况下,系统内部的各种传感器会将高低电平的切换信息进行采集,与此同时,单片机的串口发出响应操作,控制系统将外部异常信息通知车主,并同时通过GPRS网络将所采集到的信息传输给信息中心。在车主得到传送过来的警情信息后,可以立即给出控制指令来对汽车进行控制以反馈得到的警情信息。在该系统中,GPRS模块在启动之后就一直处于循环的问询之下,车主可以据此了解车辆的实时信息,并且据此发出实时指令,所发出的控制指令在经过单片机控制芯片进行处理之后,将其发送到GPRS模块,然后车主再GPRS网络来得到所反映的车辆信息。与此同时,在车主要使用时,可以通过指纹识别系统判别出车主身份。4.1 指纹识别模块软件设计本设计所采用的指纹识别模块的控制软件程序设计包括以下几个环节:录入图像,生成特征,搜索指纹,自动验证指纹,自动注册模板,删除指纹。录入指纹需要在系统中录入指纹信息,需要:录入图像,生成特征,快速查找图像,自动注册模板。程序可分为以下几个具体步骤:1)录入图像指令2)生成特征指令存入指纹图像,存入单片机模块给定的缓冲区号中;3)快速查找图像生成图像后要验证是否在缓冲区号之内4)自动注册模板最后将缓冲区号里面的图像存入Flash里面5)在自动验证指纹录入指纹后,就可以匹配本人的指纹完成身份识别,只许要发送自动验证指纹指令,返回的确认码为0x00,即为匹配成功,不为则匹配失败。6)删除指纹:管理员如果需要删除系统中录入的指纹信息,需要写入删除所需删除的指纹的ID号码,然后发送删除指纹指令即可删除相应的指纹。其具体程序代码见附表中指纹采样代码。具体代码实现的功能:1) 读摸出感应状态2) 判断中断接收的数组有没有应答包3) 探测手指,探测到后录入指纹图像存入ImageBuffer(录入图像)4) 将ImageBuffer中的原始图像生成指纹特征文件存于charBuffer1或charBuffer2(生成特征)5)精确比对CharBuffer1 与CharBuffer2 中的特征文件6)以CharBuffer1或CharBuffer2中的特征文件搜索整个或部分指纹库.若搜索到,则返回页码。7)将CharBuffer1与CharBuffer2中的特征文件合并生成 模板,结果存于CharBuffer1与CharBuffer28)将 CharBuffer1 或 CharBuffer2 中的模板文件存到 PageID 号flash数据库位置。9) 删除flash数据库中指定ID号开始的N个指纹模板10) 删除flash数据库中所有指纹模板11) 写模块寄存器12) 读取模块的基本参数(波特率,包大小等)13)设置模块地址14)模块内部为用户开辟了256bytes的FLASH空间用于存用户记事本, 该记事本逻辑上被分成 16 个15) 读取FLASH用户区的128bytes数据页。16)以 CharBuffer1或CharBuffer2中的特征文件高速搜索整个或部分指纹库。 若搜索到,则返回页码,该指令对于的确存在于指纹库中 ,且登录时质量很好的指纹,会很快给出搜索结果。17)读有效模板个数18)解析确认码错误信息返回信息 代码设置中,每当有新指纹进入时,系统会删除存在flash中的指纹,所以本设计中的指纹模块个数为1,其目的是为了更加方便调试。4.2 OLED程序设计 4.2.1初始化程序设计 本文所选用的OLED模块也需要进行程序的初始化,初始化程序包括了该显示控制芯片的一系列的设置操作,这些设置操作包括了关闭显示、设置时钟分频因子、设置显示偏移、设置内存地址、行列起始地址等。本文编写初始化程序直接参考厂家所提供的源码。 4.2.2 读出数据/指令 进行显示屏模块的读出操作,实际上就是与模块内的控制芯片进行通信。读出的指令遵循的是SPI通信协议。由于OLED硬件的设定,该模块上的DO端口上,接的是SPI的时钟线,而D1端口则是SPI的输出线,是单片机输出给模块的线,工作时,SCK时钟线为上沿时采集数据,时钟为初始状态时为高电平。在传输信号的过程在,模块可以根据SCK时钟线来决定数据线什么时候传输,传输多少信号。本设计中的显示模块与AS608指纹模块结合,显示模块的主要作用是为了显示指纹录入的情况和识别的情况,让用户知晓指纹模块中的运行情况,因指纹模块分为录入指纹与识别指纹两种功能,显示模块设置软件时,也需把两种功能都显示出来。4.2.3 OLED显示模块与AS608指纹识别模块的结合编程 (1)指纹录入:当指纹模块中有指纹生成特征charBuffer1时,显示模块显示指纹正常,而后显示再按一次,当用户再按一次时,指纹生成特征charBuffer2时,模块再次显示指纹正常。上述完成后,指纹模块将会精确对比charBuffer1与charBuffer2中的特征文件,这时会显示模块会显示对比指纹,如果成功,显示模块会显示对比成功,反之则会显示对比失败。上述完成后,指纹模块就会将charBuffer1和charBuffer2生成模块存于charBuffer1与charBuffer2中,当执行时,会显示生成模板,当完成生成模块存入后,显示模块会显示生成成功,上诉完成后,指纹模块将charBuffer1或charBuffer2中的模板文件存到pageID号flash数据库位置后,显示模块会显示录用成功。假如模块启动录入指纹一段时间没有按手指,模块会自动退出录入指纹模式。(2)识别指纹:当录入指纹后,获取图像成功,生成特征成功,以charBuffer1或charBuffer2中的特征文件高速搜索整个或部分指纹库,若搜索到,则显示验证成功,否则显示验证失败。4.3 双向通信控制软件设计车主在接收到车辆异常信息之后需要发出控制指令进行响应,而车主所发出的指令需要GPRS模块进行解析。这一部分的操作主要包括了SMS 的存储操作、读取以及解析步骤。本文所采用的软件代码以 GSM 字符集为 7 位编码,可以将其理解为ASCII 码( ASCII 值小于 80Hex ,因此,Bit8 被忽略) ,在此过程中将下一 7 位编码的后几位依照次序逐次移动到前面,这样就形成了形成新的 8 位编码。然后通过函数的处理,这些固定格式的指令的解析步骤是在 SMS 里完成,得到的解析指令发送给计算机以便其作出响应。另一方面为了得到车主短信的指令,需要对其进行解析,然后利用GPRS模块将这些解析后的短信指令发送到 STM32 单片机处理器,就可以做出响应。 具体编程为:(1) 设置发送指令(2) 设置Sim800a模块发送信息的SIM卡号码(3) 设置模块读取开启添加指纹与开始报警模式,向Sim800a模块上的SIM发送ADD即可开启添加指纹模式,向Sim800a上的SIM卡发送SAFE即可开始报警系统(4) 设置发送消息到SIM卡上的消息格式5.结论本文设计了一种基于STM32系列单片机芯片与GPRS的汽车报警系统,该系统利用了全球移动通信网络以及单片机控制技术。本文分别介绍了该汽车报警系统的硬件设计部分及软件设计部分,采集外部环境对汽车作用所产生的异常信息用到了振动传感器模块,人体红外传感器,利用指纹识别模块判别车主身份,由 STM32 处理器解析GPRS通讯系统传输的信号,这一控制系统能够实现对汽车异常状况的实时监测,车主在车辆发生异常情况时能及时做出反应,提高了该报警系统的实时性能,同时车主也能对汽车进行远程的控制。参考文献1.基于单片机的汽车防盗报警系统设计与实现 期刊论文 宫唤春 - 汽车工程师 - 2018年5期 2.基于LM741的汽车蓄电池低电量报警系统设计 期刊论文 刘方 林素敏 单鱼洋 - 湖北农业科学 CSTPCD 北大核心 - 2019年11期 3.基于STM32单片机实现汽车报警系统的设计 期刊论文 张歆彤 - 电子世界 - 2018年6期 4.基于单片机的汽车防盗报警系统的设计与实现 期刊论文 王文安 - 电子制作 - 2018年10期5.基于STC89C52的汽车智能报警系统的设计 期刊论文 戴庚 - 电子技术与软件工程 - 2018年001期 6.基于单片机的汽车防盗报警系统设计 期刊论文 余亚美 彭森 - 卷宗 - 2017年13期 7.基于GPS和GSM的汽车防盗报警系统设计 期刊论文 杨民生 唐俊遥 肖杰 - 科学与财富 - 2015年9期 8.基于RFID和GSM的汽车防盗报警系统设计 期刊论文 王素青 许根源 - 自动化与仪表 CSTPCD SA - 2015年9期 9.基于单片机的汽车防盗报警系统的设计与实现 期刊论文 曹莉凌 简佳辉 - 电子设计工程 CSTPCD - 2015年15期 10.一种新型汽车防盗报警系统的设计与实现 期刊论文 杨帆 - 电脑知识与技术 - 2015年21期谢 辞 本设计,可以说是人生以来自己做的最难,也是最有挑战的一个项目,从一开始的什么都不懂,到后来慢慢的了解,完成实物的安装,完成编程等等,到最后写的论文,一步一个脚印走来,刚开始的时候真的想放弃了,后来经过朋友的开导,慢慢到网上去了解单片机的知识,从模块的选取到端口的连接,再到逻辑的思考,到最终完成论文。完成这个汽车报警系统,也意味着整个大学生涯,甚至是整个校园时代生涯的结束,这次的毕业设计,也算是在我进入社会之前的一次自我的挑战,让我知道只要有心去做一件事,没什么是完成不了的,谢谢在我毕业设计完成道路上给予我帮助的人,谢谢在我从一无所知,鼓励我渐渐深入了解各项模块的同学,谢谢,谢谢你们!附录电路图设计程序指纹采样代码#include <string.h>#include "delay.h" #include "usart2.h"#include "as608.h"#include "oled.h"#include "beep.h"#include "sim800a.h"u32 AS608Addr = 0XFFFFFFFF; /默认SysPara AS608Para;/指纹模块AS608参数u16 ValidN;/模块内有效指纹个数/初始化PA6为下拉输入 /读摸出感应状态(触摸感应时输出高电平信号)void PS_StaGPIO_Init(void) GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);/使能GPIOA时钟 /初始化读状态引脚GPIOA GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;/输入下拉模式 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;/50MHz GPIO_Init(GPIOA, &GPIO_InitStructure);/初始化GPIO/串口发送一个字节static void MYUSART_SendData(u8 data)while(USART2->SR&0X40)=0); USART2->DR = data;/发送包头static void SendHead(void)MYUSART_SendData(0xEF);MYUSART_SendData(0x01);/发送地址static void SendAddr(void)MYUSART_SendData(AS608Addr>>24);MYUSART_SendData(AS608Addr>>16);MYUSART_SendData(AS608Addr>>8);MYUSART_SendData(AS608Addr);/发送包标识,static void SendFlag(u8 flag)MYUSART_SendData(flag);/发送包长度static void SendLength(int length)MYUSART_SendData(length>>8);MYUSART_SendData(length);/发送指令码static void Sendcmd(u8 cmd)MYUSART_SendData(cmd);/发送校验和static void SendCheck(u16 check)MYUSART_SendData(check>>8);MYUSART_SendData(check);/判断中断接收的数组有没有应答包/waittime为等待中断接收数据的时间(单位1ms)/返回值:数据包首地址static u8 *JudgeStr(u16 waittime)char *data;u8 str8;str0=0xef;str1=0x01;str2=AS608Addr>>24;str3=AS608Addr>>16;str4=AS608Addr>>8;str5=AS608Addr;str6=0x07;str7='0'USART2_RX_STA=0;while(-waittime)delay_ms(1);if(USART2_RX_STA&0X8000)/接收到一次数据USART2_RX_STA=0;data=strstr(const char*)USART2_RX_BUF,(const char*)str);if(data)return (u8*)data;return 0;/录入图像 PS_GetImage/功能:探测手指,探测到后录入指纹图像存于ImageBuffer。 /模块返回确认字u8 PS_GetImage(void) u16 temp; u8 ensure;u8 *data;SendHead();SendAddr();SendFlag(0x01);/命令包标识SendLength(0x03);Sendcmd(0x01); temp = 0x01+0x03+0x01;SendCheck(temp);data=JudgeStr(2000);if(data)ensure=data9;elseensure=0xff;return ensure;/生成特征 PS_GenChar/功能:将ImageBuffer中的原始图像生成指纹特征文件存于CharBuffer1或CharBuffer2 /参数:BufferID -> charBuffer1:0x01charBuffer1:0x02/模块返回确认字u8 PS_GenChar(u8 BufferID)u16 temp; u8 ensure;u8 *data;SendHead();SendAddr();SendFlag(0x01);/命令包标识SendLength(0x04);Sendcmd(0x02);MYUSART_SendData(BufferID);temp = 0x01+0x04+0x02+BufferID;SendCheck(temp);data=JudgeStr(2000);if(data)