何強
(廣東九聯(lián)科技股份有限公司,廣東惠州,516007)
機頂盒軟件中間件SI模塊和MAPI模塊的設計分析
何強
(廣東九聯(lián)科技股份有限公司,廣東惠州,516007)
機頂盒軟件中間件的MAPI模塊為硬件適配層,具有可移植性,可以提供上層對內存訪問、實時操作系統(tǒng)、消息管理、設備驅動等接口,SI模塊位于MAPI模塊上,主要用來接收和管理SI表。文章首先對中間件SI模塊和MAPI模塊設計進行了分析,然后提出了集成測試方案,以期為同行業(yè)提供參考。
機頂盒軟件;SI模塊;MAPI模塊設計;集成測試
在機頂盒軟件中間件中的SI模塊是軟件核心模塊,利用SI模塊可以對機頂盒中的業(yè)務信息進行處理,主要包括接收和管理SI表,為應用層提供查詢接口。SI模塊直接影響著是否可以完成頻道的搜索,是否可以對音頻節(jié)目和視頻節(jié)目進行播放。而MAPI模塊主要為不同的硬件層提供統(tǒng)一的接口當硬件平臺發(fā)生變化后只需要對MAPI層的相關部分進行修改就可實現(xiàn)中間件的移植。
1.1 SI模塊的設計目的和運行環(huán)境
(1)SI模塊的設計目的
在機頂盒軟件開發(fā)過程中SI設計中依然存在對應情況單一和接口設置不規(guī)范的現(xiàn)象,受此影響,使最終所傳輸?shù)拇a可讀性大大降低,更會產生代碼移植困難的問題。對此,應制定一套較為完整的解決方案。針對SI表的接收設計了多種可能接收的方案,與此同時,在完成數(shù)據(jù)接收之后應當對數(shù)據(jù)進行統(tǒng)一的管理和分析,之后將數(shù)據(jù)和分析結果上傳到數(shù)據(jù)查詢接口[1]。所以SI模塊的設計目標是:向上運行能夠充分滿足多個地區(qū)和前端以及應用的多樣化需求,而向下則能夠在不同的硬件平臺之上實現(xiàn)軟件一致性和可移植性的發(fā)展。
(2)SI模塊的運行環(huán)境
SI模塊屬于中間件中的一部分,它是在有關芯片硬件平臺上實現(xiàn)的。測試運行環(huán)境即辦公室的系統(tǒng)環(huán)境,其配置了三路視音頻流和相應的各種表數(shù)據(jù)。另外,以CABL為基礎實現(xiàn)數(shù)據(jù)的準確傳輸,在充分滿足SI模塊功能實現(xiàn)和測試的同時,可以在辦公系統(tǒng)背景下,進行不同環(huán)境下的數(shù)據(jù)傳輸,并具有強大的穩(wěn)定性和容錯能力。
1.2 SI模塊的框架設計
作為一個極為獨立的子模塊,SI將會對下層MAPI層數(shù)據(jù)的調用產生影響,并且為上層提供服務所必須的各種接口。該模塊內部又可以劃分為對象查詢和管理以及表單接收、存儲管理等多個部分,其情況和內部結構可參考圖1。

圖1 SI模塊內部結構
1.3 SI模塊功能的實現(xiàn)
由圖1能夠清楚地看出,SI模塊由以下4個部分組成。
(1)基本信息模塊。該模塊的主要功能是進行搜臺處理。按照頻點搜索出表格數(shù)據(jù),同時分析出視頻與音頻所播放的PID,并獲得所播放節(jié)目的時間、名稱等信息。
(2)對象查詢模塊。該模塊中的節(jié)目查詢對象結構圖不但包含節(jié)目查詢接口的成員函數(shù),而且還包含服務器對應的事件查詢接口的成員函數(shù),這些函數(shù)全部供應用層調用。這些對象的成員函數(shù)具有一定的擴展性,如條件查詢就可以提交到應用層進行處理。
(3)資源管理模塊。該模塊在接收到相關SI表之后,將會主動構建網絡、配送等資源鏈接,其對對象模塊的查詢操作具有一定的輔助作用。
(4)SI表的接收和解析模塊。該模塊的主要責任是負責接收和解析SI表。
2.1 MAPI模塊設計的原理性
MAPI層處在硬件層的上部,處在SI模塊和文件系統(tǒng)模塊等的下部。本模塊的主要任務是封裝硬件層的接口,并向上層模塊提供統(tǒng)一接口[2]。若硬件平臺出現(xiàn)變動,則只需改變MAPI層有關部分,而不需要改變MAPI層以上的其他模塊,此對中間層的移植非常有利。
2.2 MAPI模塊所處的運行環(huán)境
MAPI模塊主要按照SI模塊和文件系統(tǒng)模塊等的功能要求,設計出與之對應的接口,并盡量兼顧到不同款式機頂盒硬件平臺上的互動性和統(tǒng)一性。
2.3 MAPI模塊的結構組成
MAPI模塊是由以下這些模塊組成的。
(1)OS模塊,該模塊也被稱為操作系統(tǒng)模塊,其除了負責封裝硬件平臺層所提供的作業(yè)、消息和記憶等操作外,還要向MAPI層之上的層提供操作。
(2)OSD顯示模塊,其主要提供OSD的初始化和調色板加載等操作。(3)TUNER模塊,其主要負責狀態(tài)查詢和鎖定頻點等操作。(4)DEMUX模塊,其主要負責管理多路分路器資源,同時負責接收數(shù)據(jù)。
(5)TIMER模塊,該模塊負責管理定時器的申請和刪除。
(6)AV模塊,該模塊負責播放視頻和音頻,其中包括暫停播放、回放、音量的調整、靜音處理以及提供AV狀態(tài)查詢。
(7)UI模塊,該模塊屬于用戶輸入模塊,其主要負責面板按鍵、遙控器按鍵和鼠標等的接收處理。
(8)CLOCK模塊,該模塊主要負責獲得系統(tǒng)時鐘,以及系統(tǒng)時鐘的加和減的操作。
(9)EEPROM模塊,主要負責讀寫EEPROM芯片的操作。
(10)INIT模塊,該模塊能將以上各模塊的初始化函數(shù)集中在本模塊中統(tǒng)一處理,因此還被稱為初始化模塊。為了便于代碼的維護與移植,該課題中將全部的初始化操作均集中在這一模塊中完成。
(11)TYPES模塊,將以上所有模塊的對外數(shù)據(jù)類型的定義統(tǒng)一在該模式中處理,能夠便于代碼的維護與移植。
3.1 SI模塊測試
SI模塊主要包括SI接收解析測試模塊、SI接收更新測試模塊、頻道搜索測試模塊、信息查詢測試模塊。
(1)SI接收解析測試。SI接收解析測試主要是檢查接收到的表格和前端發(fā)送的是否相同,檢查接收到的表格是否正確。可以利用抓包工具將前端發(fā)送的數(shù)據(jù)記錄下來,然后對比SI模塊中接收到的表數(shù)據(jù)。如果一致,那么證明已實現(xiàn)了SI模塊的接收解析功能。
(2)頻道搜索測試。頻道搜索測試指通過一個頻點對節(jié)目信息進行搜索,并在鏈表中記錄節(jié)目信息,需要時可從鏈表中獲取節(jié)目信息數(shù)據(jù)。
(3)SI接收更新測試。此部分主要用來對SI表數(shù)據(jù)進行測試,如果S1可以及時接收前端更改表數(shù)據(jù)信息,并對節(jié)目鏈表進行及時修改,就證明這些表的數(shù)據(jù)及時、正確。完成更改后,當S1接收到的功能正確,會對下一個頻點進行搜索,進而將最新的節(jié)目信息顯示出來。
(4)信息查詢測試。信息查詢測試主要是對前端發(fā)送信息和測試信息的一致性進行測試。此部分主要包括Event信息、Service信息、Transport信息3個部分的測試內容。
3.2 測試MAPI模塊的功能
MAPI模塊主要有TYPE模塊、OSD模塊、EEPROM模塊、UI模塊、OS模塊、TUNER模塊、AV模塊、INIT模塊、CLOCK模塊、DEMUX模塊構成。不同的模塊功能也有所不同,例如需要對音頻節(jié)目和視頻節(jié)目進行成功播放,需要通過對DEMUX模塊進行調用后達到接收數(shù)據(jù)的目的。
對機頂盒軟件中間件的SI模塊和MAPI模塊的原理和設計進行了分析,并對該部分的集成測試進行了探討,當需要增加機頂盒軟件中間件應用功能時,可以直接通過對中間件提供的接口進行調用后達到增加該應用功能目的。
[1]趙岐.數(shù)字機頂盒的結構和技術發(fā)展趨勢[J].世界電子元器件,2005(02):40-44.
何強(1987.04-),男,湖南常德人,本科,現(xiàn)從事網絡產品、機頂盒相關開發(fā)工作。
Design and Analysis of SI Module and MAPI Module of Set Top Box Software Middleware
He Qiang
Unionman Technology Co.,Ltd.,Huizhou Guangdong,516007)
MAPI module STB software middleware for hardware adaptation layer, portability, can provide the upper access, real-time operating system, message management, device driver interface of memory, the SI module in MAPI module, mainly used to receive and manage the SI table. Firstly, the middleware SI module and the MAPI module design are analyzed, and then the integration test scheme is proposed, in order to provide reference for the same industry
set top box software; SI module; MAPI module design; integration testing