數字電視從電視節目錄制、播出到發射、接收全部采用數字編碼與數字傳輸技術。由于數字電視廣播具有頻道利用率高,可適應各種數據傳輸、適應各類圖像質量、可交互操作等方面的優勢,被各國視為新世紀的戰略技術。伴隨著電視廣播的全面數字化,傳統的電視媒體將在技術、功能上逐步與信息、通信領域的其它手段相互融合,從而形成全新的、龐大的數字電視產業。
數字電視的條件接收系統(CAS)是用于對數字電視用戶進行節目授權和管理的部分,是數字電視廣播中的重要組成部分之一。而其中采用開放的機卡分離結構又是條件接收系統的未來重要發展趨勢。機卡分離是通過在用戶接收終端上定義了一個通用物理接口以及相關的接口通訊協議,將通用的適宜于大規模生產的電視接收系統與私有的CAS管理系統分離開來。目前,機卡分離模式在國際上通行的實現方法是:采用一種與便攜電腦上的PCMCIA插口類似的物理接口來實現。歐洲的DVB組織發布的標準稱之為DVB-CI,美國也有一個類似的標準稱之為POD。事實上新的PCMCIA標準文檔中已經將此兩種接口的定義包含進去了。而這其中裝載條件接收處理內容的PCMCIA卡簡稱為數字電視條件接收卡,可以簡稱為CAM(條件接收模塊)。
事實上,建立了機卡分離標準,在電視機上開啟了一個標準插口之后,其意義并不僅僅在于解決了公共收視與私有管理的難題,其巨大的意義還將體現在從此作為家用消費品的數字電視機有了升級性能和擴充功能的途徑。就像PC機目前的發展規模,與PC機的ISA、PCI、APG等接口的標準化有著不可分割的關系。我們難以想象,如果計算機沒有標準化的可擴充接口,其行業還能否取得這么大的成功。在數字電視領域中,機卡分離接口標準的制訂以及數字電視機上的標準接口的開啟,將會把數字電視引入到一個多姿多彩的發展領域中去。比如:對于不同的節目信號傳送方式(無線廣播、有線電纜、衛星、數字音頻廣播),可以通過在CI接口(機卡分離通用接口)上插入不同形式的接收模塊就可以了;對于我們在數碼相機存儲卡上保存的照片,可以通過一個通用存儲卡讀寫器模塊在電視機上瀏覽;通過寬帶IP接收模塊,可以在電視機上欣賞網上的各類流節目以及進行網絡的雙向傳輸;可以通過網關模塊,將電視機與其他電器設備連接成一個家庭數字網絡系統;通過帶硬盤錄象模塊,用戶可以錄制有許可認證的節目等等。將來其發展的趨勢和潛力更難以預計。
圖1:機卡分離結構示意圖。
CAM的結構一般可以是以一個高性能的32位SoC芯片為核心,配合智能卡接口、CI接口、專用的TS傳輸流處理引擎、DVB通用解擾等部分組成。CAM卡的體積空間非常有限,卻要實現一個能處理高清電視節目流的高速32位嵌入式系統,所以其核心的SoC芯片的規模和性能就成了關鍵點。
我們通過對歐洲的DVB-CI標準的潛心研究,結合自身在嵌入式產品領域和集成電路領域的產品開發經驗,對以ARM7TDMI為核心的SoC技術進行攻關,成功的開發出了性能和集成度在國際上領先的CAM芯片SM1658,同時大幅度降低了CAM的生產成本,消除了大規模推廣機卡分離標準的價格瓶頸。
CAM結構及硬件體系
SM1658是一個典型的用于CAM系統的專用嵌入式微處理器,它集成了一個CAM的全部主要功能模塊,以它為核心構成的CAM結構非常簡單。
SM1658采用了廣泛流行的32位的ARM7TDMI作為CPU核,除了集成一般的SoC芯片具有的存儲器管理、中斷控制器、定時器、看門狗、異步串口通訊、PLL等常用電路模塊外,還在內部集成了256KB的高速SRAM、智能卡接口、PCMCIA(DVB-CI)接口、高速TS流解復用/過濾引擎和DVB通用解擾器等模塊。其基本結構如圖1所示,只需要一片外接的FLASH程序存儲器芯片就可以構成一個高性能CAM卡。
SM1658的存儲器管理模塊可以總共支持4個存儲器段,此存儲器部分可以是內部、外部的SRAM或者外部的FLASH,每個存儲器的數據線寬度、讀寫速度可以由軟件初始化配置。每個存儲器段的最大容量可以支持到4M字節,四個存儲器段最大可以支持到16M字節的容量。其中,在芯片內部實現的存儲器是256KB的高速內部SRAM,它可以無等待周期的速度高速執行系統的核心程序,大大提高芯片關鍵程序的處理能力。
SM1658的中斷控制器可以提供32路的中斷管理。每路中斷可以選擇優先級別、觸發上/下邊沿、脈沖/電平觸發選擇,提供了中斷屏蔽、中斷保留、軟觸發等豐富的中斷管理特性。CI物理接口是PCMCIA標準中的一個子集。可以分為TS流通道和命令通道。我們的CI接口完全符合DVB-CI的接口標準,并且在硬件結構上提供了雙向緩沖、CIS存儲器和靈活的狀態、控制寄存器。
芯片內部還提供3個16位的定時器,每個定時器都帶有可選擇的8位預分頻器。芯片的看門狗是32位的,如果不需要看門狗,可以配置為一個32位的定時器使用。
設計特色
1. 簡潔的高效率本地總線
在SoC設計中,內部及外部總線的選擇是一個非常重要的因素,一個高效、簡潔的總線可以讓芯片的運行效率和可擴充性提高。
在ARM結構體系的SoC芯片設計中,ARM公司一般推薦采用標準的AMBA總線來進行設計。同時,ARM7TDMI核本身還帶有一個簡單的內部總線。在決定采用的總線規范前,我們對SM1658的體系結構和應用特點進行了下面的分析。
AMBA總線的優點之一就是可以支持多個主設備的調用、裁決和數據的流水處理。在SM1658中,只有一個主設備ARM7TDMI,其他模塊電路都處于從設備狀態,由CPU統一進行調度,而且所有的外部從設備都與主設備采用相同的時鐘,可以在單個時鐘內立即響應CPU的訪問。因此,在這個方面采用ARM7本地的總線更有優勢。
如果使用AMBA總線,設計團隊可以使用大量的第三方IP模塊,這些IP模塊都符合AMBA總線的規范要求,并且經過了嚴格的驗證。在SM1658的芯片設計中,我們為了最大程度的降低芯片的成本,同時客觀上也由于重要的模塊電路都沒有合適的IP可以使用,所以我們自己設計了所有的電路模塊。那么,想通過使用IP來節省的開發時間就沒有可行性了。
此外,如果使用AMBA總線,就必須在原有的ARM7TDMI的三級流水線上增加一級流水線,并將ARM7TDMI的雙時鐘邊沿的總線結構轉變為單時鐘邊沿的總線結構,這樣可以簡化芯片后期的設計工作量。但是,這樣對于某些跳轉指令就多損失了一個時鐘周期,降低了CPU的工作效率。此外,使用AMBA總線,CPU和每個模塊都需要增加AMBA總線的接口邏輯,增加了芯片的規模和成本。
圖2:SM1658基本結構。
最后,我們從芯片的最大使用效率和簡化邏輯控制的方面出發,決定采用ARM7TDMI自身的本地總線。使用ARM7的本地總線有幾個優勢:ARM7的本地總線狀態相對簡單,不需要進行相對復雜的AMBA總線協議驗證;對模塊的接口功能要求低,接口電路非常簡單;減少了流水線長度,在一個最高時鐘由IP硬核固定了的SoC芯片中,流水減少就意味著芯片的代碼執行效率的提高。同時,對于ARM7總線上的雙邊沿時鐘問題進行嚴格的約束和驗證,確保了芯片后期設計的正確性。
2. 帶有軟件冗余的內部SRAM
ARM7TDMI是一款沒有內部高速緩存的CPU核,對于慢速的SRAM、FLASH存儲器的只能空閑等待。即使采用了高速的外部SRAM,由于數據接口寬度和芯片與芯片之間的數據傳輸的延遲,也不能有效地用到高速CPU的全部性能;同時,大容量的高速SRAM價格昂貴,將會大大增加CAM系統的成本。從系統結構和成本方面考慮,我們決定在SM1658中嵌入一個256KB容量的SRAM,此SRAM容量可以滿足相當部分CAM系統的應用需求。同時,我們的芯片也支持各種外部高速和低速SRAM,對于一些SRAM需求非常大的系統也可以滿足要求。
SM1658內部實現的SRAM具有非常高的性能,可以以單時鐘周期完成ARM的各種指令的操作,也就是當CPU在內部SRAM中進行取指或存取數據時不需要任何等待。我們在芯片生產出來后用對芯片內部的SRAM進行了CPU性能的基準測試,即使在非常高的頻率下面,芯片也能獲得與ARM7TDMI的IP核的理論計算值相同的水準,后面有測試的數據表格。
內嵌SRAM的最大問題是,對于芯片的成品率會產生影響。我們在電路功能設計、底層軟件設計和應用系統上采取了一些有效的預防措施,大大減少系統對于有缺陷的SRAM的依賴性。這樣,芯片的成品率可以大幅度提高。這樣也就從系統角度降低了芯片的整體成本。
3. 可動態調整的時鐘電路
在SM1658芯片的時鐘設計中,我們還集成了一個可軟件配置的時鐘管理電路,稱之為動態時鐘電路。我們通過軟件對芯片的時鐘處理模塊進行編程,既可以讓芯片的工作時鐘頻率隨著需要不斷變化,降低芯片在輕任務負載下的功耗,又可以適應多種外部時鐘源的輸入,增加CAM系統在產品開發中的適應能力。
4. 高度靈活的智能卡接口
在SM1658的功能中,還包括一個高度靈活的智能卡接口。它是為了保證CA公司可以通過智能卡對用戶收看節目進行授權和管理。
一般來講,國際上大多數智能卡接口都是按照ISO7816標準來實現互連互通的。在很多的SoC芯片設計中,大家都采用了一個外部的智能卡接口芯片,例如TDA8004就是一個比較常用的智能卡接口芯片。但是采用一個外接的芯片,其系統的可靠性會降低而成本會比較高,我們希望設計一個成本和性能最優的系統,通過電路設計完全省略掉此外部接口芯片。
首先,我們在此接口模塊的設計中,按照ISO7816的標準,將全部的狀態和控制方式都完成。比如,針對A類、B類智能卡卡的不同電源電氣指標要求的設計;針對T0通訊協議與其他通訊協議不同的錯誤處理的設計;還有針對某些私有的智能卡的特殊協議要求等。這些都可以通過在芯片的驅動軟件上進行配置,配合少量的簡單外部器件來完成。其次,針對智能卡接口要求的ESD要求和不同使用環境中的差別,我們設計了不同的外部電路來配合芯片的內部控制。同時,我們對芯片的各個接口管腳的邏輯特性進行了不同條件下的獨立配置,可以最大程度地減小對外部電路的要求。
圖3:智能卡模塊系統軟件功能框圖。
在標準的使用情況下,SM1658芯片可以不需要任何外部有源器件就完成智能卡接口的功能,而且抗ESD的能力可以保證大于4,000V。