Brevet FR2741972A1 — publié le 19970606

Dispositif et procédé de chargement d'une interface utilisateur dans un système vidéo. L'invention concerne un procédé de chargement d'une interface utilisateur dans un système vidéo, et un dispositif de mise en oeuvre de ce procédé. L'invention s'applique notamment dans la cadre de décodeurs de télévision embrouillée à accès conditionnel. II existe des systèmes de télévision à péage basés sur des cartes à mémoire ou à puce. Ces cartes, ou d'autres supports de mémorisation détachables, contiennent des informations qui, selon leur nature, peuvent devoir être portés à la connaissance de l'utilisateur pour que ce dernier puisse éventuellement les mettre à jour. Par exemple, I'utilisateur peut vouloir connaître les droits qui lui sont attribués (et qui sont généralement transmis en même temps que les données vidéo). Selon un autre exemple, des données modifiables par l'utilisateur sont stockées dans la carte, tel que ses codes parentaux ou des mots de passe personnels. Les décodeurs de télévision modernes, tels que les décodeurs DirecTV vendus sous la marque RCA aux Etats-Unis, sont équipés d'interfaces utilisateurs très développées comportant des fonctions de navigation dans des guides de programmes téléchargés et de sélection de programmes pour la vision ou l'enregistrement. De telles interfaces mettent en oeuvre les capacités graphiques des décodeurs et sont souvent basées sur des menus hiérarchiques ou des représentations d'environnements familiers tels qu'un salon ou un centre commercial. Dans tous les cas, la structure de données sousjacente est une liste liée d'objets actifs. La présentation à et la modification par l'utilisateur des informations mémorisées sur sa carte nécessitent la mise en oeuvre d'une interface utilisateur intégrée à l'interface utilisateur principale du décodeur. En tant qu'objet détachable, la carte d'accès est évolutive. Une carte comportant une partie de l'interface utilisateur, concernant notamment les informations stockées dans la carte, peut être mise à jour en même temps que la carte. La carte échange alors des informations sur les menus à afficher avec l'interface utilisateur principale du décodeur, en réponse aux requêtes de l'utilisateur. Dans ce cas: -la carte envoie une description de page de menu avec des éléments de choix actifs à l'interface utilisateur principale, -I'interface utilisateur traduit unde commande de l'utilisateur en choix dans le menu et envoie le code correspondant à la carte, -la carte interprète le code du choix de l'utilisateur dans le contexte de la page de menu affichée à ce moment, et envoie la page de menu pertinente suivante à l'interface utilisateur principale pour affichage. Ce type de transfert de données peut être très volumineux. Etant donné la faible vitesse de transmission des interfaces de contrôle de cartes à puce, cette solution peut être prohibitivement lente pour l'utilisateur. L'invention a pour objet un procédé de chargement d'une interface utilisateur caractérisé en ce qu'il est mis en oeuvre dans un système comportant un dispositif comprenant une interface utilisateur principale et un support de mémoire détachable comportant d'une part une structure de données d'extension de ladite interface principale, d'autre part des données dynamiques, ledit procédé comprenant les étapes: -de chargement de la totalité de la structure de données d'extension, -d'établissement d'écrans en conformité avec ladite structure, -d'interaction avec l'utilisateur, -de mise à jour ou de lecture des dorinées dynamiques dans le support de mémoire détachable. L'invention a aussi pour objet un dispositif mettant en oeuvre une interface utilisateur, caractérisé en ce qu'il comporte -une interface utilisateur principale ayant une première structure de données, -une interface avec un support mémoire détachable comportant des données dynamiques et une structure de données d'extension de ladite première structure de données, et -des moyens de chargement de la totalité de ladite structure d'extension, - des moyens d'échange avec ledit support des données dynamiques. L'invention est particulièrement adaptée, mais non limitée, à l'utilisation dans le cadre d'un système à contrôle d'accès. En effet, I'invention permet de gérer une interface utilisateur spécifique à ce contrôle d'accès, qui peut différer d'un système de diffusion à un autre. La carte à puce est généralement utilisée pour servir de support à des informations liées au contrôle d'accès dans des systèmes de télévision à péage. L'invention sera mieux comprise à la lecture d'un exemple de réalisation non limitatif illustré par l'unique figure répresentant un flux de données conforme à l'exemple de réalisation. Selon le présent exemple de réalisation, le décodeur charge à partir de la carte une extension de la structure de l'interface utilisateur principale et l'intègre dans celle-ci. Cette structure d'extension comporte une liste liée d'objets actifs. La structure de données d'extension est chargée une unique fois. Selon la présent exemple, le chargement a lieu au moment de l'initialisation de la carte, c'est à dire au moment de sa première insertion dans le décodeur. Le décodeur comprend une mémoire comportant l'interface utilisateur principale, un microprocesseur pour mettre en oeuvre cette interface, une mémoire vive pour charger et stocker des données à partir de la carte à puce insérée dans une interface correspondante. Le protocole de communication entre la carte et le décodeur est le protocole ISO 7816-3. Le décodeur possède des moyens connus pour générer des caractères et des graphiques destinées à être affichés sur un écran connectée au décodeur. La structure d'extension comporte des références à des données dynamiques dans la carte, données qui sont recueillies et mises à jour seulement sur des requêtes de l'utilisateur. Cette configuration permet au décodeur d'afficher les information contenues dans la carte, tout en minimisant pendant les phases où l'utilisateur exerce un contrôle les échanges de données r elatives aux transactions liées à l'interface utilisateur. Les temps de réponse sont ainsi optimisés. Un objet Interface Utilisateur (IU) actif est un objet qui peut être affiché à l'écran et qui possède la propriété de déclencher une action de la part du dispositif hôte si l'utilisateur pointe ou clique une certaine zone de l'écran. La structure de données de l'objet définit quelle action doit être effectuée par rapport à la sélection sur l'écran. Une liste liée d'objets actifs est un ensemble d'objets actifs où les objets comportent de façon interne des références vers d'autres objets. Une liaison indique quel objet doit être affiché à la place de l'objet courant pour telle ou telle sélection sur l'objet courant. Une telle structure permet à l'utilisateur de naviguer d'un objet à un autre, le long d'un ensemble prédéfini de chemins possibles. L'interface utilisateur liée au contrôle d'accès (un des rôles primordiaux d'une carte à puce dans un environnement de télévision à péage), peut être définie pour une ou plusieurs listes indépendantes entre elles. Un exemple de syntaxe de d'une structure de donnée compatible avec ce qui a été défini ci-dessus est le suivant: (Des structures de données à longueur variable sont représentées sous la forme wStructureDonnée()", leur composition figurant entre les parenthèses) ContrôleAccèsUl () ( pour (i = O;i UlListe() { pour (i = O;i } Ecran() ( Déclenchement; pour (i = O;i } Ligne() { pour (i = O;i pour (i = O;i pour Choix() { TexteExplicatif(); NuméroEcranDestination;; } ChampVariable () { TexteExplicatif(); CodeFonctionLectureCarte; } ChampSaisie() t TexteExplicatif(); CodeFonctionEcritureCarte; } TexteExplicatif() { octet donnée; } ContrôleAccèsUI décrit l'extension complète de l'interface utilisateur principale. Elle consiste en un certain nombre de structures en arbre déclenchables séparément. UlListe décrit une liste liée d'objets actifs et une référence vers un événement déclenchant l'affichage d'un premier écran dans la liste. Ecran décrit un écran complet à afficher et comporte une phase d'attente d'une requête de l'utilisateur. Le numéro de l'écran est le rang de l'écran dans UlListe. Un écran comporte plusieurs lignes. Ligne décrit une ligne dans un écran et son comportement. Une ligne est une composition quelconque de Choix, ChampsVariables et ChampsSaisie. Choix décrit une sélection permise à l'utilisateur dans un écran, et comporte la référence à un écran de destination si ce choix est sélectionné. ChampVariable décrit une zone de l'écran où une variables doit être affichée. Cette structure comprend un texte explicatif pour l'utilisateur en cas de besoin, ainsi qu'un code d'une fonction de la carte. Cette fonction doit être appelée pour lire la valeur actuelle de la variable sur la carte. ChampSaisie décrit une zone où l'utilisateur doit entrer une valeur devant être transmise à la carte. Cette structure comprend un texte explicatif, ainsi qu'un code de fonction, fonction appelée pour la mise à jour de l'information correspondant à cette valeur dans la carte. Déclenchement spécifie l'événement qui affichera l'écran sur le dispositif d'affichage. Un déclenchement nul concerne un écran auquel on ne peut accéder qu'à partir d'un autre écran. Dans toute liste liée, au moins un écran a un déclenchement non nul. TexteExplicatif est une chaîne de caractères codée en code ASCII ou un autre code que le dispositif hôte peut interpréter. NuméroEcranDestination est le rang dans la liste de l'écran de destination. CodeFonctionLectureCarte et CodeFonctionEcritureCarte sont deux octets destinés à être transférés à la carte pour-lancer une commande. Dans le cas de CodeFonctionEcritureCarte, la commande inclut également la donnée saisie par l'utilisateur. Pour faciliter l'échange de données entre le dispositif hôte (le décodeur comprenant l'interface utilisateur principal) et le module d'accès conditionnel (en l'occurence la carte à puce), toutes les structures définies cidessus sont codées sous la forme Type, Longueur, Valeur (TLV), où: Type est un octet donnant le type de la structure; Longueur est un mot de deux octets donnant la longueur du champ Valeur; Valeur est une suite d'octets de données en accord avec la syntaxe définie ci-dessus. Les données utiles de commandes de et vers la carte sont composées d'une ou plusieurs structures TLV. Le champ Valeur d'une structure TLV peut comprendre une ou plusieurs structures TLV. Les types utilisés dans le présent exemple de réalisation sont: ContrôleAccèsUI: 00 UlListe 01 Ecran 02 Ligne 03 Choix 04 ChampVariable 05 ChampSaisie 06 TexteExplicatif 07 Les valeurs pour Déclenchement utilisées selon le présent exemple de réalisation sont: L'écran n'est pas un point d'entrée: 0 Requête utilisateur pour consultation: 1 Requête carte pour faire débuter une session interface utilisateur: 2 L'invention ne concerne pas uniquement le chargement d'une interface utilisateur, mais aussi le fonctionnement en soi de l'interface résultant de l'intégration de la structure d'extension. REVENDICATIONS 1. Procédé de chargement d'une interface utilisateur caractérisé en ce qu'il est mis en oeuvre dans un système comportant un dispositif comprenant une interface utilisateur principale et un support de mémoire détachable comportant d'une part une structure de données d'extension de ladite interface principale, d'autre part des données dynamiques, ledit procédé comprenant les étapes: -de chargement de la totalité de la structure de données d'extension, -d'établissement d'écrans en conformité avec ladite structure, -d'interaction avec l'utilisateur, -de mise à jour ou de lecture des données dynamiques dans le support de mémoire détachable. 2. Dispositif mettant en oeuvre une interface utilisateur, caractérisé en ce qu'il comporte -une interface utilisateur principale ayant une première structure de données, -une interface avec un support mémoire détachable comportant des données dynamiques et une structure de données d'extension de ladite première structure de données, et -des moyens de chargement de la totalité de ladite structure d'extension, - des moyens d'échange avec ledit support des données dynamiques. 3. Dispositif selon la revendication 2, caractérisé en ce que ledit support mémoire détachable est une carte à puce.