數字電視機卡分離的條件接收卡系統
字電視是從電視節目錄制、播出到發射、接收全部采用數字編碼與數字傳輸的技術。由于數字電視廣播具有頻道利用率高以及可適應數據業務的增加、可交互操作等方面的優勢,被視為電視廣播領域的一次大革命。數字電視的條件接收系統(Conditional Access Systems,簡稱CAS)對數字電視用戶進行節目授權和收視管理,是數字電視廣播業務發展中的重要組成部分之一。
采用開放的機卡分離結構是條件接收系統的未來重要發展趨勢。機卡分離是通過在用戶接收終端上定義了一個通用物理接口以及相關的接口通訊協議,將公共的高成本的數字電視接收系統與專用的私有條件接收用戶管理系統分離開來,這樣就解決了收視與收費的捆綁問題。目前,機卡分離模式在國際上的實現方法是:采用一種與PCMCIA插口兼容的物理接口來實現。歐洲的DVB組織發布的標準稱之為DVB-CI,美國也有一個類似的標準稱之為POD。新頒布的PCMCIA 8.0標準文檔中已經將此兩種接口的定義包含進去了。而這個裝載條件接收內容的PCMCIA卡簡稱為數字電視條件接收卡,可以簡稱為CAM(Conditional Access Module)。
建立了機卡分離標準,在電視機上開啟了一個標準插口之后,其意義不僅解決了公共收視與私有管理的難題,其巨大的意義還體現在:從此作為家用消費品的數字電視機有了升級性能和擴充功能的途徑。就象PC機目前的發展規模,與PC機的ISA、PCI、APG等接口的持續標準化有著不可分割的關系。我們不難想象,如果計算機沒有標準化的可擴充接口,其行業是難以取得這么大的成功的。在數字電視領域中,機卡分離接口標準的制訂以及數字電視機上的標準接口的開啟,將會把數字電視引入到一個多姿多采的發展領域中去。比如:對于不同的節目信號傳送方式(無線廣播、有線電纜、衛星、數字音頻廣播),可以通過在CI接口(機卡分離通用接口,下面將統稱為CI接口)上插入不同形式的接收模塊就可以了;對于我們在數碼相機存儲卡上保存的照片,可以通過一個通用存儲卡讀寫器模塊在電視機上瀏覽;通過寬帶IP接收模塊,可以在電視機上欣賞網上的各類流節目以及進行網絡的雙向傳輸;可以通過網關模塊,將電視機與其他電器設備連接成一個家庭數字網絡系統;通過帶硬盤錄象的模塊,用戶可以錄制有許可認證的節目等等。這樣,作為節目媒體播放的數字電視工業,將來其發展的趨勢和潛力,已經不是我們可以概括和預計得了的。
作為最基本的條件接收卡,其結構一般是以一個高性能的32位SOC芯片為核心,配合一些專用的傳輸流處理電路、智能卡接口電路、DVB通用接口以及DVB通用解擾電路組成。根據不同CA的要求,有些特殊的條件接收卡還包括一些特殊的加/解密數據處理模塊、特殊的智能卡接口。此外,為了打擊不斷增長的節目盜版盜錄行為,國外最近還出現了一些帶防拷貝和帶版權保護的卡。圖1是機卡分離的標準結構示意圖。
SM1658芯片
SM1658是我們設計的條件接收卡專用SOC芯片,它采用廣泛流行的32位的ARM7TDMI作為CPU核,配合全新設計的內部體系結構和配置齊全的內部功能模塊,基本上只需要少量的外部器件,就可以完成條件接收卡除版權保護之外的所有功能。SM1658集成了一般的SOC芯片都具有的存儲器管理、中斷控制器、定時器、看門狗、異步串口通訊、PLL等常用電路模塊外,還在內部集成了256K字節的高速SRAM、SmartCard接口、PCMCIA(DVB-CI)接口、高速TS傳輸流解復用/過濾引擎和DVB通用解擾器等模塊。其基本結構如圖2所示。
SM1658的存儲器管理除了支持內部的高速SRAM外,還可以支持最多3個外部存儲器(必須最少有一個是FLASH)。外部每個存儲器塊的最大容量可以支持到4M字節。在芯片內部集成的256K字節的高速SRAM效率非常高,可以以零等待周期的速度單時鐘周期高速執行系統的核心程序,大大提高了芯片的關鍵程序的處理能力。
SM1658的中斷控制器可以提供32路的中斷管理。我們在中斷處理機制上采用了比較先進的電路結構,在中斷產生后,程序可以從ARM的中斷地址(例如:IRQ中斷為0x18地址)直接跳轉到中斷控制器的中斷向量表并可迅速執行中斷程序,這樣就大大加快了此SOC芯片的中斷響應速度。
CI物理接口是PCMCIA8.0標準版本中的一個子集。其中的物理接口又可以分為傳輸節目流通道和命令通道。SM1658的CI接口在硬件結構上提供了雙向緩沖,在主機和卡之間建立了一個比較高速的數據通道。此外,作為一個PCMCIA設備,芯片還提供了一個可以靈活配置的CIS存儲器。
芯片內部還提供3個16位的定時器以及一個32位的看門狗計數器。每個定時器還包含一個8位的預分頻器。如果不需要看門狗功能,還可以將它配置為一個32位的定時器使用。
在SM1658芯片的時鐘設計中,我們還集成了一個可軟件配置的PLL電路,稱之為動態時鐘電路。我們通過軟件對芯片的PLL和相應的控制寄存器進行編程,可以讓芯片的時鐘隨時動態調整,降低芯片在輕任務負載下的功耗。同時也可以適應不同的外部輸入時鐘頻率,充分適應生產中的變化需求。
在SM1658中的智能卡接口是按照ISO7816標準來實現的。為了充分節省外部器件,我們在SM1658中實現了完整的智能卡接口,不需要任何外部的接口芯片。同時,為了充分適應不同智能卡的電氣要求,用戶還可以通過軟件對接口進行配置,搭配適當的外部分立器件,以適應不同的工作電源、信號電平和ESD要求,充分適應不同使用環境中的差別。流處理引擎,用來對CI接口傳送過來的節目傳輸流進行整形、過濾、提取特定數據、解擾以及回送解擾后的節目流等。在此引擎中,包含了64個PID過濾器、16個SECTION過濾器、支持高清節目流的DVB通用加擾算法。
SM1658芯片采用0.18mm 1P6M的邏輯CMOS工藝生產,采用LQFP144封裝,常溫下工作頻率可以達到120MHz以上,在以內部存儲器運行基準測試程序的測試中,其性能指標可以接近120MIPs Dhrystone 2.1,基本上達到了ARM7TDMI的理論值水平。
當SM1658工作在60MHz的頻率下時,其核心電源功率消耗小于85mW。
條件接收卡結構
由于SM1658的設計比較完善,包含了除程序存儲器之外的所有功能模塊,所以采用SM1658設計的條件接收卡就非常的簡潔。只要加入FLASH存儲器、時鐘電路和電源電路就可以構成一個功能比較完善的條件接收卡了,其結構示意圖如圖3。
由于SM1658需要雙電源工作,所以從主機送過來的5伏電源就需要轉換成3.3伏和1.8伏。可以采用獨立或者一體化的電源芯片來完成此功能。
SM1658不包含時鐘發生電路,需要由外部提供一個3.3伏的時鐘信號。時鐘頻率可以從4MHz到30MHz之間。由于芯片可以通過軟件來最終確定芯片的工作頻率,所以可以任意選擇合適的輸入時鐘頻率,內部的軟件除了設置PLL的部分需要變化之外,其他部分基本上不受影響。
SM1658支持各種類型的8/16位的NOR FLASH存儲器。用戶可以根據設計需要,選擇價格和性能合適的產品。
條件接收卡軟件體系
SM1658的軟件體系可以分為兩個大的部分:底層API庫(應用程序接口)和用戶應用程序。API庫完成與芯片硬件相關的所有驅動和上層軟件開發需要的一些基本和專用的函數庫(包括OS系統的基本功能函數),用戶在API庫的基礎上可以比較方便的建立起用戶應用程序 (包括移植CA程序)。
API庫又可以分為底層硬件驅動函數庫、基本應用服務函數庫和高級應用服務函數庫。
SM1658的底層驅動程序包括基本設備如定時器、看門狗、存儲器管理、中斷管理、串口等設備的驅動之外,還包括專用的智能卡SmartCard接口、機卡分離CI接口、TS流處理引擎驅動等特定設備的物理驅動。底層驅動的功能是完成設備的初始化配置、工作狀態的變換、基本數據包的發送接收校驗、與其他設備的握手、錯誤狀態的處理等與硬件密切相關的基本處理工作。
基本應用服務包括TS流處理狀態的管理、CI命令通道數據的管理,SMARTCARD的底層協議實現等功能,包括OS系統的底層管理功能。它提供了一些比較底層的函數,用戶可以通過這些函數的調用,比較深入仔細的控制芯片的一些工作狀態。也可以針對應用中的一些特殊情況,優化 某些應用任務的性能。
高級應用服務實現具體的各個設備的資源管理、用戶顯示界面MMI管理、CAT和EMM數據的管理、SmartCard的應用接口以及OS系統的高層管理功能。它提供了一些比較上層或抽象的函數調用。用戶通過對這些函數的調用,可以比較簡單的完成一些任務和功能,讓用戶比較專注的建立應用體系的內容。此外,我們還比較完整的實現了兩套通訊協議接口,它們分別是DVB-CI協議和SMARTCARD的7816協議。
在OS系統方面,我們采用了非常靈活的ECOS作為此嵌入系統的操作系統。ECOS有非常方便的可訂制的配置模式,特別適合本系統及將來擴充模式的需要。
實現一個基本的數字電視條件接收卡(CAM)的功能,用戶需要實現三個方面的處理,包括用戶操作處理、錯誤信息處理和傳輸流信息處理。這三個方面的處理基本可以概括到一個條件接收卡的最基本功能了。
用戶操作處理完成CAM卡的主要功能部分,它又可以分為節目切換處理、菜單呼叫處理和卡狀態變化處理。
節目切換處理是指在用戶更改節目收看頻道后,通過主機發送信息給條件接收卡,由CAM卡重新過濾分析傳輸流的結構和相關信息表,并針對新的信息表判斷節目的授權類別,還需要過濾出合適的ECM信息提供給智能卡,修改過濾器配置條件,重新安排節目傳輸流的處理和解擾過程。這個操作流程是條件接受卡處理的主要任務之一。
呼叫菜單處理完成用戶對于與條件接收卡有關的部分信息查詢的回應和顯示,還包括用戶對某些狀態的設置的處理。比如CAM卡的狀態查詢、智能卡有關信息的查詢、閱讀郵件以及將來可能發展的EPG等可擴展內容的瀏覽,還有用戶直接要求進行在線升級、進行節目點播、兒童節目授權等操作。
卡狀態處理是對用戶卡的插入、拔出等有關動作及后續處理的部分。
錯誤信息處理主要是對條件接收卡的一些內部錯誤信息進行處理、顯示的部分。
傳輸流信息處理是對包含在節目流中的有關數據信息進行收集和處理的部分。包括在線升級及提示、郵件接收及向用戶通知等內容。
用戶在已有的API庫函數的基礎上,根據ECOS系統的編程要求,建立起不同的任務、進程和主體程序結構,并將有關CA以及其他中間件的API庫函數合并起來,就可以完成一個基本的數字電視條件接收卡(CAM)的基本框架了。
參考文獻:
1、ARM7TDMI(Rev4) Technical Reference Manual
2、ISO/IEC 7816 Specification
分頻器相關文章:分頻器原理
評論