红外编码与解码的VHDL实现_第1页
红外编码与解码的VHDL实现_第2页
红外编码与解码的VHDL实现_第3页
红外编码与解码的VHDL实现_第4页
红外编码与解码的VHDL实现_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、红外编码与解码的VHDL实现红外遥控在家电中应用广泛,采用VHDL语言设计红外遥控器的控制系统, 该系统通过了实时仿真的验证,可现实键值读入,红外发射码的生成及发送功能。 电路模块的程序代码可重复使用,可方便的嵌入到各类需要红外遥控控制器的嵌 入式系统中,本次窗帘的遥控器电路就是用VHDL语言编写,并下载至CPLD中 执行。红外遥控作为一种单向红外通讯技术,因其具有性能稳定、使用方便以及成 本低廉等特点,已经在消费电器中得到了普遍的应用。随着对电器产品智能化和 使用便利性要求的进一步提高,红外遥控的应用已经从传统家电领域向智能设备 等新领域扩展。由于集成电路制造工艺的设计水平的不断提高,将此类

2、奋力电路 功能集成到嵌入式系统中已成为可能。本文设计脉冲信号调制采用了 PPM方式, 红外遥控系统采用了 VHDL语言编写,来实现该电路的功能。市场上的红外遥控器种类繁多,一般有这些类型uPD6121、TC9012、 M50560-001、SA3010等等不管遥控器的种类如何,其编码方式大多类似,本文以比较典型的UPD6121 为例,要想用可编程逻辑器件编写其内部电路模块,首先得了解整个电路的工作 原理,以下是UPD6121红外遥控器的主要原理。载波波形: Tc _|I TI图4-14红外载波波形使用455kHZ晶体,经内部分频电路、信号被调制在37.91kHZ的频率上,占空 比为:1/3,

3、1/3的占空比有助于提高红外线的发射效率。数据格式:数据格式包括了引导码、用户码、数据码、和数据反码,编码总占32位。数 据反码是数据码反向后的编码,编码时可用于对数据纠错。(注:第二段用户码 也可以在遥控应用电路中被设置成第一段用户码的反码。起始码用户码用户码数据码数据反码9nns4.5msL:J_:1. I:.二,-11.1L-1I.-I/.L.-I.-D1-图4-15 UPD6121编码前数据格式使用455kHZ晶体时各代码所占用的时间使用455kHZ晶体时各代码所占用的时间图4-16 UPD6121编码后数据格式位定义:用户码或者数据码中的每一位可以是位0,也可以是位 个。区分0 和1

4、是利用脉冲的时间间隔来区分,这种编码方式称为脉冲位置调制方式, 英文简称PPM。图4-17 UPD6121的位定义UPD6121G按键输出波形有两种方式:一种是每次按键都输出完整的一帧数 据;另一种是按键按下相同的按键后每发送完整的一帧数据后,在发送重复码, 知道按键松开。重复码3 0.56ms9ms! 2.25ms图4-18 UPD6121重复码波形单一按键波形HHHi hrinnn图4-19 UPD6121单一按键波形连续按键波形hTf与HhinnhiTf = 108ms 455KHZ晶振I图4-20 UPD6121连续按键波形4.4.1、EPM3128ATC100-10复杂可编程逻辑器件

5、芯片介绍EPM3128ATC100-10是ALTERA公司MAX3000A CPLD系列中的一种。MAX3000A 系列的CPLD采用成本优化的0.3um,四层金属生产工艺,提供32到512个宏单元。 3.3V的MAX3000A CPLD系列提供商业级和工业级常用的速度等级和封装,是那些 对成本敏感,大批量应用的企业的理想选择方案。EPM3128ATC100-10特 点:图 4-22 EPM3128ATC100-10 封装EPM3128ATC100-10特 点:图 4-22 EPM3128ATC100-10 封装Table 1. MAX 3000A Device FeaturesFeature

6、EPM3032AEPM3064AEPM3128AEPM3256AEPM3512AUsable gates6001,2502,5005,00010,000Macrocells326pl128256512Logic array blocks2481632Maximum user I/O pins346696158208tpD (ns)4.54.55.05.57.5tsu (ns)2.92.83.33.95.6tcoi (ns)3.03.13.43.54.7fcNT (MHz)227.3222.2192.3172.4116.3图4-21 max3000a系列产品特性逻辑门:2500逻辑阵列块(LAB

7、): 8宏单元(Macrocells): 128用户IO口: 76非用户IO口: 20JTAG 下载口: 4合计:100封装:TQFP芯片中包含四个专用输入口(GCLK1,0E1,GLCRn,0E2(GCLK2),分别为是全局时钟、全局使能、全局清零、全局时钟/使能信号,这几个信号有专用的连线 与CPLD内部的每个宏单元相连,信号到每个宏单元的延时相同且延时最短,如果 不用这些引脚可以将其接地。4.4.2、红外遥控器模块的原理图红外遥控模块的硬件部分原理图较为简单,该电路主要由键盘扫描电路、红图4-23红外遥控发射电路图由于ALTERA公司的3.3V/2.5V的MAX3000A芯片的IO脚兼容

8、5V,所以键盘 扫描电路的上拉电源可以接5V。D1为红外发射管,D2为红外发射指示灯。4.5、主控制板每个模块功能介绍主控制板电路除了 CPLD的最小系统之外主要有双门限电压比较电路、数码 管扫描显示电路、按键脉冲发生电路、红外接收电路(上面已有介绍)、电机驱 动电路(上面有介绍)以及一些接插件等。4.5.1、CPLD最小系统绍CPLD的最小系统主要是电源电路、程序的下载电路以及时钟输入电路(作为 纯组合逻辑时可不接)几部分组成。电源电路:采用5V电源适配器供电经AMS1117稳压后产生3.3V电压给CPLD供电。CPLD的 每个电源引脚均要接滤波电容,典型值0.1uF。图4-24电源部分电容

9、C5C12为芯片的每个电源引脚的旁路滤波电容,起电荷池作用,以平 滑电流变化引起的电源电压的波动,当芯片电流突然增大时,旁路滤波电容放电 以降低芯片的电压波动。旁路滤波电容通常选用10100nF的瓷片电容,瓷片电容的特点是:电感小, 等效串联电阻低,用作旁路滤波电容非常合适。下载电路:ALTERA公司提供了多种编程下载电缆,如ByteBlasterMV、ByteBlaster II 并行下载电缆,目前更好的选择是采用USB接口的USB-Blaster下载电缆。USB-Blaster电缆与ALTERA器件的接口一般是10芯的接口,其信号定义见表。引脚12345678910JTAG模式TCKGND

10、TDOVCCTMSTDIGND图4-25 10芯接口引脚图下载电路原理图:图4-26下载电路时钟电路:CPLD的主时钟采用25MHZ有源晶振,电路图如下:5.1、红外遥控编码原理与设计由于EPM3128A芯片的宏单元数量的有限性,在编写红外编码发射电路时,不 得不考虑芯片资源的节约问题,所以本设计编写的红外遥控编码原理与UPD6121 稍微有所差别,UPD6121格式中数据码和用户码均为8bit,这样编码或者解码时 会占用很多的寄存器,及占用CPLD内部很多的可编程触发器。而本文设计的遥控 器只有16个按键,没有那么多种数据要编码发射,且EPM3128A芯片资源也是有限 的,所以对用户码和数据

11、码均设定义为4bit。本文设计的红外编码采用PPM编码 方式,下面是其编码信息。载波信号:f=38khz;占空比1/3;位定义:a为一个时间单位时间长度是38kHZ的16个时钟周期,艮Pa=138kHZ X16=0.421ms (这样有助于时钟分频,减少触发器使用的数量) TOC o 1-5 h z 位1位0n_;RL-.广a,:尸,;4a 2a图5-2位定义数据格式:数据格式中包含了引导码、数据码、数据反码、用户码、用户码,除引导码 外其余均为4bit,编码总占16bit。其中引导码的高电平6.74ms=16a,低电平 3.37ms=8a。图5-3编码前数据格式每按一次按键发送一帧数据|数据

12、码及其反码用户码、用户码I|10.1ms|16.336ms tch 26.936ms to 33.672ms图5-4编码后数据格式红外遥控编码的主要电路有,键盘扫描电路、PPM编码电路、时钟分频电路、 以及调制电路等组成。时钟分频电路:产生整个电路所需要的所有时钟频率键盘扫描电路:产生4位键值信号PPM编码电路:对要发送的数据进行编码后发送调制电路:38kHZ的频率与PPM编码后的串行输出信号进行相与即可很明显电路的关键是对要发送的数据进行PPM编码,为了充分利用EPM3128A 有限的宏单元,选择一个良好的PPM编码的实现方式显的非常的重要。下面是两种PPM编码方式:有PPM编码的位定义可知

13、,原码 1一10000一10方案1:首先在PPM编码过程中省去了引导码(方案2同样),只对要发送的数据进行 PPM编码论述。由编码格式可知,要发送的数据的有效信号位数长短不一,不能用简单的逻 辑变换将原信号转变为要发送的PPM编码信号后再移位输出。数据必须按照顺序 装载在移位寄存器的前半部分。将数据码、数据反码、用户码、用户码分别装入 16位缓冲寄存器中,用38kHZ、占空比为1/3的频率(频率不固定,其周期最好大 于时间a)对这16位缓冲寄存器进行逐位采样,当待译码为1时采样得到的信号为 1000,当待译码为0时得到的信号10,并依次装入64位移位寄存器,移位寄存器 若有空余位,则全部补零。

14、当装载完成后,移位寄存器进行移位,在移位的过程 中,需要对移位的位数进行计数,当移位寄存器寄满64位时停止移位。实际应用 时最好在移位寄存器前加一个输出位。该方案的实现方法较为简单,但是会浪费 系统很多的资源,紧紧这两个寄存器就需占用80个可编程触发器,当要发送的数 据过长,用这样的方法编码简直就是不切实际的。其逻辑框2图如下:图5-5方案1编码原理框图方案2:方案2也是本人被芯片有限的资源逼出来的一种实现方案,方案若有啥不足 之处,请多多指教。当键盘扫描模块得到稳定键值数据时,将数据码、数据反码、用户码(用户 码可以设定为4bit常量)分别装载于寄存器中。并且启动PPM编码发送电路。数 据码

15、、数据反码。用户码、用户码分时装载于缓冲寄存器(4bit)中,再由缓冲 寄存器装载于移位寄存器(5bit、右移)的4个高位中,及移位寄存器的最低位 (输出位)不装载。自由计数器是两位模值可控计数器,当移位寄存器的移出位是0时,自 由计数器计数值由“00” 一“01” 一“00”变化,当移位寄存器输出位是1 时,自由计数器计数值由“00” 一“01” 一“10” 一“11” 一“00”变 化。自由计数器每次清零时,产生移位时钟,以对移位寄存器中的数据进行移位。 当移位满4位时,产生地址时钟信号,以对地址发生器做加1处理。地址发生器由两位计数器构成,地址时钟信号每来一次脉冲,计数器加1, 四位地址

16、分别为“00”“01”“10”“11”。分别对应数据码、数据反码、用户码、 用户码。比较器的功能是,将自由计数器的输出值与“01”比较,当自由计数器输出 “01”时,比较器输出为1,其余数值时比较器输出0。这样当移位寄存器 的输出位是1时,比较器就按顺序输出 1 0 0 0,当移位寄存器输 出位是0时,比较器就按顺序输出1 0。图5-6方案2编码原理框图了解数据发送的基本结构后,在程序编写时,关键是在无“时间缝隙”的情 况下,分别将数据调制发送出去,所以把握好整个电路中的每一个时钟的上升沿 和下降沿显的非常的重要。方案2虽然在结构上貌似麻烦了一点,但是它可以节 约芯片的资源,而且当数据量越大时

17、效果越明显。无疑对于像触发器比较匮乏的 MAX3000A系列的CPLD来实现类似于NEC的uPD6121的编码规则,是一个良好的实现 方案。遥控器除了遥控编码当然还有键盘扫描电路。键盘是4*4键盘,行线接的电阻是上啦电阻,阻值一般为几个K,作用是限流。CPLD循环输出行信号(KX3.0)“1110”“1101”“1011”“0111”,当没有 按键按下时,CPLD的列输入信号(KY3.0)为“1111”。当有按键按下时,例如, 按下1键,此时KX3.0行信号输出为“0111”,此时输入端KY3.0检测到的信 号将是“0111”。可以在编写程序时,将输出信号KX3.0于输入信号KY3.0 同时判

18、断,如刚刚举的例子,可以认为当数据“KX&KY”为“01110111”时,可 以译成数据1,同理可得其它按键的编码。键盘扫描程序设计思想:循环输出行信号“1110”“1101”“1011”“0111”。检测列信号输入,将行、 列信号相并“ K_CODE=KX_TEMP&KY ”。译键值,将行、列相并的信号“K_CODE”译成“0000” “0001” “0010” “0011”“0100” “0101” “0110” “0111” “1000” “1001” “1010” “1011” “1100” “1101” “1110” “1111”,并且锁存。去抖动,在译每一个键值后,为了防止按键抖动,加了一个计数环节,一旦 检测到列信号后就译码,紧跟着进入计数环节,此时键抖动不会进入其它环节, 这样可以防止键的抖动。5.2、红外解码原理与设计红外接收器接收到的红外信号后,输出电平与信号的有无一般是反向的,但 是在硬件电路连接时,在其输出脚接了 PNP管,信号从三极管的集电极输出全 CPLD。所以,CPLD需要解码的数据与其发射时数据的相位是同相的。一般文献在 介绍红外解码时,选用VHDL语言的有限状态机对红外信号进行解码,用有限状态 机解码的优点有很多,本文不再冗述。本文主要是基于寄存器或者计数器的状态 对整个电路的解码流程进行详细的数据流描述,这样可以更好了解电路的硬件结 构

温馨提示

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

评论

0/150

提交评论