Brevet FR2793328A1 — publié le 20001110

La présente invention est relative au domaine de la maintenance logicielle et concerne plus particulièrement l'aide à la détection d'erreur dans la mise au point d'un logiciel embarqué dans un appareil numérique, plus particulièrement un décodeur numérique, un récepteur de télévision numérique, un lecteur/enregistreur de bande audio/vidéo, un lecteur/enregistreur de disques numérique. Les appareils numériques comprennent de plus en plus une plate- forme comportant des sous-ensembles (ou cartes) à base de microprocesseurs gérés par un système d'exploitation et permettant ainsi la mise en oeuvre de logiciel embarqué dont la complexité va en croissant. Lors de la phase de développement du logiciel embarqué dans l'appareil numérique encore physiquement ouvert, les développeurs disposent de moyens techniques pour la mise au point et le débogage des cartes, appelés couramment environnement de développement (réseau éthernet de chargement, débogueur intégré permettant de simuler pas à pas le fonctionnement du logiciel). Une fois les tests de mise au point et de débogage effectués, la plateforme matérielle est fabriquée en usine et après intégration du logiciel, l'appareil est fermé. Pour obtenir des informations de débogage ou d'état du logiciel lors de la fabrication des cartes, il est connu d'utiliser soit un terminal de données, du type d'un micro-ordinateur, soit un lit de clous, par exemple de 64 points, pour la lecture d'informations de type adresse/données et la détection d'erreurs logicielles. Les appareils numériques existants comportent des ports externes de communication (série, parallèle, modem). Cependant, ces ports sont souvent réservés à l'utilisation exclusive du logiciel applicatif final, et il n'est pas aisé de les utiliser aux fins de détection d'erreur sans interférer avec les fonctionnalités qui leur sont attribuées. D'autre part, dans ces appareils numériques, 64 bits de longueur des mots (32 bits de données et 32 bits d'adresses) sont souvent nécessaires. La détection d'un bus de données et d'adresses exige alors un analyseur logique puissant en nombre de bits. L'invention a pour but de s'affranchir des inconvénients précités en proposant un procédé d'aide à la détection de défauts de fonctionnement dans un appareil numérique, qui soit peu coûteux, non intrusif et qui permette de visualiser les actions logicielles qui ont été réalisées et plus particulièrement celle correspondant à une anomalie. L'invention a pour objet un procédé d'aide à la détection de défauts de fonctionnement dans un appareil numérique, celui-ci comprenant un microcontrôleur mettant en oeuvre un logiciel embarqué et pilotant des périphériques. Selon l'invention, les communications entre le microcontrôleur et les périphériques s'effectuent selon un protocole d'adressage d'un maître vers un esclave avec acquittement, un nonacquittement générant une anomalie, et le non-acquittement ne génère aucune anomalie sur une adresse spécifique, cette adresse étant destinée à recevoir des informations de déroulement du logiciel embarqué. De cette sorte, on peut faire véhiculer des données vers cette adresse spécifique sans traiter le non-acquittement sur cette adresse comme une anomalie. Il est ainsi possible de se définir une telle adresse pour laquelle aucun traitement sur le non-acquittement ne sera effectué. Selon un mode de réalisation, la détection d'une anomalie s'effectue à l'aide d'un périphérique dit d'espionnage à l'adresse spécifique. Ainsi, le déroulement du logiciel peut être suivi par l'utilisateur en connectant le périphérique d'espionnage dans deux points d'un lit de clous par exemple. Selon un mode de réalisation, le périphérique d'espionnage est un analyseur logique ou un oscilloscope numérique. L'invention a également pour objet un appareil numérique comprenant un microcontrôleur mettant en oeuvre un logiciel embarqué et pilotant des périphériques. Selon l'invention, les communications entre le microcontrôleur et les périphériques s'effectuent selon un protocole d'adressage d'un maître vers un esclave avec acquittement, un non- acquittement générant une anomalie, et le non-acquittement ne génère aucune anomalie sur une adresse spécifique, cette adresse étant destinée à recevoir des informations de déroulement du logiciel embarqué. Selon un mode de réalisation, les informations de déroulement du logiciel sont des informations pour suivre pas à pas les différentes phases exécutées dans le logiciel. D'autres caractéristiques et avantages de la présente invention ressortiront de la description d'un mode de réalisation qui va suivre, pris à titre d'exemple non limitatif, en référence aux figures annexées dans lesquelles: - la figure 1 représente un système de communication entre un microcontrôleur et des périphériques, - la figure 2 représente une séquence d'écriture d'un maître vers un esclave dans un système d'adressage de périphériques d'un maître vers un esclave selon l'art antérieur, - la figure 3 représente une séquence d'écriture vers un périphérique non présent selon l'art antérieur, - la figure 4 représente une séquence d'écriture vers un périphérique d'espionnage selon l'invention. Pour simplifier la description, les mêmes références seront utilisées pour désigner les éléments remplissant des fonctions identiques. De nos jours, dans les appareils numériques, comme illustré sur la figure 1, il existe un nombre important de périphériques 1, 2 (mémoire vive RAM, mémoire non volatile EEPROM, modulateur, pilotes...) pilotés par un microcontrôleur 3. Le protocole 12C défini dans le document "The 12C-Bus specification", version 2.0 décembre 1998, de la société Philips Semiconductors, autorise notamment un transfert de communication série entre deux périphériques par un système d'adressage de périphériques d'un maître vers un esclave. Ce protocole fonctionne avec une horloge asynchrone dont le signal SCL est appliqué à un premier fil 4 de communication et avec un signal de données SDA porté par un deuxième fil de communication. Un maître envoie des ordres d'écriture (ou de lecture) vers un périphérique donné et celui-ci, s'il est adressé, répond par un bit d'acquittement ("Acknowledgement" ou ACK en langue anglaise). Le périphérique ou espion 6 qui est non présent ne répond pas, ce qui correspond à un non-acquittement désigné NACK s'il est adressé. L'espion est un analyseur logique qui permet d'observer les trames 12C véhiculées sur le bus. La figure 2 représente une séquence d'écriture d'un maître vers un esclave dans un système d'adressage de périphériques d'un maître vers un esclave selon l'art antérieur. Comme précedemment expliqué, cette séquence commence par un bit de début, de bits d'adresse pour adresser le périphérique 1 et d'un bit ACK d'acquittement du périphérique 1. Le maître envoie alors un octet de données1; celui-ci reçoit un bit d'acquittement,... A la fin de la séquence d'écriture, après avoir émis son dernier octet de données n, un bit d'acquittement est reçu par le maître qui émet un bit STOP. Jusqu'à présent, le logiciel associé au microcontrôleur réalise cette séquence. La figure 3 représente une séquence d'écriture vers le périphérique 6 non présent selon l'art antérieur. Le maître après avoir émis un bit de début, adresse le périphérique 6. Le logiciel associé au microcontrôleur réalise, sur la base d'un non-acquittement, une anomalie du logiciel. Ceci provoque un non démarrage ou un arrêt de l'appareil numérique. La figure 4 représente une séquence d'écriture vers un périphérique d'espionnage selon l'invention. Le logiciel du microcontrôleur fait référence à une base de données décrivant ses paramètres de fonctionnement. Cette configuration décrit notamment le contrôleur maître, le numéro du périphérique espion et son adresse. La séquence de la figure 4 commence par un bit de début par le maître, I'adressage par le maître du périphérique 6 à l'adresse spécifique dont il n'attend pas d'acquittement. Un bit NACK traduit le non-acquittement; le maître envoie alors un octet de données contenant le pas de déroulement, qui est suivi d'un non-acquittement NACK,etc... Cette séquence se termine par un bit STOP. Le logiciel réalise une écriture à l'adresse de l'espion sans que l'acquittement ne soit vérifié par le maître. Ces données permettent alors de véhiculer des informations non pertinentes pour l'appareil numérique mais utiles pour le suivi des étapes du logiciel. Ainsi, un simple espion permet de suivre les étapes du logiciel en positionnant l'analyseur logique ou l'oscilloscope numérique à deux points sur le lit de clous. De cette sorte, si une anomalie intervient au cours du déroulement du logiciel, I'utilisateur sait à quelle étape le processus intervient. Bien sûr, I'invention n'est pas limitée au mode de réalisation décrit ci-dessus. Ainsi, I'appareil numérique peut être un décodeur numérique, un récepteur de télévision numérique, un lecteur/enregistreur de bande audio/video, un lecteur/enregistreur de disques numérique. REVENDICATIONS 1. Procédé d'aide à la détection de défauts de fonctionnement dans un appareil numérique, celui-ci comprenant un microcontrôleur mettant en oeuvre un logiciel embarqué et pilotant des périphériques, caractérisé en ce que les communications entre le microcontrôleur et les périphériques s'effectuent selon un protocole d'adressage d'un maître vers un esclave avec acquittement, un non-acquittement générant une anomalie, et en ce que le non-acquittement ne génère aucune anomalie sur une adresse spécifique, cette adresse étant destinée à recevoir des informations de déroulement du logiciel embarqué. 2. Procédé selon la revendication 1, caractérisé en ce que la détection d'une anomalie s'effectue à l'aide d'un périphérique dit d'espionnage à l'adresse spécifique. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que le périphérique d'espionnage est un analyseur logique ou un oscilloscope numérique. 4. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que les informations de déroulement du logiciel sont des informations pour suivre pas à pas les différentes phases exécutées dans le logiciel. 5. Appareil numérique comprenant un microcontrôleur mettant en oeuvre un logiciel embarqué et pilotant des périphériques, caractérisé en ce que les communications entre le microcontrôleur et les périphériques s'effectuent selon un protocole d'adressage d'un maître vers un esclave avec acquittement, un non-acquittement générant une anomalie, et en ce que le non-acquittement ne génère aucune anomalie sur une adresse spécifique, cette adresse étant destinée à recevoir des informations de déroulement du logiciel embarqué. 6. Appareil selon la revendication 5, caractérisé en ce que les informations de déroulement du logiciel sont des informations pour suivre pas à pas les différentes phases exécutées dans le logiciel. 7. Appareil selon la revendication 5 ou 6, caractérisé en ce qu'il est du groupe comprenant un décodeur numérique, un récepteur de télévision numérique, un lecteur et/ou enregistreur de disques numérique.