This present invention concerns a Universal Asynchronous Receive/Transmit (UART) circuit. The UART circuit may be implemented in a smart card of a conditional access system for providing conditional access to a received scrambled audio/visual (A/V) signal from a variety of sources, such as broadcast television networks, cable television networks, digital satellite systems, and internet service providers.
Today, a user may receive services from a variety of service providers, such as broadcast television networks, cable television networks, digital satellite systems, and internet service providers. Most television receivers are capable of receiving unscrambled information or programs directly from broadcast and cable networks. Cable networks providing scrambled programs usually require a set-top box (STB) or similar device to descramble the program. Similarly, digital satellite systems usually provide scrambled programs that also require the use of a set-top box. These set-top boxes may utilize removable smart cards which contain the data necessary for recovering the descrambling keys to descramble the respective programs.
Conditional access (CA) systems are typically comprised of a network of service providers and subscribers, as well as a conditional access authority. The service providers transmit signals to the subscribers, and the conditional access authority controls which signals each of the subscribers are permitted to receive. The subscribers' access to these signals depends upon the particular program packages to which they have subscribed (e.g., basic cable, basic cable and Home Box Office (HBO), etc.). As referred to above, the conditional access to the signals of the different service providers may be handled through a smart card which is disposed in a set-top box (STB), digital television (DTV), digital videocassette recorder (DVCR) or other equivalent device. Currently, most conditional access system utilize STBs, but in the future the extension to include smart cards in DTVs and DVCRs is anticipated. These smart cards usually contain descrambling keys which are used to descramble the different signals of the service providers.
Among other circuitry, some smart cards contain Universal Asynchronous Receive/Transmit (UART) circuits for coordinating communications from other circuits to the smart card, and from the smart card to other circuits. In general, UARTs are designed to be general purpose, and programmable to support multiple communication protocols. ISO-7816 is a conventional protocol for smart card communications, and many smart card UARTs are programmable to receive data (e.g., serial communication commands) in the ISO-7816 format. However, conventional smart cards (and thus UARTs) operating under the ISO-7816 protocol do not operate effectively when the smart card processor (which is typically internal to the smart card) is subject to interrupts, and lengthy routines that cannot be interrupted by incoming serial port messages. For example, if the smart card processor is running an uninterruptable decryption program when a serial communication command (e.g., ISO-7816 command) is received from an interface device (e.g., STB), the smart card processor may not be able to respond to the serial communication command, and therefore data from the serial port of the interface device will be lost.
The EIA-679 standard (NRSS) outlines an extension to the ISO-7816 smart card that has a high speed data connection, as well as a serial communications port available in other ISO-7816 designs. The high speed data connection requires processing as well, and is typically connected to the smart card processor through some sort of interrupt circuit. In NRSS designs under the EIA-679 standard, there are two separate input paths that will place demands on the smart card processor (e.g., the high speed data path and the serial path). Thus, prioritization and interrupts are far more likely to be necessary. This creates the potential problem that the smart card processor may be busy processing input from the high speed connection when a serial 7816 command is sent by an interface device (e.g., STB).
Within the ISO-7816 specification, two devices participate in the system, an “interface device” and a “card.” The “interface device” is the host device (e.g., STB) that supplies power, a smart card reader, and is generally the master in communications. The “card” is simply the smart card. ISO-7816 also defines several communications protocols. One of the most commonly used is known as “T=0.” ISO-7816 T=0 commands begin with a five (5) byte command string sent from the interface device (e.g., STB) to the smart card, indicating (1) class, (2) instruction (INS) command, (3) P1, (4) P2, (5) N. The “class” byte defines the instruction class, and the “instruction (INS) command” byte specifies what data is to follow, and whether the data (bytes) to follow the 5 byte string are sent or received by the interface device (e.g., STB). P1 and P2 define instruction specific parameters (e.g., an address), and N defines the number of bytes to follow the 5 byte string.
If the “instruction (INS) command” byte specifies a “READ” command, data is transmitted from the smart card to the interface device (e.g., STB), however, if the “instruction (INS) command” byte specifies a “WRITE” command, data is transmitted from the interface device to the smart card. When data is transmitted from the smart card to the interface device (i.e., during a READ operation), the smart card may wait as long as necessary (within a ‘working interval’ of several hundred milliseconds) to send the data, and has control over this timing. Thus, the smart card (actually the smart card processor) can be interrupted, or take time to complete other tasks. When a WRITE command is executed, the smart card responds by sending an acknowledgment message within a ‘working interval.’ The acknowledgment message specifies how many bytes can be sent to the smart card.
However, because under current standards (e.g., ISO-7816, EIA-679) a smart card processor may be busy executing programs which cannot be interrupted when a serial communication command is received from the interface device (e.g., STB), serial communication data can often be lost.
Thus, there is presently a need for a smart card with a UART which can handle incoming serial communication commands from an interface device without loss of data, or interrupting the smart card processor.
The present invention is a method and apparatus for managing access to a signal, the method comprising receiving in a smart card a command string, the command string including at least five bytes of data, and, storing said at least five bytes of data in a memory area of a Universal Asynchronous Receive/Transmit UART) circuit.
The present invention comprises a Universal Asynchronous Receive/Transmit (UART) circuit, preferably for implementation in a smart card, with a memory capable of storing at least five (5) bytes of command data, as well as error data. The 5-byte memory is preferably implemented as a separate piece of hardware (e.g., memory cell) within the UART circuit. The UART circuit according to the exemplary embodiment of the present invention preferably performs serial to parallel conversion and storage of data into the memory without the use of software (i.e., the 5-byte memory is a hardware memory). Such a UART allows the initial ISO-7816 5-byte command string to be stored in the event that the smart card processor (which is typically internal to the smart card) is engaged performing other tasks. Then, when the smart card processor has completed the ‘other tasks’, the command string can be recovered and processed immediately.
If the command string specifies a READ command, data will be sent to the interface device from the smart card. If the command string specifies a WRITE command, the smart card processor can decide whether to allow all the relevant data to be sent to the smart card at once, or just a single byte at a time. The smart card processor can specify in an acknowledgement message to the interface device (e.g., STB) exactly how many bytes will be sent at a time. If, during a WRITE command, the smart card processor decides to allow all relevant data to be sent at one time, the smart card processor must insure that all interruptions are less than the time required to transfer 5 bytes (since 5 bytes is the maximum allowable header message under the ISO-7816 standard, and since 5 bytes is the maximum amount of data that the UART according to the present invention can hold). If the smart card processor cannot insure this, the smart card processor can allow only one byte at a time to be sent to the interface device (which is slower, but allows for extended interrupts).
The UART circuit according to the exemplary embodiment of the present invention is preferably implemented in a smart card of a conditional access (CA) system which may be utilized to obtain programs and services from one of a plurality of sources. The conditional access system when implemented within a device, such as a digital television (DTV), digital video cassette recorder (DVCR) or set-top box (STB), provides convenient management of the descrambling keys. For simplicity, the below description of the invention will be directed towards an implementation using a digital television (DTV) and a smart card including the present UART circuit.
DTV 40 can receive services from a plurality of service providers (SPs), such as a broadcast television SP 50, a cable television SP 52, a satellite system SP 54, and an internet SP 56. Conditional Access Organization (CA) 75 is not directly connected to either the service providers 50-56 or DTV 40 but deals with key management and issues key pairs which may be used to limit access to the programs transmitted by the service providers 50-56.
As is well known in the art, smart card 42 of the system 30 preferably includes input/output terminals, a processor, a memory, and a UART circuit. In the exemplary embodiment of the present invention the UART circuit comprises a UART circuit as described above including a memory for storing a 5 byte command string and error data.
Although the UART according to the exemplary embodiment of the present invention is preferably used in a smart card of a conditional access system, it will be understood by those skilled in the art that the present smart card UART may be implemented in a variety of systems (e.g., credit card systems, automated teller machine (ATM) systems, building security systems, personal computer e-commerce or access control systems, parking garage systems, public and private telephone systems, postage systems, public key infrastructure (PKI) key management systems, video game systems, etc.) without departing from the scope of the present invention.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US01/30544 | 9/28/2001 | WO |