This application claims priority to Polish Patent Application No. P-370186, filed Sep. 20, 2004, the contents of which are incorporated herein by reference.
1. Field of the Invention
The object of the invention is a system for controlling various conditional access systems (CA) in a digital television decoder and a method for controlling conditional access systems.
2. Brief Description of the Background of the Invention Including Prior Art
In digital television decoders the received signal can be descrambled by conditional access systems embedded in the decoder or provided by external modules.
The conditional access systems embedded in the decoder use a descrambler, which is an integral part of the decoder, as well as smart cards placed in specific slots of the decoder. These smart cards provide data necessary to configure the decoder descrambler. Such systems are usually designed by various specialist providers in a form of software modules, and the interfaces of systems of various providers differ. In the currently used decoders, support for specific embedded conditional access systems requires the adaptation of the remaining software of the decoder to the interface of that system. Such a solution is unsatisfactory, since it requires a considerable workload and resources to produce a compatible decoder software.
The conditional access systems provided by external modules use a descrambler, which is an integral part of the module, as well as smart cards placed in the slot of the module. The smart cards provide data necessary to configure the descrambler of the module. Such systems are usually provided by Common Interface Cl modules, or by Point of Deployment (POD) modules. These modules are placed in specific slots of the decoder. Such systems can be operated via a standard Cl or POD interface, which is provided by a software driver embedded in the decoder. If the signal is descrambled by the descrambler of the external module, it is not transmitted through the decoder descrambler, to avoid double descrambling.
From the PCT Publication No. WO0174075A1 entitled “Removable smart card interface for set top box” there is known a digital television decoder with a replaceable POD module. The signal is descrambled on the basis of the data exchanged with a smart card placed in the POD module by a descrambler built into the POD module or by the decoder descrambler. Therefore, this solution refers only to smart cards for a POD module. It does not solve the problem of controlling several conditional access systems having various interfaces and concurrently requesting the access to the decoder descrambler.
From the U.S. Pat. No. 6,185,735 entitled “Method of operating an apparatus intended to permit access to services” there is known a method for operating a digital television decoder, in which the processing of signals, scrambled by an algorithm other than the one used by a decoder provider, is blocked for a specific time. The decoder has only one conditional access system, which can support various scrambling methods but only if they are compatible with that conditional access system. Therefore, this solution does not allow concurrent operation of several conditional access systems in the decoder.
From the European Patent No. EP 00562295 entitled “Method and apparatus for controlling several smart cards” there is known a method for controlling several smart card slots used for descrambling signals of various broadcasters, in which, after a card is selected, the power supply to the other cards is switched off. However, the method for controlling the descrambler operation has not been described in detail.
The drawback of known digital television decoders is thus their inability to provide easy co-ordination of the different currently available conditional access systems. The addition of a new conditional access system requires modification of the existing software to provide compatibility, which is time-consuming and expensive.
It is an object of the present invention to provide a simple system for controlling several different conditional access systems in a digital television decoder.
This and other objects and advantages of the present invention will become apparent from the detailed description, which follows.
In a system for controlling conditional access systems for television data in a digital television decoder having a signal processing block with a decoder descrambler and a conditional access block with at least one conditional access system, the conditional access block comprises conditional access system clients which handle communication with these systems via a client interface uniform for all clients, and it comprises a conditional access client manager, which handles communication with conditional access systems via the clients via a client interface and controls descrambling of signal in the decoder by selecting the conditional access system responsible for descrambling the signal being currently received and controlling the decoder descrambler depending on the selected conditional access system.
Preferably, the client is a block which converts events of the conditional access system-specific program interface to events of the client interface, and converts events of the client interface to events of the conditional access system-specific program interface.
The conditional access client manager can comprise virtual descramblers, which are software objects emulating the interface of the decoder descrambler, where a separate virtual descrambler is assigned to each conditional access system such that the system perceives the virtual descrambler as the decoder descrambler, and the manager additionally comprises a decoder descrambler switch, which controls the decoder descrambler by transmitting to it the configuration of the virtual descrambler assigned to a selected conditional access system.
Preferably, the virtual descrambler is a software object whose structure emulates the hardware interface of the decoder descrambler and its structure describes at least the slots of the decoder descrambler and their operating configuration.
The conditional access client manager can comprise a client table, in which data describing the systems handled by individual clients are stored, the data describing at least the requirement of a particular conditional access system for access to the decoder descrambler and the capability to descramble the signal currently being received by the system, and the data being used to select the conditional access system responsible for descrambling the currently received signal.
Additionally in the client table there can be stored priorities of individual clients, deciding on the priority of one system in preference to other systems capable of descrambling the currently received stream, while selection of the conditional access system responsible for descrambling the currently received signal.
The conditional access client manager can comprise a PSI data memory, in which selected data related to a currently received stream is stored, the data being read by conditional access systems after notification about changes in these data.
Preferably, the conditional access systems are systems embedded in the decoder and/or systems provided by external modules.
Preferably, the clients are software modules for conditional access systems, which allow other modules of decoder software communicating with the conditional access systems via an interface uniform for all clients.
In a method for controlling conditional access systems for television data in a digital television decoder provided with a decoder descrambler and at least one conditional access system, the conditional access systems are communicated via conditional access clients via a client interface uniform for all clients and via a conditional access client manager, which communicates with conditional access systems via clients and via a client interface, the descrambling of the signal in the decoder is controlled by selecting the conditional access system responsible for descrambling the currently received signal and controlling the decoder descrambler depending on the selected conditional access system.
In the conditional access client manager there can be created virtual descramblers, which are software objects emulating the interface of the decoder descrambler, and a separate virtual descrambler is assigned to each conditional access system such that the system perceives the virtual descrambler as the decoder descrambler, and the decoder descrambler is controlled via the decoder descrambler switch, by transmitting to it the configuration of the virtual descrambler assigned to a selected conditional access system.
A client table can be created in the conditional access client manager, in which data describing the systems handled by individual clients are stored, the data describing at least the requirement of a particular conditional access system for access to the decoder descrambler and the capability to descramble signals currently received by the system, and the data being used to select the conditional access system responsible for descrambling the currently received signal.
The conditional access system responsible for descrambling the currently received stream can be selected from systems which are capable of descrambling the currently received stream.
The conditional access system responsible for descrambling the currently received stream can be selected when in the client table a change of descrambling capability of the currently received stream by one of systems is detected.
When a conditional access system is selected which does not require access to decoder descrambler, the decoder descrambler can be de-activated.
The client table additionally can store priorities of individual clients, deciding on the priority of one system versus other systems capable of descrambling the currently received stream, while selection of the conditional access system responsible for descrambling the currently received signal.
The system of the highest priority can be selected from the systems, which are capable of descrambling the currently received signal, as the system responsible for descrambling the currently received signal.
In the conditional access client manager, a PSI data memory can be created, in which selected data related to the currently received stream is stored, and if the data changes, a message about the change is sent to the conditional access systems.
Preferably, in each client, when a message on PSI data change is received, the PSI data is read from the PSI memory, analyzed in the conditional access system, and information is sent to conditional access client manager about the capability of descrambling the currently received signal by that system.
In the accompanying drawings one of the possible embodiments of the present invention is shown, where:
The decoder is provided with a slot 121 for handling CI modules 111 and a slot 122 for handling smart cards SC 112. This is only an exemplary configuration. The decoder may also be provided with additional slots to receive input signals from means as described earlier. Additionally, or instead of the CI slot, the decoder may be provided with a slot for handling POD modules. The access to resources of the CI module 111 and the smart card 112 inserted respectively to the CI slot 121 and the SC slot 122 is enabled by interfaces, respectively the CI slot interface 103 and the SC slot interface 104. These interfaces are low-level software modules and they provide the resources of a card or a module inserted to a specific slot via a specific program interface. The CI slot interface is additionally connected to the signal processing block 131, from which it reads a scrambled stream, and after its descrambling it returns a descrambled stream.
The conditional access block 141 of this decoder controls the descrambling of the signal. In this embodiment, the signal can be descrambled by the decoder descrambler 132, controlled by one of the embedded conditional access systems, or by a descrambler of the CI module, controlled by a conditional access system of the CI module.
The conditional access block 141 cooperates with conditional access systems. These can be embedded conditional access CA systems 143, 145, 147, which cooperate with smart cards, or conditional access systems provided by CI or POD modules, which may be communicated by the CI or POD driver 149.
One of the elements of the invention are modules for conditional access systems, referred to as clients 142, 144, 146, 148, which allow communication with those systems via an application program interface API uniform for all clients. Thanks to such solution, the other software modules of the decoder for example, the client manager must handle only the client interface to communicate with every CA system.
The next element of the conditional access block 141 is a client manager 151. The conditional access CA client manager 151, as presented in this embodiment, is a block which controls the descrambling of the signal by selecting a CA system for descrambling and controlling the decoder descrambler. It is a separate hardware module, being either a part of the decoder controller, or a module of decoder controller software. For each of embedded conditional access clients, the CA client manager provides a virtual descrambler, which is a software module emulating the interface of the decoder descrambler, which allows each embedded conditional access systems to operate as if it were connected directly to the decoder descrambler. In addition, the CA client manager contains a clients' table, which specifies, if the system handled by a particular client requires access to the decoder descrambler, if it is capable of descrambling of the currently received stream and the priority of a particular client. On the basis of these data, the CA client manager selects from the clients capable of descrambling the currently received stream, the one which will perform the descrambling. If a client of an embedded conditional access system is selected, then the manager, via the descrambler switch, sets connection between the virtual descrambler of that client and the decoder descrambler. If a client of a conditional access system of an external module is selected, then the decoder descrambler is deactivated. The manager communicates with the clients via client interface 152.
The client interface allows execution of all typical commands used for signal descrambling. These can be commands for configuring a specific slot of the descrambler or commands for updating descrambler keys.
The manager comprises a CA client table 302, which describes properties of individual clients. A typical format of the table is presented below:
The data stored in the table specifies whether if a particular client requires access to the decoder descrambler then a specific cell includes “YES” value for embedded system clients, and “NO” for clients of systems provided by CI or POD modules with built-in descramblers). The data also specify if a particular client is capable of descrambling the currently received signal, the client priority which is used to select the client for performing the descrambling and the designation of the client, which currently controls the decoder descrambler. For clients, which do not require access to the decoder descrambler, no value is specified in the last column or the value “NO” is always assigned.
In the table presented above, the clients CA 1312, CA 2314 and CA 3316, require access to the decoder descrambler, and the CA CI client 318 is a client of a conditional access system provided by a CI module, which uses the descrambler of the module. The CA 1 and CA 3 clients are capable of descrambling the currently received stream. The CA CI client has the highest priority, but because it is not capable of descrambling the currently received stream, the signal is descrambled by the CA 3 client, which is granted access to the decoder descrambler.
In case when a client requiring access to the decoder descrambler is selected, a command is sent to the clients using descramblers of the CI or POD modules, to deactivate those descramblers. In case when the descrambling is handled by an external descrambler, the other descramblers, including the decoder descrambler, are deactivated, so that the signal is descrambled only once, by one descrambler.
The descrambling capability is specified by each client on the basis of the PSI data of the received stream, according to the procedure shown in
The system according to the invention has been constructed such that each CA system operates independently of the other systems. The cooperation of the systems is controlled by the manager, so there is no need for any changes in the systems themselves to interconnect them.
The manager 301 comprises an interface 321, which functions as a decoder descrambler controller. The task of the interface 321 is to transmit commands from a selected embedded conditional access system to the decoder descrambler 331. The interface 321 comprises, for each embedded CA systems 311, 313, 315, a virtual descrambler 323, 324, 325. The virtual descrambler is a software object whose structure emulates the hardware interface of the decoder descrambler, so that each embedded CA systems may operate as if it were connected directly to the hardware decoder descrambler.
A typical structure of the virtual descrambler as a software object is presented below as an example, C syntax is used):
The virtual_descrambler_s structure comprises a slots_table 8-element in the presented example, which describes the slots of the virtual descrambler, which emulate the slots of the decoder descrambler. The structure also comprises information on the number of open slots open_slots_count, which is useful to determine the number of the next slot to be opened. The slots are described by the virtual_descrambler_slot_s structure. An example of such a structure is presented below:
The pid field specifies the PID identifier of packets to be descrambled by a slot of the decoder descrambler specified in the decoder_descrambler_slot field. The fields algorithm, odd_key having the size of ODD_SIZE and even_key having the size of EVEN_SIZE specify the algorithm and the current descrambling keys for a particular slot of the decoder descrambler. The virtual_descrambler_status field may have the value of “Open” or “Closed”, reveals whether a particular slot has been already opened by a client.
The number of the slot of the virtual descrambler in the descrambler structure can be assigned consecutively for each opened slot, or can be a number referring to the number of the slot of the decoder descrambler which is to be opened by a particular conditional access system.
The decoder descrambler interface 321 comprises a switch 322, which connects the selected virtual descrambler with the decoder descrambler 331, according to the procedure shown in
The CA client manager 301 also provides an other blocks interface 305 for communicating with other blocks 333, for example with middleware software, by which those blocks may gain access to conditional access systems data from the CA client table or may gain access to the client interface 304, via which they may communicate with a selected system. For example, the other blocks may change the priority of clients if high-level software requires descrambling by a specified system, or collect important data from a specific conditional access system, such as a smart card number, smart card entitlements, or the versions of registered CA systems handled by clients.
The described invention allows cooperation of embedded conditional access systems of various providers in one digital television decoder, as well as the systems provided by external CI or POD modules. By using the virtual descramblers, each embedded CA system operates as if it were connected to the decoder descrambler. It is not necessary to modify the structure of those CA systems to adapt them to cooperate with other systems.
The preferred embodiment having been thus described, it will now be evident to those skilled in the art that further variation thereto may be contemplated. Such variations are not regarded as a departure from the invention, the true scope of the invention being set forth in the claims appended hereto.
Number | Date | Country | Kind |
---|---|---|---|
P-370186 | Sep 2004 | PL | national |