文档介绍:红外数据传输一、红外通信原理红外遥控有发送和接收两个组成部分。发送端采用单片机将待发送的二进制信号编码调制为一系列的脉冲串信号,通过红外发射管发射红外信号。红外接收完成对红外信号的接收、放大、检波、整形,并解调出遥控编码脉冲。为了减少干扰, 采用的是价格便宜性能可靠的一体化红外接收头(HS0038 , 它接收红外信号频率为 38kHz , 周期约 26μ s) 接收红外信号,它同时对信号进行放大、检波、整形得到 TTL 电平的编码信号,再送给单片机,经单片机解码并执行去控制相关对象。如图 1 所示: 红外发送部分由 51 单片机、键盘、红外发光二极管和 7 段数码管组成。键盘用于输入指令, 51 单片机检测键盘上按键的状态,并对红外信号进行调制,发光二极管产生红外线,数码管用来显示发送的键值。图 2 红外发射电路红外接收部分由 51 单片机、一体化红外接收头 HS0038 和7 段数码管组成。 51 单片机检测 HS0038 , 并对 HS0038 接收到的数据解码,通过数码管显示接收到的键值。图 3 红外接收电路二、编码、解码(1) 二进制信号的调制二进制信号的调制由单片机来完成,它把编码后的二进制信号调制成频率为 38kHz 的间断脉冲串,相当于用二进制信号的编码乘以频率为 38kHz 的脉冲信号得到的间断脉冲串, 即是调制后用于红外发射二极管发送的信号如图 4 二进制码的调制所示(2) 红外接收需先进行解调,解调的过程是通过红外接收管进行接收的。其基本工作过程为:当接收到调制信号时,输出高电平,否则输出为低电平,是调制的逆过程(图 5 解调)。 HS0038 是一体化集成的红外接收器件,直接就可以输出解调后的高低电平信号;红外接收器 HS0038 的应用电路(图 6 )。(3 )红外遥控发射芯片采用 PPM 编码方式, 当发射器按键按下后, 将发射一组 108ms 的编码脉冲。遥控编码脉冲由前导码、 16 位地址码(8 位地址码、8 位地址码的反码)和 16 位操作码(8 位操作码、8 位操作码的反码) 组成。通过对用户码的检验,每个遥控器只能控制一个设备动作,这样可以有效地防止多个设备之间的干扰。编码后面还要有编码的反码,用来检验编码接收的正确性,防止误操作,增强系统的可靠性。前导码是一个遥控码的起始部分,由一个 9ms 的高电平( 起始码) 和一个 4. 5ms 的低电平( 结果码) 组成,作为接受数据的准备脉冲。以脉宽为 0. 56ms 、周期为 1. 12ms 的组合表示二进制的“0”; 以脉宽为 1. 68ms 、周期为 2. 24ms 的组合表示二进制的“1”。(4 )单片机采用外部中断 INT0 管脚和红外接收头的信号线相连,中断方式为边沿触发方式。计算中断的间隔时间, 来区分前导码、二进制的“1”、“0”码。并将 8 位操作码提取出来在数码管上显示。红外接收头输出的原始遥控数据信号, 正好和发射端倒向. 也就是以前发射端原始信号是高电平, 那接收头输出的就是低电平, 反之. 软件原理: 开始时发射一个特定的同步码头, 对于接收端而言就是一个 9ms 的低电平, 和一个 的高电平, 这个同步码头可以使程序知道从这个同步码头以后可以开始接收数据。采用脉宽调制的串行码,以脉宽为 、间隔 、周期为 的组合表示二进制的“0”;以脉宽为 、间隔 、周期为 的组合表示二进制的“1”。解码的关键是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以 的高电平开始,不同的是低电平的宽度不同,“0”为 , “1”为 , 所以必须根据高电平的宽度区别“0”和“1”。如果从 低电平过后,开始延时, 以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见, 延时必须比 长些,但又不能超过 , 否则如果该位为“0”,读到的已是下一位的高电平,因此取( + ) /2= 最为可靠,一般取 左右即可。根据红外编码的格式,程序应该等待 9ms 的起始码和 的结果码完成后才能读码。 HS0038 红外接收器,接收红外遥控器发射的信号,输出 DATA 口和单片机的外部中断 口相连。当有红外信号时, 触发中断查询中断时间,并和红外起始码,“0”、“1”、终止码的时间进行比较。从而检测红外的操作码。整体流程图(1 )发射部分:通过中断产生 38K 的载波, TX 端口产生发送的数据,然后经过与门放大经发射管发射数据: 38k 载波第一列有效发送数据第二列