红外光通信装置业设计毕业论文.doc_第1页
红外光通信装置业设计毕业论文.doc_第2页
红外光通信装置业设计毕业论文.doc_第3页
红外光通信装置业设计毕业论文.doc_第4页
红外光通信装置业设计毕业论文.doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

红外光通信装置业设计毕业论文目 录第一章 方案设计与论证11.1 方案一 51单片机红外转发原理11.2 方案二 利用CD40106实现语音红外传输21.3 方案三 利用三极管调试实现语音红外传输31.4 方案的论证与选定4第二章 电路设计52.1 系统原理图52.2 发射模块设计62.3 接收模块设计72.4 指示灯模块设计82.5 温度传感模块82.6 红外编码解码原理9第三章 测试方法与测试结果123.1 测试仪器123.2 测试方法与技巧123.3 电路测试及测试结果12参考文献14附录15致谢43第一章 方案设计与论证 1.1方案一 51单片机红外转发原理红外光语音传输体系原理是以红外光作为语音传输的载体。这类传送系统传输速率快,干扰小,可靠性高,适宜多种短距离无线通信场所使用,例如学校的语音授课系统、家庭居所、图书馆阅览室、医院等,在电子产品发展中具有很大的潜力。红外光语音转发装置主要由两个模块组成,分别为发射模块和接收模块。此装置是利用看不见摸不着的红外线作为语音传送的载体来传递声音的。红外光语音转发装置发射模块流程图如图1-1所示:图1-1 红外光语音转发装置发射模块流程图在发射模块话筒中获取到的音频信号十分微弱,并且噪音信号和音频信号同时传入到话筒中,因此首先应当对音频信号进行滤波处理并放大处理。红外光转发装置的发射模块将微小的语音信号经过滤波,放大处理后,再使用莫属转化器,使其转化成利于单片机传输的数字序列。然后在加上同步字符,最后使用门电路对信号进行码型转化,然后语音信号就可以以光脉冲的形式发送出去。红外光语音转发装置接收模块流程图如图1-2所示:图1-2红外光语音转发装置接收模块的流程图在红外光语音转发装置的接收模块,利用红外接收管捕获发射模块发出的光信号,然后用光电转化器将光信号转化为电信号,再进行放大,整形,还原13处理,然后用数模转换器将信号的高频部分滤去,最后将光信号转化为声音信号传送到功率放大电路,经放大后由扩音器播放出声音,这样便完成了红外光语音转发。此方案采用STC12C5A60S2控制模数转换、数模转换和同步传输。完成同步的方式是在的下降沿到来时,单片机STC12C5A60S2先向I/O CLOCK口发1111作为信号的起始标志,然后再把I/O口 CLOCK序列信号传送给I/O CLOCK口,并从DATAOUT中获得上次转化的结果。红外语音传送体系是把红外光作为传输载体,因为红外光不能把语音信息进行直接传送,所以本体系使用了模数和数模转换来调制音频信号。使用STC12C5A60S2单片机程序及中断控制,完成模数、数模转换和同步传输。系统主要由发射部分和接收部分组成。发射模块对微弱语音信息进行滤波和放大处理后传入模数转化器将模拟语音信号转化成数字脉冲序列信号,单片机提供同步时钟信号,在信息开始传输前附加同步字符作为信息开始传输的标志并使用门电路完成码形转换,最后驱动红外发射管把光脉冲作为信息的载体发射出去。在红外光语音转发装置的接收模块,利用红外接收管捕获发射模块发出的光信号,然后用光电转化器将光信号转化为电信号,再进行放大,整形,还原处理,然后用数模转换器将信号的高频部分滤去,最后将光信号转化为声音信号传送到功率放大电路,经放大后由扩音器播放出声音,这样便完成了红外光语音转发。本装置使用的都是普通元器件,若使用抗干扰能力好、精确度高的元器件其传输特性将会有很大提升。由于器材的原因,所以放弃了此方案。1.2方案二 利用CD40106实现语音红外传输图1-3是一种红外光语音通信的转发的流程图。图1-3 方案二原理框图图1-3(a)中的Mic代表麦克风,只需对着麦克风喊话,麦克风的输出信号通过运放加以放大,放大后的语音信息通过调制器对语音信号进行调制处理,再通过红外线发光二极管发送已调制的语音信息。此系统用的调制器是一个脉冲振荡器,能发出对称的方波信号。在红外语音信号传到该振荡器的输入端的时侯,令脉冲信号的占空比跟着红外语音信号呈线性变化,因而达到调制目的。图1-3(b)是光语音转发装置的信号接收的解调电路,用红外接收管接收图1-3(a)电路发送出来的红外光语音信号,该接收的光语音信号根据图1-3(a)发送模块的红外光强弱而变化。红外接收管的输出的信号经过两次运放放大后,传送到滤波电路对调制的光语音信号解调,被解调出的光语音信号再经过放大,供后面的语音处理电路工作。1.3方案三 利用三极管调试实现语音红外传输图1-4 方案三红外发送接收原理红外光语音转发装置的发射模块的电源为6V,初始的语音信号经过鉴频后,再经BJT放大后通过红外发射管发送出去,调节基级电流是通过调节可变电阻来实现的,控制发射电路的发射功率,但是发射模块的发射功率不能调的过大,否则BJT或二极管将可能烧坏。该红外光语音转发装置由发射模块和接收模块组成。图1-4(a)为发射模块电路。经过鉴频后的语音信号,再经三极管VT放大处理后推动红外光发射管工作。因为红外语音转发装置的发射模块的发射强度是和通过它的电流呈线性变化的,所以发射模块VD1、VD2所发射出的红外光,便受到语音信号的控制。发射模块的VD1、VD2在工作中要设置一定的偏置,否则将出现失真现象。图1-4(b)是接收模块原理图。其电路使用一块音频放大集成电路LM386。VD是一个红外光接收管。当被调制的红外光发射到VD上时,在它的两端产生一个电信号与语音信号变化规律相同,经C1耦合到IC,再进行放大。电容C2,C3,C6,C7作用是对信号滤波R1是偏置电阻电容C1和C5的作用是对电路耦合和隔直的作用C3是旁路电容C4是高频旁路电容LM386是音频功率放大器CK是耳机插孔1.4方案三 方案的论证与选定方案一使用STC12C5A60S2控制模数转换、数模转换和同步传送。完成同步的方法是在的下降沿到来时,单片机STC12C5A60S2先向I/O 口CLOCK端发送1111作为信息的起始标志,然后再把I/O口 时钟clk序列传给I/O口 CLOCK端口,同时从DATAOUT接收前次转换结果。此方案理解起来不难但是实施起来难度较大,于是放弃了此方案。 方案二 使用CD40106实现语音红外传送,通过CD40106组成的红外语音转发电路发送红外光语音信号,红外接收装置(红外接收管)接收红外语音信号,红外接收管接收到的信号经过两级运放放大后,再进行滤波,解调。其解调信号再放大,供后级语音处理电路工作(或用耳机收听或放大后用功放放音)。此方案运用模拟方式传输红外信号,由于我们实验室没有CD40106此块芯片,只好放弃此方案。方案三利用三极管实现语音红外传输,它具有结构简单、易于制作、干扰小、噪声低等优点。所以选择方案三。第二章 电路设计2.1系统总体原理图系统原理图如图2-1所示。本系统由发送模块,中继模块和接收模块三个模块组成。发送部分原理:通过固定继电器控制切换,模拟信号和数字信号都加入到发送电路进行发送,发送方法采用分时复用的原理,先发送模拟信号,然后发送10ms的数字信号,然后快速切换到发送模拟信号,如图2-2所示。中继电路原理:接收并转发模拟信号和数字信号,同时进行功率放大驱动喇叭发声音,数字信号解码并显示。接收电路部分,收到中继转发的模拟信号和数字信号,并用数码管显示。图2-1 方案三系统总体原理图图2-2 数字模拟通道分时复用原理图2.2发射模块设计图2-3 方案三 发送原理图图2-3为发射模块电路图。红外光语音信号经过三极管的放大处理后来推动红外光发射管的工作。鉴于发射管的发射强度是和通过它的电流成正比的,所以装置发射端VD1、VD2所发出的红外光便受到声音信号的节制。发射端VD1、VD2要设置一定的偏置,否则会引起失真。 C1是发射器的核心;当语音信号传到图中的A、B点时,经过电容C1(4.7)的去掉直流部分后会在器件8050的基极加上一组和语音信号同时变化的电流,再经过8050的放大作用,来促使两红外发光管。使其对语音信号的幅度大小同步调制,转化为红外信号发射出去。C2,C3,是滤波电容R1是偏置电阻C1是具有耦合和隔直的作用的电容C3是旁路电容我用学校的模电试验箱搭起发射电路,用喇叭代替VD1,VD2,然后接入语音信号,接通电源,从喇叭可以听到音频信号,说明我做的发射电路没有问题,但是声音干扰有点大,于是我就用PCB制版,紧接着将原件焊接好,同样的方法测试发射电路,发现喇叭干扰明显减小,于是我的发射模块就做好了。2.3接收模块设计图2-4 方案三接收原理图图2-4是接收模块原理图。本电路使用一个集成元件LM386,它具有音频放大的作用。VD是一个红外光无线接收管。当被调制过的红外光语音信号传到接收端VD时,在其两端产生一个电信号与语音信号变化规律相同,经过C1耦合到IC,再进行放大。鉴于IC有功率放大的作用。电容C6,C7具有滤波作用电容C5的作用是耦合电路,去除电路中的直流部分。C4为高频旁路电容LM386是音频功率放大器CK是耳机插孔LM386的功能LM386是一种音频集成功放,具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。 图2-5 LM386的引脚图图2-5中引脚2为反相输入端,3为同相输入端,引脚5为输出端;引脚6和4分别为电源和地;引脚1和8为电压增益设定端。如果在对增益要求不高时它可直接去掉,此时的增益内置为20.LM386电源电压412V,音频功率0.5W,LM386音响功放是由NSC制造的, 它的电源电压范围非常宽,最高可使用到15V,消耗静态电流为4mV,当电源电压为12V时,在8欧姆的负载情况下,可提供几百mW的功率。它的典型输入阻抗为50K.2.4指示灯模块设计如图2-6所示,电路采用LM358集成电路,通过输入信号in与R1,R2分压的电压进行比较,当IN信号大时候,输出低电平,否则输出高电平。从而达到信号指示作用。图2-6 信号灯指示电路图2.5温度传感模块图2-7 数字温度流程图2.6红外编码解码原理红外电视遥控器的输出都是用编码后串行数据对3840kHz的方波进行脉冲幅度调制而产生的。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”。上述“0”和“1”组成的32位二进制码经38kHz的载频进行二次调制,然后再通过红外发射二极管产生红外线向空间发射。一般电视遥控器的遥控编码是连续的32位二进制码组,其中前16位为用户识别码,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。后16位为8位的操作码和8位的操作反码,用于核对数据是否接收准确。根据红外编码的格式,发送数据前需要先发送9ms的起始码和4.5ms的结果码。遥控串行数据编码波形如图2-8所示:图2-8 红外波形图接收方一般使用TL0038一体化红外线接收器进行接收解码,当TL0038接收到38kHz红外信号时,输出端输出低电平,否则为高电平。所以红外遥控器发送红外信号时,参考上面遥控串行数据编码波形图,在低电平处发送38kHz红外信号,高电平处则不发送红外信号。4朱志伟,刘湘云.基于AT89S51的红外遥控解码的实现单片机红外编码原理如图2-9所示图2-9红外数字传输编码原理单片机系统版原理图如图2-10所示图2-10 单片机开发板原理图第三章 测试方法与测试结果3.1测试仪器万能表、6V电源、12V电源、耳机、MP3,毫伏表3.2测试方法与技巧(1)测试红外发射电路和接收电路能否正常工作 将做好的装置连接电源后,用手掌挡住发射管的发射,听接收端喇叭的声音有无变化,若有变化证明发射和接收电路都可以正常工作,反之。如图3-1为发射管的发射范围图。图3-1 发射管的排列图(2)测试信号灯能否正常工作 用(1)相同的方法,用手掌挡住发射管的发射方向,看信号显示灯是否有变化,若果有变化,则证明信号指示灯电路是正常的,反之。(3)装置性能的测试(数据测试)a当装置发射端输入800Hz的语音信号时,在8欧的负载电阻上,测试输出电压值。b在a条件下,不改变电路状态,减小红外发射端信号的幅度至0V,然后用低频毫伏表测试接收端的输出电压值3.3电路测试及测试结果将发射部分和接收部分分别接上12V、6V电源,再接上语音信号,使装置正常工作。经过测试此装置性能良好,红外语音转发无明显失真。具体参数如下:传输距离:3m最低输出电压:0.6v输入为0,输出电压为0.1v无线数据传输误码率:1%温度输出精度:0.1度三角传输:90度,距离3m。参考文献1 童诗白,华成英主编,清华大学电子学教研组编.模拟电子技术基础M.北京:高等教育出版社,2006.5(2011.5重印):20-254. 2 张自红,付伟,罗瑞编著.C51单片机基础及编程应用M.北京:中国电力出版社,2012.6:15-124.3 曾兴雯主编.高频电子线路M.北京:高等教育出版社,2009.11(2010重印):9-134.4 朱志伟,刘湘云.基于AT89S51的红外遥控解码的实现C.15附录A附录A1、元器件清单元件清单名称规格数量电容4.7u,104,10u30电阻500,1k,10k50三极管8550,805012红外发射管8红外接收管3单片机STC89C54RD+3集成运放LM358,UA7414附录A2、电路原理图发射模块15接收模块中继模块17附录A3、PCB图 接收模块 17 发送模块19中继模块19附录B附录B1、单片机温度传感程序void main() count = 0; flag = 0; OP = 0; P2_1 = 0; EA = 1; /允许CPU中断 TMOD = 0x11; /设定时器0和1为16位模式1 ET0 = 1; /定时器0中断允许 TH0 = 0xFF; TL0 = 0xE8; /设定时值0为38K 也就是每隔26us中断一次 TR0 = 0;/关闭计数 iraddr1=3; iraddr2=252;dula=0;wela=0; while (1)TR0 = 0;/关闭计数DS18B20_Reset(); /设备复位 DS18B20_WriteByte(0xCC); 跳过ROM命令 DS18B20_WriteByte(0x44); /开始转换命令 while (!DQ); /等待转换完成 DS18B20_Reset(); /设备复位 DS18B20_WriteByte(0xCC); /跳过ROM命令 DS18B20_WriteByte(0xBE); /读暂存存储器命令 TPL = DS18B20_ReadByte();/读温度低字节 TPH = DS18B20_ReadByte();/读温度高字节21 dis_temp(get_temp();t1=temp/100;t2=temp%100/10;t1=t1*10+t2;TR0 = 1;/打开计数 SendIRdata(t1); /通过红外发送数据;附录B2 单片机红外信号编码程序void SendIRdata(char p_irdata) int i; char irdata=p_irdata; /发送9ms的起始码 endcount=223; flag=1; count=0; dowhile(countendcount); /发送4.5ms的结果码 endcount=117; flag=0; count=0; dowhile(countendcount); /发送十六位地址的前八位 irdata=iraddr1; for(i=0;i8;i+) 21 /先发送0.56ms的38KHZ红外波(即编码中0.56ms的低电平) endcount=10; flag=1; count=0; dowhile(countendcount); /停止发送红外信号(即编码中的高电平) if(irdata-(irdata/2)*2) /判断二进制数个位为1还是0 endcount=41; /1为宽的高电平 else endcount=15; /0为窄的高电平 flag=0; count=0; dowhile(count1; /发送十六位地址的后八位 irdata=iraddr2; for(i=0;i8;i+) endcount=10; flag=1; count=0;23 dowhile(countendcount); if(irdata-(irdata/2)*2) endcount=41; else endcount=15; flag=0; count=0; dowhile(count1; /发送八位数据 irdata=p_irdata; for(i=0;i8;i+) endcount=10; flag=1; count=0; dowhile(countendcount); if(irdata-(irdata/2)*2) endcount=41; 23 else endcount=15; flag=0; count=0; dowhile(count1; /发送八位数据的反码 irdata=p_irdata; for(i=0;i8;i+) endcount=10; flag=1; count=0; dowhile(countendcount); if(irdata-(irdata/2)*2) endcount=41; else endcount=15; flag=0; count=0;25 dowhile(count1; endcount=10; flag=1; count=0; dowhile(countendcount); flag=0附录B3 单片机红外信号解码程序void IR_IN() interrupt 2 using 0 unsigned char j,k,N=0; EX1 = 0; delay(15); if (IRIN=1) EX1 =1; return; /确认IR信号出现 while (!IRIN) /等IR变为高电平,跳过9ms的前导低电平信号。 delay(1); for (j=0;j4;j+) /收集四组数据 for (k=0;k=30) EX1=1; return; /0.14ms计数过长自动离开。 /高电平计数完毕 IRCOMj=IRCOMj 1; /数据最高位补“0” if (N=8) IRCOMj = IRCOMj | 0x80; /数据最高位补“1” N=0; /end for k /end for j if (IRCOM2!=IRCOM3) EX1=1; return; IRCOM5=IRCOM2 & 0x0F; /取键码的低四位 IRCOM6=IRCOM2 4; /右移4次,高四位变为低四位 temp= IRCOM6*16+IRCOM5; time0=tabletemp/10;time1=tabletemp%10; for(j=0;j0;x-)27for (y=10;y0;y-);void disdealy()uint x,y;for (x=1;x0;x-)for (y=200;y0;y-); unsigned char code table=0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10; uint code num= 0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,; /*数码管位选08*/void display(uchar x,uchar y)dula=0;P1=tabley;dula=1;dula=0;wela=0;P1=numx;wela=1;wela=0; 29dealy(); dula=0;P1=0xff; /关闭所有段码,起到让所有数码管显示亮度一致dula=1;dula=0;wela=0;P1=numx;wela=1;wela=0; void dis_temp(uint t)uchar c;c=t/100;disdealy();display(1,c);disdealy();c=t%100/10;display(2,c+10); /+10就是包括显示小数点disdealy();c=t%100%10;display(3,c);disdealy();uint get_temp() /读取寄存器中存储的温度数据29uchar a,b;a=TPL; /读低8位b=TPH; /读高8位temp=b;temp=8; /两个字节组合为1个字temp=temp|a;f_temp=temp*0.0625; /温度在寄存器中为12位 分辨率位0.0625temp=f_temp*10+0.5; /乘以10表示小数点后面只取1位,加0.5是四舍五入/ f_temp=f_temp+0.05; return temp; /temp是整型void main()/uchar x;count = 0;flag = 0;OP = 0;P2_1 = 0;EA = 1; /允许CPU中断 TMOD = 0x11; /设定时器0和1为16位模式1 ET0 = 1; /定时器0中断允许 TH0 = 0xFF; 31TL0 = 0xE8; /设定时值0为38K 也就是每隔26us中断一次 TR0 = 0;/关闭计数iraddr1=3;iraddr2=252;/dula=0;wela=0;jdq=0;/继电器闭合,发送模拟信号while (1)TR0 = 0;/关闭计数DS18B20_Reset(); /设备复位DS18B20_WriteByte(0xCC); /跳过ROM命令DS18B20_WriteByte(0x44); /开始转换命令while (!DQ); /等待转换完成DS18B20_Reset(); /设备复位DS18B20_WriteByte(0xCC); /跳过ROM命令DS18B20_WriteByte(0xBE); /读暂存存储器命令TPL = DS18B20_ReadByte(); /读温度低字节TPH = DS18B20_ReadByte(); /读温度高字节for(x=0;x20;x+)dis_temp(get_temp();t1=temp/100;t2=temp%100/10;t1=t1*10+t2;/TR0 = 1;/打开计数/delay();jdq=1;/继电器断开,发送数据31SendIRdata(t1);jdq=0; /继电器闭合,模拟发送信号delay(); /延时一段时间,避免频繁传送数据,导致模拟断断续续/;/*延时X*10微秒(STC90C52RC12M)不同的工作环境,需要调整此函数当改用1T的MCU时,请调整此延时函数*/void DelayX0us(BYTE n)while (n-)_nop_();_nop_();/*复位DS18B20,并检测设备是否存在*/void DS18B20_Reset()CY = 1;while (CY)33DQ = 0; /送出低电平复位信号DelayX0us(48); /延时至少480usDQ = 1; /释放数据线DelayX0us(6); /等待60usCY = DQ; /检测存在脉冲DelayX0us(42); /等待设备释放数据线/*从DS18B20读1字节数据*/BYTE DS18B20_ReadByte()BYTE i;BYTE dat = 0;for (i=0; i= 1;DQ = 0; /开始时间片_nop_(); /延时等待_nop_();DQ = 1; /准备接收_nop_(); /接收延时_nop_();if (DQ) dat |= 0x80; /读取数据DelayX0us(6); /等待时间片结束33return dat;/*向DS18B20写1字节数据*/void DS18B20_WriteByte(BYTE dat)char i;for (i=0; i= 1; /送出数据DQ = CY;DelayX0us(6); /等待时间片结束DQ = 1; /恢复数据线/定时器0中断处理 void timeint(void) interrupt 1 TH0=0xFF; TL0=0xE8; /设定时值为38K 也就是每隔26us中断一次count+;35if (flag=1)OP=OP;elseOP

温馨提示

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

最新文档

评论

0/150

提交评论