




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、红外遥控器的接收解调模块设计小型应用系统综合设计姓名:。班级:通信1121学号:11301191211130119122 1130119130指导老师:刘传洋时间:11月3日11月14日项目设计环境使 用(20分)设计任务功能 理解与分析(10 分)功能模块设计 (编程及外围电 路考虑)(30 分)功能仿真与实现(10分)设计报告及 提问(30 分)合计(100 分)得分设计要求1, 设计制作一个接收红外遥控器信息的功能模块。具体设计内容包括:2, 红外遥控器的编码原理,脉宽调制码基本原理如下:采用銀宽调制的串ff码,以肘:宽为0. 565ms.间隔0. 56ms.周期为1. 125ms的组
2、合表示二迸制的 吋:以咏宽为0. 565ms,间隔1飞85備、周期为2. 25ms的组 台表示二进制的,蔑波形如圏2所示,说 一L 125ms2.25ms弓HRWJSWKWS!国至丽逐匱更蜃更富畧遷更壬更至ILI-4遥控器在按键按下后,周期性地发出同一种32位二进制码,周期约为iOSms. 当一个键按下,将发射一组108ms的编码脉冲,这108ms发射代码由一个起始 码9砧) i个结果码(4.亦却氐&立地址码(9ms 18ms),高3空地址码 (9ms18ms) , 8位数据码(9ms 18ms)和这8位数据的反码(9ms18ms)组成:3, 设计二进制数0/1的脉宽调制的解调模块;4, 设计
3、接收32比特信息解调的控制模块;5, 设计基于LCD1602勺接收数据显示模块;方案设计及硬件电路设计1, 红外遥控电路的工作原理红外遥控作为一种单向红外通讯技术,因其具有性能稳定、使用方便以及成本低廉等特点,已经在消费电器中得到了普遍的应用。随着对电器产品智能化和使用便利性要求的进一步提高,红外遥控的应用已经从传统家电领域向智能设备等新领域扩展。由于集成电路制造工艺的设计水平的不断提高,将此类分立电路功能集成到嵌入式系 统中已成为可能。 本文设计脉冲信号调制采用了 PPM方式,红外遥控系统采用了 AHDL语言编写, 来实现该电路的功能。市场上的红外遥控器种类繁多,一般有这些类型uPD6121
4、 TC9012 M50560-001、SA3010等等 不管遥控器的种类如何,其编码 方式大多类似,本文以比较典型的UPD6121为例,要想用可编程逻辑器件编写其 内部电路模块,首先得了解整个电路的工作原理,以下是UPD6121红外遥控器的主要原理。 载波波形如图3.1所示。图3.1红外载液被形使用455kHZ晶体,经内部分频电路、信号被调制在37.91kHZ的频率上,占 空比为:1/3,1/3的占空比有助于提高红外线的发射效率。数据格式:数据格式包括了引导码、用户码、数据码和数据反码,编码总占32位。数据反码是数据码反向后的编码,编码时可用于对数据纠错。(注:第二段用户码也可以在遥控应用电路
5、中被设置成第一段用户码的反码。)用户码rE用户码1数据反码1 7 小 1.C4Cfi Cl-2 bsI abe DOD2TO-1 -使用455kHZ晶体时各代码所占用的时间图乩3 UPD6121編码后数据格式位定义:用户码或者数据码中的每一位可以是位 0,也可以是位 1区分0和 1是利用脉冲的时间间隔来区分,这种编码方式称为脉冲位置调制方 式,英文简称PPMfX o0.56m$1.125ms图3池UPE6121的位定义UPD6121G按键输出波形有两种方式:一种是每次按键都输出完整的一帧数据; 另一种是按键按下相同的按键后每发送完整的一帧数据后,再发送重复码,直到按键松开。重复码波形如图3.5
6、所示。2.25msOO图3” 5 UPD6121重复码波形单一按键波形如图3.6所示。图王6 UPD6121单一按键披形连续按键波形如图3.7所示Tf = 108ms 455KHzO图3.F uPD6121连缮按键波形2红外遥控器模块的原理图 红外遥控模块的硬件部分原理图较为简单, 该电路 主要由键盘扫描电路和红外发射部分组成,而编码调制部分由软件部分负责。O扫描电路的上拉电阻可以接5V电源。D1为红外发射管,D2为红外发射指示灯。3,红外遥控编码原理与设计由于EPM3128A芯片的宏单元数量的有限性,在编写红外编码发射电路时,不 得不考虑芯片资源的节约问题,所以本设计编写的红外遥控编码原理与
7、UPD6121丿 111、O稍微有所差别,UPD6121格式中数据码和用户码均为8bit,这样编码或者解码时 会占用很多的寄存器,及占用 CPLD内部很多的可编程触发器。而本文设计的遥 控器只有16个按键,没有那么多种数据要编码发射,且EPM3128A芯片资源也是 有限的,所以对用户码和数据码均设定义为 4bit。本文设计的红外编码采用 PPM 编码方式,下面是其编码信息。载波信号:f=38khz ;占空比1/3; 位定义:a为一个时间单位时间长度是38kHZ的16个时钟周期,即 a=1 - 38kHZX16=0.421ms(这样有助于时钟分频,减少触发器使用的数量)4a图3.9位定义数据格式
8、:数据格式中包含了引导码、数据码、数据反码、用户码、用户码,除引导码外其余均为4bit,编码总占16bit。其中引导码的高电平6.74ms=16a,低电平 3.37ms=8a=起始码数据码:数据反码用户码用户码6.74ms3,37ma.:chJ:UJ22DCAD22:图3.10编码前数据格式 每按一次按键发送一帧数据10 1ESTto IKTStthI【数据码及其反码用户码.用户码IU1 J|10.1ms16 B36ms to23.572m&|h Jto 33.672ms图3.11编码后数据格式红外遥控编码的主要电路有,键盘扫描电路、PPM码电路、时钟分频电路、以及调制电路等组成。时钟分频电路
9、:产生整个电路所需要的所有时钟频率;键盘扫描电路:产生4位键值信号;PPMS码电路:对要发送的数据进行编码后发送;调制电路:38kHZ的频率与PPM编码后的串行输出信号进行相与即可。很明显电路的关键是对要发送的数据进行PPM编码,为了充分利用EPM3128A有限的宏单元,选择一个良好的 PPM编码的实现方式显的非常的重要。下面是两种PPM编码方式: 有PPMS码的位定义可知,原码 1 10000 10红外遥控解码原理与设计红外接收器接收到的红外信号后,输出电平与信号的有无一般是反向的,但是在硬件电路连接时,在其输出脚接了 PNP管,信号从三极管的集电极输出至 CPLD 所以,CPLD需要解码的
10、数据与其发射时数据的相位是同相的。一般文献在介绍 红外解码时,选用VHDL语言的有限状态机对红外信号进行解码,用有限状态机 解码的优点有很多,本文不再冗述。本文主要是基于寄存器或者计数器的状态对 整个电路的解码流程进行详细的数据流描述, 这样可以更好了解电路的硬件结构 以节约整个电路资源。下面就以其发射时的波形对红外解码电路进行阐述。T 6ms 10 13 472msI数据码及苴反码用户码、用户码 I10. Ims4116 鈴6ms霁Sms26.936ms to 33.&72ms图3.12编码后数据格式解码流程结构图如图3.13所示。code7.QDin38 延时计数器CIclk_38k丨图3
11、.13红外解码流程图解码电路:输入信号Din、时钟信号38khz和输出信号code7.0。 流程1: 当红外信号的第一个上升沿来临时, 锁存器锁存输出至1开始起始码解码过 程,当起始码解码完成后,对输出标志位至 1启动数据码解码过程。(起始 码电路后面详细阐述) 流程2:当红外信号的第二个上升沿来临时,位地址加1 流程3:当红外信号的第二个下降沿(及数据码的第一个下降沿),延 时计数器复位,开始倒计时计数(实际为下降沿后一个很短的低电平信号对延时 计数器复位)。流程4:延时计数器为模值为24的倒计时计数器,当计数器为1是,输出为 1即产生clk脉冲。延时计数器的模值计算:当数据码的下降 沿来临
12、时开始延时,延时的时间宽度最好在1.5a,a是数据码最小脉冲的宽度。也就是说,当下一位数据为0时,延时后的脉冲信号要对准下一位数据码的高电 平的中间部分,这样即使编码器的晶振时钟与解码器的晶振时钟有所误差也不会 产生解码错误。至于延时计数器的时钟频率,最好远远高于红外信号的数据传输 速率。当然,频率越高,计数器的模值就越大,适当就好。38k频率时钟的周期t=1/16a,所以选择了模值为24的倒计时计数器。流程5: clk时钟根据位地址 将Din反向后装载于code7,上升沿触发.流程6:再重复整个数据解码过程 7次,解出所有数据码及其反码。后八位在实际测试时未解码,读者可以适当修 改电路后再解
13、码。当完成整个解码过程后要产生一个使能信号,一个脉冲沿,还有四位有效数据。解起始码部分如图3.14所示Dincik_38k图3.14起始码解码框图起始码部分由16a的高电平和8a的低电平组成,用38khz的频率对红外信号 Din进行采样。起初,当采样信号为1时累加器1加一处理,如果其中有一次为 0,则对累加器清零。直到采满15次连续的 1信号后,再对Din信号的低电 平采样,同理采满连续7个0信号后,输出起始码有效信号。如果连续的0 信号中出现一个或者多个高电平信号,则对累加器1和累加器2全部清零,恢复初始解码状态。比较器的大小并无固定的值,根据采样时钟而定,允许累加器的 数值有所偏差,采样频
14、率越高,越是能够采得比较精确的起始码,但频率越高, 累加器位数也越多,适可而止即可。程序设计本程序主要功能是接收红外,并且解码,然后在四个数码管上显示出来(32位码)。主程序分为以下几个模块:分频和计数、状态机、数码管显示。 分频 计数部分主要实现50Mz与采样频率的同步问题,使得采样频率满足红外接收器 的要求,同频率输入存储;状态机部分主要依据红外编码规则,实现红外编码的解码,利用状态转换方式 区分不同区域的红外编码,从而实现相应的译码。数码管显示部分主要是将接受并解码后的编码转换成七段码由数码管进行显示,此处利用了DE2底层函数实现,具体函数参加DE2光盘。程序如下:module IR(c
15、lk,rst_n,IR,led_cs,led_db);in put clk;in put rst_ n;in put IR;output 7:0 led_cs;output 7:0 led_db;reg 3:0 led_cs;reg 7:0 led_db;reg 7:0 led1,led2,led3,led4;reg 15:0 irda_data; / save irda data,tha n send to 7 segme nt ledreg 31:0 get_data; / use for sav ing 32 bytes irda data reg5:0 data_c nt;/ 32 b
16、ytes irda data coun terreg 2:0 cs,ns;reg error_flag;/32 bytes data 期间,数据错误标志/reg irda_regO; / 使用。-为了避免亚稳态,避免驱动多个寄存器,这一个不reg irda_reg1;/reg irda_reg2;/这个才可以使用,以下程序中代表irda的状态 为了确定irda的边沿,再打一次寄存器,以下程序中代表irda的前一状态wire irda_ neg_pulse; / wire irda_pos_pulse; / wire irda_cha ng; / always (posedge clk) /确定
17、irda的下降沿 确定irda的上升沿 确定irda的跳变沿在此采用跟随寄存器if(rst_n)beg inirda_reg0 = 1bO; irda_reg1 = 1b0; irda_reg2 = 1b0; endelsebeg inirda_reg0 = IR;irda_reg1 = irda_reg0;irda_reg2 = irda_reg1;endassig n irda_cha ng = irda_ neg_pulse | irda_pos_pulse; /IR接收信号的改变,上升或者下降assig n irda_ neg_pulse = irda_reg2 & (irda_reg
18、1); /IR接收信号irda下降沿assig n irda_pos_pulse = (irda_reg2) & irda_reg1; /IR接收信号irda上升沿/ /设计分频和计数部分:从PT2222的规范中我们发现最 小的电平持续0.56ms,而/我们在进行采样时,一般都会对最小电平采样16次。也就是说要对0.56ms最少采样/16 次。/0.56ms/16=35us/DE2开发板信号频率为50MHz即时钟周期为20ns,所以我们需要的分 频次数为:/35000/20=1750/在设计中我们利用了两个 counter,一个counter用于计1750次时钟主 频;/ 一个counter用
19、于计算分频之后,同一种电平所 scan到的点数,这个 点数最后会用来判断/是leader 的 9ms还是 4.5ms,或是数据的 0 还是 1。/ reg 10:0 cou nter; /分频 1750 次 reg 8:0 cou nter2; /计数分频后的点数wire check_9ms; / check leader 9ms time wire check_4ms; / check leader 4.5ms time wire low; / check data=0 timewire high;/ check data=1 time/分频1750计数always (posedge clk
20、)if (rst_n)counter = 11d0;else if (irda_chang) /irda 电平跳变了,就重新开始计数 counter = 11d0;else if (coun ter = 11d1750)cou nter = 11d0;elsecoun ter = coun ter + 1b1;/ always (posedge clk)if (rst_n)cou nter2 = 9d0;else if (irda_chang)/irda电平跳变了,就重新开始计点cou nter2 = 9d0;else if (coun ter = 11d1750)coun ter2 = co
21、un ter2 +1b1;assig n check_9ms = (217 counted & (co un ter2 297); /257为了增加稳定性,取一定范围assign check_4ms = (88 counter2) & (counter2 168); /128 assign low = (6 coun ter2) & (cou nter2 26);/ 16 assig n high=(38 counter2) & (counter2 58);/48/ gen erate statemach ine状态机parameter IDLE=3b000,/ 初始状态LEADER_9 =
22、3b001, /9msLEADER_4=3b010, /4msDATA_STATE =3b100; /传输数据always (posedge clk)if (rst_n)cs = IDLE;elsecs = ns; / 状态位always ( * )case (cs) IDLE:if (irda_reg1) ns = LEADER_9;elsens = IDLE;LEADER_9:if (irda_pos_pulse)beg inif (check_9ms) ns = LEADER_4;elsens = IDLE;endelse / 完备的 if-else-=LEADER_9;LEADER_4
23、:if(irda_ neg_pulse)begi nif (check_4ms)ns = DATA_STATE; else/leader 9ms防止生成latch ns/ leader 4.5mscheckcheckns = IDLE; endelsens = LEADER_4;DATA_STATE:if (data_cnt = 6d32) & irda_reg2 & irda_reg1) ns =IDLE;else if (error_flag) ns = IDLE;elsens = DATA_STATE; default:ns = IDLE; endcase/状态机中的输出,用时序电路来描
24、述always (posedge clk)if (rst_n)beg indata_cnt = 6d0;get_data = 32dO;error_flag = 1bO;endelse if (cs = IDLE)beg indata_cnt = 6dO;get_data = 32dO;error_flag = 1bO;endelse if (cs = DATA_STATE)beg inif (irda_pos_pulse) / low 0.56ms checkbeg inif (!low) /errorerror_flag = 1b1;endelse if(irda_ neg_pulse)/
25、check 0.56ms/1.68ms data 0/1beg inif (low)get_data0 = 1b0;else if (high)get_data0 = 1b1;elseerror_flag = 1b1;get_data31:1 = get_data30:0;data_c nt = data_c nt + 1b1;endendalways (posedge clk)if (rst_n)irda_data = 16d0;else if (data_cnt =6d32) & irda_reg1)beg inled1 = get_data7:0; /数据反码led2 = get_dat
26、a15:8; /数据码led3 = get_data23:16;用户码led4 = get_data31:24;end/四个数码管共用一个8位数据线,所以采用四个数码管快速轮流显示的方 法/in itial led_cs = 4b0001;in teger i=0;always (posedge clk) begi n if(rst_n)begi nif(rst_n)begi nIed_cs = 4b0001;endelse if(i=2000)begi nif (Ied_cs=4b1000)beg inIed_cs=4b0001;i=0;endelsebegi nled_cs=led_cs 1; i=0;endendelse i=i+1;end/四个数码管分别显示不用的数/in itial led_db = 8hff;always (posedge clk)if(rst_n)beg inled_db = 0hff;/共阳数码管复位endelsebeg inif (led_cs=4b0001) led_db= Ied1;if (led_cs=4b0010) led_db= led2; /if (led_cs=4b0100) led_db= led3; / if (led_cs=4b1000) led_db= led4; / enden dmodule编译及仿真、下载调试其仿
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度黑龙江省高校教师资格证之高等教育法规综合检测试卷A卷含答案
- 大学语文批判思维试题及答案
- 创新思政理论在2024年的探讨试题及答案
- 【道法】第一单元 珍惜青春时光练习课件-2024-2025学年统编版道德与法治七年级下册
- (高清版)DB12∕T 512-2014 土壤样品中硝态氮的测定方法
- 实习协议三方(2025年版)
- 二零二五年度技术成果保密协议解除及后续处理
- 二零二五年度文化产业分红协议书
- 二零二五年度文化旅游资金代管合作协议
- 2025年度酒店客房协议价及长住客户优惠政策合同
- 全国计算机等级考试《三级信息安全技术》专用教材【考纲分析+考点精讲+真题演练】
- 2025年上海市各区初三语文一模试题汇编之综合运用
- 2025年上海烟草集团有限责任公司招聘笔试参考题库含答案解析
- 2025年国家电网校园招聘历年高频重点提升(共500题)附带答案详解
- 健康管理智慧健康管理系统建设方案
- 盆底生物反馈治疗肛门直肠功能障碍性疾病中国专家共识(2024版)解读
- 《低压智能断路器检测规范》
- 2025年河北省职业院校技能大赛生产事故应急救援(高职组)赛项考试题库(含答案)
- 信息安全保密三员培训
- 《赤壁之战》课本剧剧本:烽火连天英雄辈出(6篇)
- 2024年10月自考13648工程项目管理试题及答案含评分参考
评论
0/150
提交评论