謝特輝
(廈華電子研發(fā)中心,福建 廈門 361006)
隨著技術(shù)的發(fā)展和市場的需求,消費電子設(shè)備越來越豐富,諸如DVD、數(shù)字平板電視、機(jī)頂盒、可錄制設(shè)備、數(shù)字功放和音響等各類視聽設(shè)備讓生活多姿多彩,但隨之而來的是,遙控器也越來越多。CEC(Consumer ElectronicsControl),即消費電子控制,是為所有通過HDMI線連接的家庭視聽設(shè)備提供高級控制功能的一種協(xié)議,用戶通過一個遙控器即可對這些連接的設(shè)備進(jìn)行控制。CEC總線的基本技術(shù)起源于歐洲的SCART接口。HDMI在SCART技術(shù)基礎(chǔ)上發(fā)展為HDMI-CEC總線[1],允許在系統(tǒng)內(nèi)的視聽產(chǎn)品之間進(jìn)行查詢和通信。CEC使得建立于現(xiàn)有的點對點E-DDC的“插入并播放(Plug&Play)”自動操作的全局控制成為可能,從而減少系統(tǒng)的遙控器數(shù)量,簡化基本操作所需的按鍵次數(shù)。
CEC假定一個系統(tǒng)內(nèi)的所有音視頻信號源產(chǎn)品都直接或間接地連接到一個“根”顯示設(shè)備,通過HDMI線連接成一個自上而下的樹,顯示設(shè)備作為“根”,信號開關(guān)設(shè)備作為“枝”,不同的信號源產(chǎn)品作為“葉”節(jié)點,如圖1所示。
空閑時,CEC設(shè)備內(nèi)的上拉電阻將CEC總線的電壓提升到2.50~3.63 V,在發(fā)送位信號時將總線拉低為0~0.6 V。信號上升和下降的最大時間分別為250ms和50ms。為了防止設(shè)備干擾CEC總線,待機(jī)狀態(tài)下的最大漏電流限制為1.8μA。CEC總線可連接10個100 pF的設(shè)備和9個700 pF的信號線,所以最大的總線電容為7 200 pF。正常工作狀態(tài)下CEC總線的電氣特性如表1所示。
表1 正常工作狀態(tài)下CEC總線的電氣特性
為了使CEC能夠?qū)ぶ芳翱刂茡碛刑囟ㄎ锢淼刂返脑O(shè)備,所有系統(tǒng)內(nèi)的設(shè)備必須擁有物理地址。通過DDC/EDID為CEC網(wǎng)絡(luò)中的所有設(shè)備(包括不兼容CEC協(xié)議的設(shè)備)分配物理地址,物理地址的分配方法如下:
1)在整個網(wǎng)絡(luò)中,必然存在著一個只有子設(shè)備沒有父設(shè)備的終端,該設(shè)備為root(通常為TV),也就是CEC網(wǎng)絡(luò)的根節(jié)點,此根節(jié)點可以將自己的物理地址設(shè)置成0.0.0.0。
2)根節(jié)點監(jiān)測到目前的HDMI輸入設(shè)備數(shù)量,在EDID中為其分配地址。
3)與根節(jié)點直接連接的設(shè)備可以讀取對應(yīng)父設(shè)備的EDID部分,從而獲知自己的物理地址,并且由此設(shè)置本設(shè)備的EDID部分。
4)CEC網(wǎng)絡(luò)中的其余子設(shè)備在連接時讀取其父設(shè)備的EDID,并將其父設(shè)備的物理地址中的第一個數(shù)字0的位置替換成一個非0數(shù)字,便成為該子設(shè)備的物理地址。例如,父設(shè)備地址為1.2.0.0,其子設(shè)備的物理地址范圍為 1.2.1.0~1.2.F.0。
當(dāng)一個CEC設(shè)備獲得一個新的物理地址時,需要配置邏輯地址并通過
每個連接到CEC控制總線上的設(shè)備都有一個唯一的邏輯地址,定義該設(shè)備的類型,同時,也是該設(shè)備的唯一標(biāo)識符。邏輯地址的定義如表2所示。
表2 CEC設(shè)備的邏輯地址
CEC設(shè)備的邏輯地址也是動態(tài)分配的,分配方式為:
1)根節(jié)點(通常為TV)直接設(shè)邏輯地址為0。
2)當(dāng)設(shè)備A插入后,該設(shè)備的類型是已知的,因此可以為該設(shè)備A預(yù)設(shè)一個邏輯地址(如DVD,其預(yù)設(shè)地址為 DVD1,即為 4),并通過
3)當(dāng)該邏輯地址已經(jīng)被占用時,對應(yīng)的占用設(shè)備會應(yīng)答確認(rèn)信息。設(shè)備A收到確認(rèn)后,重設(shè)其他邏輯地址(如 DVD1->DVD2),并通過
4)當(dāng)檢測到?jīng)]有確認(rèn)時,此邏輯地址可用,因此設(shè)備A占用此邏輯地址。
5)占用后,發(fā)送廣播
通信總是在一個發(fā)起者和一個(或多個)接收者之間進(jìn)行。發(fā)起者聲明的位提供數(shù)據(jù),而接收者聲明的位提供應(yīng)答。位通信的速率很慢,位速率小于500位/s。消息以一個長的起始位開始并緊跟一些較短的數(shù)據(jù)位。起始位的時長為4.5ms,且低電平的寬度為3.7 ms,如圖2所示。
數(shù)據(jù)位的時長為2.4 ms,邏輯“0”的低電平寬度為1.5ms,而邏輯“1”的低電平寬度為0.6 ms,如圖3所示。
每10位∶8位數(shù)據(jù)、EOM(消息結(jié)束位)和ACK(應(yīng)答位)組成一個引導(dǎo)或數(shù)據(jù)塊。EOM位用來標(biāo)識消息的最后一個塊:“0”表示后續(xù)還有數(shù)據(jù)塊,“1”則表示消息結(jié)束。ACK位是接收者用來對消息發(fā)起者進(jìn)行應(yīng)答的,消息發(fā)起者總是將此位設(shè)置為“1”。對于點對點消息,與消息中的目標(biāo)地址相同的設(shè)備將ACK位修改為“0”,其他設(shè)備則不動作;對于廣播消息,拒絕接收該消息的設(shè)備將ACK位修改為“0”,其他設(shè)備則不動作。
引導(dǎo)塊包含發(fā)起者的4位邏輯地址和接收者的4位邏輯地址;數(shù)據(jù)塊的8個信息位包含操作碼和操作數(shù)等數(shù)據(jù),兩者的數(shù)據(jù)結(jié)構(gòu)如圖4所示。
HDMI-CEC消息是通過幀來發(fā)送的,幀結(jié)構(gòu)如圖5所示。
下面以一鍵播放功能為例,簡要說明消息的流程,如圖6所示。
假設(shè)TV的HDMI1接口 (EDID中設(shè)定的物理地址為1.0.0.0)連接一臺支持CEC功能的DVD(其邏輯地址為0x04),當(dāng)用戶按下DVD的Play鍵時,DVD通過CEC總線發(fā)送
在廈華新發(fā)布的一款LED超薄機(jī)型上實現(xiàn)了一鍵播放、系統(tǒng)待機(jī)、系統(tǒng)信息、設(shè)備OSD名稱傳輸、遙控命令傳輸及路由控制等CEC功能特性。該機(jī)型是采用Broadcom公司的數(shù)字電視信號處理芯片BCM35143為核心平臺的ATSC/NTSC數(shù)模一體機(jī),具有3個支持1 080p全高清信號的HDMI接口。BCM35143集成有支持HDMI1.3a標(biāo)準(zhǔn)的HDMI接收解碼器,支持HDMI-CEC協(xié)議。
系統(tǒng)框圖如圖8所示。在這個系統(tǒng)中,TV是CEC系統(tǒng)的根節(jié)點,物理地址為0.0.0.0,邏輯地址為0。3路HDMI信號通過一個HDMI切換開關(guān)選擇一路輸入到BCM35143,因此,HDMI切換開關(guān)的物理地址分配為1.0.0.0,而3個HDMI接口按照端口定義,通過EDID將其物理地址分別設(shè)置為1.1.0.0,1.2.0.0和1.3.0.0,邏輯地址在HDMI-CEC設(shè)備連接到相應(yīng)的接口時進(jìn)行動態(tài)分配。
在用戶選單下,提供給用戶對HDMI-CEC功能進(jìn)行選擇、控制的選項如下:
1)XLink Control項,HDMI-CEC功能控制開關(guān)。設(shè)置為ON時,支持提供的各種CEC功能;設(shè)置為OFF時,不支持CEC功能。
2) Device Auto Power Off,HDMI-CEC 系統(tǒng)待機(jī)功能控制開關(guān)。設(shè)置為ON時,如果電視進(jìn)入待機(jī),連接的HDMI-CEC設(shè)備也進(jìn)入待機(jī);為OFF時,則不影響外接設(shè)備。
3)TV Auto Power On,HDMI-CEC一鍵播放功能控制開關(guān)。設(shè)置為ON時,如果連接的HDMI-CEC設(shè)備開機(jī)或進(jìn)入播放狀態(tài),如TV處于待機(jī)狀態(tài),則自動開啟TV并切換到該設(shè)備連接的信號通道;為OFF時,則不支持這種開機(jī)方式。
4)XLink Device Lists,外接HDMI-CEC設(shè)備清單,供用戶查詢當(dāng)前連接的HDMI-CEC設(shè)備。
為了便于消息的管理,CEC消息采用隊列來存儲。TV將所有要發(fā)送的消息通過進(jìn)隊操作存儲到消息發(fā)送隊列,而所有接收到的消息存儲到消息接收隊列。系統(tǒng)定時訪問消息隊列,按照先進(jìn)先出的原則獲取消息,進(jìn)行發(fā)送和接收處理。
CEC消息的結(jié)構(gòu)體定義如下:
CEC消息的操作碼和操作數(shù)(參數(shù))的詳細(xì)信息參考HDMI-CEC規(guī)范。
消息隊列的結(jié)構(gòu)體定義如下:
CEC消息的發(fā)送流程如圖9所示。
在本機(jī)型的設(shè)計中,主要有以下情況需要發(fā)送相應(yīng)CEC消息:
1)通道切換。當(dāng)從HDMI通道切換到非HDMI通道時,需要發(fā)送
2)OSD語言切換。當(dāng)在用戶選單下改變選單語言時,需要廣播
3)系統(tǒng)待機(jī)。當(dāng)TV進(jìn)入待機(jī)狀態(tài)時,需要廣播
4)檢測到新接入設(shè)備時,需要發(fā)送
5)用戶操作指定的遙控傳遞按鍵時,需要發(fā)送
6)在接收到不支持的消息,或無法立即處理該消息(如頻道自動搜索過程中),或數(shù)據(jù)幀傳輸過程中高級協(xié)議層數(shù)據(jù)出錯時,需要發(fā)送
而對于接收到的消息的處理,通過在主循環(huán)中調(diào)用消息處理函數(shù)來完成,該函數(shù)從CEC消息接收隊列中獲取消息的引導(dǎo)數(shù)據(jù)、操作碼、操作數(shù)等信息,然后按照規(guī)范所定義的消息功能,根據(jù)操作碼進(jìn)行相應(yīng)的功能控制。函數(shù)代碼示例如下:
消息的接收處理流程如圖10所示。
1)在TV進(jìn)入Standby時,不要操作HDMI接口的Hot-plug腳,否則,在Device Auto Power Off項設(shè)置為Off(即TV關(guān)機(jī)時不廣播
2)CEC消息通信時序?qū)EC通信是否成功影響很大。TV與HDMI設(shè)備CEC通信過程中,時序若出現(xiàn)錯誤(如爭搶的情況),將導(dǎo)致通信失敗,甚至?xí)筎V與HDMI設(shè)備雙方陷入死鎖的狀態(tài)。以三星藍(lán)光DVD 4600為例,TV在切換到其他通道后,若立即發(fā)送Request Active Source消息,該DVD有時會無法向CEC網(wǎng)絡(luò)成功發(fā)送Active Source等消息,最終將出現(xiàn)該DVD在TV切換到其他通道后時而不暫停的問題。
3)在TV的 HDMI-CEC認(rèn)證中,One Touch Play,Routing Control,Power Status,F(xiàn)eature Abort等功能特性是強(qiáng)制要求的。
隨著CEC兼容性標(biāo)準(zhǔn)的發(fā)布和CEC開發(fā)、測試設(shè)備的上市,消費電子產(chǎn)品供應(yīng)商開始在其具有HDMI接口的產(chǎn)品中添加CEC功能,一些知名電子公司更是對其進(jìn)行了包裝,如表3所示。
表3 一些公司的CEC功能
隨著消費者對CEC功能的逐漸熟悉,以及CEC總線本身的特性,CEC功能將成為具有HDMI接口的消費電子產(chǎn)品的標(biāo)準(zhǔn)功能配置。
[1]HDMI Licensing,LLC.HDMI Specification 1.3a[EB/OL].[2006-11-10].http://bbs.dvbcn.com/showtopic-43236.html.