ES2206957T3 - Actuador para dispositivo de caja de adaptacion multimedios para norma ieee1394. - Google Patents

Actuador para dispositivo de caja de adaptacion multimedios para norma ieee1394.

Info

Publication number
ES2206957T3
ES2206957T3 ES98933845T ES98933845T ES2206957T3 ES 2206957 T3 ES2206957 T3 ES 2206957T3 ES 98933845 T ES98933845 T ES 98933845T ES 98933845 T ES98933845 T ES 98933845T ES 2206957 T3 ES2206957 T3 ES 2206957T3
Authority
ES
Spain
Prior art keywords
identifier
interface
application
logical
device driver
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.)
Expired - Lifetime
Application number
ES98933845T
Other languages
English (en)
Inventor
Jerome Meric
Christophe Declerck
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.)
KCA Licensing SA
Original Assignee
Canal Plus Technologies SA
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 Canal Plus Technologies SA filed Critical Canal Plus Technologies SA
Application granted granted Critical
Publication of ES2206957T3 publication Critical patent/ES2206957T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40058Isochronous transmission
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40065Bandwidth and channel allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40117Interconnection of audio or video/imaging devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0012High speed serial bus, e.g. IEEE P1394

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
  • Stored Programmes (AREA)
  • Circuits Of Receivers In General (AREA)
  • Selective Calling Equipment (AREA)
  • Small-Scale Networks (AREA)
  • Eye Examination Apparatus (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Iron Core Of Rotating Electric Machines (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Se presenta una interfaz de dispositivo para su uso en un receptor/descodificador (2020) para un sistema de emisión de televisión digital en el cual las señales recibidas se pasan a través de un receptor al receptor/descodificar y desde allí a un aparato de televisión (2022). El receptor/descodificar descodifica una señal comprimida de tipo MPEG y es controlado por un equipo controlador remoto (2026), a través de una interfaz en el receptor/descodificador. El funcionamiento del receptor/descodificador se controla mediante una máquina virtual (VM) que incluye un motor de ejecución (RTE) (4008). El receptor/descodificador incluye una serie de interfaces para unidades externas. La interfaz de dispositivo hace posible que una aplicación se ejecute mediante el RTE para acceder a una interfaz IEEE (1394).

Description

Actuador para dispositivo de caja de adaptación multimedios para Norma IEEE1394.
La presente invención se refiere a la interconexión de programas de aplicación con dispositivos físicos (periféricos), particularmente pero no exclusivamente en el contexto de receptores/descodificadores para sistemas de televisión digital.
La llegada de sistemas de transmisión digital ha abierto la posibilidad de usar tales sistemas para otros fines. Uno de estos es proporcionar interactividad con el usuario final. Como se usa aquí, la expresión "sistema de transmisión digital" incluye cualquier sistema de transmisión para transmitir o radiodifundir, por ejemplo, datos digitales audiovisuales o multimedia principalmente. Aunque, la presente invención es particularmente aplicable a un sistema de televisión digital de radiodifusión, la invención también puede ser aplicable a una red fija de telecomunicaciones fija para aplicaciones de Internet multimedia, a una televisión en circuito cerrado, etc. Como se usa aquí, la expresión "sistema de televisión digital" incluye, por ejemplo, cualquier sistema por satélite, terrestre, por cable y otros.
La presente invención encuentra aplicación específica en un sistema de televisión digital de radiodifusión en el que las señales recibidas son pasadas, a través de un receptor, a un receptor/descodificador y, desde allí, a un televisor. La expresión "receptor/descodificador" usado aquí puede connotar un receptor para recibir señales codificadas o no codificadas, por ejemplo señales de televisión y/o radioseñales, que pueden ser radiodifundidas o transmitidas pro algunos otros medios. La expresión también puede connotar un descodificador para descodificar las señales recibidas. Realizaciones de tales receptores/descodificadores pueden incluir un descodificador integral con el receptor para descodificar las señales recibidas, por ejemplo en una "caja encima del aparato", funcionando tal descodificador en combinación con un receptor separado físicamente, o incluyendo tal descodificador funciones adicionales tal como un explorador Web, un videograbador o un televisor.
El receptor/descodificador descodifica una señal de tipo MPEG comprimida en una señal de televisión para el televisor. Es controlado por un mando a distancia manual, a través de una interfaz en el receptor/descodificador, también conocido como una caja encima del aparato. El término MPEG se refiere a las normas de transmisión de datos desarrolladas por el grupo de trabajo "Motion Pictures Expert Group" de la International Standards Organisation (ISO) y en particular, pero no exclusivamente, la norma MPEG-2 desarrollada para aplicaciones de televisión digital y expuesta en los documentos ISO 13818-1, ISO 13818-2, ISO 13818-3 y ISO 13818-4. En el contexto de la presente solicitud de patente, el término incluye todas las variaciones, modificaciones o desarrollos de formatos MPEG aplicables al campo de la transmisión de datos digitales.
Un modo de proporcionar la interactividad antes descrita es ejecutar una aplicación en el receptor/descodificador a través del cual es recibida la señal de televisión. Es deseable permitir que varias aplicaciones comuniquen con varios dispositivos físicos de una manera transparente. Nuestras solicitudes PCT/EP97/02-115 (WO 98/43172A) y PCT/EP97/02116 (WO 98/43433A), en tramitación junto con la presente, describen sistemas en los que una o más aplicaciones pueden ser descargadas por un receptor/descodificador y comunican con dispositivos físicos en el receptor/descodificador tal como interfaces en paralelo y en serie y lectores de tarjetas inteligentes por medio de un controlador de dispositivo para cada dispositivo y un director global de dispositivos. Como se usa aquí, la expresión "tarjeta inteligente" incluye, pero no exclusivamente, cualquier dispositivo de tarjeta basado en chip, u objeto de función y rendimiento similares, que posee, por ejemplo, un microprocesador y/o un almacenamiento en memoria. En esta expresión están incluidos dispositivos que tienen formas físicas alternativas a una tarjeta, por ejemplo, dispositivos en forma de llave tales como son usados frecuentemente en sistemas de descodificadores de televisión.
De acuerdo con la presente invención, se ha propuesto proporcionar la capacidad para que un receptor/descodificador comunique con otro equipo audiovisual, por ejemplo, un videograbador digital por una interfaz digital de alta velocidad. La norma IEEE 1394 desarrollada recientemente proporciona un protocolo de interfaz prometedor y flexible, proporcionando frecuencias de comunicación en serie de 100 megabits/s o mayores.
Un problema de usar la interfaz IEEE 1394 es que el bus de interfaz puede ser repuesto o los parámetros alterados por un dispositivo conectado al bus distinto que el receptor/descodificador y esto puede causar problemas para una aplicación. Esto puede producir una exigencia de memoria y potencia de procesamiento mayores para ejecutar aplicaciones más complejas capaces de ocuparse de la interfaz. Esto aumentaría tanto el coste de cada receptor/descodificador como también el coste de desarrollar y depurar aplicaciones.
Aspectos de la invención intentan aliviar los problemas de interconectar aplicaciones con tales interfaces. Aunque la invención ofrece ventajas máximas en interconectar un receptor/descodificador con una interfaz IEEE 1394 o similar, se apreciará que la invención puede ser aplicada a interconectar otras aplicaciones con interfaces cuyos parámetros pueden cambiar fuera del control de la aplicación.
En un primer aspecto, la invención proporciona un método para comunica datos, por vía de un controlador de dispositivo, entre una aplicación y una interfaz que tiene al menos una característica a la que está asignado un identificador de interfaz, el o cada identificador de interfaz siendo propenso a cambiar después de al menos un evento, comprendiendo el método para al menos una dicha característica: almacenar un identificador lógico correspondiente, proporcionar el identificador lógico a la aplicación para dirigir la comunicación asociada con la característica correspondiente entre el controlador de dispositivo y la aplicación, y mantener la correspondencia entre el, o cada, identificador lógico y la, o cada, característica independientemente del identificador de interfaz asignado a la, o cada, característica de modo que la comunicación entre la aplicación y el controlador de dispositivo dirigida usando un identificador lógico dado permanezca asociada con la característica dada correspondiente después de un cambio en la asignación del identificador correspondiente de interfaz a la característica.
De este modo, aunque la asociación de características e identificadores de interfaz puede cambiar de vez en cuando, tales cambios pueden ser hechos sustancialmente transparentes a la aplicación, que pueden ser más sencillos consiguientemente.
La comunicación entre la interfaz y el controlador del dispositivo es dirigida preferiblemente basada en el, o cada, identificador de interfaz; esto facilita la comunicación con la interfaz.
Los identificadores lógicos pueden ser asignados sólo a las características que son especificadas por una o más aplicaciones. Esto puede reducir el número de identificadores lógicos requeridos.
Alternativamente, el controlador de dispositivo puede ser dispuesta para compilar una lista de identificadores lógicos e identificadores de interfaz correspondientes para todas dichas características, o para todas las características que satisfacen criterios predeterminados, y preferiblemente actualizar esta lista cada vez que una característica es añadida o eliminada o alterada, o si cualquier identificador de interfaz es cambiado.
Aunque el método elimina la necesidad de que la aplicación conozca el identificador de interfaz, preferiblemente el controlador de dispositivo es dispuesto para comunicar a petición el identificador de interfaz, asignado a un identificador lógico, a la aplicación. Se halla que esto facilita notablemente el ensayo de un sistema, puesto que es posible que una aplicación de alto nivel determine si la interfaz y el controlador de dispositivo asociado está funcionando como se desea.
Preferiblemente, el controlador de dispositivo es dispuesto para aceptar solicitudes desde una aplicación para definir las conexiones entre los dispositivos físicos conectados al bus usando al menos un identificador lógico en lugar de un identificador de interfaz. Esto puede facilitar la gestión de conexiones por una aplicación.
En un segundo aspecto, la invención proporciona un controlador de dispositivo para efectuar la comunicación entre una aplicación y una interfaz que tiene al menos una característica a la que está asignado un identificador de interfaz, el o cada identificador de interfaz siendo propenso a cambiar después de al menos un evento, comprendiendo el controlador de dispositivo medios para almacenar al menos un identificador lógico correspondiente a un identificador respectivo de interfaz, medios para proporcionar el identificador lógico a la aplicación para dirigir la comunicación asociada con la característica correspondiente entre el controlador de dispositivo y la aplicación, y medios para mantener la correspondencia entre el, o cada, identificador lógico y la, o cada, característica independientemente del identificador de interfaz asignado a la, o cada, característica de modo que la comunicación entre la aplicación y el controlador de dispositivo, dirigida usando un identificador lógico dado, puede permanecer asociada con la característica dada correspondiente después de un cambio en la asignación del identificador correspondiente de interfaz a la característica.
El controlador de dispositivo puede ser implementado en hardware, por ejemplo en un circuito integrado especializado; esto puede proporcionar velocidad incrementada de funcionamiento. Más preferiblemente, sin embargo, el controlador de dispositivo es implementado en software al menos parcialmente, ejecutando preferiblemente por medios de procesamiento que ejecutan la aplicación; esto permite mayor flexibilidad, requiere menos componentes y permite que el controlador de dispositivo sea actualizado más fácilmente.
La interfaz se ajusta preferiblemente a la norma IEEE 1394 o a una modificación, refinamiento o variación de ella. Los datos pueden ser transportados según la norma IEEE 1883.
La aplicación es ejecutada preferiblemente en un lenguaje interpretado y el controlador de dispositivo es compilado preferiblemente.
La invención es empleada más preferiblemente en un receptor/descodificador para permitir que una aplicación comunique, por ejemplo, con un videograbador digital por un bus IEEE 1394. El controlador de dispositivo puede ser dispuesto para transmitir órdenes para controlar el videograbador digital desde la aplicación y/o recibir datos sobre la información almacenada en el videograbador digital; de este modo, una aplicación interactiva en ejecución en el receptor/descodificador puede controlar la grabación y la reproducción de programas u otros datos. Los datos que han de ser comunicados son preferiblemente datos en formato MPEG (lo que significa cualquier variante o desarrollo del formato MPEG básico) pero pueden ser usados otros formatos.
Características preferidas de la presente invención serán descritas ahora, sólo a modo de ejemplo, con referencia a los dibujos adjuntos, en los que:
la Figura 1 es un diagrama esquemático de interfaces de un receptor/descodificador;
la Figura 2 es un esquema de bloques funcionales del receptor/descodificador;
la Figura 3 muestra ciertos componentes de la máquina virtual y el motor de tiempo de ejecución con más detalle;
la Figura 4 es un diagrama esquemático para explicar el flujo de comunicación entre una aplicación y un periférico remoto por vía del controlador de dispositivo; y
la Figura 5 es un diagrama esquemático que ilustra algunos componentes del controlador de dispositivo.
Fundamentos del receptor/descodificador
Antes de describir un controlador de dispositivo que materializa la invención, las características básicas de la plataforma preferida, un receptor/descodificador digital por satélite, serán explicadas brevemente.
Refiriéndose a la Figura 1, se representa esquemáticamente un receptor/descodificador 2020 o caja encima de aparato para uso en un sistema de televisión interactiva digital en el que el controlador de dispositivo está destinado a ser instalado. Detalles de un sistema adecuado de televisión interactiva digital pueden ser hallados en nuestras solicitudes PCT/EP97/01206-02117 en tramitación junto con la presente (WO 98/43430A, WO 98/43425A, WO 98/43426A, WO 98/43462A, WO 98/43432A, WO 98/43431A, WO 98/43248A, WO 98/43165A, WO 98/43415A, WO 98/43172A, WO 98/43433A, WO 98/43427A) a las que debería hacerse referencia. Para facilidad de referencia, las partes descritas con más detalle en las memorias descriptivas antes mencionadas son designadas generalmente por los números de referencia usados en esas memorias descriptivas. La disposición básica del receptor/descodificador será resumida después para ayudar a comprender la función del controlador del dispositivo.
Como se describe con más detalle en las memorias descriptivas antes mencionadas, refiriéndose a la Figura 1, el receptor/descodificador 2020 incluye varias interfaces: específicamente, un sintonizador 4028 para el flujo de señal MPEG, una interfaz 4030 en serie, una interfaz 4032 en paralelo y dos lectores 4036 de tarjetas, uno para una tarjeta inteligente que forma parte del sistema y uno para tarjetas bancarias y otras tarjetas inteligentes (usadas para efectuar pagos, banca a domicilio, etc.). El receptor/descodificador también incluye una interfaz con un canal 4002 de retorno con módem al productor de señal de televisión, de modo que el usuario puede indicar preferencias, etc. de vuelta al productor de señal de televisión (programa). El receptor también comprende un motor 4008 de tiempo de ejecución, un director 4068 de dispositivos y una pluralidad de dispositivos 4062 para ejecutar uno o más aplicaciones 4056.
Para los fines de esta memoria descriptiva, una aplicación es un fragmento de código de ordenador para controlar funciones de alto nivel del receptor/descodificador 2020 preferiblemente. Por ejemplo, cuando el usuario fina sitúa el foco de un mando a distancia en un objeto de botón visto en la pantalla del televisor 2022 y pulsa una tecla de validación, es ejecutada la secuencia de instrucciones asociada con el botón.
Una aplicación interactiva propone menús y ejecuta órdenes a petición del usuario final y proporciona datos relacionados con el propósito de la aplicación. Las aplicaciones pueden ser aplicaciones residentes, o sea, almacenadas en la memoria ROM de sólo lectura (o memoria FLASH u otra memoria no volátil) del receptor/descodificador 2020, o radiodifundidas y descargadas a la memoria RAM de acceso aleatorio o la memoria FLASH del receptor/descodificador 2020.
Algunos ejemplos de aplicaciones, descritos con más detalle en las aplicaciones antes mencionadas, son:
\bullet
Una aplicación iniciadora que es una colección adaptable de módulos permitiendo que el receptor/descodificador 2020 sea inmediatamente operativo en el entorno de MPEG-2.
\bullet
Una aplicación de puesta en marcha que permite que cualquier aplicación, descargada o residente, sea ejecutada en el receptor/descodificador 2020.
\bullet
Una guía de programas que es una aplicación interactiva que proporciona información completa sobre la programación.
\bullet
Una aplicación de pago por visión que es un servicio interactivo disponible en cada canal de pago por visión del ramillete de televisión digital para permitir que el usuario final compre el evento actual.
\bullet
Una aplicación de descarga de ordenador personal que permite que un usuario final descargue software de ordenador usando la aplicación de descarga del ordenador personal.
\bullet
Una aplicación de explorador de almacén que comprende una radiodifusión cíclica de video de imágenes con navegación de usuario final por medio de botones en pantalla.
\bullet
Una aplicación de telecompra que permite que ofertas de productos para venta sean transmitidas al receptor/descodificador 2020 y visualizadas en el televisor 2022 y que permite al usuario seleccionar un artículo particular a comprar.
Las aplicaciones son almacenadas en posiciones de memoria en el receptor/descodificador 2020 y representadas como archivos de recursos. Los archivos de recursos comprenden archivos unitarios de descripción de objetos gráficos, archivos unitarios de bloques de variables, archivos de secuencias de instrucciones, archivos de aplicaciones y archivos de datos, como se describe con más detalle en las memorias descriptivas antes mencionadas.
En el flujo de datos MPEG, cada módulo comprende un grupo de tablas MPEG. Cada tabla MPEG puede ser formateada como un número de secciones. En el flujo de datos MPEG, cada sección tiene un "tamaño" de hasta 4 kilobytes. Para la transferencia de datos por vía del puerto en serie y en paralelo, por ejemplo, los módulos son divididos de modo similar en tablas y secciones, variando el tamaño de la sección con le medio de transporte.
Los módulos son transportados en el flujo de datos MPEG en la forma de paquetes de datos de 188 bytes típicamente dentro de tipos respectivos de flujo de datos, por ejemplo, flujos de datos de video, flujos de datos de audio y flujos de datos de teletexto. Cada paquete es precedido por un identificador de paquete de 13 bits, un identificador de paquete para cada paquete transportado en el flujo de datos MPEG. Una tabla de mapa de programas contiene una lista de los flujos de datos diferentes y define el contenido de cada flujo de datos según el identificador de paquete respectivo. Un identificador de paquete puede alertar a un dispositivo de la presencia de aplicaciones en el flujo de datos, siendo identificado el identificador de paquete usando la tabla de mapa de programas.
El descodificador contiene memoria dividida en un volumen de memoria RAM de acceso aleatorio, un volumen de memoria FLASH y un volumen de memoria ROM de sólo lectura, pero esta organización física es distinta que la organización lógica. La memoria puede ser dividida además en volúmenes de memoria asociados con las diversas interfaces. Desde un punto de vista, la memoria puede ser considerada como parte del hardware; desde otro punto de vista, la memoria puede ser considerada como soportando o conteniendo todo el sistema mostrado aparte del hardware.
El sistema puede ser considerado como centrado en un motor 4008 de tiempo de ejecución que forma parte de una máquina virtual 4007. Esta está acoplada a aplicaciones en un lado (el lado del "nivel alto") y, en el otro lado (el lado del nivel "bajo"), por vía de diversas unidades lógicas intermedias tratadas después, al hardware 4061 de receptor/descodificador. El hardware de receptor/descodificador puede ser considerado como incluyendo los diversos puertos o interfaces como se trató antes (la interfaz 2030 para el mando a distancia manual 2026), la interfaz 4028 de flujo MPEG, la interfaz 4030 en serie y la interfaz 4032 en paralelo, las interfaces con los lectores 4036 de tarjetas y la interfaz 4034 con el canal 4002 de retorno con módem).
Con referencia a la Figura 2, diversas aplicaciones 4056 están acopladas a la unidad 4007; algunas de las aplicaciones usadas más corrientemente pueden ser residentes en el sistema más o menos permanentemente, como se indica en 4057, mientras que otras serán descargadas al sistema, por ejemplo desde el flujo de datos MPEG o desde otros puertos como sea necesario.
La unidad 4007 incluye, además del motor 4008 de tiempo de ejecución, algunas funciones de biblioteca residentes 4006 que incluyen una caja 4058 de herramientas. La biblioteca contiene funciones diversas en lenguaje C usadas por el motor 4008. Estas incluyen manipulación de datos tal como compresión, expansión o comparación de estructuras de datos, dibujo de líneas, etc. La biblioteca 4006 también incluye información sobre el hardware 4061 en el receptor/descodificador 2020, tal como números de versiones de hardware y software y espacio disponible de memoria RAM de acceso aleatorio, y una función usada cuando se descarga un nuevo dispositivo 4062. Las funciones pueden ser descargadas a la biblioteca, siendo almacenadas en memoria FLASH o memoria RAM.
El motor 4008 de tiempo de ejecución está acoplado a un director 4068 de dispositivos que está acoplado a un conjunto de dispositivos 4062 que están acoplados a controladores 4060 de dispositivos que, a su vez, están acoplados a los puertos o interfaces. En términos amplios, un controlador de dispositivo puede ser considerado como definiendo una interfaz lógica, de modo que dos controladores diferentes de dispositivos pueden ser acoplados a un puerto físico común. Un dispositivo estará acoplado normalmente a más de un controlador de dispositivo; si un dispositivo está acoplado a un solo controlador de dispositivo, el dispositivo estará diseñado normalmente para incorporar la funcionalidad plena requerida para comunicación de modo que es eliminada la necesidad de un controlador separado de dispositivo. Ciertos dispositivos pueden comunicar entre ellos.
Como será descrito después, hay tres formas de comunicación desde los dispositivos 4062 hasta el motor de tiempo de ejecución: por medio de variables, memorias intermedias y eventos que son pasados a un conjunto de colas de eventos.
Cada función del receptor/descodificador 2020 es representada como un dispositivo 4062. Los dispositivos pueden ser locales o remotos. Los dispositivos locales 4064 incluyen tarjetas inteligentes, señales de conector SCART (Euroconector), módems, interfaces en serie y en paralelo, un reproductor de video y audio MPEG y un extractor de secciones y tablas MPEG. Los dispositivos remotos 4066, ejecutados en una posición remota, difieren de los dispositivos locales en que un puerto y un procedimiento deben ser definidos por la autoridad o diseñador del sistema, más bien que por un dispositivo y un controlador de dispositivo provistos y diseñados por el fabricante del receptor/descodificador.
Cuando un dispositivo nuevo 4062 es creado, puede ser instalado en receptores/descodificadores 2020 existentes descargando la aplicación 4056 pertinente desde el centro de radiodifusión. Esta descarga es realizada en el receptor/descodificador 2020 por una aplicación 4056 que comprueba las versiones de hardware y software y, si son correctas, carga el módulo de software que representa el nuevo dispositivo 4062 y pide a un procedimiento de la biblioteca 4006 que instale el código de dispositivo nuevo dentro de la microprogramación fija (en memoria Flash). Esto puede proporcionar una instalación flexible y segura de funciones nuevas dentro del receptor/descodificador 2020 sin afectar al resto del software.
El director 4068 de dispositivos es una interfaz común de software entre la aplicación 4056 y las funciones específicas del receptor/descodificador 2020. El director 4068 de dispositivos controla el acceso a los dispositivos 4062, declara la recepción de un evento inesperado y gestiona la memoria compartida.
El motor 4008 de tiempo de ejecución funciona bajo el control del microprocesador y de una interfaz común de programación de aplicaciones. Están instalados en cada receptor/descodificador 2020 de modo que todos los receptores/descodificadores 2020 son idénticos desde el punto de vista de la aplicación.
El motor 4008 ejecuta las aplicaciones 4056 en el receptor/descodificador 2020. Ejecuta las aplicaciones interactivas 4056 y recibe eventos desde fuera del receptor/descodificador 2020, visualiza gráficos y texto, pide dispositivos para servicios y usa funciones de la biblioteca 4006 conectada al motor 4008 para cálculo específico.
El motor 4008 de tiempo de ejecución es un código ejecutable instalado en cada receptor/descodificador 2020 e incluye un intérprete para interpretar y ejecutar aplicaciones. El motor 4008 es adaptable a cualquier sistema operativo, incluyendo un sistema operativo monotarea (tal como MS-DOS: Microsoft Disk Operating System). El motor 4008 está basado en unidades de secuenciador de proceso (que toman diversos eventos tal como una pulsación de tecla para llevar a cabo diversas acciones), y contiene su propio planificador para gestionar colas de eventos procedentes de las interfaces diferentes de hardware. También maneja la presentación visual de gráficos y texto. Una unidad de secuenciador de proceso comprende un conjunto de grupos de acciones. Cada evento causa que la unidad de secuenciador de proceso se mueva desde su grupo de acciones actual a otro grupo de acciones dependiendo del carácter del evento, y ejecute las acciones del nuevo grupo de acciones.
El motor 4008 comprende un cargador de código para cargar y descargar aplicaciones 4056 dentro de la memoria 2028 de receptor/descodificador. Sólo el código necesario es cargado en la memoria RAM o memoria Flash para asegurar el uso óptimo. Los datos descargados son verificados por un mecanismo de autenticación para impedir cualquier modificación de una aplicación 4056 o la ejecución de cualquier aplicación no autorizada. El motor 4008 comprende además un descompresor. Cuando el código de aplicación (una forma de código intermedio) es comprimido para ahorrar espacio y descarga rápida desde el flujo de transporte MPEG-2 o por vía de un modo incorporado de receptor/descodificador, el código debe ser descomprimido antes de cargarlo dentro de la memoria RAM de acceso aleatorio. El motor 4008 también comprende un intérprete para interpretar el código de aplicación para actualizar diversos valores de variables y determinar cambios de estatus, y un comprobador de errores.
Antes de usar los servicios de cualquier dispositivo 4062, un programa (tal como una secuencia de instrucciones de aplicación) ha de ser declarado como un "cliente", o sea, un modo de acceso lógico al dispositivo 4062 o al director 4068 de dispositivos. El director proporciona al cliente un número de cliente que es mencionado en todos los accesos al dispositivo. Un dispositivo 4062 puede tener varios clientes, con el número de clientes para cada dispositivo 4062 siendo especificado dependiendo del tipo de dispositivo 4062. Un cliente es introducido en el dispositivo 4062 por un procedimiento "Canal de Abrir Dispositivo" ("Device_Open Channel"). Este procedimiento asigna un número de cliente al cliente. Un cliente puede ser quitado de la lista de clientes del director 4068 de dispositivos por un procedimiento "Canal de Cerrar Dispositivo" ("Device_Close Channel").
El acceso a los dispositivos 4062 provisto por el director 4068 de dispositivos puede ser sincrónico o asincrónico. Para acceso sincrónico, es usado un procedimiento "Dispositivo: Llamada" ("Device: Call"). Este es un medio para acceder a datos que están inmediatamente disponibles o a una funcionalidad que no implica esperar la respuesta deseada. Para acceso asincrónico, es usado un procedimiento "Dispositivo: Entrada/salida" ("Device: I/O"). Este es un medio para acceder a datos que implica esperar una respuesta, por ejemplo explorar frecuencias de sintonizador para hallar un múltiplex o recuperar una tabla desde el flujo MPEG. Cuando el resultado solicitado está disponible, un evento es puesto en la cola del motor para señalar su llegada. Un procedimiento adicional "Dispositivo: Evento" ("Device: Event") proporciona un medio para gestionar eventos inesperados.
Como se observó antes, el bucle principal del motor de tiempo de ejecución está acoplado a una variedad de unidades de secuenciador de proceso y, cuando el bucle principal encuentra un evento apropiado, el control es transferido temporalmente a una de las unidades de secuenciador de proceso.
Refiriéndose a la Figura 3, el director de dispositivos incluye una cola 100 al interior de la cual son pasados eventos procedentes de los dispositivos para almacenamiento temporal. A intervalos adecuados, la máquina virtual envía una señal a esta cola para extraer el primer elemento de ella. Este elemento de evento es movido a una estructura 101 de colas en la máquina virtual. Dependiendo del nivel de prioridad del elemento de evento, es insertado en la apropiada de las cinco colas 0 a 4. Los elementos de eventos son extraídos de la estructura 101 de colas por una unidad 102 selectora de cola bajo el control del motor de tiempo de ejecución.
Cuando un evento es seleccionado de la estructura 101 de colas, es pasado a un motor 104 de unidades de secuenciador de procesos que consta de un controlador 105 de unidades de secuenciador de proceso y de un conjunto de unidades 106 de secuenciador de proceso. Cada unidad de secuenciador de proceso es un conjunto de grupos de acciones enlazados entre sí, de modo que cada paso desde un grupo de acciones al grupo de accione siguiente depende, en general, del grupo de acciones actual y de la naturaleza del evento. Diferentes unidades de secuenciador de proceso tienen tamaños y complejidades diferentes, incluyendo una en la que el grupo de acciones "siguiente", o sea el grupo de acciones al que el sistema avanza en respuesta a un evento, depende únicamente de la naturaleza del evento pero es independiente del grupo de acciones actual. Asimismo, como se muestra en el lado derecho del bloque de unidades de secuenciador de proceso, puede haber varias copias de una unidad de secuenciador de proceso, o sea, varias unidades idénticas de secuenciador de proceso, para ocuparse, por ejemplo, de varios flujos de datos distintos usando protocolos idénticos a través de un solo puerto.
Cuando un evento es seleccionado, es pasado a la unidad apropiada de secuenciador de proceso. Esta selecciona la salida apropiada desde el grupo de acciones actual en la unidad de secuenciador de proceso. Esto produce que el grupo de acciones siguiente apropiado sea seleccionado y que las acciones en ese grupo de acciones sean realizadas, implicando por ejemplo el envío de un mensaje al director de dispositivos o la ejecución de una secuencia de instrucciones. Los grupos de acciones en la unidad de secuenciador de proceso también pueden enviar mensajes de eventos a otras unidades de secuenciador de proceso.
Si una secuencia de instrucciones es seleccionada, la identificación de la secuencia de instrucciones es enviada al selector 107 de secuencia de instrucciones. Este obtiene la secuencia de instrucciones deseada desde una memoria 108 de secuencia de instrucciones y la pasa a un intérprete 109 de secuencia de instrucciones que ejecuta la secuencia de instrucciones.
El sistema también incluye un filtro 110 que es cargado con tipos de eventos, por ejemplo, desde las unidades 106 de secuenciador de proceso. Cuando un elemento de evento es pasado desde la cola 100 en el director de dispositivos a la estructura 101 de colas en la máquina virtual, su tipo o carácter es comparado con la lista en el filtro 110 y, si es de un tipo que no es reconocido, es rechazado, Esto asegura que si, supóngase, el director de dispositivos o el teclado genera eventos de un tipo con el que la máquina virtual no puede tratar, esos eventos no son pasados a la estructura 101 de colas (si eventos de esta clase fueran pasados a la estructura 101 de colas, se acumularían en esa estructura de colas o podrían causar el funcionamiento defectuoso del motor 104 de unidades de secuenciador de proceso).
Así, puede verse que nuestra plataforma básica de receptor/descodificador proporciona flexibilidad considerable para permitir que una aplicación comunique con una variedad de dispositivos.
Controlador de dispositivo para el Bus IEEE 1394
Refiriéndose a la Figura 4, puede verse que el controlador de bus IEEE 1394 funciona según el esquema antes descrito para facilitar la comunicación entre una aplicación y un periférico tal como un videograbador digital conectado al bus IEEE 1394.
Para comunicación de datos a velocidad alta, por ejemplo, para almacenamiento de datos MPEG en tiempo real, las interfaces en serie y en paralelo convencionales, que son relativamente fáciles de controlar por una aplicación, pueden no ser bastante rápidas. El controlador de dispositivo descrito a continuación incorpora un número de características originales que permiten a una aplicación acceder eficientemente al bus IEEE 1394, y puede permitir el control, por ejemplo, de un videograbador digital conectado al bus por una aplicación relativamente poco sofisticada.
El controlador de dispositivo puede ser considerado como comprendiendo un número de unidades funcionales que son separadamente accesibles por una aplicación, denominadas órdenes en lo sucesivo. Cada orden interconecta con una aplicación por vía de un dispositivo 4062 operado bajo el control del director 4066 de dispositivos por medio de uno de los tres procedimientos estándar antes mencionados, que son comunes a otros dispositivos. La información puede ser pasada entre una aplicación y el controlador de dispositivo por medio de tablas de parámetros. Para facilidad de referencia, los tres procedimientos básicos son resumidos brevemente a continuación:
1): Dispositivo: Llamada (Device: Call). Esta orden puede ser usada por una aplicación para realizar órdenes sincrónicas o transferencia de datos. La ejecución de la aplicación es suspendida hasta que el control es devuelto cuando se ha completado la operación por el controlador de dispositivo; esto permite que sean controladas fiablemente operaciones que deben ser realizadas en secuencia estricta.
2) Dispositivo: Entrada/Salida (Device: I/O). Esta orden permite el funcionamiento asincrónico. O sea, una aplicación puede enviar una solicitud de que una transferencia de datos o una función particular sea realizada por el controlador de dispositivo y la ejecución de la aplicación puede continuar mientras la transferencia de datos o la función es realizada por el controlador de dispositivo.
3) Dispositivo: Evento (Device: Event). Esta función de captura de eventos permite que eventos sean señalados por el controlador de dispositivo a una aplicación, y para que la acción particular sea efectuada por la aplicación en respuesta al evento independientemente del código que la aplicación está ejecutando en el momento que el evento es señalado; la aplicación es interrumpida efectivamente. Los eventos pueden ser priorizados. Los eventos pueden ser usados para señalar eventos que ocurren en la interfaz, tal como una reposición de bus.
Ahora serán descritas las órdenes provistas en un controlador de dispositivo que materializa la invención. Puede accederse a cada orden mediante una aplicación pasando un identificador de la orden como un parámetro por medio de la orden Dispositivo: Llamada (Device: Call) o Dispositivo: Entrada/Salida (Device: I/O). No todas las órdenes descritas a continuación precisan ser provistas, y las funciones de las órdenes pueden ser alteradas. Aunque las órdenes pueden ser provistas o alteradas independientemente, como será apreciado, ciertos beneficios sinérgicos se derivan de la funcionalidad combinada proporcionada por las órdenes descritas.
Las órdenes serán descritas en términos de las características y las funciones provistas por cada orden, como es visto por una aplicación, junto con las características opcionales y preferibles. Con la información dada y las especificaciones provistas, la implementación real de estas características debería ser sencilla para un experto en la técnica, y los detalles precisos son dejados al encargado de la implementación. Como un ejemplo, cada orden podría ser implementada en software, escrita preferiblemente en el lenguaje de programación C y compilada preferiblemente para ejecución en el procesador usado para ejecutar la aplicación; sin embargo, el controlador de dispositivo puede ser ejecutado en un procesador distinto, y algunas o todas las órdenes pueden ser implementadas por hardware especializado. Usando las órdenes de Llamada (Call) o Entrada/Salida (I/O), el controlador de dispositivo puede señalar información o pasar parámetros de vuelta a una aplicación disponiendo valores en una tabla de parámetros almacenada en memoria cuya dirección es pasada al controlador de dispositivo.
Se apreciará que la funcionalidad descrita a continuación para las órdenes implica que ciertas funciones subyacentes sean implementadas por el controlador de dispositivo, por ejemplo, para ocuparse de identificadores lógicos de periféricos e identificadores de canales lógicos, el controlador de dispositivo incorpora medios para mantener tablas respectivas de identificadores lógicos de periféricos e identificadores de canales lógicos permitiéndoles que sean correlacionados con sus características de interfaz correspondientes (dirección física o número de canal de interfaz respectivamente). Además, en el caso de un acontecimiento tal como una reposición de bus, el controlador de dispositivo es dispuesto para determinar las direcciones físicas y números de canales nuevos y actualizar las tablas de modo que la transición sea relativamente fluida como es vista por una aplicación.
Además, por supuestos, el controlador de dispositivo incluye medios para efectuar realmente la comunicación con la interfaz y para realizar las tareas de mantenimiento necesarias tal como asignación y desasignación de memoria. Algunas de estas funciones son ilustradas esquemáticamente en la Figura 5. Los detalles de estas dependerán del hardware físico específico usado, pero serán sencillos de implementar para un experto en la técnica basado en el guiamiento presentado en esta memoria descriptiva, y con referencia a las porciones apropiadas de la documentación de normas IEEE 1394 (cuya descripción es incorporada aquí por referencia), así que no serán descritos aquí.
Orden: "Bus 1394 Set"
Esta orden permite que los parámetros básicos de interfaz sean dispuestos por una aplicación, preferiblemente el tamaño de una memoria intermedia de recepción de datos que debería ser asignada y el número de reintentos de comunicación que han de ser usados cuando se envían órdenes asincrónicas por vía de la interfaz. Estos parámetros podrían ser predispuestos y la orden suprimida, pero la provisión de esta orden permite que las comunicaciones sean optimizadas para aplicaciones diferentes. Aunque tales parámetros podrían ser dispuestos asincrónicamente muy bien, se halla preferible acceder a esta orden por medio del método de Llamada (Call) de modo que las órdenes subsiguientes de aplicación sólo son ejecutadas después de que los parámetros de dispositivo han sido estabilizados. La orden señala preferiblemente un error a la aplicación si el controlador de dispositivo está en el proceso de recibir datos desde el periférico.
Orden: "Bus 1394 Info"
Esta orden devuelve la información básica referente a la topología de bus a una aplicación. Como es menos crítica en el tiempo, se accede a ella de modo preferiblemente asincrónico por medio de la orden de Entrada/Salida (IO).
Preferiblemente, esta y realmente todas, o al menos algunas, órdenes asincrónicas están dispuestas para pasar un tiempo máximo (por ejemplo, en ms) requerido para respuesta (o un código, por ejemplo cero significando que no hay tiempo máximo); esto puede permitir que el controlador de dispositivo priorice las solicitudes.
Preferiblemente, la orden devuelve información referente a la frecuencia máxima de datos gestionada por el bus, la frecuencia de datos disponible en el momento de la llamada (o sea, teniendo en cuenta las conexiones ya activas en el bus), el número de periféricos conectados físicamente con el bus y sus identificadores lógicos correspondientes (que serán tratados adicionalmente después), y que canales lógicos están disponibles en el momento de la llamada.
Con el bus IEEE 1394, a cada periférico conectado al bus le es asignada una dirección física que puede cambiar de vez en cuando.
Se apreciará que, aunque la provisión específica de esta orden es opcional, es deseable que el controlador de dispositivo mantenga una tabla de direcciones lógicas (también denominadas identificadores lógicos de periféricos) que son constantes para cada periférico (para una sesión dada para una aplicación dada; las direcciones lógicas pueden cambiar si el receptor/descodificador es repuesto) de modo que, en cada ejecución, una aplicación puede usar una sola dirección lógica para identificar un periférico correspondiente unívocamente y no ambiguamente. Los números de canales asignados a canales también pueden variar, así que el controlador de dispositivo también mantiene una tabla de números de canales lógicos. Entonces, el controlador de dispositivo puede responder a una solicitud de información buscando simplemente datos en la tabla apropiada.
Preferiblemente, la información referente a la disponibilidad de canales es pasada en forma binaria, como un mapa de bits, preferiblemente 8 bytes de información en la que cada bit codifica la disponibilidad de uno de 64 canales lógicos (por ejemplo, significando un "0" que el canal ya está asignado y significando un "1" que el canal está disponible para el uso).
Orden: "Bus 1394 Info Periph"
Esta orden es dispuesta para recibir un parámetro que indica un identificador lógico de periférico y devolver una dirección física de dos bytes (también conocida como una identificación de nodo) correspondiente a la dirección física asignada al periférico en la interfaz, y preferiblemente también devolver un identificador único de nodo de 8 bytes identificando de modo preferiblemente unívoco el periférico globalmente, o identificando al menos el número de modelo o vendedor del periférico. Esto proporciona la capacidad para que una aplicación adecuadamente sofisticada determine, por ejemplo, capacidades especiales del equipo basada en información que identifica periféricos específicos.
La orden está dispuesta preferiblemente para señalar un error si la interfaz no está conectada físicamente a un bus IEEE 1394 funcional o si el identificador lógico de periférico es inválido (por ejemplo, mayor que un máximo predeterminado, preferiblemente 63), y también señalar una reposición pendiente de bus, un error si el identificador lógico especificado de periférico no es conocido, o si el dispositivo falla en responder dentro de un tiempo especificado.
A la orden se accede de modo preferiblemente asincrónico, por medio del procedimiento Dispositivo: Entrada/Salida (Device: I/O), con una señal indicando la terminación o el fallo siendo pasada por medio de un bloque de parámetros.
Orden: "Bus 1394 Alloc Channel"
Esta orden es dispuesta para recibir una solicitud de asignar un canal, especificando preferiblemente la frecuencia deseada de comunicación y preferiblemente también el canal deseado de interfaz que ha de ser utilizado. Un código predeterminado (por ejemplo, 0FFh) puede ser usado para significar que no hay canal particular de interfaz, en cuyo caso o en el caso de que el canal deseado de interfaz esté ocupado, el controlador de dispositivo asigna un canal disponible.
La orden devuelve un identificador de canal lógico asignado si es satisfactorio, y señala preferiblemente un error en los casos aplicables descritos anteriormente para la orden "Bus_1394_Info_Periph" o si no hay canales disponibles o si la frecuencia solicitada de datos es mayor que la frecuencia máxima disponible.
En implementaciones simplificadas del controlador de dispositivo, por ejemplo usando un número muy limitado de canales, esta orden y las dos órdenes relacionadas descritas a continuación pueden ser suprimidas a costa de alguna flexibilidad.
A la orden se accede de modo preferiblemente asincrónico, por medio del procedimiento Dispositivo: Entrada/Salida (Device: I/O), con una señal indicando la terminación o el fallo siendo pasada por medio de un bloque de parámetros.
Orden: "Bus 1394 Info Channel"
Esta orden es dispuesta para devolver información referente a las características de un canal lógico especificado a una aplicación. La orden devuelve preferiblemente la frecuencia máxima asignada al canal (en kilobits/s), la frecuencia disponible por vía del canal en el momento de la llamada, el identificador de canal real (o sea, el asignado por la interfaz más bien que por el controlador de dispositivo), el número de conexiones que usan el canal y los identificadores lógicos de cada conexión que usa el canal.
La orden señala preferiblemente un error si el número de canal especificado no es asignado, en el caso de un identificador inválido, en el caso de una reposición pendiente de bus o si la interfaz no está conectada físicamente.
A la orden se accede de modo preferiblemente asincrónico, por medio del procedimiento Dispositivo: Entrada/Salida (Device: I/O), con una señal que indica la terminación o el fallo siendo pasada por medio de un bloque de parámetros.
Orden: "Bus 1394 Free Channel"
Esta orden libera un canal para comunicación interrumpiendo conexiones para un canal lógico especificado como un parámetro (pero preferiblemente sin desasignar los identificadores de conexiones). La orden opera de modo preferiblemente asincrónico y señala las comunicaciones que están pendientes todavía en el canal seleccionado por medio de un evento.
Orden: "Bus 1394 Open Connect"
Esta orden es dispuesta para recibir una solicitud que indica un identificador de canal lógico y preferiblemente también un tipo de conexión y para iniciar una conexión de punto a punto entre dos dispositivos o una conexión de entrada o salida de radiodifusión dependiendo del tipo de conexión especificado. Donde la conexión de punto a punto es especificada, los identificadores lógicos de periféricos de los dos periféricos también deben ser pasados al controlador de dispositivo. Aunque variantes de esta orden podrían funcionar usando direcciones físicas y números de canales reales de interfaz, el funcionamiento sobre la base de parámetros lógicos ofrece las ventajas de funcionamiento simplificado de aplicación mencionado anteriormente.
La orden devuelve un identificador de conexión lógico si es satisfactoria.
Las implementaciones simplificadas pueden suprimir la capacidad para que conexiones definidas de punto a punto sean especificadas; en aplicaciones típicas, puede haber sólo un dispositivo único tal como un videograbador digital conectado al bus, así que las conexiones de radiodifusión pueden ser suficientes.
En algunas implementaciones del controlador de dispositivo, la apertura de una conexión particular también puede activar automáticamente el reencaminamiento de otros trayectos de señales dentro del receptor/descodificador. Por ejemplo, la apertura de una conexión de entrada de radiodifusión puede causar la desconexión automática de la sección de entrada de la entrada de multiplexor, de modo que el desmultiplexor está disponible para procesar datos entrantes recibidos por el bus IEEE 1394.
Esta orden señala preferiblemente un error cuando se alcanza el número máximo de conexiones, o en los otros casos aplicables antes mencionados con relación a otras órdenes.
A la orden se accede de modo preferiblemente asincrónico, por medio del procedimiento Dispositivo: Entrada/Salida (Device: I/O), con una señal que indica la terminación o el fallo siendo pasada por medio de un evento.
Orden: "Bus 1394 Close Connect"
Esta orden recibe un identificador de conexión lógico y detiene la comunicación en esa conexión, liberando después el identificador de conexión para reutilización.
Si las señales son reencaminadas automáticamente dentro del receptor/descodificador al abrir las conexiones, el dispositivo restaura preferiblemente las conexiones a su estado anterior al cerrar la conexión o al cerrar la última conexión pertinente. Por ejemplo, la entrada de desmultiplexor puede ser reconectada a la sección de entrada al cerrar la última conexión de entrada de radiodifusión.
A la orden se accede de modo preferiblemente asincrónico por medio del procedimiento Dispositivo: Entrada/Salida, con una señal que indica la terminación o el fallo siendo pasada por medio de un evento.
Orden: "Bus 1394 List Connect"
Esta orden devuelve una lista de conexiones activas, sólo las que implican el propio descodificador, disponibles en el momento de la llamada, preferiblemente en la forma de una lista que comprende el número de conexiones y, para cada conexión, un identificador de conexión lógico y un señalizador indicando el tipo de conexión (punto a punto, entrada de radiodifusión, salida de radiodifusión).
Esta y/o la orden descrita después pueden ser suprimidas en implementaciones sencillas del dispositivo, si sólo son provistas conexiones sencillas. Sin embargo, la provisión de tales órdenes permite que una aplicación supervise no sólo las conexiones que ha establecido por sí misma sino también que supervise las conexiones establecidas por otras aplicaciones, si más de una aplicación es capaz de usar el controlador de dispositivo en un momento cualquiera, y que supervise si cualesquier conexiones han sido cerradas inesperadamente.
A la orden se accede de modo preferiblemente sincrónico, por medio del procedimiento Dispositivo: Llamada (Device: Call), puesto que las conexiones son propensas a cambiar frecuentemente y una aplicación puede intentar de otro modo controlar las comunicaciones basada en información atrasada, o de otro modo requerir el sondeo de la respuesta procedente del controlador de dispositivo.
Orden: "Bus 1394 Info Connect"
Esta orden acepta un identificador de conexión lógico y devuelve el número de canal lógico por el que es establecido la conexión. La orden también devuelve preferiblemente una indicación del tipo de conexión y, en el caso de una conexión de punto a punto, devuelve las direcciones lógicas de los periféricos implicados.
Como con la orden List_Connect, a esta orden se accede de modo preferiblemente sincrónico.
Orden: "Bus 1394 Reset"
Esta orden inicia un procedimiento de reposición de bus o devuelve un error si una reposición de bus ya está pendiente. La orden puede ser usada para permitir que una aplicación tome el control del bus IEEE 1394 inmediatamente después de una reposición, y se accede a ella de modo preferiblemente sincrónico. El controlador de dispositivo señala preferiblemente la terminación de la reposición de bus por medio de un evento, tratado adicionalmente después.
Orden: "Bus 1394 Send FCP"
Esta orden en particular puede ser suprimida o implementada de modo diferente. La descripción siguiente es de un ejemplo de una disposición para enviar datos de modo asincrónico por el bus IEEE 1394.
Esta orden recibe un bloque de parámetros que contiene un mensaje para ser enviado asincrónicamente como una orden o respuesta a un periférico en el bus IEEE 1394. El bloque de parámetros contiene preferiblemente una indicación del tipo de mensaje, el tamaño de la memoria intermedia que debería ser asignada para una respuesta, el identificador lógico de periférico del periférico de destino, la longitud del mensaje y el propio mensaje.
La orden indica preferiblemente la emisión satisfactoria o comunica un error si la emisión fue insatisfactoria dentro de un número predeterminado de reintentos o en los casos aplicables antes descritos para la orden "Info_Periph".
Como grandes cantidades de datos pueden ser transferidos potencialmente, a la orden se accede de modo preferiblemente asincrónico para permitir que la aplicación continúe la ejecución mientras el transistor continúa.
Preferiblemente, la orden es dispuesta para radiodifundir un mensaje a todos los periféricos si es especificado un identificador lógico predefinido de periférico, por ejemplo 63.
En realizaciones simplificadas del controlador de dispositivo, esta orden puede ser restringida a la transmisión de mensajes de longitud fija, por ejemplo 32 bytes, que es suficiente para transmisión de una orden a un videograbador digital.
Preferiblemente, el controlador de dispositivo es capaz de recibir y transmitir solicitudes múltiples casi simultáneamente y de comunicar respuestas múltiples. Sin embargo, las implementaciones simplificadas sólo pueden proporcionar capacidad para solicitudes secuenciales únicas.
Además de las órdenes, que permiten que una aplicación envíe órdenes al controlador de dispositivo, el controlador de dispositivo está dispuesto para señalar eventos a una aplicación por medio de las funciones de manejo de eventos del director de dispositivos. El controlador de dispositivo implementa los eventos siguientes:
Evento "Ev Bus 1394 Rcv FCP"
Este evento señala la recepción de un cuadro de Protocolo de Control de Funciones (FCP: Function Control Protocol) desde un periférico y proporciona un bloque de parámetros que contiene la dirección lógica de periférico de origen, el tipo, la longitud y el contenido del mensaje.
Evento "Ev Bus 1394 Channel"
Este evento señala la asignación y desasignación de canal y pasa una lista que señala que canales están asignados, preferiblemente codificados en forma binaria como se describió antes con relación a la orden "Info".
Evento "Ev Bus 1394 Config"
Este evento señala la conexión o desconexión de periférico y proporciona una lista que contiene el número de periféricos conectados y sus direcciones lógicas.
Se apreciará que los cambios en la interfaz relativos a este y al evento "Channel" (canal) descrito anteriormente deben ser supervisados por el controlador de dispositivo para mantener actualizada la tabla de correspondencia entre los identificadores lógicos y de interfaz, aunque el controlador de dispositivo no señale tales eventos a una aplicación.
Evento "Ev Bus 1394 Connect"
Este evento es usado para señalar una interrupción de conexión, y proporciona un identificador lógico a la aplicación de la conexión interrumpida, y preferiblemente también una lista que contiene más información referente a la conexión interrumpida en formato similar al descrito anteriormente para la orden "Info_Connection".
Evento "Ev Bus 1394 Lo Events"
Este evento puede señalar uno o más errores de bajo nivel de interfaz, por ejemplo periféricos que ocupan el bus durante más tiempo que el permitido, errores de datos o de comprobación de redundancia cíclica, transacciones inesperadas, números desconocidos de canales o códigos de transacciones, etc. Este evento es principalmente útil para depuración y puede ser suprimido en implementaciones simplificadas del controlador de dispositivo.
Evento "Ev Bus 1394 Hi Events"
Este evento puede señalar uno o más estados de alto nivel de bus, incluyendo al menos uno (y preferiblemente ambos) de un comienzo y un final de reposición de bus, y también eventos tales como un corte de energía eléctrica de cable, la detección de un bucle en el bus, o un error fatal del que el controlador de dispositivo no puede recuperarse por sí mismo después de reintentos múltiples.
Evento "Ev Bus 1394 Off"
Como un evento adicional, este evento puede ser usado para señalar errores internos al controlador de dispositivo, tales como no tener una memoria intermedia disponible en la que almacenar un mensaje recibido.
Las órdenes y los eventos anteriores son simplemente ilustrativos, y la invención puede ser implementada de diversos modos y, en particular, algunas órdenes pueden ser combinadas con otras que realización funciones similares, o algunas pueden ser suprimidas en implementaciones simplificadas. Las implementaciones en hardware y software de cada una de las funciones pueden ser mezcladas libremente, tanto entre órdenes como dentro de una sola orden, las implementaciones en hardware pueden funcionar más rápidamente y liberar potencia de procesamiento, mientras que las implementaciones en software pueden ser actualizadas más fácilmente. Se comprenderá fácilmente que las funciones realizadas por el hardware, el software de ordenador y semejantes son realizadas sobre, o usando señales eléctricas y similares. Las implementaciones de software pueden ser almacenadas en memoria ROM o memoria FLASH, o pueden ser corregidas en memoria FLASH.
Se comprenderá que la presente invención ha sido descrita antes simplemente a modo de ejemplo, y que modificaciones detalladas pueden ser efectuadas dentro del alcance de la invención.
Cada característica expuesta en la descripción y (donde sea apropiado) las reivindicaciones y los dibujos puede ser provista independientemente o en cualquier combinación apropiada.

Claims (10)

1. Un método para comunicar datos, por vía de un controlador de dispositivo, entre una aplicación y una interfaz que tiene al menos una característica a la que es asignado un identificador correspondiente de interfaz, con la asignación del identificador de interfaz a la característica siendo susceptible al cambio después de al menos un evento, comprendiendo el método:
para al menos una dicha característica, almacenar un identificador lógico correspondiente;
suministrar el identificador lógico a la aplicación para dirigir la comunicación asociada con la característica correspondiente entre el controlador de dispositivo y la aplicación; y
mantener la correspondencia entre el, o cada, identificador lógico y la, o cada, característica independientemente del identificador de interfaz asignado a la, o cada, característica de modo que la comunicación entre la aplicación y el controlador de dispositivo, dirigida usando un identificador lógico dado, permanece asociada con la característica dada correspondiente después de un cambio en la asignación del identificador correspondiente de interfaz a la característica.
2. Un método según la reivindicación 1, en el que la comunicación entre la interfaz y el controlador de dispositivo es dirigida basada en el, o cada, identificador de interfaz.
3. Un método según la reivindicación 1 o la reivindicación 2, incluyendo compilar una lista de identificadores lógicos e identificadores de interfaz correspondientes para todas las características que satisfacen criterios predeterminados.
4. Un método según cualquier reivindicación precedente, en el que el controlador de dispositivo es dispuesto para comunicar a petición el identificador de interfaz, asignado a un identificador lógico, a la aplicación.
5. Un método según cualquier reivindicación precedente, en el que el controlador de dispositivo es dispuesto para aceptar solicitudes desde una aplicación para definir conexiones entre dispositivos físicos conectados al bus usando al menos un identificador lógico en lugar de un identificador de interfaz.
6. Un controlador de dispositivo para efectuar la comunicación entre una aplicación y una interfaz que tiene al menos una característica a la que es asignado un identificador de interfaz, con el, o cada, identificador de interfaz siendo propenso a cambiar después de al menos un evento, comprendiendo el controlador de dispositivo:
medios para almacenar al menos un identificador lógico correspondiente a un identificador respectivo de interfaz;
medios para suministrar el identificador lógico a la aplicación para dirigir la comunicación asociada con la característica correspondiente entre el controlador de dispositivo y la aplicación; y
medios para mantener la correspondencia entre el, o cada, identificador lógico y la, o cada, característica independientemente del identificador de interfaz asignado a la, o cada, característica de modo que la comunicación entre la aplicación y el controlador de dispositivo, dirigida usando un identificador lógico dado, puede permanecer asociada con la característica dada correspondiente después de un cambio en la asignación del identificador correspondiente de interfaz a la característica.
7. Un controlador de dispositivo según la reivindicación 6, en el que el controlador de dispositivo es implementado en software ejecutable preferiblemente por medios de procesamiento que ejecutan la, o cada, aplicación.
8. Un controlador de dispositivo según la reivindicación 6 o la reivindicación 7, en el que el controlador de dispositivo está dispuesto para compilar una lista de identificadores lógicos e identificadores de interfaz correspondientes para todas las características que satisfacen criterios predeterminados.
9. Un controlador de dispositivo según cualquiera de la reivindicaciones 6 a 8, incluyendo medios para comunicara a petición el identificador de interfaz, asignado a un identificador lógico, a la aplicación.
10. Un controlador de dispositivo según cualquiera de las reivindicación 6 a 9, incluyendo medios para aceptar una solicitud desde una aplicación para definir conexiones entre dispositivos físicos conectados al bus usando al menos un identificador lógico en lugar de un identificador de interfaz.
ES98933845T 1997-07-24 1998-07-23 Actuador para dispositivo de caja de adaptacion multimedios para norma ieee1394. Expired - Lifetime ES2206957T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP97401793A EP0893765A1 (en) 1997-07-24 1997-07-24 IEEE 1394 Set Top Box device driver
EP97401793 1997-07-24

Publications (1)

Publication Number Publication Date
ES2206957T3 true ES2206957T3 (es) 2004-05-16

Family

ID=8229823

Family Applications (1)

Application Number Title Priority Date Filing Date
ES98933845T Expired - Lifetime ES2206957T3 (es) 1997-07-24 1998-07-23 Actuador para dispositivo de caja de adaptacion multimedios para norma ieee1394.

Country Status (22)

Country Link
US (1) US6966063B1 (es)
EP (2) EP0893765A1 (es)
JP (1) JP4105382B2 (es)
KR (1) KR100559158B1 (es)
CN (1) CN1265206A (es)
AT (1) ATE253752T1 (es)
AU (1) AU741471B2 (es)
BR (1) BR9810806A (es)
CA (1) CA2296337C (es)
DE (1) DE69819507T2 (es)
ES (1) ES2206957T3 (es)
HR (1) HRP20000039A2 (es)
HU (1) HUP0004817A3 (es)
ID (1) ID24447A (es)
IL (1) IL134145A (es)
NO (1) NO319201B1 (es)
NZ (1) NZ502917A (es)
PL (1) PL338243A1 (es)
RU (1) RU2226710C2 (es)
TR (1) TR200000179T2 (es)
WO (1) WO1999005603A1 (es)
ZA (1) ZA986604B (es)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020044656A1 (en) * 1999-10-13 2002-04-18 Brant L. Candelore Interfacing a conditional access circuit to a digital device using input and output stream switching
AU3752100A (en) * 1999-03-30 2000-10-16 Sony Electronics Inc. Interfacing a conditional access circuit to a digital device using input and output stream switching
JP2002094472A (ja) * 2000-05-30 2002-03-29 Matsushita Electric Ind Co Ltd データ取得装置及びその方法
FI20002124A (fi) * 2000-09-27 2002-03-28 Nokia Corp Kanavaominaisuuksien muuttaminen
JP2002290853A (ja) 2001-03-22 2002-10-04 Canon Inc テレビジョン放送受信装置およびテレビジョン放送受信方法およびテレビジョン放送受信プログラム
US7690017B2 (en) * 2001-05-03 2010-03-30 Mitsubishi Digital Electronics America, Inc. Control system and user interface for network of input devices
US7415539B2 (en) * 2001-09-28 2008-08-19 Siebel Systems, Inc. Method and apparatus for detecting insufficient memory for data extraction processes
GB0224705D0 (en) 2002-10-24 2002-12-04 Zarlink Semiconductor Ltd Digital television convertor
PL361715A1 (en) * 2003-08-18 2005-02-21 Advanced Digital Broadcast Ltd. Integrated digital tv decoder
US8205235B2 (en) * 2003-11-14 2012-06-19 Sharp Laboratories Of America, Inc. Systems and methods for representing a tuner device in a media server content directory service
CN1957601B (zh) 2004-03-25 2010-12-08 索尼株式会社 信息信号处理设备、功能块控制方法和功能块
US8473844B2 (en) 2004-03-26 2013-06-25 Harman International Industries, Incorporated Audio related system link management
JP4574253B2 (ja) 2004-07-09 2010-11-04 キヤノン株式会社 画像処理装置及びその制御方法
EP1796388A1 (en) * 2005-12-12 2007-06-13 Advanced Digital Broadcast S.A. Smart card with data storage, set-top box, portable player for operating smart card with data storage and method for manufacturing smart card with data storage
US8010849B2 (en) * 2006-09-05 2011-08-30 Arm Limited Diagnosing faults within programs being executed by virtual machines
US20080218581A1 (en) * 2007-03-06 2008-09-11 Midas Tsai Network audio/video communication system, comunication device and operation and audio/video data processing method for the same
US8590028B2 (en) 2007-07-09 2013-11-19 Infosys Limited Content licensing and conditional access using a mobile device
JP5178429B2 (ja) * 2008-09-25 2013-04-10 キヤノン株式会社 制御装置及び制御方法
CN104349938B (zh) * 2012-04-26 2018-09-11 乔伊·姆·特拉华公司 用于采掘环境的受控的区域照明系统及方法
CN103517026A (zh) * 2012-06-29 2014-01-15 深圳市快播科技有限公司 多屏适配器、多屏适配器的遥控方法及系统
US20160006793A1 (en) * 2014-07-04 2016-01-07 Boe Technology Group Co., Ltd. Osd subject file obtaining and providing method and device, updating system
US11611549B2 (en) * 2019-10-03 2023-03-21 Fset Inc System and method of securing access to a secure remote server and database on a mobile device

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3611588B2 (ja) * 1992-12-21 2005-01-19 ソニー株式会社 送信方法、受信方法、通信方法及び双方向バスシステム
US5815678A (en) * 1995-07-14 1998-09-29 Adaptec, Inc. Method and apparatus for implementing an application programming interface for a communications bus
US6393496B1 (en) * 1995-11-09 2002-05-21 Curtis A. Schwaderer Operating system and network independent application program interface for use in an intelligent communication device
US5787259A (en) * 1996-03-29 1998-07-28 Microsoft Corporation Digital interconnects of a PC with consumer electronics devices
US5815675A (en) * 1996-06-13 1998-09-29 Vlsi Technology, Inc. Method and apparatus for direct access to main memory by an I/O bus
US5883621A (en) * 1996-06-21 1999-03-16 Sony Corporation Device control with topology map in a digital network
US6219703B1 (en) * 1996-10-31 2001-04-17 Motorola, Inc. Method and apparatus for constructing a device management information base in a network management station
CA2284867A1 (en) 1997-03-21 1998-10-01 Jean-Claude Sarfati Access control system
AU740740B2 (en) 1997-03-21 2001-11-15 Canal+ Societe Anonyme Data processing system
US6286054B2 (en) * 1997-10-27 2001-09-04 Flashpoint Technology, Inc. Method and system for supporting multiple capture devices

Also Published As

Publication number Publication date
EP0996894A1 (en) 2000-05-03
WO1999005603A1 (en) 1999-02-04
KR100559158B1 (ko) 2006-03-10
DE69819507D1 (de) 2003-12-11
RU2226710C2 (ru) 2004-04-10
IL134145A (en) 2004-07-25
EP0996894B1 (en) 2003-11-05
BR9810806A (pt) 2000-09-12
NO20000319L (no) 2000-03-24
HRP20000039A2 (en) 2000-08-31
EP0893765A1 (en) 1999-01-27
NZ502917A (en) 2001-08-31
HUP0004817A3 (en) 2003-02-28
CA2296337C (en) 2008-07-15
DE69819507T2 (de) 2004-09-23
CA2296337A1 (en) 1999-02-04
NO319201B1 (no) 2005-06-27
KR20010022198A (ko) 2001-03-15
PL338243A1 (en) 2000-10-09
AU8353398A (en) 1999-02-16
ID24447A (id) 2000-07-20
AU741471B2 (en) 2001-11-29
ATE253752T1 (de) 2003-11-15
IL134145A0 (en) 2001-04-30
TR200000179T2 (tr) 2000-06-21
JP4105382B2 (ja) 2008-06-25
CN1265206A (zh) 2000-08-30
HUP0004817A2 (hu) 2001-05-28
JP2001511558A (ja) 2001-08-14
US6966063B1 (en) 2005-11-15
ZA986604B (en) 1999-03-16
NO20000319D0 (no) 2000-01-21

Similar Documents

Publication Publication Date Title
ES2206957T3 (es) Actuador para dispositivo de caja de adaptacion multimedios para norma ieee1394.
KR100558674B1 (ko) 다중 스레드 데이터 프로세서
KR100632363B1 (ko) 디지털 디코더에서 애플리케이션의 다운로딩
EP1067458A1 (en) Running and testing applications
NO322938B1 (no) Behandling av digital transportstrom
GB2288958A (en) Processing an audio video interactive signal
BRPI9907903B1 (pt) decodificador para um sistema de transmissão audiovisual digital e método para processar imagens digitais em um decodificador para um sistema de transmissão audiovisual digital
UA61944C2 (en) Method for storing sets of transmitted data (variants) and the device for the realization of the method
JP5781049B2 (ja) 可変管理命令群を有するアプリケーション管理器
EP0968611A1 (en) Data processing system
ES2213349T3 (es) Metodo y dispositivo de configuracion.
EP1019836B1 (en) Modem control
CN115766988A (zh) 一种视频预览方法、装置及设备和存储介质
JP4642230B2 (ja) 受信器/復号器部
MXPA00000776A (es) Controlador de dispositivo de caja superior ieee
WO1998043172A2 (en) Access control system
KR20040047865A (ko) 조건부 액세스 시스템에서의 프로세서 요구를 최소화하는스마트카드 uart
CZ2000264A3 (cs) Způsob a řídící zařízení pro komunikaci dat
JPH06232864A (ja) Isdnプライマリ・ゲートウェイして動作するワークステーションに差し込まれるisdn用アダプタ・カードの初期化方法及び装置
CZ331799A3 (cs) Systém řízení přístupu
MXPA00003387A (es) Procesador de datos de multiples subprocesos
MXPA00009426A (es) Administracion de memoria en un receptor/descodificador
MXPA00003213A (es) Control de modem
CZ20001198A3 (cs) Řízení modemu
CZ20001257A3 (cs) Zařízení pro zpracování digitálních audiovizuálních dat