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