By GRL Team on 三月 02, 2023

解鎖隱藏功能,HDMI® CEC規格分析與功能介紹

Granite River Labs, GRL
李清宇 Peter Lee 

您是否曾在生活中遇到以下情景?結束一天忙碌的工作,回家想看一部電影好好放鬆,此時要拿出好幾個遙控器,將電視、機上盒、音響逐一開啟並進行節目設定,當然有時候您還可能找不到遙控器,如此繁複的操作難免令人煩躁沮喪。如果您今天使用的影音設備皆支援CEC功能,情況可就大為不同了!以上惱人的問題將不復存在!讓我們一起來看看CEC究竟是什麼神奇的技術吧!

 

HDMI CEC是什麼?哪些情況下可以使用?

CEC的全名為Consumer Electronics Control,是一項由HDMI協會所開發的技術與功能,專為HDMI介面所設計。設計初衷是要讓消費者能夠使用「一個」遙控器來控制並操作所有的HDMI連接裝置,簡化繁複的影音設備操作(如家庭劇院等),帶給使用者更方便的生活體驗。以目前常見的One Touch Play功能為例,若同時使用支援CEC功能的機上盒及電視,使用者只要按下機上盒的開機按鈕,電視也會跟著開啟,並且自動切換輸入端口,播放機上盒的影音內容,這聽起來是不是很神奇呢?

為了實現多個影音設備的控制,需要採用一套完整且一致的傳輸協議規範。目前HDMI協會發布了兩個版本的CEC規範,分別為CEC 1.4與CEC 2.0。CEC 2.0是基於CEC 1.4版本進行擴充,雖然其支援的功能較多,但原則上是採用相同的物理及協議架構。

 

HDMI CEC傳輸架構與原理,如何控制連接的HDMI產品?

CEC技術物理層介紹

CEC為單線雙向溝通技術,物理層上只需要單一CEC接腳就能與所有連結裝置進行溝通。在HDMI連接網路上,裝置間的CEC線路設計要求相連,因此HDMI產品無論是否支援CEC功能,均要配置CEC接腳並滿足特定的電氣規範,確保即使有不支援CEC的裝置連接於網路中,其餘設備依然能正常運作。

對於不支援CEC功能的HDMI裝置,除了HDMI影音數據需傳輸正確外,CEC電容、電阻、電壓也要符合規範,才能被認證為是合格的HDMI裝置。

以下是相關的CEC線路電氣規範:

  1. 為了避免連結裝置對線路造成過大電容負載,Source(發送端)產品最大電容容許值為150pf,Sink(接收端)產品則為200pf。
  2. 一般而言,若產品有多個HDMI輸入端(如電視),輸入端間的CEC線路必須相連(舉例來說:輸入端1與輸入端2之間的電阻值需小於5歐姆)。若產品有多個輸出端,其CEC線路間不能相連(舉例來說,輸出端1與輸出端2之間的電阻值需大於1M歐姆)。若產品為Repeater類型,則要依其是否為CEC_Root_Device,來設計輸出端及輸入端間CEC的線路相連情形。
  3. 在產品斷電時,CEC線路上的漏電流需小於1.8uA。且無論在產品開機、關機、休眠(若支援)三種狀態時,在外部上拉或下拉的測試條件下,CEC線路上的電壓皆需要在特定範圍內。
    支援HDMI CEC的產品須遵守的電氣規範(來源HDMI Spec 1.4b)
    圖1: 支援HDMI CEC的產品須遵守的電氣規範(來源:HDMI Spec 1.4b)
  4. 若產品支援CEC功能,為確保產品能輸出正確的CEC訊號,除了滿足前面提及的三點規範外,還需符合下圖規範。CEC線路在閒置狀態時,線路電壓需透過27k歐姆電阻上拉至2.5至3.63V間,以維持在邏輯1的狀態。開始傳輸訊息後,需要拉低線路電壓至0至0.6V以代表邏輯0。另外CEC並非高速傳輸介面,上升與下降時間的要求分別小於250us以及50us即可。
    支援HDMI CEC的產品須遵守的電氣規範-電壓(來源HDMI Spec 1.4b)
    圖2: 支援HDMI CEC的產品須遵守的電氣規範-電壓(來源:HDMI Spec 1.4b)

 

CEC技術協議層介紹

CEC傳輸過程,通常需要一個Initiator以及一個或以上的Follower組成。Initiator負責傳輸訊號,Follower負責接收訊號。一段完整的CEC訊號,放大來看是由許多的 bit 組成,bit可再細分為Start bit與Data bit。

  • Start bit格式:Initiator未傳輸CEC訊息時,CEC線路上為邏輯1。要開始傳輸訊息時,會將線路拉低至邏輯0(圖3)。Start bit的格式僅在此處使用,Follower收到此格式的訊息後就會準備接收後續data bit。
    HDMI CEC Start bit格式(來源HDMI Spec 1.4b)
    圖3: HDMI CEC Start bit格式(來源:HDMI Spec 1.4b)

 

  • Data bit格式:Start bit傳輸過後,緊接著傳輸的是Data bit,邏輯1和0須依照圖四格式輸出。Initiator會使用邏輯1和0傳輸數據,而Follower會使用邏輯0來回覆ACK。
    HDMI CEC Data bit 格式(取自 HDMI Spec 1.4b)
    圖4: HDMI CEC Data bit 格式(取自 HDMI Spec 1.4b)

 

  • Header/Data Block格式:每10個Data bit可以組成更大的單位,稱為Header/Data Block(參圖五)。前面八個Information bits根據用途能用來傳輸Data、Logical address、Opcodes等訊息。最後兩個EOM以及ACK bit有以下用途:
    1. EOM (End of message):用來告知Follower這是不是最後傳輸的Data block,1代表訊息已傳輸完成,0則代表後續仍有數據傳輸。
    2. ACK (Acknowledge):Initiator固定將ACK設置為1,Follower會藉由回覆ACK,來反應是否有成功接收資訊。注意Follower會因為傳輸模式的不同(Direct/broadcast),ACK有不同的回覆方法。若Initiator傳輸訊息給單一follower,這類訊息稱為Direct message,follower可將ACK設置為0,代表正確接收訊息。若Initiator傳輸訊息給複數個follower,這類訊息稱為Broadcast message,follower可將ACK設置為0,代表沒有正確接收訊息。因此當Initiator監測到ACK為0,則可能代表有一個或以上的follower沒有成功接收訊息,反之若ACK為1,代表所有follower均正確接收。
    Header_Data Block格式(來源HDMI Spec 1.4b)
    圖5: Header/Data Block格式(來源:HDMI Spec 1.4b)

 

綜合以上內容,一段完整的CEC指令依照順序會由Start bit、Header Block、許多的Data Block組成。Initiator可藉由傳輸不同的 Data Block內容,對連接的Follower進行不同的功能控制。

 

如何透過HDMI CEC功能遙控連結產品?

CEC的物理&邏輯位置分配

在現實社會中,如果我們要請遠方的朋友幫忙做事,通常會透過郵件或電話溝通,這樣的過程會需要兩個重要參數,一個是朋友的郵件地址或電話號碼,另一個則是正確的指示。

同樣的,為了讓Follower正常運作,Initiator除了傳送正確的指示外,也需要傳送至正確的Follower位置。一個CEC裝置會同時擁有物理位置與邏輯位置,物理位置指的是該裝置在連結樹狀圖中的節點位置,而邏輯位置則是反映該裝置的產品類型。由於每一位消費者連接產品的方式都不同,因此物理位置和邏輯位置皆不能採用固定位置,需要隨著不同的連接方法來調整,確保Initiator在所有情況下都能傳送訊息到正確的裝置。

物理位置的分配,是透過DDC線路以及Sink EDID來實現。一般來說,電視會是整個CEC連接樹狀圖最末端的裝置,稱為CEC Root Device,其物理位置為四碼並固定是0.0.0.0。那麼其他的連接裝置,要如何有規則的獲得物理位置呢?以圖6為例,假設有AV裝置連接至電視的輸入端2,裝置會使用DDC線路讀取電視輸入端2的EDID,並將讀取到的VSDB中的物理位置值2.0.0.0,設置成自身的物理位置。若該AV裝置擁有輸入端,會藉由將輸入端的編號疊加上自身的物理位置2.0.0.0以產生新的物理位置,並放入對應輸入端的EDID內,因此DVD撥放器連接AV裝置的輸入端1後,獲得的物理位置就會是2.1.0.0。如果按照這樣的方式繼續擴展裝置樹狀圖,理論上CEC裝置最多能組成五階的連接網路,每階最多能有15個裝置。值得注意的是,實際應用時無法連結15台以上的裝置,這是因為裝置過多將會造成線路過大電容負載,影響傳輸訊號品質。

物理位置分配圖(來源HDMI Spec 1.4b)

圖6: 物理位置分配圖(來源:HDMI Spec 1.4b)

 

每個CEC裝置除了有物理位置外,還會獲得專屬的邏輯位置,來反映裝置的產品類型(參圖8),像TV對應的邏輯位置是0,而機上盒可使用的邏輯位置是3、6、7、10之一。細心的讀者可能會有個疑問,如果有多個重複功能的裝置連結至網路中,要如何分配邏輯位置呢?重複裝置的邏輯位置分配,會透過CEC中的Polling message來實現。Polling message指的是一段只有Header Block的訊息,其中Initiator和Destination的邏輯位置相同,EOM bit設置為1。我們接下來以生活應用舉例,來看當消費者將PS5、Xbox等電視遊樂器連接至TV,會如何進行邏輯位置分配。

 

支援CEC的HDMI裝置連結邏輯應用

當消費者連結所有裝置後,TV會發出(邏輯位置0->邏輯位置0)的Polling message,由於此時沒有其餘裝置回應ACK,TV就會取得該邏輯位置0。接著依照時間順序,假設第一個連接至TV的是PS5遊樂器,它會送出一段Polling message(邏輯位置4->邏輯位置4),由於沒有其餘裝置回應ACK,PS5就會取得邏輯位置4。而最晚連結至TV的Xbox,也會先嘗試送出Polling message(邏輯位置4->邏輯位置4),但此時PS5已占用該邏輯位置,所以PS5會對此訊息回覆ACK,代表成功接收。因為邏輯位置4已被占用,Xbox會再嘗試送出下一個Polling message(邏輯位置8->邏輯位置8),此時沒有其餘裝置回應ACK,Xbox就會取得邏輯位置8。

總結來說,每當連接或斷開一個CEC裝置,裝置就會依照上述流程,自動的分配物理、邏輯位置,形成一個新的裝置連結網路。

Polling message結構(來源HDMI Spec 1.4b)

圖7: Polling message結構(來源:HDMI Spec 1.4b)

 

HDMI CEC裝置邏輯位置(來源HDMI Spec 1.4b)

圖8: HDMI CEC裝置邏輯位置(來源:HDMI Spec 1.4b)

 

HDMI規範中CEC架構的穩定溝通機制

CEC架構中使用了以下兩種方式,以提供穩定的資訊傳輸:

  1. 再傳輸:Initiator傳輸CEC訊息後,若Follower沒有回應ACK或是Follower在不對的時間點將CEC線路電壓拉低,這代表著傳輸訊息有誤或Follower來不及處理訊息,因此規範允許Initiator可嘗試再次傳輸相同訊息,最多5次。
  2. 仲裁:由於CEC線路上只允許單一Initiator傳輸訊息,為了避免多個Initiator同時傳輸訊號導致輸出異常,CEC定義了的Signal free time(參圖9),Initiator需要等待Signal free time過後才能傳輸訊息。從圖9中可以看出,Initiator傳輸所需的Signal free time時間最短,代表仲裁優先度最高,有較高機會成功傳輸訊息。
    Signal free time(來源HDMI Spec 1.4b)
    圖9: Signal free time(來源:HDMI Spec 1.4b)

 

結論

HDMI介面特有的CEC功能,可以讓消費者簡化影音設備操作,帶來更好的使用者體驗,也減少了生活中惱人的繁複。為了確保消費者所購買支援CEC的影音設備皆擁有正常的功能,設備上市前應送往第三方認證測試實驗室進行測試,並依照HDMI規範通過相關的CEC認證測試。本文介紹了CEC基礎電性以及協議層規範,希望讓讀者了解CEC操作原理、更清楚地掌握產品規格,順利通過認證測試。

訂閱GRL技術文章

 

參考文獻

  1. High-Definition Multimedia Interface Specification version 1.4b

作者
GRL台灣測試工程師 李清宇 Peter Lee

國立成功大學材料系碩士畢業。三年 HDMI 測試經驗,熟悉 HDMI2.1 與 HDCP 技術測試。GRL 技術文章作者及演講講師。

 

本文件中規格特性及其說明若有修改恕不另行通知。

發佈日期 2023/03/02 AN-230302-TW

Published by GRL Team 三月 02, 2023