实现智能卡动态插拔响应的方法及终端的制作方法_2

文档序号:8266829阅读:来源:国知局
的释放接口函数。在退出某个条件接收系统时,终端可以利用该释放接口函数释放条件接收系统所占用的终端资源,以提高终端资源利用率。
[0020]需要进一步说明的是,在终端中预置多种条件接收系统的步骤是在终端出厂前或出厂使用过程中对终端进行升级维护时所执行的一次性操作,而终端开机、初始化条件接收系统是用户使用终端过程中经常执行的步骤,该实施例为对整个流程进行完整说明,将其放在一个步骤中来描述。
[0021]步骤103:判断终端中当前插入的智能卡的类型。
[0022]终端中虽然内置有多种条件接收系统,但每次只能使用一种智能卡、应用一种条件接收系统,所以,需要判断终端中当前插入的智能卡的类型,以便运行与智能卡相对应的条件接收系统。
[0023]对智能卡类型的判断,可以通过卡复位来实现。具体实现过程简述如下:对智能卡执行复位操作,将产生ATR复位响应消息,通过消息回调,获取ATR中的历史数据、通信协议及ATR长度等数据,根据这些数据就可以判断出智能卡属于哪种条件接收系统及智能卡所采用的传输协议,也即获得了智能卡的类型。
[0024]步骤104:运行与当前插入的智能卡的类型相对应的条件接收系统。
[0025]由于终端中的所有条件接收系统在终端开机时均进行了初始化,因此,在判断出当前插入的智能卡类型之后,可以直接选取与当前智能卡相对应的条件接收系统并运行,从而实现条件接收。
[0026]以机顶盒作为终端为例,实现条件接收的过程简述如下:
调用解复用接口函数对前端发送的TS流进行过滤,获得相应的授权控制信息(ECM)和授权管理信息(EMM)。具体来说,机顶盒根据PMT和CAT表的CA描述,获得EMM和ECM的PID值,然后根据PID值从TS流中过滤出ECM和EMM。对于存在多个slot的ECM及EMM数据来说,为避免数据丢失,在后台提取完一个slot的数据后,先配置缓存队列对提取的ECM和EMM数据进行缓存。
[0027]在ECM和EMM数据获取完毕后,通过通用接口函数将缓存中完整的ECM和EMM数据传输至条件接收系统对应的智能卡进行解密处理。
[0028]智能卡的解密处理过程为:智能卡读取其内存储的用户个人分配密钥roK,用TOK对EMM解密,取出业务密钥SK ;然后,再用SK对ECM解密,解出加扰控制字CW。同时,解密过程还可以获得EMM所包含的地址、用户授权信息,如用户可以看的节目或时间段,用户付的收视费等信息,以实现相关授权管理。
[0029]然后,将解密处理后的加扰控制字通过通用接口函数提供给解扰器,对加密的音视频流进行解扰。而将解密处理后的其他授权控制信息数据及授权管理信息数据,例如节目来源、时间、内容分类和节目价格等节目信息数据,邮件、指纹等数据转换为通用数据结构,提供给机顶盒应用程序。这里,其他授权控制信息数据是指ECM解密后除加扰控制字之外的其他信息数据,这些数据包含有节目来源、时间、内容分类及节目价格等节目信息数据,需要提供给机顶盒应用程序使用。而在授权管理信息数据EMM中,不仅包含有邮件、指纹等管理信息数据,还可能会包含IPPV、IPPT等点播节目的节目来源、时间、内容分类等节目信息数据,这些数据也需要提供给机顶盒应用程序使用。
[0030]步骤105:若检测到终端中插入的智能卡的类型发生变化,则运行与变化后的智能卡的类型对应的条件接收系统。
[0031]为保证在智能卡拔出而重新插入后也能够实现正常的条件接收,要求实时对终端中的智能卡类型进行检测和判断。例如,可以预先设定一个时间,每间隔该时间判断一次。或者,还可以采用其他的判断方式,具体可参考后面实施例的描述。当检测到智能卡类型发生变化,则从终端预置的、在终端开机后执行完初始化的条件接收系统中选取与变化后的智能卡的类型对应的条件接收系统并运行。
[0032]步骤106:流程结束。
[0033]此后,重复执行步骤103至步骤105的过程,直至终端关机。在该过程中,初始化预置的全部条件接收系统的过程也仅是在终端开机时执行一次。如果终端关机后重启,再重新执行步骤102及步骤105的过程。
[0034]在该实施例中,终端开机后先将所有内直的条件接收系统初始化,即使智能卡在终端开机工作过程中被拔出而再次插入甚至被更换,均能判断出再次插入的智能卡的类型、并运行初始化后的相对应的条件接收系统,而无需终端重新开机启动和初始化,从而实现了智能卡在终端不关机情况下的动态插拔响应,提高了终端响应智能卡的速度和使用智能卡的便利性。请参阅图2,该图示出了本发明实现智能卡动态插拔响应的方法第二个实施例的流程图。
[0035]如图2所示,该第二个实施例实现智能卡动态插拔响应的过程如下:
步骤201:流程开始。
[0036]步骤202:终端开机,初始化终端中预置的全部条件接收系统。
[0037]该步骤的具体实现方法可以参考图1实施例中的步骤102的描述。
[0038]步骤203:判断终端中当前插入的智能卡的类型。
[0039]该步骤的具体实现方法可以参考图1实施例中的步骤103的描述。
[0040]步骤204:选择与当前插入的智能卡的类型相对应的条件接收系统为当前条件接收系统。
[0041]步骤205:判断当前条件接收系统是否为暂停状态。若是,执行步骤206 ;否则,转至步骤207。
[0042]由于在终端开机后全部条件接收系统均执行了初始化操作,而在同一时间至多有一个条件接收系统处于运行状态,处于非运行状态的条件接收系统初始化后也会占用终端CPU、内存等资源。为减少资源占用,该实施例对初始化后的条件接收系统设置暂停状态和正常状态两种不同的状态,状态可通过设置的状态变量的值来表征。其中,正常状态是指条件接收系统的所有线程均处于运行状态,暂停状态是指条件接收系统的内核主线程暂停的一种状态。在终端开机初始化后,各条件接收系统处于默认的状态,如默认状态为正常状态。在该步骤中,读取当前条件接收系统的状态变量值,根据变量值判断当前条件接收系统处于何种状态。如果当前条件接收系统为暂停状态,则执行步骤206 ;如果不是暂停状态,则表示为正常状态,执行步骤207。
[0043]步骤206:如果当前条件接收系统处于暂停状态,需要先恢复当前条件接收系统内核的主线程为运行状态,并设置当前条件接收系统为正常状态,也即改变状态变量的值为正常状态对应的变量值。然后,暂停其他条件接收系统的内核主线程,并将这些其他条件接收系统设置为暂停状态,也即改变其状态变量的值为暂停状态对应的变量值。然后,执行步骤208。
[0044]由于将非当前条件接收系统的内核主线程暂停,不再占用终端CPU、内存等资源,减少了终端负载,提高了资源利用率。而且,暂停状态的条件接收系统仅是暂停了占用资源较多的内核主线程,如内核驱动、解扰器等,在终端不重启的状态下保证主线程恢复及整个条件接收系统转入运行状态的一些线程仍处于运行状态(如ECM和EMM分析处理、卡驱动、插卡通知CA内核的线程等
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1