Brevet FR2681965A1 — publié le 19930402

La présente invention concerne de façon générale l'infrastructure de systèmes micro-informatiques et, plus spécialement, l'accès au dispositif mémoire contenu à l'intérieur d'un système micro-informatique. Plus particulièrement, elle concerne un procédé et un appareil de protection d'écriture en mémoire. Typiquement, un système micro-informatique contient une mémoire, un bus de données, un microprocesseur et des dispositifs périphériques. La mémoire contient une entrée bus de données, une entrée bus d'adresses, une entrée sélection de puce, ou de boîtier, et une entrée de validation d'écriture. D'un point de vue général, en micro-informatique, il existe trois systèmes pour écrire des données dans une mémoire externe. Selon un premier système, on utilise un dispositif de commande pour créer l'adresse sur le bus d'adresses. Les lignes de sélection de puce et de validation d'écriture sont directement connectées entre le dispositif de commande et le dispositif mémoire. Lors de la mise sous tension ou pendant un transfert de données, il peut arriver que le signal de validation d'écriture soit activé pendant trop longtemps ou soit déclenché de manière erronée. Ceci peut amener l'écriture de données parasites dans le dispositif mémoire et altérer les données contenues dans la mémoire, ce qui peut sérieusement affecter le fonctionnement du système micro-informatique. De plus, le dispositif de commande peut exécuter le code d'erreur pendant un cycle d'écriture, ce qui produit des résultats imprévisibles à l'intérieur du dispositif mémoire. Selon le deuxième système, une tentative est effectuée pour protéger la mémoire vis-à-vis de données altérées. Le dispositif de commande déclenche un dispositif logique, et celui-ci crée le signal de validation d'écriture pour le dispositif mémoire pendant une durée prédéterminée. Cette durée prédéterminée est typiquement fixée au temps nécessaire pour écrire dans le dispositif mémoire le bloc de données le plus grand possible, de sorte qu'elle ne limite pas la quantité de données qui est écrite à l'emplacement de mémorisation du dispositif mémoire. Ce système laisse la possibilité que des données altérées soient écrites dans le dispositif mémoire dans le cas où des blocs de données, plus petits que le bloc de données le plus grand possible, sont écrits dans le dispositif de mémoire ou qu'un signal de validation d'écriture soit déclenché de façon erronée. De nouveau, le dispositif de commande peut exécuter le code d'erreur pendant un cycle d'écriture et amener des résultats imprévisibles à l'intérieur du dispositif mémoire. Le troisième système possède un dispositif de protection intégré dans la mémoire. La mémoire demande au dispositif de commande d'écrire un multiplet de données à trois adresses particulières avant d'écrire les données voulues dans le dispositif mémoire. Cette forme de mise en oeuvre est discutée dans les fiches techniques X28C64, de XICOR Data Book, 2ème édition, 1990. Une fois la séquence de trois multiplets écrite aux adresses appropriées, la fenêtre d'écriture de page s'ouvre, ce qui autorise le dispositif de commande à écrire entre 1 et 64 multiplets de données dans le dispositif mémoire. Ce dispositif de protection protège la mémoire vis-à-vis d'un déclenchement erroné, mais laisse possible une altération du dispositif de mémoire durant cette fenêtre invariable d'écriture de page. De nouveau, le dispositif de commande peut exécuter le code d'erreur pendant un cycle d'écriture et produire des résultats imprévisibles à l'intérieur du dispositif mémoire. 11 existe donc un besoin pour un dispositif de protection de données susceptible d'adaptation, qui fait varier la durée du signal de validation d'écriture en fonction de la taille du bloc de données à écrire dans le dispositif mémoire ou de l'activité contrôlée à l'intérieur du dispositif de commande, et qui élimine le déclenchement erroné du signal de validation d'écriture. L'invention propose un appareil de protection d'écriture destiné à protéger un dispositif mémoire vis-à-vis de la réception de données altérées pendant l'écriture d'un bloc de données dans le dispositif mémoire en provenance d'un dispositif de fourniture de données. Le dispositif mémoire possède une entrée validation d'écriture et une entrée données. L'appareil de protection d'écriture couple le dispositif de fourniture de données à l'entrée données du dispositif mémoire. Le dispositif de protection de mémoire produit un premier signal qui déclenche la production d'un deuxième signal. Le deuxième signal est actif pendant une première durée prédéterminée et est appliqué à l'entrée du dispositif mémoire, ce qui permet au dispositif de fourniture de données d'écrire des données dans le dispositif mémoire pendant cette première durée prédéterminée. Un troisième signal peut être produit pour invalider ledit deuxième signal. L'invention concerne également un procédé de protection d'écriture en mémoire. La description suivante, conçue à titre d'illustration de l'invention, vise à donner une meilleure compréhension de ses caractéristiques et avantages ; elle s'appuie sur les dessins annexés, parmi lesquels: la figure 1 est un schéma fonctionnel d'un système de télécommunication radiotéléphonique qui peut employer l'invention; la figure 2 est un schéma de circuit de l'invention; la figure 3 est un diagramme temporel de l'invention; et la figure 4 est un organigramme montrant le procédé selon l'invention. L'invention propose un système micro-informatique incorporé dans un radiotéléphone numérique, par exemple le radiotéléphone cellulaire numérique "Japan Digital Cellular Telephone". Dans le mode de réalisation préféré, on utilise une mémoire morte programmable, ou PROM, électroniquement effaçable, c'està-dire une EEPROM, comme dispositif mémoire dans le radiotéléphone pour emmagasiner l'information permanente nécessaire au fonctionnement du radiotéléphone, même si l'invention peut être utilisée pour protéger n'importe quel type de dispositif mémoire de type non volatil, ou rémanent. Des blocs de données de tailles diverses sont écrits dans la EEPROM en provenance de dispositifs différents. Dans le passé, on a pu constater, lors du renvoi de radiotéléphones au service d'entretien, que la EEPROM contenait des données altérées qui invalidaient ou affectaient le fonctionnement du radiotéléphone. Grâce à la mise en oeuvre de l'invention, l'écriture de données altérées dans la EEPROM est minimisée. En substance, l'invention propose un procédé et un appareil permettant d'écrire des blocs de données dans la EEPROM sans altérer les données emmagasinées à l'intérieur du dispositif mémoire. La figure 1 est un schéma fonctionnel d'un système de télécommunication radiotéléphonique. A l'intérieur de ce système, il existe un émetteur-récepteur de site fixe 103 qui envoie des signaux de fréquence radio (RF) à des téléphones mobiles ou portatifs placés dans la zone géographique desservie par ltémetteur- récepteur de site fixe 103 et qui en reçoit. Le radiotéléphone 101 est un des radiotéléphones desservis par l'émetteur-récepteur de site fixe 103. A la réception de signaux de fréquence radio, les antennes 105 et 107 du radiotéléphone convertissent les signaux de fréquence radio en signaux de fréquence radio électriques, lesquels sont respectivement transmis aux récepteurs 111 et 113. Les récepteurs 111 et 113 convertissent les signaux électriques de fréquence radio en données utilisables, destinées à être employées par d'autres parties du radiotéléphone 101. A l'émission de signaux de fréquence radio, le microprocesseur 121 applique des données à l'entrée de l'émetteur 109. L'émetteur accepte les données et les convertit en signaux de fréquence radio électriques et les émet via l'antenne 105, laquelle convertit ses signaux de fréquence radio et émet ceux-ci à destination de l'émetteur-récepteur de site fixe 103. Pour que le radiotéléphone 101 fonctionne correctement, il faut que de nombreux paramètres soient emmagasinés dans une mémoire permanente 127. Cette mémoire permanente est l'EEPROM 127. Il est fait accès à l'EEPROM 127 par l'intermédiaire du microprocesseur 121. Pendant la programmation initiale, en usine, du radiotéléphone, on programme l'EEPROM 127 à l'aide de paramètres fonctionnels essentiels, qui comprennent : l'information d'intensité de signal reçu (RSSI), l'information d'identification et l'information de niveau de puissance. L'information RSSI est nécessaire pour étalonner les intensités des signaux en cours de réception. Les intensités étalonnées des signaux reçus servent à sélectionner l'émetteur-récepteur de site fixe 103 approprié. L'intensité du signal reçu courant qui est reconstituée à partir des récepteurs 111 et 113 est utilisée en référence avec la valeur RSSI emmagasinée dans l'EEPROM 127. Si les valeurs RSSI sont altérées, un émetteur-récepteur de site fixe erroné peut alors être sélectionné, ce qui entraîne une réduction des performances du radiotéléphone 101. L'information d'identification contient un numéro de série et un numéro de téléphone uniques. Cette information est emmagasinée dans l'EEPROM 127 au cours de la procédure de programmation initiale. Il faut que cette information soit protégée pour assurer l'intégrité du système de télécommunication. Si le numéro de série change ou s'altère, le téléphone peut alors être identifié comme étant celui de quelqu'un d'autre, ou bien des appels téléphoniques peuvent être effectués et affectés à la facture téléphonique de quelqu'un d'autre. La table des niveaux de puissance est chargée, en usine, dans l'EEPROM 127. Les niveaux de puissance de sortie sont mesurés pour une entrée donnée, car la puissance de sortie fluctue d'un radiotéléphone à l'autre en fonction des variations des composants et des éléments hybrides. La puissance de sortie d'émission est accordée de façon à satisfaire les spécifications FCC (Federal Communications Commission), ou les spécifications japonaises équivalentes, sur cinq niveaux prédéterminés. L'information nécessaire pour exciter l'amplificateur de puissance sur le niveau de sortie voulu est emmagasinée dans l'EEPROM 127 et est extraite à chaque fois que l'amplificateur de puissance doit être accordé sur un niveau de puissance de sortie prédéterminé. Si cette information est altérée, l'amplificateur de puissance contenu dans l'émetteur 109 ne fonctionnera pas dans le cadre des spécifications et ceci pourra amener de sérieux problèmes de performances pour le radiotéléphone 101. Une fois que cette information a été chargée dans l'EEPROM 127, le radiotéléphone 101 est prêt à fonctionner. Lorsque le radiotéléphone 101 est en service, il est prévu d'emmagasiner dans l'EEPROM 127 certaines données particulières de l'utilisateur et divers paramètres afin de faciliter les réparations lorsque le téléphone est renvoyé au fournisseur. Tout d'abord, on utilise une horloge pour mémoriser le temps écoulé d'utilisation du radiotéléphone depuis le début. Pour que le radiotéléphone 101 maintienne le fonctionnement du compteur, il emmagasine le compteur dans l'EEPROM 127. En cas de mise hors tension ou de coupure de courant, l'horloge n'est pas repositionnée. En deuxième lieu, le radiotéléphone 101 contient un dispositif de contrôle d'erreur qui utilise un groupe de codes d'erreur permettant de décrire les problèmes qui se sont posés dans le radiotéléphone 101 pendant le fonctionnement. Si une erreur se produit pendant le fonctionnement du radiotéléphone 101, le code de l'erreur et son instant d'apparition sont mémorisés dans l'EEPROM 127 pour aider à la réparation ultérieure du radiotéléphone 101. De plus, l'EEPROM 127 est utilisée pour emmagasiner des numéros de téléphone et des choix de l'utilisateur, par exemple le volume de la sonnerie. Les opérations précédentes sont commandées par le microprocesseur 121 pendant le fonctionnement du radiotéléphone 101. La figure 2 est un schéma fonctionnel montrant l'utilisation de l'invention. Le cycle d'écriture de données en provenance du microprocesseur 121 commence par l'envoi d'une configuration binaire connue à une adresse prédéterminée. L'adresse prédéterminée correspond au vérificateur de données 207. Le vérificateur de données 207 reçoit le multiplet de données connu de la part du microprocesseur 121 et le vérifie par rapport à son multiplet de données connu. Lors de la vérification, le microprocesseur 121 change alors l'adresse pour celle de l'EEPROM 127 et commence à charger les données voulues sur le bus de données 217. Simultanément, le vérificateur de données 207 produit un signal 211 de déclenchement de validation d'écriture qui est appliqué à l'entrée du circuit monostable 203. Le circuit monostable 203 produit un signal d'autorisation d'écriture 213 pendant une durée prédéterminée. Cette durée prédéterminée est égale au temps nécessaire pour écrire le bloc de données le plus grand dans l'EEPROM 127 en provenance du microprocesseur 121. Dans le mode de réalisation préféré, le temps du circuit monostable est fixé à 50,us. Le signal 213 d'autorisation d'écriture et le signal de lecture/écriture 219 sont appliqués à l'entrée d'une porte ET 205. Ceci garantit que, dans le cas d'un déclenchement erroné par le circuit monostable, le signal 215 de validation d'écriture dans l'EEPROM ne sera pas erronément validé, ce qui protège l'EEPROM 127 vis-à-vis de données altérées. La porte ET 205 et le vérificateur de données 207 sont, dans le mode de réalisation préféré, mis en oeuvre sous la forme d'un circuit logique programmable (PLA) désigné par le numéro de référence 129 sur la figure 1 et pouvant être un modèle PAL16V8, que l'on peut se procurer auprès de la société Advanced Micro Devices. Lorsqu'on peut former le produit logique (fonction ET) des trois signaux 211, 213 et 219, la porte ET 205 délivre un signal de validation d'écriture (WE) 215 à l'entrée validation d'écriture de l'EEPROM 127. Ceci autorise l'écriture des données présentes sur le bus de données 217 dans l'EEPROM 127 aux adresses déterminées par le microprocesseur 121. Le signal 209 de repositionnement du circuit monostable peut être utilisé pour abréger la durée du signal de validation d'écriture du circuit monostable, si bien qu'il est créé un signal de validation d'écriture de durée variable. Il y a plusieurs raisons pour lesquelles une durée variable est souhaitable pour le signal de validation d'écriture. Tout d'abord, si le bloc de données qui doit être écrit dans l'EEPROM 127 a une durée plus courte que le bloc de données le plus grand, le signal 209 de repositionnement du circuit monostable peut alors être déclenché par le microprocesseur 121, à la suite de quoi il y a invalidation du signal 213 d'autoirisation d'écriture envoyé à l'EEPROM 127 au moment où le bloc de données plus court a été écrit. La durée du signal de validation d'écriture est égale à la longueur du bloc de données à écrire dans l'EEPROM 127, ce qui élimine sensiblement la possibilité d'écrire des données altérées dans l'EEPROM 127. Selon un autre cas, le signal de repositionnement 209 peut être utilisé pour interrompre un cycle d'écriture dans l'EEPROM 127 lorsqu'il est déterminé qu'un problème existe à l'intérieur du radiotéléphone. Dans le mode de réalisation préféré, le signal de repositionnement 209 est utilisé pour interrompre un cycle d'écriture lorsque le radiotéléphone détecte un signal de demande de lecture ou un signal de sélection de puce envoyés à un dispositif autre que l'EEPROM 127. Ces problèmes sont particuliers au système à l'intérieur duquel l'invention est utilisée et l'homme de l'art pourra utiliser des critères équivalents d'invalidation du cycle d'écriture. On note que le circuit monostable 203 est particulier à ce mode de réalisation. D'autres modes de réalisation peuvent employer des dispositifs de synchronisation équivalents, comportant des horloges numériques, des registres à décalage et des circuits à résistance/condensateur (RC), à la place du circuit monostable. De la même façon, l'homme de l'art pourra remplacer l'EEPROM 127 par n'importe quel dispositif mémoire. La figure 3 montre les positions dans le temps de tous les signaux principaux apparaissant dans le schéma fonctionnel de la figure 2. Le microprocesseur 121 positionne le bus de données 305 sur une configuration binaire connue, et le bus d'adresses 307 au vérificateur de données 207. Après que le vérificateur de données 207 a reçu la configuration binaire connue, le microprocesseur 121 positionne le bus d'adresses 307 sur un emplacement de mémoire situé à l'intérieur de l'EEPROM 127 et commence à transférer les données voulues sur le bus de données 307. A la vérification de la configuration binaire connue, le vérificateur de données 207 crée le signal de déclenchement de validation d'écriture 313 (211). Le signal est appliqué à l'entrée du circuit monostable 203. Le circuit monostable 203 crée alors un signal d'autorisation d'écriture 311 (213), qui dure pendant 50,us et est appliqué à l'entrée du dispositif ET logique 205. Le dispositif ET logique 205 utilise les signaux appliqués à l'entrée du microprocesseur, à savoir le signal de lecture/écriture 309 (219), le signal de déclenchement de validation d'écriture 313 (211) et le signal d'autorisation d'écriture 311, pour créer le signal 315 de validation d'écriture dans l'EEPROM. La durée du signal de validation d'écriture 315 peut être abrégée par le microprocesseur 121, qui valide le signal de repositionnement 317 (209). Le signal de repositionnement 317 (209) repositionne le circuit monostable 203, ce qui désactive le signal de validation d'écriture 315 (215). La figure 4 est un organigramme du procédé empIoyé par ce mode de réalisation pour réduire le risque d'écrire des données altérées dans l'EEPROM 127. L'organigramme commence en 401. En 403, le microprocesseur 121 produit une configuration binaire connue sur le bus de données 217 et il positionne l'adresse sur le bus 217 à destination du vérificateur de données 207. En 405, le microprocesseur 121 positionne le bus d'adresses 217 sur une adresse placée à l'intérieur de l'EEPROM 127 et commence à transférer les données voulues sur le bus de données 217. En 407, le vérificateur 207, après vérification de la configuration binaire reçue connue, produit un signal 313 de déclenchement de validation d'écriture, qui est appliqué à l'entrée du circuit monostable 203 et à celle du circuit ET 205. En 409, le circuit monostable 203 produit, en réponse au signal de déclenchement de validation d'écriture 313, le signal d'autorisation d'écriture 311 pendant le temps nécessaire pour le transfert du plus grand bloc possible de données voulues à l'EEPROM 127. Dans le mode de réalisation préféré, cette durée est de 50,us. En 411, si le bloc de données envoyé par le microprocesseur 121 est plus court que le bloc de données le plus grand possible, le signal de repositionnement 317 (209) est alors produit par le microprocesseur 121 et est appliqué à l'entrée de repositionnement du circuit monostable, ce qui invalide l'application du signal de validation d'écriture 315 à l'EEPROM 127. Le signal de repositionnement 317 (209) fait fonction de fenêtre variable pour le signal de validation d'écriture 315, laquelle fenêtre est réglée pour s'ajuster à la longueur du bloc de données écrit dans l'EEPROM. Selon une autre possibilité, le signal de repositionnement 317 (209) peut être produit en réponse à l'existence d'un problème dans le radiotéléphone 101, ce qui a pour effet d'annuler le reste du cycle d'écriture en évitant tout autre endommagement de l'EEPROM 127. Dans le mode de réalisation préféré, le signal de repositionnement 317 (209) est déclenché en réponse à une tentative de lecture ou à un signal de sélection d'une autre puce, exécuté par le microprocesseur 121. Ces signaux indiquent que le microprocesseur 121 peut exécuter le code d'erreur. Bien entendu, l'homme de l'art sera en mesure d'imaginer, à partir de l'appareil et du procédé dont la description vient d'être donnée à titre simplement illustratif et nullement limitatif, diverses variantes et modifications ne sortant pas du cadre de l'invention. REVENDICATIONS 1. Appareil de protection d'écriture destiné à protéger un dispositif mémoire (127) pour l'empêcher de recevoir des données altérées pendant l'écriture d'un bloc de données dans le dispositif mémoire (127) de la part d'un dispositif (121) de fourniture de données, le dispositif mémoire (127) ayant une entrée validation d'écriture et une entrée données, l'appareil de protection d'écriture étant caractérisé par: un moyen servant à coupler le dispositif de fourniture de données (121) à l'entrée données du dispositif mémoire (127); un moyen servant à produire un premier signal (211); un moyen qui répond audit moyen de production de premier signal (211) en produisant un deuxième signal (215) pendant une première durée prédéterminée, ledit deuxième signal (215) étant appliqué à l'entrée validation d'écriture du dispositif mémoire (127), de façon à permettre au dispositif de fourniture de données (121) d'écrire les données à l'entrée données du dispositif mémoire (127) pendant la première durée prédéterminée seulement; et un moyen servant à produire un signal de repositionnement (209) après qu'une deuxième durée prédéterminée s'est écoulée depuis la production dudit premier signal (211) par ledit moyen de production de premier signal, ce qui a pour effet de désactiver ledit deuxième signal (215), ladite deuxième durée prédéterminée étant inférieure ou égale à ladite première durée prédéterminée. 2. Appareil de protection d'écriture selon la revendication 1, caractérisé en ce que ladite première durée prédéterminée est égale au temps nécessaire pour écrire dans le dispositif mémoire (127), depuis le dispositif de fourniture de données (121), le bloc de données le plus grand possible. 3. Radiotéléphone (101) comportant au moins une interface d'utilisateur (125), une unité centrale de traitement (121), un bus de données, un bus d'adresses et une mémoire (127), le bus de données transportant des données entre l'interface d'utilisateur (125) et la mémoire (127), la mémoire (127) possédant une entrée validation d'écriture et une entrée données, le radiotéléphone étant caractérisé par: un moyen de protection de la mémoire (127) permettant d'empêcher que celle-ci n'accepte des données incorrectes de la part de l'interface d'utilisateur (125), ledit moyen de protection étant tel que: l'unité centrale de traitement (121) produit un premier signal pendant une première durée prédéterminée, un dispositif de mesure de temps (203) produit, en réponse à la production dudit premier signal par l'unité centrale de traitement (121), un deuxième signal (215) pendant une deuxième durée prédéterminée, ladite deuxième durée prédéterminée étant inférieure ou égale à ladite première durée prédéterminée, ledit deuxième signal étant appliqué à l'entrée de validation d'écriture de la mémoire (127), de sorte que l'écriture dans la mémoire (127) ne peut se produire que pendant ladite deuxième durée prédéterminée, et l'unité centrale de traitement (121) produit, en réponse à une première condition, un troisième signal (209) apparaissant une troisième durée prédéterminée après la production dudit deuxième signal (215), ledit troisième signal (209) étant appliqué à une entrée repositionnement dudit dispositif de mesure de temps (203), ce qui a pour effet de rendre inactif ledit deuxième signal (215), ladite deuxième durée prédéterminée étant inférieure ou égale à ladite première durée prédéterminée. 4. Radiotéléphone selon la revendication 3, caractérisé en ce que ladite première condition est une indication d'erreur fournie par l'unité centrale de traitement. 5. Procédé permettant d'écrire des données dans un dispositif mémoire (127) contenu dans un système tout en réduisant l'altération du dispositif mémoire (127), le dispositif mémoire (127) possédant une entrée données et une entrée validation d'écriture, ledit procédé étant caractérisé par les opérations suivantes: écrire une configuration binaire prédéterminée dans un dispositif logique (403); déterminer que ladite configuration binaire prédéterminée est correcte; coupler un dispositif de production de données à l'entrée données du dispositif mémoire (405); produire, en réponse au fait qu'il a été déterminé que ladite configuration binaire prédéterminée est correcte, un premier signal (407); et produire, en réponse à la production dudit premier signal, un deuxième signal pendant une première durée prédéterminée (409), ledit deuxième signal étant appliqué à l'entrée de validation d'écriture du dispositif mémoire (127), si bien que le dispositif mémoire (127) ne peut accepter des données que pendant ladite première durée prédéterminée. 6. Procédé selon la revendication 5, caractérisé en outre par l'opération consistant à produire un signal de repositionnement à un moment intervenant une deuxième durée prédéterminée après la production dudit signal de validation d'écriture (411), ladite deuxième durée prédéterminée étant inférieure ou égale à ladite première durée prédéterminée, ce qui a pour effet de rendre inactif ledit deuxième signal. 7. Procédé selon la revendication 5, caractérisé en ce que ladite première durée prédéterminée est égale au temps nécessaire pour écrire dans le dispositif mémoire (127) le bloc de données le plus grand possible. 8. Procédé selon la revendication 7, caractérisé en ce que ladite deuxième durée prédéterminée est égale au temps nécessaire pour écrire dans le dispositif mémoire (127) un bloc de données, où ledit bloc de données est plus petit que ledit bloc de données le plus grand possible. 9. Procédé selon la revendication 5, caractérisé par les opérations consistant à comparer ledit deuxième signal avec ledit premier signal et à créer un troisième signal, ledit troisième signal étant activé en réponse à la production desdits premier et deuxième signaux, ledit troisième signal étant appliqué à l'entrée validation d'écriture du dispositif mémoire (127). 10. Procédé selon la revendication 5, caractérisé en ce que le dispositif de production de données est associé à un microprocesseur (121).