為減少家電產品遙控器數量,HDMI標準增加CEC功能,以期讓消費者便於控制以HDMI連結的各項裝置。不過由於CEC允許客製化設計,一旦各家廠商產品各自發展CEC架構,將導致產品間無法相容,因此廠商也漸漸釋出其自有CEC設計,未來以單一遙控裝置控制所有家電用品指日可待。
如果當有人想在家裡以新的高解析度電視看電影時,通常得操作咖啡桌上的五支遙控器。現在高畫質多媒體介面(HDMI)鏈結有一個新的功能,稱為消費性電子產品控制(CEC),就是為了讓每一位家庭成員對家庭娛樂系統都能上手。本文將定義CEC,並解釋其主要功能,詳細描述實體介面,再設法解決一些重要的考量因素,包括系統階層的硬體與軟體。
|
圖1 典型的全HDMI家庭劇院架構 |
即使一般大眾可能不熟悉CEC這個術語,應該也聽過一些消費電子業界領導廠商所推出的品牌,其中包括索尼(Sony)的「Bravia Link」、Panasonic的「Viera Link」和夏普(Sharp)的「Aquos Link」,雖然這些名稱並不相同,但都支援HDMI標準中所提及的CEC功能。
CEC是一個單線、雙向介面,用途為便於控制HDMI網路上的任何裝置,圖1為示意圖,包含遙控器,或其他連接到網路上的任何裝置上的控制按鈕。CEC被定義成HDMI規格的選用功能,是以歐洲廣播與電視接收器製造商協會(SCART)規格中所定義的AV鏈結功能為基礎,表1介紹一些典型的終端用戶CEC功能。
其中有許多終端用戶功能,須透過CEC匯流排發送多個訊息,如目前片源與路由變化(此訊息可支援CEC的路由控制功能)。這個功能讓裝置開始播放影片,並藉由切換電視機的訊號源輸入,而成為目前片源,若下這個命令時,電視機顯示的是另一個片源,會將該片源設為待命模式,但須視實作方式而定,因此搞丟DVD放映機遙控器也毋須擔心。現在只要推入DVD片,並按下放映機前面板上的播放鍵即可。只要對這個按鈕一按,DVD放映機托盤即會關閉,接著電視機與影音接收機(Audio/Video Receiver, AVR)開機,且每個裝置都會選到正確的HDMI埠與適合的影音模式,最後開始播放DVD。
|
圖2 典型CEC HDMI系統方塊圖 |
一般人對現有具CEC功能的產品有一些誤解。在最新的實作中,CEC命令只適用在單一品牌,所以除非整個系統都是由同一家製造商製造,否則若未設定電視遙控器,無法簡單拿起電視遙控器就控制整個系統。所幸當前產業的趨勢正導向這個方向,設備廠商開始協助開發人員,將其專有的命令與大家分享,且CEC規格允許客製化,製造商常利用這一點吸引終端用戶,購買其自有品牌設備所建構出來的完整系統。
CEC以單線匯流排連接裝置
|
圖3 CEC開始位元時序 |
CEC介面包括一個單線匯流排,在使用HDMI的系統下連接所有裝置。圖2顯示一個典型應用,任何裝置在具有CEC功能的系統上,可啟始一個CEC命令,啟始裝置在共用訊號線上發送訊息結構與資料,而網路上的每個裝置在收到一個CEC訊息時,必須設定某些應答位元。
|
圖4 CEC邏輯狀態的時序圖 |
CEC訊息以資訊框的型式發送,其中包括一個開始位元和資料位元。資料位元可以是資訊性的資料,如邏輯位址、CEC命令或控制位元,如訊息結束[EOM]或應答[ACK]。一個由高到低的轉態後緊接著一個由低到高的轉態,並遵循圖3所示的時序,就表示一個開始條件,緊接在開始條件之後的資料須遵循分別為邏輯'0'與'1'的時序要求(圖4)。
|
圖5 CEC標頭和資料段 |
CEC資訊框是由資料段組成,每段10位元。其中8位元攜帶資訊,而後兩個位元是EOM位元和ACK位元。在標頭段中,資訊位元包含啟始裝置的邏輯位址(四個高位元)和目標裝置的邏輯位址(四個低位元)(圖5),若緊接著EOM是邏輯'0',表示後面接著更多資料;若是邏輯'1'則表示訊息結束。
ACK位元處的邏輯意義取決於訊息的類型。一條訊息會緊接著一個特定位元,若是一個邏輯'0',表示該裝置已經收到訊息;若緊接著為'1'就表示是一個「無應答」或「什麼也不做」的狀態。CEC鏈結上的其他裝置全都會回應邏輯'1',若啟始裝置發送廣播訊息給CEC鏈結上的所有裝置,每個裝置都會送出一個邏輯'1'到鏈結上以應答該訊息,這會讓某個裝置可將訊號線拉到邏輯'0',以回絕該訊息。
相容性為CEC設計重點
|
圖6 CEC命令架構 |
單一CEC訊息由一個開始命令、一個CEC標頭及一個或多個資料段構成。單一CEC特徵是以多個CEC的訊息所構成(圖6)。在任何第一線的系統設計人員的設計專案中,CEC的互通性自始至終都是重點,以下三階段測試有助於確保與其他CEC裝置的相容性。
HDMI一致性測試是須完成的第一類測試。 HDMI相容測試規格(CTS)是HDMI規格的附件之一,提供待測裝置得到HDMI認證前,通過必要測試所進行的詳細程序,其中有幾個CTS測試專門用以測試CEC,凡是宣稱支援CEC的裝置,須通過這些測試,以完成HDMI一致性測試的一部分,進而完成全部測試,以取得HDMI認證。
第二類測試是CEA 861/HDCP插拔大會(PlugFest)。該插拔大會每年舉行兩次,由消費性電子協會(CEA)與數位內容保護(DCP)共同贊助,並成立一個論壇,使HDMI設備製造商有一個可進行互通性測試的共享環境。每隔6個月生產具有CEC功能的裝置製造商都會參加這個活動,且皆應參與這個活動,以作為其產品開發週期中,產品測試的一部分。
為求貫徹互通性測試,針對具有CEC功能的裝置,消費性電子設備的設計人員可藉著使用CEC解決方案提供廠商的資源,補充前兩個階段的測試。如亞德諾(ADI)為客戶提供其產品的HDMI Rx和Tx HDMI預認證測試,以及最新的HDMI 1.3測試設備,還有對一百多個HDMI訊號源和訊號槽所做的多品牌互通性測試,其中多具備CEC功能。無論是與CEC解決方案供應商合作,或可自行發展,建議消費性電子設備製造商發展自有流程以完成這類型的測試。
針對一個CEC解決方案,對多個產品品牌、型號、設備類型做互通性測試,是免不了的。由於大多數消費性電子設備的主要設備製造商使用多個HDMI解決方案,又為多個地區製造多種產品型號,因此,盡可能獲得每個品牌產品的排列組合就很重要。AVR產品都須分別針對HDMI訊號源與訊號槽進行測試,再進一步增加必須完成的各種測試。
而使用三階段的測試方法測試具有CEC功能的裝置,為系統設計人員提供最全面的過程,並可進而發現問題,否則可能會導致與其他具有CEC功能的裝置不相容的結果。
解讀差異造成CEC相容性問題
由於CEC的採用率急速增加,因此有關CEC互通性即成為重點。隱藏在相容性問題背後的主要議題是使用專有的命令,以及對CEC規格的解讀差異。雖然許多基本CEC功能的定義是明確的,然而,具有允許客製化CEC的特徵和訊息的彈性,仍是規格的特性之一。每個供應商定義自己的供應商特定訊息,僅適用於同一個供應商生產的訊息發送裝置與接收裝置。這就導致互通性問題,因為這些訊息通常是專用的。目前普遍的態度是,專有命令在封閉的系統中是有效的,諸如許多供應商 都有銷售的家庭劇院全配(Home Theatre in a Box)解決方案。本文並不建議使用專有命令,但對於有現成的系統組件的製造商而言,此種方式顯然比期待多品牌的相容性實際。
儘管有明確的CEC規範與CEC的CTS,但即便是供應商不使用特定的訊息、沒有解讀的差異、甚至不竄改規格,這些裝置還是有可能遇到互通性問題,「單鍵播放」功能就是一個例子。CEC規格定義電視機在收到從CEC啟始裝置(通常是一個視訊源)相應的訊息時,作為一個「單鍵播放」操作的一部分,應該從待機模式跳出來(即開機)。為確保是根據CEC規格,CEC CTS為這個操作定義測試 11.1.1-3,此CEC CTS項目只在系統設計人員在其能力申報表(CDF)中宣告電視機在收到適當的CEC訊息(Image View On),可從待機模式跳出來時才有效。
當然,市場上最具備完整CEC功能的電視機,可使用該廠牌自己的遙控器從待機狀態開機。就算製造商宣稱能以CEC做到,但製造商並不須通過CEC CTS的項目,儘管如此,這些產品仍會被視為符合CEC規格。若製造商想支援自己的「山寨版單鍵播放」功能,亦即只在自有品牌的設備上能用,製造商可用自己的CEC訊息組合,或使用製造商特有的訊息達成,此為常見的做法。
測試規格可解決相容性問題
由於經銷通路與終端用戶的反彈,對CEC設備供應商施加越來越多的壓力,要求解決這些互通性問題。系統設計人員應採取減少上述問題的方法,其一為設計和測試都要緊貼著CEC測試規格。這個信條對所有製造商在宣稱其具有CEC功能的系統能夠做到HDMI相容之前,應該永遠擺在第一位。其二為嚴格的與多個產品品牌和型號,以及具有CEC功能的設備進行過互通性測試(包括參與插拔大會)。設計人員和CEC解決方案供應商使用此測試並不僅為了改善具有CEC功能的裝置,還有助於改善系統在真實世界的環境中,對容許度變化的承受能力。
如前所述,由於壓力越來越大,許多當前消費電子設備製造商在簽署保密協議(NDA)的條件下,已有意願分享其某些專有的CEC訊息定義,建議廠商可與這些供應商合作,以得到最高的互通性水準。
控制器響應時間為設計重點
大多數納入HDMI的系統本來就有一個系統控制器。要確定控制器是否有足夠的工作能力加入CEC系統軟體,系統設計人員須考慮最低要求,包括一個可用的I2C主控端、一個可用的中斷輸入接腳、一個計時器功能與一個高階8位元或標準的16位元控制器。
對於CEC的整合解決方案,控制器用於HDMI介面等功能,如EDID讀取/解析與HDCP控制,都是很容易處理的CEC系統功能。以一般的準則而言,控制器具有更快的響應時間會比具有更強的計算能力重要,如果目前使用的控制器速度太慢,或者沒有可用的中斷輸入腳,也許應該將控制器升級到接腳相容或軟體相容的版本。
由於CEC的訊息與系統的時序非同步,因此最好使用一個能實作時序功能的控制器,這個功能是必須在兩個時域間傳遞CEC訊息,且不會拖住系統控制器。推薦用一個即時作業系統(RTOS)或具有內部定時器的系統來執行這項工作,尤其是當使用HDMI的裝置具有整合的CEC控制器。在不使用即時作業系統或計時器的系統中,垂直同步(Vsync)訊號也可用來觸發該函式呼叫CEC軟體。這種方法也夠用,但比起即時作業系統或其他計時功能的系統而言,實作起來較為不易。
本文不建議使用系統的主控制器處理CEC訊息,CEC的時序相較於系統而言是緩慢(400Hz)而非同步,且須不斷監測。這種函式對系統控制器而言過於繁瑣,對控制與監測系統其餘部分的效能受到限制,只要一個小而廉價的控制器就可處理CEC的訊號與時序。這顆控制器及相關軟體可作為系統控制器的從控制器,並且處理CEC的訊息與同步。
在這種配置中,從CEC控制器及相關軟體負責所有基本的電氣操作與位元時序等,並處理傳輸錯誤和排定錯誤資訊框的重新傳輸,而系統控制器和軟體負責媒體存取控制(MAC)層功能、命令到行動的轉譯與邏輯位址生成。也有很多理由可考慮使用一個與HDMI硬體和軟體整合的CEC控制器與軟體解決方案,包括元件較少可降低成本、使用的板面積更小、進入門檻更低,特別在軟體為內建的情況,由於是HDMI相關軟體與CEC相關軟體之間很自然的「契合」,因此可縮短開發時間。
執行CEC應用軟體所需的記憶體與軟體驅動程序或堆疊所需的大致相同。CEC堆疊保守估計需要約20K位元組的唯讀儲存記憶體(ROM)和1K位元組的隨機存取記憶體(RAM),一個最佳化的解決方案需要的記憶體還會少很多。
多方考量硬體設計
HDMI網路的實體連接很直截了當。依照CEC規格,HDMI連接器的CEC接腳應藉由一顆27K歐姆(Ω)的電阻拉到3.3伏特電源,但是當該消費性電子設備關掉時,這顆提升電阻應該斷開。為了減少電阻,即二極體電路兩端的I-R壓降,建議使用低漏電的二極體。
印刷電路板(PCB)布局則是讓HDMI與CEC元件到HDMI連接器間的距離越小越好。另外,也建議將易散出雜訊的數位電路走線與HDMI連接器的訊號走線間切開。請注意,差動HDMI訊號的差動阻抗應為100±15歐姆。本文以廠商推出的整合CEC之HDMI發送器(U6)為例,R2與D13構成CEC的二極體/電阻網路;D2到D12是HDMI介面所用的超低電容靜電放電(ESD)二極體;U1是一個12MHz的振盪器,提供CEC時脈;J2是小型化的「C型」HDMI連接器,用於可攜式設備。在系統中有多個HDMI埠(輸入與/或輸出),CEC匯流排將所有埠連接在一個單一網路上。
CEC整合解決方案具優勢
一顆具有整合CEC控制器的HDMI元件,可降低系統設計人員的進入門檻,圖7顯示CEC子系統使用外部控制器與內建控制器的比較。廠商推出CEC硬體的增強實體(PHY)層介面,會自動生成傳送CEC訊息時所需的低到高與高到低的訊號時序,並量測低電位脈波的時間與高電位脈波的時間,以接收CEC訊息。這種自動位元訊號功能,消除即時響應的要求,讓系統微處理器可用輪詢模式操作,比起中斷驅動模式,將不再需要專用的CEC微控制器。
|
圖7 CEC方塊圖比較 |
實作不同的機板或系統時,可能會導致不同的時間延遲和電容負載條件,這會影響CEC介面的時序。一個整合的CEC介面須有能力調整最短與最長脈波時間,以適應各種不同的機板和系統設計,這樣的彈性為具有CEC功能的產品提供一個高水準的容許度,但該產品未必完全相容於HDMI規格。
整合CEC介面還應該包括一個自動的訊息重傳模式,這讓系統設計人員可以設定CEC硬體嘗試重新傳輸每個輸出訊息的次數。若CEC硬體在傳送訊息時,檢測到一個意外的情況,就會自動終止訊息交談,並重新啟動相同的訊息;如果情況持續,CEC硬體將持續重傳到設計人員設定的限制次數,而這個重傳系統應自動化,不需系統微控制器的介入。
能源問題日益受到關切,使用電池供電的視頻裝置也日益流行,這都致使低功耗逐漸成為關注的焦點,整合CEC解決方案可藉由多階電源關閉模式,降低系統功耗。即使CEC硬體整合進HDMI的硬體,具備獨立的電源關閉模式仍可使其獨立供電,但為接收或傳送訊息,CEC子系統甚至在系統的其他部分處於睡眠模式時,都必須持續保持清醒。這個獨立的電源關閉模式可在如電視機、DVD放映機等設備處於待機模式時,讓系統關閉HDMI裝置的其他部分,此功能可降低系統待機時的功率消耗,並讓CEC硬體保持警覺,以接收任何傳入的CEC訊息(圖8)。
|
圖8 當系統處於待命模式時的CEC子系統 |
為進一步降低系統的待機功率消耗,CEC硬體可用程式設定為當熱插拔檢測(HPD)訊號未出現時,會自動進入睡眠模式,若系統設計人員在HPD訊號不生效的期間,選擇不接收CEC訊息時,就有可能辦到。
一個完整的整合CEC解決方案應包括系統軟體驅動程式,且提供C編碼或其他可攜格式。結構功能的整合到系統級編碼可使用任何處理器或編譯器。CEC軟體也須應對無法預知的位元組順序,如可高位在後(Big-endian)或低位在後(Little-endian)的格式傳遞資料,以及處理器匯流排寬度(16、32和64位元都可接受),這些特性使系統設計人員能靈活選擇使用的嵌入式微控制器設計。
軟體驅動程式應可用RTOS或簡單的迴圈結構環境執行。在RTOS環境下,CEC軟體的執行就像沒有時序限制的任務,對於用同樣方法建構的軟體驅動程式而言,中斷服務常式(ISR)並沒有特殊處置要求。這一切需要的是一個單一的應用程式介面(API)內的ISR。該API的一部分,應包括CEC軟體包,而且不會干擾系統層軟體的其他功能,如ISR對硬體資源的存取。
命令/訊息層API作用不同
多層API應可提供具彈性的CEC軟體,可讓系統設計人員選擇自己想要的介面層級。若設計工程師選擇訊息層級的API,所有CEC軟體與系統軟體之間的交換應該包括CEC訊息,這也讓系統設計人員靈活地實現終端用戶功能,並以最適合用戶的系統支援功能。然而,某些系統設計人員可能希望用更高層的介面,以降低系統軟體的複雜性,在這種情況下,可使用命令層的API,其使用額外功能實作終端用戶與支援CEC規格中所定義的功能。因此,與其呼叫訊息層的API多次以請求特殊的訊息,不如簡單呼叫單一API請求一個特定的CEC功能,如CEC的終端用戶功能「單鍵播放」需要二到三個CEC的訊息,並可能需要兩次以上,其中一次還取決於後續的回應,並取決於電視機的實作方式,導致這個單一功能變得非常複雜,不過,透過使用命令層的API,並呼叫CEC軟體與整合的硬體,就可處理其餘部分。
從設定數位錄放影機,到找出正確的遙控器,所有家庭娛樂系統的用戶皆渴望使用單純化,若採用CEC,就可提供所需要的單純化工具。未來,無論是索尼、山葉(Yamaha)、Panasonic的組件,都可平和地共存於同一HDMI網路。
(本文作者依序為亞德諾先進電視部門應用工程經理、先進電視部門應用工程經理)