[0001] A presente invenção refere-se a um processo detelecarregamento em uma caixa receptora/decodificadora de televisão.
[0002] O domínio da invenção é aquele das caixas receptorasdecodificadoras de televisão. Essas caixas são também conhecidas sob o nome de STB (Set Top Box, para a caixa que se coloca em cima do aparelho). Mais precisamente o domínio da invenção é aquele da atualização do ou dos aplicativos executados por essas STB. Um tal programa é, na maior parte do tempo, chamado firmware ou microcódigo/micro-software. Não se pode aqui se deixar enganar pelo prefixo micro. O tamanho em memória de um tal aplicativo atinge tradicionalmente até quatro Mo (Megaoctetos) e mesmo mais.
[0003] Um objetivo da invenção é permitir a atualização de um talaplicativo ao mesmo tempo em que se conserva, durante a atualização, o essencial e mesmo a integralidade das funcionalidades da STB.
[0004] No estado da técnica, o microcódigo de uma STB édifundido da mesma maneira que um programa multimídia. A STB é própria para detectar a difusão de uma tal atualização. Quando a disponibilidade de uma tal atualização é detectada, no melhor dos casos, a STB pergunta ao utilizador se ele deseja atualizar o microcódigo. Na afirmativa a STB está indisponível todo o tempo que vai durar a atualização. Na medida em que as vazões atribuídas à transmissão das atualizações são pequenas, uma tal atualização leva até uma hora. Isso é um problema pois a disponibilidade de uma tal atualização é detectada por ocasião da colocação sob tensão da STB, quer dizer quando seu utilizador deseja utilizar as funções da STB.
[0005] A atualização é de fato realizada por um programa loader (para carregador) que esmaga o antigo microcódigo, o que torna sua execução impossível.
[0006] Na invenção esses problemas são resolvidos permitindo-separa isso a coexistência de vários microcódigos em uma STB. O microcódigo executado no acionamento da STB depende então de uma parametrização da STB. Assim quando a disponibilidade de um novo microcódigo é detectada, uma parte dos recursos da STB é destinada para a gravação desse novo microcódigo ao lado do ou dos microcódigos existentes. Por ocasião do acionamento seguinte, ou no fim da gravação, o utilizador é avisado sobre a disponibilidade desse novo microcódigo e pode escolhê-lo como microcódigo nominal, quer dizer, mudar a parametrização de acionamento da STB. Na invenção a STB compreende pelo menos dois dispositivos de entrada, um desses dispositivos sendo destinado à aquisição para gravação do novo microcódigo. Um dispositivo de entrada é, de uma maneira geral, um dispositivo de recepção de dados. Um dispositivo de entrada é, por exemplo, um sintonizador, um leitor de CD/DVD, uma porta serial (RS232, USB, ...)...
[0007] A invenção tem portanto como objeto um processo detelecarregamento de um aplicativo em um receptor/decodificador de televisão que compreende pelo menos dois dispositivos de recepção de dados, as etapas seguintes sendo executadas pelo dito dispositivo receptor/decodificador de televisão:acionamento do receptor/decodificador de televisão em consequência de uma solicitação de um utilizador do receptor, parametrização do primeiro dispositivo de recepção em função de uma ação do utilizador,detecção da disponibilidade de um novo aplicativo, caracterizado pelo fato de que ele compreende também as etapas seguintes executadas pelo dito dispositivo receptor/decodificador de televisão:o acionamento é de acordo com uma parametrização do receptor/decodificador de televisão que tem como objeto o aplicativo a executar no acionamento,gravação do novo aplicativo em um suporte de salvaguarda a partir e de acordo com a disponibilidade do segundo dispositivo de recepção.
[0008] Em uma variante o processo de acordo com a invenção étambém caracterizado pelo fato de que ele compreende uma etapa de atualização de uma memória de configuração cujo conteúdo designa o aplicativo a executar no acionamento do receptor/decodificador de televisão.
[0009] Em uma variante o processo de acordo com a invenção étambém caracterizado pelo fato de que o primeiro dispositivo de recepção de dados é um sintonizador.
[00010] Em uma variante o processo de acordo com a invenção é também caracterizado pelo fato de que o segundo dispositivo de recepção de dados é um sintonizador.
[00011] Em uma variante o processo de acordo com a invenção é também caracterizado pelo fato de que o segundo dispositivo de recepção de dados é uma porta de conexão de um periférico local entre a lista formada por pelo menos: USB, Wifi, IEE 1394.
[00012] Em uma variante o processo de acordo com a invenção é também caracterizado pelo fato de que o suporte de salvaguarda é um periférico de estocagem de massa integrado ao receptor/decodificador de televisão.
[00013] Em uma variante o processo de acordo com a invenção é também caracterizado pelo fato de que a gravação do novo aplicativo é tornada segura pelo menos pela autenticação da fonte de dados que fornece os dados que correspondem ao aplicativo.
[00014] A invenção será melhor compreendida com a leitura da descrição que se segue e com o exame das figuras que a acompanham. Essas últimas são apresentadas a título indicativo e de nenhuma forma limitativo da invenção. As figuras mostram:a figura 1: meios que permitem a execução do processo de acordo com a invenção,a figura 2: etapas do processo de acordo com a invenção.
[00015] A figura 1 mostra um dispositivo 101 receptor/decodificador de televisão abaixo designado como a STB 101.
[00016] A STB 101 compreende uma memória 102 de programa que compreende códigos de instruções que correspondem às funções de execução pela STB. Esses códigos de instruções são executados por um microprocessador 103 da STB 101. De uma maneira geral, nessa descrição, quando se atribui uma ação a um dispositivo essa ação é de fato realizada por um microprocessador desse dispositivo comandado por códigos de instruções gravados em uma memória desse dispositivo.
[00017] A figura 1 mostra que a memória 102 compreende várias zonas, cada uma dessas zonas correspondendo aqui a um aplicativo. Nessa descrição a memória 102 é apresentada como uma memória unitária. Pode ser de outro modo na prática como vai ser ilustrado na sequência.
[00018] A memória 102 compreende uma zona 102a que compreende códigos de instruções que correspondem a uma sequência de acionamento da STB 101. Tipicamente, esses códigos de instruções são gravados em uma memória em somente leitura da STB 101 e/ou em um componente eletrônico, memória dedicada.
[00019] A memória 102 compreende uma zona 102b que compreende códigos de instruções que correspondem a uma versão do microcódigo da STB 101. Na invenção a memória 102 compreende pelo menos uma segunda zona 102c do mesmo tipo que a zona 102b. As zonas 102b e 102c correspondem a duas versões diferentes do microcódigo da STB 101. Essas diferenças correspondem ou a atualizações, ou a versões que compreendem funcionalidades diferentes.
[00020] As zonas 102b e 102c são gravadas em uma unidade de estocagem de massa, por exemplo um disco rígido, da STB 101.
[00021] As zonas 102b e 102c compreendem cada uma delas uma zona que compreende códigos de instruções que correspondem ao acionamento da STB 101 e que compreendem códigos de instruções que permitem que a STB 101 grave uma nova versão do microcódigo a partir de uma fonte de dados.
[00022] A figura 1 mostra que a STB 101 compreende várias fontes de dados. Aqui uma fonte de dados é um dispositivo que permite que a STB 101 tenha acesso a uma nova versão do microcódigo.
[00023] A figura 1 mostra que a STB 101 compreende pelo menos um sintonizador 104 que permite que a STB 101 receba e decodifique sinais radiodifundidos que correspondem à difusão de programas multimídia, e à difusão de uma nova versão do microcódigo.
[00024] Em uma variante da invenção a STB 101 compreende um segundo sintonizador 105 idêntico ao sintonizador 104.
[00025] Em uma variante da invenção a STB 101 compreende uma porta 106 USB que permite conectar à STB 101 um periférico de estocagem USB.
[00026] Em mais uma outra variante a STB 101 compreende umleitor de DVD não representado.
[00027] A figura 1 mostra ainda que a STB 101 compreendecircuitos 107 receptores de sinais de comando emitidos por um controle remoto 120.
[00028] A figura 1 mostra ainda que a STB 101 compreende circuitos 108 que permitem conectar à STB 101 a um televisor 121.
[00029] A figura 1 mostra ainda que a STB 101 compreende uma memória 109 de configuração que permite gravar uma configuração da STB 101. Essa configuração compreende pelo menos um identificador de uma zona da memória 102 que corresponde ao microcódigo que deve ser executado no acionamento da STB 101.
[00030] Os elementos 102 a 109 são interconectados por um cabo de interconexão 110.
[00031] A figura 2 mostra uma etapa 201 preliminar na qual um utilizador da STB 101 a coloca sob tensão ou a tira de um modo de vigília. Isso é realizado, por exemplo, via o controle remoto 120.
[00032] Por ocasião da etapa 201, a STB 101 executa os códigos de instrução gravados na memória 102a. A um momento dessa execução, que corresponde a uma etapa 202 que segue a etapa 201, a STB 101 lê o conteúdo da memória 109 para encontrar nela o identificador da zona da memória 102 que compreende o microcódigo a executar. Um tal identificador é por exemplo um endereço na memória 102 que corresponde ao primeiro código de instrução do microcódigo a executar. Em um outro exemplo a memória 102 é dividida em bloco numerado de modo contínuo, cada bloco permitindo gravar uma versão completa do microcódigo. Nessa versão o identificador é um número de bloco.
[00033] Esse identificador é encontrado pois ele está situado em um local predeterminado da memória 102. O conhecimento desse local faz nesse caso parte dos códigos de instruções da zona 102a. Em outros termos esse local é determinado na concepção e na compilação dos códigos de instruções da zona 102a.
[00034] Em uma etapa 203 que segue a etapa 202, a STB 101executa o microcódigo que foi identificado na etapa 202.
[00035] Esse microcódigo, qualquer que seja sua versão, compreende códigos de instruções de análise que correspondem à análise dos dados recebidos pelos dispositivos de entradas para detectar neles a presença de uma nova versão do microcódigo, ou de um aplicativo que a STB é própria para executar. Em uma variante esses códigos de instruções de análise são gravados na memória 102a, o microcódigo compreende nesse caso códigos de instruções que permitem que ele invoque os códigos de instruções de análise.
[00036] Esses códigos de instruções de análise são portanto executados, em intervalo regular ou por acontecimento predeterminado, pelo microcódigo em uma etapa 204 de detecção da disponibilidade de uma nova versão do microcódigo. Um acontecimento podendo provocar a execução dos códigos de instruções de análise e a colocação em função da STB 101.
[00037] Se nenhuma nova versão foi detectada na etapa 204 então a STB passa da etapa 204 para a etapa 203 na qual ela prossegue a execução do microcódigo selecionado na etapa 202. No caso contrário, a STB 204 passa para uma etapa 205 facultativa de autenticação da versão do microcódigo detectado. Nessa etapa a STB 101 verifica também se o microcódigo disponível já não está presente na memória 101 caso no qual é inútil gravá-lo de novo.
[00038] Será considerado que a STB 101 detectou, em seu acionamento, uma nova versão de microcódigo disponível e difundido pelos ares, quer dizer que a STB 101 detectou essa nova versão via um de seus sintonizadores. A STB 101 destina, então, um de seus sintonizadores à gestão dessa nova versão de seu microcódigo. Isso significa que esse sintonizador, e mais geralmente o dispositivo de entrada via o qual a nova versão foi detectada, não está mais disponível para outra coisa que não seja a gestão da nova versão do microcódigo.
[00039] Na medida em que a STB 101 compreende dois sintonizadores, ou na medida em que o dispositivo de entrada via o qual a nova versão do microcódigo foi detectada não é um sintonizador, resta ainda um sintonizador disponível para permitir que a STB 101 assuma uma parte, e mesmo todas, suas funções e portanto responda às solicitações do controle remoto 120 enquanto a STB 101 está gerindo a recepção de uma nova versão de microcódigo.
[00040] Por exemplo, o utilizador pode continuar a parametrizar o sintonizador que não serve para a gestão da recepção do microcódigo para selecionar um canal que ele deseja visualizar. Do ponto de vista do utilizador a STB 101 é portanto sempre funcional. Se o utilizador tenta executar uma função que necessita da disponibilidade dos dois sintonizadores, ele se veria comunicar uma mensagem que indica a ele que essa função não está mais disponível até o fim da gestão da nova versão do microcódigo. Em uma variante, nesse caso, a STB 101 interrompe a gestão da nova versão do microcódigo para retomá-la ulteriormente. Em uma variante, o sintonizador utilizado para a recepção do microcódigo é liberado a fim de que o utilizador possa utilizar a função que ele deseja.
[00041] Na prática, uma nova versão é numericamente assinada com uma chave secreta conhecida pela STB 101. A STB 101 é portanto capaz de determinar se a nova versão do microcódigo detectada é mesmo autêntica.
[00042] Se esse não for o caso, a STB 101 passa para a etapa 203. Se a nova versão é autêntica, então a STB 101 passa para uma etapa 206 de gravação.
[00043] Na etapa 206 a STB determina um local para gravar a nova versão do microcódigo detectada na etapa 204. Esse local está na memória 102, na sequência da última versão do microcódigo a ter sido gravada. Se o espaço na memória 102 é insuficiente, então o local escolhido é aquele da versão mais antiga do microcódigo.
[00044] Para essa gestão do local da nova versão do microcódigo a memória 102 é vista pelo microcódigo ativo da STB 101 como um disco dotado de uma capacidade dada. O microcódigo ativo compreende, portanto, ou é possível invocar, códigos de instrução para a gestão de disco. Esses códigos de instruções correspondem aos serviços de bases oferecidos por um sistema de exploração a um aplicativo. Esses serviços compreendem pelo menos a enumeração do conteúdo da memória, o apagamento de um arquivo da memória, a gravação de um arquivo da memória.
[00045] A STB 101 tem, portanto, acesso em todos os momentos ao conteúdo da memória 102. Esse conteúdo é visto como um conjunto de arquivos. Cada arquivo compreende propriedades como um número de versão. Esse número de versão permite apresentar ao utilizador os arquivos, mas também determinar se uma versão disponível via um dispositivo de entrada já não está gravada na memória 102.
[00046] No final da etapa 206 uma nova versão do microcódigo está disponível na memória 102. Ou a STB 101 avisa imediatamente o utilizador. Ou a STB 101 atualiza um parâmetro da memória 109 que indica à STB 101 que ela deve avisar o utilizador sobre a disponibilidade de uma nova versão do microcódigo na próxima colocação em função da STB 101. No caso de uma aviso imediato, ou diferido, esse último toma a forma de uma mensagem OSD (On Screen Display, exibição na tela) que se sobrepõe à imagem que o utilizador da STB 101 está visualizando.
[00047] Esse utilizador pode então decidir, via o controle remoto120, levar essa mensagem em consideração ou ignorá-la. O fato de ignorá-la valida do ponto de vista da STB que o utilizador está informado sobre a disponibilidade de uma nova versão do microcódigo. Isso significa que a STB 101 não avisará mais o utilizador sobre a disponibilidade desse novo microcódigo.
[00048] Se o utilizador leva em consideração essa mensagem, isso provoca a exibição de uma nova mensagem OSD que lista as versões de microcódigo disponíveis e que permite que o utilizador selecione aquela que ele deseja ativar. Cada microcódigo está presenteassociado a um nome e/ou um numero de versão. Se o utilizadorseleciona um microcódigo diferente daquele atualmente executado, isso provoca a atualização da memória 109 com o identificador do microcódigo selecionado e imediatamente depois dessa atualização o reacionamento da STB 101. Por ocasião desse reacionamento é o microcódigo selecionado justo antes que será executado. Esse microcódigo é um daqueles presentes na memória 102.
[00049] É precisado aqui que a seleção do microcódigo possa ser feita a qualquer momento pela combinação correta de teclas no controle remoto 120.
[00050] O utilizador é portanto habilitado para levar em consideração uma mensagem que indica o final do telecarregamento do microcódigo de várias maneiras:uma opção permite que ele reacione imediatamente a STB com o novo microcódigo,uma opção permite que ele indique que o próximo reacionamento manual da STB será feito com o novo microcódigo. Nesse caso o utilizador continua a utilizar normalmente a STB.
[00051] Com a invenção a STB 101 pode, portanto, executar várias versões de microcódigo.
[00052] Em uma variante da invenção o microcódigo de acordo com a invenção compreende uma etapa de detecção executada por ocasião da ativação de qualquer dispositivo de entrada. Assim, por ocasião da conexão de um periférico USB, o microcódigo começa por detectar se esse periférico compreende uma versão autenticada do microcódigo a gravar na memória 102. O mesmo acontece com a introdução de um DVD em um leitor de DVD que a STB 110 compreende ou que está conectado à STB 101.