MXPA99008545A - Access control system - Google Patents
Access control systemInfo
- Publication number
- MXPA99008545A MXPA99008545A MXPA/A/1999/008545A MX9908545A MXPA99008545A MX PA99008545 A MXPA99008545 A MX PA99008545A MX 9908545 A MX9908545 A MX 9908545A MX PA99008545 A MXPA99008545 A MX PA99008545A
- Authority
- MX
- Mexico
- Prior art keywords
- application
- program
- identifier
- decoder
- receiver
- Prior art date
Links
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 for providing access, by means of a program, to at least one component of a computer system, more particularly to a computer system that is used in a receiver. / decoder of digital signals transmitted. The emergence of digital transmission systems whose primary purpose is to transmit television signals, particularly, but not exclusively, satellite television systems, has opened up the possibility of using those systems for other purposes. One of these is to provide interactivity with the end user. One way to do this is to run an application in the receiver / decoder through which the television signal is received. The code for the application could be stored permanently in the receiver / decoder. However, this would be rather limiting. Preferably, the receiver / decoder should be able to download the code for a required application. In this way, more variety can be provided, and applications can be updated as required without any action on the part of the user. Applications for execution through the receiver / decoder are generated by different transmission providers. Typically, the receiver / decoder has a number of interfaces, such as a serial interface and a parallel interface, for connection to external units. The manufacturer of the receiver / decoder supplies the device drivers for these interfaces. With multiple application sources and multiple sources of receiver / decoder fabrication, it is important that an application behaves in the same manner in every receiver / decoder, and each receiver / decoder must execute every application in the same correct manner. In accordance with the foregoing, in a first aspect the present invention provides a method for providing access, by means of a program, to at least one component of a computer system, the method comprising the steps of: storing a logical device associated with it, or each respective component in the system, the, or each logical device having a respective device identifier; assign a program identifier to the program; and outputting the program to a signal comprising the identifier of the program and the device identifier of, or of each logical device, a common interface between the program and the, or each logical device, to create a communication channel between that program and the, or each logical device through that interface. By means of the above, a common interface is provided between the different programs in the computer system and the "hardware" of the receiver / decoder, regardless of the sources of the programs and the hardware. The signal may also comprise a command that enables the reception by the program of a message that is output from a respective logical device, indicating a change of state of the component associated with the device. In this way, a program can be notified of an "unexpected event" that occurs in one of the components, for example, the reception of a message through a serial interface of the computer system, or the insertion of a smart card in a smart card reader of the computer system. This message can be stored temporarily in the linear list element of the computer system, for subsequent transfer to the program. In other words, the program can inform the logical device that it does not need to be supplied immediately with the message. Preferably, the linear list element comprises a plurality of linear lists, each linear list having a respective priority level, indicating the order in which the messages are to be transferred from the linear list element to the program, and the signal it also includes the priority level of the linear list in which that message is temporarily stored. In this way, the program can specify the
"urgency" with which the linear list element should treat the message, by means of indicating a level of priority with which the linear list element will deal with the message. In a second aspect, the present invention provides a method for providing access, through a plurality of programs, to at least one component of a computer system, using the method described above, each program accessing the, or each component by means of the interphase In this way, 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 present invention provides a method for transmitting data between a program and a component of a computer system; the method comprising the steps of: providing access, through the program. to the component, using the method described above; and subsequently output from the program to a signal comprising the identifier of the program, the identifier of the device, the logical device to a common interface, a command that instructs the operation of a component, by means of the logical device associated therewith , the address of the data that will be introduced to that component by means of the device, and the address for the data taken by that component to the logical device, to the common interface. In a fourth aspect, the present invention provides a method for transmitting data between a program and a component of a computer system; the method comprising the steps of: providing program access to the component, using the method described above; and subsequently output from the program to a signal comprising the identifier of the program, the identifier of the device, the logical device to a common interface, a command that instructs the operation of a component, by means of the logical device associated therewith , the priority level of the linear list, in which a message taken from the respective logical device is temporarily stored, indicating a change of state of the component associated with the device, before the transfer to the program, the address of the data to be introduced to said component by the device, and the address for the data taken by means of the component to the logical device to the common interface. Therefore, once access has been provided between the program and the component, the communication path thus established can be used to provide a route to transmit data from the program to a component and vice versa. The program and / or the, or each logical device can be entered into the computer system by means of a component. This allows convenient downloading and "updating" of the program and the logical device in the computer system. Preferably, the, or each component comprises at least one of an MPEG stream tuner, a serial interface, a parallel interface, a modem and a smart card reader. In a fifth aspect, the present invention provides an apparatus for providing access, by means of a program, to at least one component of a computer system, a logical device associated with it, or each respective component that is being stored in that system, the , or each logical device having a respective device identifier; the apparatus comprising: elements for assigning a program identifier to the program; and elements for creating a communication channel between the 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, or each logical device. The apparatus may also comprise elements to enable reception, by means of the program, of a message taken from a respective logical device, indicating a change of state of the component associated with the device. Preferably, the computer system also comprises linear list elements for temporarily storing a message taken through the device, for subsequent transfer to the program. The linear list element may comprise a plurality of linear lists, each linear list having a respective priority level, indicating the order in which the messages are to be transferred from the linear row element to the program. The computer system can also comprise elements for storing the data introduced to the component by means of the device, and the data taken by the component to the logical device to the common interface. Preferably, the, or each logical component is connected to the respective associated component by means of a device driver. In a sixth aspect, the present invention provides a receiver / decoder for receiving transmission signals, the receiver / decoder comprising an apparatus as described above. Preferably, the receiver / decoder also comprises elements for receiving a compressed MPEG-type signal, elements for decoding the received signal, for providing a television signal, and elements for supplying the television signal to a television. The 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, in accordance with 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 configuration of files inside a module downloaded into the memory of an interactive receiver / decoder. Figure 4 shows the configuration of the memory volumes of the interactive receiver / decoder. Figure 5 is a schematic diagram of the receiver / decoder interfaces. Figure 6 shows the architecture of the software in the receiver / decoder.
Figure 7 shows an example of the connections between a device manager, a plurality of clients and a plurality of devices. In Figure 1 an overview of a digital television system 1000 is shown. 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, the 2002 MPEG-2 compressor is a transmission center receiving a stream of digital signals (typically a stream of video signals). The compressor 2002 is connected to a multiplexer and encoder 2004 by means of the link 2006. The multiplexer 2004 receives a plurality of additional input signals, assembles one or more transport streams and transmits compressed digital signals to a transmitter 2008 of the transmission center by link 2010, which of course can take a wide variety of forms, including telecom links. The transmitter 2008 transmits electromagnetic signals by means of the 2012 uplink, to a 2014 satellite transmitter-receiver, where these are processed electronically and transmitted via the 2016 speculative downlink to the land receiver 2018, conventionally in the form of a own dish or rented by the end user. The signals received by the receiver 2018 are transmitted to an integrated receiver or decoder 2020 owned or rented by the end user, and connected to the television set 2022 of the end user. The receiver / decoder 2020 decodes the compressed MPEG-2 signal to a television signal for the television set 2022. A conditional access system 3000 is connected to the multiplexer 2004 and the receiver / decoder 2020, and is located partially in the transmission center, and partially in the decoder. This allows the user fine! access digital television transmissions from one or more transmission providers. A smart card can be inserted, capable of deciphering messages related to commercial offers (that is, one or many television programs sold by the transmission provider), within the receiver / decoder 2020. Using the decoder 2020 and the smart card, the end user can buy commercial offers in either a subscription mode or a pay-per-event mode. An interactive system 4000, also connected to the multiplexer 2004 and the receiver / decoder 2020, and again partially located in the transmission center and partially in the decoder, allows the end user to interact with different applications by means of a modulated return channel 4002. -desmodulated. Figure 2 shows the general architecture of the interactive television system 4000 of the digital television system 1000 of the present invention. For example, the interactive 4000 system allows an end user to buy catalog items on the screen, check local news and climate maps on demand, and play games through their television set. The interactive system 4000 comprises in general four main elements: - an originating tool 4004 in the transmission center (or some other place), to allow a transmission provider to create, develop, debug and test applications; an application and data server 4006, in the transmission center, connected to the originating tool 4004, to allow a transmission provider to prepare, authenticate, and format applications and data for dispatch to the multiplexer and encoder 2004 for insertion into the stream MPEG-2 transport (typically the private section thereof) to be transmitted to the end user; a virtual machine that includes a runtime machine (RTE) 4008, which is an executable code installed in the receiver / decoder 2020 own or rented by the end user, to allow the end user to receive, authenticate, decompress, and load applications within working memory 2024 of receiver / decoder 2020 for execution. Machine 4008 also runs resident, general-purpose applications. The 4008 machine is independent of the hardware and the operating system; and a modulated-demodulated back channel 4002 between the receiver / decoder 2020 and the application and data server 4006, to enable signals that tell the server 4006 to insert data and applications into the MPEG-2 transport stream upon request of the end user. The interactive television system operates using "applications" that control the functions of the receiver / decoder and different devices contained therein. The applications are represented on the machine 4008 as "resource files". A "module" is a set of files and resource data. Many modules may be required to form an application. A "memory volume" of the receiver / decoder is a storage space for the modules. An "interface" is used to download modules. The modules can be downloaded into the receiver / decoder 2020 from the MPEG-2 transport stream. Now the elements mentioned in the previous paragraph will be described in more detail. For the purposes of this specification, an application is a piece of computer code for controlling high-level preference functions of the receiver / decoder 2020. For example, when the end user places the focus of a remote controller on a button object that is seen on the screen of the television set 2022, and presses the validation key, the sequence of instructions associated with the button is executed. An interactive application proposes menus and executes commands on the end user's request, and provides data related to the purpose of the application. The applications can be either resident applications, that is, stored in the ROM (or FLASH or other non-volatile memory) of the receiver / decoder 2020, or transmitted and downloaded into the RAM or FLASH of the decoder 2020. The examples of the applications are, - • An Initialization Application. The receiver / decoder 2020 is equipped with a resident initialization application which is an adaptive collection of modules (this term being defined in more detail later herein), which allows the receiver / decoder 2020 to be immediately operative in the MPEG environment. 2. The application provides core characteristics that can be modified by the transmission provider if required. It also provides an interface between resident applications and downloaded applications. • An Ignition Application. The application of ignition allows any application, whether downloaded or resident, to run on the receiver / decoder 2020. This application acts as a loading operation on the arrival of a service, in order to start the application. The ignition is discharged into the RAM and, therefore, can be easily updated. This can be configured in such a way that the interactive applications available on each channel can be selected and executed, either immediately after downloading or after preloading. In the case of pre-loading, the application is loaded into the 2024 memory, and activated by power-on when required. • A Program Guide. The Program Guide is an interactive application that gives complete information about programming. For example, it can give information about, say, the one-week television programs provided by each channel of a digital television bouquet. By pressing the key on the remote controller 2026, the end user accesses an added screen, above the event that is displayed on the television set 2022 screen. This added screen is a navigator that gives information about the current and future events of each channel of the digital TV corsage. By means of pressing another key on the remote controller 2026, the end user accesses an application that visually displays a list of information about the events during a week. The end user can also search and select events with simple and custom criteria. The end user can also directly access a selected channel. • One Pay Per View application. The pay-per-view application is an interactive service available on each Pay Per View channel of the digital TV bouquet., in conjunction with the 3000 conditional access system. The end user can access the application using a TV guide or channel navigator. Additionally, the application automatically starts as soon as the Pay Per View event is detected on the Pay Per View channel. Then the end user is able to buy the event in progress either through his smart daughter 3020 card or via communication server 3022 (using the modem, a telephone and DTMF, MINITEL or similar codes). The application can be either resident in the ROM of the receiver / decoder 2020 or downloadable within the RAM of the receiver / decoder 2020. • A PC Download application. Upon request, an end user can download computer software using the PC download application. • A Magazine Browser application. The magazine browser application comprises a cyclic video transmission of images with navigation of the end user via buttons on the screen. • A questionnaire application. The questionnaire application is preferably synchronized with a transmission questionnaire program. As an example, multiple selection questions are displayed on the 2022 television screen visually, and the user can select a response using the remote 2026 controller. The questionnaire application can inform the user if the answer is correct or not, and can keep score of the user. • An application of Shopping by Television. In one example of the television shopping application, goods for sale are transmitted to the receiver / decoder 2020, and displayed visually on television 2022. Using the remote controller, the user can select a particular item to buy it. The order of the article is sent via the modulated-demodulated return channel 4002 to the application and data server 4006, or to a separate sales system, whose telephone has been downloaded to the receiver / decoder, possibly with an order to charge the account to a credit card that has been inserted in one of the 4036 card readers of the receiver / decoder 2020. • A Telebanca application. In one example of the telebanking application, the user inserts a bank card into one of the receiver cards 4036 of the receiver / decoder 2020. The receiver / decoder 2020 marks the user's bank, using a telephone number stored on the card bank or stored in the receiver / decoder, and then the application provides a number of facilities that can be selected using the remote 2026 controller, for example, to download an account statement via the telephone line, transfer funds between accounts, request a checkbook, etc. • An Internet Browser application. In an example of the Internet browser application, user instructions are entered, such as a request to view a web page that has a particular URL, using the remote 2026 controller, and these are sent through the modulated return channel 4002. -desmodulated to application server 4006 and data. The appropriate web page is then included in the transmissions from the transmission center, received by the receiver / decoder 2020 via the uplink 2012, the transmitter-receiver 2014 and the descending 2016 link, and is displayed visually on the television 2022. The applications are stored in the memory locations in the receiver / decoder 2020 and are represented as resource files. Resource files include graphics object description unit files, variable block unit files, instruction sequence files, application files, and data files. The graphic object description unit files describe the screens, the man-machine interface of the application. The variable block drive files describe the data structures that the application handles. The instruction sequence files describe the processing operations of the applications. The application files provide the entry points for the applications. Applications made in this way can cause data files, such as icon library files, image files, character font files, color table files, and ASCII text files. An interactive application can also obtain data online by making entries and / or outputs. The machine 4008 only loads into its memory those resource files that it needs at a given moment. These resource files are read from the graphic object description unit files, instruction sequence files, and application files; the variable block drive files are stored in the memory after a procedure call to load the modules and remain blocked there until a specific call is made to a procedure to download the modules. With reference to Figure 3, a module 4010, such as a television shopping module, is a set of resource and data files comprising the following: a single application file 4012;
an indeterminate number of files 4014 of the graphic object description unit; an indeterminate number of 4016 files of variable blocks unit; an indeterminate number of 4018 instruction sequence files; and where appropriate, 4020 data files, such as icon library files, image files, character font files, color table files and ASCII text files. In the MPEG data stream, each module comprises a group of MPEG tables. Each MPEG table can be formatted as a number of sections. In the MPEG data stream, each section has a "size" of up to 4 kbytes. For the transfer of data through the serial and parallel port, for example, the modules are divided in a similar way into tables and sections, the size of the section varying with the means of transport. The modules are transported in the MPEG data stream in the form of data packets of typically 188 bytes, within respective types of data streams, for example, video data streams, audio data streams and streams. of teletext data. Each packet is preceded by a packet identifier (PID) of 13 bits, a PID for every packet transported in the MPEG data stream. A table of program maps (PMT table) contains a list of the different data streams, and defines the content of each data stream, in accordance with the respective PID. A PID can notify a device of 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. These can be downloaded into the permanent FLASH memory of the receiver / decoder 2020, as a resident software, or transmitted for the purpose of downloading into the RAM of the decoder 2020, only when the end user needs it. A memory volume is a storage space for the modules 4010. Those storage spaces are located in the memory 2024 of the receiver / decoder 2020. With reference to Figure 4, the memory 2024 is typically divided into a volume 4022 of the RAM , a volume 4024 of the FLASH, and a volume 4026 of the ROM. The memory can also be divided into memory volumes associated with the different interfaces, through which the modules are downloaded into the receiver / decoder 2020, for example, an MPEG volume for storing the received modules by means of a serial interface . The volume 4022 of the RAM, in turn, is divided into a zone dedicated to the microprogramming, a workspace for the machine 4008 and the buffers. FLASH memory and other non-volatile memory can be accessed either through an application, or the machine itself through a device manager. Each volume contains a list of modules 4010, each module 4010 containing a list of files 4012, 4014, 4016, 4018, 4020. It is possible to have two files with the same name, which can be located in different modules. For example, a version of the application is typically stored on volume 4026 of the ROM, with later versions being downloadable within volume 4024 of the FLASH, to replace the version stored in the volume of the ROM with that volume stored in the volume 4024 of the FLASH. The content of the files can be compressed in the LZW format, however, since the decompression of the files takes a certain period of time, these can be received in uncompressed format. The physical interfaces of the receiver / decoder 2020 are used to download data. With reference to Figure 5, the receiver / decoder 2020 contains, for example, six discharge means; the 4028 MPEG stream tuner, the serial 4030 interface, the parallel 4032 interface, the 4034 modem and two 4036 card readers. With multiple sources of applications and multiple sources of manufacture of the receiver / decoder 2020, it is important that an application behaves in the same manner in every receiver / decoder, and each receiver / decoder must execute every application in the same correct manner. With reference to Figure 6, the receiver / decoder 2020 comprises a runtime machine 4008 operating under the control of a microprocessor and a common application programming interface 4054. These are installed in every receiver / decoder 2020, in such a way that all the receivers / decoders 2020 are identical from the point of view of the application. Figure 6 shows the architecture of the receiver / decoder 2020 to execute the applications 4056. The virtual machine 4007 executes the applications 4056, which may comprise the applications 4056 'directly coupled to the virtual machine, or the applications 4056' 'downloaded to the receiver / decoder 2020 from, for example, the MPEG data stream. The runtime machine 4008 also visually displays graphics and text, calls devices for services, receives the "events" and uses the functions of a 4058 library 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 be, therefore, functions of the receiver / decoder 2020 that may not be seen by any application. A presentation function that communicates with the virtual machine 4007 manages the presentation of text and graphics to the end user, and the presentation of the actions of the end user to the virtual machine 4007. The text and graphics are superimposed on the visual display in the television set 2022, and the user can interact with the application 4056 by means of a keyboard. The term "keyboard" includes remote controller 2026. The runtime machine 4008 is an executable code installed on the virtual machine 4007 of the receiver / decoder 2020, and includes a virtual machine for interpreting and executing applications. The 4008 machine can be adapted to any operating system, including a single task operating system (such as MS-DOS). The machine 4008 comprises a process sequencing unit (which takes different events such as a pressed key, to perform different actions) and contains its own programmer to manage linear lists of events from different hardware interfaces. It also handles the visual display of graphics and text. Machine 4008 comprises a code load program for loading and unloading applications 4056 '' within decoder memory 2024. Only the necessary code is loaded into the volume 4022 of the RAM or the volume 4024 of the FLASH memory, in order to ensure optimal use. The downloaded data is verified by means of an authentication mechanism, to avoid any modification of an application 4056, or the execution of any unknown application. The machine 4008 also comprises a decompressor. As the application code (a form of intermediate code) is compressed to save space, and for fast downloading from the MPEG-2 transport stream, or by means of an interconstructed receiver / decoder mode, it must be decompressed. code before loading it into RAM. The virtual machine 4007 also comprises an intermediate code interpreter to interpret the application code, and uses a process sequencer unit to update the different variable values, and determine the state changes, and an error verifier. With reference to Figure 6, with respect to an application, a function of the decoder 2020 is "seen" as a 4060 device. There may be, therefore,, functions of the receiver / decoder 2020 that may not be seen by any application. A 4060 device comprises a logical device unit that could correspond to a component
4062 or hardware 4064 interface 4066. Those devices are referred to as "low level devices" 4068. The output of that device 4068 could be connected to at least one device driver 4070 to convert the output of the logic signals by the device 4068, to signals that are required to control, for example, a hardware interface 4064. Alternatively, the device 4068 can itself control a component or interface of the receiver / decoder 2020, that is, the output of the device can be directly connected to the hardware 4066. The examples of the low-level devices 4068 are described below. An LCARD device enables a program for communication with the smart card contained in a smart card reader 4036, and a RCAR device enables a program for communication with the smart card contained in the other smart card reader 4036. For example, these devices enable a program to read the status of the card, read the history of the card and send an input message to the card. The devices also inform a program of the insertion of a card in the reader, the removal of a card from the reader and the restoration of the card if the program does not require it. The LCARD and RCARD devices are specific to the protocol used to execute the card. Typically an IS07816 protocol is used.
An SCTV device enables a program to verify and configure an intelligent card output to the television set 2022. For example, this device enables a program to request information about the sound characteristic of the output of the smart card, perform a "MUTE" ("SILENCE") on the sound and dynamically program the RGB levels. 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 an ongoing frequency of the tuner, read the parameters of the tuner and program the tuner. A SERIAL device enables a program for communication with the equipment through a serial link, and a PARALLEL device enables a program for communication with the equipment through a parallel link. For example, these devices enable a program to send a message through the respective link and inform a program of the receipt of a message through that link. A MODEM device allows the receiver / decoder to communicate with a data service by means of a half-duplex internal modem that supports V23. The MODEM device requests the dialing of a number, the sending of a message to the data server and the disconnection of the modem, and signals the reception of a message, the detection of errors and the loss or detection of a carrier. Remote devices, which run at a remote location, can be any of the local devices, except that a port and protocol must be defined. In addition to the "low level devices" the receiver / decoder 2020 may also include "high level devices" 4072 which control the operations of the receiver / decoder 2020. The examples of the high level devices 4072 are described below. An MLOAD device allows an application to load an MPEG section, a complete MPEG table or a group of MPEG sections from an MPEG stream of bits, which correspond to the filtering criteria of the hardware and software. For example, the device allows a program to download only those sections of a group that require an application at any time. An FDLOAD device automatically manages file downloads through serial and / or parallel ports. The device can signal both the start and the end of the file download, by means of serial and / or parallel ports, as required by a program. The device can issue a request to the program for an index table that includes the PID of the file to be downloaded, and the PID ECM decryption of the file. The program loads the index table and sends it to the device, which subsequently requests the download of the file to the program. The program extracts the PID and the PID ECM for the file from the index table, and requests demultiplexing to allow the file to be downloaded in its entirety. At any time, the program can issue a "fload_offline" call to instruct the FDLOAD device to stop managing the serial and / or parallel ports. The devices are identified with an identifier"device_id" unique, for example, "LCARD_DEVICE_ID" identifies the LCARD device, and "RCARD_DEVICE_ID" identifies the RCARD device. When a new device is created, it can be installed on existing receivers / decoders 2020 by downloading the relevant application 4056 '' from the transmission center. This download is made to the receiver / decoder 2020 by an application 4056 that verifies the hardware and software versions and, if correct, loads the software module representing the new device 4060, and requests a procedure from the library 4058 for install the code of the new device inside the microprogram (in the FLASH memory). This can provide a flexible and secure installation of the new functions inside the receiver / decoder 2020, without affecting the rest of the software. The device manager 4074 is a common interface between the applications 4056 and the devices 4060 associated with specific functions of the receiver / decoder 2020. By adopting that common interface the procedures can be standardized, stored in a "library" of the machine 4008 of runtime, allowing access to the 4060 devices, and to the "events" associated with the devices, using a limited number of procedures. The device manager 4074 controls access to the 4060 devices, declares the reception of an unexpected event, and manages the shared memory. There are 18 procedures that give access to device manager 4074, to a 4060 device itself or to a memory management.
Device_Open_Channel () Opens a channel to the administrator Device__Close_Channel () Closes a channel to the administrator Device_Open_Device () Opens a channel to the device Device_Close_Device () Closes a channel to the device Device_Event () Unexpected event handling Device_Call 0 Synchronous access to a device Device_Io () Access asynchronous to a device Device_Info 0 Information about a device Set_Buffer_outline () Defines a buffer division for buffers Get Buffer outline () Reads the division area of the present buffer Pool_Info O Provides information about the buffer area of the buffer present Device_Alloc_Buffer () Assigns the Device_Free_Buffer memory OR Releases the Device_Loc _Buffer memory (1 Blocks the memory Device_Info_Free_Buffer () Gives the number of free buffers Device_Info_Alloc_Buffer O Lists the allocated buffers Get Buffer Size () Gives the size d e the allocated buffer
With reference to Figure 7, before using the services of any 4060 device, a program (such as an application manuscript) has to be declared as a "client" 4076, that is, an access path to the 4060 device or the 4074 device administrator. The administrator gives the customer 4076 a customer number that is referenced in all accesses to a device. A device 4060 may have many 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 device manager 4068 with the procedure Device_Open_Channel () 4078. With this procedure, the Device administrator gives customer 4076 the client number. Device manager 4074 outputs a "client_id", which comprises the address of the variable that contains the assigned client number (there should never be two clients with the same number), and an "error_code", which comprises either error__code "0"indicating that the procedure has been successfully completed, or error_code" e_client_max "indicating that the maximum number of clients the device administrator can handle has been reached, typically 256. The first assigned client number is 0, and is incremented in 1 for each call using the "Device_Open_Channel" procedure up to the value of 255. This happens regardless of the removal of a client from the client list. When the customer number 255 has been assigned, and a subsequent call "Device_Open_Channel" occurs, or the error code "e_client_max" is removed to indicate that the client list is "full", or the client is assigned the smallest client number available, that is, a customer number of a customer that has been previously removed from the customer list. To declare a 4076 client to a 4060 device, a client uses the Device_Open_Device () 4080 procedure, and with it the client_id and the device_id are transmitted. If the procedure has been successfully completed, the device manager issues an error message "0", if the client does not exist "e_client_inconnu", if the device does not exist "ej >; eriph_inconnu ", if the device has already been declared to the e_client_max device, or" w_deja_vu. "A 4076 client can be removed from a list for a 4060 device with the Device__Close_Device () procedure. The client_id and the device_id are introduced to the administrator device, which in turn pulls either error_code "0" if the procedure has been successfully completed, error_code "w_client_inconm?" if the client is unknown to the device manager, or error_code "w_periph_inconnu" if the device is unknown to the device administrator A 4076 client can be removed from the client list of device administrator 4074 with the procedure Device_Close_Channel (). The "client_id" is entered into the device manager, which in turn outputs either error_code "0" if it is finished successfully the procedure, or error_code "w_client_inconnu" if the client is unknown to the device administrator, this procedure suppresses the client e the device manager 4074 list, and the list of each 4060 device for which he is a client, that is, if the application has not yet done so, the Device_Close_Channel () procedure calls the Device_Call_Device () procedure for each device for which that client is a customer. Then you can assign the client number thus released, using this procedure, using the procedure Device_Open__Channel (), for a new client. The "Device_Info ()" procedure provides information about a 4060 device to a 4076 client. The client_id and the device_id are entered into the device manager 4074, which returns information regarding the device, typically the device version, the maximum number of devices. clients for the device and the actual number of clients using the device, the client, together with error_codes indicating that the procedure has been terminated or that either the client or the device is unknown to the device administrator 4074. The procedure "Device_Event" is a means to manage "unexpected events", that is, a specific circumstance has occurred, or something unexpected. The "Device_Event" procedure allows the client to declare himself the recipient of an unexpected event from a device. The messages for the application, called "events", are placed within one of, say, five linear lists of the machine 4008. Each of these linear lists corresponds to a priority level 0 to 4 (4 = highest priority, 0 = minimum priority). When messages are extracted from the linear list for transfer to an application, machine 4008 looks for the linear list that has the highest priority that an event contains. The event is removed from the linear list and used to activate the process sequencing unit for which it is intended. All "external" events, whether introduced to the presentation function by the keyboard, or received through an interface, pass through an event interface before being processed by machine 4008. However, any Internal events, typically generated by the internal devices, do not pass through the event interface, but go directly to the machine 4008. For each procedure, the last call parameter is the address of a variable that is to be set by the administrator of device, which indicates how the device manager handled the command. The reason for the issuance of an unexpected event to a client depends on the 4060 device. For example, with respect to the LCARD DEVICE device, unexpected events include: the removal of a card from the card reader; the insertion of a card in the card reader;
the restoration of the card by the client, each of the above is identified by means of a respective unique event code ("ev_lcard_extract", "ev_lcard_insert" and "ev_card_reset" respectively). To receive unexpected events, the client must declare himself as a recipient of each event that he might wish to receive using the "device_event" procedure. The following parameters are introduced to the device manager: client_id; device_id; a command called "get_event" that enables sending in an unexpected event; the event code; and the priority of the event, between 0 and 4. Many devices can declare the reception of the same unexpected event, with the same or different priority. In this case, the event is sent to each client in a specific order (by priority and customer number). For example, client 2 declares itself the receiver of the ev_card_extract event of the LCARD device with priority 2. Client 3 declares itself the receiver of the same event with priority 2, client 1 with priority 4, and finally the client 4 with priority 3. If the card is removed from the reader, the following sequence of events occurs; the ev_card_extract event addressed to the client 1 is placed in the linear list of the execution time machine 4008 corresponding to the priority 4; the same event addressed to the client 4 is placed in the linear list of the execution time machine 4008 which corresponds to the priority 3; the same event directed to the client 2 is placed in the linear list of the execution time machine 4008 corresponding to the priority 2; and the same event addressed to the client 3 is placed in the linear list of the runtime machine 4008 which corresponds to the priority 2. For some devices a buffer may be involved in an unexpected event. In that case, the device allocates this buffer by means of the device manager 4068. In the application programming language, a procedure allows access to parameters that may be associated with events; event_code; client_id; evt_paraml (which typically has a size of 4 bytes); and evt_j? aram2 (which typically has a length of 2 bytes). The exact meaning of the evt_param parameters depends on the device and the reason for the placement of the event. The association of a buffer with an unexpected event depends on the device. If the association exists, 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 evt_paraml parameter set to "0".
If the device has a buffer for association with an unexpected event, removal of a client from a list of a device, or a list from the device manager results in the de-allocation of the buffer, except where it has been "locked" "the buffer by means of the application, using the procedure" device_lock_buffer ". Evt_param2 indicates that the procedure has been successfully completed, and that the device has obtained a result. A client can stop the reception of any unexpected event by using the "ret_event" command instead of the "get_event" command. The device manager 4074 provides access via the 4076 clients to the 4060 devices in two different ways: "synchronous access" or "asynchronous access". Synchronous access, using the "Device_Call" procedure, is a means for accessing a specific function to a device, and which does not involve the placement of the response from the device in a linear list of the runtime machine 4008; the answer is available immediately. Typically, this method is used in the configuration of the hardware interfaces of the receiver / decoder 2020. Using this procedure, the client enters the following parameters to the device, by means of the device manager: client_id; device_id; "call_cmde", which includes the type of operation that the device will perform. For example, with respect to the SERIAL device that allows a program to communicate with the equipment through the serial link, the "serial_setup" command establishes the configuration of the serial link; "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. After the termination of the operation requested by the client, the device outputs a "call_report", which includes a report of the execution. The call_report typically comprises one of a previously determined number of reports that can be issued to the client. In turn, the device manager 4074 issues an error_code to the client 4076, the error_code typically comprises one of: e_client_inconnu; e_j? eriph_inconnu; "e_cmd_inconnu", which notifies the client that the command was unknown;"e_report_periph", which is a specific error to the device; and "0", which indicates that the procedure was successfully completed. The device only writes the output data to the address of the memory location identified by the "rec_adr" parameter when the error__code "0" is received. Device_call blocks all other applications until the device has finished running. Asynchronous access, using the procedure
"Device_Io", is a means to access a specific function to a device, and that involves waiting for a response. For example, with respect to the SERIAL device, the "serial_send" command sends a message through the serial link. After the successful transmission of all data (before a previously established time-out parameter is reached), the device sends a report to the program. When this report is available, an event is placed within the linear list of machine 4008 to signal this arrival. Using this procedure, the client enters the following parameters to the device, through the device manager: client_id; device_id; "io cmde", which comprises the type of operation that the device will perform; the event code associated with the end of the operation; the priority of the event associated with the event; em_adr; and rec_adr. After the termination of the operation requested by the client, the device takes out an "io-report", which includes a report of the execution. The io_report typically comprises one of a previously determined number of reports that can 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. After receiving the report "0", the device administrator issues an error_code to the client 4076, the error__code comprising one of: e_client_inconnu; e_periph_inconnu; e_cmd_inconnu; "e_cmd_inconnue", which indicates that the event code is unknown; "e_priorite_inconnue", which indicates that the priority is unknown;
e_report_periph; It will be understood that the present invention has been described above purely by way of example, and any modifications of the detail within the scope of the invention can be made. Each feature described in the description may be provided, and (where appropriate) the claims and drawings independently or in any appropriate combination. In the preferred embodiments mentioned above, certain features of the present invention have been implemented, using computer software.
However, it will of course be clear to the experienced person that any of these features can be implemented, using the hardware. Additionally, it will be readily understood that the functions performed by the hardware, computer software, and the like, are performed on or using electrical or similar signals. The cross reference is made to our pending requests, all of them having the same filing date, and titled Signal Generation and Transmission
(Lawyer Reference Number PC / ASB / 19707), Card
Intelligent to use with a Key Transmit Signal Receiver, and Receiver System (Lawyer Reference Number PC / ASB / 19708), Transmission and Reception and Conditional Access System for it (Attorney Reference Number PC / ASB / 19710 ), Downloading a Computer File from a Transmitter through a Receiver / Decoder to a Computer (Lawyer Reference Number PC / ASB / 19711), Transmission and Reception of Television Programs and Other Data (Lawyer Reference Number PC / ASB / 19712), Downloading Data (Lawyer Reference Number PC / ASB / 19713), Computer Memory Organization (Lawyer Reference Number PC / ASB / 19714), Development of Television or Radio Control System (Lawyer Reference Number PC / ASB / 19715), Extracting Data Sections from a Transmitted Data Stream (Lawyer Reference Number PC / ASB / 19716), Control System Access (Lawyer Reference Number PC / ASB / 19717), Data Processing System (Lawyer Reference Number PC / ASB / 19718), and Transmission and Reception System, and Receiver / Decoder and Remote Controller for it (Reference Lawyer Number PC / ASB / 19720). The descriptions of these documents are incorporated herein by reference. The list of applications includes the present application.
Claims (26)
- CLAIMS 1. A method to create a channel of communication between a program and a component of a computer system, the method comprising the steps of: storing associated logical devices with respective components in the computer system, each logical device having an identifier of respective device; assign a program identifier to the program; and removing from the program a signal comprising the program identifier and the device identifier of a logical device, to a device manager that is provided between the program and each logical device, the device administrator creating a communication channel between the program and the logical device, using the received program identifier and device identifier to enable the program to subsequently communicate with the logical device.
- 2. A method, according to Claim 1, wherein the program comprises at least part of an application, and the computer system comprises at least part of a receiver / decoder.
- 3. A method for creating a communication channel between an application and a component of a receiver / decoder, the method comprising the steps of: storing logical devices associated with respective components in the receiver / decoder, each logical device having a device identifier respective; assign an application identifier to the application; and extracting from the application a signal comprising the application identifier and the device identifier of a logical device, to a common interface that is provided between the application and each logical device to create a communication channel between said application and said logical device , through the common interface.
- A method, according to Claim 3, wherein the common interface comprises a device manager to create the communication channel between the application and the 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 administrator.
- A method, according to any of Claims 2 to 5, wherein the signal also comprises a command that enables the reception, by the application, of a message that leaves the logical device, indicating a change of state of the component associated with the logical device.
- 7. A method, according to the claim 6, where the message is temporarily stored in a linear list for subsequent transfer to the application.
- 8. A method, in accordance with the claim 7, wherein the receiver / decoder includes a plurality of those linear lists, each linear list having a respective priority level indicating the order in which the messages are to be transferred from the linear lists to the application.
- 9. A method, in accordance with the claim 8, wherein the signal also comprises the priority level of the linear list in which said message is to be temporarily stored.
- 10. A method of data communication between an application and a component of a receiver / decoder; the 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 through 9; and subsequently outputting from the application a signal to the device manager, comprising the application identifier and the device identifier of the device, together with a command that orders the operation of the component by the logical device associated therewith.
- 11. A method, according to Claim 10, wherein the signal includes an address for the data to be input to the component by means of the logical device., and an address for the data that the component outputs to the logical device.
- 12. A method, according to claims 8 and 11, wherein the signal includes the priority level of the linear list within which a message exiting the logical device is to be stored temporarily, prior to its transfer to the application.
- A method, according to any of Claims 2 to 12, wherein at least one of the application and the logic device is input to the receiver / decoder by means of a receiver / decoder component.
- A method, according to any of the preceding Claims, wherein the component comprises one of an MPEG stream tuner, a serial interface, a parallel interface, a modem and a smart card reader.
- 15. A method for 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 communicating data between an application and a component of a receiver / decoder substantially as described herein.
- 16. An apparatus for creating a communication channel between a program and a component of a computer system, the apparatus comprising: elements for storing logic devices associated with respective components in the computer system, each logical device having a respective device identifier; elements to assign a program identifier to the program; and a device manager that is provided between the program and each logical device to receive from the program a signal comprising the program identifier and the device identifier of a logical device, and to create a communication channel between the program and the device. logical device using the received program identifier and device identifier, to enable said program to communicate subsequently with the logical device.
- 17. The apparatus, in accordance with the claim 16, wherein the program comprises at least part of an application, and the computer system comprises at least part of a receiver / decoder.
- 18. An apparatus for creating a communication channel between an application and a component of a receiver / decoder, the apparatus comprising elements for storing logic devices associated with respective components in the receiver / decoder, each logic device having a respective device identifier; elements to assign an application identifier to the application; and a common interface that is provided between the application and each logical device, to receive 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 device logical by means of the common interface.
- The apparatus, according to Claim 18, wherein the common interface comprises a device manager configured to create the communication channel between the application and the logical device, using the received application identifier and device identifier.
- 20. The apparatus, in accordance with the claim 17 or Claim 19, wherein the device manager is configured to assign the application identifier to the application.
- The apparatus, according to any of Claims 17, 19 and 20, comprising a linear list for temporarily storing a message that outputs the logical device for subsequent transfer to the application.
- 22. The apparatus according to Claim 21, characterized in that it comprises a plurality of those linear lists, each linear list having a respective priority level, indicating the order in which the messages are to be transferred from the lists. linear to the application.
- The apparatus, according to any of Claims 16 to 22, characterized in that it also comprises elements for storing the data to be introduced to the component by means of the logical device, and elements for storing the data that the component takes out to the device. logical.
- 24. A receiver / decoder comprising the apparatus according to any of the Claims. 16 to 23.
- 25. A receiver / decoder, according to Claim 24, characterized in that it also comprises elements for receiving a compressed MPEG-type signal, elements for decoding the received signal, for providing a television signal, and elements for supplying the TV signal to a television.
- 26. An apparatus or receiver / decoder substantially as described herein with reference to the accompanying drawings.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP97400650.4 | 1997-03-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
MXPA99008545A true MXPA99008545A (en) | 2000-08-01 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6938166B1 (en) | Method of downloading of data to an MPEG receiver/decoder and MPEG transmission system for implementing the same | |
AU740740B2 (en) | Data processing system | |
JP2009077451A (en) | Method of extracting data section from transmission data stream | |
JP2001518256A5 (en) | ||
US6360195B1 (en) | Television or radio control system development | |
AU742956B2 (en) | Television or radio control system development | |
AU742213B2 (en) | Access control system | |
EP0908821A1 (en) | Digital code interpreter | |
CZ200287A3 (en) | Device and method for testing software applications | |
MXPA99008545A (en) | Access control system | |
KR20000076405A (en) | Acess control system | |
CZ331799A3 (en) | Access control system | |
MXPA99008543A (en) | Data processing system | |
MXPA99008546A (en) | Extracting data sections from a transmitted data stream | |
EP1067455A1 (en) | Running and testing applications | |
MXPA00000776A (en) | Ieee set top box device driver | |
CZ331899A3 (en) | Data processing system | |
MXPA99008547A (en) | Television or radio control system development |