新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于MSP430G2303的TV背光3D紅外信號發(fā)射的方案

基于MSP430G2303的TV背光3D紅外信號發(fā)射的方案

作者: 時間:2016-11-09 來源:網(wǎng)絡 收藏
液晶(LCD)電視機在家電消費市場已經(jīng)全面普及,因為 LCD 顯示需要背光,而傳統(tǒng)的 CCFL 背光已經(jīng)逐漸被 LED 背光替代。在 LED 背光方案中,常常需要一個 MCU 來控制 LED Driver。同時,因為 3D 電視的市場占有率越來越高,在 3D 電視中,也需要使用一個 MCU 來發(fā)射 3D 眼鏡同步信號。

本文引用地址:http://butianyuan.cn/article/201611/317910.htm

本文介紹了一種基于 MSP430G2303 單片機實現(xiàn) 3D TV 的背光掃描和 3D 紅外信號發(fā)射的解決方案。該方案采用一顆高性價比的 MCU 實現(xiàn)了 3D TV 背光掃描和紅外發(fā)射功能,具有成本低,性能可靠的特點。

  1. 簡介

快門式的 3D 電視需要發(fā)射左、右眼的同步信號給眼鏡,眼鏡根據(jù)這個信號來控制左右眼的開關,從而實現(xiàn) 3D 顯示。同時,為了獲得更好的 3D 效果,主機會按照左右眼的同步信號,調(diào)節(jié)顯示器的背光,即 3D Scanning 背光掃描。

通常應用中會用一個 MCU 來處理 3D 紅外信號發(fā)射,用另一個 MCU 實現(xiàn)背光掃描。本文介紹了一種使用一個 MCU 實現(xiàn) 3D 紅外信號發(fā)射和背光掃描的方法。采用 TI 公司的高性能,低成本的 MSP430G 系列 MCU 可以很方便實現(xiàn)這兩個功能。

2. 原理框圖

2.1 功能框圖

基于 MSP430G2303 MCU 設計 TV 背光、3D 紅外發(fā)射二合一功能控制器的系統(tǒng)框圖如下:

? 配置內(nèi)部數(shù)字振蕩器(DCO)工作在 8MHz 最高主頻,為 MCLK,ACLK 分別提供 8MHz 的時鐘源;


? 配置 USCI_A 工作在從 I2C 模式,接收上位機發(fā)過來的參數(shù)數(shù)據(jù);
? MCU 檢測 GPIO 的上升、下降沿中斷,并根據(jù) TV 模式設置背光 PWM輸出;
? TIMER_A0 的 CCP1,CCP2 用來分別實現(xiàn) 3D 模式下的 8 通道的 PWM 背光輸出控制;
? TIMER_A0 的 CCP0 實現(xiàn)紅外編碼處理;
? TIMER_A1 實現(xiàn) 20kHz 的紅外載波頻率輸出。

2.2 引腳分配框圖

在本應用中,MSP430G2303 的管腳分配如下圖所示。

其中:
- P1.0-P1.5, P2.0-P2.1 用作 8 路 PWM 輸出,控制 LED 背光;
- P2.2 用作紅外發(fā)射控制管腳,控制 3D 紅外信號發(fā)射;
- P2.3 用來接收 3D 信號的 R/L 信號;
- P2.4 用來接收 2D 模式下的 PWM 輸入;
- P2.5 用來接收主機的 2D/3D 模式切換;
- P1.6、P1.7 用作 I2C 總線 SDA 和 SCL,接收主機發(fā)送的命令和參數(shù)。

2.3 原理圖

設計原理圖如下圖所示:

2.4 系統(tǒng)框圖及優(yōu)勢

目前,大多數(shù)的 LCD 電視廠家采用主板+電源板的系統(tǒng)架構。主板負責處理電視信號,電源板負責管理系統(tǒng)電源以及 LCD 背光驅(qū)動。

支持 3D 模式的電視機上,電源板上采用一個 MCU1 來處理 3D Scanning 模式的背光掃描,在主板上使用一個 MCU2 控制 3D 眼睛的紅外信號發(fā)射。如圖4 所示。這種架構的方案有如下幾個缺點:

  1. 由于不同的 LCD 顯示屏對背光掃描的參數(shù)不一樣,所以位于電源板上的MCU1 要根據(jù)不同的 LCD 顯示屏配置不同的參數(shù), 生產(chǎn)和管理很不方便;


    2. 不同的電視尺寸背光的通道數(shù)是不一樣的,同一個 MCU 的軟件很難支持各種規(guī)格的電視;


    3. 背光 MCU 的 SYNC 信號和主芯片發(fā)送給主板上的 MCU 的 L/R 信號存在一定相差,容易造成 3D 眼睛和背光不同步。

TI 的二合一方案,利用一個 MCU 處理 3D 電視的背光和 3D 眼睛的紅外信號,系統(tǒng)框圖如圖 5 所示。本方案的優(yōu)勢如下:

1. 該方案采用一個 MCU,只需要一套軟件;便于軟件開發(fā)和管理;
2. 在主芯片和 MCU 之間增加了 I2C 接口進行通信,所有的參數(shù)都可以通過該接口傳給 MCU;
3. 使用同一套軟件不同的屏參和 LED 背光通道數(shù)的控制,方便生產(chǎn)和物料管理。

3. 設計原理

3.1 2D 模式下的背光控制

在 2D 模式下,MCU 控制 8-CH 的背光輸出跟隨 PWMIN 的信號。本應用中,采用 P2.4 引腳作為 2D 模式下的 PWM_IN 的輸入引腳,P2.4 被設計成上升/下降沿觸發(fā)中斷,在中斷處理函數(shù)中,CPU 根據(jù) PWM_IN 的信號設置 8 個通道的 PWM 輸出電平。背光輸出波形如下圖所示:

由于采用的管腳中斷觸發(fā) PWM 輸出,所以 PWM 的輸出精度受到中斷處理的影響,會帶來 10~20uS 的延時誤差。

3.2 3D 模式下的背光控制

3.2.1 需求分析

在 3D 模式下,MCU 接收從 LCD 顯示屏發(fā)出的 R/L 信號,并根據(jù)設置好的Phase 和 Duty 參數(shù),分別輸出 8 路 PWM 控制信號驅(qū)動 LED Driver 點亮背光。為了適應各種屏的需要,8 路 PWM 信號的 Phase 和 Duty 可以由主機通過 I2C總線設置。具體的命令參見本文的“4. 命令字”章節(jié)。

3D 模式下的背光控制輸出和 R/L 信號的波形圖,如下圖所示:

由于 MCU 采用 GPIO 的中斷觸發(fā)方式檢測 R/L 信號,每個通道的處理是通過 TIMER 中斷觸發(fā),所以在實際操作中會帶來一定的延時誤差。實際測試的誤差在 20uS 以內(nèi)。

由于中斷處理需要占用 CPU 一定的處理時間,所以不同通道的 Phase 延時會受到影響,不同的通道之間的 Phase 值不能相差太小。根據(jù)實際測試,最小的相位差不能低于 50us。

3.2.2 軟件實現(xiàn)

從波形上分析,8 個通道的 PWM 信號的 Phase 各不相同,我們把在一個SYNC 周期內(nèi)的 8 路通道的 PWM 波形的上升沿和下降沿看成 8 個 GPIO 上升事件和 8 個下降事件,然后根據(jù)事件發(fā)生的先后時間排序。由于上升沿和下降沿有可能在同一時間發(fā)生,所以我們就用 TIMER_A0 的 CPP1 和 CPP2 分別處理上升沿事件和下降沿事件。

在 3D 模式時,設置 Timer_A0 工作在連續(xù)模式; P2.3 管腳接收主機的 R/L信號。在 R/L 信號的上升沿和下降沿觸發(fā) GPIO 中斷,在中斷處理函數(shù)中清零TIMER_A0 計數(shù)器。然后,按照排好序的事件序列,設置第一個上升沿事件的時間點到 TIMER_A0 的 CCP1 和第一個下降沿事件的時間點到 TIMER_A0 的CCP2。最后,使能 TIMER_A0 的 CCP1 和 CPP2 中斷。

在 TIMER_A0 的 CCP1 和 CCP2 中斷發(fā)生時,CPU 根據(jù)上升沿和下降沿的事件設置對應的 GPIO 電平,并更新 CCP1 或 CCP2 中的上升沿或下降沿事件的時間點。

這樣就順序?qū)崿F(xiàn)了 3D 背光的 Scanning 掃描功能。

3.3 3D 模式下的紅外信號發(fā)射

3.3.1 需求分析

在 3D 模式下,MCU 根據(jù)圖像幀的同步信號控制三級管驅(qū)動一個紅外發(fā)射管,給 3D 眼鏡發(fā)送紅外信號。3D 眼鏡根據(jù)接收到的信號開關左右眼的快門,從而使左右眼分別看到不同的電視信號,實現(xiàn) 3D 效果。

紅外信號的頻率為 20kHz,50%的占空比。如下圖所示:

在本應用中使用 L/R (左、右眼) 信號替代幀同步信號,MCU 檢測到該信號后,按照設置好的參數(shù)輸出固定的紅外 R/L 同步信號給眼鏡。為了節(jié)約功耗,每 3 次 R/L 信號發(fā)射一次紅外信號。

為了避免累計的時間誤差,MCU 每檢測到 15 個 R/L 信號需發(fā)送一次幀同步信號給眼鏡,具體波形如下。為了防止和 3D R/L 同步信號沖突,該信號在R/L 同步信號的第二個 R/L 信號之后發(fā)送。

編碼各部分時長及包含的方波脈沖數(shù)見表一。

3.3.2 軟件實現(xiàn)

由于紅外信號載波頻率的精度會影響到 3D 眼睛的接收距離和角度,所以我們使用硬件 Timer 來產(chǎn)生 20kHz 的紅外載波信號。我們設置 Timer_A1 工作在 PWM 模式,周期為 50us,占空比為 50%。

在背光控制一節(jié),已經(jīng)介紹了使用如何設置 Timer_A0,使其工作在連續(xù)計數(shù)器模式。在 3D 紅外發(fā)射部分需要利用 Timer_A0 的 CCP0 功能。

利用 P2.3 來檢測 R/L 信號,分別在上升沿和下降沿產(chǎn)生同步信號的中斷。

在 R/L 信號的上升/下降沿中斷中,按照表 1 的參數(shù),設置 Timer_A0 的CCP0,并根據(jù)波形開啟和關閉 Timer_A1 產(chǎn)生的 PWM 波形,從而實現(xiàn)紅外編碼。

由于在不同的 R/L 信號周期要求產(chǎn)生不同紅外波形,我們定義一個計數(shù)器來計算 R/L 同步信號的周期數(shù),該計數(shù)器范圍從 1 到 15。MCU 在不同的計數(shù)值,產(chǎn)生對應的紅外信號。

由于軟件采用中斷的方式檢測 R/L 信號,采用 Timer 中斷的方式處理紅外編碼,所以在計算編碼周期時需要把中斷處理的時間考慮進去,盡量避免由于中斷處理帶來的累計誤差。

3.4 幀頻率的判斷

由于電視信號的制式不同,幀同步信號分為 50HZ 和 60HZ 兩種。MCU 需要判斷幀同步信號的頻率,并根據(jù)頻率調(diào)用各自的背光參數(shù)。這個工作分為兩個部分。

第一部分在 TV 信號從 2D 切換到 3D 的過程,在這個過程中由于 R/L 信號還未穩(wěn)定,所以不能輸出 3D 紅外信號,同時 8 路 PWM 控制單元輸出一個固定的 50HZ,占空比位 30%的 PWM 信號驅(qū)動 LED driver 點亮背光。在此期間,我們利用 Timer_A1 的 CCP 功能,捕獲 R/L 信號的脈寬,并判斷其周期。等其穩(wěn)定在 50HZ 或 60HZ 之后,才載入 50HZ 或 60HZ 的參數(shù),并切換到 3D 工作模式。

第二部分發(fā)生在 3D 工作模式,我們利用 MCU 的 T imer_A1 定期檢測 R/L信號,判斷其周期是否有變化,如果發(fā)生有效的 50HZ 和 60HZ 的切換,MCU會重新載入當前的頻率參數(shù)。為了不影響到正常的 3D 紅外發(fā)射功能和Scanning 背光掃描功能,我們在 R/L 信號周期計數(shù)器計數(shù)到 15 時才判斷一次R/L 信號。

4. 通信功能

4.1 I2C 總線接口

TV 的主芯片通過 I2C 接口和 MCU 進行通信,并把相關的參數(shù)信息通過I2C 總線傳給 MCU。主芯片工作在 I2C 主模式,MCU 工作在 I2C 從模式。

I2C 接口設計成符合 I2C 總線讀寫規(guī)范的標準工作模式,包含 7 位地址,8-BIT 數(shù)據(jù)訪問模式。

4.2 I2C 數(shù)據(jù)幀格式描述

主芯片通過數(shù)據(jù)幀和 MCU 通信,一幀數(shù)據(jù)以 START 信號為起始,以STOP 信號為結束,I2C 的數(shù)據(jù)幀格式如下表所示:

具體的幀格式描述如下:
? I2C 地址+W/R - 主機通過 7 位地址訪問從機,訪問地址為 0xC4
? 命令字 - 從機通過解析命令字,更改參數(shù)數(shù)據(jù)
? 數(shù)據(jù)域長度 - 根據(jù)不同的命令字,有不同的數(shù)據(jù)域長度
? 數(shù)據(jù)域 - 命令字匹配的數(shù)據(jù)參數(shù),詳細見命令字說明
? 校驗碼 - 從命令字到數(shù)據(jù)域的所有字節(jié)和,取最低的 8 位
? 結束符 - 幀結束符:0x9B64

4.3 命令字

MCU 接收到完整的 I2C 幀數(shù)據(jù)后,解析出命令字并根據(jù)命令字設置新的參數(shù)。

其中命令字包括如下定義:

5. Firmware 設計

本設計采用 C 語言開發(fā),IDE 采用 IAR5.4 版本。

5.1 主函數(shù)流程

在主函數(shù)中,主要完成系統(tǒng)的初始化工作,并從 INFO Flash 中載入 TV 背光和 3D 紅外發(fā)射需要的參數(shù)到 RAM 中。然后進入循環(huán)查詢模式,等待主機I2C 命令操作。

主函數(shù)的流程圖如下所示:

5.2 I2C 幀數(shù)據(jù)判斷流程

MCU 接收到一幀 I2C 數(shù)據(jù)之后,首先判幀數(shù)據(jù)是否合法,判斷的流程圖如下圖所示:

5.3 命令字解析處理

當檢測到合法的 I2C 數(shù)據(jù)幀之后,MCU 提取出數(shù)據(jù)幀中的命令字,并根據(jù)命令字跳轉(zhuǎn)到命令字處理函數(shù)。

在本應用中,把命令處理函數(shù)定義成一個函數(shù)指針數(shù)組,當接收到命令字后,根據(jù)命令字的來調(diào)用數(shù)組中的不同函數(shù)。詳細代碼如下:

// 定義 I2C 命令字
#define CMD_3D_STA 0x36
#define CMD_3D_IR CMD_3D_STA + 1
#define CMD_3D_BLP1 CMD_3D_IR + 1
#define CMD_3D_BLP2 CMD_3D_BLP1 +1
// 定義命令字處理函數(shù)指針
typedef unsigned char (*pFun)(unsigned char*);
const pFun g_CmdFun[4] = {Set3DSta, Set3DIRPar, Set3DPhase,Set3DDuty};
/*******************************************************************
** Function Name : CmdSer **
** Description : **
** Arguments : **
** Out Put : **
** Author : Triton.Zhang@ti.com **

** Date : **
*******************************************************************/
unsigned char CmdSer(unsigned char Cmd)
{
unsigned char sta = 0;
if ((Cmd>= CMD_3D_STA) && (Cmd <= CMD_3D_BLP2))
sta = (*g_CmdFun[Cmd - CMD_3D_STA])(&g_I2CRxBuff[2]);
else
return 1;
return sta;
}

更詳細的關于各個 I2C 命令的處理參見附件中的軟件包。

5.3 2D 模式的背光處理

TV 在 2D 模式下時,背光跟隨輸入的 PWM 信號調(diào)節(jié)輸出,其處理函數(shù)如下:
if (P2IFG & PIN_PWMIN)
{
if (P2IN & PIN_PWMIN)
{
PWM_OUT_HIGH();
P2IES |= PIN_PWMIN; // 設置下降沿觸發(fā)中斷
}
else
{
PWM_OUT_LOW();
P2IES &= ~PIN_PWMIN; // 設置為上升沿觸發(fā)中斷
}
}

其它軟件功能如 3D 模式下的背光處理和紅外發(fā)射控制比較復雜,不在本文中詳細列舉。若對本文所述的方案和內(nèi)容感興趣,請聯(lián)系德州儀器半導體獲得進一步支持。

6. 參考文獻

  1. MSP430G2303 數(shù)據(jù)手冊
    2. MSP430F2XX 用戶手冊



評論


技術專區(qū)

關閉