本文介绍了一款基于0.18微米工艺,采用ARM7TDMI IP为设计的用于数字电视条件接收模块(CAM)的高性能SoC芯片—SM1658的硬件体系结构,以及芯片结构上的一些特点和实现方法,同时也简单介绍了在此芯片上完成的底层软件开发平台。在SM1658芯片及其配套的软件开发平台的基础上,用户可以十分方便的完成符合欧洲DVB-CI标准的数字电视条件接收模块(CAM)的设计和CA系统的移植。
数字电视从电视节目录制、播出到发射、接收全部采用数字编码与数字传输技术。由于数字电视广播具有频道利用率高,可适应各种数据传输、适应各类图像质量、可交互操作等方面的优势,被各国视为新世纪的战略技术。伴随着电视广播的全面数字化,传统的电视媒体将在技术、功能上逐步与信息、通信领域的其它手段相互融合,从而形成全新的、庞大的数字电视产业。
数字电视的条件接收系统(CAS)是用于对数字电视用户进行节目授权和管理的部分,是数字电视广播中的重要组成部分之一。而其中采用开放的机卡分离结构又是条件接收系统的未来重要发展趋势。机卡分离是通过在用户接收终端上定义了一个通用物理接口以及相关的接口通讯协议,将通用的适宜于大规模生产的电视接收系统与私有的CAS管理系统分离开来。目前,机卡分离模式在国际上通行的实现方法是:采用一种与便携电脑上的PCMCIA插口类似的物理接口来实现。欧洲的DVB组织发布的标准称之为DVB-CI,美国也有一个类似的标准称之为POD。事实上新的PCMCIA标准文档中已经将此两种接口的定义包含进去了。而这其中装载条件接收处理内容的PCMCIA卡简称为数字电视条件接收卡,可以简称为CAM(条件接收模块)。
事实上,建立了机卡分离标准,在电视机上开启了一个标准插口之后,其意义并不仅仅在于解决了公共收视与私有管理的难题,其巨大的意义还将体现在从此作为家用消费品的数字电视机有了升级性能和扩充功能的途径。就像PC机目前的发展规模,与PC机的ISA、PCI、APG等接口的标准化有着不可分割的关系。我们难以想象,如果计算机没有标准化的可扩充接口,其行业还能否取得这么大的成功。在数字电视领域中,机卡分离接口标准的制订以及数字电视机上的标准接口的开启,将会把数字电视引入到一个多姿多彩的发展领域中去。比如:对于不同的节目信号传送方式(无线广播、有线电缆、卫星、数字音频广播),可以通过在CI接口(机卡分离通用接口)上插入不同形式的接收模块就可以了;对于我们在数码相机存储卡上保存的照片,可以通过一个通用存储卡读写器模块在电视机上浏览;通过宽带IP接收模块,可以在电视机上欣赏网上的各类流节目以及进行网络的双向传输;可以通过网关模块,将电视机与其他电器设备连接成一个家庭数字网络系统;通过带硬盘录象模块,用户可以录制有许可的节目等等。将来其发展的趋势和潜力更难以预计。
:机卡分离结构示意图。 |
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通用解扰器等模块。其基本结构如所示,只需要一片外接的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总线的接口逻辑,增加了芯片的规模和成本。
: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要求和不同使用环境中的差别,我们设计了不同的外部电路来配合芯片的内部控制。同时,我们对芯片的各个接口管脚的逻辑特性进行了不同条件下的独立配置,可以地减小对外部电路的要求。
:智能卡模块系统软件功能框图。 |
在标准的使用情况下,SM1658芯片可以不需要任何外部有源器件就完成智能卡接口的功能,而且抗ESD的能力可以保证大于4,000V。
5. 内嵌高速DVB通用解扰算法
通用加扰算法是DVB标准组织推荐的对于TS流的标准加扰算法。目前,在欧洲的数字广播节目中普遍采用了这个算法。我国目前商业化的CA中,TS节目的加扰也基本上是采用的这个算法。因此,我们向DVB组织申请了此算法的授权,并以固核的模式嵌入到了我们的SM1658芯片中。
在此固核的设计中充分考虑到了芯片对将来可能出现的多路高清节目的适应能力,将此解扰模块的处理能力设计到了175Mbps,可以满足同时处理2路高清节目流或4路标清节目流的水平。
6.高性能的TS流处理引擎
在SM1658中,我们还设计了一套TS流处理引擎,用来对CI接口传送过来的TS流进行整形、过滤、提取特定数据、回送解扰后的节目流等。在此引擎中,我们设计了64个PID过滤器和16个SECTION过滤器,根据不同的配置状态,此引擎可以完成对TS流7种不同的路由功能。
SM1658性能指标
1. 工作时钟频率
SM1658芯片采用了中芯国际的0.18um的标准逻辑CMOS工艺生产。在SM1658的芯片设计中,我们采用了ARTISAN的0.18um工艺库和MC编译器,采用了SYNOPSYS的DC综合工具进行综合,并采用的CADENCE的后端设计工具ENCOUNTER进行布局布线和SI分析,通过对芯片内部总线、存储器和关键路径模块进行优化,使芯片的时序基本上达到了ARM7TDMI IP核手册上测试的标准性能。
我们完成流片后对芯片进行了时钟频率的测试。常温下以1.8V的电压和3.3V的IO口电压条件,SM1658可以工作在125MHz~135MHz的频率下,这可能是已经商用化的ARM7TDMI类芯片的工作频率了。
由于我们对芯片的总线、内部存储器进行了优化,为了证实此优化效果。我们对于芯片的运算能力进行了基准测试。我们的测试程序使用的是ARM公司提供的参考测试程序Dhrystone2.1(C语言编写),以性能的方式进行编译。该测试程序在芯片的内部SRAM中运行。下表是我们的测试结果以及与软件仿真测试结果的比较。可以看到,我们的芯片在性能时的执行效率已经基本达到了ARM7TDMI的的指标,这也说明,我们的设计是非常优化的。
表1:SM1658的运算能力基准测试结果。 |
2. 电流消耗
由于芯片内部嵌入了一个大容量的SRAM和高速PLL,芯片在工作中的主要电流消耗将由其产生。在设计中也充分考虑到了其电源消耗的状态,将SRAM的分解成多个独立的部分,保证同时只有一个部分的SRAM在工作。通过电路管理和优化,芯片全速运行程序时的平均电源消耗如下表:
软件体系简单介绍
对于任何一个SoC芯片,其软件的设计、开发和应用体系是其商用化不可缺少的重要部分。我们从一开始设计SM1658芯片的同时,就在项目内组织了一个软件开发团队对SM1658的软件进行开发。在芯片的设计过程中,软件组同步进行设计,在芯片完成设计流片出来后,我们的软件底层、应用开发平台和部分应用软件就已经基本完成了。
这里简单介绍一下SM1658的软件体系结构。SM1658的软件体系可以分为两个大的部分:API库(应用程序接口)和应用程序。API类似WINDOWS下的API库,它完成了与芯片硬件相关的所有驱动和上层软件开发需要的一些基本和专用的函数库(包括OS系统的基本功能函数),用户在API库的基础上可以比较方便地建立起用户应用程序。
API库又可以分为底层硬件驱动函数库、基本应用服务函数库和应用服务函数库。SM1658的底层驱动程序包括基本设备如定时器、看门狗、存储器管理、中断管理、串口等设备的驱动之外,还包括专用的智能卡接口、机卡分离CI接口、TS流处理引擎驱动等特定设备的物理驱动。底层驱动的功能是完成设备的初始化配置、工作状态的变换、基本数据包的发送接收校验、与其他设备的握手、错误状态的处理等与硬件密切相关的基本处理工作。
基本应用服务包括TS流处理状态的管理、CI命令通道数据的管理、智能卡的底层协议实现等功能,包括OS系统的底层管理功能。它提供了一些比较底层的函数,用户可以通过这些函数的调用,比较深入仔细地控制芯片的一些工作状态。也可以针对应用中的一些特殊情况,优化某些应用任务的性能。
应用服务实现具体的各个设备的资源管理、用户显示界面MMI管理、CAT和EMM数据的管理、智能卡的应用接口以及OS系统的高层管理功能。它提供了一些比较上层或抽象的函数调用。用户通过对这些函数的调用,可以比较简单地完成一些任务和功能,让用户专注于建立应用体系的内容。
在本软件体系的API库中还比较完整地实现了两套通讯协议接口,它们分别是DVB-CI协议和智能卡的7816协议。用户直接使用这些协议的上层函数,可以大大简化在进行CAM卡应用设计时的软件开发工作量。
在操作系统方面,我们采用了非常灵活的ECOS作为此嵌入系统的操作系统。ECOS系统功能强大,但是又有非常方便的可订制的配置模式,特别适合本系统及将来扩充模式的需要。由于当前的CAM既不需要文件管理,又没有GUI界面,所以在ECOS针对此芯片进行配置后,其OS代码只有50KB左右。
本文结论
作为数字电视传播环节中一个部分,CAM还有一个重要的特色是内容保护和拷贝管理(CPCM)功能。由于机卡分离导致的透明节目流在接口上面出现,不利于节目产品的版权保护,所以,必须要在机顶盒与CAM之间加入一种防拷贝机制。在美国,POD标准的内容中早已经有了CP方面的内容;而在欧洲,有关CPCM的内容也已经在2005年的第四季度公布了;目前在国内,有关CP保护的标准也在制订中。一旦国家的CP标准宣布,我们就可以在SM1658的基础上加入符合标准的CPCM结构,完成一个真正的CAM需要的全部基本功能。
参考文献:
1、ARM7TDMI(Rev4) Technical Reference Manual
2、ISO/IEC 7816 Specification
3、PCI datasheet https://www.dzsc.com/datasheet/PCI_1201469.html.
4、 ARM7TDMI datasheet https://www.dzsc.com/datasheet/ARM7TDMI_139812.html.
5、 TDA8004 datasheet https://www.dzsc.com/datasheet/TDA8004_1561463.html.
作者:谢文刚
技术总监
深圳市国微技术有限公司
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。