FR 2895106 A1 20070622 FR 0553965 A 20051220 L'invention concerne un procede de telechargement d'un fichier de configuration dans un circuit programmable et un appareil permettant un tel telechargement. De nos jours, on trouve de nombreux equipements grand public servant au traitement, au stockage et a la reproduction d'un grand nombre de contenus audiovisuels ou audio. Ces appareils contiennent les circuits electroniques suivants : une unite centrale, generalement un microprocesseur, une memoire contenant un programme executable, une memoire de travail, des io peripheriques d'entrees/sorties (Tuner, circuit de communication avec un reseau bidirectionnel, recepteur IR, ...), une memoire de masse (disque dur), etc. L'unite centrale supervise ('ensemble des fonctions fournies par ('appareil. Elie est donc fortement utilisee. Pour diminuer sa charge de travail et ainsi augmenter sa performance pour ('execution de certaines taches, i1 est connu is d'augmenter les capacites et performances des circuits peripheriques. Ainsi les circuits de communication peuvent gerer la reception et ('emission d'un bloc de donnees, un circuit OSD (abrege de On Screen Display) permet d'inserer une partie d'image a I'ecran, le disque dur est dote d'une interface assurant le transfert de bloc d'informations d'une taille importante. 20 Ces circuits sont proposes par des fabricants de circuits integres et certains modeles peuvent titre programmes par ('unite centrale pour ('execution de taches specifiques. Cependant, certaines fonctions sont tres specifiques et ne peuvent titre realisees (ou du moins de fawn peu efficaces) par des circuits vendus dans le commerce. Dans ce cas, et pour Iiberer davantage 25 ('unite centrale a remplir ses fonctions, Ies constructeurs d'appareils ont recours a des circuits programmables. Ces circuits sont identifies comme appartenant aux families communement nommees par Ies acronymes : FPGA, EPLD, CPLD, selon la technologie utilisee. Ces circuits contiennent un ensemble de portes logiques. Leur programmation consiste a etablir des liens 30 electriques entre Ies portes afin de realiser des fonctions logiques evoluees basees sur des ensembles de circuits combinatoires ou sequentiels. L'etablissement des liens electriques peut se faire en detruisant des elements fusibles si le circuit s'apparente a une PROM. D'autres technologies plus recentes permettent d'integrer dans ces circuits des cellules EPROM effagables par des ultraviolets, ou des cellules EEPROM inscriptibles et reprogrammables electriquement. Dans tous les cas, une fois programme et s installs sur I'appareil cible, le circuit est operationnel et remplit les fonctions pour lesquelles it a ete programme. Par exemple, si I'utilisateur desire utiliser un convertisseur numerique/analogique, alors le signal d'entree doit titre code en numerique, par exemple, selon le format SDI (acronyme de Serial Digital Interface ). io Mais si I'utilisateur utilise son appareil en tant convertisseur Audio Analogique / Numerique, it doit appliquer des signaux analogiques par exemple, au format CVBS, en entree. La presente invention decrit une methodologie servant a la programmation dynamique d'un ou plusieurs circuits programmables. is La presente invention a pour objet un procede de telechargement d'un fichier de configuration dans un circuit programmable implements dans un appareil, !edit appareil comportant une pluralite de connecteurs destines a permettre le raccordement avec au moins un autre appareil, et un circuit programmable permettant de traiter des signaux regus par lesdits connecteurs ; 20 caracterise en ce qu'il comporte : - une etape d'analyse des signaux presents sur les connecteurs afin de detecter des connexions operationnelles permettant la communication avec au moins un autre appareil, - une etape de telechargement d'au moins un fichier de configuration 25 selectionne parmi un ensemble de fichiers de configuration en fonction de la presence des connexions operationnelles detectees. De cette fawn, le circuit programmable est configure en fonction des connexions operationnelles avec d'autres appareils. Selon un premier perfectionnement, les connexions operationnelles 30 sont celles pour lesquelles I'appareil connects delivre un niveau electrique determine. L'appareil determine ainsi les appareils connectes fournissant ladite tension et susceptible d'entrer en communication. Selon un autre perfectionnement, I'etape d'analyse intervient continuellement tant que I'appareil est sous tension. De cette fawn, I'appareil analyse continuellement Ies connecteurs d'entrees et adapte le circuit programmable lorsqu'un changement intervient. Selon un perfectionnement, I'etape d'analyse continuellement operationnelle consiste a analyser Ies informations envoyees par un autre appareil !ors de sa connexion. De cette fawn, !'apparell contenant le circuit programmable reagit tres rapidement a un changement et adapte le circuit programmable en consequence. Selon un perfectionnement, au moins un fichier de configuration est io selectionne en fonction d'une configuration de plusieurs connexions operationnelles. Ainsi, un meme fichier de configuration peut repondre a !a gestion de plusieurs connexions. Selon un perfectionnement, Ies fonctions principales de !'apparell sont inactivees !ors de !'etape de telechargement. De cette fawn, Ies signaux is aleatoires emis par le composant programmable au cours de sa programmation ne declenchent pas pour !'apparell un comportement intempestif. Selon une variante de realisation, !ors de !'etape de telechargement, !'apparell emet un message indiquant une inactivation momentanee des fonctions. De cette fawn, !'utilisateur est mis au courant d'une telle inactivation. 20 La presente invention a aussi pour objet un appareil de traitement comportant au moins une unite centrale, une pluralite de connecteurs destines a permettre le raccordement avec au moins un autre appareil, et un circuit programmable permettant de traiter une partie des signaux regus par lesdits connecteurs ; caracterise en ce qu'il comporte un moyen d'analyse des 25 connexions afin de detecter Ies connexions operationnelles permettant !a communication avec au moins un autre appareil, et un moyen de telechargement d'au moins un fichier de configuration selectionne parmi un ensemble de fichiers de configuration en fonction de !a presence des connexions operationnelles detectees. 30 D'autres caracteristiques et avantages de !'invention apparaftront a travers !a description d'un exemple de realisation non limitatif de !'invention, explicite a !'aide des figures jointes, parmi lesquelles : - !a figure 1 est un diagramme bloc d'un recepteur, typiquement un s lecteur audio selon un exemple de realisation de !invention, - !a figure 2 est un diagramme bloc de !a partie interface permettant !a connexion du recepteur a plusieurs appareils, - !a figure 3 represente un organigramme presentant !es principales etapes d'un mode de realisation simplifie d'un exemple de realisation de !a io presente invention. Selon un exemple prefere de realisation, le circuit programmable est mis en oeuvre dans un recepteur tel que represente a la figure 1, typiquement un recepteur 1 associe a un dispositif d'affichage 2. Le recepteur comprend 15 une unite centrale 3 reliee a une memoire de programme 6, un recepteur de signaux infrarouge 7 pour recevoir les signaux d'une telecommande, et une logique de decodage audio/video 9 pour la generation des signaux audiovisuels envoyes a l'ecran de television 2. Le recepteur 1 comprend egalement un circuit 8 d'affichage de donnees sur l'ecran, appele souvent 20 circuit OSD, de I'anglais "On Screen Display" (signifiant litteralement "affichage sur l'ecran"). Le circuit OSD 8 est un generateur de texte et de graphisme qui permet d'afficher a l'ecran des menus, des pictogrammes ou autres graphismes. Le recepteur dispose d'un ensemble de connecteurs 15 permettant notamment de recevoir des donnees audio et/ou video d'un reseau 25 de diffusion a travers une antenne de reception associee a un demodulateur 4, ce reseau peut titre de type radio, cable ou satellite. Les connecteurs 15 assurent egalement la communication avec un bus numerique local a haut debit permettant de recevoir des informations sur Ies contenus audio diffuses. Ce reseau est par exemple un reseau IEEE 1394. L'interface 5 permet de 30 connecter d'autres appareils, par exemple des appareils dotes de connexions de type USE, CVBS (entree video composite) ou 4 :2 :2 (CCIR 656 û video numerique), egalement a travers des connecteurs 15. Les circuits d'interface 5 comportent un circuit programmable 10 qui assure certaines fonctions d'interfagage entre ('unite centrale 3 et les connexions entrees/sorties. La figure 2 montre un diagramme bloc presentant les circuits s d'interfaces 5 permettant la communication entre le recepteur 1 et d'autres appareils distants ou non. Ce diagramme montre notamment le circuit programmable 10 et les moyens materiels permettant d'assurer sa programmation. Le circuit programmable 10 regoit les signaux d'entrees provenant d'un circuit 11. Le circuit 11 permet en plus de ('adaptation io electrique, la detection des changements dans les signaux appliques aux entrees de I'appareil 1. Le circuit 11 detecte notamment la connexion de nouveaux appareils delivrant un signal utile. Les appareils connectes peuvent egalement communiquer par une liaison sans contact de type radio (a ('aide d'une connexion WIFI par exemple), hyperfrequence, infrarouge ou tout autre is moyen de communication sans fil. Dans ce cas, le circuit 11 contient les moyens de communication sans fil assurant une liaison I'entre I'appareil 1 et les appareils connectes. Le circuit 11 est relie a un circuit de controle 12, typiquement un microcontroleur, de cette fawn ce dernier regoit les informations sur ('utilisation 20 des connexions d'entrees sorties. Le circuit de controle 12 est relie a une memoire non volatile 13, qui est typiquement de la memoire Flash, d'une capacite typique de 16 Mega octets et a une memoire de travail RAM physiquement representee sur le schema comme exterieure au circuit de controle 12 mais pouvant parfaitement titre integree a celui-ci. Le circuit 12 est 25 egalement relie a une memoire non volatile 14, typiquement un composant EEPROM communiquant avec un bus 12C ou une liaison serie. La memoire 14 contient la table de correspondance entre Ies differentes configurations de connexion supportees en entree et Ies fichiers de configurations binaires a charger dans Ies circuits programmables. Le fait d'avoir un composant 30 independant permet de simplifier industriellement ou en SAV Ia reprogrammation de cette memoire non-volatile. Sa taille peut titre Iimitee a quelques octets ou dizaines d'octets. La memoire 13 contient un programme principal destine a controler ('ensemble des fonctions du produit , et un jeu de fichiers de configuration binaires (en anglais Firmware 1, Firmware 2, Firmware 3,... D. Le format de ces fichiers est decrit par Ies notices des constructeurs de circuits programmables. La configuration de chacun des circuits programmable autorise I'acces a des fonctions utilisant tout ou une partie des signaux transmis par Ies connecteurs 15. io Apres avoir detaille Ies principaux composants d'un exemple de realisation de !'invention, nous allons maintenant montrer a ('aide de l'organigramme de !a figure 3 comment ceux-ci cooperent. Dans un premier temps, l'utilisateur installe Ies differents appareils et Ies connecte entre eux. L'analyse des connections est faite a !a mise sous is tension (etape 3.1). Cette etape permet de detecter Ies nouvelles connections faites lorsque le recepteur 1 etait hors tension. A l'etape 3.2 le circuit de detection 11 analyse l'etat des connecteurs d'entree 15 afin de determiner quelles sont Ies connexions operationnelles. On entend par connexion operationnelle !a presence detectee d'un signal utile au format valide. Suite a 20 cette analyse, le microcontroleur 12 selectionne le fichier de configuration binaire correspondant aux appareils connectes au recepteur (etape 3.3). Selon un perfectionnement, le fichier de configuration binaire est reference par un mot de donnees contenant une pluralite d'indicateurs binaires, chacun associe a une entree. La taille en bits du mot est egale au nombre d'entrees 25 disponibles sur l'appareil. Le microcontroleur 12 lit successivement chaque mot de donnees associe a un fichier. Si, pour un mot donne, l'indicateur binaire de !'entree connectee a un appareil operationnel est a 1 , alors le microcontroleur selectionne le fichier de configuration associe a ce mot. A l'etape 3.4, le microcontroleur determine si le ou Ies fichiers de 30 configuration binaire sont deja charges dans le composant programmable 10. Cette etape est optionnelle, on peut aussi systematiquement charger une configuration !ors de chaque changement. Si au moins un fichier n'est pas charge alors le programme passe a I'etape 3.5. Sinon, iI est inutile de modifier Ia configuration presente au sein du circuit 10 et le programme passe directement a I'etape 3.8 d'attente de changement dans Ies connexions. A I'etape 3.5, le microcontroleur inhibe le fonctionnement du recepteur de fawn a eviter tout signal aleatoire emis par le composant 10 au cours de sa programmation. Une autre solution consiste en ce que le microcontroleur 12 previenne ('unite centrale 3 du recepteur d'un chargement d'un nouveau fichier de configuration binaire. L'unite centrale previent alors I'utilisateur de I'indisponibilite de I'appareil, en affichant un message sur fond d'un ecran de io couleur uniforme. A I'etape 3 .6, le ou Ies fichiers de configuration selectionnes a I'etape 3.2 sont telecharges de la memoire 13 dans le composant 10. Le telechargement s'effectue conformement aux specifications du constructeur du circuit programmable et n'a pas besoin d'etre explicite d'avantage. Si la configuration de signaux valides detectes en entree n'a pas de sens au regard is de la definition du produit, la configuration du circuit programmable 10 demeure inchangee jusqu'a ce qu'une configuration valide soit detectee ou que I'on reconnecte Ies entrees dans la derniere configuration etablie. Une fois cette operation terminee, le microcontroleur 12 autorise le bon fonctionnement du recepteur (etape 3.7). Les signaux regus sont alors pris en 20 compte par le circuit programmable dote du fichier de configuration adapte. A I'etape 3.8, le microcontroleur 12 continue ('execution d'une boucle d'attente de detection d'un changement dans Ies connexions. Pour eviter de consommer du courant inutilement, le circuit 11 detecte des changements dans Ies connexions et active par une interruption le microcontroleur 12, ce dernier etant desactive 25 en temps normal. Ainsi, un appareil peut avoir un grand nombre de fonctions de traitement disponibles sur un produit qui possede une base materielle et logicielle commune et un nombre fini de circuits programmables. L'avantage est une reduction notable du coil de developpement et du coil matiere global 30 pour une 'famille de produits', et un produit qui peut s'adapter rapidement a une nouvelle configuration selon son mode de connexion. II existe plusieurs fawns de detecter ('apparition et la disparition de connexions. Voici une premiere fawn : en reponse a une requete ou sous la forme d'interruptions, le circuit de detection 11 emet des informations vers le circuit de controle 12 pour !'informer de ('existence et de la nature de connections electriques avec des appareils exterieurs en ordre de marche. La presence d'un apparell en ordre de marche est detectee par exemple a !'aide d'une tension sur une broche au moins d'un connecteur 15. En fonction de cette information, le circuit de controle selectionne un ou plusieurs fichiers de configuration binaires, a l'etape 3.3. Typiquement, on trouve dans !a memoire io 13 autant de jeux de donnees d'interface qu'il existe de connecteurs 15 sur l'appareils. Le jeu selectionne est ensuite charge dans le composant programmable 10. Une autre fawn de detecter une connexion consiste a disposer d'un contact mecanique sur un connecteur 15, ce contact est en position ferme is lorsque !a broche de connexion est introduite dans le connecteur du recepteur 1. Un signal electrique portant une information binaire : 0 si !a broche est presente, 1 si !a broche est absente, est transmis au circuit de controle 12. Le microcontroleur 12 analyse l'etat des signaux associes a chaque connecteur 15 et en deduit !es connexions presentes, puis it utilise !es signaux 20 pour adresser !a memoire a rechercher le fichier de configurations binaires pour le traitement des signaux regus sur !es connecteurs d'entree 15. Selon un perfectionnement, !a table contient des indicateurs de priorite permettant de definir une hierarchie lorsque plusieurs appareils sont connectes. Cette hierarchie consiste a affecter une valeur de priorite a chaque 25 entree, !'entree !a plus prioritaire a !a valeur 1 Selon une variante, lorsque plusieurs connexions sont detectees, le microcontroleur charge autant de fichiers de configurations binaires qu'il y a de connexions operationnelles. Le recepteur 1 peut disposer de plusieurs circuits programmables 10 30 dont !a programmation depend des signaux presents sur !es connecteurs d'entree 15. Dans ce cas, le microcontroleur 12 controle le chargement des fichiers de configurations binaires pour !'ensemble des circuits programmables. Selon un perfectionnement, I'appareil connecte emet un bloc d'information contenant un identifiant de I'appareil. Ce bloc est utilise par la fonction Revendications 1. Procede de telechargement d'un fichier de configuration dans un circuit programmable (10) implements dans un appareil (1), !edit appareil comportant une pluralite de connecteurs (15) destines a permettre le raccordement avec au moins un autre appareil, et un circuit programmable (10) permettant de traiter des signaux regus par lesdits connecteurs (15); caracterise en ce qu'il comporte : io - une etape d'analyse (3.2) des signaux presents sur les connecteurs (15) afin de detecter des connexions operationnelles permettant la communication avec au moins un autre appareil, - une etape de telechargement (3.6) d'au moins un fichier de configuration selectionne parmi un ensemble de fichiers de configuration en is fonction de la presence des connexions operationnelles detectees. 2. Procede de telechargement selon la revendication 1 ; caracterise en ce que les connexions operationnelles sont celles pour lesquelles ('appareil connects delivre un niveau electrique determine. 3. Procede de telechargement selon la revendication 1 ou 2 ; caracterise en ce que I'etape d'analyse intervient continuellement tant que ('appareil (1) est sous tension. 25 4. Procede de telechargement selon la revendication 3 ; caracterise en ce que I'etape d'analyse continuellement operationnelle consiste a analyser les informations envoyees par I'autre appareil fors de sa connexion. 5. Procede de telechargement selon ('une quelconque des 30 revendications precedentes ; caracterise en ce que au moins un fichier de configuration est selectionne en fonction d'une configuration de plusieurs connexions operationnelles.11 6. Proc&d& de telechargement selon rune quelconque des revendications pr&c&dentes ; caracterise en ce que les fonctions principales de I'appareil (1) sont inactiv&es fors de ('&tape de telechargement. 7. Procede de telechargement selon rune quelconque des revendications 1 a 5 ; caracterise en ce que I'appareil (1) &met un message indiquant une inactivation momentanee des fonctions fors de ('&tape de telechargement. io 8 Appareil de traitement (1) comportant au moins une unite centrale (3), une pluralite de connecteurs (15) destines a permettre le raccordement avec au moins un autre appareil, et un circuit programmable (10) permettant de traiter une partie des signaux regus par lesdits connecteurs ; caracterise en ce 15 qu'il comporte un moyen d'analyse (11) des connexions afin de detecter les connexions operationnelles permettant la communication avec au moins un autre appareil, et un moyen de telechargement (12,13) d'au moins un fichier de configuration selectionne parmi un ensemble de fichiers de configuration en fonction de la presence des connexions operationnelles detectees. 20