红外通信原理的设计与实现_第1页
红外通信原理的设计与实现_第2页
红外通信原理的设计与实现_第3页
红外通信原理的设计与实现_第4页
红外通信原理的设计与实现_第5页
全文预览已结束

下载本文档

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

文档简介

1、利用红外通信原理的设计与实现 红外通信协议 含电路图1 引言 在电子消费领域当中,红外产品的使用较为普遍,它多用于简单的近距离控制,如家电,玩具,各种抄表系统。本文以Freescale 8位高性能、低功耗单片机MC9S08GT60为载体,详细介绍红外通信的硬件和软件设计过程及通信协议的使用。HCS08系列的MCU是Freescale半导体公司最新推出的8位单片机,具有多种低功耗模式,更高的工作频率,并集成了片上调试器,而且资源丰富,因此采用了该系列的MC9S08GT60作为载体详细讨论了一个简单实用的红外通信开发系统。红外通信过程主要由红外发射和红外接收两个过程,首先将数字信号送给红外发射电路

2、,经该电路的调制转变成红外光信号在空中传输,然后红外接收电路收到该红外光信号,经过该电路的解调,将此红外光信号还原成可被单片机处理的信号,由单片机内部处理得到原来的数据编码。2 红外通信协议协议的目的是给收发双方一个约定,使其能够进行同步,并正确的收发数据。本设计使用了类同步协议。当红外接收器未收到信号时,不产生定时操作,否则,首先接收起始位0,并触发中断,启动定时器接收数据,然后判断是否为起始位,如果是,则继续接收数据,否则将定时器复位,重新检测起始位,在接收第二个停止位时,会触发一次中断来检测第一次接收的停止位是否正确,如果不正确,则复位定时器,重新接收,否则已经正确接收该数据段。3 红外

3、通信的原理分析红外通信在空中传输的是载波信号,当有载波通过时,接收端输出数字信号0,反之,输出数字信号1。因此在发射电路发送的功能指令码,一般采用多位二进制串行码。本文中,红外通信数据采用脉冲编码,就是将每位数据信号用一个脉冲来表示,脉宽为526 s,两个这样的脉冲周期表示1,一个这样的脉冲周期表示0。这样的脉冲信号都调制在频率为38 kHz的载波上再发送出去,调制后在空中传输的信号就是具有一定时间间隔的载波信号,其占空比由数据编码决定。在红外接收端,数据处理的过程正好相反,在接收红外光信号之后,会经过整形、放大、滤波、调制等一系列处理,然后在其输出端输出一系列的单片机能够处理的数据信号。4

4、红外通信硬件设计原理4.1 发送电路的硬件设计HCS08GT60单片机内部有两个TPM模块,每个模块有两个通道,可以用任意一个通道的PWM功能,输出38 kHz的载波信号,本文编程设计根据实验条件的要求采用了TPM1通道1中心脉宽输出功能产生38 kHz红外载波信号。而PTA7口作为普通的输入输出口,产生一定脉宽的方波信号,作为数据编码信号输入。硬件原理图如图1所示。原理图中,电气节点CODE跟PTA7口相连,产生数据编码;电气节点CLK跟TPM1通道1相连,产生38 kHz红外载波信号。三极管基极串接的电阻和R5起到限流保护的作用,三极管本身则具有信号放大的功能,另外两个三极管级联将编码调制

5、在38 kHz的载波上通过红外发射器发射出去。当编码为1时,Q1,Q2截止,红外发射器上无电流通过,发射低电平信号,当编码为0时,Q1,Q2导通,此时载波信号通过Q2放大在发射器上体现出38 kHz的载波信号。因此在PTA7端口输入不同的数据编码,通过该发送电路,在发射器上会出现具有一定间隔的38 kHz载波信号,经发射器将该载波信号转化成光信号发射出去。载波脉冲调制信号的时序图如图2所示。4.2 接收电路的硬件设计红外接收电路中使用了HS0038A接收器,HS0038A的内部逻辑框图如图3所示。由此可看出该接收器内部实现了红外接收、放大、滤波及解调功能,当收到红外载波光信号时,红外接收器输出

6、低电平,反之红外接收器输出高电平,从而可以将时断时续的红外光信号调制成连续的方波信号,经单片机内部处理可以将其转换成原来的数据。硬件原理图如图4所示。由于HS0038A内置滤波并且采用环氧塑封,可以作为红外滤波器,因此电路中不需要另外增加滤波器,并且HS0038A具备较强的抗干扰能力。红外接收器输出引脚RevData连接在TPM2通道0,使用了TPM的输入捕捉功能,在上升沿时发生输入捕捉,比较两次捕捉发生时通道寄存器TPM2C0V的值,可以得到一个周期脉冲的宽度,根据发射数据的时序图,就可知道不同的脉冲宽度对应的数据是什么,由此就可将原数据还原出来。5 红外通信的软件设计5.1 38 kHz红

7、外载波设计MC9S08GT60使用了外部4 MHz的晶振频率,通过配置ICG1=0x78,ICG2=0x30,将总线频率控制为20 MHz。MC9S08GF60内部有定时脉冲输出模块,将TPM1的状态控制寄存器的位CPWMS置1,则TPM1工作在中心脉宽输出模式;将TPM1通道0的状态控制寄存器的ELS0B:ELS0A设置为10,控制发生输出比较时将脉冲信号置高或置低。为使TPM1C1输出38 kHz频率的载波信号,就要对20 MHz的总线频率进行526分频,即526个20 MHz的方波周期产生一个38 kHz的方波周期,因为是中心脉宽输出模式,输出脉冲宽度是通道值寄存器TPM1C1V中值的2

8、倍,输出脉冲周期是通道预置寄存器TPM1M0D中值的2倍,因此令TPM1C1V=131,TPM1M0D=263,启动定时器后,定时器1的计数器TPM1CNTL在自增1计数时,当该值跟通道值寄存器TPM1C1V中值匹配时,将脉冲输出信号拉低,定时器1的计数器TPMlCNTL在计数值开始进行自减1操作时,当下降到跟通道寄存器TPMlClV时,将脉冲输出信号拉高。中心脉宽输出的时序图如图5所示。从此通道输出的方波频率通过示波器查看为37.9 kHz或38 kHz。5.2 数据编码的设计MC9S08GT60单片机有36个端口,大部分端口都具有双重功能,本文使用端口PTA7,配置该端口的方向寄存器PTA

9、DD_PTADD7为1,即PTA7为输出,根据脉冲编码的规则,进行不同的延时操作,使该端口输出一定宽度的数据脉冲,通过示波器查看该端口,可看到稳定的脉冲序列。5.3 接收端信号的输入捕捉设计将TPM2的状态控制寄存器的位CPWMS置0,则TPM2可以工作在输入捕捉模式、输出比较模式、边沿脉冲输出模式;为使TPM2通道0工作在输入捕捉方式,需要进一步设置TPM2通道0状态控制寄存器,将TPM2C0SC的模式选择位MS0B:MS0A设置为00,选择了输入捕捉方式,此外,要设置捕捉发生在什么条件下,那么需要设置TPM2COSC中的极性选择位ELS0B:ELS0A,使其为01,目的是在该引脚出现上升沿

10、时发生捕捉。在发生捕捉时,通道值寄存器会将定时寄存器的值进行锁存,因此比较两次输入捕捉时,通道值寄存器的内容,根据编码规则,可知道该值对应的编码是1或0。此外通道值寄存器是16位的,如果希望通过串口调试窗口查看比较结果,因为串口接收数据缓冲寄存器是8位的,那么可以将其分解为两个8位的数据通过串口发送。以下是输入捕捉的中断子程序:程序功能描述:将捕捉的数据发往串口查看,这样不管用什么发射器,都可以通过观察串口数据得到识别码,完成不同的功能。6 结语红外通信一般用在低数据速率,并且短距离的场合中,因此需要低功耗的运行要求。而Freescale的这款单片机工作电压可达到1.8 V,在单片机空闲方式下,通过设置SOPT和SPMSC两个寄存器来设计不同的停止低功耗模式,或者执行一

温馨提示

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

评论

0/150

提交评论