專利名稱:一種基于數(shù)字電視的多硬件接口兼容驅(qū)動系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字家庭技術(shù)領(lǐng)域,具體涉及一種基于數(shù)字電視的多硬件接口兼容驅(qū)動系統(tǒng)。
背景技術(shù):
電視機是中國最普及的家用電器,目前的普及率是150%,很多城市家庭都擁有兩臺以上的電視機。電視機已成為中國人家庭生活的組成部分,大多數(shù)人家中客廳的布置是一排座位面對著一臺電視機,這表明電視機已經(jīng)成為家庭文化生活的核心所在。但是電視機的價值在廣電行業(yè)被大大地低估了,大家都只把它定位為文化娛樂的終端,根本沒有意識到,結(jié)合網(wǎng)絡(luò)與機頂盒,電視機實際上可以實現(xiàn)電腦的絕大部分功能,是家庭中最成熟、 最普及、最方便的信息終端。因此數(shù)字電視的終極目標就不應(yīng)該僅僅是節(jié)目廣播了,而應(yīng)該是以電視機為終端的資訊增值服務(wù)。廣播電視行業(yè)只要將廣電網(wǎng)絡(luò)的寬帶優(yōu)勢與IP技術(shù)的互動優(yōu)勢相結(jié)合, 將廣電的內(nèi)容與電訊的服務(wù)相結(jié)合,我們將開創(chuàng)出一個雙模數(shù)字電視的全新概念。針對數(shù)字電視及數(shù)字家庭三網(wǎng)融合、3C融合交互應(yīng)用中的多硬件接口驅(qū)動和通訊問題,研究基于Linux的數(shù)字電視多硬件接口兼容驅(qū)動技術(shù),重點解決數(shù)字電視及家庭網(wǎng)關(guān)中的多硬件接口的并發(fā)兼容驅(qū)動的研發(fā)。目前的驅(qū)動安裝方式主要為以下兩種方式(1)雙擊自動安裝這種方法適用于驅(qū)動程序的源文件本身就是后綴名為“exe”的可執(zhí)行文件時。目前的軟件基本都是后綴為“exe”的可執(zhí)行文件,這就使得軟件程序的安裝步驟越來越趨于簡單化,傻瓜化,驅(qū)動程序的安裝也不例外。比如從NVidia官方網(wǎng)站下載的驅(qū)動程序的安裝文件,是一個后綴名為“exe”的可執(zhí)行文件。安裝的時候首先左鍵雙擊它,然后一路點擊 "next"或者“Finish”就能夠完成驅(qū)動程序的安裝。(2)搜索安裝打開設(shè)備管理器,發(fā)現(xiàn)顯卡的前面有個黃色的圓圈里面還有個“!”號,這表明顯卡的驅(qū)動程序沒有安裝。對著該設(shè)備右鍵單擊,選擇“更新驅(qū)動程序”。目前的驅(qū)動安裝方式需要用戶手動安裝,導致系統(tǒng)的不穩(wěn)定,給用戶很差的體驗感受。而且在該系統(tǒng)中不能對支持在線升級的固件程序進行升級,一旦支持在線升級的固件程序在程序存儲其的永久駐留空間被破壞,則需要升級系統(tǒng)功能的固件程序時,不能啟動到支持在線升級的固件程序,因而系統(tǒng)功能的固件程序不能再被升級更新。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種基于數(shù)字電視的多硬件兼容驅(qū)動系統(tǒng),靈活實現(xiàn)豐富的外部設(shè)備接口標準,具有可擴展性,方便硬件加載和升級。一種基于數(shù)字電視的多硬件兼容驅(qū)動系統(tǒng),其包括三個層次結(jié)構(gòu)數(shù)字電視嵌入式Linux操作系統(tǒng)內(nèi)核模塊、數(shù)字電視底層硬件模塊、數(shù)字電視多硬件接口兼容驅(qū)動模塊;所述的數(shù)字電視多硬件接口兼容驅(qū)動模塊,它主要向操作系統(tǒng)以及應(yīng)用程序提供對硬件進行屏蔽后的服務(wù),為上層數(shù)字電視嵌入式操作系統(tǒng)內(nèi)核提供統(tǒng)一的硬件驅(qū)動,實現(xiàn)相關(guān)功能服務(wù);多硬件接口兼容驅(qū)動對嵌入式操作系統(tǒng)內(nèi)核所相關(guān)的硬件平臺的基本硬件組成部分進行抽象,實現(xiàn)多接口兼容驅(qū)動技術(shù),提供嵌入式操作系統(tǒng)內(nèi)核硬件平臺的相關(guān)功能,并設(shè)計相應(yīng)的支持多硬件接口兼容驅(qū)動的協(xié)議庫文件,提供對應(yīng)的API接口及使用樣例應(yīng)用程序;所述的數(shù)字電視底層硬件模塊,它是上層數(shù)字電視多硬件接口兼容驅(qū)動的平臺, 多硬件接口兼容驅(qū)動是基于此硬件平臺的基礎(chǔ)上實現(xiàn)的,根據(jù)不同的機頂盒,可選擇不同的硬件平臺。基于數(shù)字電視的多硬件接口兼容驅(qū)動系統(tǒng)的軟件模塊包括以下四個部分分別是 Detection layer> Adaptation layer、Insmod layer Jk. Rmmod layer,胃中 Insmod layer 與 Rmmod layer 又合稱為 HVM layer ;Detection layer用來檢測系統(tǒng)中硬件的加卸載信息,并將其反饋給Adaptation layer, Detection layer是不涉及體系結(jié)構(gòu)及外圍端口寄存器具體操作,能夠通用于各種硬件平臺的一層;Adaptation layer中對HVM layer相關(guān)的數(shù)據(jù)類型以及數(shù)據(jù)結(jié)構(gòu)進行定義,包括寄存器上下文保存格式的定義以及對中斷異常向量起始地址、各種異常和中斷處理的入口偏移等,并負責通用硬件抽象層功能中體系結(jié)構(gòu)相關(guān)部分的實現(xiàn);實現(xiàn)的內(nèi)容主要是對各個寄存器的訪問,對于中斷異常向量表的操作以及底層的中斷和異常處理;HVM layer除了為嵌入式操作系統(tǒng)內(nèi)核提供統(tǒng)一的功能服務(wù)接口外,為了便于擴展和移植到其他硬件平臺,還在各層的調(diào)用之間設(shè)計了統(tǒng)一的調(diào)用接口 ;下層的功能實現(xiàn)需要按照與上層確定的接口規(guī)范來進行;其中某些上下層之間的接口,尤其是外圍層與上層之間的接口是使用宏定義的方式進行的;HVM layer主要包括對外圍1/0接口和設(shè)備屬性的定義,并且負責對各個外圍1/0設(shè)備端口寄存器的訪問操作;外圍層的實現(xiàn)需要根據(jù)上層定義的接口進行;通用硬件抽象層的外圍層必須提供對存儲控制、總線控制、中斷控制器、定時器控制器、UART等基本1/0接口和設(shè)備的1/0端口寄存器的訪問功能。Detection layer內(nèi)包括對統(tǒng)一的與編譯器無關(guān)的數(shù)據(jù)類型、抽象設(shè)備的數(shù)據(jù)結(jié)構(gòu)定義,以及提供給嵌入式操作系統(tǒng)內(nèi)核的對抽象設(shè)備的各種統(tǒng)一的操作服務(wù)的接口通用的實現(xiàn)部分;該層中抽象設(shè)備操作的實現(xiàn)中需要涉及的操作,是通過調(diào)用Adaptation layer以及HVM layer層中統(tǒng)一定義的接口進行的;當擴展或移植到其他硬件平臺上時,上層無須修改,而只須進行下層替換?;跀?shù)字電視的多硬件接口兼容驅(qū)動系統(tǒng)的軟件操作流程為通過調(diào)用Dr_ detection ()判斷硬件是否介入或者拔掉,若判斷硬件已經(jīng)介入,調(diào)用Dr_adapti0n (),然后再調(diào)用DrjnsmodO加載相應(yīng)驅(qū)動,通過讀取相應(yīng)的讀寫設(shè)備掛起任務(wù)。若判斷硬件已經(jīng)介入,調(diào)用Dr_adapti0n(),然后再調(diào)用Dr_rmm0d()卸載相應(yīng)驅(qū)動,通過關(guān)閉相應(yīng)的讀寫設(shè)備掛起任務(wù)。本發(fā)明具有以下優(yōu)點1)通過基本運行系統(tǒng)和正常運行系統(tǒng)的協(xié)作,完成可靠的,可恢復性的驅(qū)動加載過程;
2)在正常運行系統(tǒng)中驅(qū)動加載本身時,先判斷基本運行系統(tǒng)是否已經(jīng)經(jīng)過驗證, 在絕大多數(shù)情況下,基本運行系統(tǒng)是經(jīng)過驅(qū)動加載處理驗證(或者出廠時驗證),可以直接在不中斷當前業(yè)務(wù)的情況下透明驅(qū)動加載,完全顧及了用戶的業(yè)務(wù)享受心情,是一種積極、 人性化的驅(qū)動加載方法。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明中的數(shù)字電視多硬件接口兼容驅(qū)動的功能結(jié)構(gòu)圖;圖2為本發(fā)明中的數(shù)字電視多硬件接口兼容驅(qū)動的軟件模塊結(jié)構(gòu)圖;圖3為本發(fā)明實施例中的數(shù)字電視多硬件接口兼容驅(qū)動軟件操作流程圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。針對數(shù)字電視及數(shù)字家庭三網(wǎng)融合、3C融合交互應(yīng)用中的多硬件接口驅(qū)動和通訊問題,結(jié)合數(shù)字電視系統(tǒng)特點及Linux系統(tǒng)內(nèi)核的內(nèi)存管理、進程調(diào)度、中斷響應(yīng)、任務(wù)管理等優(yōu)化技術(shù),采用LKM(Linux Kernel Module)機制,設(shè)計出屏蔽硬件差異的“硬件套接層”,靈活實現(xiàn)豐富的外部設(shè)備接口標準,具有可擴展性,方便硬件加載和升級。數(shù)字電視多硬件接口兼容驅(qū)動的功能結(jié)構(gòu)如圖1所示。其包括三個層次結(jié)構(gòu)數(shù)字電視嵌入式Linux 操作系統(tǒng)內(nèi)核、數(shù)字電視底層硬件、數(shù)字電視多硬件接口兼容驅(qū)動。所述的數(shù)字電視多硬件接口兼容驅(qū)動模塊,它主要向操作系統(tǒng)以及應(yīng)用程序提供對硬件進行屏蔽后的服務(wù),為上層數(shù)字電視嵌入式操作系統(tǒng)內(nèi)核提供統(tǒng)一的硬件驅(qū)動,實現(xiàn)相關(guān)功能服務(wù)。多硬件接口兼容驅(qū)動對嵌入式操作系統(tǒng)內(nèi)核所相關(guān)的硬件平臺的基本硬件組成部分進行抽象,實現(xiàn)多接口兼容驅(qū)動技術(shù),提供嵌入式操作系統(tǒng)內(nèi)核硬件平臺的相關(guān)功能,并設(shè)計相應(yīng)的支持多硬件接口兼容驅(qū)動的協(xié)議庫文件,提供對應(yīng)的API接口及使用樣例應(yīng)用程序。當操作系統(tǒng)或應(yīng)用程序使用該API進行設(shè)計時,就能夠在下層數(shù)字電視底層硬件平臺上實現(xiàn),解決不同硬件接口的兼容問題。所述的數(shù)字電視底層硬件模塊,它是上層數(shù)字電視多硬件接口兼容驅(qū)動的平臺, 多硬件接口兼容驅(qū)動是基于此硬件平臺的基礎(chǔ)上實現(xiàn)的,根據(jù)不同的機頂盒,可選擇不同的硬件平臺?;跀?shù)字電視的多硬件接口兼容驅(qū)動的軟件模塊結(jié)構(gòu)圖如圖2所示,將主要包括以下幾個部分Detection layer>Adaptation layer> Insmod layer 及 Rmmod layer 設(shè)計。Detection layer用來檢測系統(tǒng)中硬件的加卸載信息,并將其反饋給Adaptation layer. Detection layer是不涉及體系結(jié)構(gòu)及外圍端口寄存器具體操作的、能夠通用于各種硬件平臺的一層。Detection layer內(nèi)包括對統(tǒng)一的與編譯器無關(guān)的數(shù)據(jù)類型、抽象設(shè)備的數(shù)據(jù)結(jié)構(gòu)定義,以及提供給嵌入式操作系統(tǒng)內(nèi)核的對抽象設(shè)備的各種統(tǒng)一的操作服務(wù)的接口通用的實現(xiàn)部分。該層中抽象設(shè)備操作的實現(xiàn)中需要涉及的操作,是通過調(diào)用 Adaptation layer以及HVM layer層中統(tǒng)一定義的接口進行的。當擴展或移植到其他硬件平臺上時,上層無須修改,而只須進行下層替換。Adaptation layer中對HVM layer相關(guān)的數(shù)據(jù)類型以及數(shù)據(jù)結(jié)構(gòu)進行定義,包括寄存器上下文保存格式的定義以及對中斷異常向量起始地址、各種異常和中斷處理的入口偏移等,并負責通用硬件抽象層功能中體系結(jié)構(gòu)相關(guān)部分的實現(xiàn)。實現(xiàn)的內(nèi)容主要是對各個寄存器的訪問,對于中斷異常向量表的操作以及底層的中斷和異常處理。體系結(jié)構(gòu)層的實現(xiàn)是按照上層規(guī)定的調(diào)用接口來進行的,因而針對不同的體系結(jié)構(gòu),上層通用層無須進行修改。針對某種體系結(jié)構(gòu)設(shè)計實現(xiàn)的體系結(jié)構(gòu)層能夠通用于CPU內(nèi)核體系結(jié)構(gòu)兼容的嵌入式微處理器的硬件平臺上,從而易于硬件抽象層在體系結(jié)構(gòu)兼容的嵌入式微處理器硬件平臺上的擴展和移植。Insmod layer 與 Rmmod layer 又合稱為 HVM layer。HVM layer 除了為嵌入式操作系統(tǒng)內(nèi)核提供統(tǒng)一的功能服務(wù)接口外,為了便于擴展和移植到其他硬件平臺,還在各層的調(diào)用之間設(shè)計了統(tǒng)一的調(diào)用接口。下層的功能實現(xiàn)需要按照與上層確定的接口規(guī)范來進行。其中某些上下層之間的接口,尤其是外圍層與上層之間的接口是使用宏定義的方式進行的。HVM layer主要包括對外圍I/O接口和設(shè)備屬性的定義,并且負責對各個外圍I/O設(shè)備端口寄存器的訪問操作。外圍層的實現(xiàn)需要根據(jù)上層定義的接口進行。通用硬件抽象層的外圍層必須提供對存儲控制、總線控制、中斷控制器、定時器控制器、UART等基本I/O接口和設(shè)備的I/O端口寄存器的訪問功能?;跀?shù)字電視的多硬件兼容驅(qū)動的軟件操作流程圖如圖3所示。通過調(diào)用Dr_ detection ()判斷硬件是否介入或者拔掉,若判斷硬件已經(jīng)介入,調(diào)用Dr_adapti0n (),然后再調(diào)用DrjnsmodO加載相應(yīng)驅(qū)動,通過讀取相應(yīng)的讀寫設(shè)備掛起任務(wù)。若判斷硬件已經(jīng)介入,調(diào)用Dr_adapti0n(),然后再調(diào)用Dr_rmm0d()卸載相應(yīng)驅(qū)動,通過關(guān)閉相應(yīng)的讀寫設(shè)備掛起任務(wù)。以上對本發(fā)明實施例所提供的一種基于數(shù)字電視的多硬件接口兼容驅(qū)動系統(tǒng)進行了詳細介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1.一種基于數(shù)字電視的多硬件接口兼容驅(qū)動系統(tǒng),其特征在于,其包括三個層次結(jié)構(gòu) 數(shù)字電視嵌入式Linux操作系統(tǒng)內(nèi)核模塊、數(shù)字電視底層硬件模塊、數(shù)字電視多硬件接口兼容驅(qū)動模塊;所述的數(shù)字電視多硬件接口兼容驅(qū)動模塊,它主要向操作系統(tǒng)以及應(yīng)用程序提供對硬件進行屏蔽后的服務(wù),為上層數(shù)字電視嵌入式操作系統(tǒng)內(nèi)核提供統(tǒng)一的硬件驅(qū)動,實現(xiàn)相關(guān)功能服務(wù);多硬件接口兼容驅(qū)動對嵌入式操作系統(tǒng)內(nèi)核所相關(guān)的硬件平臺的基本硬件組成部分進行抽象,實現(xiàn)多接口兼容驅(qū)動技術(shù),提供嵌入式操作系統(tǒng)內(nèi)核硬件平臺的相關(guān)功能,并設(shè)計相應(yīng)的支持多硬件接口兼容驅(qū)動的協(xié)議庫文件,提供對應(yīng)的API接口及使用樣例應(yīng)用程序;所述的數(shù)字電視底層硬件模塊,它是上層數(shù)字電視多硬件接口兼容驅(qū)動的平臺,多硬件接口兼容驅(qū)動是基于此硬件平臺的基礎(chǔ)上實現(xiàn)的,根據(jù)不同的機頂盒,可選擇不同的硬件平臺。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,該系統(tǒng)的軟件模塊包括以下四個部分 分別是 Detection layer、Adaptation layer、Insmod layer 及 Rmmod layer,其中 Insmod layer % Rmmod layer JLi^HVM layer ;Detection layer用來檢測系統(tǒng)中硬件的加卸載信息,并將其反饋給Adaptation layer, Detection layer是不涉及體系結(jié)構(gòu)及外圍端口寄存器具體操作,能夠通用于各種硬件平臺的一層;Adaptation layer中對HVM layer相關(guān)的數(shù)據(jù)類型以及數(shù)據(jù)結(jié)構(gòu)進行定義,包括寄存器上下文保存格式的定義以及對中斷異常向量起始地址、各種異常和中斷處理的入口偏移等,并負責通用硬件抽象層功能中體系結(jié)構(gòu)相關(guān)部分的實現(xiàn);實現(xiàn)的內(nèi)容主要是對各個寄存器的訪問,對于中斷異常向量表的操作以及底層的中斷和異常處理;HVM layer除了為嵌入式操作系統(tǒng)內(nèi)核提供統(tǒng)一的功能服務(wù)接口外,為了便于擴展和移植到其他硬件平臺,還在各層的調(diào)用之間設(shè)計了統(tǒng)一的調(diào)用接口 ;下層的功能實現(xiàn)需要按照與上層確定的接口規(guī)范來進行;其中某些上下層之間的接口,尤其是外圍層與上層之間的接口是使用宏定義的方式進行的;HVM layer主要包括對外圍I/O接口和設(shè)備屬性的定義,并且負責對各個外圍I/O設(shè)備端口寄存器的訪問操作;外圍層的實現(xiàn)需要根據(jù)上層定義的接口進行;通用硬件抽象層的外圍層必須提供對存儲控制、總線控制、中斷控制器、 定時器控制器、UART等基本I/ O接口和設(shè)備的I/ O端口寄存器的訪問功能。
3.根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于,Detectionlayer內(nèi)包括對統(tǒng)一的與編譯器無關(guān)的數(shù)據(jù)類型、抽象設(shè)備的數(shù)據(jù)結(jié)構(gòu)定義,以及提供給嵌入式操作系統(tǒng)內(nèi)核的對抽象設(shè)備的各種統(tǒng)一的操作服務(wù)的接口通用的實現(xiàn)部分;該層中抽象設(shè)備操作的實現(xiàn)中需要涉及的操作,是通過調(diào)用Adaptation layer以及HVM layer層中統(tǒng)一定義的接口進行的;當擴展或移植到其他硬件平臺上時,上層無須修改,而只須進行下層替換。
4.根據(jù)權(quán)利要求1或2所述的系統(tǒng),其特征在于,該系統(tǒng)的軟件操作流程為 通過調(diào)用DLdetectionO判斷硬件是否介入或者拔掉,若判斷硬件已經(jīng)介入,調(diào)用Dr_ adaptionO,然后再調(diào)用Drjnsmod()加載相應(yīng)驅(qū)動,通過讀取相應(yīng)的讀寫設(shè)備掛起任務(wù); 若判斷硬件已經(jīng)介入,調(diào)用Dr_adapti0n(),然后再調(diào)用Dr_rmmod()卸載相應(yīng)驅(qū)動,通過關(guān)閉相應(yīng)的讀寫設(shè)備掛起任務(wù)。
全文摘要
本發(fā)明公開了一種基于數(shù)字電視的多硬件接口兼容驅(qū)動系統(tǒng),該系統(tǒng)包括數(shù)字電視嵌入式Linux操作系統(tǒng)內(nèi)核、數(shù)字電視底層硬件、數(shù)字電視多硬件接口兼容驅(qū)動。通過本發(fā)明基本運行系統(tǒng)和正常運行系統(tǒng)的協(xié)作,完成可靠的,可恢復性的驅(qū)動加載過程;可以直接在不中斷當前業(yè)務(wù)的情況下透明驅(qū)動加載,完全顧及了用戶的業(yè)務(wù)享受心情,是一種積極、人性化的驅(qū)動加載方法。
文檔編號H04N21/43GK102196308SQ20111013141
公開日2011年9月21日 申請日期2011年5月19日 優(yōu)先權(quán)日2011年5月19日
發(fā)明者羅笑南, 鄧代國, 郝曉 申請人:中山大學, 廣東星海數(shù)字家庭產(chǎn)業(yè)技術(shù)研究院有限公司