基于MSP430G2303的TV背光3D红外信号发射的方案
时间,所以不同通道的 Phase 延时会受到影响,不同的通道之间的 Phase 值不能相差太校根据实际测试,最小的相位差不能低于 50us。
3.2.2 软件实现
从波形上分析,8 个通道的 PWM 信号的 Phase 各不相同,我们把在一个SYNC 周期内的 8 路通道的 PWM 波形的上升沿和下降沿看成 8 个 GPIO 上升事件和 8 个下降事件,然后根据事件发生的先后时间排序。由于上升沿和下降沿有可能在同一时间发生,所以我们就用 TIMER_A0 的 CPP1 和 CPP2 分别处理上升沿事件和下降沿事件。
在 3D 模式时,设置 Timer_A0 工作在连续模式; P2.3 管脚接收主机的 R/L信号。在 R/L 信号的上升沿和下降沿触发 GPIO 中断,在中断处理函数中清零TIMER_A0 计数器。然后,按照排好序的事件序列,设置第一个上升沿事件的时间点到 TIMER_A0 的 CCP1 和第一个下降沿事件的时间点到 TIMER_A0 的CCP2。最后,使能 TIMER_A0 的 CCP1 和 CPP2 中断。
在 TIMER_A0 的 CCP1 和 CCP2 中断发生时,CPU 根据上升沿和下降沿的事件设置对应的 GPIO 电平,并更新 CCP1 或 CCP2 中的上升沿或下降沿事件的时间点。
这样就顺序实现了 3D 背光的 Scanning 扫描功能。
3.3 3D 模式下的红外信号发射
3.3.1 需求分析
在 3D 模式下,MCU 根据图像帧的同步信号控制三级管驱动一个红外发射管,给 3D 眼镜发送红外信号。3D 眼镜根据接收到的信号开关左右眼的快门,从而使左右眼分别看到不同的电视信号,实现 3D 效果。
红外信号的频率为 20kHz,50%的占空比。如下图所示:
在本应用中使用 L/R (左、右眼) 信号替代帧同步信号,MCU 检测到该信号后,按照设置好的参数输出固定的红外 R/L 同步信号给眼镜。为了节约功耗,每 3 次 R/L 信号发射一次红外信号。
为了避免累计的时间误差,MCU 每检测到 15 个 R/L 信号需发送一次帧同步信号给眼镜,具体波形如下。为了防止和 3D R/L 同步信号冲突,该信号在R/L 同步信号的第二个 R/L 信号之后发送。
编码各部分时长及包含的方波脉冲数见表一。
3.3.2 软件实现
由于红外信号载波频率的精度会影响到 3D 眼睛的接收距离和角度,所以我们使用硬件 Timer 来产生 20kHz 的红外载波信号。我们设置 Timer_A1 工作在 PWM 模式,周期为 50us,占空比为 50%。
在背光控制一节,已经介绍了使用如何设置 Timer_A0,使其工作在连续计数器模式。在 3D 红外发射部分需要利用 Timer_A0 的 CCP0 功能。
利用 P2.3 来检测 R/L 信号,分别在上升沿和下降沿产生同步信号的中断。
在 R/L 信号的上升/下降沿中断中,按照表 1 的参数,设置 Timer_A0 的CCP0,并根据波形开启和关闭 Timer_A1 产生的 PWM 波形,从而实现红外编码。
由于在不同的 R/L 信号周期要求产生不同红外波形,我们定义一个计数器来计算 R/L 同步信号的周期数,该计数器范围从 1 到 15。MCU 在不同的计数值,产生对应的红外信号。
由于软件采用中断的方式检测 R/L 信号,采用 Timer 中断的方式处理红外编码,所以在计算编码周期时需要把中断处理的时间考虑进去,尽量避免由于中断处理带来的累计误差。
3.4 帧频率的判断
由于电视信号的制式不同,帧同步信号分为 50HZ 和 60HZ 两种。MCU 需要判断帧同步信号的频率,并根据频率调用各自的背光参数。这个工作分为两个部分。
第一部分在 TV 信号从 2D 切换到 3D 的过程,在这个过程中由于 R/L 信号还未稳定,所以不能输出 3D 红外信号,同时 8 路 PWM 控制单元输出一个固定的 50HZ,占空比位 30%的 PWM 信号驱动 LED driver 点亮背光。在此期间,我们利用 Timer_A1 的 CCP 功能,捕获 R/L 信号的脉宽,并判断其周期。等其稳定在 50HZ 或 60HZ 之后,才载入 50HZ 或 60HZ 的参数,并切换到 3D 工作模式。
第二部分发生在 3D 工作模式,我们利用 MCU 的 T imer_A1 定期检测 R/L信号,判断其周期是否有变化,如果发生有效的 50HZ 和 60HZ 的切换,MCU会重新载入当前的频率参数。为了不影响到正常的 3D 红外发射功能和Scanning 背光扫描功能,我们在 R/L 信号周期计数器计数到 15 时才判断一次R/L 信号。
4. 通信功能
4.1 I2C 总线接口
TV 的主芯片通过 I2C 接口和 MCU 进行通信,并把相关的参数信息通过I2C 总线传给 MCU。主芯片工作在 I2C 主模式,MCU 工作在 I2C 从模式。
I2C 接口设计成符合 I2C 总线读写规范的标准工作模式,包含 7 位地址,8-BIT 数据访问模式。
4.2 I2C 数据帧格式描述
主芯片通过数据帧和 MCU 通信,一帧数据以 START 信号为起始,以STOP 信号为结束,I2C 的数据帧格式如下表所示:
具体的帧格式描述如下:
? I2C 地址+W/R - 主机通过 7 位地址访问从机,访问地址为 0xC4
? 命令字 - 从机通过解析命令字,更改参数数据
? 数据域长度 - 根据不同的命令字,有不同的数据域长度
? 数据域 - 命令字匹配的数据参数,详细见命令字说明
? 校验码 - 从命令字到数据域的所有字节和,取最低的 8 位
? 结束符 - 帧结束符:0x9B64
MSP430G2303TV背光3D红外信 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)