【车辆电源报警系统的硬件和软件设计案例6100字】_第1页
【车辆电源报警系统的硬件和软件设计案例6100字】_第2页
【车辆电源报警系统的硬件和软件设计案例6100字】_第3页
【车辆电源报警系统的硬件和软件设计案例6100字】_第4页
【车辆电源报警系统的硬件和软件设计案例6100字】_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

车辆电源报警系统的硬件和软件设计案例目录TOC\o"1-3"\h\u10926车辆电源报警系统的硬件和软件设计案例 112362第1章车辆电源报警系统模块设计 19551.1总体硬件设计 1277901.2温度检测模块设计 263541.3显示模块设计 3284781.1.1数码管的介绍 3276481.1.2数码管的动态显示 41521.4控制模块设计 5167431.2.1按键的介绍 5260241.2.2按键消抖 5239461.5报警模块设计 6158471.6本章小结 78954第二章车辆电源报警系统软件设计 817112.1顶层模块软件设计 8292962.2DS18B20驱动模块软件设计 9152312.3数码管模块软件设计 1121902.4控制模块软件设计 122862.5报警模块软件设计 13120032.6本章小结 1331523第三章车辆电源报警系统实际实现 144923.1硬件连接 1498323.2操作 14第1章车辆电源报警系统模块设计1.1总体硬件设计图3-1系统结构流程图如图所示是本文设计的系统结构流程图。流程图主要包含四大部分,它们分别是温度检测模块、温度显示模块、温度控制模块和温度报警模块。首先需要通过DS18B20温度传感器采集温度,再将采集到的温度信号转化为数字信号,数字信号输入FPGA,在FPGA上进行两个部分的处理实现,分别为数码管动态显示的实现和阈值温度比较的实现,这两部分决定了输出并且起到了控制的作用。利用FPGA上的数码管动态显示,输出的信号转化为十进制则可以将温度显示在数码管上。再通过FPGA上的阈值温度部分进行比较,可以决定温度报警模块的执行与否,若温度比设定的阈值高,则温度报警模块开始工作,若温度比设定的阈值低,则温度报警模块不工作。温度报警模块包括两方面,分别是蜂鸣器报警和LED灯代表的车门窗开关。1.2温度检测模块设计图3-2FPGA与DS18B20连接的原理图由原理图可知,DQ端—数字信号输入/输出端连接了一个2.7KΩ的上拉电阻和VCC电源,说明当电路中没有数字信号输入或输出的时候,DQ端被上拉电阻拉到VCCREF_Ref4224\r\h[18]。根据DS18B20温度传感器的工作原理,为了使DS18B20能够正常工作并且减少电路设计的复杂性,那么系统需给定电压在1.3V~5V之间并且提供恒定电压。1.3显示模块设计1.1.1数码管的介绍图3-3数码管表3-1数码管真值表字形Dpgfedcba.01111111011000000111111001210100100310110000410011001510010010610000010711111000810000000910010000A10001000B10000011C11000110D10100001E10000110F10001110数码管是一种显示字符的电子部件,包含按照一定形状排序的LED,数码管在我们的生活中尤其是家电领域,有着及其广泛的应用,比如在空调、洗衣机等需要显示温度或时间的家电上几乎都要用到数码管。而在仪器仪表、数控设备等方面,数码管也得到了广泛的应用。数码管按照连接的方式的不同有两种:共阴极数码管和共阳极数码管。本文所使用的数码管是共阳极数码管,若要使共阳极数码管工作,则其公共端需接高电平。使用时只要将所需的与LED相对应的端口给低电平,即可点亮LED从而在数码管上得到想要显示的数字或字母。若想用共阳极数码管显示想要的数字或字母,可以通过查找真值表的方式来快速找到想要的数字或字母所对应的每个管脚的高低电平。数码管驱动的方式有两种:静态显示和动态显示。对静态显示而言,公共端为位选信号,与LED相对应的端口为段选信号,每个数码管都有其独立的8个段选信号。有单独的I/O口控制数码管的每一段,只需要通过位选信号选中所需要的位即相应的数码管,在它的段选信号上输入字符码,不同的字符就可以显示在数码管上。对动态显示而言,公共端为位选信号,每个LED所对应的端口为段选信号,并且每个数码管相同的引脚相连。静态显示的每一个数码管都有独立的段选信号,而动态显示的数码管的段选信号是相连的,这就是数码管的静态显示与动态显示最主要的区别。1.1.2数码管的动态显示图3-4FPGA与数码管连接的原理图静态显示中每个数码管都有独立的段选信号和位选信号,所以占用的引脚较多,硬件设计较麻烦。而动态显示中,需要输入数字或字母时,首先段选信号输入相对应的字符码,再控制位选信号的高低电平即可改变其显示的位。由于人眼有视觉暂留现象,当物体在快速移动的时候,在我们大脑中形成的影像会残留一段时间,比如我们在看电影的时候,电影是由许多帧独立的画面组成的,由于播放速度很快,所以电影在我们看来就是连续的。因此,我们可以利用视觉暂留现象使多个数码管看上去像是同时点亮的样子,这就需要我们利用位选信号在各个数码管之间进行快速切换显示,如果切换的速度足够快,那么看起来就像是所有数码管同时显示一样。这个切换的过程我们称之为动态扫描,而这种切换方式也称为动态显示方式。根据原理图可知,数码管的六个位选信号分别连接到了PNP类型的三极管上,并且依据PNP类型的三极管的特性,每个三极管都可以当作一个开关来使用,而这个开关的控制信号则通过一个电阻连接到FPGA的管脚上。对于PNP类型的三极管,若是FPGA给的是低电平,那么这个开关即三极管处于导通状态,此时位选信号直接连接到1.3V上,即位选信号为高电平,而对于共阳极数码管来说,位选信号为高电平的时候就可以选中相对应位的数码管,即可以显示此时的数字。1.4控制模块设计1.2.1按键的介绍图3-5FPGA上按键的原理图按键是生活中比较常见的元件,它能够控制电路的通断。常见的按键有两种,一种是轻触式按键,一种是自锁按键。对于前者来说,当按下按键时,按键内部的金属弹片会发生形变使得电路导通,释放按键时,金属弹片会恢复原来的形状使得电路断开。对于后者来说,当按下按键时,电路会导通,同时按键内部的机械结构会使按键保持导通状态,直到再次按下按键,按钮才会抬起,从而电路断开。根据原理图可知,按键与FPGA芯片相连的点在按键与电阻之间,所以当按键没有按下的时候,电路是断开的,此时通过一个上拉电阻连接高电平,当按键按下的时候,电路导通,相连的FPGA芯片信号端连接低电平。因此,在按下的时候输出一个低电平信号。1.2.2按键消抖图2-1FPGA内部结构图2-1FPGA内部结构本文所使用的按键是机械按键,机械按键具有一定的弹性作用,不能立即导通或断开电路。在按下和释放按键的时刻,由于机械按键的弹性作用,按键会出现一个极短的抖动过程REF_Ref19591\r\h[19]。如图所示,在按下按键的瞬间并d不是立刻变为低电平,而是有一定的抖动,表现为一段不断变化的高低电平,抖动持续的时间很短暂大概是5~10ms,而抖动时间结束之后才能稳定在低电平。同理在释放的过程也有一样的问题。因为是通过按键的下降沿来判断按键是否按下,所以一旦检测到下降沿就会判定为按键按下,若是不消除抖动,那么可能就会检测到多个下降沿,于是会有多次判定按键按下,则会出现问题。按键消抖的第一种方法是:从按键按下到最终按键完全释放持续了数百毫秒,而按键的抖动过程只有5~10ms,这样就可以通过延时采样的方法,以此来消除抖动。也就是说在第一次检测到按键按下后的延时一段时间再采集按键的状态,此时采样的时刻按键已经结束抖动并处于稳定状态。同样在按键释放的过程中也需要延时一段时间后再进行采样。延时时间应该超过按键抖动的时间,即设置为20ms。按键消抖的第二种方法是:在按键抖动时,信号变化是很快的,故当按键能稳定在某一状态且持续时间超过20ms,那就可以认定按键抖动过程已经结束,那么在这一时刻采集的数据就是有效的。两种方法相比较,延时采样是检测到按键抖动开始后延时一段时间再采样,而第二种是按键抖动结束后延时一段时间再采样。有图可知,消抖后只有一个下降沿和一个上升沿,故两种方法结合起来是最高效也是最准确的。1.5报警模块设计图3-8FPGA与蜂鸣器相连的原理图蜂鸣器是一种电子发声装置,主要用来产生声音信号,它在我们生活中有着比较广泛的应用,在一些家用电器上可以通过蜂鸣器来通知,在消防或医疗等领域的报警装置也常常用到蜂鸣器。蜂鸣器一般可分为两种:有源蜂鸣器和无源蜂鸣器。“源”指的是震荡源,想要蜂鸣器鸣叫就必须具备震荡源才可以。有源蜂鸣器的内部本身就有震荡源,直接给它加直流电压就可以使它鸣叫,并且只能发出一种频率的声音。而对于无源蜂鸣器来说,必须给它一个震荡信号再加电压才能使它鸣叫。本文所使用的就是有源蜂鸣器,有源蜂鸣器一端接地,一端直接与FPGA芯片相连,因此只需让与FPGA芯片相连的管脚输出高电平,即可使蜂鸣器鸣叫。1.6本章小结本章详细地介绍了本文研究的电源温度传感器报警系统的硬件设计,共分为四部分,分别是温度检测模块、控制模块、显示模块、报警模块。四个模块分别从其所需要的最主要的硬件开始介绍,并且与本文所研究的系统进行结合。温度检测模块主要介绍了DS18B20温度传感器的硬件模块设计,控制模块主要介绍了在FPGA开发板上按键控制温度阈值的设计,显示模块主要介绍了FPGA开发板上的共阳极数码管及其动态显示,报警模块主要介绍了蜂鸣器的硬件模块设计。车辆电源报警系统软件设计2.1顶层模块软件设计图4-1FPGA顶层模块在软件中设计顶层模块时,主要包括两大部分:定义部分和例化部分。定义部分包含两方面定义,一种是定义各个模块的输入、输出信号,包括系统时钟、复位信号、数码管段选位选信号以及DS18B20的单总线等。另一种是定义数据类型。在VerilogHDL语言中包含三种数据类型,而本文所需要定义的是参数类型和线网类型的数据。为了简便,将数码管的小数点位置定义为参数类型即常量。将温度数据、蜂鸣器使能信号以及LED使能信号定义为线网数据类型,即可用来表示结构实体之间的物理连线。例化部分包括四部分,分别为DS18B20的驱动、数码管、功能按键以及蜂鸣器的例化。例化相当于将所需要用的模块打包并设置输入输出,方便后面程序调用模块。图4-2FPGA电路图如图4-2所示为FPGA电路图,从图中可以看出主要的四个例化部分以及其他程序代码在FPGA开发板上所对应生成的电路图,输入从上之下分别为系统时钟sys_clk、复位信号sys_rst_n、功能选择key1、阈值加key2和阈值减key3,输出从上至下分别为DS18B20的单总线dq、灯LED控制信号led、数码管位选sel、数码管段选seg_led和蜂鸣器控制信号beep。FPGA是现场可编程门阵列,它可以将各个元件之间的连线通过硬件编程语言描述出来,而这些代码程序在电路图中表示为一条条连线。2.2DS18B20驱动模块软件设计图4-3FPGA上DS18B20的设计流程由流程图可知,DS18B20的温度读取过程包括两大部分共九个步骤,第一大部分为触发DS18B20发送温度指令,第二大部分为读取DS18B20的RAM中所存储的温度值。首先要触发温度传感器DS18B20去采集一次温度数据,第一大部分的核心在于温度转换命令,该命令属于RAM指令。在发送RAM指令之前需要先对DS18B20进行初始化设置,再发送一个ROM指令,接下来会触发RAM指令,这两个指令都是主机在发送指令。读指令后即可连续读温度数据,结束一个循环REF_Ref6954\r\h[20]。图4-4DS18B20驱动的状态流程图DS18B20在FPGA上的设计中重要的部分为组合逻辑状态判断转换条件部分,此部分状态流程图如图4-4所示。首先为初始化状态init,若满足条件则跳到下一状态rom_skip;加载跳过ROM命令,若满足条件则跳到下一状态wr_byte;再发送命令,根据命令序号来判断下一个状态,共有四个状态分别为temp_convert、delay、rd_temp、rd_byte,若不满足条件则保持原来的状态;temp_convert状态是否能到wr_byte状态是根据加载温度转换命令是否满足;delay状态到init状态是为了延时等待温度转换结束;rd_temp状态若满足条件,则加载读温度命令到wr_byte状态;rd_byte状态若满足条件,则读数据线上的数据。图4-5DS18B20驱动电路图如图4-5所示为DS18B20驱动在FPGA上形成的电路图,输入为时钟信号clk和复位信号rst_n,输出为符号位sign和转换后得到的温度值temp_data,以及输入输出的DS18B20单总线接口dq。例化输入信号clk与rst_n,即将其与系统时钟信号sys_clk和复位信号sys_rst_n相连。2.3数码管模块软件设计图4-6FPGA上数码管的设计流程首先定义输入、输出信号以及数码管的位选、段选和使能信号,再对数码管的各个位进行定义。其次对数码管显示进行编写代码。提取数值所对应十进制数的各个位,通过数据除以10、100等得到的余数,再对应位置赋值,即可得到数字化的温度数据。由于数码管的内部结构不能改变,即数码管无法同时显示数字,于是定义一个计数器来对数码管驱动时钟进行计数,当计数时间到达1ms时,输出一个时钟信号,使数码管的下一位亮,即可使数码管轮流显示数字,在人眼视觉暂留现象的作用下,使数码管看起来像是同时亮一样。位选信号负责选择数码管显示的位,段选信号负责显示数字。运用QuartusⅡ软件进行编写程序,可以实现在FPGA上的温度数据转化为数字信号并显示在数码管上。图4-7数码管电路图如图4-7为数码管在FPGA上生成的电路图,输入从上至下为时钟信号clk、6位数码管显示的数值data、数码管使能信号en、小数点具体显示的位置point、复位信号rst_n和符号位sign,输出为数码管段选seg_led和数码管位选seg_sel。将输出信号例化,与数码管seg_led和sel以及系统时钟信号sys_clk和复位信号sys_rst_n相连。2.4控制模块软件设计图4-8FPGA上按键的设计流程首先定义输入、输出信号,定义按键信号和按键有效信号,按键信号为检测到按键按下时的信号,按键有效信号为按键消抖后的信号。由于按键有抖动,所以在设计时需要判断按键按下是否有效,当检测到按键按下的信号时,延时20ms,延时后若仍能检测到按键为按下的状态,则再延时20ms,当信号稳定时,此时可以判断按键确实按下,则继续进行其他步骤。如图4-9为在FPGA芯片设计的按键消抖,通过Modelsim得到的仿真图。图4-9按键消抖仿真其次对于KEY0,先赋值为0,此时为温度检测功能,若检测到按键信号并且按键有效,那么就对它取反,会得到另外一个功能即设定阈值功能。对于KEY1、KEY2,判断按键是否按下以及是否有效,可以对阈值进行加或减。图4-10控制模块电路图如图4-10为控制模块在FPGA上所形成的电路图,输入从上之下分别为:功能选择按键key1、阈值加key2、阈值减key3、系统时钟sys_clk和复位信号sys_rst_n,输出为个位cnt_ge_o、十位cnt_shi_o和功能选择select。将输入信号例化,与key1、key2、key3以及系统时钟信号sys_clk和复位信号sys_rst_n相连。2.5报警模块软件设计首先定义输入、输出信号、LED的使能信号以及蜂鸣器的使能信号和控制信号。将LED的使能信号定义为蜂鸣器的使能信号的取反,因此当蜂鸣器鸣叫时,LED断开表示车门窗打开。通过判断温度是否大于阈值来控制蜂鸣器的使能信号,当温度大于阈值时,蜂鸣器的使能信号为高电平,此时蜂鸣器鸣叫,LED灭。图4-11蜂鸣器与灯LED的电路图如图4-11所示为蜂鸣器与灯LED在FPGA上形成的电路图,输

温馨提示

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

评论

0/150

提交评论