毕业设计(论文)-红外感应自动门的控制系统设计.doc_第1页
毕业设计(论文)-红外感应自动门的控制系统设计.doc_第2页
毕业设计(论文)-红外感应自动门的控制系统设计.doc_第3页
毕业设计(论文)-红外感应自动门的控制系统设计.doc_第4页
毕业设计(论文)-红外感应自动门的控制系统设计.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

四川师范大学成都学院本科毕业设计 红外感应自动门的控制系统设计前言红外感应自动门是最近几年才发展起来的现代化自动门,它不但继承了一般控制门的特点外还具有灵敏度高,开门迅速、噪声小等优点。红外感应门在现今社会各界已广泛使用并取得了较好的评价。现代人生活水平越来越高,审美观点也比以前提高了,因此现代人对建筑房屋也非常审美。自动门在蓬勃发展现代建筑业内,一直是处于主导的角色,这对自动门企业公司是个好时机,同时也推进了自动门市场的规范和技术革新。在我国红外感应自动门起比较迟,现在大多数是靠单片机控制的,它的功能一般,但性价比较高,为了完成更多难度的功能最近出现了用fpga控制的红外感应自动门。日前,日本tanaka公司开发出一种智能自动门,它能够准确判断进出者的体型并根据不同人的不同体型特征决定门需要开启多大。当人们需要穿过这扇门的时候,构成门扇的水平条便根据人的头、肩、身躯、脚、手及随身携带的箱包等参数再加上5至15厘米的盈余活动空间准确打开。当然,进出这扇门的人如果是乘坐轮椅或者是带着宠物猫的话也不会遇到任何困难。这道智能门能够识别出经常进入者的身份并阻止其他人随便进入,大大增加了办公场所或家庭的安全。1 红外感应自动门控制系统分析现如今红外感应自动门已不在是原始的开关门那么简单了,以前很多都只有自动的开关门功能,而现在可以做到有人进入时有语音“欢迎光临”,出门时有语音“谢谢光临”等问候语,还可以在屏幕显示相关信息,高级的还有密码保护、金属检测等安全检测功能1.1 设计任务分析任务:完成红外感应自动门功能,使用fpga做一个能自动感应人开关门,并有发出声音和显示的功能。要求: a、当人靠近门时感应到人,很快反应打开门。b、当进入时,开门、发出声音欢迎进入。c、当人出门时,开门、发出欢送的声音。d、有人进或出门时,门打开后8秒后自动关门。e、在led上显示出不同的状态以示有人进或出本次设计为在节省成本的基础上完成较齐全的功能,大多功能都在主芯片中完成,只通过外围设备显示出效果,因此没有很多外围电路。在主芯片中完成红外信号感应的控制,电机的控制,led显示的控制,蜂鸣器的控制等功能。1.2 系统结构设计 本次设计方案采用模块累加的方法组成主要顶层电路,其包括红外感应模块、led显示模块、语音模块、电机模块和主芯片组成。连接如图1.2-1所示:图1.2-1 硬件连接图1.3 实现过程红外感应门控制功能的过程示意图如图1.3-1示:图1.3-1 过程示意图2 硬件部分2.1 红外感应部分2.1.1 红外感应(探测)实现的原理2.1.1.1 被动探测方式它主要利用在自然界,任何高于绝对温度(- 273度)时物体都将产生红外光谱,不同温度的物体,其释放的红外能量的波长是不一样的。全称是被动式热释电红外探测器。 在被动红外探测器中有两个关键性的元件。一个是热释电红外传感器(pir),它能将波长为8一12um之间的红外信号变化转变为电信号,并能对自然界中的白光信号具有抑制作用,因此在被动红外探测器的警戒区内,当无人体移动时,热释电红外感应器感应到的只是背景温度,当人体进人警戒区,通过菲涅尔透镜,热释电红外感应器感应到的是人体温度与背景温度的差异信号,因此,红外探测器的红外探测的基本概念就是感应移动物体与背景物体的温度的差异。另外一个器件就是菲涅尔透镜,菲涅尔透镜有两种形式,即折射式和反射式。菲涅尔透镜作用有两个:一是聚焦作用,即将热释的红外信号折射(反射)在pir上,第二个作用是将警戒区内分为若干个明区和暗区,使进入警戒区的移动物体能以温度变化的形式在pir上产生变化热释红外信号,这样pir就能产生变化的电信号。 人体都有恒定的体温,一般在37度,所以会发出特定波长10微米左右的红外线,被动式红外探头就是靠探测人体发射的10微米左右的红外线而进行工作的。人体发射的10微米左右的红外线通过菲泥尔滤光片增强后聚集到红外感应源上。红外感应源通常采用热释电元件,这种元件在接收到人体红外辐射温度发生变化时就会失去电荷平衡,向外释放电荷,后续电路经检测处理后就能产生报警信号。 2.1.1.2 主动探测方式主动红外发射机通常采用红外发光二极管作为光源,用晶体管或集成电路直接驱动,采用脉冲振荡电路作为驱动电源,经过脉冲调制电路,产生一定占空比的脉冲调制波,加在红外发光管两端发射出去,这样既降低了电源的功耗,又增强了主动红外入侵探测器的抗干扰能力。同时为了进一步降低误报率,防止入侵者刻意、有备而来的反防入侵手段,近来又运用了先进数字变频的技术,即发射机与接收机的红外脉冲频率经过数字调制后是可变的,接收机只认定所选好的频率,而对于其它频率则不予处理,可以有效防止入侵者有目的发射某种频率的红外光入侵防区,而失去防范能力。 主动红外探测器由红外发射器和红外接收器组成。红外发射器发射一束或多数经过调制过的红外光线投向红外接收器。发射器与接收器之间没有遮挡物时,探测器不会报警。有物体遮挡时,接收器输出信号发生变化,探测器报警。2.1.2 自动门红外感应的实现本次设计采用主动式的红外感应,无人靠近时检测信号正常,有人进入感应范围时红外线被中断检测器发出中断信号驱动相应模块完成功能。实现过程如图2.1.2-1示:图2.1.2-1 红外感应门的实现2.2 fpga部分2.2.1 fpga的工作原理1985年,美国xilinx公司推出了现场可编程门阵列(fpga,field programmable gate array)它是当今专用集成电路(asic)中集成度最高的一种1。用户可对fpga内部的逻辑模块和i/o模块重新配置,以实现用户的逻辑,因而也被用于对cpu的模拟。用户对fpga的编程数据一般存放在flash芯片中,当上电位时加载到fpga中,对其进行初始化。还可以通过在线对其编程,实现在线系统重构,通过这一特性可以很快构建一个实时定制的cpu。 fpga的编程资源主要有三类:可编程逻辑功能块、可编程i/o块和可编程互连。可编程逻辑功能块它们通常排列成一个阵列,散布于整个芯片,是实现用户功能的基本单元;可编程i/o块常围绕着阵列排列于芯片四周,用以完成芯片上逻辑与外部封装脚的接口功能;可编程内部互连它们将各个可编程逻辑块或i/o块连接起来,在可编程逻辑块的内部以互连线的结构和采用的可编程元件实现可编程连接的开关,。2.2.2 ep2c5系列器件(芯片)自发明世界上第一个可编程逻辑器件开始,altera公司秉承了创新的传统,是世界上“可编程芯片系统”(sopc)解决方案的倡导者。而且altera公司在世界上pld市场占有率很高。altera的主流fpga分为3大类:低端fpga,侧重成本应用,容量中等,性能可满足一般要求,如cyclone系列等;中端fpga包括arria gx系列等;高端fpga,侧重于高性能应用容量大,性能好,如startix系列等。为节省成本本次设计选用cyclone系列ep2c5q208c82。作为第二代cyclone系列,与第一代相比,它的成本更低,容量更大,特性更丰富。它采用1.2v、90nm、低k值绝缘工艺,裸片尺寸被尽可能的最小化。i/o端口设置见表2.2.2-1:表2.2.2-1 i/o端口设置器件逻辑单元ram块总比特数18*18乘法器pllio口数差分通道ep2c546082611980813215858fpga的管脚图2.2.2-1主要包括:用户i/o(user i/o)、配置管脚、电源、时钟及特殊应用管脚等。其中有些管脚可有多种用途,所以在设计fpga电路之前,需要认真的阅读相应fpga的芯片手册(下面管脚参数都是实际芯片引脚配置)。图2.2.2-1 ep2c5q208c8管脚2.2.2.1 用户i/oi/onum(lvdsnumn):可用作输入或输出,或者双向口,同时可作为lvds差分对的负端。其中num表示管脚序号。2.2.2.2 配置管脚msel1.0:用于选择配置模式。fpga有多种配置模式,比如主动、被动、快速、正常、串行、并行等,可以此管脚进行选择。 data0:fpga的串行数据输入引脚,连接至配置器件的串行数据输出管脚。 dclk:fpga的串行时钟输出引脚,为配置器件提供串行时钟信号。 ncso(i/o):fpga的片选信号输出引脚,连接至配置器件的ncs管脚。 asdo(i/o):fpga的串行数据输出引脚,连接至配置器件的asdi管脚。 nceo:fpga下载链器件使能输出引脚。在一条下载链(chain)中,当第一个器件配置完成后,此信号将使能下一个器件开始进行配置。下载链的最后一个器件的nceo应悬空。 nce:下载链器件使能输入,连接至上一个器件的nceo。下载链第一个器件的nce接地。 nconfig:用户模式配置起始信号。 nstatus:配置状态信号。 conf_done:配置结束信号。2.2.2.3 电源管脚vccint:内核电压。通常与fpga芯片所采用的工艺有关,例如130nm工艺为1.5v,90nm工艺为1.2v。vccio:端口电压。一般为3.3v,还可以支持选择多种电压,如5v、1.8v、1.5v等。 vref:参考电压。 gnd:信号地。2.2.2.4 时钟管脚vcc_pll:锁相环管脚电压,直接连vccio。 vcca_pll:锁相环模拟电压,一般通过滤波器接到vccint上。 gnda_pll:锁相环模拟地。 gndd_pll:锁相环数字地。 clknum(lvdsclknump):锁相环时钟输入。支持lvds时钟输入,p接正端,num表示pll序号。 clknum(lvdsclknumn):锁相环时钟输入。支持lvds时钟输入,n接负端,num表示pll序号。 pllnum_outp(i/o):锁相环时钟输出。支持lvds时钟输入,p接正端,num表示pll序号。 pllnum_outn(i/o):锁相环时钟输出。支持lvds时钟输入,n接负端,num表示pll序号。2.2.2.5 特殊管脚vccpd:用于选择驱动电压。 vccsel:用于控制配置管脚和锁相环相关的输入缓冲电压。 porsel:上电复位选项。 niopullup:用于控制配置时所使用的用户i/o的内部上拉电阻是否工作。 tempdioden/p:用于关联温度敏感二极管。2.2.3 vhdl语言简介vhdl(very-high-speed integrated circuit hardware description language)是一种描述、模拟、综合、优化和布线的标准硬件描述语言3诞生于 1982 年。1987 年底,vhdl被 ieee 和美国国防部确认为标准硬件描述语言。vhdl主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,vhdl的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。一个完整的vhdl语言程序通常包含实体(entity)、构造体(architecture)、配置(configuration)、程序包(package)和库(library)5个部分组成。vhdl的程序结构特点是将一项工程,或设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),涉及实体的内部功能和算法完成部分。当完成一个设计实体定义了外部界面后,若其内部开发完成后,其他的设计就可以直接调用这个实体。这种概念是将设计实体分成内外部分两部分,这是vhdl语言系统设计的基本特点。2.2.4 quartus ii简介quartus ii 是altera公司的第四代综合性pld开发软件平台,支持原理图、vhdl、veriloghdl以及ahdl(altera hardware description language)等多种语言设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整pld(fpga)设计流程。该平台支持一个工作组环境下的设计要求,其中包括支持基于internet的协作设计。quartus平台与cadence、exemplarlogic、 mentorgraphics、synopsys和synplicity等eda供应商的开发工具相兼容。改进了软件的logiclock模块设计功能,增添 了fastfit编译选项,推进了网络编辑性能,而且提升了调试能力。quartus ii不仅可以在xp、linux上使用还可以在unix上使用,除了可以使用tcl脚本完成设计流程外,还提供了完善的用户图形界面设计方式,具有运行速度快、界面统一、功能集中、易学易用等特点。quartus ii支持altera的ip核,包含了lpm/megafunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方eda工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方eda工具。此外,quartus ii 通过和dsp builder工具与matlab/simulink相结合,可以方便地实现各种dsp应用系统;支持altera的片上可编程系统(sopc)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。maxplus ii 作为altera的上一代pld设计软件,由于其出色的易用性而得到了广泛的应用。目前altera已经停止了对maxplus ii 的更新支持,quartus ii 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。altera的quartus ii 软件中包含了许多诸如signaltap ii、chip editor和rtl viewer的设计辅助工具,集成了sopc和hardcopy设计流程,并且继承了maxplus ii 友好的图形界面及简便的使用方法。 图2.2.4-1中所示的第一行是quartus ii编译界面,显示有quartus ii自动设计的各主要处理环节,包括设计编辑输入、设计分析和综合、适配、编程(装配)、时序参数分析以及编程下载等步骤。在图2.2.4-1第二行的流程框图,是与上行的quartus ii流程设计对照的eda开发流程。图 2.2.4-1 quartus ii流程图2.3 直流电机图2.3-1 直流电机由直流电动机和发电机工作原理,直流电机5的结构应由定子和转子两大部分组成。直流电机运行时静止不动的部分称为定子,定子的主要作用是产生磁场,由机座、主磁极、换向极、端盖、轴承和电刷装置等组成。运行时转动的部分称为转子,其主要作用是产生电磁转矩和感应电动势,是直流电机进行能量转换的枢纽,所以通常又称为电枢,由转轴、电枢铁心、电枢绕组、换向器和风扇等组成。本设计主要应用在红外和fpga方面,在此直流电机只提及一下不做详细说明介绍。 直流电机应用电路如图2.3-1所示。3 软件部分3.1 设计过程a、在f新建文件夹名为zhukong 作为工程文件夹如图3.1-1所示:图3.1-1 zhukong文件夹b、打开quartus ii 5.0 (32-bit)软件,点击菜单栏中的filenew project wizard新建一个工程项目,如图3.1-2所示:图3.1-2 新建工程c、在打开的新建工程项目中选择f盘中的zhukong作为目标文件夹,并输入工程项目名和文件名,如图3.1-3所示:图3.1-3 输入文件(工程)名d、依次点击next,选择相应文件和为系统选择目标芯片,最后点击finish 完成工程项目的创建,然后再新建vhdl文本文件(filenewvhdl fileok)在文本文件中输入主控制程序后,保存(注意名称与工程名一样)。源程序文件如下:主控制程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity zhukong isport(clk:in std_logic;-时钟信号 rst:in std_logic;-复位信号 hw_xinhao:in std_logic_vector(2 downto 0);-两种信号输入(正常、中断进和出) s_xinhao:out std_logic_vector(2 downto 0);-显示信号输出(常态、进人态、出人态) s1_xinhao:out std_logic_vector(2 downto 0);-电机控制输出(断电状态、正传和反转) s2_xinhao:out std_logic_vector(2 downto 0);-蜂鸣器输出(断电状态、欢迎和再见)end;architecture one of zhukong isbeginprocessbeginif rst=1 then s_xinhao=011;s1_xinhao=011;s2_xinhao=011;-复位时态end if; if hw_xingao=011 then s_xingao=011;s1_xinhao=011;s2_xinhao=011;-非复位时态1end if;if hw_xingao=101 then s_xingao=101;s1_xinhao=101;s2_xinhao=101;-非复位时态2end if;if hw_xingao=110 then s_xingao=110;s1_xinhao=110;s2_xinhao=110;-非复位时态3end if;end process;end;e、再点击编译源文件,完成文件的编译,并查找错误及修改,最终完成编译通过。如图3.1-4所示:图3.1-4 编译适配源(程序)文件下图3.1-5是文件编译的进度过程图3.1-5 编译适配过程f、将电机控制模块程序、语音产生模块程序、led显示模块程序进行模块创建,如图3.1-6所示:图3.1-6 打包(模块创建)过程如出现下图3.1-7所示小窗口界面,表示,模块创建成功,点击确定。图3.1-7 打包结果图g、创建仿真文件并实现模块的仿真(方法按:file-newvector waveform file添加输入和输出节点,保存再点击),本次仿真是基于数模科技公司的magic3200开发套件,仿真如图3.1-8示:图3.1-8 仿真图(示例)h、顶层文件的设计,新建好项目后,再新建原理图,调入底层设计文件,并连接好线,并保存。i、为顶层设计文件选择芯片,锁定引脚(注意是与实验箱上开发为准)再编译顶层文件。j、锁定引脚图3.1-9如下示:图3.1-9 引脚设定k、最后,连接实验板,点击下载按钮下载程序,界面如下图3.1-10示:图3.1-10 下载程序界面选择usb下载方式如下图3.1-11示:图3.1-11 选择usb下载方式完成下载设备的设置后,点击start按钮开始下载程序如下图,当达到100%时候完成下载。如图3.1-12示:图3.1-12 下载完成图3.2 模块源程序关闭当前工程项目,再新建另外一个工程项目模块,如上面过程,最终完成电机控制模块程序、语音产生模块程序、led显示模块程序的设计,源程序如下.3.2.1 电机控制程序6library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity dianji isport(clk:in std_logic; rst:in std_logic; s1_xinhao:in std_logic_vector(2 downto 0); kg_out:out std_logic_vector(1 downto 0);-开门和关门 dj_out:out std_logic_vector(2 downto 0);end;architecture one of dianji issignal m:std_logic;-分频计数器signal yanshi:std_logic;-延时计数器beginprocess(clk)-分频variable js_clk:integer range 0 to 2e6-1;-时钟计数beginif clkevent and clk=1 then if js_clk2e6-1 then js_clk:=js_clk+1;else js_clk:=0;m=not m;end if;end if;end process;process(m)-延时variable js:integer range 0 to 8;-秒(分频)计数beginif mevent and m=1 thenif js8 then js:=js+1;else js:=0;yanshi dj_out dj_out dj_out null;end case;end process;process(rst,kg,yanshi)-门控beginif rst=1 then dj_outtone=00000000000;code=0000;hightone=11111010101;code=0001;hightone=11011111010;code=0010;hightone=11000110111;code=0011;hightone=10111011110;code=0100;hightone=10100111001;code=0101;hightone=10010101000;code=0110;hightone=10000100101;code=0111;hightone=01111101010;code=0001;hightone=01111101010;code=0010;hightone=01100011100;code=0011;hightone=01011101111;code=0100;hightone=01010011101;code=0101;hightone=01001010100;code=0110;hightone=01000010011;code=0111;hightone=00111110101;code=0001;highnull;end case;end process;end;b、音节频率产生程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity speakera isport(clk:in std_logic; tone:in std_logic_vector(10 downto 0); spks:out std_logic);end;architecture one of speakera issigned preclk,fullspks:std_logic;beginprocess(clk)variable count4:std_logic_vector(3 downto 0);beginpreclk11 then preclk=1;count4:=0000;elsif clkevent and clk=1 then count4:=count4+1;end if;end process;process(preclk,tone)variable count11:std_logic_vector(10 downto 0);beginif preclkevent and preclk=1 thenif count11=0 then count11:=tone;fullspks=1;elsif count111:=count11-1;fullspks=0;end if;end if;end process;process(fullspks)variable count2:std_logic;begin;beginif fullspksevent and fullspks=1 thencount2:=not count2;if count2=1 thenspks=1;else spks=0;end if;end if;end process;end;3.2.3 led显示控制程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ym isport(clk:in std_logic; rst:in std_logic; s_xinhao:in std_logic_vector(2 downto 0); led_out:out std_logic_vector(6 downto 0);end;architecture one of ym isbeginprocess(clk.rst,s_xinhao)beginif rst=1 then led_out led_out led_out led_outnull;end case;end process;end;3.3 电路板资源扩展板8如图3.3-1示,核心板如图3.3-2示:3.3-1 资源扩展板3.3-2 核心板4 protel印制电路板制作 4.1 简介protel99se9是应用于windows9x/2000/nt操作系统下的eda设计软件,采用设计库管理模式,可以进行联网设计,具有很强的数据交换能力和开放性及3d模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源-地层和16个机加工层。4.2 用protel99制作印制电路板的流程 利用原理图设计工具绘制原理图,并且生成对应的网络表。 手工更改网络表,将一些元件的固定用脚等原理图上没有的焊盘定义到与它相通的网络上,没任何物理连接的可定义到地或保护地等。将一些原理图和pcb封装库中引脚名称不一致的器件引脚名称改成和pcb封装库中的一致,特别是二、三极管等。 画出自己定义

温馨提示

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

评论

0/150

提交评论