This application claims priority to Polish Patent Application No. P-370185, 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 smart card slots and a method for controlling smart card slots.
2. Brief Description of the Background of the Invention Including Prior Art
Smart cards, defined by ISO/IEC 7816 standard “Identification cards—Integrated circuit(s) cards with contacts”, are widely used for data transfer. Data may be read from those cards by various devices via card slots.
Smart cards are widely used with digital television decoders for signal descrambling or additional services, such as banking, telephony, or voting. These functions are controlled by specific systems embedded in the decoder, such as conditional access systems or high-level card drivers used by applications providing additional services. Such embedded systems are usually provided as modules by various companies, and the interfaces of those modules are provider-specific. Therefore, in order to handle a specific embedded system, the software of the decoder needs to be adapted to the interface of that system. This may cause problems, since such adaptation requires a considerable workload and resources.
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 readers, where after a card in one reader is selected, the power supply to the other readers is switched off. Each slot is assigned to a card of a specific type. The switching-off of the power supply and a separate slot for each card type are serious drawbacks of this design.
From the U.S. Pat. No. 5,742,680 entitled “Set top box for receiving and decryption and descrambling a plurality of satellite television signals” there is known a digital television decoder with several card slots, and a card necessary to decrypt the received signal is selected. However, neither the method of selection nor the data flow have been described in detail. The drawback of such solution is that only one card can be used at a time.
From the U.S. Pat. No. 6,035,037 entitled “System for processing a video signal via series-connected high speed signal processing smart cards” there is known a system for receiving a television signal scrambled by two methods, where the signal is descrambled by two smart cards connected in series. Therefore, such a solution does not allow simultaneous descrambling of various signals by various methods.
From the PCT Publication No. WO 0180473A2 entitled “Method for standardizing the use of ISO 7816 smart cards in conditional access systems” there is known a method for using cards of various types in one device by providing a uniform application program interface (API). However, the method does not permit the simultaneous use of several cards.
Purposes of the Invention
It is an object of the present invention to provide a simple system for controlling several types of smart cards in a device with several embedded systems requesting access to smart card resources.
This and other objects and advantages of the present invention will become apparent from the detailed description, which follows.
A system for controlling smart card slots of a device with embedded systems requesting access to smart card resources via a low-level slot interface, comprises a slot manager, which manages access to slot interfaces for embedded systems requesting access to smart card resources via system-specific program interfaces, and which provides at least functions of access to card resources, where each embedded system is provided with a client which handles communication between the embedded system and the slot manager via a client program interface, and where the slot manager comprises a status controller, controlling the status of cards in slots, and the access of embedded systems requesting access to resources of a smart card in a specific slot depends on the current status of the card in that slot for the client of that embedded system.
The client can be a block, which converts events of the system-specific program interface to events of the client program interface, and converts events of the client program interface to events of the system-specific program interface.
The slot manager can be a block which handles communication with smart card slots, which, via the slot registration block and the client registration block, collects information on available slots via and stores it in the slot-table, and collects information on the clients of the embedded systems requesting access to smart card resources and stores that information in the client-table, and determines the access of clients to slot interfaces via the access controller.
The status of the card in the slot for a specific client can be stored by the slot manager in the client-table, which contains information about clients registered for specific slots.
In the slot-table there can be stored a priority of a specific client for a specific slot, specifying the priority of access to the slot by the client in respect of other clients registered for the slot, as well as hardware configurations required by specific clients for specific slots.
The status of a card for a client can be at least “INSERTED”, where after a client's request for access to card resources the access is granted, and “NO_ACCESS”, where after a client's request for access to card resources the access is denied.
Preferably, the status controller comprises a card initialization controller handling the transition between the “INSERTED” and “NO_ACCESS” statuses, where for consecutive clients the status of the card is set to “INSERTED” and to “NO_ACCESS” for other clients, and if the client does not accept the card, the procedure is passed to the next client, and if the client accepts the card, the procedure is terminated.
The status of a card for a client can be “OVERLOAD”, where after a client's request for access to card resources information about a card error is sent, and the status of “REMOVED”, where after a client's request for access to card resources information about no card available is sent.
Preferably, the embedded systems requesting access to smart card resources are conditional access systems and/or high-level smart card drivers whereas via low-level slot interface is a digital television decoder.
Preferably, the clients are software modules provided for embedded systems requesting access to smart card resources, which handle communication with the embedded systems via a program interface uniform for all clients.
The object of the invention is also a method for controlling smart card slots of a device with embedded systems requesting access to smart card resources via a low-level slot interface, where a slot manager module is provided, which manages access to slot interfaces for embedded systems requesting access to smart card resources via system-specific program interfaces, and which provides at least the functions of access to card resources, and a client is created and provided for each embedded system, the client handling communication between the embedded system and the slot manager via a client program interface, and the slot manager is provided with a status controller, controlling the status of cards in slots, and the access of embedded systems requesting access to resources of a smart card in a specific slot is made dependent on the current status of the card in that slot for the client of that embedded system.
The communication with smart card slots can be handled via the slot manager, such that information on available slots is collected via the slot registration block and stored in the slot table, and information on the clients of the embedded systems requesting access to smart card resources is collected via the client registration block and stored in the client table, and the access of clients to slot interfaces is determined via the access controller.
In the accompanying drawings one of the possible embodiments of the present invention is shown, where:
The system for controlling smart card slots according to the invention is shown in an exemplary embodiment related to a digital television decoder. Alternatively, it can be used with other devices able to handle smart cards of various types.
The conditional access block of the decoder comprises several embedded systems requesting access to smart card resources, for example CA (Conditional Access) systems 143, 145, 147, for handling various scrambling algorithms. The conditional access systems communicate with smart cards and, based on the information read from the smart card, configure the descrambler. The decoder controller may comprise other embedded systems requesting access to smart card resources, for example a high-level smart card driver 151. The high level-smart card driver 151 handles specific transmission protocols, for example T=0 and T=1 protocols according to ISO/IEC 7816-3 norm “Identification cards—Integrated circuit(s) cards with contacts—Part 3. Electronic signals and transmission protocols”. The driver can be used by applications compliant with the OCF (Open Card Framework) standard for additional services.
One of the elements of the invention are modules for the embedded systems requesting access to smart card resources, which are in the further description referred to as “clients” 142, 144, 146, 152. The clients enable communication with the embedded systems via an application program interface uniform for all clients, referred to as the client interface.
The decoder is provided with slots 121, 122, 123 for reading smart cards 111, 112, 113. The access to resources of a card inserted to a specific slot is enabled via slot interfaces 103, which are low-level software modules. The slot interface is designed by the decoder provider and is usually different from the interfaces of the embedded systems requesting access to smart card resources.
According to the invention the slot manager 104 enables the communication of the embedded systems requesting access to smart card resources (such as conditional access systems or high-level smart card drivers) with the slot interface 103, which provides smart card resources. The communication with the embedded systems is handled via clients, providing an interface for communication with those systems, which is uniform for all clients, referred to as the client interface 153. The slot manager 104 of the present invention is a block, which controls communication with smart card slots. It can be a separate hardware element of the decoder or a software module of the decoder controller. It controls the communication between the slot interfaces embedded in the decoder controller, and systems requesting access to smart card resources, which are also embedded in the decoder controller. The systems may be, for example, high-level smart card drivers (software used by high-level applications for additional services) or conditional access systems (controlling specific devices, for example the slots or the descrambler, which can also be implemented as software). The communication between the slot interface and clients of embedded systems requesting access to smart card resources depends on the information on slots and clients, which is collected by a slot manager via a slot registration block and a client registration block. Information on slots include a slot identifier, a slot callback function (via which slot interface can be communicated) and a current status of a card for a slot. Information on clients of embedded systems requesting access to smart card resources include: a client identifier, an identifier of a slot for which the client has been registered, a priority, a client callback function (which the system can be communicated with), a status of the card for the client and a hardware configuration of the slot as required by the client. The slot manager may communicate with embedded systems requesting access to smart card resources of various providers, via clients handling the client interface. Similarly, various slots may communicate with the slot manager via the slot interfaces. In the presented embodiment, as embedded systems requesting access to smart card resources three conditional access systems have been presented and one high-level smart card driver, and three smart card slots. However, the presented system can be used for handling an arbitrary number of cards and slots.
The client interface 341 enables the client to access card resources via basic functions, such as a function for reading or writing data. The access of a specific client to resources of a card depends on the current status of the card in relation to that client. The slot manager 311 additionally incorporates a slot registration block 321, responsible for initialization of slots at the start-up of the decoder, according to a procedure shown in
The statuses of cards in slots stored in the slot table can have the following values:
The statuses of cards for specific clients stored in the clients table can have the following values:
The current statuses of the slot interfaces are stored in the slot table 316 which may have the following format:
The slot callback function is a function, which sends information to the status controller on the change of status of a card in a particular slot.
The configuration of clients for individual slots is stored in the clients table 315, which may have the following format:
The client callback function is a function, via which the status controller sends to a particular client information on the change of status of the card in a particular slot.
When a function for registering the clients is called, the client may specify a certain configuration for the slot, for example configuration related to hardware parameters: the clock frequency, supply voltage or transmission protocol. When the client does not specify certain configuration, the slot interface will handle the card in a standard way, using a default configuration.
When a function for registering the clients is called, the client may also specify a certain priority, which is used by the procedure for card initialization to determine the order of granting access. This allows quicker determination of a client for handling a specific card (the most frequent clients can be searched first) or the priority of one client compared to others (because of a subscription fee paid, user status, etc.).
In another embodiment, the slots configuration may be permanently stored in the slot table, and then it is not necessary to run the registering procedure at the start-up of the decoder.
The access controller is an optional block, which prevents conflicts when an unauthorized client requests access to card resources. Its presence is not necessary when each client receives information on card status via a client callback function and does not attempt to access the card if its card status is other than “INSERTED”.
In the presented embodiment, the access to slot interfaces is enabled for several embedded systems requesting access to smart card resources via clients, as well as the concurrent use of several slots. The slots of this embodiment are universal, and designed for handling various cards. Their parameters, such as the transmission bit-rate, frame width, or transmission protocol, can be adapted to a specific card type. The access of clients to cards is controlled on the basis of the current status of the card for a specific client, the status being updated after a card is inserted into the slot or if access to the card is terminated by one of the clients.
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-370185 | Sep 2004 | PL | national |