Brevet FR2692380A1 — publié le 19931217

La présente invention concerne un appareil de traitement de données, et plus particulièrement un appareil pouvant être utilisé dans un système remplissant des fonctions critiques en ce qui concerne la sécurité. Il existe des nombreux exemples de systèmes remplissant des fonctions à la fois critiques pour la sécurité et non critiques pour la sécurité, comme des systèmes de commande de trafic ou de commande d'installa- tion Par exemple, dans des systèmes de signalisation de voies ferrées, des fonctions critiques pour la sécurité comprennent celles qui empêchent une mise en danger des personnes ou des matériels, comme la commande de signaux pour assurer un positionnement sûr d'un matériel roulant. Cependant, des fonctions se rapportant au nombre de trains ou à leur cadencement ne sont pas critiques pour la sécuri- té de telle sorte que, par exemple, un train particulier peut partir à un instant qui est différent de celui du tableau temporel sans que la sécurité soit affectée. Lors de la conception de systèmes remplissant des fonctions critiques pour la sécurité, un soin consi- dérable doit être pris pour faire en sorte qu'une défail- lance dans l'un quelconque des composants du système ne puisse pas mettre en danger la sécurité du système. Des circuits intégrés sont par conséquent soumis à des modes de défaillance et effectuent des analyses pour faire en sorte que des défaillances possibles ne compromettent pas la sécurité du système, et une programma- tion associée à des ordinateurs doit être rigoureusement analysée pour s'assurer que des erreurs dans l'entrée, ou dans la mémorisation du programme proprement dit, ne puissent pas causer des défaillances dans les fonctions, critiques pour la sécurité, du système. Des systèmes avec ordinateurs reprogrammables ne sont normalement pas appropriés puisqu'il est possible qu'un nouveau programme puisse être introduit en contour- nant des verrouillages existants et provoque des déf ail- lances en relation avec la sécurité Ces modifications pourraient être introduites délibérément ou bien sous l'effet d'erreurs de changement de bits dans la mémoire de l'ordinateur qui, du fait qu'il est conçu pour être reprogrammable, sera plus sujet d'être affecté par de tels changements qu'un système à mémoire non reprogrammable. Par le passé, ces contraintes ont conduit à des systèmes de sécurité qui ont été conçus en utilisant des circuits intégrés pour application spécifique (ASIC) spéciaux, ainsi que d'autres matériels non programmables. L'augmentation de complexité et de souplesse des systèmes de sécurité modernes signifie cependant que les circuits intégrés spéciaux conçus pour de tels systèmes deviennent de plus en plus complexes et que, d'un point de vue techni- que, ils pourraient être mieux intégrés dans un système analogue à un ordinateur. Des tentatives ont été faites pour produire un appareil reprogrammable utilisable dans un système remplissant des fonctions critiques pour la sécurité, cet appareil comprenant deux composants, notamment un composant formant ordinateur reprogrammable et un compo- sant critique pour la sécurité et non reprogrammable. Si la donnée est transmise par une seule voie, alors pour éviter une confusion, un des composants doit avoir la commande du train de données Il est hasardeux pour le composant formant ordinateur de recevoir les données et d'envoyer une information en relation avec la sécurité au composant critique pour la sécurité, puisqu'il est possible que l'ordinateur soit reprogrammé et envoie des données erronées au composant critique pour la sécuri- té, tout en resignalant dans le train de données le fait qu'une donnée correcte a été transférée. Inversement, le composant critique pour la sécurité peut recevoir les données et envoyer des informa- tions non en relation avec la sécurité au composant formant ordinateur L'appareil peut être conçu de telle sorte qu'il ne soit pas possible à l'ordinateur d'affecter une donnée au composant critique pour la sécurité, ce qui correspond à un appareil qui est à la fois programmable et sûr. Cependant, le composant critique pour la sécu- rité doit être conçu de manière à "comprendre" et à répon- dre correctement quand il est relié au système de transmis- sion de données Quand le système de transmission de données est intrinsèquement simple, il en résulte une légère complexité en ce qui concerne les matériels Cepen- dant de nombreux composants critiques pour la sécurité doivent maintenant être reliés à des systèmes complexes de transmission de données, pour lesquels le protocole de transmission se traduirait par des complexités considé- rables de conception concernant le composant critique pour la sécurité Cela est indésirable, puisqu'un objectif fondamental de conception d'un composant critique pour la sécurité consiste en ce que ce composant soit aussi simple que possible. Par le passé, on a utilisé dans des conceptions de composants critiques pour la sécurité de simples systè- mes de transmission de données pour éviter cette difficulté mais, du fait qu'il intervient maintenant des impératifs d'interfonctionnement, il faut faire appel à des systèmes standard de transmission de données qui, à cause des conditions d'utilisation qui leur sont imposées, doivent obligatoirement être plus complexes et avoir de plus grandes capacités que les systèmes utilisés dans le passé. En conséquence, si un système complexe de trans- mission de données est nécessaire, et lorsqu'un ordinateur intervient dans le composant critique pour la sécurité pour être capable de comprendre le protocole utilisé, il est d'une pratique courante de renoncer à une re-pro- grammabilité de l'ordinateur. Un objet de cette invention est de résoudre les problèmes mentionnés ci-dessus. Conformément à la présente invention, il est proposé un appareil de traitement de données comportant une première partie et une seconde partie qui sont chacune capables d'être reliées à un bus de données par l'inter- médiaire d'une interface, cette interface comportant un premier état dans lequel la première partie est reliée au bus de données tandis que la seconde partie ne l'est pas, et un second état dans lequel la seconde partie est reliée au bus de données tandis que la première partie ne l'est pas, la première partie étant agencée pour faire commuter l'interface du premier état dans le second état pour un intervalle de temps prédéterminé pendant lequel une donnée destinée à la seconde partie est en train d'être transmise, puis pour faire revenir l'interface dans le premier état. L'appareil est particulièrement approprié pour être utilisé dans des systèmes remplissant des fonctions critiques pour la sécurité Dans un tel système, la pre- mière partie peut commander les fonctions non critiques pour la sécurité du système tandis que la seconde partie peut commander les fonctions critiques pour la sécurité. La première partie est avantageusement reprogrammable au moyen du bus de données, la seconde partie n'étant pas reprogrammable, en permettant à des fonctions non critiques pour la sécurité du système d'être reprogrammées, sans qu'aucun risque d'un nouveau programme n'affecte les aspects critiques pour la sécurité, puisque la première et la seconde partie ne peuvent pas communiquer l'une avec l'autre. De préférence, la première et la seconde partie comprennent respectivement une première et une seconde interface, qui sont chacune capables d'être reliées au bus de données par l'intermédiaire d'une interface de bus L'interface de bus peut être capable de déterminer la fréquence d'horloge des données entrantes ou sortantes, en les rendant disponibles simultanément pour les première et seconde interfaces Cela permet à la première partie de déterminer la période de temps pendant laquelle le bus de données devrait être relié à la seconde partie au lieu de l'être à elle-même, et de commander l'interface de bus en correspondance. La donnée destinée à la seconde partie, qui peut être une donnée critique pour la sécurité, est avan- tageusement codée, par exemple au moyen d'un code cyclique comportant au moins vingt bits de parité De cette manière, si une donnée aléatoire est transmise à la seconde partie, par exemple du fait que la première partie relie de façon erronée le bus de données à la seconde partie, il est extrêmement improbable qu'elle puisse être observée comme valable par la seconde partie La seconde partie peut aussi être pourvue d'autres moyens pour confirmer une réception correcte de données. Pour que l'invention puisse être plus facilement comprise, on va maintenant se référer, au moyen d'un exemple, au dessin ci-joint, qui est un diagramme mettant - en évidence un appareil de traitement de données conforme à l'invention. En référence au dessin, un appareil de traitement de données utilisable dans un système remplissant des fonctions critiques pour la sécurité, comme un système de signalisation de voies ferrées, comprend une interface de bus 2 reliée à un bus de données 4 pour transmettre et recevoir des données L'interface de bus 2 peut être commutée entre un premier et un second état Dans le premier état, elle relie le bus de données 4 à une premiè- re partie reprogrammable 6 en vue de la commande de fonc- tions, non critiques pour la sécurité, du système, tandis que, dans le second état, elle relie le bus de données 4 à une seconde partie 8 non reprogrammable pour commander des fonctions critiques pour la sécurité La liaison est assurée par l'intermédiaire de respectivement une première et une seconde interface de données interne. L'interface de bus est commandée par la première partie 6 ( comme indiqué par la ligne en trait interrompu ). En fonctionnement, la première partie 6 contrô- le les données en train d'être transmises dans le bus de données 4 Lors d'une réception de codes appropriés, déterminés par le protocole de transmission de données, la première partie 6 peut transmettre et recevoir des données applicables à elle-même et en relation avec des aspects non critiques pour la sécurité du système. La programmation de la première partie 6 lui permet de déterminer dans le train de données la position d'une donnée critique pour la sécurité et destinée à la seconde partie 8, de telle sorte qu'elle assure l'acti- vation de l'interface de bus 2 seulement dans les inter- valles de temps o la seconde partie 8 doit être reliée au bus de données 4 Par exemple, les données entrantes peuvent être agencées de façon à s'adapter à un format prédéterminé dans lequel une succession de mots de synchro- nisation sont chacun suivis par une trame temporelle, dont une première partie prédéterminée contient toujours des données concernant le premier composant et une seconde partie prédéterminée contient toujours des données con- cernant le second composant Dans un tel cas, le premier composant peut être programmé pour reconnaître l'arrivée de chaque mot de synchronisation et assurer la liaison de l'interface avec le second composant pendant la durée de la seconde partie prédéterminée de la trame temporelle immédiatement suivante. Si la programmation de la première partie 6 est affectée par des erreurs, elle sera incapable de communiquer Ce fait peut être facilement détecté, et le système peut faire l'objet d'une mesure corrective, la première partie 6 étant incapable d'affecter directe- ment la seconde partie 8. La donnée critique pour la sécurité est codée d'une manière telle que la possibilité qu'une donnée quel- conque soit décodée dans le système de sécurité comme une donnée valable est extrêmement improbable En consé- quence, si la première partie 6 relie le bus de données 4 à la seconde partie 8 à un moment inapproprié, la pro- babilité de programmation erronée de la seconde partie est négligeable Par exemple, la donnée critique pour la sécurité peut être transmise de façon codée au moyen d'un code cyclique contenant 20 bits de parité ou plus. Avec un codage approprié, il en résulterait une probabili- té inférieure à 1/106 pour qu'une donnée aléatoire soit observée comme étant valable Un codage cyclique est une fonction matérielle relativement simple et en consé- quence il ne réduit pratiquement pas la simplicité de la seconde partie critique pour la sécurité. Cette invention sépare par conséquent à la fois les données et le matériel de sorte qu'il devient possible de prévoir un ordinateur reprogrammable disposé de façon à commander les fonctions principales et les capacités de transmission de données du système, tout en maintenant la sécurité et en permettant au système de sécurité de communiquer avec le bus de données. REVENDICATIONS 1 Appareil de traitement de données, caractérisé en ce qu'il comprend une première partie ( 6) et une secon- de partie ( 8) qui sont chacune capables d'être reliées à un bus de données ( 4) par l'intermédiaire d'une inter- face ( 2), cette interface comportant un premier état dans lequel la première partie ( 6) est reliée au bus de données ( 4) tandis que la seconde partie ( 8) ne l'est pas, et un second état dans lequel la seconde partie ( 8) est reliée au bus de données ( 4) tandis que la première partie ( 6) ne l'est pas, la première partie ( 6) étant agencée pour faire commuter l'interface ( 2) du premier état dans le second état pour un intervalle de temps prédéterminé pendant lequel une donnée destinée à la seconde partie ( 8) est en train d'être transmise, puis pour faire revenir l'interface ( 2) dans le premier état. 2 Appareil de traitement de données selon la revendication 1, caractérisé en ce que la première partie ( 6) est reprogrammable au moyen du bus de données ( 4) tandis que la seconde partie ( 8) n'est pas reprogrammable au moyen du bus de données ( 4). 3 Appareil de traitement de données selon une des revendications 1 ou 2, caractérisé en ce que l'inter- face ( 2) est capable de déterminer la fréquence d'horloge de données dans le bus de données ( 4) et de rendre cette fréquence d'horloge disponible simultanément pour la première et la seconde partie ( 6, 8). 4 Appareil de traitement de données selon une quelconque des revendications 1 à 3, caractérisé en ce que la donnée destinée à la seconde partie ( 8) est codée. Appareil de traitement de données selon la- revendication 4, caractérisé en ce que la donnée destinée à la seconde partie ( 8) est codée au moyen d'un code cyclique comportant au moins vingt bits de parité.