首页 第20章_红外数据传输

第20章_红外数据传输

举报
开通vip

第20章_红外数据传输null第二十讲 红外数据传输第二十讲 红外数据传输null20.0 项目演示效果图XP_ 20_01 步骤1- 红外数据 传输项目 的配置 及启动 null图XP_20_02 步骤2-B板接收初始化数据并进行显示null图XP_20_03 步骤3-A板传送S15键值到B板进行显示 null图XP_20_04 步骤4-A板传送S7键值到B板进行显示20.1 项目目标设计20.1 项目目标设计学习红外射线的相关基础知识; 学习红外线数据传输技术的基本工作原理; 掌握红外线数据传输技术在项目开...

第20章_红外数据传输
null第二十讲 红外数据传输第二十讲 红外数据传输null20.0 项目演示效果图XP_ 20_01 步骤1- 红外数据 传输项目 的配置 及启动 null图XP_20_02 步骤2-B板接收初始化数据并进行显示null图XP_20_03 步骤3-A板传送S15键值到B板进行显示 null图XP_20_04 步骤4-A板传送S7键值到B板进行显示20.1 项目目标 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 20.1 项目目标设计学习红外射线的相关基础知识; 学习红外线数据传输技术的基本工作原理; 掌握红外线数据传输技术在项目开发板中的应用方法和原理; 学习STC89C52RC单片机扩展INT3中断程序的编制和使用方法; 掌握作为红外线数据传输核心器件的MAX3100集成芯片的原理和使用方法; 掌握红外线数据传输电路的硬件连接方法; 学习在项目开发板上如何实现红外线数据传输的软件编制方法; 在达到以上七点目标的基础上,根据本章“项目扩展任务”中提出的问题,以组或个人为单位,在 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 时间里完成扩展项目任务。20.2 项目任务 20.2 项目任务 本项目需要两个PMY单片机开发板配合操作完成,红外数据传输部分的原理图如图20-1所示,MAX3100芯片完成红外数据的发送、接收及相关通信 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 转换。 对于发送端,4×4矩阵键盘的S1、S2~S16的编码分别为01H、02H~10H,按压任意按键后,相应的键值通过STC89C52RC单片机使用SPI通信方式传送给MAX3100,MAX3100再采用红外模式对被压键值进行发送。同时,STC89C52RC单片机控制板上的8个LED发光二极管和七段数码管显示被传键值。 接收端的红外接收头应水平对准发射端的发射头,接收到的红外射线被MAX3100转换为SPI通信协议并转传给STC89C52RC单片机,与接收端处理显示的方式类似,STC89C52RC单片机实现将接收到的键值也在板上的8个LED发光二极管和七段数码管上同时进行显示。null图20-1 红外线数据传输项目的电路原理图20.3 系统板上硬件连线 20.3 系统板上硬件连线 PMY单片机开发板上红外线数据传输项目的连接插线设置如图20-2所示。图20-2 红外线数据传输项目系统板硬件连线图20.4 程序流程图20.4 程序流程图图20-3 红外线数据传输项目的发送程序流程图null图20-4 红外线数据传输项目的接收程序流程图20.5 C语言源程序(略)20.5 C语言源程序(略)20.6 系统构成和程序 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 20.6.1 红外线的基本知识 红外线(Infrared rays)是一种光线,其波长比红色光(750nm)长,超出了人眼可以识别的(可见光)范围,所以人眼看不见它。通常把波长为0.75~1000μm的光都称为红外线,对其继续细分为以下三部分,即近红外线,波长为0.75~1.50μm之间;中红外线,波长为1.50~6.0μm之间;远红外线,波长为6.0~l000μm之间。null 由于红外线是一种光线,一次具有普通光的一般性质,如可以以光速直线传播、强度可调,可以通过光学透镜聚焦,可以被不透明物体遮挡等等。经过特殊工艺制造的半导体发光二极管,可以发出特定波长(通常是近红外)的红外线,通过控制二极管的电流可以很方便地改变红外线的强度,达到调制的目的,因此,在现代电子工程应用中,红外线常常被用做近距离视线范围内的通讯载波,最典型的应用就是电视机的遥控器。null 使用红外线做信号载波的优点很多,如成本低、传播范围和方向可以控制(不会穿过墙壁,对隔壁家的电视造成影响)、不产生电磁辐射干扰,也不受干扰等等。因此被广泛地应用在各个技术领域中。 由于红外线发光二极管的发光强度很容易被控制,所以通过简单的电路就可以产生出受特定频率调制的调幅红外光,具有这种特征的红外光线,即使非常微弱,也可以从环境杂射光中被识别并分离出来,达到很好的通讯效果。因此,可以使用这种微弱的红外光线,达到信号通讯的目的,这种红外通信方式被广泛应用于遥控、音频通讯和PC数据通讯等领域。null20.6.2 MAX3100的引脚及内部功能 PMY单片机开发板采用了MAX3100芯片来完成红外波调制、解调及协议转换功能,与其它外围器件正确搭配,可以构成红外数据传送和接收电路,完成近距离的数据传送任务(见图20-1)。MAX3100是一个全功能的串行通信协议转换器件,与SPI兼容的同步串行接口极易与微控制器接口【49】。 MAX3100的引脚排列及内部功能图如图20-5所示,引脚功能如下:null图20-5 MAX3100引脚及内部功能图null•DIN SPITM/MicrowireTM串行数据输入引脚,串行时钟的上升沿锁存DIN数据. •DOUT SPITM/MicrowireTM推挽串行数据输出引脚,数据由串行时钟的下降沿同步输出。 •SCLK 串行时钟控制。用于数据输入和输出的串行总线定时。 •CS 片选控制。当CS为高电平时,DOUT输出引脚处于高阻状态,IRQ、TX、RTS的输出不受CS的控制。 •IRQ 中断请求信号。OC门输出,低电平有效。 •SHDN 待机模式的硬件控制端。SHDN =0,进入待机模式,不管当前是否正在通信,片内振荡器立即停振,此时芯片的工作电流仅为10μA。 •X1和X2 晶振引脚。null•CTS 数据输入请求端。可以通过CTS位读取。 •RTS 数据输出允许端。可以通过RTS 位控制。 •RX 异步串行输入。 •TX 异步串行输出。 MAX3100包括1个简单的UART、SPI 接口、波特率发生器和1个中断发生器,通过“写结构寄存器”完成波特率、字长、校验、8字节接收FIFO的设定并选择通用UART方式或IrDA(红外通信)方式,控制节电状态和4个中断任务【50】,见图20-5。 MAX3100使用SPITM/MicrowireTM 接口与控制器通信, 适用于RS232、RS485和IrDA等通信场合。null20.6.3 项目系统功能图及外部中断1的作用 MAX3100具有独立的晶体振荡电路,通过软件设置波特率因子可以对通信速率进行选择,范围为300~230kbps。芯片内8字节的FIFO输入缓冲区可以显著提高CPU的工作效率。芯片内含4个可屏蔽的中断源,分别是接收帧校验(pr)、接收数据(R)、待机方式时发现RX端状态改变或正常工作时出现帧格式错(RA/FE)及发送缓冲器空(T),上述4个中断源都可以通过软件设置实现屏蔽功能。 如图20-6所示,MAX3100需要4条接口线实现与微控制器接口握手,另一条中断信号线接STC89C52RC单片机的nINT3外部中断口。MAX3100在等待串行事件时,内部电路和UART进入休眠状态,其内部FIFO具有缓冲接收突发信息的作用。null图20-6 红外数据传输项目的系统功能图null 本项目的发送和接收分为两个程序,发送程序中的大部分代码段与接收程序相同,不同的地方将单独进行讲解。 参照图20-1和图20-6,在发送程序中,SPI接口的4根信号线nCS3100、SCLK3100、DIN3100和DOUT3100分别接STC89C52RC单片机P1口的P12、P13、P14和P15,在实际操作前应注意连接插线短接片的设置。null 外部中断1主要是用来检测由ZLG7290发出的按键中断信号,当矩阵键盘中的任一键被按下时,ZLG7290不但能够 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 键值,而且还发出按键中断信号。源程序主函数中的以下代码对外部中断1进行了设置: EA=1; //允许所有中断被响应 IT1 = 1; //外部中断1的触发方式为下降沿触发 EX1 = 1; //允许外部中断1被响应(ZLG7290键盘中断 第二句中设定IT1 = 1非常重要,通过实际测试可以验证,在本项目中,中断信号的下降沿触发比电平触发能更好地被检测出来。null20.6.4 如何通过SPI总线向MAX3100写控制字 C源程序main主函数中的max3100drv(0xe48e)语句,实现向MAX3100写控制字的功能。对MAX3100的控制可以通过写控制字、读控制字、写数据和读数据4种方式实现,这4条指令的具体含义见表20-1~表20-4所示【51】,指令中的每一位含义见表20-5所示。 根据表20-1,若向MAX3100写控制字,则要求以16位的形式写入数据,其中规定D14和D15位必须为1,用以区别其它3条指令。 如图20-6所示,对于STC89C52RC单片机,DIN数据线就是向MAX3100输出数据的信号线,控制字的其它位可根据程序的需要进行设定。null表20-1 对MAX3100的写控制字表20-2 对MAX3100的读控制字null表20-3 对MAX3100的写数据指令表20-4 对MAX3100的读数据指令null表20-5 MAX3100控制和数据指令的位含义null 表20-1和表20-2中的B0~B3位是MAX3100的波特率因子选择位,这些位选用不同的组合,MAX3100的串行通信接口所采用的波特率也不相同,具体的选择值见表20-6给出的MAX3100波特率选择表。 再对向MAX3100写入的控制指令0xe48e进行解释。参照表20-1~表20-6的解释,本项目设定MAX3100在以下方式下进行工作: •FIFO(先入先出寄存器)禁止工作。 •软件设置无掉电(Shutdown)状态。 •R(接收数据有效)中断允许。 •T(发送缓冲器空)中断源被屏蔽。 •Pr(接收帧校验位为1)中断源被屏蔽。 •RA和FE(待机方式时发现RX 端状态改变或正常工作时出现帧格式错)中断源被屏蔽。 •选择红外模式工作。 •传送帧中包括1位停止位。null•无附加帧校验位被传送。 •数据字长为8位。 •红外通信速率为600bps。 根据以上设定将控制指令0xe48e每一位的解释以图示的方式在图20-7中给出。 控制字写入后将清除FIFO以及R、T、RA/ FE、D0r~D7r、D0t~D7t、Pr和Pt等寄存器,而RTS、CTS的状态不受影响。新的控制字中的中断屏蔽将在MAX3100芯片SCLK的第16个上升沿时开始有效,而FEN、SHDNi、IR、ST、PE、L、B0~B3等需要到CS的上升沿和通信缓冲器空以及本次通信结束后方可有效。值得注意的是,控制字只允许接收数据R中断有效,所以由MAX3100产生的中断是由于它本身接收到新的数据而引起的,这一点在接收端程序进行红外数据接收的功能分析时特别要加以注意。null表20-6 MAX3100波特率选择表null图20-7 控制指令0xe48e的含义null20.6.5 SPI通信的程序实现 上节已经介绍过,向MAX3100写入控制指令0xe48e 用到了max3100drv(0xe48e)语句,该函数的原型为uint max3100drv(uint x),完成STC89C52RC单片机与MAX3100的SPI通信功能,本项目中给出的C语言源程序完全是根据MAX3100数据手册的SPI时序图编制,这里将结合SPI时序图对相关代码进行介绍和分析。 uint max3100drv(uint x) //MAX3100的SPI通信驱动函数,根据MAX3100数据手册SPI时序图编制 { uint i; uint y=0; //从MAX3100将要接收的数据赋初值null nCS3100=0; DOUT3100=1; SCLK3100=0;DIN3100=1;y=0; //SPI通信起始条件 i=0x8000; //SPI通信传送16位的计数值 while(i) //i是否为0 { DIN3100=(bit)(x&i); //SPI通信传送16位的计数值 y<<=1; //接收数据左移1位 SCLK3100=0; //SPI时钟下降沿更新一次数据 SCLK3100=1; //SPI时钟上升沿MAX3100采集DIN3100信号、发送DOUT3100信号 y|=(uint)DOUT3100; //将采集到的DOUT3100存入y中 i>>=1; //计数值右移一位,直到计满16次 }null DOUT3100=1;SCLK3100=0; DIN3100=1; nCS3100=1; //SPI通信结束条件 return(y); //将从MAX3100中读到的数返回 } 从图20-8所示的MAX3100的SPI通信时序图可以看出,SPI通信方式的特点是主控制器STC89C52RC单片机对MAX3100写1位的同时,接收从MAX3100传过来的1位,数据位的发送和接收主要体现在同步时钟信号SCLK的上升和下降沿时刻。图中的标记①表示在SPI时钟上升沿,MAX3100采集已被主控制器放置在DIN引脚的DIN3100信号;标记②表示这之后MAX3100发送的DOUT3100信号才应被主控制器读入;标记③表示SPI时钟下降沿将更新一次DIN3100和DOUT3100数据位。 参照MAX3100的SPI通信时序图及以上解释,可以较为容易地理解函数uint max3100drv(uint x)的含义,函数体中的变量y是DOUT3100的返回值,是按位从MAX3100读回的数据。null图20-8 MAX3100的SPI通信时序图null20.6.6 红外发送程序分析 红外发送程序中,main(void)函数的无限循环while(1)主要完成将ZLG7290键盘显示芯片获取的被压键值通过MAX3100的红外模式传送出去,引入以下相关源程序: KeyValue=0xAA; //键值赋初值 … while(1) //无限循环 { DispHexValue(0, KeyValue); //用十六进制形式在数码管上显示按键值 max3100drv(0x8000|KeyValue); //将键值通过MAX3100的红外模式进行发送 … }null KeyValue就是ZLG7290获取的键值,程序中的函数max3100drv(0x8000|KeyValue)实现将键值通过MAX3100的红外模式进行发送。根据表20-3,若实现主控制器向MAX3100写数据,则必须与写控制字一样,也要写入16位格式的数据。0x8000与KeyValue相或后,低8位是将要发送的数据,高8位为80。 结合表20-3,其中D15和D14位必须分别为1和0,起指令标识的作用。D10为0表示MAX3100发送允许、D9为0表示“请求发送”输出端控制位置1、D8为0表示发送帧的校验位选择非9位。通过先前对MAX3100设置的控制字0xe48e,程序执行到函数max3100drv(0x8000|KeyValue)处时,就会以红外模式调制KeyValue数据,并将其发送出去。null 红外线模式和串行通信的波形是不同的,见图20-9【50】给出了这两种波形的不同形式。以发送数据01100101B为例,在串行红外线数据通信(IrDA)时序模式中,数据0对于发送引脚就是逻辑低,1位数据的周期缩短到3/16波特周期,见图中的记号①所示;对于接收引脚就是逻辑高,见图中的记号②所示。 接收模式时,接收信号的采样是在发送高电平的一半时进行,采样一次完成,而普通串行通信模式是采样三次完成。IrDA器件与MAX3100通信必须设置发送脉冲为波特周期(串行通信一位的传送周期)的3/16,MAX3100忽略小于波特周期1/16的脉冲。null图20-9 MAX3100的IrDA时序图null 为了证实图20-9给出的MAX3100芯片SPI和IrDA时序图,可以通过示波器分别对发送和接收端的数据进行检测。根据发送端程序,在PMY单片机开发板上电之后还没有键被按时,主程序首先赋给变量KeyValue的值为0xAA。前面已经分析过,函数max3100drv(0x8000|KeyValue)实现将按位与的16位数0x80AA通过DIN引脚一位接一位从高位到低位发送至MAX3100,图20-10(a) 给出了MAX3100的SPI串行通信的DIN引脚接收信号示波器实测波形图。null图20-10 MAX3100发送端的SPI和IrDA示波器实测波形图null 完成以上步骤后,MAX3100再将KeyValue值调制成红外波从Tx引脚发送出去,图20-10(b)给出了红外模式下MAX3100的Tx引脚信号波形图,可以看到MAX3100调制的红外波启始位之后排列的被传数据顺序是由低位到高位,因此发送端的红外波形码的正确读法应是,去除001010101的最高位,即启始位,剩下的01010101二进制码反读为10101010,即0XAA。同时图上的被测红外波频率值为600.1Hz,这与程序初始化MAX3100控制字的设置是一致的,关于控制字设置的说明,请见图20-7对控制指令0xe48e含义的详细解释。 这里结合本项目再次对4×4键盘中的检测方法进行总结说明,以加深读者对这一过程的理解和掌握。null 本书第9章已作过介绍,ZLG7290芯片具有键检测功能,结合图20-1所示,nINT7290是ZLG7290芯片的中断INT引出脚的输出信号,与STC89C52RC单片机外部中断INT1脚相连。按照第9章的讲解,4×4键盘中的任意键被按下都会使ZLG7290产生键盘中断,从而使信号nINT7290为低有效。 根据前文的介绍,STC89C52RC单片机允许外部中断1被响应,nINT7290信号的有效使得外部中断1的服务程序INT1_SVC() interrupt 2执行,该服务程序只完成标志符ZLGSendFlag置1的功能,主程序在while(1)的无限循环里包含对标志符ZLGSendFlag是否为1的判断,如果条件为真,表明有键被按下,可以通过函数ZLG7290_ReadReg(ZLG7290_Key,&KeyValue)读出被压键值,函数中的KeyValue为具体键值,ZLG7290_Key为存放键值的寄存器。null20.6.7 红外接收程序分析 在介绍了发送端程序中的知识点基础上,接下来再对接收端程序中的知识点进行分析。 与发送程序相同部分的代码已在前面的分析中进行了介绍,接收程序中增加了对STC89C52RC单片机INT3引脚资源的应用。 在PMY单片机开发板上,选用了ST89C52RC-PQFP-44脚封装芯片,与PDIP(双列直插)封装的同型号芯片STC89C52RC-PDIP-40相比,多出了4个引脚,分别被定义为P40、P 41、P42和P43,除了前两个引脚只能作为普通I/O口使用之外,P42还被复用为扩展外部中断INT3脚,P43则被复用为扩展外部中断INT2脚。结合图20-1所示,STC89C52RC单片机的INT3脚与MAX3100的中断输出引脚INT相连,因此INT上的电平被置低时将触发STC89C52RC单片机的INT3中断。null 为了充分利用STC89C52RC-PQFP-44单片机的INT2和INT3资源,在该芯片内部的特殊功能寄存器SFR中增设了扩展中断控制寄存器XICON,地址为C0H,INT3中断优先级为被定义为第七级【9】,XICON寄存器的D6位为INT3的外部中断使能位EX3。接收程序在程序的文件包含指令后就应引入以下两句对XICON和EX3的定义: sfr XICON = 0xc0; //扩展中断控制寄存器地址设定 sbit EX3 = XICON^6; //扩展中断控制器D6位是外部中断3的允许控制位 接下来就可以在接收主程序中设置允许INT3的中断了: EA=1; //允许所有中断被响应 EX3=1; //允许外部中断3被响应(MAX3100中断)null 接收程序中对MAX3100的写控制字与发送端程序完全一样,都是写入0xe48e,在主程序中的无限循环while(1)里加入了对ZLGRecFlag标志是否为真的判别,如果条件为真,说明发送端的键值通过红外传输被接收端收到,该条件由MAX3100红外接收数据中断产生,INT3的中断服务程序为max3100_INT(void) interrupt 7,结合图20-4接收端程序流程框图,中断源程序中的语句: RecData=max3100drv(0); //将通过红外信道收到的键值赋给RecData,max3100drv(0)为从MAX3100读数据指令 完成红外传输通道的数据接收。由表20-4可知,向MAX3100写入0X0000H,为读数据指令,此时函数uint max3100drv(uint x)中的无符号整数uint y即为STC89C52RC单片机从MAX3100的DOUT引脚(见图20-1)按位接收数据的返回值。其中,关于DOUT引脚上的DOUT3100信号数据位接收时序的相关内容,在函数max3100drv(uint x)的介绍中已经给予了分析和讨论。null图20-11 MAX3100接收端的IrDA和SPI示波器实测波形图null 在完成整个红外数据传输系统和程序的分析和介绍之前,对接收端红外模式下MAX3100的Rx脚接收信号和SPI串行通信的DOUT引脚发送信号DOUT3100的波形分别用示波器进行了实际的检测,波形图分别为图20-11(a)和(b)。 图20-11 (a) 为红外模式下MAX3100的Rx脚接收信号。前文介绍过,对于接收端,数据位为0在Rx引脚由高电平表示,因此与图20-10 (b) 的发射端TX引脚信号波形正好相反。 图20-11(b) 为STC89C52RC单片机从MAX3100执行SPI串行通信的DOUT引脚读出的被传键值信号,根据表20-4,各个位的解释如图20-12所示: 至此,发送端的接收键值0XAAH 被RecData变量存储,并通过82C55的PA口点亮8个发光二极管来进行显示,亮为1、灭为0,七段数码管的点亮则由主函数中的DispHexValue(0, (uchar)RecData)函数控制ZLG7290芯片进行显示。null图20-12 接收端读出数据0XC2AAH的含义20.7 项目扩展任务20.7 项目扩展任务 扩展任务需要两个PMY单片机开发板和两台微机配合进行,在理解和掌握本章、第9章和第15章的基础上,以组或个人为单位,通过编写相应程序,实现以下控制流程。 与发送端开发板相连的微机串口调试软件可以通过串口发送一个字节的数据到发送端开发板,发送端开发板在数码管的相应位置显示被传数据的同时,再通过红外传输通道将数据传送到接收端开发板,接收端开发板不但要在数码管的相应位置显示被传数据,还要通过串口将此数据送到接收端的串口调试软件进行显示。null
本文档为【第20章_红外数据传输】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_330445
暂无简介~
格式:ppt
大小:3MB
软件:PowerPoint
页数:0
分类:工学
上传时间:2013-04-21
浏览量:32