红外通信的设计与实现

发布者:RadiantEnergy最新更新时间:2014-03-08 来源: elecfans关键字:红外通信  MC9S08GT60  PWM 手机看文章 扫描二维码
随时随地手机看文章

  1 引言

  在电子消费领域当中,红外产品的使用较为普遍,它多用于简单的近距离控制,如家电,玩具,各种抄表系统。本文以Freescale 8位高性能、低功耗单片机MC9S08GT60为载体,详细介绍红外通信的硬件和软件设计过程及通信协议的使用。

  HCS08系列的MCU是Freescale半导体公司最新推出的8位单片机,具有多种低功耗模式,更高的工作频率,并集成了片上调试器,而且资源丰富,因此采用了该系列的MC9S08GT60作为载体详细讨论了一个简单实用的红外通信开发系统。

  红外通信过程主要由红外发射和红外接收两个过程,首先将数字信号送给红外发射电路,经该电路的调制转变成红外光信号在空中传输,然后红外接收电路收到该红外光信号,经过该电路的解调,将此红外光信号还原成可被单片机处理的信号,由单片机内部处理得到原来的数据编码。

  2 红外通信协议

  协议的目的是给收发双方一个约定,使其能够进行同步,并正确的收发数据。本设计使用了类同步协议。当红外接收器未收到信号时,不产生定时操作,否则,首先接收起始位‘0’,并触发中断,启动定时器接收数据,然后判断是否为起始位,如果是,则继续接收数据,否则将定时器复位,重新检测起始位,在接收第二个停止位时,会触发一次中断来检测第一次接收的停止位是否正确,如果不正确,则复位定时器,重新接收,否则已经正确接收该数据段。

  3 红外通信的原理分析

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

  4 红外通信硬件设计原理

  4.1 发送电路的硬件设计

  HCS08GT60 单片机内部有两个TPM模块,每个模块有两个通道,可以用任意一个通道的PWM功能,输出38 kHz的载波信号,本文编程设计根据实验条件的要求采用了TPM1通道1中心脉宽输出功能产生38 kHz红外载波信号。而PTA7口作为普通的输入输出口,产生一定脉宽的方波信号,作为数据编码信号输入。硬件原理图如图1所示。

 

  原理图中,电气节点CODE跟PTA7口相连,产生数据编码;电气节点CLK跟TPM1通道1相连,产生38 kHz红外载波信号。三极管基极串接的电阻和R5起到限流保护的作用,三极管本身则具有信号放大的功能,另外两个三极管级联将编码调制在38 kHz的载波上通过红外发射器发射出去。当编码为‘1’时,Q1,Q2截止,红外发射器上无电流通过,发射低电平信号,当编码为‘0’时,Q1,Q2导通,此时载波信号通过Q2放大在发射器上体现出38 kHz的载波信号。因此在PTA7端口输入不同的数据编码,通过该发送电路,在发射器上会出现具有一定间隔的38 kHz载波信号,经发射器将该载波信号转化成光信号发射出去。载波脉冲调制信号的时序图如图2所示。[page]

 

  4.2 接收电路的硬件设计

  红外接收电路中使用了HS0038A接收器,HS0038A的内部逻辑框图如图3所示。

 

  由此可看出该接收器内部实现了红外接收、放大、滤波及解调功能,当收到红外载波光信号时,红外接收器输出低电平,反之红外接收器输出高电平,从而可以将时断时续的红外光信号调制成连续的方波信号,经单片机内部处理可以将其转换成原来的数据。

  硬件原理图如图4所示。

 

  由于HS0038A内置滤波并且采用环氧塑封,可以作为红外滤波器,因此电路中不需要另外增加滤波器,并且HS0038A具备较强的抗干扰能力。

  红外接收器输出引脚RevData连接在TPM2通道0,使用了TPM的输入捕捉功能,在上升沿时发生输入捕捉,比较两次捕捉发生时通道寄存器 TPM2C0V的值,可以得到一个周期脉冲的宽度,根据发射数据的时序图,就可知道不同的脉冲宽度对应的数据是什么,由此就可将原数据还原出来。

  5 红外通信的软件设计

  5.1 38 kHz红外载波设计

  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倍,输出脉冲周期是通道预置寄存器TPM1M0D中值的2 倍,因此令TPM1C1V=131,TPM1M0D=263,启动定时器后,定时器1的计数器TPM1CNTL在自增1计数时,当该值跟通道值寄存器 TPM1C1V中值匹配时,将脉冲输出信号拉低,定时器1的计数器TPMlCNTL在计数值开始进行自减1操作时,当下降到跟通道寄存器TPMlClV 时,将脉冲输出信号拉高。中心脉宽输出的时序图如图5所示。从此通道输出的方波频率通过示波器查看为37.9 kHz或38 kHz。[page]

 


  5.2 数据编码的设计

  MC9S08GT60 单片机有36个端口,大部分端口都具有双重功能,本文使用端口PTA7,配置该端口的方向寄存器PTADD_PTADD7为1,即PTA7为输出,根据脉冲编码的规则,进行不同的延时操作,使该端口输出一定宽度的数据脉冲,通过示波器查看该端口,可看到稳定的脉冲序列。

  5.3 接收端信号的输入捕捉设计

  将 TPM2的状态控制寄存器的位CPWMS置0,则TPM2可以工作在输入捕捉模式、输出比较模式、边沿脉冲输出模式;为使TPM2通道0工作在输入捕捉方式,需要进一步设置TPM2通道0状态控制寄存器,将TPM2C0SC的模式选择位MS0B:MS0A设置为00,选择了输入捕捉方式,此外,要设置捕捉发生在什么条件下,那么需要设置TPM2COSC中的极性选择位ELS0B:ELS0A,使其为01,目的是在该引脚出现上升沿时发生捕捉。在发生捕捉时,通道值寄存器会将定时寄存器的值进行锁存,因此比较两次输入捕捉时,通道值寄存器的内容,根据编码规则,可知道该值对应的编码是‘1’或‘0’。此外通道值寄存器是16位的,如果希望通过串口调试窗口查看比较结果,因为串口接收数据缓冲寄存器是8位的,那么可以将其分解为两个8位的数据通过串口发送。

  以下是输入捕捉的中断子程序:

 

  程序功能描述:将捕捉的数据发往串口查看,这样不管用什么发射器,都可以通过观察串口数据得到识别码,完成不同的功能。

  6 结语

  红外通信一般用在低数据速率,并且短距离的场合中,因此需要低功耗的运行要求。而Freescale的这款单片机工作电压可达到1.8 V,在单片机空闲方式下,通过设置SOPT和SPMSC两个寄存器来设计不同的停止低功耗模式,或者执行一条WAIT指令,使单片机进入等待的低功耗模式,这里就不再详细讲述其实现过程。MC9S08GT60单片机与其他低电压、低功耗的单片机不同之处在于,它并非是以牺牲性能为代价来换取1.8 V的低电压。因此本文使用该单片机讨论了发送和接收红外电路的设计过程及通信协议的运用,该系统的设计切实可行,对红外控制开发者有一定的帮助。 

关键字:红外通信  MC9S08GT60  PWM 引用地址:红外通信的设计与实现

上一篇:智能LED广告牌制作方案
下一篇:矩阵键盘原理与结构

推荐阅读最新更新时间:2024-03-16 13:37

双正激DC/DC变换器的一种新型拓扑研究
引言 目前在各种电气设备中应用的各式各样的开关电源,大多数都采用间接式DC/DC 变换电路。它具有隔离性能好,便于提供多路输出直流电源等优点。间接式DCPDC 变换电路通常又分为单端电路和双端电路。一般小容量的开关电源多采用单端正激式或单端反激式DC/DC 变换电路,其高频变压器铁芯中的磁通是单方向脉动的。单端间接式直流变换电路所存在的主要缺点是高频变压器铁芯中的磁通只工作在磁化曲线的第1 象限,一方面使铁芯不能得到充分利用,另一方面总需要解决磁通复位的问题。相比之下,双端间接式DC/DC 变换电路比较适用于中大容量的开关电源,其高频变压器铁芯的工作磁通在磁化曲线的第1、3 象限之间对称地交变,铁芯的利用率较高,也不必担心磁
[电源管理]
基于ARM920T的红外通信系统的设计
O 引言 随着计算机技术、通信技术以及Internet的飞速发展。嵌入式系统已得到越来越广泛的应用。与此同时,嵌入式系统的复杂性也在不断增加,嵌入式操作系统已经成为其中最重要的组成部分。目前,市场上存在着众多的嵌入式操作系统,而在这些系统之中,兼有Linux和嵌入式优点的嵌入式Linux操作系统,凭借其在结构清晰、源代码开放性、裁剪性好,开发与使用均易实现等方面的优势,拥有巨大的市场前景和商业机会。当前嵌入式Linux的一个热点应用就是将Linux内核移植到一些典型的微控制器和微处理器上,提供操作系统层面支持,以实现嵌入式系统用软件的开发。 此研究基于Linux 2.6内核的嵌入式Linux系统,分析了所面临的理论问题、关
[单片机]
基于ARM920T的<font color='red'>红外通信</font>系统的设计
PWM调光技术详解
PWM调光是一种利用简单的数字脉冲,反复开关白光 LED驱动器的调光技术。应用者的系统只需要提供宽、窄不同的数字式脉冲,即可简单地实现改变输出电流,从而调节白光 LED 的亮度。PWM 调光的优点在于能够提供高质量的白光,以及应用简单,效率高!例如在手机的系统中,利用一个专用 PWM 接口可以简单的产生任意占空比的脉冲信号,该信号通过一个电阻,连接到驱动器的 EN 接口。多数厂商的驱动器都支持PWM 调光。   不管用Buck, Boost, Buck-Boost还是线性调节器来驱动LED,它们的共同思路都是用驱动电路来控制光的输出。一些应用只是简单地来实现“开”和“关”地功能,但是更多地应用需求是要从0到100%调节光的亮度
[电源管理]
<font color='red'>PWM</font>调光技术详解
PWM控制LED灯渐亮渐灭汇编程序
;******************************************************************* ;* 演示程序 - PWM控制LED灯渐亮渐灭 * ;* 邮箱: mcuinfo@163.com * ;* 作者: keel * ;* 时间: 2005/11/30 * ;*【版权】Copyright(C)晶格电子 All Rights Reserved* ;*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息! * ;******************************************************************* ; PWM 控制 LED 灯渐亮渐灭
[单片机]
基于AVR单片机的PWM功能设计
一、定时/计数器PWM设计要点 根据PWM的特点,在使用ATmega128的定时/计数器设计输出PWM时应注意以下几点: 1.首先应根据实际的情况,确定需要输出的PWM频率范围,这个频率与控制的对象有关。如输出PWM波用于控制灯的亮度,由于人眼不能分辨42Hz以上的频率,所以PWM的频率应高于42Hz,否则人眼会察觉到灯的闪烁。 2.然后根据需要PWM的频率范围确定ATmega128定时/计数器的PWM工作方式。AVR定时/计数器的PWM模式可以分成快速PWM和频率(相位)调整PWM两大类。 3.快速PWM可以的到比较高频率的PWM输出,但占空比的调节精度稍微差一些。此时计数器仅工作在单程正向计数方式,计数器的上限值决定P
[单片机]
基于AVR单片机的<font color='red'>PWM</font>功能设计
利用STM32高精度定时器实现PWM输出的实现原理
很多STM32系列的MCU内置高精度定时器,比方STM32F334、STM32G4、STM32H7等系列。利用高精度定时器实现PWM输出应该说是最基本的功能了。不过,在实际应用中,常有人觉得无法实现duty=0或duty=100%的PWM输出情形。这里以STM32F334的HRTIM为例,简单介绍下利用它实现PWM输出的实现原理。 STM32F334的HRTIM的功能框图如下,由一个MASTER定时器和ABCDE五个定时器单元组成。其中ABCDE五个定时器单元各可以产生2路输出信号,并支持互补输出。 先看看跟HRTIM有关的时钟。别的系列有支持向上、向下计数模式的。 在利用HRTIM中的定时器单元实现PWM输出时,基于不同
[单片机]
利用STM32高精度定时器实现<font color='red'>PWM</font>输出的实现原理
【51单片机STC89C52】IO口模拟PWM控制SG90舵机
一、PWM PWM ,英文名 Pulse Width Modulation ,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进 行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通 过调节占空比的变化来调节信号、能量等的变化,占空比就是指在一个周期内,信号处于高电平的 时间占据整个信号周期的百分比,例如方波的占空比就是50%. 占空比 : 一个周期内,高电平占据时长的百分比 STC89C52没有集成PWM功能,可以通过IO口软件模拟,相对硬件PWM来说精准度略差 二、关于舵机控制原理 舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的
[单片机]
【51单片机STC89C52】IO口模拟<font color='red'>PWM</font>控制SG90舵机
抗电磁干扰的PWM风扇控制器
微芯科技(Microchip )公司提供一种工作于 PWM模式的风扇制冷速度控制器系列产品,用于无刷直流风扇(参考文献1)。为了利用PWM波形的占空比来控制风扇速度,可以使用外部 NTC(负温度系数)热敏电阻或微芯公司的一种PIC微控制器及其 SMBus 串行数据总线。图1示出了TC664 和 TC665 控制器数据资料描述的一种典型应用(参考文献2)。利用电容值为1mF的频率控制电容器CF和风扇控制器IC1产生一个PWM脉冲串,它的标称频率为30 Hz,依赖于温度或命令的占空比变化范围是30%"100%。   虽然使用PWM模式的控制器可以降低晶体管QA(它驱动风扇)的功耗,但 100 mA 方波电机驱动电流可能对
[传感技术]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved