數(shù)字電視的條件接收系統(tǒng)(CAS)是用于對數(shù)字電視用戶進(jìn)行節(jié)目授權(quán)和管理的部分,,是數(shù)字電視廣播中的重要組成部分之一,。而其中采用開放的機(jī)卡分離結(jié)構(gòu)又是條件接收系統(tǒng)的未來重要發(fā)展趨勢。機(jī)卡分離是通過在用戶接收終端上定義了一個通用物理接口以及相關(guān)的接口通訊協(xié)議,,將通用的適宜于大規(guī)模生產(chǎn)的電視接收系統(tǒng)與私有的CAS管理系統(tǒng)分離開來,。目前,機(jī)卡分離模式在國際上通行的實現(xiàn)方法是:采用一種與便攜電腦上的PCMCIA插口類似的物理接口來實現(xiàn),。歐洲的DVB組織發(fā)布的標(biāo)準(zhǔn)稱之為DVB-CI,,美國也有一個類似的標(biāo)準(zhǔn)稱之為POD。事實上新的PCMCIA標(biāo)準(zhǔn)文檔中已經(jīng)將此兩種接口的定義包含進(jìn)去了,。而這其中裝載條件接收處理內(nèi)容的PCMCIA卡簡稱為數(shù)字電視條件接收卡,,可以簡稱為CAM(條件接收模塊)。
事實上,,建立了機(jī)卡分離標(biāo)準(zhǔn),,在電視機(jī)上開啟了一個標(biāo)準(zhǔn)插口之后,其意義并不僅僅在于解決了公共收視與私有管理的難題,,其巨大的意義還將體現(xiàn)在從此作為家用消費品的數(shù)字電視機(jī)有了升級性能和擴(kuò)充功能的途徑,。就像PC機(jī)目前的發(fā)展規(guī)模,與PC機(jī)的ISA,、PCI,、APG等接口的標(biāo)準(zhǔn)化有著不可分割的關(guān)系。我們難以想象,,如果計算機(jī)沒有標(biāo)準(zhǔn)化的可擴(kuò)充接口,,其行業(yè)還能否取得這么大的成功。在數(shù)字電視領(lǐng)域中,,機(jī)卡分離接口標(biāo)準(zhǔn)的制訂以及數(shù)字電視機(jī)上的標(biāo)準(zhǔn)接口的開啟,將會把數(shù)字電視引入到一個多姿多彩的發(fā)展領(lǐng)域中去,。比如:對于不同的節(jié)目信號傳送方式(無線廣播,、有線電纜,、衛(wèi)星、數(shù)字音頻廣播),,可以通過在CI接口(機(jī)卡分離通用接口)上插入不同形式的接收模塊就可以了;對于我們在數(shù)碼相機(jī)存儲卡上保存的照片,,可以通過一個通用存儲卡讀寫器模塊在電視機(jī)上瀏覽;通過寬帶IP接收模塊,可以在電視機(jī)上欣賞網(wǎng)上的各類流節(jié)目以及進(jìn)行網(wǎng)絡(luò)的雙向傳輸;可以通過網(wǎng)關(guān)模塊,,將電視機(jī)與其他電器設(shè)備連接成一個家庭數(shù)字網(wǎng)絡(luò)系統(tǒng);通過帶硬盤錄象模塊,,用戶可以錄制有許可認(rèn)證的節(jié)目等等。將來其發(fā)展的趨勢和潛力更難以預(yù)計,。
圖1:機(jī)卡分離結(jié)構(gòu)示意圖,。
CAM的結(jié)構(gòu)一般可以是以一個高性能的32位SoC芯片為核心,配合智能卡接口,、CI接口,、專用的TS傳輸流處理引擎、DVB通用解擾等部分組成,。CAM卡的體積空間非常有限,,卻要實現(xiàn)一個能處理高清電視節(jié)目流的高速32位嵌入式系統(tǒng),所以其核心的SoC芯片的規(guī)模和性能就成了關(guān)鍵點,。
我們通過對歐洲的DVB-CI標(biāo)準(zhǔn)的潛心研究,,結(jié)合自身在嵌入式產(chǎn)品領(lǐng)域和集成電路領(lǐng)域的產(chǎn)品開發(fā)經(jīng)驗,對以ARM7TDMI為核心的SoC技術(shù)進(jìn)行攻關(guān),,成功的開發(fā)出了性能和集成度在國際上領(lǐng)先的CAM芯片SM1658,,同時大幅度降低了CAM的生產(chǎn)成本,消除了大規(guī)模推廣機(jī)卡分離標(biāo)準(zhǔn)的價格瓶頸,。
CAM結(jié)構(gòu)及硬件體系
SM1658是一個典型的用于CAM系統(tǒng)的專用嵌入式微處理器,,它集成了一個CAM的全部主要功能模塊,以它為核心構(gòu)成的CAM結(jié)構(gòu)非常簡單,。
SM1658采用了廣泛流行的32位的ARM7TDMI作為CPU核,,除了集成一般的SoC芯片具有的存儲器管理、中斷控制器,、定時器,、看門狗、異步串口通訊,、PLL等常用電路模塊外,,還在內(nèi)部集成了256KB的高速SRAM、智能卡接口,、PCMCIA(DVB-CI)接口,、高速TS流解復(fù)用/過濾引擎和DVB通用解擾器等模塊。其基本結(jié)構(gòu)如圖1所示,,只需要一片外接的FLASH程序存儲器芯片就可以構(gòu)成一個高性能CAM卡,。
SM1658的存儲器管理模塊可以總共支持4個存儲器段,,此存儲器部分可以是內(nèi)部、外部的SRAM或者外部的FLASH,,每個存儲器的數(shù)據(jù)線寬度,、讀寫速度可以由軟件初始化配置。每個存儲器段的最大容量可以支持到4M字節(jié),,四個存儲器段最大可以支持到16M字節(jié)的容量,。其中,在芯片內(nèi)部實現(xiàn)的存儲器是256KB的高速內(nèi)部SRAM,,它可以無等待周期的速度高速執(zhí)行系統(tǒng)的核心程序,,大大提高芯片關(guān)鍵程序的處理能力。
SM1658的中斷控制器可以提供32路的中斷管理,。每路中斷可以選擇優(yōu)先級別,、觸發(fā)上/下邊沿、脈沖/電平觸發(fā)選擇,,提供了中斷屏蔽,、中斷保留、軟觸發(fā)等豐富的中斷管理特性,。CI物理接口是PCMCIA標(biāo)準(zhǔn)中的一個子集,。可以分為TS流通道和命令通道,。我們的CI接口完全符合DVB-CI的接口標(biāo)準(zhǔn),,并且在硬件結(jié)構(gòu)上提供了雙向緩沖、CIS存儲器和靈活的狀態(tài),、控制寄存器,。
芯片內(nèi)部還提供3個16位的定時器,每個定時器都帶有可選擇的8位預(yù)分頻器,。芯片的看門狗是32位的,,如果不需要看門狗,可以配置為一個32位的定時器使用,。
設(shè)計特色
1. 簡潔的高效率本地總線
在SoC設(shè)計中,,內(nèi)部及外部總線的選擇是一個非常重要的因素,一個高效,、簡潔的總線可以讓芯片的運行效率和可擴(kuò)充性提高,。
在ARM結(jié)構(gòu)體系的SoC芯片設(shè)計中,ARM公司一般推薦采用標(biāo)準(zhǔn)的AMBA總線來進(jìn)行設(shè)計,。同時,,ARM7TDMI核本身還帶有一個簡單的內(nèi)部總線。在決定采用的總線規(guī)范前,我們對SM1658的體系結(jié)構(gòu)和應(yīng)用特點進(jìn)行了下面的分析,。
AMBA總線的優(yōu)點之一就是可以支持多個主設(shè)備的調(diào)用,、裁決和數(shù)據(jù)的流水處理。在SM1658中,,只有一個主設(shè)備ARM7TDMI,其他模塊電路都處于從設(shè)備狀態(tài),,由CPU統(tǒng)一進(jìn)行調(diào)度,,而且所有的外部從設(shè)備都與主設(shè)備采用相同的時鐘,可以在單個時鐘內(nèi)立即響應(yīng)CPU的訪問,。因此,,在這個方面采用ARM7本地的總線更有優(yōu)勢。
如果使用AMBA總線,,設(shè)計團(tuán)隊可以使用大量的第三方IP模塊,,這些IP模塊都符合AMBA總線的規(guī)范要求,并且經(jīng)過了嚴(yán)格的驗證,。在SM1658的芯片設(shè)計中,,我們?yōu)榱俗畲蟪潭鹊慕档托酒某杀荆瑫r客觀上也由于重要的模塊電路都沒有合適的IP可以使用,,所以我們自己設(shè)計了所有的電路模塊,。那么,想通過使用IP來節(jié)省的開發(fā)時間就沒有可行性了,。
此外,,如果使用AMBA總線,就必須在原有的ARM7TDMI的三級流水線上增加一級流水線,,并將ARM7TDMI的雙時鐘邊沿的總線結(jié)構(gòu)轉(zhuǎn)變?yōu)閱螘r鐘邊沿的總線結(jié)構(gòu),,這樣可以簡化芯片后期的設(shè)計工作量。但是,,這樣對于某些跳轉(zhuǎn)指令就多損失了一個時鐘周期,,降低了CPU的工作效率。此外,,使用AMBA總線,,CPU和每個模塊都需要增加AMBA總線的接口邏輯,增加了芯片的規(guī)模和成本,。
圖2:SM1658基本結(jié)構(gòu),。
最后,我們從芯片的最大使用效率和簡化邏輯控制的方面出發(fā),,決定采用ARM7TDMI自身的本地總線,。使用ARM7的本地總線有幾個優(yōu)勢:ARM7的本地總線狀態(tài)相對簡單,不需要進(jìn)行相對復(fù)雜的AMBA總線協(xié)議驗證;對模塊的接口功能要求低,,接口電路非常簡單;減少了流水線長度,,在一個最高時鐘由IP硬核固定了的SoC芯片中,,流水減少就意味著芯片的代碼執(zhí)行效率的提高。同時,,對于ARM7總線上的雙邊沿時鐘問題進(jìn)行嚴(yán)格的約束和驗證,,確保了芯片后期設(shè)計的正確性。
2. 帶有軟件冗余的內(nèi)部SRAM
ARM7TDMI是一款沒有內(nèi)部高速緩存的CPU核,,對于慢速的SRAM,、FLASH存儲器的只能空閑等待。即使采用了高速的外部SRAM,,由于數(shù)據(jù)接口寬度和芯片與芯片之間的數(shù)據(jù)傳輸?shù)难舆t,,也不能有效地用到高速CPU的全部性能;同時,大容量的高速SRAM價格昂貴,,將會大大增加CAM系統(tǒng)的成本,。從系統(tǒng)結(jié)構(gòu)和成本方面考慮,我們決定在SM1658中嵌入一個256KB容量的SRAM,,此SRAM容量可以滿足相當(dāng)部分CAM系統(tǒng)的應(yīng)用需求,。同時,我們的芯片也支持各種外部高速和低速SRAM,,對于一些SRAM需求非常大的系統(tǒng)也可以滿足要求,。
SM1658內(nèi)部實現(xiàn)的SRAM具有非常高的性能,可以以單時鐘周期完成ARM的各種指令的操作,,也就是當(dāng)CPU在內(nèi)部SRAM中進(jìn)行取指或存取數(shù)據(jù)時不需要任何等待,。我們在芯片生產(chǎn)出來后用對芯片內(nèi)部的SRAM進(jìn)行了CPU性能的基準(zhǔn)測試,即使在非常高的頻率下面,,芯片也能獲得與ARM7TDMI的IP核的理論計算值相同的水準(zhǔn),,后面有測試的數(shù)據(jù)表格。
內(nèi)嵌SRAM的最大問題是,,對于芯片的成品率會產(chǎn)生影響,。我們在電路功能設(shè)計、底層軟件設(shè)計和應(yīng)用系統(tǒng)上采取了一些有效的預(yù)防措施,,大大減少系統(tǒng)對于有缺陷的SRAM的依賴性,。這樣,芯片的成品率可以大幅度提高,。這樣也就從系統(tǒng)角度降低了芯片的整體成本,。
3. 可動態(tài)調(diào)整的時鐘電路
在SM1658芯片的時鐘設(shè)計中,我們還集成了一個可軟件配置的時鐘管理電路,,稱之為動態(tài)時鐘電路,。我們通過軟件對芯片的時鐘處理模塊進(jìn)行編程,既可以讓芯片的工作時鐘頻率隨著需要不斷變化,降低芯片在輕任務(wù)負(fù)載下的功耗,,又可以適應(yīng)多種外部時鐘源的輸入,,增加CAM系統(tǒng)在產(chǎn)品開發(fā)中的適應(yīng)能力。
4. 高度靈活的智能卡接口
在SM1658的功能中,,還包括一個高度靈活的智能卡接口,。它是為了保證CA公司可以通過智能卡對用戶收看節(jié)目進(jìn)行授權(quán)和管理。
一般來講,,國際上大多數(shù)智能卡接口都是按照ISO7816標(biāo)準(zhǔn)來實現(xiàn)互連互通的,。在很多的SoC芯片設(shè)計中,大家都采用了一個外部的智能卡接口芯片,,例如TDA8004就是一個比較常用的智能卡接口芯片。但是采用一個外接的芯片,,其系統(tǒng)的可靠性會降低而成本會比較高,,我們希望設(shè)計一個成本和性能最優(yōu)的系統(tǒng),通過電路設(shè)計完全省略掉此外部接口芯片,。
首先,,我們在此接口模塊的設(shè)計中,按照ISO7816的標(biāo)準(zhǔn),,將全部的狀態(tài)和控制方式都完成,。比如,針對A類,、B類智能卡卡的不同電源電氣指標(biāo)要求的設(shè)計;針對T0通訊協(xié)議與其他通訊協(xié)議不同的錯誤處理的設(shè)計;還有針對某些私有的智能卡的特殊協(xié)議要求等,。這些都可以通過在芯片的驅(qū)動軟件上進(jìn)行配置,配合少量的簡單外部器件來完成,。其次,,針對智能卡接口要求的ESD要求和不同使用環(huán)境中的差別,我們設(shè)計了不同的外部電路來配合芯片的內(nèi)部控制,。同時,,我們對芯片的各個接口管腳的邏輯特性進(jìn)行了不同條件下的獨立配置,可以最大程度地減小對外部電路的要求,。
圖3:智能卡模塊系統(tǒng)軟件功能框圖,。
在標(biāo)準(zhǔn)的使用情況下,SM1658芯片可以不需要任何外部有源器件就完成智能卡接口的功能,,而且抗ESD的能力可以保證大于4,000V,。
5. 內(nèi)嵌高速DVB通用解擾算法
通用加擾算法是DVB標(biāo)準(zhǔn)組織推薦的對于TS流的標(biāo)準(zhǔn)加擾算法。目前,,在歐洲的數(shù)字廣播節(jié)目中普遍采用了這個算法,。我國目前商業(yè)化的CA中,TS節(jié)目的加擾也基本上是采用的這個算法。因此,,我們向DVB組織申請了此算法的授權(quán),,并以固核的模式嵌入到了我們的SM1658芯片中。
在此固核的設(shè)計中充分考慮到了芯片對將來可能出現(xiàn)的多路高清節(jié)目的適應(yīng)能力,,將此解擾模塊的處理能力設(shè)計到了175Mbps,,可以滿足同時處理2路高清節(jié)目流或4路標(biāo)清節(jié)目流的水平。
6.高性能的TS流處理引擎
在SM1658中,,我們還設(shè)計了一套TS流處理引擎,,用來對CI接口傳送過來的TS流進(jìn)行整形、過濾,、提取特定數(shù)據(jù),、回送解擾后的節(jié)目流等。在此引擎中,,我們設(shè)計了64個PID過濾器和16個SECTION過濾器,,根據(jù)不同的配置狀態(tài),此引擎可以完成對TS流7種不同的路由功能,。
SM1658性能指標(biāo)
1. 最高工作時鐘頻率
SM1658芯片采用了中芯國際的0.18um的標(biāo)準(zhǔn)邏輯CMOS工藝生產(chǎn),。在SM1658的芯片設(shè)計中,我們采用了ARTISAN的0.18um工藝庫和MC編譯器,,采用了SYNOPSYS的DC綜合工具進(jìn)行綜合,,并采用最新的CADENCE的后端設(shè)計工具ENCOUNTER進(jìn)行布局布線和SI分析,通過對芯片內(nèi)部總線,、存儲器和關(guān)鍵路徑模塊進(jìn)行優(yōu)化,,使芯片的時序基本上達(dá)到了ARM7TDMI IP核手冊上測試的標(biāo)準(zhǔn)性能。
我們完成流片后對芯片進(jìn)行了最高時鐘頻率的測試,。常溫下以1.8V的核心電壓和3.3V的IO口電壓條件,,SM1658可以工作在125MHz~135MHz的頻率下,這可能是已經(jīng)商用化的ARM7TDMI類芯片的最高工作頻率了,。
由于我們對芯片的總線,、內(nèi)部存儲器進(jìn)行了優(yōu)化,為了證實此優(yōu)化效果,。我們對于芯片的最高運算能力進(jìn)行了基準(zhǔn)測試,。我們的測試程序使用的是ARM公司提供的參考測試程序Dhrystone2.1(C語言編寫),以性能最優(yōu)的方式進(jìn)行編譯,。該測試程序在芯片的內(nèi)部SRAM中運行,。下表是我們的測試結(jié)果以及與軟件仿真測試結(jié)果的比較??梢钥吹?,我們的芯片在最高性能時的執(zhí)行效率已經(jīng)基本達(dá)到了ARM7TDMI的最好的指標(biāo),,這也說明,我們的設(shè)計是非常優(yōu)化的,。
表1:SM1658的最高運算能力基準(zhǔn)測試結(jié)果,。
2. 電流消耗
由于芯片內(nèi)部嵌入了一個大容量的SRAM和高速PLL,芯片在工作中的主要電流消耗將由其產(chǎn)生,。在設(shè)計中也充分考慮到了其電源消耗的狀態(tài),,將SRAM的分解成多個獨立的部分,保證同時只有一個部分的SRAM在工作,。通過電路管理和優(yōu)化,,芯片全速運行程序時的平均電源消耗如下表:
軟件體系簡單介紹
對于任何一個SoC芯片,其軟件的設(shè)計,、開發(fā)和應(yīng)用體系是其商用化不可缺少的重要部分,。我們從一開始設(shè)計SM1658芯片的同時,就在項目內(nèi)組織了一個軟件開發(fā)團(tuán)隊對SM1658的軟件進(jìn)行開發(fā),。在芯片的設(shè)計過程中,,軟件組同步進(jìn)行設(shè)計,在芯片完成設(shè)計流片出來后,,我們的軟件底層、應(yīng)用開發(fā)平臺和部分應(yīng)用軟件就已經(jīng)基本完成了,。
這里簡單介紹一下SM1658的軟件體系結(jié)構(gòu),。SM1658的軟件體系可以分為兩個大的部分:API庫(應(yīng)用程序接口)和應(yīng)用程序。API類似WINDOWS下的API庫,,它完成了與芯片硬件相關(guān)的所有驅(qū)動和上層軟件開發(fā)需要的一些基本和專用的函數(shù)庫(包括OS系統(tǒng)的基本功能函數(shù)),,用戶在API庫的基礎(chǔ)上可以比較方便地建立起用戶應(yīng)用程序。
API庫又可以分為底層硬件驅(qū)動函數(shù)庫,、基本應(yīng)用服務(wù)函數(shù)庫和高級應(yīng)用服務(wù)函數(shù)庫,。SM1658的底層驅(qū)動程序包括基本設(shè)備如定時器、看門狗,、存儲器管理,、中斷管理、串口等設(shè)備的驅(qū)動之外,,還包括專用的智能卡接口,、機(jī)卡分離CI接口、TS流處理引擎驅(qū)動等特定設(shè)備的物理驅(qū)動,。底層驅(qū)動的功能是完成設(shè)備的初始化配置,、工作狀態(tài)的變換、基本數(shù)據(jù)包的發(fā)送接收校驗,、與其他設(shè)備的握手,、錯誤狀態(tài)的處理等與硬件密切相關(guān)的基本處理工作,。
基本應(yīng)用服務(wù)包括TS流處理狀態(tài)的管理、CI命令通道數(shù)據(jù)的管理,、智能卡的底層協(xié)議實現(xiàn)等功能,,包括OS系統(tǒng)的底層管理功能。它提供了一些比較底層的函數(shù),,用戶可以通過這些函數(shù)的調(diào)用,,比較深入仔細(xì)地控制芯片的一些工作狀態(tài)。也可以針對應(yīng)用中的一些特殊情況,,優(yōu)化某些應(yīng)用任務(wù)的性能,。
高級應(yīng)用服務(wù)實現(xiàn)具體的各個設(shè)備的資源管理、用戶顯示界面MMI管理,、CAT和EMM數(shù)據(jù)的管理,、智能卡的應(yīng)用接口以及OS系統(tǒng)的高層管理功能。它提供了一些比較上層或抽象的函數(shù)調(diào)用,。用戶通過對這些函數(shù)的調(diào)用,,可以比較簡單地完成一些任務(wù)和功能,讓用戶專注于建立應(yīng)用體系的內(nèi)容,。
在本軟件體系的API庫中還比較完整地實現(xiàn)了兩套通訊協(xié)議接口,,它們分別是DVB-CI協(xié)議和智能卡的7816協(xié)議。用戶直接使用這些協(xié)議的上層函數(shù),,可以大大簡化在進(jìn)行CAM卡應(yīng)用設(shè)計時的軟件開發(fā)工作量,。
在操作系統(tǒng)方面,我們采用了非常靈活的ECOS作為此嵌入系統(tǒng)的操作系統(tǒng),。ECOS系統(tǒng)功能強(qiáng)大,,但是又有非常方便的可訂制的配置模式,特別適合本系統(tǒng)及將來擴(kuò)充模式的需要,。由于當(dāng)前的CAM既不需要文件管理,,又沒有GUI界面,所以在ECOS針對此芯片進(jìn)行配置后,,其OS核心代碼只有50KB左右,。
本文結(jié)論
作為數(shù)字電視傳播環(huán)節(jié)中一個部分,CAM還有一個重要的特色是內(nèi)容保護(hù)和拷貝管理(CPCM)功能,。由于機(jī)卡分離導(dǎo)致的透明節(jié)目流在接口上面出現(xiàn),,不利于節(jié)目產(chǎn)品的版權(quán)保護(hù),所以,,必須要在機(jī)頂盒與CAM之間加入一種防拷貝機(jī)制,。