專利名稱:一種基于時(shí)間基準(zhǔn)的ci接口數(shù)據(jù)傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字電視系統(tǒng),特別是涉及一種基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法。
背景技術(shù):
目前,多采用簡(jiǎn)單的消息機(jī)制來(lái)實(shí)現(xiàn)系統(tǒng)各模塊之間的數(shù)據(jù)通訊。采用CI(Common Interface,公共接口)技術(shù)后,數(shù)字電視接收主機(jī)和外部解擾模塊需要通過(guò)一個(gè)CI協(xié)議棧完成命令接口上的消息的傳遞,同時(shí)外部解擾模塊的處理速度和機(jī)制可能和主機(jī)端有所差別。
CI接口是一種為了實(shí)現(xiàn)機(jī)卡分離技術(shù)所定義的傳輸接口和協(xié)議,包括命令接口和TS(Transport Stream,傳輸流)流接口,其中命令接口尤為復(fù)雜,是一種基于協(xié)議棧的程序結(jié)構(gòu)。在機(jī)卡分離系統(tǒng)中,采用數(shù)字電視接收主機(jī)和外部解擾模塊彼此獨(dú)立,通過(guò)CI接口傳遞數(shù)據(jù)進(jìn)行工作。主機(jī)將未解擾的TS流通過(guò)TS接口傳遞到解擾模塊,同時(shí)數(shù)字電視接收主機(jī)和解擾模塊通過(guò)命令接口進(jìn)行通訊,交換解擾信息,解擾模塊把解擾后的TS流通過(guò)TS接口傳回主機(jī)。其中關(guān)鍵信息之一是由主機(jī)提供的CA(Conditional Access,條件接收)PMT(Program Map Table,節(jié)目映射表)信息,該信息由主機(jī)的SI(ServiceInformation,業(yè)務(wù)信息)信息處理程序模塊從PAT(Program Association Table,節(jié)目關(guān)聯(lián)表)中提取,并通過(guò)CI協(xié)議棧發(fā)送到命令接口。解擾模塊在收到CAPMT信息后才可以實(shí)時(shí)分析和提取出碼流中的ECM信息(Entitlement ControlMessage,授權(quán)控制信息),進(jìn)而結(jié)合EMM(Entitlement Management Message,授權(quán)管理信息)信息得出對(duì)應(yīng)當(dāng)前節(jié)目、當(dāng)前時(shí)間的解擾控制字。由于解擾控制字是不斷變化的,保證ECM信息的實(shí)時(shí)性是保證解擾過(guò)程穩(wěn)定的重要環(huán)節(jié)。根據(jù)協(xié)議,主機(jī)必須在PMT信息發(fā)生變化(包括版本變化、用戶節(jié)目選擇變化等情況)時(shí),及時(shí)發(fā)出更新后的CA PMT信息,對(duì)時(shí)效性要求較高。當(dāng)用戶連續(xù)切換節(jié)目,或PMT信息由于某些原因連續(xù)發(fā)生變化,解擾模塊端若連續(xù)收到主機(jī)端的信息,由于兩者的處理速度和消息處理機(jī)制的差異,容易導(dǎo)致信息的冗余和接收錯(cuò)誤。一般可以采用設(shè)置多個(gè)狀態(tài)標(biāo)志位和狀態(tài)機(jī)結(jié)構(gòu)的方法使最終發(fā)送的數(shù)據(jù)是最新的,減少冗余,同時(shí)在數(shù)據(jù)發(fā)出后嚴(yán)格控制后面數(shù)據(jù)發(fā)送的間隔,保證解擾模塊的數(shù)據(jù)處理時(shí)間。但是這樣程序?qū)崿F(xiàn)比較復(fù)雜。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題在于提供基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,用于解決現(xiàn)有消息機(jī)制時(shí)效性較低、可靠性不高及程序結(jié)構(gòu)實(shí)現(xiàn)較為復(fù)雜等問(wèn)題。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供了一種基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,適用于數(shù)字電視系統(tǒng),所述數(shù)字電視系統(tǒng)包括數(shù)字電視接收主機(jī)、解擾模塊,所述數(shù)字電視接收主機(jī)與所述解擾模塊通過(guò)一CI接口建立通信,其特征在于,所述數(shù)字電視接收主機(jī)接收一含有時(shí)間基準(zhǔn)的消息數(shù)據(jù),并從該消息數(shù)據(jù)中提取所述時(shí)間基準(zhǔn);通過(guò)比較所述時(shí)間基準(zhǔn)與所述數(shù)字電視接收主機(jī)當(dāng)前的時(shí)間基準(zhǔn)比較變量,并根據(jù)所述數(shù)字電視接收主機(jī)的當(dāng)前數(shù)據(jù)處理狀態(tài)標(biāo)志位,從而通過(guò)所述CI接口有效控制所述數(shù)字電視接收主機(jī)與所述解擾模塊之間的數(shù)據(jù)傳輸。
所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其中,所述時(shí)間基準(zhǔn)通過(guò)一時(shí)間基準(zhǔn)獲取函數(shù)獲得,其中所述時(shí)間基準(zhǔn)獲取函數(shù)為所述數(shù)字電視接收主機(jī)具有時(shí)間計(jì)數(shù)器功能的底層函數(shù)。
所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其中,所述數(shù)據(jù)處理狀態(tài)標(biāo)志位包括空閑、數(shù)據(jù)處理中。
所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其中,進(jìn)一步包括步驟41、若所述時(shí)間基準(zhǔn)小于所述時(shí)間基準(zhǔn)比較變量,則當(dāng)前處理的消息數(shù)據(jù)比所述消息數(shù)據(jù)的版本更新,不處理所述消息數(shù)據(jù),等待接收消息數(shù)據(jù);步驟42、若所述時(shí)間基準(zhǔn)大于所述時(shí)間基準(zhǔn)比較變量,則所述消息數(shù)據(jù)比當(dāng)前處理消息數(shù)據(jù)的版本更新,所述時(shí)間基準(zhǔn)比較變量更新為所述時(shí)間基準(zhǔn)。
所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其中,所述步驟42中,當(dāng)所述數(shù)據(jù)處理狀態(tài)標(biāo)志位為空閑時(shí),進(jìn)一步包括一對(duì)所述消息數(shù)據(jù)進(jìn)行提取和協(xié)議層逐層打包生成數(shù)據(jù)包的步驟。
所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其中,在所述對(duì)消息數(shù)據(jù)進(jìn)行提取和協(xié)議層逐層打包生成數(shù)據(jù)包的步驟中,所述數(shù)據(jù)處理狀態(tài)標(biāo)志位設(shè)置為數(shù)據(jù)處理中。
所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其中,若所述數(shù)字電視接收主機(jī)又接收到新的消息數(shù)據(jù),則進(jìn)一步包括一比較所述新的消息數(shù)據(jù)中的時(shí)間基準(zhǔn)與所述時(shí)間基準(zhǔn)比較變量的步驟。
所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其中,若所述新的消息數(shù)據(jù)中的時(shí)間基準(zhǔn)大于所述時(shí)間基準(zhǔn)比較變量,則消息數(shù)據(jù)已經(jīng)更新,清空當(dāng)前消息數(shù)據(jù);若所述新的消息數(shù)據(jù)中的時(shí)間基準(zhǔn)小于所述時(shí)間基準(zhǔn)比較變量,則沒(méi)有新的消息數(shù)據(jù)更新,并準(zhǔn)備發(fā)送所述數(shù)據(jù)包至所述解擾模塊。
所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其中,所述時(shí)間基準(zhǔn)比較變量更新為所述新的消息數(shù)據(jù)中的時(shí)間基準(zhǔn)。
所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其中,在發(fā)送所述數(shù)據(jù)包至所述解擾模塊之前,進(jìn)一步包括一比較當(dāng)前時(shí)間基準(zhǔn)與上一次數(shù)據(jù)包發(fā)送時(shí)的時(shí)間基準(zhǔn)的步驟,其中所述當(dāng)前時(shí)間基準(zhǔn)為所述數(shù)據(jù)包準(zhǔn)備發(fā)送時(shí)的時(shí)間基準(zhǔn),其通過(guò)調(diào)用所述時(shí)間基準(zhǔn)獲取函數(shù)得到。
所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其中,若所述當(dāng)前時(shí)間基準(zhǔn)與上一次數(shù)據(jù)包發(fā)送時(shí)的時(shí)間基準(zhǔn)的差值滿足一設(shè)定的發(fā)送時(shí)間間隔,則通過(guò)所述CI接口發(fā)送數(shù)據(jù)包至所述解擾模塊,且所述上一次數(shù)據(jù)包發(fā)送時(shí)的時(shí)間基準(zhǔn)更新為所述當(dāng)前時(shí)間基準(zhǔn);若所述當(dāng)前時(shí)間基準(zhǔn)與上一次數(shù)據(jù)包發(fā)送時(shí)的時(shí)間基準(zhǔn)的差值不滿足該設(shè)定的發(fā)送時(shí)間間隔,則進(jìn)行延時(shí)發(fā)送數(shù)據(jù)包。
所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其中,所述延時(shí)的時(shí)間通過(guò)對(duì)時(shí)間基準(zhǔn)進(jìn)行運(yùn)算獲得。
本發(fā)明提供的基于時(shí)間基準(zhǔn)的方式,可以有效解決數(shù)字電視接收主機(jī)端和解擾模塊端通過(guò)命令接口傳遞消息的時(shí)效性問(wèn)題;減少軟件結(jié)構(gòu)的復(fù)雜程度;采用消息時(shí)間基準(zhǔn)方法,還可以很方便的根據(jù)解擾模塊和主機(jī)處理數(shù)據(jù)的速度差異,進(jìn)行延時(shí)發(fā)送,減少信息冗余和提高可靠性。
以下結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述,但不作為對(duì)本發(fā)明的限定。
圖1為現(xiàn)有技術(shù)中的消息傳遞流程圖;圖2為本發(fā)明的消息傳遞流程圖。
具體實(shí)施例方式
現(xiàn)有的消息傳遞機(jī)制在消息處理程序模塊中,不能有效通過(guò)消息里的數(shù)據(jù)來(lái)判斷消息的時(shí)效性。在連續(xù)收到某個(gè)同類消息時(shí)無(wú)法簡(jiǎn)單快速的做出響應(yīng),容易造成數(shù)據(jù)的冗余。一般在收到各個(gè)模塊發(fā)來(lái)的消息后,只能通過(guò)消息標(biāo)識(shí)來(lái)識(shí)別同一通道的消息類別,對(duì)于同一類別信息的實(shí)時(shí)性只能通過(guò)采用設(shè)置多個(gè)狀態(tài)標(biāo)志位和狀態(tài)機(jī)結(jié)構(gòu)來(lái)減少數(shù)據(jù)冗余。
在基于CI接口的機(jī)卡分離數(shù)據(jù)傳輸中,主機(jī)端向解擾模塊端的數(shù)據(jù)傳遞也多采用消息來(lái)發(fā)送。由于主機(jī)端和解擾模塊端處理速度上的差異,需要考慮到主機(jī)端由于用戶操作或其他原因,連續(xù)的向解擾模塊端發(fā)送數(shù)據(jù),解擾模塊端由于處理能力的限制,可能不能及時(shí)處理數(shù)據(jù),導(dǎo)致數(shù)據(jù)冗余。一般可以采用設(shè)置多個(gè)狀態(tài)標(biāo)志位和狀態(tài)機(jī)結(jié)構(gòu)的方法使最終發(fā)送的數(shù)據(jù)是最新的,減少冗余,同時(shí)在數(shù)據(jù)發(fā)出后嚴(yán)格控制后面數(shù)據(jù)發(fā)送的時(shí)間間隔,保證解擾模塊的數(shù)據(jù)處理時(shí)間。但是這樣程序?qū)崿F(xiàn)又比較復(fù)雜。
作為一種數(shù)據(jù)傳輸方法,本發(fā)明提出的基于時(shí)間基準(zhǔn)的方式是在消息傳遞機(jī)制的基礎(chǔ)上,增加一個(gè)與系統(tǒng)時(shí)間相關(guān)的時(shí)間基準(zhǔn),本發(fā)明基于時(shí)間基準(zhǔn)的消息處理機(jī)制可以有效解決上述問(wèn)題。
本發(fā)明的主要內(nèi)容是時(shí)間基準(zhǔn)可以根據(jù)一個(gè)基于系統(tǒng)時(shí)間的函數(shù)獲得,且時(shí)間基準(zhǔn)可以精確到毫秒級(jí)別。在消息產(chǎn)生時(shí),調(diào)用該基于系統(tǒng)時(shí)間的函數(shù),獲得一個(gè)與時(shí)間相關(guān)的時(shí)間基準(zhǔn),直接將該時(shí)間基準(zhǔn)插入到消息中和消息一起發(fā)送;在消息接收時(shí),消息接收函數(shù)從消息中提取該時(shí)間基準(zhǔn),因該時(shí)間基準(zhǔn)是與時(shí)間相關(guān)聯(lián)的,將其與接收到的上一個(gè)消息的時(shí)間基準(zhǔn)比較,可以方便、容易判斷消息數(shù)據(jù)的時(shí)效性。
處理數(shù)據(jù)之前,將時(shí)間基準(zhǔn)保存為新的基準(zhǔn)比較量。若在處理數(shù)據(jù)期間又收到了新的消息,通過(guò)消息的時(shí)間基準(zhǔn)和該基準(zhǔn)比較量的比較,可以得知數(shù)據(jù)是否又發(fā)生了更新。如果時(shí)間基準(zhǔn)大于該基準(zhǔn)比較量,說(shuō)明在數(shù)據(jù)未發(fā)出前已經(jīng)發(fā)生了更新,于是丟掉舊數(shù)據(jù),開(kāi)始處理新的數(shù)據(jù)并發(fā)送。
針對(duì)解擾模塊處理速度上和主機(jī)端的差異,根據(jù)時(shí)間基準(zhǔn)方便的實(shí)現(xiàn)控制數(shù)據(jù)發(fā)送時(shí)間間隔的功能。在通過(guò)CI命令接口發(fā)出一段數(shù)據(jù)后,記下當(dāng)時(shí)的時(shí)間基準(zhǔn),在下一個(gè)數(shù)據(jù)包待發(fā)送時(shí),比較當(dāng)前時(shí)間基準(zhǔn)和上一次數(shù)據(jù)包發(fā)送的時(shí)間基準(zhǔn)之差;如果滿足一設(shè)定的值,表示時(shí)間間隔滿足要求可以發(fā)送數(shù)據(jù)包;如果不滿足該設(shè)定的值,表示需要延時(shí),延時(shí)的具體時(shí)間可由時(shí)間基準(zhǔn)的某種運(yùn)算來(lái)獲得。
圖1所示為現(xiàn)有技術(shù)中的消息傳遞流程圖;當(dāng)用戶快速的連續(xù)切換節(jié)目頻道,主機(jī)中負(fù)責(zé)收集當(dāng)前節(jié)目信息的程序模塊會(huì)連續(xù)發(fā)送相關(guān)的CA PMT信息。這些信息通過(guò)協(xié)議棧的層層打包,才能順利發(fā)送到解擾模塊端,在上一個(gè)信息還未處理完就又收到新的更新了的信息,原則上在收到更新數(shù)據(jù)后應(yīng)該立刻丟棄上一個(gè)老版本信息,馬上處理新的信息,但是由于消息中沒(méi)有簡(jiǎn)單判斷消息時(shí)效性的數(shù)據(jù),必須通過(guò)復(fù)雜狀態(tài)標(biāo)志位的判斷和設(shè)置才能完成這一操作。
該流程圖包括如下步驟步驟101,數(shù)字電視接收主機(jī)在接收數(shù)據(jù)收到一個(gè)消息數(shù)據(jù)時(shí),讀取一次狀態(tài)位,判斷當(dāng)前是否有數(shù)據(jù)還未發(fā)出,若當(dāng)前沒(méi)有數(shù)據(jù)還未發(fā)出,則進(jìn)行步驟102,若當(dāng)前有數(shù)據(jù)還未發(fā)出,則進(jìn)行步驟105;步驟102,若當(dāng)前狀態(tài)標(biāo)志位處于“空閑”,則設(shè)置發(fā)送狀態(tài)標(biāo)志位為“數(shù)據(jù)處理中”;步驟103,將收到的消息數(shù)據(jù)導(dǎo)入緩存進(jìn)行數(shù)據(jù)處理,并進(jìn)行數(shù)據(jù)打包;步驟104,上述收到的消息在數(shù)據(jù)處理過(guò)程中,設(shè)置周期性的讀取當(dāng)前狀態(tài)標(biāo)志位,并比較狀態(tài)標(biāo)志位,若當(dāng)前狀態(tài)標(biāo)志位處于“空閑”,則執(zhí)行步驟109;若數(shù)據(jù)已經(jīng)更新,則執(zhí)行步驟107;步驟105,若有新的消息到來(lái),根據(jù)當(dāng)前狀態(tài)標(biāo)志位獲知有數(shù)據(jù)還未處理完畢,則設(shè)置發(fā)送狀態(tài)標(biāo)志位為“數(shù)據(jù)更新”狀態(tài);步驟106,保存數(shù)據(jù),等待發(fā)送,并轉(zhuǎn)入步驟108;步驟107,調(diào)用一個(gè)丟棄當(dāng)前數(shù)據(jù)并清空緩存的函數(shù)清空當(dāng)前數(shù)據(jù)初始化到上一狀態(tài),并設(shè)置發(fā)送狀態(tài)標(biāo)志位為“空閑”;步驟108,比較狀態(tài)標(biāo)志位,判斷當(dāng)前狀態(tài)是否處于“空閑”狀態(tài);若處于“空閑”狀態(tài),則執(zhí)行步驟103;若不處于“空閑”狀態(tài),又有新的消息到來(lái),這時(shí)讀取狀態(tài)位得知有數(shù)據(jù)還未處理完,設(shè)置發(fā)送狀態(tài)標(biāo)志位為“數(shù)據(jù)更新”,并執(zhí)行步驟106;步驟109,通過(guò)CI接口發(fā)送數(shù)據(jù)包至解擾模塊;步驟110,在數(shù)據(jù)包發(fā)送之后,設(shè)置發(fā)送狀態(tài)標(biāo)志位為“空閑”;步驟111,為了保證對(duì)數(shù)據(jù)包的發(fā)送時(shí)間間隔要求,強(qiáng)制延時(shí)一段時(shí)間再進(jìn)行數(shù)據(jù)包的發(fā)送。
上述過(guò)程中,如果連續(xù)發(fā)生了數(shù)據(jù)更新,其過(guò)程將比所述過(guò)程更為復(fù)雜些。
上述通過(guò)狀態(tài)標(biāo)志位的反復(fù)讀取和設(shè)置來(lái)達(dá)到數(shù)據(jù)時(shí)效性控制的方法存在的缺點(diǎn)效率較低、代碼較復(fù)雜、可靠性不高;強(qiáng)制延時(shí)容易造成數(shù)據(jù)冗余;不能及時(shí)返回消息接收狀態(tài)。
圖2所示為本發(fā)明的消息傳遞流程圖;本發(fā)明采用基于時(shí)間基準(zhǔn)的數(shù)據(jù)傳輸處理方法使得程序的復(fù)雜度得到大幅度改善。在消息中插入一個(gè)消息生成時(shí)的時(shí)間基準(zhǔn)值,接收時(shí)直接通過(guò)這個(gè)時(shí)間基準(zhǔn)進(jìn)行比較判斷,快速準(zhǔn)確的保證消息的時(shí)效性。
時(shí)間基準(zhǔn)可以理解為一個(gè)與系統(tǒng)時(shí)間相關(guān)的數(shù)值,其值可以精確到毫秒級(jí)或更小。在CI接口數(shù)據(jù)傳輸?shù)膽?yīng)用中,時(shí)間基準(zhǔn)是通過(guò)調(diào)用一個(gè)獲取函數(shù)來(lái)得到的。該獲取函數(shù)的具體實(shí)現(xiàn)是在基于VxWorks實(shí)時(shí)操作系統(tǒng)中,底層函數(shù)可以提供一個(gè)系統(tǒng)時(shí)間計(jì)數(shù)器的功能,通過(guò)對(duì)該系統(tǒng)時(shí)間計(jì)數(shù)器的實(shí)時(shí)讀取就可以得到一個(gè)與當(dāng)前系統(tǒng)時(shí)間相關(guān)的值,再經(jīng)過(guò)一些便于應(yīng)用的數(shù)據(jù)變化,將該計(jì)數(shù)值轉(zhuǎn)變?yōu)楸景l(fā)明需要的時(shí)間基準(zhǔn)。
在基于不同的硬件系統(tǒng)和操作系統(tǒng)的情況下,可以用不同的方式來(lái)獲得時(shí)間基準(zhǔn)?;贏RM并采用VxWorks實(shí)時(shí)操作系統(tǒng)的程序中,該獲取函數(shù)是通過(guò)從ARM的一個(gè)寄存器中讀取相關(guān)計(jì)數(shù)器值來(lái)獲取時(shí)間基準(zhǔn)的。以下是基于ARM1022E處理器和VxWorks實(shí)時(shí)操作系統(tǒng)的具體程序和說(shuō)明。
在ARM中有Timer Value寄存器,其功能是“當(dāng)前消耗時(shí)間計(jì)數(shù)器”。
首先需要設(shè)置好Timer Control寄存器,使計(jì)數(shù)器進(jìn)入工作狀態(tài);通過(guò)讀取這個(gè)Timer Value 32位寄存器可以得到一個(gè)數(shù)值(記為clk_count);nsec=(clk_count*1000000000)/SYS_TIMER_CLK;
時(shí)間基準(zhǔn)(精確到毫秒級(jí))=nsec/1000000;其中SYS_TIMER_CLK為系統(tǒng)時(shí)鐘頻率,為固定數(shù)值,其因具體硬件和軟件環(huán)境而不同。
通過(guò)上面所述,實(shí)際上時(shí)間基準(zhǔn)的獲取依賴一個(gè)系統(tǒng)時(shí)間計(jì)數(shù)機(jī)制。通過(guò)和時(shí)鐘頻率的相關(guān)運(yùn)算,可以得到一個(gè)只與時(shí)間有關(guān)的數(shù)值;再對(duì)這個(gè)數(shù)值進(jìn)行與精確級(jí)別相關(guān)的運(yùn)算,就能得到滿足要求的時(shí)間基準(zhǔn)值。
時(shí)間基準(zhǔn)的獲取函數(shù)實(shí)現(xiàn)方式是多樣的,不同的硬件和軟件環(huán)境下,獲取方式也是不同的。既可以通過(guò)硬件寄存器提供計(jì)數(shù)機(jī)制,也可以用純軟件的方式來(lái)提供計(jì)數(shù)機(jī)制??梢暰唧w的應(yīng)用需要和開(kāi)發(fā)環(huán)境確定時(shí)間基準(zhǔn)的獲取函數(shù)的實(shí)現(xiàn)方式。
該流程圖包括如下步驟步驟201,接收消息數(shù)據(jù),并提取消息數(shù)據(jù)中的時(shí)間基準(zhǔn);步驟202,將該時(shí)間基準(zhǔn)與當(dāng)前的“時(shí)間基準(zhǔn)比較變量”相比較若小于該當(dāng)前的“時(shí)間基準(zhǔn)比較變量”,則說(shuō)明消息已經(jīng)過(guò)期,當(dāng)前處理的數(shù)據(jù)比發(fā)送來(lái)的數(shù)據(jù)版本更新,于是回到接收消息狀態(tài),不對(duì)收到的數(shù)據(jù)進(jìn)行處理;若大于該當(dāng)前的“時(shí)間基準(zhǔn)比較變量”,則表示收到了新的數(shù)據(jù);步驟203,將消息中的時(shí)間基準(zhǔn)賦值給該當(dāng)前的“時(shí)間基準(zhǔn)比較變量”,作為當(dāng)前所處理消息的比較基準(zhǔn);步驟204,讀取數(shù)據(jù)處理狀態(tài)標(biāo)志位若為“數(shù)據(jù)處理中”狀態(tài),則轉(zhuǎn)回至程序初始位置,等待狀態(tài)空閑后進(jìn)行處理;若為“空閑”,則對(duì)數(shù)據(jù)進(jìn)行提取和協(xié)議層逐層打包,并把狀態(tài)標(biāo)志位設(shè)置為“數(shù)據(jù)處理中”。
步驟205,在數(shù)據(jù)處理過(guò)程中,若有新的數(shù)據(jù)發(fā)送過(guò)來(lái),將消息中的時(shí)間基準(zhǔn)賦值給該“時(shí)間基準(zhǔn)比較變量”,并保持?jǐn)?shù)據(jù)準(zhǔn)備進(jìn)行處理;在數(shù)據(jù)打包結(jié)束之后,完成發(fā)送數(shù)據(jù)包到解擾模塊的待發(fā)準(zhǔn)備工作之前,進(jìn)行一次比較時(shí)間基準(zhǔn)若發(fā)現(xiàn)數(shù)據(jù)已經(jīng)更新,則執(zhí)行步驟210,若沒(méi)有新的數(shù)據(jù)更新,則執(zhí)行步驟206;在上述數(shù)據(jù)處理過(guò)程中,根據(jù)數(shù)據(jù)處理量判斷是否需要可以插入一些時(shí)間基準(zhǔn)的比較;步驟206,完成發(fā)送數(shù)據(jù)包到解擾模塊的待發(fā)準(zhǔn)備工作;步驟207,在完成數(shù)據(jù)包發(fā)送準(zhǔn)備工作之后,在數(shù)據(jù)包發(fā)送至解擾模塊之前,進(jìn)行一次時(shí)間基準(zhǔn)比較;該比較在發(fā)送時(shí)調(diào)用時(shí)間基準(zhǔn)獲取函數(shù),獲得本次消息準(zhǔn)備發(fā)送時(shí)的當(dāng)前時(shí)間基準(zhǔn)A,將該當(dāng)前時(shí)間基準(zhǔn)A和上一次數(shù)據(jù)包發(fā)送時(shí)保存的時(shí)間基準(zhǔn)B進(jìn)行比較若A-B值滿足一設(shè)定的發(fā)送時(shí)間間隔,則執(zhí)行步驟208,并將A賦值給B;若不滿足該設(shè)定的發(fā)送時(shí)間間隔,則進(jìn)行延時(shí),返回至步驟206;步驟208,通過(guò)CI接口發(fā)送數(shù)據(jù)包到解擾模塊;步驟209,記錄新的實(shí)際發(fā)送的時(shí)間基準(zhǔn),用于下次時(shí)間基準(zhǔn)的比較;步驟210,若發(fā)現(xiàn)數(shù)據(jù)已經(jīng)更新,則調(diào)用一個(gè)丟棄當(dāng)前數(shù)據(jù)并清空緩存的函數(shù)清空當(dāng)前數(shù)據(jù),并返回至程序初始位置,開(kāi)始處理保持中的更新數(shù)據(jù)。
適用本發(fā)明解決的問(wèn)題具有如下特征數(shù)據(jù)處理需要的時(shí)間和步驟較為復(fù)雜,而且需要在不同模塊間傳遞消息和數(shù)據(jù);需要及時(shí)對(duì)收到的數(shù)據(jù)進(jìn)行識(shí)別判斷,并需根據(jù)時(shí)效性進(jìn)行處理;有可能連續(xù)收到更新數(shù)據(jù)的消息,容易發(fā)生數(shù)據(jù)冗余。
此外,用戶切換節(jié)目,從用戶交互程序模塊發(fā)送到數(shù)字電視系統(tǒng)的節(jié)目管理模塊,再發(fā)送到頻道控制模塊,該過(guò)程再返回至用戶交互程序模塊,這時(shí)就可以方便的通過(guò)消息的時(shí)間基準(zhǔn)值來(lái)判斷收到的響應(yīng)是否和發(fā)送時(shí)匹配。
因?yàn)闀r(shí)間基準(zhǔn)在消息發(fā)送時(shí)產(chǎn)生,并一直隨著消息的傳遞而傳遞。如果消息在傳遞過(guò)程中發(fā)生了異常,導(dǎo)致數(shù)據(jù)丟失或其他異常動(dòng)作,這個(gè)消息有可能就被丟棄了,后面的消息繼續(xù)傳送;如果同一類消息發(fā)送了幾次,那么就可以通過(guò)響應(yīng)中的時(shí)間基準(zhǔn)判斷是否是預(yù)期消息返回的響應(yīng)。
綜上所述,采用基于時(shí)間基準(zhǔn)的數(shù)據(jù)傳輸機(jī)制大大簡(jiǎn)化了程序流程;與系統(tǒng)時(shí)間相關(guān)聯(lián)的時(shí)間基準(zhǔn)可以精確到毫秒級(jí)或更高級(jí)別;利用系統(tǒng)時(shí)間計(jì)數(shù)器可方便得到某一個(gè)動(dòng)作發(fā)生時(shí)的時(shí)間基準(zhǔn);該時(shí)間基準(zhǔn)不僅能在CI接口消息的處理上使用而使程序簡(jiǎn)化,提高程序可靠性,而且可以應(yīng)用到許多對(duì)實(shí)時(shí)性要求高,且容易產(chǎn)生數(shù)據(jù)冗余的地方。
當(dāng)然,本發(fā)明還可有其他多種實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,適用于數(shù)字電視系統(tǒng),所述數(shù)字電視系統(tǒng)包括數(shù)字電視接收主機(jī)、解擾模塊,所述數(shù)字電視接收主機(jī)與所述解擾模塊通過(guò)一CI接口建立通信,其特征在于,所述數(shù)字電視接收主機(jī)接收一含有時(shí)間基準(zhǔn)的消息數(shù)據(jù),并從該消息數(shù)據(jù)中提取所述時(shí)間基準(zhǔn);通過(guò)比較所述時(shí)間基準(zhǔn)與所述數(shù)字電視接收主機(jī)當(dāng)前的時(shí)間基準(zhǔn)比較變量,并根據(jù)所述數(shù)字電視接收主機(jī)的當(dāng)前數(shù)據(jù)處理狀態(tài)標(biāo)志位,從而通過(guò)所述CI接口有效控制所述數(shù)字電視接收主機(jī)與所述解擾模塊之間的數(shù)據(jù)傳輸。
2.根據(jù)權(quán)利要求1所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其特征在于,所述時(shí)間基準(zhǔn)通過(guò)一時(shí)間基準(zhǔn)獲取函數(shù)獲得,其中所述時(shí)間基準(zhǔn)獲取函數(shù)為所述數(shù)字電視接收主機(jī)具有時(shí)間計(jì)數(shù)器功能的底層函數(shù)。
3.根據(jù)權(quán)利要求2所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其特征在于,所述數(shù)據(jù)處理狀態(tài)標(biāo)志位包括空閑、數(shù)據(jù)處理中。
4.根據(jù)權(quán)利要求3所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其特征在于,進(jìn)一步包括步驟41、若所述時(shí)間基準(zhǔn)小于所述時(shí)間基準(zhǔn)比較變量,則當(dāng)前處理的消息數(shù)據(jù)比所述消息數(shù)據(jù)的版本更新,不處理所述消息數(shù)據(jù),等待接收消息數(shù)據(jù);步驟42、若所述時(shí)間基準(zhǔn)大于所述時(shí)間基準(zhǔn)比較變量,則所述消息數(shù)據(jù)比當(dāng)前處理消息數(shù)據(jù)的版本更新,所述時(shí)間基準(zhǔn)比較變量更新為所述時(shí)間基準(zhǔn)。
5.根據(jù)權(quán)利要求4所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其特征在于,所述步驟42中,當(dāng)所述數(shù)據(jù)處理狀態(tài)標(biāo)志位為空閑時(shí),進(jìn)一步包括一對(duì)所述消息數(shù)據(jù)進(jìn)行提取和協(xié)議層逐層打包生成數(shù)據(jù)包的步驟。
6.根據(jù)權(quán)利要求5所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其特征在于,在所述對(duì)消息數(shù)據(jù)進(jìn)行提取和協(xié)議層逐層打包生成數(shù)據(jù)包的步驟中,所述數(shù)據(jù)處理狀態(tài)標(biāo)志位設(shè)置為數(shù)據(jù)處理中。
7.根據(jù)權(quán)利要求6所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其特征在于,若所述數(shù)字電視接收主機(jī)又接收到新的消息數(shù)據(jù),則進(jìn)一步包括一比較所述新的消息數(shù)據(jù)中的時(shí)間基準(zhǔn)與所述時(shí)間基準(zhǔn)比較變量的步驟。
8.根據(jù)權(quán)利要求7所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其特征在于,若所述新的消息數(shù)據(jù)中的時(shí)間基準(zhǔn)大于所述時(shí)間基準(zhǔn)比較變量,則消息數(shù)據(jù)已經(jīng)更新,清空當(dāng)前消息數(shù)據(jù);若所述新的消息數(shù)據(jù)中的時(shí)間基準(zhǔn)小于所述時(shí)間基準(zhǔn)比較變量,則沒(méi)有新的消息數(shù)據(jù)更新,并準(zhǔn)備發(fā)送所述數(shù)據(jù)包至所述解擾模塊。
9.根據(jù)權(quán)利要求8所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其特征在于,所述時(shí)間基準(zhǔn)比較變量更新為所述新的消息數(shù)據(jù)中的時(shí)間基準(zhǔn)。
10.根據(jù)權(quán)利要求9所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其特征在于,在發(fā)送所述數(shù)據(jù)包至所述解擾模塊之前,進(jìn)一步包括一比較當(dāng)前時(shí)間基準(zhǔn)與上一次數(shù)據(jù)包發(fā)送時(shí)的時(shí)間基準(zhǔn)的步驟,其中所述當(dāng)前時(shí)間基準(zhǔn)為所述數(shù)據(jù)包準(zhǔn)備發(fā)送時(shí)的時(shí)間基準(zhǔn),其通過(guò)調(diào)用所述時(shí)間基準(zhǔn)獲取函數(shù)得到。
11.根據(jù)權(quán)利要求10所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其特征在于,若所述當(dāng)前時(shí)間基準(zhǔn)與上一次數(shù)據(jù)包發(fā)送時(shí)的時(shí)間基準(zhǔn)的差值滿足一設(shè)定的發(fā)送時(shí)間間隔,則通過(guò)所述CI接口發(fā)送數(shù)據(jù)包至所述解擾模塊,且所述上一次數(shù)據(jù)包發(fā)送時(shí)的時(shí)間基準(zhǔn)更新為所述當(dāng)前時(shí)間基準(zhǔn);若所述當(dāng)前時(shí)間基準(zhǔn)與上一次數(shù)據(jù)包發(fā)送時(shí)的時(shí)間基準(zhǔn)的差值不滿足該設(shè)定的發(fā)送時(shí)間間隔,則進(jìn)行延時(shí)發(fā)送數(shù)據(jù)包。
12.根據(jù)權(quán)利要求11所述的基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,其特征在于,所述延時(shí)的時(shí)間通過(guò)對(duì)時(shí)間基準(zhǔn)進(jìn)行運(yùn)算獲得。
全文摘要
本發(fā)明公開(kāi)了一種基于時(shí)間基準(zhǔn)的CI接口數(shù)據(jù)傳輸方法,適用于數(shù)字電視系統(tǒng),包括數(shù)字電視接收主機(jī)、解擾模塊,數(shù)字電視接收主機(jī)與解擾模塊通過(guò)CI接口建立通信,其中,數(shù)字電視接收主機(jī)接收含有時(shí)間基準(zhǔn)的消息數(shù)據(jù),并從該消息數(shù)據(jù)中提取時(shí)間基準(zhǔn);通過(guò)比較時(shí)間基準(zhǔn)與數(shù)字電視接收主機(jī)當(dāng)前的時(shí)間基準(zhǔn)比較變量,并根據(jù)數(shù)字電視接收主機(jī)的當(dāng)前數(shù)據(jù)處理狀態(tài)標(biāo)志位,從而通過(guò)CI接口有效控制數(shù)字電視接收主機(jī)與解擾模塊之間的數(shù)據(jù)傳輸。本發(fā)明解決了主機(jī)端和解擾模塊端通過(guò)命令接口傳遞消息的時(shí)效性問(wèn)題;減少了軟件結(jié)構(gòu)的復(fù)雜程度;還可以根據(jù)解擾模塊和主機(jī)處理數(shù)據(jù)的速度差異,進(jìn)行延時(shí)發(fā)送,減少信息冗余和提高可靠性。
文檔編號(hào)H04L12/28GK1913622SQ20051008621
公開(kāi)日2007年2月14日 申請(qǐng)日期2005年8月8日 優(yōu)先權(quán)日2005年8月8日
發(fā)明者吳宏濤 申請(qǐng)人:樂(lè)金電子(中國(guó))研究開(kāi)發(fā)中心有限公司