CA2284867A1 - Access control system - Google Patents

Access control system Download PDF

Info

Publication number
CA2284867A1
CA2284867A1 CA002284867A CA2284867A CA2284867A1 CA 2284867 A1 CA2284867 A1 CA 2284867A1 CA 002284867 A CA002284867 A CA 002284867A CA 2284867 A CA2284867 A CA 2284867A CA 2284867 A1 CA2284867 A1 CA 2284867A1
Authority
CA
Canada
Prior art keywords
application
program
identifier
decoder
receiver
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002284867A
Other languages
French (fr)
Inventor
Jean-Claude Sarfati
Christophe Declerck
Jerome Meric
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canal Plus SA
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CA2284867A1 publication Critical patent/CA2284867A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/258Client or end-user data management, e.g. managing client capabilities, user preferences or demographics, processing of multiple end-users preferences to derive collaborative data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/16Analogue secrecy systems; Analogue subscription systems
    • H04N7/173Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
    • H04N7/17309Transmission or handling of upstream communications

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • Computer Graphics (AREA)
  • Theoretical Computer Science (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)

Abstract

An access control system and a method of providing access by a program to at least one component of a computer system are provided. The method comprises the steps of: storing a logical device associated with the or each respective component in said system, the or each logical device having a respective device identifier; assigning a program identifier to the program; and outputting from the program a signal comprising the program identifier and the device identifier of the or each logical device to a common interface between the program and the or each logical device to create a communication channel between said program and the or each logical device via said interface.

Description

ACCESS CONTROL SYSTEM
The present invention relates to an access control system, in particular to a method of providing access by a program to at least one component of a computer system, more particularly of a computer system used in a reeeiver/decoder of broadcast digital signals.
The advent of digital transmission systems intended primarily for broadcasting television signals, in particular but not exclusively satellite television systems, has opened up the possibility of using such systems fot. other purposes. One of these is to provide interactivity with the c;nd user.
One way of doing this. is to run an application on the receiver/decoder through which the television signal is received. The code for the application could be permanently stored in the receiver/decoder. However, this would be rather limiting.
Preferably, the reeeiver/decoder should be able to download the code for a required application. In this way, more variety may be provided, and applications can be updated as required without any action on the part of the user.
Applications for execution by a receiver/decoder are generated by various broadcast suppliers. Typically, ~:he receiver/decoder has a number of interfaces, such as a serial interface and parallel interface, for connection to external units. Device drivers for these interfaces are supplied by the manufacturer of the receiver/decoder.
With multiple sources of appli~;ations and multiple manufacturing sources of receiver/decoder, it is; important that one application behaves in the same way on every receiver/decoder, and each receiver/decoder should execute every application in the same, correct mar.~ner.
Accordingly, in a first aspect the present invention provides a method of providing access by a program to at least one component of a computer system, said method comprising the steps of:
storing a logiczl device associated with the or each respective component in said system, the or each logical device having a respective device identifier;
assigning a program identifier to the program; and outputting from the program a signal comprising the program identifier and the device identifier of the or each logical device to a common interface between the program and the or each logical device to create a communication channel between said program and the or each logical device via said interface.
By means of the above, a common interface is provided between the various programs in the computer system and the "hardware" of the receiver/decoder, irrespective of the sources of the programs and the hardware.
The signal may further comprise a command enabling receipt by the program of a message output from a respective logical device indicating a change of state of the component associated with the device.
Thus, a program may be alerted to an "unexpected event" occurring at one of the components, for example, the receipt of a message by a serial interface of the computer system or the insertion of a smartcard in a smartcard reader of the computer system.
This message may be stored temporarily in queue means of said computer system for subsequent transfer to said program. In other words, the program may inform the logical device that it need not be supplied immediately with the message.
Preferably, the queue means comprises a plurality of queues, each queue having a respective priority level indicative of the order in which messages are to be transferred from the queue means to the program, and said signal further comprises the priority level of the queue in which said message is to be stored temporarily.
Thus, the program may specify the "urgency" with which the message is to be dealt with by the queue means by indicating a priority level with which the queue means is to deal with the message.
In a second aspect, the present invention provides a method of providing access by a plurality of program:. to at least one component of a computer system using the method described above, each program accessing the or each component via said interface.
Thus, the present invention provides a single common interface for communication between a program and one or more logical devices, and for communication between a logical device and one or more programs.
A third aspect of the F~resent invention provides a method of transmitting data between a program and a comb?onent of a computer system; said method comprising the steps of providing access by the program to the component using the method described above; and subsequently outputting from the program a signal comprising the program identifier, the device identifier of the logical device to a common interface, a command instructing operation of a component by the logical device associated therewith, the address of data to be input to said component by said device and the address for data output by said component to said logical device to said common interface.
In a fourth aspect, the present invention provides a method of transmitting data between a program a~ad a component of a computer system; said method comprising the steps of providing access by the program to the component using the method described above; and subsequently outputting from the program a signal comprising the program identifier, the device; identifier of the logical device to a common interface, a command instructing, operation of a component by the logical device associated therewith, the priority level of the queue in which a message output from the respective logical device indicating a change of state of the component associated with the device is to be stared temporarily prior to transfer to the program, the address of __ CA 02284867 1999-09-17 data to be input to said component by said device and the address for data output by said component to said logical device to said common interface.
Therefore, once access between the program and the component has been provided, the thus established communication route may be 'used to provide a route for transmitting data from the program to a component and vice versa.
The program and/or the or each logical device may be input to said computer system via a component. This provides for convenient downloading and "up-dating" of the program and the logical device in the computer system.
Preferably, the or each component comprises at least one of an MPEG flow tuner, a serial interface, a parallel interface, a modem and a smartcard reader.
In a fifth aspect, the present invention provides apparatus for providing access by a program to at least one component of a computer system, a logical device associated with the or each respective component being stored in said system, the or each logical device having a respective device identifier; said apparatus comprising:
means for assigning a program identifier to the program; and means for creating a communication channel between said program and the or each logical device in accordance with a signal output from the program and comprising the program identifier and the device identifier of the or each logical device The apparatus may further comprise means for enabling receipt by the program of a message output from a respective logical device indicating a change of state of the component associated with the device.
Preferably, the computer system further comprises queue means for storing temporarily a message output by said device for subsequent transfer to said program. The queue means may comprise a plurality of queues, each queue having a respective priority level indicative of the order in which messages are to be transferred from the queue means to the program.
The computer systern may further comprise means for storing data input to said component by said device and data output by said component to said logical device to said common interface.
Preferably, the or each logical component is connected to the respective associated component via a device driver.
In a sixth aspect, the present invention provides. a receiver/decoder for receiving broadcast signals, said receiver/decoder comprising apparatus as described above.
Preferably, the receiver/decoder further comprises means for receiving a compressed NiPEG-type signal, :means for decoding the received signal to provide a television signal and means for supplying the television signal to a television.
Preferred features of the present invention will now be described, purely by way of example, with reference to the accompanying drawings, in which:-Figure 1 shows the overall architecture of a digital television system according to the preferred embodiment of the present invention;
Figure 2 shows the architecture of an interactive system of the digital television system;
Figure 3 shows the a~-rangemrnt of files within a module downloaded into the memory of an interactive recc;iver/decoder;
Figure 4 shows the arrangement of memory volumes of the memory of the interactive receiver/decoder;
Figure 5 is a schematic diagram of interfaces of the receiver/decoder;
Figure 6 shows the architecture of the software in the receiver/decoder; and Figure 7 shows an example of connections between a device manager, a plurality of clients and a plurality of devices.
An overview of a digital television system 1000 is shown in Figure 1. The invention includes a mostly conventional digital television system 2000 which uses the known MPEG-2 compression system to transmit compressed digital signals. In more detail, MPEG-2 compressor 2002 in a broadcast centre receives a digital signal stream (typically a stream of video signals). The compressor 2002 is connected to a multiplexes and scrambler 2004 by linkage 2006. The multiplexes 2004 receives a plurality of further input signals, assembles one or more transport streams and transmits compressed digital signals to a transmitter 2008 of the broadcast centre via linkage 2010, which can of course take a wide variety of forms including telecom links. The transmitter 2008 transmits electromagnetic signals via uplink 2012 towards a satellite transponder 2014, where they are electronically processed and broadcast via notional downlink 2016 to earth receiver 2018, conventionally in the form of a dish owned or rented by the end user. The signals received by receiver 2018 are transmitted to an integrated receiver/decoder 2020 owned or rented by the end user and connected to the end user's television set 2022. The receiver/decoder 2020 decodes the compressed MPEG-2 signal into a television signal for the television set 2022.
A conditional access system 3000 is connected to the multiplexes 2004 and the receiver/decoder 2020, and is located partly in the broadcast centre and partly in the decoder. It enables the end user to access digital television broadcasts from one or more broadcast suppliers. A smartcard, capable of deciphering messages relating to commercial offers (that is, one or several television programmes sold by the broadcast supplier), can be inserted into the receiver/decoder 2020. Using the decoder 2020 and smartcard, the end user may purchase commercial offers in either a subscription mode or a pay-per-view mode.

An interactive system 4000, also connected to the multiplexer 2004 and the receiver/decoder 2020 and again located partly in the broadcast centre and partly in the decoder, enables the end user to interact with various applications via a modemmed back channel 4002.
Figure 2 shows the l;eneral architecture of the interactive television system 4000 of the digital television system 1000 of the present invention.
For example, the intc;ractive system 4000 allows an end user to buy items from on-screen catalogues, consult local news and weather.maps on demand and play games through his television set.
The interactive system 4000 comprises in overview four main elements:
an authoring tool 4004 at the broadcast centre (or elsewhere) for enabling a broadcast supplier to create, develop, debug and test applications;
an application and data server 4006 the broadcast centre, connected to the authoring tool 4004 for enabling a broadcast supplier to prepare, authenticate and I5 format applications amd data for delivery to the multiplexer and scrambler 2004 for insertion into the MF'EG-2 transport stream (typically the private section thereof) to be broadcast to the end user;
a virtual machine including a run time engine (RTE) 4008, which is an executable code installed in the receiver/decoder 2020 owned or rented by the end user for enabling an end user to receive, authenticate, decompress, and load applications into the working mc;mory 2024 of the receiver/decoder 2020 for execution. The engine 4008 also rues resident, general-purpose applications. The engine 4008 is independent of the hardware and operating system; and a modemmed back channel 4002 between the receiver/decoder 2020 and the application and data ;server 4006 to enable signals instructing the server 4006 to insert data and applications into the MPEG-2 transport stream at the request of the end user.
The interactive television system operates using "applications" which control the functions of the recei,ver/decoder and various devices contained therein.
Applications WO 98/43172 PCT/EP97l02115 -g_ are represented in the engine 4008 as "resource files". A "module" is a set of resource files and data. Several modules may be required to make up an application. A
"memory volume" of the receiver/decoder is a storage space for modules. An "interface" is used to download modules. ~ Modules may be downloaded into the receiver/decode 2020 from the MPEG-2 transport stream.
The elements mentioned in the previous paragraph are now described in more detail.
For the purposes of this specification, an application is a piece of computer code for controlling high level functions of preferably the receiver/decoder 2020. For example, when the end user positions the focus of a remote controller on a button object seen on the screen of the television set 2022 and presses a validation key, the instruction sequence associated with the button is run.
An interactive application proposes menus and executes commands at the request of the end user and provides data related to the purpose of the application.
Applications may be either resident applications, that is, stored in the ROM (or FLASH or other non-volatile memory) of the receiver/decoder 2020, or broadcast and downloaded into the RAM or FLASH memory of the receiver/decoder 2020.
Examples of applications are:-An Initiating Application. The receiver/decoder 2020 is equipped with a resident initiating application which is an adaptable collection of modules (this term being defined in more detail hereunder) enabling the receiver/decoder 2020 to be immediately operative in the MPEG-2 environment. The application provides core features which can be modified by the broadcast supplier if required. It also provides an interface between the resident application and downloaded applications.
~ A Startup Application. The startup application allows any application, either downloaded or resident, to run on the receiver/decoder 2020. This application acts as a bootstrap executed on arrival of a service in order to start the application. Startup is downloaded into RAM and therefore can be updated easily. It can be configured so that the interactive applications available on each channel can be selected and run, either immediately after downloading or after preloading. In the case of preloading, the application is loaded into the memory 2024'. and is activated by the startup when required.
~ A Program CJuide. The Program Guide is an' interactive application which gives full information about programming. For example, it may give information about, say, one week's television programmes provided on each channel of a digital television bouquet. By depressing a key on the remote controller 202;6, the erad user accesses an add-on screen, overlaid on the event shown on the screen of the television set 2022. This add-on screen is a browser giving information on the current and next events of each channel of the digital T'~/ bouquet. By depressing another key on the remote controller 2026, the end user accesses an application which displays a list of information on events over one week. The end user can also search and sort events with simple and customised criteria. The end user can also access directly a selected chapel.
A Pay Per View application. The Pay Per View Application is an interactive service available on each PPV channel of the digital TV bouquet in conjunction with the conditional access system 3000. The end user can access the application using a TV guide or channel browser. Additionally, the application st;~rts automatically as soon as a PPV event is detected on the PPV
channel. The end user is then able to buy the current event either through his daughter smartcard 3020 or via the communication server 3022 (using a modem, a telephone and DTMF codes, M1NITEL or the like). The application may be either resident in the ROM of the receiver/decoder 2020 or downloadable; into the RAM of the decoder 2020.
A PC Download application. On request, an end user can download computer software using the PC', download application.
A Magazine I3rowser application. The magazine browser application comprises a cyclic video broadcast of images with end user navigation via on-screen buttons.
A Quiz application. 'The quiz application is preferably synchronised with a broadcast quiz programme. As an example, multiple choice questions are displayed on the screen of the television 2022, and the user can select an answer using the remote controller 2026. The quiz application can inform the user whether the answer is correct or not, and can keep count of the user's score.
A Teleshopping application. In one example of the teleshopping application, offers of goods for sale are transmitted to the receiver/decoder 2020 and displayed on the television 2022. Using the remote controller, the user can select a particular item to buy. The order for the item is sent via the modemmed back channel 4002 to the application and data server 4006 or to a separate sales system the telephone number of which has been downloaded to the receiver/decoder, possibly with an order to debit the account for a credit card which has been inserted into one of the card readers 4036 of the receiver/decoder 2020.
~ A Telebanking application. In one cxample of the telebanking application, the user inserts a bank card into one of the card readers 4036 of the receiver/decoder 2020. The receiver/decoder 2020 dials up the user's bank, using a telephone number stored in the bank card or stored in the receiver/decoder, and then the application provides a number of facilities which can be selected using the remote controller 2026, for example for downloading via the telephone line a statement of account, transferring funds between accounts, requesting a cheque book, etc.
An Internet Browser application. In one example of the Internet browser application, instructions from the user, such as a request to view a web page having a particular URL, are entered using the remote controller 2026, and these are sent by the modemmed back channel 4002 to the application and data server 4006. The appropriate web page is then included in the transmissions from the broadcast centre, received by the receiver/decoder 2020 via the uplink 2012, transponder 2014 and downlink 2016, and displayed on the television 2022.
Applications are stored in memory locations in the receiver/decoder 2020 and represented as resourc;e files. The resource files comprise graphic object description unit files, variables b,'lock unit: files, instruction sequence files, application files and data files.
The graphic object description unit files describe tfie screens, the man-machine interface of the application. The variables block unit files describe the data structures handled by the application. '.Che instruction sequence files describe the processing operations of the applications. The application files provide the entry points for the applications.
The applications constituted in this way can use data files, such as icon library files, image files, character font files, colour table flies and ASCII text files. An interactive application can also obtain on-line data by effecting inputs and/or outputs.
The engine 4008 only loads into its memory those resource files it needs at a given time. These resource files are read from the graphic object description Unit files, instruction sequence files and application files; variables block unit files are stored in memory following a call to procedure for loading modules and remain locked there until a specific call to an procedure for unloading modules is made.
With reference to Figure 3, a module 4010, such as a tele-shopping module, is a set of resource files and data comprising the following:
a single application file 4012;
an undetermined number of graphic object description unit files 4014;
an undetermined number of variables block unit files 4016;
an undetermined number of instruction sequence files 4018; and where appropriate, data files 4020 such as icon library files, image files, character font files, colour table files and ASCII text files.
In the MPEG data stream, each module comprises a group of MPEG tables. Each MPEG table may be formatted as a number of sections. In the MPEG data stream, each section has a "size" of up to 4 kbytes. For data transfer via the serial and parallei port, for example, modules similarly are split into tables and sections, the size of the section varying with the transport medium.
Modules are transported in the MPEG data stream in the form of data packets of typically I88 bytes within respective types of data stream, for example, video data streams, audio data streams and teletext data streams. Each packet is preceded by a Packet Identifier (PID) of 13 bits, one PID for every packet transported in the MPEG
data stream. A programme map table (PMT table) contains a list of the different data streams and defines the contents of each data stream according to the respective PID.
A PID may alert a device to the presence of applications in the data stream, the PID
being identified using the PMT table.
The concept of modules 4010 together with the concept of downloading small pieces _ of code allows the easy evolution of applications. They can be downloaded into permanent FLASH memory of the receiver/decoder 2020 as resident software or broadcast in order to be downloaded into the RAM of the decoder 2020 only when needed by the end user.
A memory volume is a storage space for modules 4010. Such storage spaces are located in the memory 2024 of the receiver/decoder 2020. With reference to Figure 4, the memory 2024 is divided into typically a RAM volume 4022, FLASH volume 4024, and ROM volume 4026. The memory may further be divided into memory volumes associated with the various interfaces through which modules are downloaded into the receiver/decoder 2020, for example an MPEG volume for storing modules downloaded from the MPEG bitstream and a serial volume for storing modules received via a serial interface.
The RAM volume 4022 in turn is divided into a zone dedicated to firmware, a working space for the engine 4008 and the buffers. The FLASH and other non-volatile memory can be accessed either by an application or the engine itself through a device manager.
Each volume contain~~ a list o:f modules 4010, each module 4010 containing a list of files 4012, 4014, 40115, 4018, 4020. It is pdssible to have two files bearing the same name and which may be located in distinct modules. For example, a version of the application is typically stored in the ROM volume 4026, with later versions being downloadable into the FLASI-I volume 4024 to substitute the version stored in the ROM volume with that volume stored in the FLASH volume 4024. The contents of files may be compressed in L:~W format, however as decompression of files takes a certain period of time, they may be received in decompressed format.
Physical interfaces of the receiver/decoder 2020 are used for downloading data. With reference to Figure 5, the: receiver/decoder 2020 contains, for example, six downloading media; lvfPEG flow tuner 4028, serial interface 4030, parallel interface 4032, modem 4034 and two card readers 4036.
With multiple sources of applications and multiple manufacturing sources of receiver/decoder 202(t, it is important that one application behaves in the same way on every receiver/decoder, and each receiver/decoder should execute every application in the same, correct manner. With reference to Figure 6, the receiver/decoder comprises a run time engine 4008 running under the control of a microprocessor and a common application programming interface 4054. They are installed in every receiver/decoder 202~D so that all receiver/decoders 2020 are identical from the application point of view.
Figure 6 shows the architecture of the receiver/decoder 2020 for running applications 4056. The virtual machine 4007 executes applications 4056, which may comprise applications 4056' coupled directly to the virtual machine or applications 4056"
downloaded to the receiver/decoder 2020 from, for example, the MPEG data stream.
The run time engine 4008 also displays graphics and text, calls devices for services, receives "events" and65'useEnnctions of a library 4058 for specific computation.

With reference to Figure 6, with respect to an application a function of the decoder 2020 is "seen" as a device 4060. There may, therefore, be functions of the receiver/decoder 2020 which may not be seen by any application.
A presentation function communicating with the virtual machine 4007 administers the presentation of text and graphics to the end user, and the presentation of end user actions to the virtual machine 4007. The text and graphics are overlaid on the display on the television set 2022, and the user may interact with the application 4056 by means of a keyboard. The term "keyboard" includes the remote controller 2026.
The run time engine 4008 is an executable code installed in the virtual machine 4007 of the receiver/decoder 2020 and includes a virtual machine for interpreting and running applications. The engine 4008 is adaptable to any operating system, including a single task operating system (such as MS-DOS).
The engine 4008 comprises a process sequences unit (which take various events such as a key press, to perform various actions) and contains its own scheduler to manage event queues from the different hardware interfaces. It also handles the display of graphics and text.
The engine 4008 comprises a code loader to load and download applications 4056"
into the decoder memory 2024. Only the necessary code is loaded into the RAM
volume 4022 or FLASH memory volume 4024 in order to ensure optimal use. The downloaded data is verified by an authentication mechanism to prevent any modification of an application 4056 or the execution of any unknown application.
The engine 4008 further comprises a decompressor. As the application code (a form of intermediate code) is compressed for space saving and fast downloading from the MPEG-2 transport stream or via a built-in receiver/decoder mode, the code must be decompressed before loading it into the RAM.
The virtual machine 4007 also comprises an intermediate code interpreter to interpret the application code and which uses a process sequencer unit to update various variable values and determine status changes, and an error checker.
With reference to Figure 6, with respect to' am application a function of the decoder 2020 is "seen" as a~ device 4060. There may, therefore, be functions of the S receiver/decoder 202CI which may not be seen by any application.
A device 4060 comprises a logical device unit which may correspond to a component 4062 or physical interface 40fi4 of the hardware 4066. Such devices are referred to as "low level devices" 4068. 'I7~e output of such a device 4068 may be connected to at least one device driver 4076 for converting the logical signals output by the device 4068 into signals required to drive, for example, a hardware interface 4064.
Alternatively, the device 4068 may itself drive a component or interface of the receiver/decoder 202CI, that is, the output of the device may be connected directly to the hardware 4066.
Examples of low ieve;l devices 4068 are described below.
An LCARD device enables a program to communicate with the smartcard contained in one smartcard reader 4036, and an RCARD device enables a program to communicate with the smartcard contained in the other smartcard reader 4036.
For example, these devicE;s enable: a program to read the state of the card, read the card history and send an input message to the card. The devices also inform a program of the insertion of a card. in to the reader, removal of a card from a reader and card reset if not requested by thc; program. The LCARD and RCARD devices are specific to the protocol used for running the card. Typically an IS07816 protocol is used.
An SCTV device enables a program to verify and configure of a scarf outlet to the television set 2022. For example, this device enables a program to request information about the. sound characteristic of the scarf outlet, perform a "MUTE" on the sound and dynamically program RGB levels.

__ CA 02284867 1999-09-17 A TUNER device enables a program to use the tuner 4028. For example, the device enables a program to perform a scan from either a minimum frequency or a current frequency of the tuner, read the tuner parameters and program the tuner.
A SERIAL device enables a program to communicate with equipment via a serial Iink and a PARALLEL device enables a program to communicate with equipment via a parallel link. For example, these devices enable a program to send a message via the respective link and inform a program of the reception of a message via that link.
A MODEM device allows the receiver decoder ta~ communicate with a data service via an internal half-duplex modem supporting V23. The MODEM device requests the dialling of a number, the sending of a message to the data server and disconnection of the modem, and signals reception of a message, the detection of errors and the loss or detection of a carrier.
Remote devices, executed in a remote location, can be any of the local devices, except that a port and protocol must be defined.
In addition to "low level devices" the receiver/decoder 2020 may also include "high level devices" 4072 which control operation of the receiver/decoder 2020.
Examples of high level devices 4072 are described below.
An ~MLOAD device allows an application to load an MPEG section, a complete MPEG table ar a group of MPEG sections from an MPEG bitstream corresponding to hardware and software filtering criteria. For example, the device enables a program to download only those sections of a group that are required at any one time by an application An FDLOAD device manages automatically file downloading via the serial and/or parallel ports. The device may signal both the start and the end of the downloading of files via the serial and/or parallel ports as requested by a program. The device may issue a request to the program for an index table which includes the PID of the file to be downloaded and the deciphering PID ECM of the file. The program loads the index table and sends. it to thE; device, which subsequently requests the downloading of the file to the program. T7ie program extracts the PID and PID ECM for the file from the index table ;end requests demultiplexing to enable the file to be downloaded in its entirety. At an.y time, a call "fdload-offline" may be issued by the program to instruct the FDLOAI;~ device to stop managing the serial and/or parallel ports.
Devices 4060 are icjentified with a unique identifier "device id", for example, "LCARD DEVICE ID" identifies the LCARD device and "RCARD DEVICE ID"
identifies the RCARI) device.
When a new device ~E060 is created, it can be installed in existing receiver/decoders 2020 by downloading the relevant application 4056" from the broadcast centre.
This downloading is performed in the receiver/decoder 2020 by an application which checks the hardware and software versions and, if correct, loads the software module representing t:he new device 4060 and asks a procedure of the library 4058 to install the new device code within the firmware (in FLASH memory). This can provide a flexible and. secure installation of new functions within the reeeiver/decoder 2020 without affecting the rest of the software.
Device manager 407~I is a common interface between the application 4056 and the devices 4060 associated with specific functions of the receiver/decoder 2020.
By adopting such a common interface, procedures, stored in a "library" of the run time engine 4008, permitting access to the devices 4060, and "events" associated with the devices may be standardised using a limited number of procedures. The device manager 4074 controls access to devices 4060, declares receipt of an unexpected event, and manages :.hared memory.
There are 18 procedures that give access to the device manager 4074, to a device 4060 itself or to memory management.

Device Open Channel ~ Opens a channel to the manager Device Close Channel ~ Closes a channel to the manager Device Open Device ~ Opens a channel to the device Device Close Device ~ Closes ~a channel to the device Device Event 0 Unexpected event management Device Call ~ Synchronous access to a device Devil Io ~ Asynchronous access to a device Device Info ~ Information about a device Set Buffer outline ~ Defines a memory partitioning for buffers Get Buffer outline ~ Reads the present buffer partitioning area Pool Info ~ Provides information about the present buffer partitioning area Device Alloc Buffer ~ Allocates memory Device Free Buffer ~ Frees memory Device Lock Buffer ~ Locks memory Device Info Free Buffer ~ Gives the number of free buffers Device Info Alloc Buffer ~ Lists the allocated buffers Get Buffer Size ~ Gives the size of the allocated buffer With reference to Figure 7, before using the services of any device 4060, a program (such as an application script) has to be declared as a "client" 4076, that is, a logical access-way to the device 4060 or the device manager 4074. The manager gives the client 4076 a client number which is referred to in all accesses to a device.
A device 4060 can have several clients 4076, the number of clients 4076 for each device 4060 being specified depending on the type of device 4060.
A client 4076 is introduced to the device manager 4068 with the procedure Device Open Channels 4078. With this procedure the device manager gives the client 4076 the client number. The device manager 4074 outputs a "client id", comprising the address of the variable containing the allocated client number (there should never be two clients with the same number), and an "error code", comprising either error code "0" indicating that the procedure has been completed successfully, or error code "e-client max" indicating that the maximum number of clients that can be handled by the de~rice manager, typically 256, has been reached.
The first client number allocated is 0, increasing by 1 for each call using the procedure "Device Open-Channel" up to the value of 255. This occurs independently from the removal of any client from the list of clients. When the client number 255 has been allocated and a subsequent "Device Open Channel" call occurs, either the error code "e client max" is output to indicate that the list of clients is "full" or the client is allocated the smallest client number available, that is, a client number of a client that previously had been removed from the list of clients.
To declare a client 4076 to a device 4060, a client uses the procedure Device-Open Device0 4080, transmitting therewith its client id and the device-id.
The device manager outputs an error message "0" if the procedure has been successfully compleaed, "e-client inconnu" if the client does not exist, "e~eriph inconnu" i:f the device does not exist, a client max, or "w deja vu"
if the device has already been declared to the device.
A client 4076 can be removed from a list for a device 4060 with the procedure Device Close Device. The client id and device id are input to the device manager, which in tum outpurs either error code "0" if the procedure has been completed successfully, error code "w client inconnu" if the client is unknown to the device manager or error code "w-periph inconnu" if the device is unknown to the device manager.
A client 4076 can be; removed from the client list of the device manager 4074 with the procedure Devic:e_Close- Channel ~. The "client id" is input to the device manager, which in 'turn outputs either error code "0" if the procedure has been completed successfully or error code "w client inconnu" if the client is unknown to the device manager. This procedure deletes the client from the list of the device manager 4074 and fr~~m the list of each device 4060 for which he is a client, ie. if not already done so by the application, the Devil Close Channel ~ procedure calls the Device Call Device 0 procedure for each device for which that client is a client. The client number thus freed using this procedure may then be allocated, using the Device Open Channel ~ procedure, to a new client.
S Procedure "Device Info ~" provides information concerning a device 4060 to a client 4076. The client id and device id are input to the device manager 4074, which returns information concerning the device, typically the version of the device, the maximum number of clients for the device and the actual number of clients using the device, to the client, together with error codes indicating that the procedure has been completed or that either the client or the device is unknown to the device manager 4074.
Procedure "Device Event" is a means of managing "unexpected events", that is, that a specific circumstance, or something unexpected, has occurred. The "Device Event"
procedure enables a client to declare itself the receiver of an unexpected event from a device.
Messages for applications, called "events", are put into one of, say, five queues of the engine 4008. Each of these queues corresponds to a priority level 0 to 4 (4 =
maximum priority, 0 = minimum priority).
When extracting messages from the queue for transfer to an application, the engine 4008 searches for the queue having the highest priority containing an event.
The event is removed from the queue and used to activate the process sequencer unit for which it is intended.
All "external" events, whether input to the presentation function by the keyboard or received through an interface pass through an event interface before being processed by the engine 4008. However, any internal events, typically generated by internal devices, do not pass through the event interface but pass directly to the engine 4008.

For each procedure, the last calling parameter is the address of a variable to be set by the device manager indicating how the command was handled by the device manager.
The reason for the issue of an unexpected. event to a client depends on the device 4060. For example, with respect to the device LCARD DEVICE, unexpected events include:
removal of a ~; and from the card reader;
insertion of a card in the card reader; or reset of the card by a client.
Each of the above is identified by a respective unique event code ("ev_lcard-extract", "ev-lcard_insert" and "ev card reset" respectively).
To receive unexpected events, the client must declare itself as a receiver of each event that it may wish to receive using the procedure "device event". The following parameters are input to the device manager:
client id;
device id;
a command called "get event" which enables the sending on an unexpected event;
the event coda; and the event priority, between 0 and 4.
Several devices may declare reception of the same unexpected event, with the same or a different priority. In this case, the event is sent to each client in a specific order (by priority and client number).
For example, client ~ declares himself the receiver of the event ev_card extract from the LCARD device with priority 2. Client 3 declares himself the receiver of the same event with priority 2, client 1 with priority 4 and finally client 4 with priority 3. If the card is removed from the reader, the following sequences of events occurs;
the event ev-card-extract addressed to client 1 is placed in the queue of the run time engine 400.3 corresponding to priority 4;

the same event addressed to client 4 is placed in the queue of the run time engine 4008 corresponding to priority 3;
the same event addressed to client 2 is placed in the queue of the run time engine 4008 corresponding to priority 2; and the same event addressed to client 3 is placed in the queue of the run time engine 4008 corresponding to priority 2.
For some devices a buffer may be involved in an unexpected event. In such a case, the device allocates this buffer via the device manager 4068.
In the application programming language, a procedure enables access to parameters that may be associated with events;
event code;
client id:
evt~araml (typically having a size of 4 bytes); and evt-param2 (typically having a length of 2 bytes).
The exact meaning of the evt-param parameters depend on the device and the reason for the posting of the event. The association of a buffer with an unexpected event depends on the device. If the association exist, evt_paraml corresponds to the data zone address of the associated buffer. If there is no buffer, the event will still be issued but with the parameter evt-paraml set at "0".
If the device has a buffer for association with an unexpected event, the removal of a client from a list of a device or a list of the device manager results in deallocation of the buffer, except where the buffer has been "locked" by the application using the procedure "device lock buffer".
Evt_param2 indicates that the procedure has been successfully completed and that a result has been obtained by the device.
A client may stop the reception of any unexpected event using the command "ret event" instead of the cammand "get event".
The device manager 4074 provides access by clients 4076 to devices 4060 in two different modes: "synchronous access" or "asynchronous access".
Synchronous acces~~, using procedure "Device Call", is a means of accessing a S function specific to a device and which does not involve the placing of the response from the device in a queue of the run time engine 4008; the response is available immediately. Typi~:ally, this procedure is used in configuration of the hardware interfaces of the receiver/de<:oder 2020.
Using this procedure, the client inputs the following parameters to the device via the device manager:
client id;
device_id;
"call cmde", which comprises the type of operation to be performed by the device. For examlde, with respect to the SERIAL device allowing a program to communicate with equipment via the serial link, the command "serial setup"
sets up the serial link configuration;
"em adr", which comprises the address of the memory location of the input data; and "rec adr", which comprises the address of the memory location to which the device must write the output data.
Upon completion of the operation requested by the client, the device outputs a "call-report", which comprises a report of the run. The call report typically comprises one of a predetermined number of reports that may be issued to the client. In turn, the device manager 4074 issues an error code to the client 4076, the error code typically comprising one of:
e_client inconnu;
e-periph inconnu;
"e cmde-inconnu", which notifies the client that the command was unknown;
_....._.~.~ .~...._.~...-.~.,...__~.__ _..-.,~.... ... .. , _ WO 98!43172 PCT/EP97l02115 "e report-periph", which is an error specific to the device; and "0", which indicates that the procedure was completed successfully.
The device only writes the output data to the address of the memory location identified by the parameter "rec adr" when the error code "0" is received.
Device call blocks all other applications until the run has been completed by the device.
Asynchronous access, using procedure "Device Io", is a means of accessing a function specific to a device and which involves waiting for a response. For example, with respect to the SERIAL device, the command "serial send" sends a message via the serial link. Following successful transmission of all of the data (before any pre-set "time-out" parameter is reached) the device sends a report to the program.
When this report is available an event is put into a queue of the engine 4008 to signal its arrival.
Using this procedure, the client inputs the following parameters to the device via the device manager:
client id;
device id;
"io cmde", which comprises the type of operation to be performed by the device;
the event code associated with the end of the operation;
the event priority associated with the event;
em adr; and rec adr.
Upon completion of the operation requested by the client, the device outputs an "io-report", which comprises a report of the run.
The io report typically comprises one of a predetermined number of reports that may be issued to the client and one of two reports ("e not done", indicating that the requested information is not yet available to the client, and "0", indicating that the requested information is available) associated with the event.
Upon receipt of the report "0'", the device manager issues an error code to the client 4076, the error code comprising one of:
a client inconnu;
e-periph incannu;
a cmde inco~mu;
"e cmde inconnue" which indicates that the event code is unknown;
"e~riorite inconnue" which indicates that'the priority is unknown;
a report-peril~h;
0.
It will be understood that the: present invention has been described above purely by way of example, and modifications of detail can be made within the scope of the invention.
Each feature disclosed in the description, and (where appropriate) the claims and drawings may be provided independently or in any appropriate combination.
In the aforementione~~ preferred embodiments, certain features of the present invention have been implemented using computer software. However, it will of course be clear to the skilled man that any of these features may be implemented using hardware.
Furthermore, it will! be readily understood that the functions performed by the hardware, the computer software, and such like are performed on or using electrical and like signals.
Cross reference is made to our co-pending applications, all bearing the same filing date, and entitled ;signal Cieneration and Broadcasting (Attorney Reference no.
PC/ASB/19707), Smartcard for use with a Receiver of Encrypted Broadcast Signals, and Receiver (Attorney Reference No. PC/ASB/19708), Broadcast and Reception System and Conditional Access System therefor (Attorney Reference No.

PC/ASB/19710), Downloading a Computer File from a Transmitter via a Receiver/Decoder to a Computer (Attorney Reference No. PC/ASB/19711), Transmission and Reception of Television Programmes and Other Data (Attorney Reference No. PC/ASB/19712), Downloading Data (Attorney Reference No.
PC/ASB/19713), Computer Memory Organisation (Attorney Reference No.
PC/ASB/19714), Television or Radio Control System Development (Attorney Reference No. PC/ASB/19715), Extracting Data Sections from a Transmitted Data Stream (Attorney Reference No. PC/ASB/19716), Access Control System (Attorney Reference No. PC/ASB/19717), Data Processing System (Attorney Reference No.
PC/ASB/19718), and Broadcast and Reception System, and Receiver/Decoder and Remote Controller therefor (Attorney Reference No. PC/ASB/19720). The disclosures of these documents are incorporated herein by reference. The Iist of applications includes the present application.

Claims (26)

-27-
1. A method of creating a communication channel between a program and a component of a computer system, said method comprising the steps of:
storing logical devices associated with respective components in said computer system, each logical device having a respective device identifier;
assigning a program identifier to the program; and outputting from the program a signal comprising the program identifier and the device identifier of a logical device to a device manager provided between the program and each logical device, said device manager creating a communication channel between said program and said logical device using the received program identifier and device identifier to enable said program to subsequently communicate with said logical device.
2. A method according to Claim 1, wherein said program comprises at least part of an application, and said computer system comprises at least part of a receiver/decoder.
3. A method of creating a communication channel between an application and a component of a receiver/decoder, said method comprising the steps of:
storing logical devices associated with respective components in said receiver/decoder, each logical device having a respective device identifier;
assigning an application identifier to the application; and outputting from the application a signal comprising the application identifier and the device identifier of a logical device to a common interface provided between the application and each logical device to create a communication channel between said application and said logical device via the common interface.
4. A method according to Claim 3, wherein said common interface comprises a device manager for creating said communication channel between said application and said logical device using the received application identifier and device identifier.
5. A method according to Claim 2 or Claim 4, wherein the application identifier is assigned to the application by the device manager.
6. A method according to any of Claims 2 to 5, wherein said signal further comprises a command enabling receipt by the application of a message output from the logical device indicating a change of state of the component associated with the logical device.
7. A method according to Claim 6, wherein said message is stored temporarily in a queue for subsequent transfer to said application.
8. A method according to Claim 7, wherein the receiver/decoder includes a plurality of such queues, each queue having a respective priority level indicative of the order in which messages are to be transferred from the queues to the application.
9. A method according to Claim 8, wherein the signal further comprises the priority level of the queue in which said message is to be stored temporarily.
10. A method of data communication between an application and a component of a receiver/decoder; said method comprising the steps of creating a communication channel between the application and the component using the method according to any of Claims 2 and 4 to 9; and subsequently outputting from the application a signal to the device manager comprising the application identifier and the device identifier of the logical device together with a command instructing operation of the component by the logical device associated therewith.
11. A method according to Claim 10, wherein the signal includes an address for data to be input to the component by said logical device and an address for data output by said component to said logical device.
12. A method according to Claims 8 and 11, wherein the signal includes the priority level of the queue into which a message output from the logical device is to be stored temporarily prior to transfer to the application.
13. A method according to any of Claims 2 to 12 wherein at least one of the application and the logical device is input to said receiver/decoder via a component of the receiver/decoder.
14. A method according to any preceding claim, wherein said component comprises one of an MPEG flow tuner, a serial interface, a parallel interface, a modem and a smartcard reader.
15. A method of creating a communication channel between a program and a component of a computer system, or between an application and a component of a receiver/decoder or a method of data communication between an application and a component of a receiver/decoder substantially as herein described.
16. Apparatus for creating a communication channel between a program and a component of a computer system, said apparatus comprising:
means for storing logical devices associated with respective components in said computer system, each logical device having a respective device identifier;
means for assigning a program identifier to the program; and a device manager provided between the program and each logical device for receiving from the program a signal comprising the program identifier and the device identifier of a logical device, and for creating a communication channel between said program and said logical device using the received program identifier and device identifier to enable said program to subsequently communicate with said logical device.
17. Apparatus according to Claim 16, wherein said program comprises at least part of an application, and said computer system comprises at least part of a receiver/decoder.
18. Apparatus for creating a communication channel between an application and a component of a receiver/decoder, said apparatus comprising means for storing logical devices associated with respective components in said receiver/decoder, each logical device having a respective device identifier;
means for assigning an application identifier to the application; and a common interface provided between the application and each logical device for receiving from the application a signal comprising the application identifier and the device identifier of a logical device to create a communication channel between said application and said logical device via said common interface.
19. Apparatus according to Claim 18, wherein said common interface comprises a device manager arranged to create said communication channel between said application and said logical device using the received application identifier and device identifier.
20. Apparatus according to Claim 17 or Claim 19, wherein the device manager is arranged to assign the application identifier to the application.
21. Apparatus according to any of Claims 17, 19 and 20, comprising a queue for storing temporarily a message output by the logical device for subsequent transfer to said application.
22. Apparatus according to Claim 21, comprising a plurality of such queues, each queue having a respective priority level indicative of the order in which messages are to be transferred from the queues to the application.
23. Apparatus according to any of Claims 16 to 22, further comprising means for storing data to be input to the component by said logical device and means for storing data output by said component to said logical device.
24. A receiver/decoder comprising apparatus according to any of Claims 16 to 23.
25. A receiver/decoder according to Claim 24, further comprising means for receiving a compressed MPEG-type signal, means for decoding the received signal to provide a television signal and means for supplying the television signal to a television.
26. Apparatus or a receiver/decoder substantially as herein described with reference to the accompanying drawings.
CA002284867A 1997-03-21 1997-04-25 Access control system Abandoned CA2284867A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP97400650.4 1997-03-21
EP97400650 1997-03-21
PCT/EP1997/002115 WO1998043172A2 (en) 1997-03-21 1997-04-25 Access control system

Publications (1)

Publication Number Publication Date
CA2284867A1 true CA2284867A1 (en) 1998-10-01

Family

ID=26070210

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002284867A Abandoned CA2284867A1 (en) 1997-03-21 1997-04-25 Access control system

Country Status (14)

Country Link
EP (1) EP1055176A2 (en)
JP (1) JP2002512713A (en)
CN (1) CN1260056A (en)
AU (1) AU742213B2 (en)
BR (1) BR9714603A (en)
CA (1) CA2284867A1 (en)
HU (1) HUP0004141A2 (en)
IL (1) IL131936A0 (en)
NO (1) NO994539L (en)
NZ (1) NZ500205A (en)
PL (1) PL336907A1 (en)
TR (1) TR199902263T2 (en)
WO (1) WO1998043172A2 (en)
ZA (1) ZA973612B (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0893765A1 (en) 1997-07-24 1999-01-27 CANAL+ Société Anonyme IEEE 1394 Set Top Box device driver
US20020073218A1 (en) * 1998-12-23 2002-06-13 Bill J. Aspromonte Stream device management system for multimedia clients in a broadcast network architecture
EP1304871A3 (en) * 2001-08-21 2003-06-18 Canal+ Technologies Société Anonyme Method and apparatus for a receiver/decoder
KR100959209B1 (en) * 2003-06-12 2010-05-19 엘지전자 주식회사 Method for displaying label of external Audio and Video devices
CN102768843A (en) * 2012-03-28 2012-11-07 新奥特(北京)视频技术有限公司 User-configurable cataloguing method and system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63163944A (en) * 1986-09-17 1988-07-07 インタ−ナショナル・ビジネス・マシ−ンズ・コ−ポレ−ション Application communication system
US4855905A (en) * 1987-04-29 1989-08-08 International Business Machines Corporation Multiprotocol I/O communications controller unit including emulated I/O controllers and tables translation of common commands and device addresses
US5179708A (en) * 1989-04-07 1993-01-12 At&T Bell Laboratories System inhibiting message delivery to destination process until priority of process excuting on distination processor is no higher than priority of sending process
CA2044022A1 (en) * 1990-06-28 1991-12-29 Miriam A. Nihart Common agent computer management system and method
US5206936A (en) * 1990-08-31 1993-04-27 International Business Machines Corporation Apparatus for exchanging channel adapter status among multiple channel adapters
JPH05252228A (en) * 1992-03-02 1993-09-28 Mitsubishi Electric Corp Data transmitter and its communication line management method
US5448568A (en) * 1994-04-28 1995-09-05 Thomson Consumer Electronics, Inc. System of transmitting an interactive TV signal

Also Published As

Publication number Publication date
WO1998043172A2 (en) 1998-10-01
ZA973612B (en) 1998-02-23
PL336907A1 (en) 2000-07-17
NZ500205A (en) 2001-11-30
EP1055176A2 (en) 2000-11-29
JP2002512713A (en) 2002-04-23
TR199902263T2 (en) 2000-03-21
HUP0004141A2 (en) 2001-05-28
AU2638597A (en) 1998-10-20
IL131936A0 (en) 2001-03-19
BR9714603A (en) 2000-05-16
CN1260056A (en) 2000-07-12
WO1998043172A3 (en) 2000-09-21
AU742213B2 (en) 2001-12-20
NO994539D0 (en) 1999-09-17
NO994539L (en) 1999-11-22

Similar Documents

Publication Publication Date Title
RU2274957C2 (en) Method for performing actions by decoder-receiver
CA2284018C (en) Extracting data sections from a transmitted data stream
KR100566419B1 (en) Decoder for a digital audiovisual transmission system
AU740740B2 (en) Data processing system
EP1194847A2 (en) Running and testing applications
JP2001518256A5 (en)
AU742956B2 (en) Television or radio control system development
AU742213B2 (en) Access control system
CN100399811C (en) Receiver/decoder and method of processing video data
EP1067806A1 (en) Apparatus for and method of testing applications
KR20000076405A (en) Acess control system
MXPA99008545A (en) Access control system
EP1067455A1 (en) Running and testing applications
MXPA99008546A (en) Extracting data sections from a transmitted data stream
CZ331799A3 (en) Access control system
MXPA00007900A (en) Processing of digital picture data in a decoder
MXPA00000776A (en) Ieee set top box device driver
MXPA99008543A (en) Data processing system
MXPA00007588A (en) Configuring method and device

Legal Events

Date Code Title Description
EEER Examination request
FZDE Discontinued