收藏 分销(赏)

红外感应的控制系统设计VHDL正文该.doc

上传人:精*** 文档编号:3548414 上传时间:2024-07-09 格式:DOC 页数:27 大小:1.89MB 下载积分:10 金币
下载 相关 举报
红外感应的控制系统设计VHDL正文该.doc_第1页
第1页 / 共27页
红外感应的控制系统设计VHDL正文该.doc_第2页
第2页 / 共27页


点击查看更多>>
资源描述
红外感应自动门的控制系统设计 前言 红外感应自动门是最近几年才发展起来的现代化自动门,它不但继承了一般控制门的特点外还具有灵敏度高,开门迅速、噪声小等优点。红外感应门在现今社会各界已广泛使用并取得了较好的评价。现代人生活水平越来越高,审美观点也比以前提高了,因此现代人对建筑房屋也非常审美。自动门在蓬勃发展现代建筑业内,一直是处于主导的角色,这对自动门企业公司是个好时机,同时也推进了自动门市场的规范和技术革新。在我国红外感应自动门起比较迟,现在大多数是靠单片机控制的,它的功能一般,但性价比较高,为了完成更多难度的功能最近出现了用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Ⅱ系列EP2C5Q208C8[2]。作为第二代Cyclone系列,与第一代相比,它的成本更低,容量更大,特性更丰富。它采用1.2V、90nm、低K值绝缘工艺,裸片尺寸被尽可能的最小化。I/O端口设置见表2.2.2-1: 表2.2.2-1 I/O端口设置 器件 逻辑单元 RAM块 总比特数 18*18乘法器 PLL IO口数 差分通道 EP2C5 4608 26 119808 13 2 158 58 FPGA的管脚图2.2.2-1主要包括:用户I/O(User I/O)、配置管脚、电源、时钟及特殊应用管脚等。其中有些管脚可有多种用途,所以在设计FPGA电路之前,需要认真的阅读相应FPGA的芯片手册(下面管脚参数都是实际芯片引脚配置)。 图2.2.2-1 EP2C5Q208C8管脚 2.2.2.1 用户I/O I/Onum(LVDSnumn):可用作输入或输出,或者双向口,同时可作为LVDS差分对的负端。其中num表示管脚序号。 2.2.2.2 配置管脚 MSEL[1..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)软件,点击菜单栏中的file—new project wizard…新建一个工程项目,如图3.1-2所示: 图3.1-2 新建工程 C、在打开的新建工程项目中选择F盘中的zhukong作为目标文件夹,并输入工程项目名和文件名,如图3.1-3所示: 图3.1-3 输入文件(工程)名 D、依次点击next,选择相应文件和为系统选择目标芯片,最后点击finish 完成工程项目的创建,然后再新建VHDL文本文件(file—new—VHDL file—ok)在文本文件中输入主控制程序后,保存(注意名称与工程名一样)。 源程序文件如下: 主控制程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ZHUKONG IS PORT(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 IS BEGIN PROCESS BEGIN IF 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";--非复位时态1 End if; IF HW_XINGAO="101" THEN S_XINGAO<="101";S1_XINHAO<="101";S2_XINHAO<="101";--非复位时态2 End if; IF HW_XINGAO="110" THEN S_XINGAO<="110";S1_XINHAO<="110";S2_XINHAO<="110";--非复位时态3 END 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--new—vector 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 电机控制程序[6] LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY DIANJI IS PORT(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 IS SIGNAL M:STD_LOGIC;--分频计数器 SIGNAL YANSHI:STD_LOGIC;--延时计数器 BEGIN PROCESS(CLK)--分频 VARIABLE JS_CLK:INTEGER RANGE 0 TO 2E6-1;--时钟计数 BEGIN IF CLK'EVENT AND CLK='1' THEN IF JS_CLK<2E6-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;--秒(分频)计数 BEGIN IF M'EVENT AND M='1' THEN IF JS<8 THEN JS:=JS+1; ELSE JS:=0;YANSHI<='1'; END IF; END IF; END PROCESS; PROCESS(S1_XINHAO) BEGIN CASE S1_XINHAO IS WHEN "011" => DJ_OUT<="011";--状态1(断电) WHEN "101" => DJ_OUT<="101";--状态2(进门感应) WHEN "110" => DJ_OUT<="110";--状态3(出门感应) WHEN OUTHERS => NULL; END CASE; END PROCESS; PROCESS(RST,KG,YANSHI)--门控 BEGIN IF RST='1' THEN DJ_OUT<="011";--复位时电机状态(断电) ELSE IF S1_XINHAO="101";KG="10" THEN IF YANSHI='1' THEN KG="01";--进门感应器有中断时,门开(KG="10")延时8秒(YANSHI='1')后,门自动关(KG="01") END IF; END IF; IF S1_XINHAO="110";KG="10" THEN IF YANSHI='1' THEN KG="01";--出门感应器有中断时,门开(KG="10")延时8秒(YANSHI='1')后,门自动关(KG="01") END IF; END IF; END IF; END PROCESS; END; 3.2.2 语音控制生成程序[7] A、音节产生所需的预置分频系数程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY TONE_TABL IS PORT(INDEX:IN STD_LOGIC_VECTOR(3 DOWNTO 0); CODE :OUT STD_LOGIC_VECTOR(3 DOWNTO 0); HIGH :OUT STD_LOGIC; TONE :OUT STD_LOGIC_VECTOR(10 DOWNTO 0)); END; ARCHITECTURE ONE OF TONE_TABL IS BEGIN SEARCH:PROCESS(INDEX) BEGIN CASE INDEX IS WHEN "0000"=>TONE<="00000000000"; CODE<="0000";HIGH<='0'; WHEN "0001"=>TONE<=""; CODE<="0001";HIGH<='0'; WHEN "0010"=>TONE<=""; CODE<="0010";HIGH<='0'; WHEN "0011"=>TONE<=""; CODE<="0011";HIGH<='0'; WHEN "0100"=>TONE<=""; CODE<="0100";HIGH<='0'; WHEN "0101"=>TONE<=""; CODE<="0101";HIGH<='0'; WHEN "0110"=>TONE<=""; CODE<="0110";HIGH<='0'; WHEN "0111"=>TONE<=""; CODE<="0111";HIGH<='0'; WHEN "1000"=>TONE<="010"; CODE<="0001";HIGH<='1'; WHEN "1001"=>TONE<="010"; CODE<="0010";HIGH<='1'; WHEN "1010"=>TONE<="000"; CODE<="0011";HIGH<='1'; WHEN "1011"=>TONE<="011"; CODE<="0100";HIGH<='1'; WHEN "1100"=>TONE<="001"; CODE<="0101";HIGH<='1'; WHEN "1101"=>TONE<="000"; CODE<="0110";HIGH<='1'; WHEN "1110"=>TONE<="011"; CODE<="0111";HIGH<='1'; WHEN "1111"=>TONE<="001"; CODE<="0001";HIGH<='1'; WHEN OTHERS =>NULL; END CASE; END PROCESS; END; B、音节频率产生程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SPEAKERA IS PORT(CLK:IN STD_LOGIC; TONE:IN STD_LOGIC_VECTOR(10 DOWNTO 0); SPKS:OUT STD_LOGIC); END; ARCHITECTURE ONE OF SPEAKERA IS SIGNED PRECLK,FULLSPKS:STD_LOGIC; BEGIN PROCESS(CLK) VARIABLE COUNT4:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PRECLK<='0'; IF COUNT4>11 THEN PRECLK<='1';COUNT4:="0000"; ELSIF CLK'EVENT AND CLK='1' THEN COUNT4:=COUNT4+1; END IF; END PROCESS; PROCESS(PRECLK,TONE) VARIABLE COUNT11:STD_LOGIC_VECTOR(10 DOWNTO 0); BEGIN IF PRECLK'EVENT AND PRECLK='1' THEN IF 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; BEGIN IF FULLSPKS'EVENT AND FULLSPKS='1' THEN COUNT2:=NOT COUNT2; IF COUNT2='1' THEN SPKS<='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 IS PORT(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 IS BEGIN PROCESS(CLK.RST,S_XINHAO) BEGIN IF RST='1' THEN LED_OUT<="0000001"; END IF; CASE S_XINHAO IS WHEN "100" => LED_OUT<="0000001"; WHEN "010" => LED_OUT<="1001111"; WHEN "001" => LED_OUT<="0010010"; WHEN OTHERS=>NULL; END CASE; END PROCESS; END; 3.3 电路板 资源扩展板[8]如图3.3-1示,核心板如图3.3-2示: 3.3-1 资源扩展板 3.3-2 核心板 4 Protel印制电路板制作 4.1 简介 Protel99SE[9]是应用于Windows9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以进行联网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源--地层和16个机加工层。 4.2 用protel99制作印制电路板的流程 ★ 利用原理图设计工具绘制原理图,并且生成对应的网络表。 ★ 手工更改网络表,将一些元件的固定用脚等原理图上没有的焊盘定义到与它相通的网络上,没任何物理连接的可定义到地或保护地等。将一些原理图和PCB封装库中引脚名称不一致的器件引脚名称改成和PCB封装库中的一致,特别是二、三极管等。 ★ 画出自己定义的非标准器件的封装库,将自己所画的器件都放入一个自己建立的PCB 库专用设计文件。 ★ 设置PCB设计环境和绘制印刷电路的版框 ★ 调入网络表文件和修改零件封装。这一步是非常重要的一个环节,网络表是PCB自动布线的灵魂,也是原理图设计与印象电路版设计的接口,只有将网络表装入后,才能进行电路版的布线。 ★ 零件布局。Protel99可以进行自动布局,也可以进行手动布局。如果进行自动布局,运行"Tools"下面的"Auto Place",用这个命令,你需要有足够的耐心。布线的关键是布局,多数设计者采用手动布局的形式。用鼠标选中一个元件,按住鼠标左键不放,拖住这个元件到达目的地,放开左键,将该元件固定。 ★ 根据情况再作适当调整然后将全部器件锁定。 ★ 布线规则设置。布线规则是设置布线的各个规范,像使用层面、各组线宽、过孔间距、布线的拓朴结构等部分规则,可通过Design-Rules 的Menu 处从其它板导出后,再导入这块板。 ★ 自动布线和手工调整。 ★ 对所有过孔和焊盘补泪滴。 ★ 放置覆铜区。 5 结束语 “学海无涯苦作舟,书山有路勤为径”。毕业设计对于我来说这是一个较大的挑战,在大四这最后几个月时间里,从材料的搜集到投入研讨再到起草排版以及打印输出,这是以前我所不敢想的,但是现在我却完成了。它越难我越勤,勤能补愚,只有努力去做的人才可能会成功。有人曾说过:“科研工作是一项艰苦、寂寞并且需要全心全意投入的工作,一旦选择了这个责任,我们就要承担得起他人所不能承受的压力。正因为这样,我们才要努力做出成果!” 在多位指导老师的面授指导下,给论文的进展带来曙光和推动力。很难忘实验室老师和同学对我的这次毕业设计的帮助与关心,使得我的我的毕业设计得以顺利进行。在此谨以一颗感激之心向这些给予我极大帮助的人致以衷心的谢意。 参考文献: [1] 刘昌华:数字逻辑EDA设计与实践,国防工业出版社,2006.8,P3-P7 [2] 曹昕燕、周凤臣: EDA实验与课程设计,清华大学出版社,2006.5,P11-P15 [3](英)Peter Wilson 著 (杜生海 等译):FPGA设计实践,2003.2,P17-P18 [4] 潘 松、黄继业:EDA技术实用教程,科技出版社,2006.8,P28-P31 [5] 催乃政:基于FPGA的永磁无刷直流电动机驱动控制系统的研究,学位论文,2007.5,P2-P2 [6] 杨晓慧、杨 旭:FPGA系统设计与实例, 人民邮电出版社,2008.8,P140-P147 [7] Zainalabedin Navabi:VDHL:Analysis and Modeling of Digital Systems,McGraw-Hill出版公司出版,2005.5,P120-P132 [8] MAGIC3200_EP2C5开发板用户手册 [9] 胡 华、陈 明: Protel 99S原理图设计,机械工业出版社,2005.2,P98-P111
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服