基于VHDL的红外遥控编译码器毕业设计.docx

上传人:b****7 文档编号:16794984 上传时间:2023-07-17 格式:DOCX 页数:12 大小:23.13KB
下载 相关 举报
基于VHDL的红外遥控编译码器毕业设计.docx_第1页
第1页 / 共12页
基于VHDL的红外遥控编译码器毕业设计.docx_第2页
第2页 / 共12页
基于VHDL的红外遥控编译码器毕业设计.docx_第3页
第3页 / 共12页
基于VHDL的红外遥控编译码器毕业设计.docx_第4页
第4页 / 共12页
基于VHDL的红外遥控编译码器毕业设计.docx_第5页
第5页 / 共12页
基于VHDL的红外遥控编译码器毕业设计.docx_第6页
第6页 / 共12页
基于VHDL的红外遥控编译码器毕业设计.docx_第7页
第7页 / 共12页
基于VHDL的红外遥控编译码器毕业设计.docx_第8页
第8页 / 共12页
基于VHDL的红外遥控编译码器毕业设计.docx_第9页
第9页 / 共12页
基于VHDL的红外遥控编译码器毕业设计.docx_第10页
第10页 / 共12页
基于VHDL的红外遥控编译码器毕业设计.docx_第11页
第11页 / 共12页
基于VHDL的红外遥控编译码器毕业设计.docx_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于VHDL的红外遥控编译码器毕业设计.docx

《基于VHDL的红外遥控编译码器毕业设计.docx》由会员分享,可在线阅读,更多相关《基于VHDL的红外遥控编译码器毕业设计.docx(12页珍藏版)》请在冰点文库上搜索。

基于VHDL的红外遥控编译码器毕业设计.docx

基于VHDL的红外遥控编译码器毕业设计

(此文档为word格式,下载后您可任意编辑修改!

目录

1前言1

1.1红外遥控编译码器的现状和发展趋势2

1.2本设计的特点2

1.3本论文的设计任务及结构3

1.4本章小结4

2系统的软件设计5

2.1VHDL语言的介绍5

2.2VHDL语言的优点6

2.3函数的流程7

2.4本章小结9

3红外遥控控制原理10

3.1红外10

3.2红外遥控原理10

3.3红外发送系统的基本组成12

3.4红外接收电路的设计13

3.5本章小结14

4编码与译码15

4.1红外遥控的编码发送15

4.2译码器的基本原理17

4.3硬件解码与软件解码的比较18

4.4本章小结19

5系统的硬件设计20

5.1硬件的功能描述20

5.2发送控制的设计20

5.3接收控制的设计21

5.4仿真分析21

5.5本章小结22

6总结23

参考文献24

致谢25

附录26

1前言

目前市面上的编译码器多种多样,而其主要用于家电设备及一些电子产品当中,而红外遥控编译码器也是极其常见的,然而技术和经济的发展使得数字化趋势越来越强烈,很多时候已经不能满足用户要求。

红外遥控编译码器就是在普通编译码器的基础上,应市场需求而产生的,它能控制不同种类的设备,并且操作方便,深受顾客的欢迎,这也决定了红外遥控编译码器具有广阔的应用前景[9]。

红外遥控由于其发射和接收方便、结构简单、成本低、可靠性较高,因而早已在家用电器中得到广泛应用。

目前在智能仪器和工业控制系统中的应用也越来越广泛。

红外遥控本质属于红外信息传输的一种应用形式。

红外传输大体分为数据的传输和控制信息(指令)的传输二类。

数据的传输一般来说传输的信息量会较大,因此一般会要求有较高的传输速度,对于可靠性的要求则针对数据的具体应用而异,在计算机、PDA等设备上采用的IRDA界面就是这种应用的典型代表。

[12]发射二极管发射次数和频率对其使用寿命的影响,这种应用中发射系统的使用寿命是设计者需要考虑的因素之一。

控制信息传输的特点是信息量小,但是可靠性要求高。

目前广泛应用的红外遥控就属于这种情况。

VHDL的英文全Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage,诞生于1982年[2]VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。

有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。

VHDL主要用于描述数字系统的结构,行为,功能和接口。

除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。

VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个组件,一个电路模块或一个系统)分成外部(或称可是部分,及埠)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。

在对一个设计实体定义了外部接口后,一旦其内部开发完成后,其它的设计就可以直接调用这个实体。

这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

ModelSim是业界最优秀的混合HDL语言仿真调试环境,提供最佳的仿真性能和调试特征,成为众多ASIC和FPGA厂商推荐的仿真调试工具,也是广大FPGA、ASIC设计工程师实施混合HDL语言RTL级、门级电路仿真以及布局布线后时序仿真的首选。

全面支持所有HDL标准,支持广泛的建模技术,提供直观的图形用户界面运行方式,也支持高性能的批处理模式。

Quartus®II是Altera公司出品的优秀的设计工具,它兼容第三方设计工具,为高密度FPGA设计提供了最高效和最快速的实现途径,与传统高密度FPGA设计流程相比,其设计效能显著提高

1.1红外遥控编译码器的现状和发展趋势

编译码器其实离我们很近,像电视机的遥控器、手机、录音电话的远程提取留言等等,这些设备无一例外都和编译码电路有着直接的关系。

当今的编译码电路已经朝着高度集成化和微电脑化发展,像前几年大量使用的PT22622272编译码芯片组,就是一种相当典型和有着代表意义的电路。

该芯片组可以在3~15V的电压范围内可靠工作,外围仅需一时钟振荡电阻。

单体便可提供531441种寻址能力。

目前国外(主要是欧美市场)的编译码器几乎都是多功能的,它们能够控制全球的绝大部分电子产品。

而这些编译码器一般其价格一般都比较贵,达上百美金。

值得一提的是,目前全球的编译码器的80%是由中国大陆代工贴牌生产的,但关键芯片是别人的。

国外的编译码器主要通过科技商场等管道进行销售,消费者可以根据自己的需要进行选择,其发展趋势是根据市场的需要编译码器拥有更多的功能和更人性化的设计。

而在国内市场,编译码器器绝大部分是单一型的,这与我国经济状况和消费习惯有关。

红外遥控编译码器只是单一型的编译码器的补充,在一般的主流管道是没有红外遥控销售的,许多消费者也就不知道有或者如何购买红外遥控编译码器,因此红外遥控编译码器的销量是相对很少的。

也缘于此编译码器的质量是参差不齐的,大部分使用不方便,或者名为红外遥控编译码器但对很多设备却难以控制。

但正如西方的情况,我国也会经历从使用单一型遥控器走向多功能的编译码器,尤其是在信息化迅速发展的情况下,编译码器有着广阔的需求和发展空间。

启动这一块市场的关键是使红外遥控编译码器确实好用,能够完全替代单一型遥控器的功能以及有效的市场推广。

1.2本设计的特点

因为VHDL工具软件平台的强大功能,使得设计的许多工作都能在计算机上以软件仿真的形式完成,这样不仅可以大大缩短产品的开发周期,还可以随时根据实际需要更改或者添加新的功能,设计模式更加灵活。

从而他为各类红外控制应用系统提供了一类实用的参考。

选用集成专用编译码器件,此器件成功地研制出了多信道红外遥控系统。

专用芯片设计制作红外发射和接收,并实现编译码功能,该电路为CMOS大规模数字集成多路编译码器。

该生产线有各种大电机设备,环境电磁辐射强,又处于南方高温、高湿地区,对遥控系统整体性能要求很高。

在综合分析的基础上,我们采用红外线编码方式设计,使系统具备了良好的抗电磁干扰的能力。

通过对系统电路、组装进行的精心设计处理,获得了稳定、可靠的使用效果,目前已经在全自动生产线无故障运行。

编码器PT2248发射控制器由电源部分、振荡电路及红外发射管组成。

1.3本论文的设计任务及结构

本题要求采用合适的红外遥控专用芯片,制作多路红外遥控系统的编码器,其译码器采用VHDL语言编程、可编程逻辑器件实现,完成多路红外遥控系统的设计。

主要技术要求:

1.设计完成多路红外遥控系统的编码发送部分;

2.设计完成多路红外遥控系统的接收部分;

3.用VHDL语言编程、可编程逻辑器件实现其译码电路部分;

4.完成系统输出显示部分。

本设计的任务主要完成红外遥控编译码器的系统架构设计以及关键技术问题上的解决办法;用VerilongHDL语言对红外遥控编译码器的进行解码。

接收解码用VHDL语言编写程序,在EDA实验板上实现解码,要求具有以下功能:

(a)将一体化红外接收解调器的输出信号解码(12个单击键、6个连续键,单击键编号为7-18,连续键编码为1-6),在EDA实验板上用七段数码管显示出来;

(b)当按下遥控器1-6号连续键时,在EDA实验板上用发光二极管点亮作为连续键按下的指示,要求遥控器上连续键接下时指示灯点亮,直到松开按键时才熄灭,用于区别单击键。

(c)EDA实验板上设置四个按键,其功能等同于遥控器上的1-4号按键,当按下此四个按键时七段数码管分别对应显示“1”、“2”、“3”、“4”。

(d)每当接收到有效按键时,蜂鸣器会发出提示音。

(e)通过遥控器跳线改变用户码,EDA实验板上用三个发光二极管正确显示发送端的用户码。

本论文分为六章:

第一章概要阐述红外遥控编译码器的现状和本设计的特点。

第二章对VHDL语言的介绍。

第三章主要阐述红外遥控系统结构与控制原理。

第四章介绍关于编码与译码所选择的器件的特点。

第五章详细说明红外遥控编译码器的设计以及硬件实现。

第六章总结。

1.4本章小结

本章是对我所做的是设计——基于vhdl的红外遥控编译码器的总体概述,分析了当下国内和国外的红外遥控编译码器的发展和现况,介绍了本设计内容的特点,列出了本设计的任务。

2系统的软件设计

2.1VHDL语言的介绍

VHDL的英文全写是:

VHSIC(Very High Speed Integrated Circuit)HardwareDescriptiongLanguage。

翻译成中文就是超高速集成电路硬件描述语言。

因此它的应用主要是应用在数字电路的设计中。

目前,它在中国的应用多数是用在FPGACPLDEPLD的设计中。

当然在一些实力较为雄厚的单位,它也被用来设计ASIC。

关于用VHDL和原理图输入进行CPLDFPGA设计的粗略比较:

在设计中,如果采用原理图输入的设计方式是比较直观的。

你要设计的是什么,你就直接从库中调出来用就行了。

这样比较符合人们的习惯。

但是这样做需要设计人员要在两方面有较高的素质:

1.对电路的知识要比较丰富。

 

2.对CPLDFPGA的结构比较熟悉。

 

有了这两个条件才能在设计的过程中选用适当的器件从而提高设计的可靠性、提高器件的利用率及缩短设计的周期。

但是有一个重大的问题是在于,如果你的产品有所改动,需要采用另外的CPLDFPGA时,你将需要重新输入原理图。

(改用不同的器件在今天这种竞争环境下是会经常发生的。

头儿们为了提高产品的性能或者是降低产品的造价,提高保密性等等,都会考虑选用不同的器件。

对他们而言只是做出一个决定,对我们而言却是要我们付出更多的心血)。

但是当你采用VHDL等高级语言来设计时这些问题都会得到较好的解决。

由于在使用VHDL等高级语言时,有专用的工具来实现将语言描述的电路功能转换为实际的电路所以你就用不着对底层的电路很熟悉,也用不着对CPLDFPGA的结构很熟悉(因为有专用的工具针对你的描述采用相应的器件哦)。

当你要换器件时,你只需要将原来设计好的VDHL文件在新器件的设计工具中再次实现就行了。

用高级语言设计电路的流程:

在用高级语言来设计电路时,主要的过程是这样的:

1.使用文本编辑器输入设计源文件(你可以使用任何一种文本编辑器。

但是,为了提高输入的效率,你可以用某些专用的编辑器,如:

Hdl Editor,Tubor Writer或者一些EDA工具软件集成的HDL编辑器)。

 

2.使用编译工具编译源文件。

HDL的编译器有很多,ACTIVE公司,MODELSIM公司,SYNPLICITY公司,SYNOPSYS公司,VERIBEST公司等都有自己的编译器。

 

3.(可选步骤)功能仿真。

对于某些人而言,仿真这一步似乎是可有可无的。

但是对于一个可靠的设计而言,任何设计最好都进行仿真,以保证设计的可靠性。

另外,对于作为一个独立的设计项目而言,仿真文件的提供足可以证明你设计的完整性。

 

4.综合。

综合的目的是在于将设计的源文件由语言转换为实际的电路。

但是此时还没有在芯片中形成真正的电路。

这一步就好像是把人的脑海中的电路画成原理图。

--这是我的个人观点,似乎在好多文献中都没有提到“综合”的准确定义。

至少,我读过的几本书中就没有。

这一部的最终目的是生成门电路级的网表。

 

5.布局、布线。

这一步的目的是生成用于烧写(编程Programming)的编程文件。

在这一步,将用到第4步生成的网表并根据CPLDFPG厂商的器件容量,结构等进行布局、布线。

这就好像在设计PCB时的布局布线一样。

先将各个设计中的门根据网表的内容和器件的结构放在器件的特定部位。

然后,在根据网表中提供的各门的连接,把各个门的输入输出连接起来。

最后,生成一个供编程的文件。

这一步同时还会加一些时序信息到你的设计项目中去,以便与你做后仿真。

6.后仿真。

这一步主要是为了确定你的设计在经过布局布线之后,是不是还满足你的设计要求。

如果设计的电路的时延满足要求的话,则就可以到第7步啦!

7.烧写器件(编程)。

软件的部分应该完成对所设计的下位机硬件红外码接收电路的实现,即完成对红外码的数据采集功能。

需要选择合理的开发工具和高级语言,本论文选择VHDL语言。

2.2VHDL语言的优点

VHDL语言是国际上流行的、很有发展前途的计算机高级语言。

VHDL语言的优点:

(1)语言简洁、紧凑、使用方便、灵活。

程序书写形式自由,主要为小写字母表示,压缩了一切不必要的成分。

(2)运算符丰富。

VHDL语言的运算符包含的分为很广.

(3)数据结构丰富,具有现代化的各种数据结构。

(4)具有结构化的控制语句。

能很好的使用函数来实现程序的模块化。

(5)语法限制不太严格,程序的设计自由度大。

(6)VHDL语言允许直接访问物理地址,能进行为操作,能实现汇编语言的大部分

功能,可以直接对硬件进行操作。

(7)生成目标代码质量高,执行效率高。

2.3函数的流程

数字系统的设计方法从整体和局部的先后顺序上分,可以分为自顶向下(top-down)的设计和自底向上(bottom-up)的设计。

这里采用自顶向下的设计,首先从整体上规划整个系统的功能和性能,然后对系统划分,分解为规模较小、功能较为简单的局部并确立它们之间的相互关系。

主函数作为软件的入口,合理的配置单片机的特殊功能寄存器,以合理的工作方式实现数据采集和固定的波特率进行串口通信。

主函数的工作流程:

图2-3主函数的工作流程

面向对象的编程语一言将客观事物看作具有属性和行为的对象,通过抽象找出同一类对象的共同属性和行为形成类。

结构化程序设计的思路是:

自顶而下、逐步求精;其过程结构是按功能划分为若干个基本模块,这些模块形成一个树状结构;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。

而面向对象的方法:

将数据及对数据的操作方法放在一起,作一个相互依存、不可分离的整体。

部分程序:

libraryieee;

useieeestd-logic-l164all;

entityselsis

port(d0,d1,d2,d3,a,b:

instd_logic:

out1outstd_logic):

endsels;

architecturesels_arcofselsis

signalsel:

std_logic_vector(1downto0):

begin

sel<=b&a:

outl<=d0whensel="00"else

dlwhensel="01"else

d2whensel="10''else

d3whensel="l1"else

'Z':

End

如输入端为低电平,则仿真结果中temp_:

instd_logic;--定义IO

read,con:

outstd_logic;

dataout:

outstd_logic_vector(11downto0));

endentityctrl_reg;

architecturertlofctrl_regis

signalreg:

std_logic_vector(11downto0);

typestate_typeis(A,B,C,D);

signalstate:

state_type;

begin

process(clr,clk)

variablecnt:

integerrange0to12;--低电平宽度计数

variablecntframe:

integerrange0to12;--编码位数计数

begin

if(clr=‘1’)then--清零信号

cnt:

=0;

cntframe:

=0;

read<='0';

con<='0';

state<=A;

elsif(rising_edge(clk))then--在时钟上升沿进行状态跳转

casestateis

whenA=>

cnt:

=0;--状态A,红外数据输入为"1",等待状态

read<='0';

con<='0';

if(datain=‘1’)then

state<=A;

else

state<=B;

endif;

whenB=>

cnt:

=cnt+1;--在红外数据输入为"0"期间计数

con<=‘1’;--con置"1",表示正接收到数据

read<='0';

if(datain='0')then

state<=B;

else

if(cnt>5)then--通过判断低电平宽度从而得到"0","1"编码

reg<=reg(10downto0)&‘1’;--移位寄存器移位

else

reg<=reg(10downto0)&'0';

endif;

cntframe:

=cntframe+1;

state<=C;

endif;

whenC=>

read<='0';

con<='0';

state<=D;

whenD=>--接收完12位则向dff5_pr锁存器发出触发信号

if(cntframe=12)then

read<='1';

cntframe:

=0;

else

read<='0';

endif;

con<='0';

state<=A;

endcase;

endif;

endprocess;

dataout<=reg;

endrtl;

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 农学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2