摘 要:本文介紹了傳統Android電視機系統的狀況,分析了基于Android系統電視機開發遇到的問題,提出了Driverbase中間件框架設計,并在Mstar、Hisi、Realtek等主流電視機Android系統上實現量產開發,大大提高了Android電視機系統的開發效率。
關鍵詞:Android;Driverbase;HAL;Plugin
Android操作系統是一種基于Linux的自由及開放源代碼的操作系統,其主要優勢就是Android平臺的開放性。Android平臺顯著的開放性,對于任何終端廠商、芯片廠商都可以加入到Android聯盟中來;對于成千上萬的軟件開發者,比較容易地研發各種程序應用,創造海量的應用內容。隨著用戶和應用的日益豐富,一個嶄新的平臺也將很快走向成熟。
1 傳統的Android電視機系統框架
自從2012年Android系統已入電視機領域,各家方案公司Mstar、Hisi、Realtek、Novatek、Amlogic等都結合自己的SOC,在Android系統上定制了各自獨立的平臺框架(包含中間件框架層),其中引導層、內核驅動層、平臺框架層都是由方案公司直接提供,只有系統應用層的電視機應用是由電視機廠商來開發。其整體系統框圖如下:
2 基于Driverbase的Android電視機系統框架
傳統Android電視機框架在剛剛介入電視機領域發揮很大的作用。一方面,電視機方案公司提供完整的中間層接口供應用使用,包括圖像設置、聲音設置、通道管理等等;另一方面,由于Android的開放性,各家電視機廠商,可以很方便的按照公司規劃開發各類電視機應用。大大加快了Android系統在電視機領域的發展。
隨著Android系統在電視機領域的深入,這種框架對于電視機生產廠商也表現出其局限性:電視機是一個和硬件高度耦合的產品,好多應用功能都依賴于中間件邏輯,往往因為實現一個功能,需要和方案公司商量實現方式,這樣就大大影響電視機應用的上市時間。這種局限性在采用多個方案公司電視機廠商中尤為突出。
為電視機產品快速推入市場,本文結合上層應用及各家方案公司的軟件平臺,提出Driverbase中間件軟件框架。Driverbase中間件通用于各家方案公司,所有和電視機應用有關的功能邏輯都在其內部實現,對上提供統一的接口給上層應用;對下,定義統一的原子hal接口給方案公司實現。由于是離散的原子接口,方案公司更加容易的開發,當然應用開發也更加方便了,Driverbase中間件的提出大大提高的產品的開發進度及市場投放時間。
3 Driverbase中間件整個系統框架
中間件是電視機系統區別于標準Android最重要的部分。Driverbase中間件是鏈接電視機系統應用層和方案公司底層平臺接口的中間邏輯層;包含了圖像、聲音、PQ、AQ、ATV和DTV等等的所有邏輯處理。不同方案采用統一的中間件模塊系統,將平臺差異進一步下探到平臺driver級別,實現了中間層邏輯的統一,更加有利于平臺的擴展,從而提高產品開發周期。其整體框架圖如下:
整個Driverbase中間件層從上之下分為5層:
3.1 Plugin層
根據酷開系統應用底層需求,Plugin層分成了FactoryPlugin、TvPlugin、ConfigPlugin三部分來實現。
FactoryPlugin主要實現和工廠生產有關的功能。包括平臺基本信息顯示、圖像參數調試、聲音參數調試等等。
TvPlugin主要實現通道切換、ATV的搜臺換臺、DTV的搜臺換臺、ca菜單UI顯示等等功能接口。
ConfigPlugin主要實現圖像設置、聲音設置等等功能接口。
如以下表格所示:
3.2 中間件client端
中間件client端包含了15個基本模塊(Dtv頻道模塊、Vod模塊、EPG模塊、字幕模塊、CA模塊、ATV頻道管理、通道管理、HDMI模塊、PC模塊、Callback模塊、圖像模塊、聲音模塊、工廠模塊、3D模塊、系統模塊),和1個Dtv數據管理模塊。
Dtv頻道模塊實現數字電視搜臺、換臺等功能。
Vod模塊實現數字電視的點播功能。
EPG模塊實現數字電視的導航功能。
CA模塊實現數字電視的ca功能。
ATV頻道管理實現ATV的搜臺、換臺等功能。
通道管理實現ATV、dtv、av、hdmi、多媒體等等通道的切換管理。
HDMI模塊實現HDMI通道的edid、hdcpkey等等功能。
PC模塊實現PC通道的相位等等功能。
Callback模塊是一種軟件回調機制,主要是實時高效的把底層處理結果反饋到應用層。
圖像模塊實現各個通道的圖像模式、圖像參數的獲取與調節。
聲音模塊實現各個通道的聲音模式、聲音參數的獲取與調節。
工廠模塊實現和工廠生產有關的功能。
3D模塊實現各個通道3D功能,包括2D裝3D、景深、上下模式、左右模式等等。
系統模塊實現一些特殊功能,包括待機、音量、Localdimming等等。
Dtv數據管理模塊主要實現數字電視頻道數據的保存及外部訪問接口。
3.3 中間件server端
中間件server端同client端包含了15個基本模塊(Dtv頻道模塊、Vod模塊、EPG模塊、字幕模塊、CA模塊、ATV頻道管理、通道管理、HDMI模塊、PC模塊、Callback模塊、圖像模塊、聲音模塊、工廠模塊、3D模塊、系統模塊),和skyDebug模塊、Driverbase數據管理模塊、DTV協議棧的具體實現。
skyDebug模塊實現目標板上一些底層接口的串口命令調試。
Driverbase數據管理模塊實現Driverbase一些圖像數據、聲音數據、系統數據的FlashEEP的保存,并提供外部獲取設置接口。
DTV協議棧是數字電視最主要的部分,所有vod控制、ca模塊、epg模塊、字幕模塊、頻道模塊的數據都是來源于DTV協議棧。
3.4 底層接口層
Driverbase中間件的底層接口skyhal。Skyhdi是數字電視部分的接口,包括demod、demux、video decode、audio decode等等;skyhal是傳統電視機的接口,包含了tuner、聲音、圖像PQ、video、flasheep、uart等等。
3.5 平臺方案接口層
目前Driverbase2.0適配的平臺方案有:Mstar的Mi接口、Novatek的NTK接口、Realtek的RTK接口、Hisi平臺UNF接口。
4 總結
電視機廠商采用統一的Driverbase中間件方案,可以大大提高產品的開發效率。在一個方案公司開發的功能,可以很方便的移植到其他放公司;同時,Driverbase中間件的所有邏輯都由電視機廠商自主開發,有了更多的開發空間,能夠適應公司產品的功能規劃的快速量產,有效的解決了產品的快市場導入,進而滿足用戶的需求。
參考文獻:
[1]Google Android創贏路線與產品開發實戰.電子工業出版社.
[2]Android 4.0高級編程.清華大學出版社.
[3]深入理解Android系統.清華大學出版社.
[4]Android框架揭秘.人民郵電出版社.
[5]劉淼.嵌入式系統接口設計與Linux驅動程序開發.北京航空航天大學出版社.
[6]宋寶華.Linux設備驅動開發祥解.華清遠見嵌入式培訓中心.
作者簡介: 代庚辛,中級工程師,研究方向:Android系統、電視機領域、顯示領域、智慧家庭。