MÉTODO, PRODUCTO DE PROGRAMA DE COMPUTADORA Y APARATO DE INTERFAZ DE TARJETA MULTIMEDIA
CAMPO TÉCNICO DE LA INVENCIÓN Las modalidades ilustrativas de esta invención se refieren en general a módulos de memoria removibles que contienen dispositivos de memoria y, más específicamente, se refieren a interfaces para la remoción de los módulos de memoria tales como, pero no limitándose a, uno conocido como la Tarjeta multimedia (MMC, por sus siglas en inglés) y uno conocido como la tarjeta de memoria Digital Segura (SD, por sus siglas en inglés) . ANTECEDENTES DE LA INVENCIÓN En los módulos de memoria removibles, tales como el MMC, la señalización de ocupado se definen con relación a, por ejemplo, la programación de datos. La señal de ocupado es emitida del MMC hacia un dispositivo huésped y se utiliza para indicar, en este caso: "memoria intermedia disponible para los siguientes datos". Un comando de borrar también utiliza la señal de ocupado, pero en este caso indica "borrar ocupado" . Ya que existe en general solamente una línea de señal de ocupado presente con el fin de conservar el conteo de terminales, el uso de la señal de ocupado no es flexible. La definición actual para la señal de ocupado en el sistema de Asociación del MMC (MMCA) se basa en el hecho de
Ref. 182049
que las capas de software del dispositivo huésped se implementan típicamente en tal forma que los datos se transfieren en bloques, por ejemplo, en bloques de 16k bytes. De esta forma es práctico utilizar los así llamados comandos de escritura de bloque múltiple, como un bloque de los datos transferidos sobre la interfaz del MMC es solamente una fracción del tamaño del bloque del dispositivo huésped (típicamente el bloque MMC es de 512 bytes) . Ya que el significado de la señal de ocupado es actualmente, para el caso de la transferencia de datos, "memoria intermedia disponible", el huésped puede transferir múltiples bloques de datos de 512 bytes al MMC sin sondear el estado de las memorias intermedias. Sin embargo, como se especifica actualmente, se encuentra un problema en que después de que el último bloque ha sido transferido (por ejemplo, el último bloque de 512 bytes del bloque de 16k bytes total) el huésped debe iniciar el sondeo de una señal de estado "programación disponible", que se hace relevante a este punto ya que no se van a transferir nuevos bloques. La requisición de que el huésped sondee la señal del estado disponible del programa es un uso ineficiente de la capacidad de procesamiento del huésped. BREVE DESCRIPCIÓN DE LA INVENCIÓN El problema anterior y otros problemas se resuelven, y se llevan a cabo otras ventajas, de acuerdo con
las modalidades ilustrativas de esta invención. En un primer aspecto de la misma, esta invención provee un método para interconectar una primera unidad a una segunda unidad a través de un conductor común que comprende una línea de señal . El método incluye conducir la primera información desde la primera unidad a la segunda unidad a través de la línea de señal; conducir la línea de señal desde la segunda unidad para originar un cambio en estado; interpretar el cambio del estado de la línea de señal en la primera unidad para tener un primer significado y en respuesta conducir la segunda información a la línea de señal desde la primera unidad; conducir la línea de señal desde la segunda unidad para originar un cambio del estado e interpretar en la primera unidad el cambio del estado de la línea de señal que ocurre después de conducir la segunda información a la línea de señal para tener un segundo significado diferente del primer significado. En un segundo aspecto de la misma, esta invención provee un producto de programa de computadora contenido en un medio legible por computadora y que comprende las instrucciones de programa para llevar a cabo una operación de interconectar una primera unidad a una segunda unidad a través de un conductor común que comprende una línea de señal. Las operaciones incluyen conducir la primera información desde la primera unidad a la segunda unidad a
través de la línea de señal; conducir la línea de señal desde la segunda unidad para originar un cambio de estado; interpretar el cambio de estado de la línea de señal en la primera unidad para tener un primer significado y en respuesta a la conducción de la segunda información a la línea de señal de la primera unidad; conducir la línea de señal de la segunda unidad para originar otra vez un cambio de estado e interpretar en la primera unidad el cambio de estado de la línea de señal que ocurre después de conducir la segunda información a la línea de señal para tener un segundo significado diferente del primer significado. En un tercer aspecto de la misma, esta invención provee un aparato para intercomunicar una primera unidad a una segunda unidad a través de un conductor común que comprende una línea de señal . El aparato en esta modalidad incluye un controlador en la primera unidad acoplado a la línea de señal y un receptor en la primera unidad acoplado a la línea de señal. El controlador es operable para conducir la primera información y después la segunda información de la primera unidad a la segunda unidad a través de la línea de señal y el receptor es operable para recibir un cambio de estado de la línea de señal conducida desde la segunda unidad tanto antes de la recepción de la primera información después de la recepción de la segunda información en la segunda unidad. Un controlador en la primera unidad es operable para
interpretar el cambio de estado de la línea de señal para tener un primer significado después de conducir la primera información y para tener un segundo significado diferente del primer significado después de conducir la segunda información de la primera unidad a la segunda unidad a través de la línea de señal. La primera unidad puede comprender un huésped y la segunda unidad puede comprender una tarjeta de memoria. En un cuarto aspecto de la misma, esta invención provee un aparato para interconectar una primera unidad con una segunda unidad a través de un conductor común que comprende una línea de señal . El aparato en esta modalidad incluye un controlador en la primera unidad acoplado a la línea de señal y un receptor en la primera unidad acoplado a la línea de señal. El receptor es operable para recibir la primera información y después la segunda información de la segunda unidad a través de la línea de señal y el controlador es operable para conducir un cambio de estado de la línea de señal a la segunda unidad tanto antes de la recepción de la primera información como después de la recepción de la segunda información. Un controlador de la primera unidad origina el cambio de estado de la línea de señal para tener un primer significado después de recibir la primera información y para tener un segundo significado diferente del primer significado después de recibir la segunda información de la segunda unidad a través de la línea de señal. La
primera unidad puede comprender una tarjeta de memoria y la segunda unidad puede comprender un huésped. En un aspecto más de la misma, esta invención provee un método para comunicar datos desde una primera unidad a una segunda unidad a través de un conductor común. El método incluye iniciar una transferencia de datos del blogue n, donde n > 1; para un primer bloque de datos n-l transferido de la primera unidad a la segunda unidad, para ser una señal de estado ocupado/disponible de memoria intermedia después de cada uno de los bloques de datos n-l para informar a la primera unidad de cuando la primera unidad puede transferir el siguiente bloque de datos; y para el bloque de datos r¡avo transferido de la primera unidad a la segunda unidad, controlando la señal de estado para ser una señal de estado ocupada/disponible de programación después del bloque de datos navo para informar a la primera unidad de una terminación de la programación interna, si existe alguna, a través de la segunda unidad. En un aspecto más de la misma, está invención provee un producto de programa de computadora contenido en un medio legible por computadora y que comprende instrucciones de programa para llevar a cabo una operación de comunicación de datos desde una primera unidad a una segunda unidad a través de un controlador común. Las operaciones incluyen iniciar una transferencia de datos de bloque n, en donde n >
1; para un primer bloque de datos n-l transferido de la primera unidad a la segunda unidad, controlar una señal de estado generada por la segunda unidad para ser una señal del estado ocupada/disponible de memoria intermedia después de cada bloque de los datos n-l para informar a la primera unidad de cuando la primera unidad puede transferir el siguiente bloque de datos; y para el bloque de datos navo transferido de la primera unidad a la segunda unidad, controlando la señal de estado de ser una señal de estado ocupada/disponible de programación después del bloque de datos r¡avo para informar a la primera unidad de una terminación de la programación interna, si existe alguna, a través de la segunda unidad. En aún un aspecto más de la misma, está invención provee un aparato para comunicar datos desde una primera unidad a una segunda unidad a través de un controlador común. El aparato incluye un controlador para iniciar una transferencia de datos de bloque n , en donde n > 1. Para un primer bloques de datos n- l transferidos de la primera unidad a la segunda unidad la segunda unidad controla una señal de estado a ser una señal de estado ocupada/disponible de memoria intermedia después de cada uno de los bloques de datos n-l para informar a la primera unidad de cuando la primera unidad puede transferir el bloque de datos siguiente; y para el bloque de datos r¡avo transferido de la primera unidad a la segunda unidad la segunda unidad
controle la señal de estado a ser una señal de estado ocupada/disponible de programación después del bloque de datos navo para informar a la primera unidad una terminación de la programación interna, si existe alguna, a través de la segunda unidad. De acuerdo con otro modo de operación, las modalidades de esta invención incluyen un método, un producto de programa de computadora y aparato para comunicar datos desde una primera unidad a una segunda unidad a través de un controlador común. El método incluye iniciar una transferencia de datos de bloque n , en donde n > 1; para un primer bloque de datos n- l transferidos desde la primera unidad a la segunda unidad, controlando una señal de estado generada por la segunda unidad para ser una señal de estado ocupada/disponible de memoria intermedia después de cada uno de los bloques de datos n-l para informar a la primera unidad de cuando la primera unidad puede transferir el siguiente bloque de los datos; y después de que el bloque de datos navo transferido de la primera unidad a la segunda unidad, envía un comando de detener transmisión a la segunda unidad, y controlando la señal de estado a ser programada como una señal de estado ocupada/disponible de programación para informar a la primera unidad de la terminación de la programación interna, sí existe alguna, a través de la segunda unidad.
BREVE DESCRIPCIÓN DE LAS FIGURAS Lo anterior y otros de las modalidades ilustrativas de esta invención se hacen más evidentes en la siguiente descripción detallada, cuando se leen en conjunción con las figuras anexas, en donde: La Figura 1 es diagrama de bloque que muestra una primera unidad acoplada a una segunda unidad a través de un controlador común; y La Figura 2 es un diagrama en forma de onda ilustrativo que ilustra la operación de esta invención. DESCRIPCIÓN DETALLADA DE LA INVENCIÓN La Figura 1 muestra una primera unidad, tal como un huésped 1, conectado a una segunda unidad, tal como una tarjeta de memoria 2 (por ejemplo, una MMC) , a través de un conductor común 3 que incluye una señal de ocupado 4 asociado con la línea de datos 5. También se muestra una línea de comando (CMD) 6 sobre la cual el huésped 1 emite los comandos a la tarjeta 2, y una línea de reloj (CLK, por sus siglas en inglés) 7. En general el conductor común 3 puede ser compatible con uno definido como "Tarjeta Multimedia,
Especificación del Sistema, Versión 3.31, Comité Técnico de
MMCA", 2003, excepto como se modifica de acuerdo con las modalidades de esta invención para proveer la señal de ocupado multi-uso, o multi-modo 4. Se debe apreciar, sin embargo, que las modalidades de esta invención no están
construidas como siendo limitantes para uso solamente con las tarjetas, interfases, y conductores comunes compatibles con MMC. El huésped 1 puede ser un teléfono celular, o una cámara digital, o una PC, o cualquier dispositivo adecuado que pueda disponer el uso de una tarjeta de memoria 2. El huésped 1 se asume que incluye un controlador ÍA y un receptor IB acoplado a la línea de señal de los datos 5 , y la lógica de control ÍC acoplada al controlador ÍA y al receptor IB y operable de acuerdo con las enseñanzas de esta invención. La tarjeta de memoria 2 se asume que incluye un controlador 2A y un receptor 2B acoplado a la línea de señal de los datos 5, y una lógica de control 2C acoplada al controlador 2A y al receptor 2B y además operable de acuerdo con las enseñanzas de esta invención. Las modalidades ilustrativas de esta invención proveen el cambio del significado del señal de ocupado 4 durante la ejecución del comando. Para el caso de la operación de transferencia de datos MMC esto implica que para los primeros bloques de datos que envían la señal de ocupado 4 se utiliza y se interpreta a través el huésped 1 como se define actualmente (es decir, "memoria intermedia ocupada/disponible"), pero para el último bloque de datos la señal de ocupado 4 se interpreta como "programación ocupada/disponible" . Se debe observar que durante la
transferencia de los datos puede existir programación de datos sobre la marcha dentro del MMC 2. De esta forma, la señal de estado "programación ocupada/disponible" se utiliza para informar al huésped 1 cuando la programación interna de la tarjeta de memoria 2 se completa. A través del uso de las modalidades ilustrativas de esta invención no existe la necesidad de un huésped 1 para sondear la señal de estado "programa ocupado/disponible" interno del MMC 2 , por lo tanto conservando los recursos de la interfaz del huésped (IF) . Más bien, el huésped 1 puede continuar el uso del modo de interrupción-conducción con base en la señal de ocupado más eficiente de operación para la transferencia de datos completa. Además, el uso de las modalidades de esta invención implica que son requeridos menos cronómetros de software (tales como aquellos utilizados para cronometrar una operación de sondeo) , por lo tanto simplificando la implementación. El uso de las modalidades de esta invención también implica que se pueden llevar a cabo las mejoras en el funcionamiento; la compatibilidad hacia atrás y hacia delante se hacen posibles; y que el uso de la implementación de actividad paralela se hace posible en una forma efectiva. Ahora se describen dos modos ilustrativos de operación. Se debe apreciar que existen más de estos dos modos de operación que se habilitan a través del uso de las
modalidades de esta invención. Un primer modo de operación es referido como escritura de bloque múltiple. Para la operación compatible con MMC de la secuencia de comandos es como sigue: CMD16 (Fijar_Bloque_Longitud) ; CMD23 (Fijar_Bloque_Conteo) ; de esta información el MMC 2 puede determinar que bloque de datos es el último bloque; y CMD24 (Escribir_Bloque) ; escribir múltiples bloques de datos. Esta secuencia de comando después es seguida por el envío de los bloques de datos en la línea de datos 5 al MMC 2. Entre cada bloque de lo datos existe una señalización de ocupado en la línea de datos 5. El significado de ocupado en este caso es "memoria intermedia ocupada/disponible" . Tan pronto como la señal de ocupado se cancela (se va hacia arriba) el huésped 1 puede enviar el siguiente bloque de lo datos al MMC 2. Como se observó anteriormente, durante la transferencia de datos puede haber una programación de datos sobre la marcha dentro del MMC 2. De acuerdo con un aspecto de esta invención después de que el MMC 2 recibe el último bloque de datos cambia el significado de la señal de ocupado 4 "programación ocupada/disponible" . Esto significa que el huésped 1 no necesita iniciar el sondeo del estado de programación del MMC 2, sino más bien puede continuar la
espera para una interrupción de ocupado en esta fase del acceso también. Sin embargo, la ocurrencia de la interrupción de ocupado es interpretada por el huésped 1 como ocurrencia de la indicación del estado de "programación disponible" . Un segundo modo de operación es referido como una escritura de bloque múltiple finalizado abierto. Para la operación compatible con MMC la secuencia de comando es como sigue : CMD16 (Fijar_Bloque_Longitud) ; CMD25 (Escribir_Múltiple_Bloque) ; Enviar los bloques de datos en la línea de datos 5 ; Y
CMD 12 (Detener_Transmisión) ,- a partir de esta información el MMC 2 sabe que el último bloque de datos se ha enviado . Entre cada bloque de datos existe una señalización de ocupado que ocurre en la línea de datos 5. El significado de ocupado en este caso es "memoria intermedia ocupada/disponible" . Tan pronto como la señal de ocupado se cancela el huésped 1 pueda enviar el siguiente bloque de datos al MMC 2. Durante la transferencia de datos puede existir una programación de datos sobre la marcha dentro del MMC 2. De acuerdo con un aspecto de esta invención después de que el MMC 2 recibe el comando de detener (CMD12) otra vez
establece la señal de ocupado, pero en este caso el significado de la señal de ocupado 4 es otra vez
"programación ocupada/disponible" . Se puede observar que existen varios períodos de tiempo posibles durante las cuales el CMD12 se puede enviar al MMC 2, y que esto puede afectar el significado y la interpretación del señal de ocupado 4. La Figura 2 es un diagrama de forma de onda que ilustra un modo de operación en donde el CMD23 (Fijar_Bloque_Conteo) y CMD25 (Escribir_Múltiple_Bloque) se envían en la línea de señal CMD6 , y muestra la línea de datos
transportando el primero y el último bloques de datos, y el uso de la señal de ocupado en el modo doble 4, que es conducida por la tarjeta 2 para indicar uno del "memoria intermedia ocupada/disponible" y "programación ocupada/disponible" . Como una modalidad alternativa, separar las líneas ocupadas podría utilizarse para diferentes tipos de indicaciones de estado (por ejemplo, en el caso del estado de la memoria intermedia y estado de programación) . Sin embargo, este método podría requerir más terminales físicas, y no es compatible en reversa. En contraste con los usos previos para la señal de ocupado 4, de acuerdo con aspectos de esta invención el significado de la señal de ocupado 4 se cambia dentro del
mismo comando (por ejemplo, escribir bloques múltiples) y entre los bloques de datos transferidos. Está dentro del alcance de las modalidades ilustrativas de esta invención para el huésped 1 programar el MMC 2 para seleccionar el modo de operación de la señalización de ocupado. Por ejemplo, en el reinicio de la activación del MMC 2 puede por omisión establecerse en el uso convencional de señalar de ocupado, pero después puede programarse por el huésped 1 para operar con el uso multi-modo de la señalización de ocupado (por ejemplo, memoria intermedia ocupada/disponible y programación ocupada/disponible) . Alternativamente, el modo de activación de operación se puede definir como siendo un uso multi-modo de la señalización de ocupado, y el huésped 1 pueden entonces programar el MMC 2 para utilizar la señalización de ocupado/disponible convencional. En un aspecto de la misma después las modalidades de la invención proveen la tarjeta de memoria 2 que comprende una interfaz de conductor común para acoplarse al huésped 1 a través del controlador común 3 que comprende la línea de señal de datos 5. La interfaz de conductor común incluye un controlador 2A acoplado a la línea de señal de los datos y el receptor 2B también acoplado a la línea de señal de datos 5. El receptor 2B es operable para recibir la primera información del primer huésped 1 a través la línea de señal
de los datos 5. El controlador 2A es operable para conducir un cambio de estado (como una transición de la señal de ocupado 4) de la línea de señal de datos 5 al huésped 1. La tarjeta de memoria 2 además incluye la lógica de control o controlador 2C que se acopla al controlador 2A y al receptor 2B y que es operable para originar el cambio de estado de la línea de señal de datos 5 para tener un significado diferente (por ejemplo, "memoria intermedia ocupada/disponible") después de recibir la primera información y para tener un segundo significado (por ejemplo, "programación ocupada/disponible") después recibir una segunda información de huésped 1 a través de la línea de señal de los datos 5. El controlador común 3 además incluye la línea de señal de comando 6, y el controlador 2C reacciona a por lo menos un comando recibido a través de la línea de señal de comando 6 del huésped 1 para originar el cambio de estado de la línea de señal de los datos 5 tener el primer significado después de recibir la primera información y para tener el segundo significado después de recibir la segunda información del huésped 1 a través de la línea de señal de datos 5. El controlador 2C puede reaccionar a la programación recibida del huésped 1 para determinar el significado del cambio de estado de la línea de señal de datos 5 para tener uno del primer significado después de recibir la primera información y para tener el segundo
significado después de recibir la segunda información del huésped a través de la línea de señal de datos, o para tener el primer significado después de recibir la primera información y también para tener el primer significado después de recibir la segunda información del huésped 1 a través de la línea de señal de datos 5. La descripción anterior ha sido provista a manera de una descripción completa e informativa de ejemplos no limitantes del mejor método y aparato actualmente contemplado por los inventores para llevar a cabo la invención. Sin embargo, pueden ser evidentes varias modificaciones y adaptaciones por los expertos en la técnica relevante en vista de la descripción anterior, cuando se lee en conjunción con los dibujos anexos y las reivindicaciones anexas. Como algunos ejemplos de modalidades alternativas, el uso de otros protocolos de señalización similares o equivalentes y tipos de módulos pueden ser intentados por los expertos en la técnica. Además, la señal de ocupado 4 se puede hacer para asumir más de dos significados durante un solo comando de transferencia de datos. Como un ejemplo, cuando se transfieren tres bloques de datos la señal de ocupado 4 podría tener un primer significado después de que se transfiere el primer bloque de datos, un segundo significado después de que se transfiere un segundo bloque de datos, y un tercer significado después de que se transfiere
un tercer bloque de datos. Además, a este respecto, la señal de ocupado se puede utilizar para indicar una pluralidad de diferentes estados durante la ejecución del comando multifase. Por ejemplo, asumir el uso del comando multi-fase en donde la(s) dirección (es) que se van a eliminar se envían de la línea de comando, y en donde la señal de ocupado 4 indica después de que se recibe la primera (s) dirección (es) que se pueden enviar direcciones adicionales, y después de que la última (s) dirección (es) se va a eliminar se envía a la señal de ocupado 4 lo que indica el estado de borrar. Sin embargo, todas dichas y similares modificaciones de las enseñanzas de esta invención aún caerán dentro del alcance de las modalidades de esta invención. Además, algunas de las características de las modalidades ilustrativas de esta invención se pueden utilizar con ventaja sin el uso correspondiente de otras características. Es decir, la descripción anterior deberá considerarse como meramente ilustrativa de los principios, enseñanzas, y modalidades de esta invención, y no limitaciones de la misma. Se hace constar que con relación a esta fecha, el mejor método conocido por la solicitante para llevar a la práctica la citada invención, es el que resulta claro de la presente descripción de la invención.