HDMI CEC 電源連動不正常-邏輯分析儀說分明

各位應該有聽過家庭劇院有個一鍵操作的功能,它其實是靠HDMI的CEC來實現,以最基本來說, HDMI CEC 應該可以至少達成電源連動的功能。講是這樣講,但是實際到底怎麼個電源連動法,好像很少人提過,今天阿信助教就來實際操作給各位看。

HDMI CEC接線

為了做實驗我準備了一台電視和兩台裝置,分別是遊戲機和DVD播放機,它們都接在電視的HDMI Input上面,接第幾個HDMI都沒差,只要有接就好如下圖。至於CEC要接哪裡? 這你不用擔心,因為CEC是HDMI裡面的其中一條線,位在pin13,只要你把HDMI線插好,CEC等於就插好了。

HDMI CEC的測試環境與接線
HDMI CEC的測試環境與接線

提醒一下電視、遊戲機、DVD player這三台裝置一定要先接上電源插頭,而且為了方便示範,所有裝置在電源線接好之後至少都先Turn On過一次,這樣可以讓電視掃描過一次接上來的裝置,然後再Turn Off,讓實驗開始的所有裝置電源狀態都先處於Power Off狀態,而且每個裝置的CEC設定都要記得啟動喔,只是每個裝置在CEC電源連動這部分的名稱似乎沒有統一,每個廠牌的稱呼都不太一樣,但名稱不外乎是HDMI控制、CEC控制、電源連動之類的。

首先就來示範一下甚麼叫做電源連動,原理後面再講,因為我喜歡先講究效果,再講求原理,這樣大家比較容易有共鳴。

DVD喚醒TV-電源連動

先來看一個情境,假設我要看DVD Player,於是我順手的就把DVD電源按下,那當然DVD就會開始運作了,但妙的是在CEC的運作之下,電視的電源也會同時打開喔,這表示你只需要使用DVD一台遙控器就可以同時搞定電視的啟動了,是不是很方便? 否則你得要處理兩台遙控器。

DVD喚醒電視電源
DVD喚醒電視電源

遊戲機搶電視-自動切換HDMI INPUT

繼續剛才的情境模擬,DVD看到一半,小朋友突然說要玩遊戲機,這時只需要把遊戲機的電源打開,由於在CEC的作用之下,電視會自動切換到HDMI 1,馬上就能直接玩遊戲機了,完全不需要去尋找電視遙控器來切換HDMI輸入,如下圖。

啟動遊戲機讓電視切換到對應的HDMI輸入
啟動遊戲機讓電視切換到對應的HDMI輸入

有些人可能有買電視棒,你可能會發現Youtube等應用程式一但投影到電視棒,電視畫面馬上就被切換過去了,這也是依靠CEC來動作,完全就是一樣的道理。

自動關閉裝置電源-電源連動

最後的情境模擬,當我們不想玩遊戲機,也不想看DVD的時候,只要把電視的電源Turn Off,那麼接在電視之下的所有HDMI裝置,也都會同時自動Turn Off。基本上你只要操作一次遙控器,就可以同時牽動相關的設備,這就是 HDMI CEC 方便的地方,也是落實一鍵操作的關鍵技術。

HDMI CEC 的原理

接著來看原理,CEC只有一條線,位於HDMI的Pin13,利用這一條線就可以傳資料,所以它是序列式的通訊,既然只有一條線,它就沒有Clock可以告訴接收端原始資料的取樣時間點在哪裡,於是接收端就得用通訊協定的起始位元與同步線路去回推原始資料,這稱為非同步傳輸。CEC用的是類似波寬調變的方式來標示0與1,細節我就不贅述,總之CEC在運作的時候,波形一定會在High/Low之間上下跳動。

根據HDMI規格書裡面的敘述,如果把各種裝置都接起來的話,應該會像下圖一樣,這是規格書裡面畫的接法,也是一般家庭劇院的接法,跟我前面Demo所使用的接法類似,只不過我沒有使用擴大機,但概念都一樣。

HDMI CEC 規格書內的範例接法
HDMI CEC 規格書內的範例接法

在CEC的世界裡面,每個裝置都會有一個實體位址Physical address,它是由四個數字所組成F.F.F.F,它的角色比較像是網路世界的MAC address,CEC Physical address這裡每個數字是從0x00~0x0F,只有16個數字能選,上圖中的白色數字就是CEC接好之後,每個裝置自己透過CEC protocol喬出來的address,所以它不是預先定義好的,它是接上去之後才決定的。

在Physical address之上還有定義一個邏輯位址Logical address,它是一個0~15的數字,咦! 前面不是已經有Physical address了嗎? 幹嘛還要再弄一個位址? 因為Physical address僅僅是門牌地址,不具有裝置功能的資訊,而Logical address才有功能資訊,例如0就是電視,4就是Playback device,這在Logical address這一層有預先定義好。那如果有兩台DVD呢? 沒關係,HDMI CEC定義了4、8、11三個Playback device,可以讓你接三個播放裝置,所以遊戲機也算是一種播放裝置,它的Logical address在這裡是8。

那如果有4台播放裝置呢? 基本上HDMI是假設你不會使用超過3台播放機,況且你也只有兩隻眼睛,裝那麼多台是要幹嘛? 但如果你硬裝,我猜它會把一些保留的Logical address拿出來用,我自己是沒實際試過。

CEC 失效-強行接地

既然不同裝置的CEC是全部接在一起的,那就表示只要有一個裝置把CEC接地變成0V,或者變成很低的電壓,那麼整條CEC線全部會被拉成Low,因為電流是從高電位往低電位流動,最後都會變成低電位,這樣無論其它裝置的CEC怎麼嘗試供電拉高電位都沒有用,有人接地的話它的電位就是拉不高,CEC就是不會動作。這跟職場的一句名言”不做最大”是相符的,擺爛的那個人相對來說擁有較多決定權或話語權,因為你得求他做事,除非你將他從職場剃除。

CEC接地會造成CEC失效
CEC接地會造成CEC失效

所以若因為某裝置的CEC接地而造成CEC失效,就必須要將這個裝置的CEC排除在系統之外,也就是要把它的CEC給隔離開來,這麼一來其他裝置的CEC才能正常運作。所以如果你的家庭劇院剛好有一台裝置的CEC是出現接地的狀況,就會讓你很困擾,因為它會搞得你整個一鍵操作的系統無法使用。

那為何會有HDMI裝置的CEC被設計成接地呢? 我想近期的裝置應該比較少有這種現象,如果是早期的裝置,由於CEC的用法與資訊都還沒有很充分,有些工程師可能認為自家產品沒有CEC功能就乾脆給它接地了,這對大部分的User來說其實也沒甚麼問題,畢竟家庭劇院不是每個人都會需要,但某些比較講究的User可能就中招了。

移除CEC接地的裝置系統才能正常運作
移除CEC接地的裝置系統才能正常運作

HDMI CEC 失效-邏輯分析儀偵錯

我剛好手上有一台已經停產的藍光DVD player,它裡面的選單有CEC連動,但實際連線HDMI的時候它的CEC的電源連動卻呈現失效的狀態,所以我就要利用邏輯分析儀來看看到底是怎麼回事。

停產的DVD player無法利用CEC做電源連動
停產的DVD player無法利用CEC做電源連動

為了有個比較的基準,我拿了前面Demo的藍光機,它是一台近期的藍光DVD player,CEC是能正常動作的,透過HDMI轉接板把pin13的CEC跳接出來,然後再接到邏輯分析儀裡面,在DVD player上電的瞬間,CEC就有訊號出現了,如下圖。你可以很明顯的看出來它有資料封包例如Addr From 0x04,以及Addr To 0x00,先不論資料內容正確與否,基本上我們可以確定CEC是有資料在傳送的。

正常工作的 HDMI CEC 訊號
正常工作的 HDMI CEC 訊號

接著我換上這台停產的DVD player,一樣把pin13的CEC訊號接到邏輯分析儀裡面,想看看它到底長甚麼樣子。結果接上邏輯分析儀之後,我就發現不對勁了,因為一般來說DVD player的電源打開之後,如果有CEC訊號傳送,一秒內就會出現波形,但這次邏輯分析儀已經過了20幾秒鐘,遲遲沒有觸發到CEC訊號如下圖,就表示CEC應該沒有在高低準位之間擺盪,也就是沒有資料傳送的意思。

停產的DVD player無法讓我抓到CEC訊號
停產的DVD player無法讓我抓到CEC訊號

於是我按下邏輯分析儀的Cancel鈕取消觸發,這樣就可以看到目前取樣到的CEC準位是如何,結果如下圖,整個CEC訊號的準位完全是處於Low準位,當然就是沒有任何資料傳送的意思。

完全沒有CEC資料的DVD player
完全沒有CEC資料的DVD player

難道真的是這台停產的藍光機造成CEC不會動嗎? 於是我把藍光機的HDMI插頭拔掉如下圖,HDMI插頭就放在DVD player上面,接著我就發現在這個情況下,遊戲機的電源打開之後,就能順利的連動電視的電源,這就表示這台藍光機真的會拖垮CEC系統。

拔除藍光機的HDMI讓CEC恢復操作
拔除藍光機的HDMI讓CEC恢復操作

CEC的超低阻抗-無言的結局

雖然現在我已經知道這台停產的藍光DVD會拖垮整個HDMI的CEC系統,但我還是很好奇,它的CEC腳位與GND之間,到底存在多少電阻,或是說對地電阻是多少。於是就把這台藍光機的HDMI OUT插上轉接板,方便我測量電壓,我將電表開電阻檔之後,用電表的黑色探棒觸碰HDMI的GND,紅色探棒觸碰HDMI的Pin13,測得的電阻為36.3 ohm,哇! 這是超小的電阻啦,如果這種CEC插到電視的話,一定不會動,因為通訊線大多會透過k級電阻接到電源,稱為Pull high電阻,而這裡的對地電阻只有36.3 ohm,和k級的電阻串聯經過分壓之後,CEC通訊線只能分到一點點電壓,難怪電壓會變成超低。

超低的CEC對地電阻
超低的CEC對地電阻

HDMI CEC 阻斷器-最終解法

雖然只要把這台DVD的HDMI線拔掉之後,遊戲機就能連動到電視了,但是這樣就不能看DVD了啊! 這可怎麼辦好,別擔心! 路是人走出來的,辦法也是人想出來的,市面上有一種CEC阻斷器的轉接頭,或稱為CEC屏蔽器,可以把CEC的訊號斷開,又同時可以讓HDMI訊號通過,真是一舉兩得,於是我就把這個CEC block轉接頭插上這台藍光機,再把電視的HDMI cable插在這個轉接頭上面,如此就可以看到DVD又不會拖垮CEC系統,你看下圖,在DVD player接著電視的情況下,遊戲機依舊能透過CEC啟動電視電源,表示藍光機已經不會影響CEC了。

HDMI CEC 阻斷器不再讓藍光機影響系統
CEC阻斷器不再讓藍光機影響系統

但是使用CEC阻斷器的代價就是,你得要自己處理HDMI路徑上的所有操作,從DVD、擴大機、電視你都得要自己來,沒有一鍵操作這回事。

雖然已經知道了拖垮CEC系統的元凶就是那台CEC永遠在低準位的裝置,但我還是很納悶,為何一台藍光播放機的CEC會一直維持在低準位? 那可是標榜高畫質的藍光播放機耶,在當時應該算是很先進的設備了吧,我自己合理化的答案是可能當時CEC的協定還不完備,所以各廠商可能都自己玩自己的系統,也許電源連動當年是利用其它方式達成的,現在的設備應該比較少有這種問題了,以上是純粹猜想,若有知道答案的朋友也歡迎提供資訊給我喔。

相關文章

HDMI螢幕 沒畫面-邏輯分析儀抓誰有問題
影音訊號-大解密-AV端子/色差端子/S端子/VGA/HDMI
液晶電視 LCD TV-色塊-油畫-維修DIY
液晶電視 LCD TV-內部拆解話當年

Be the first to comment

Leave a Reply

Your email address will not be published.


*