EP3123330A1 - Composant electronique a reponse deterministe - Google Patents

Composant electronique a reponse deterministe

Info

Publication number
EP3123330A1
EP3123330A1 EP15720436.3A EP15720436A EP3123330A1 EP 3123330 A1 EP3123330 A1 EP 3123330A1 EP 15720436 A EP15720436 A EP 15720436A EP 3123330 A1 EP3123330 A1 EP 3123330A1
Authority
EP
European Patent Office
Prior art keywords
data
component
supervisor
module
communication modules
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
EP15720436.3A
Other languages
German (de)
English (en)
Inventor
Stéphane ROSE
Nicolas MALASNE
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Voox
Original Assignee
Voox
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Voox filed Critical Voox
Publication of EP3123330A1 publication Critical patent/EP3123330A1/fr
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion

Definitions

  • the present invention relates to electronic components intended to evolve in a computer environment, allowing data exchange and communication, deterministically, between different elements of the environment.
  • a current car may for example include up to seventy interoperable electronic control units. There are now nearly three hundred different communication protocols.
  • the current protocols can thus hardly meet the requirements of the users, in particular to keep up with the accelerated pace of release of new products and software applications on the market and the need to integrate heterogeneous elements to constitute a competitive environment.
  • COTS commercial off-theshelj
  • WO 00/03521 discloses an Ethernet interface using software modules.
  • the application WO 2004/059505 proposes a software method for sharing data stored in a database. Different software programs can access the database.
  • the invention responds to this need with an electronic component with supervised communication modules, the component comprising:
  • each communication module comprising an interface stage with the supervisor allowing the latter to use a data format common to all the modules, the supervisor being configured to deterministically manage access to a database, according to a configuration table and requests to read and / or write data from the communication modules.
  • no microprocessor it should be understood that the supervisor does not run any computer program and does not contain an operating system.
  • the invention provides a mediator, "middleware" in English, real-time communication and multi-protocol, acting as a gateway between heterogeneous elements of an external environment using different communication protocols.
  • the component according to the invention is part of a distributed environment, allowing the exchange of data between these different elements with guaranteed real-time performances.
  • the invention allows users to have a modular, universal, simple, adaptable and secure solution, able to integrate into their existing environments, to simplify the management of data flows and data exchanges in these environments. This leads to the reduction of their development and validation time.
  • the invention allows the user to simplify the development of complex environments by disregarding the communication, that is to say, he can develop the desired application without worrying about the communication aspects necessary to his good operation.
  • the communication aspects are notably dissociated from the mode of data transmission, and the application becomes independent of the communication protocol used in the environment in which the application is evolving.
  • the user can easily reuse already developed applications, and make the connection between the past and the future by being able to work with both old and new communication protocols.
  • the component according to the invention allows the easy management of communication modules, corresponding for example to the connection with an application of the environment and / or for controlling physical inputs / outputs and / or exchanging information with data. other applications through one or more networks, by any means of transmission, for example wired, wireless, optical, or power line.
  • the component according to the invention makes it possible to manage the access to the data, independently of their place of production, elements of the architecture or communication modules of the component according to the invention, and to guarantee the provision of data to the user. environment in a predetermined maximum time, for a given environment.
  • the supervisor manages concurrent access to the database in a secure and deterministic manner.
  • the component is advantageously integrated in a target environment without the need to program new lines of computer code.
  • the component is capable of adapting to any type of operating system, to any type of computer card communication bus, for example for the connection with a processor executing an application, and to any type of communication protocol.
  • the component according to the invention does not define a new communication protocol and is different from a proprietary communication bus.
  • the component according to the invention does not impose any temporal constraints on the elements of the environment, for example processors executing applications, the various tasks performed by the component, in response to requests for reading and / or writing data from the data elements.
  • communication modules not subject to slot allocation. These tasks are sequenced by passing tokens, that is, the component is configured to hand over to a next task when the current task is completed. Events do not need to be dated to perform these tasks.
  • the component according to the invention providing a deterministic response guaranteeing control of signal propagation delays and data transmission latencies, and thus their processing time, provides a high level of security and is particularly suitable for critical applications, integrating particularly in environments for aeronautics or defense, where this type of response is essential.
  • This predictability feature is almost impossible to achieve with known software solutions, known as "layered", and is increasingly required in the certification processes of critical security level environments.
  • the component according to the invention is advantageously produced using one or more programmable logical components, preferably reprogrammable.
  • the component can be made using one or more components of the type FPGA (gate array programmable in-situ or "field-programmable rude array" in English) or CPLD (complex logic programmable logic device) in English) or ASIC ("application specifies integrated -circuit").
  • the component according to the invention is thus based on hardware elements such as logic gates and state machines. These elements are advantageously programmed in VHSL ("VHSIC Hardware Description Language").
  • VHSL VHSIC Hardware Description Language
  • the programmable logic components of FPGA type in particular, are intrinsically parallel, having matrices of millions of transistors, and are thus perfectly adapted to receiving and transmitting simultaneously several data streams. They also make the component according to the invention much more robust to cyber attacks, so-called "cyber attacks", the malware, targeting microprocessor applications, being most often inoperative on a programmable logic component.
  • the component may include a sequencer.
  • This sequencer can be external to the supervisor, being controlled by the supervisor, or integrated in the supervisor II makes it possible to organize the transmission of queries and data coming in parallel with the communication modules in order of priority.
  • the sequencer makes it possible to guarantee latencies of data transmission and data access times, and to avoid collisions between the different requests by managing competing requests.
  • the component advantageously comprises a time base configured to add to a datum its time of reception by the communication module during a write request in the database. This reception time can be read with the data during a read request. This allows the environment to maintain a validity period for each data, as needed, and to determine whether data has become obsolete.
  • the time base can use a system time accurate to 1 ⁇ , encoded on 52 bits. It is advantageously available at any time. It provides a common time repository for all communication modules of the component.
  • the parameterization of the component can be performed by a software environment tool called configurator.
  • the parameterization can be made from files describing the data exchange flows as well as their type in the environment, for example which element of the environment produces which data, and which data is consumed by which element (s) ( s).
  • the data managed by the component according to the invention is advantageously uniquely identified by an identifier.
  • the data written in the database may contain several encapsulated parameters, including the identifier of the data, the time associated with this data by the time base and the result of a cyclic redundancy check on the data, thereby creating a metadata.
  • the cyclic redundancy check allows the validation of the integrity of the data during its reading. If the data is corrupted, the supervisor is configured to read it in the database, and to send an error notification to the communication module at the same time as said corrupted data.
  • the encapsulation of a datum is preferably inseparable from it, and can only be removed during a read access.
  • the data can be recorded in the database in a format of which a non-limiting example is illustrated in the following table, comprising the identifier ("identifier_data”), the time associated with the data (“date”), the data itself (“data”) and the result of the cyclic redundancy check (“crc”):
  • the address of the data ("first_address") is advantageously provided by the configuration table.
  • the component communicates advantageously with the database through a dual access port (or “dual port” in English), to have independent access to the database for the data and its address, so manage concurrent access to the database and avoid data loss in the case of competing requests.
  • the component may include the database.
  • the database is deported to another part of the environment, and is connected to the component, in particular via a dual access port and a dedicated interface so that the component can drive the device. database.
  • the addresses of the data in the database are advantageously managed only by the supervisor, according to the configuration table, which makes it possible to avoid unwanted overwriting of data.
  • Access to the database is advantageously in the form of a request / data type interface, that is to say that access is through a read or write request and a frame containing or receiving the data according to the meaning of the request.
  • the transfers to and from the database can be defined by a DTDMA (Dynamic Time Division Medium Access) algorithm which allocates a maximum transfer time for each access.
  • This algorithm ensures a minimum bandwidth between the supervisor and the database. Unlike other known algorithms, while respecting the determinism, it makes it possible to optimize the flow rates; for example if a communication module is alone to want to access the database, it can use the entire bandwidth.
  • the storage of the data in the database can be managed according to different stacking modes, determined by a parameter of the configuration table, for example the "first in, first out” (FIFO) mode. in English), or “last in, first out” (or LIFO, "last in, first out”).
  • FIFO first in, first out
  • LIFO LIFO, "last in, first out”
  • the characteristics of the database are advantageously chosen according to the desired performances and the cost of the technologies, in order to adapt to each environment.
  • the physical support of the database may be a dual-port static random access memory (SRAM dual port, "static random access memory” in English), in the case where the component comprises the database, or, in the case where the database is external to the component, dynamic (SDRAM, "Synchronous Dynamic Random Access Memory” in English), for example a memory DDR ("double data rate" in English).
  • SRAM dual port "static random access memory” in English
  • SDRAM Synchronous Dynamic Random Access Memory
  • DDR double data rate
  • the database may have a memory of 32, 64 or 128 bits, a capacity of 1 MB or more, and a frequency of 125, 200 or 333 MHz or more.
  • the configuration table defines in particular the data contained in the database and their properties.
  • the configuration table may contain, for example, at least 2048 data of 64 bits each.
  • the identifier of the data to be managed makes it possible to access it.
  • the configuration table can be generated by the configurator from the user's definition of environment and data. To do this, a graphical interface can be used to graphically define the topology of the environment, as well as all the data. In a variant, XML files ("extensible markup language” or "extensible markup language” in English) can be used.
  • the configuration table can include the following configuration information:
  • data_number the number of data having the same identifier, stackable in the database
  • an indicator of the access ports that can produce the data to be written into the database, encoded on 8 bits with one bit per port (bit equal to 0: the port is not associated with the identifier of the data, bit equal to 1: the port is associated with the identifier of the data),
  • an indicator (“consumer") of the access ports that can consume the data read from the database, coded on 8 bits with one bit per port (bit equal to 0: the port is not associated with the identifier of the data, bit equal to 1: the port is associated with the identifier of the data),
  • the component can include the configuration table.
  • the configuration table is deported to another part of the environment, and is connected to the component, in particular via an access port.
  • the configuration table can be stored on Flash or SRAM or SDRAM memory.
  • the configuration table is preferably a separate entity from the database.
  • the response time of the component to each request from the communication modules can be calculated, for example by means of dedicated software, from the information in the configuration table, in particular from the length of the corresponding data frames. on request.
  • the supervisor is advantageously configured to operate in real time. It makes it possible to link, in real time, between the local memory of the environment, which stores the data, and the events coming from the different communication modules.
  • the supervisor preferably does not depend on the physical medium of the database, and is configured independently of the database.
  • the supervisor preferably receives requests from the environment and makes it possible to operate the component according to the invention regardless of the operating system or systems used by the environment and the communication buses used.
  • the supervisor may be connected to a third-party software application using a programming interface (API), comprising a set of commands to enable the component according to the invention to execute various instructions.
  • This set of commands notably comprises basic commands for writing and reading data, and commands managing the configuration of the environment, the events of the component according to the invention, such as the control of the latter, for example the access to information on its state and the information of order acknowledgments, and the services offered by the component, for example its start and stop after its configuration, or the access to the system time.
  • the programming interface may be located in a host processor to which the component according to the invention is connected, in particular by a communication module.
  • the programming interface can have between 8 and 15 commands, including 10 commands. This interface is advantageously sufficiently generic so that the implementation of the supervisor can be performed for any type of operating system.
  • the supervisor is preferably fully customizable in order to adapt to the heterogeneity of the modules connected to it.
  • the supervisor is advantageously functionally invariant within one environment or component to another.
  • the configuration table is advantageously configured to evolve according to the desired application, which allows the invariance of the supervisor.
  • the supervisor is also advantageously independent of the number of communication modules present in the component and the nature of the latter. The scalability of the component is thus possible according to the needs of the environment.
  • the supervisor is advantageously configured to check the validity of a request to read and / or write a data by means of the identifier associated with said data item.
  • the supervisor can thus know, through the configuration table, the properties of each data through its identifier.
  • the supervisor can thus be configured to check the size of the data during each read or write request.
  • the supervisor can be configured, after writing and / or reading data in the database, and according to the configuration table, to transmit a notification to the communication module from which the read request originates and / or writing said data, including a notification of success or error.
  • the supervisor can have access to a command register, allowing to control the component via the programming interface.
  • the commands of the command register manage in particular the initialization and the stop of the component.
  • the supervisor may have access to a control register (or "monitoring" in English), including information on the status of the component and error reports on previous requests. This allows the implementation of operating mechanisms, allowing the use of the component in critical applications subject to certification requirements.
  • Each communication module of the component according to the invention advantageously also comprises, in addition, an outward interface stage, with an element of the environment, and a connection stage between this interface stage and the interfacing stage with the supervisor, making it possible to manage and transmit requests for reading and / or writing data.
  • the interfacing stages of the communication modules make it possible to process data having different formats because they come from different elements of the same environment, for example the avionics bus and the radar of a drone.
  • Communication modules can be reused from one environment to another or for various applications.
  • a library of modules can be created.
  • An already existing module can also be adapted for another purpose or application.
  • the communication modules may be configured to transmit read and / or write data requests to the supervisor through access ports. These access ports are advantageously identical whatever the communication module to which they are connected, and can be controlled by the supervisor.
  • the requests for reading and / or writing preferably originate from environmental demands received by the communication modules, in particular a solicitation of at least one software application executed on a processor of the environment, in particular a microprocessor, and / or a physical input / output of the environment, in particular an audio and / or video input / output, and / or an environment network, in particular a CAN, a TCP-IP network, a network using the ARTNC 429, AFDX, MIL STD 1553, or FlexRay, or the Ethercat or Powerlink system.
  • At least one of the communication modules of the component according to the invention may be a processor module, in particular allowing the connection with a processor of the environment executing a software application.
  • This processor module can transmit to the supervisor a request and data during a write request in the database. He can transmit the data to the environment during a reading, and the success notification of the supervisor if necessary.
  • the processor module may be connected to at least one communication bus of the processor, this bus being in particular a bus using the PCI ("peripheral component interconnect") or PCI Express standard, or a VME bus ("VERSA eurocard module").
  • PCI peripheral component interconnect
  • PCI Express PCI Express standard
  • VME VME bus
  • the processor module advantageously comprises an interface stage with said communication bus, making it possible to make the physical connection with the bus and to receive the requests, and a connection stage between this interface stage and the interface stage with the supervisor, allowing the management of the received requests and their transmission to the supervisor via the interfacing stage with the supervisor, in order to prepare the data frames for their transfer to and from the database.
  • At least one of the communication modules can be an input / output module, in particular making it possible to establish a link with a physical input / output of the environment.
  • the physical inputs / outputs of the environment can be analog, discrete, RS232 or PT100.
  • the input / output module is advantageously autonomous, that is to say, once set, it generates the requests and transmits them to the supervisor without any processor performing any processing.
  • the input / output module may comprise an interface stage with at least one physical input / output of the environment, making it possible to physically access this input / output and to transmit or receive the data of the stage of interfacing with the supervisor.
  • This interfacing stage with at least one physical input / output of the environment can be configured to access an analog / digital converter connected to the physical input / output.
  • the input / output module may furthermore comprise a connection stage between this interface stage and the interfacing stage with the supervisor, making it possible to generate the requests in the appropriate format from the parameterization of the module and to transmit them to the interfacing stage with the supervisor.
  • At least one of the communication modules may be a network module, in particular allowing the exchange of data between the component and the environment by one or more networks.
  • the network module can collaborate with any type of network, for example a CAN, a TCP-IP network ("transmission control protocol” and "internet protocol”), for example for video streams, a network using the ARINC 429 aeronautical standards, AFDX, or MIL STD 1553, the FlexRay standard, or the Ethercat system (“Ethernet for control automation technology”), and can correspond to different standardized communication protocols.
  • a network for example a CAN, a TCP-IP network (“transmission control protocol” and "internet protocol”), for example for video streams, a network using the ARINC 429 aeronautical standards, AFDX, or MIL STD 1553, the FlexRay standard, or the Ethercat system (“Ethernet for control automation technology”), and can correspond to different standardized communication protocols.
  • the network module makes it possible to implement a gateway between the environment network and the component according to the invention, while managing all the communication problems, such as the segmentation of the data, the respect of the protocols, the decoding or the formatting of the data.
  • the network module may be devoid of processor, being purely hardware, especially in the case where the environment network protocol makes it easy to define a bijection with an identifier of a data item.
  • the network module can use a processor in order to manage the communication protocol and / or the formatting of the data and / or the bijection with the identifier of the data.
  • the processor code can be configured to be modified according to the desired applications.
  • the network module may comprise an interface stage with at least one network of the environment, making it possible to make the physical connection to the network, and a connection stage between this interface stage and the interfacing stage with the supervisor. , for interpreting the communication protocols of the network and transmitting the requests to the interfacing stage with the supervisor.
  • the link stage is advantageously configured to convert the data to be processed into a format suitable for the network and to retrieve, where appropriate, the network label or labels corresponding to the data identifier, by means of a data table. correspondence between identifiers and labels of the network, in particular initialized to the configuration of the module.
  • the network module of a component can be used to transmit data to the network module of another component according to the invention within the same environment. This makes it possible to group several components according to the invention in order to form a set of components.
  • the component according to the invention can comprise several network modules, making it possible in particular to link different networks of the environment in which the component operates and to provide optimized and deterministic processing times.
  • the component can have between 0 and 12 network modules, better between 2 and 8 network modules.
  • At least one of the communication modules may be a distribution module, in particular enabling connection between databases of different components according to the invention.
  • This distribution module advantageously plays the role of a data distribution bus from the database.
  • the distribution module may include an interface stage with at least one network connection of the environment. This interfacing stage makes it possible to make the physical connection between the different components.
  • the distribution module may furthermore comprise a linkage stage between this interface stage and the interfacing stage with the supervisor, allowing the management of the communication protocol of the concentrator and the transmission of requests to the interfacing stage. with the supervisor.
  • the distribution modules are connected via a hub or hub in English.
  • the concentrator interconnecting the distribution modules of different components according to the invention can use an Ethernet physical medium, for example a copper support, in particular redundant, that is to say that the elements of the support are systematically doubled.
  • the distribution module is thus advantageously configured to transmit and receive the data on the two branches of the support in parallel. This helps to secure the transfer of data. If one of the two branches no longer responds, the data advantageously continues to be received or transmitted.
  • the state of the concentrator can be known at any time by the component through the control register, which allows to act quickly in case of failure.
  • the distribution module can distribute data at 1 Gb / s, or at 10 Gb / s, or by carrier line.
  • the component according to the invention can comprise between 0 and 12 communication modules, better between 2 and 8 communication modules.
  • mechanisms integrated in the component according to the invention can be set up in order to detect a component that does not comply with the communication rules in the environment, for example to read in parallel the component the information received. and transmitted, in order to verify its proper functioning, in particular by going back up information to the programming interface.
  • the invention thus also relates to a method of operating an electronic component according to the invention, comprising at least two communication modules and a supervisor, each communication module comprising an interfacing stage with the supervisor, in which method :
  • one of the communication modules of the component transmits a request for reading and / or writing data to the component supervisor, via the interfacing stage with the supervisor, and
  • the supervisor deterministically manages access to a database, in order to read and / or write said data.
  • the configuration table can be set according to the environment and loaded during the initialization of the component, using or not the programming interface, for example through a processor module or distribution. In a variant or in combination, it can be modified later, according to the changes in the environment and the desired applications.
  • the supervisor before writing or reading data in the database, advantageously checks the validity of the read request and / or writing said data coming from a communication module, in particular by means of an identifier corresponding to the parameters of the configuration table, as described previously.
  • the invention also relates to a method for manufacturing an electronic component with supervised communication modules according to the invention, comprising at least two communication modules and a supervisor without a microprocessor, a method in which one or more programmable logic components, in particular of the FPGA, CPLD or ASIC type, are programmed in such a way that the communication modules operate in parallel and that the supervisor deterministically manages the access to a database, according to a configuration and requests table. reading and / or writing in the database, from the communication modules.
  • Another subject of the invention is the use of an electronic component with supervised communication modules according to the invention in an aircraft, in particular for the control of a radar or an altimeter, or in an industrial control system of commands, for example for the feedback of information from sensors, in particular temperature or rotational speed, to the supervision applications.
  • the invention also relates to an assembly comprising a plurality of electronic components according to the invention, said components each comprising at least one distribution module and being interconnected by their distribution module.
  • Each component of the assembly according to the invention is advantageously configured to transmit data, after a read request, to another component of the set, configured to write this data in the database in the case of a write request.
  • the first component may be called the transmitting component, the second receiving component.
  • Each supervisor of each component can be connected to a programming interface. Alternatively, a single supervisor or only a few can be connected to a programming interface.
  • a time base is advantageously shared between all the components. Time sharing is advantageously dynamic, depending on the needs of each component.
  • One of the components of the set called the “managing component” is advantageously configured to control the synchronization of the dates of all the components through the time base shared by all the components. This allows the implementation of a distributed system time.
  • the managing component may be configured to periodically send its system time to the distribution network, each component of the set retrieving this time and compensating the value received with the latency of the distribution.
  • the different write or read requests received by the different components can thus be ordered according to a priority order defined in the configuration table of each component.
  • the components of the assembly according to the invention take advantage advantageously in turn hand in hand to respond to queries addressed to them, so that at a given moment, only one component is active and the other components are only listening. This avoids any data exchange collision.
  • the managing component may further be configured to list the connected supervisors of the set at a given time.
  • All the components of the set can indifferently be elected manager. If the manager becomes disconnected, for example because of a failure of the component, the environment or the network, for example because of the total physical rupture of the link between the concentrator and this component, a new component can be elected manager. This re-election is advantageously carried out in a duration less than or equal to 150 ⁇ , for example for distribution modules using an Ethernet physical medium. The interruption of service is thus very limited, and only very slightly impacts the functioning of the environment.
  • a disconnected component of the assembly is advantageously no longer accessible for the other components, the assembly still remaining operational.
  • this component is connected to a programming interface, it remains advantageously active while being isolated from the rest of the set.
  • the rest of the set is advantageously no longer connected or controlled by a programming interface.
  • the supervisor of each component is preferably configured to handle access to a separate database.
  • the data contained in the database associated with a component can be configured to be accessible by all components, including through information from the configuration table. This makes it possible to efficiently distribute the data between the various components of the assembly according to the invention. This also makes it possible to ensure that the transfer of a piece of data has been validly performed, by verifying that the encapsulation of a piece of data received by a receiver component corresponds to the encapsulation at the level of the transmitter, in particular the result of the cyclic redundancy check.
  • the concentrator may be arranged to detect the malfunction of one of the components of the set, for example a component sending unexpectedly or erroneously data. This data may be rejected by the other components.
  • the programming interface (s) may be configured to detect a failure or malfunction of the concentrator, for example a continuous sending of data to the components in the absence of a request, or an erroneous sending. The components can then be left active but with isolated operation, or can be disabled.
  • a deterministic transfer of the data between components within the same environment is thus ensured thanks to the distribution modules, allowing the independence between the place of emission and the place of reception of a data, without impact on the applications of the data. external environment, the distribution process is thus managed autonomously.
  • the set of components according to the invention can be likened to a communication space functioning as a single macro supervisor managing a distributed database.
  • the invention further relates to a method of operating an assembly comprising a plurality of components according to the invention, said components each comprising at least one distribution module and being interconnected by their distribution module, in which method:
  • the distribution module of the component concerned transmits the data to all the communication modules of the components, and the components associated with the identifier of said data receive it by means of a write request from their distribution module.
  • Supervisors may send a notification to the other communication modules of the component to which they belong to warn of the availability of said data, upon request expressed through a parameter of the configuration table.
  • the configuration tables for each component can be loaded via a single input component.
  • FIG. 1 represents an electronic component with supervised communication modules according to the invention
  • FIG. 2 represents the structure of a communication module of a component according to the invention
  • FIG. 3 illustrates the operation of a processor module of a component according to the invention
  • FIG. 4 illustrates the operation of an input / output module of a component according to the invention
  • FIG. 5 illustrates the operation of a network module of a component according to the invention
  • FIG. 6 represents an alternative embodiment of a component according to the invention
  • FIGS. 7A to 7C illustrate various steps of writing data in the database
  • FIGS. 8A to 8C illustrate various steps of reading data in the database
  • FIG. 9 represents a set of components according to the invention.
  • FIG. 10 represents an alternative embodiment of a set of components according to the invention.
  • FIGS. 11A to 11G illustrate various steps of distribution of a datum in a set of components according to the invention
  • FIGS. 12 and 13 represent assembly variants comprising several components according to the invention.
  • FIG. 1 An electronic component 1 with supervised communication modules according to the invention, operating in an external computing environment, is represented in FIG. 1.
  • This component 1 comprises a supervisor 2 without a microprocessor and three communication modules 3, 4, 5 operating in parallel.
  • the component 1 according to the invention is advantageously produced using one or more programmable logic components, for example FPGA components.
  • the supervisor 2 is configured to deterministically manage the access to a database 6, according to a configuration table 7, as described above, and read requests and / or write in the database. data 6, from the communication modules 3, 4 and 5.
  • the communication modules 3, 4 and 5 are configured to transmit the requests for reading and / or writing data to the supervisor 2 via access ports 9 internal to the component 1.
  • the component 1 advantageously comprises a sequencer, not shown, controlled by the supervisor and making it possible to order the requests coming from the communication modules 3, 4 and 5 operating in parallel.
  • the component 1 comprises a time base 8 making it possible to add to a data item its reception time by the supervisor 2 during a write request in the database 6, said reception time being read in particular with the data during a read request.
  • the supervisor 2 is advantageously connected to a programming interface 11, in particular via a communication module, comprising a set of commands to enable the component 1 according to the invention to execute various instructions.
  • This set of commands includes basic commands for writing and reading data.
  • each communication module 3, 4, and 5 has an interface stage 20 with the supervisor 2 enabling the latter to use a data format common to all the data.
  • Each communication module 3, 4, and 5 further comprises an interfacing stage 22 to an element of the external environment of the component 1, and a connecting stage 21 between this stage interface 22 and the interfacing stage 21 with the supervisor 2, allowing the management and transmission of read requests and / or writing 16 and data 17.
  • the read and / or write requests come from outside environment requests received by the communication modules 3, 4 and 5.
  • the component 1 comprises a processor module
  • the operation of the processor module 3 is shown in detail in FIG.
  • the microprocessor 13 uses in the example in question a communication bus 13a 32-bit PCI type, and is for example inserted into a computer running with the Linux operating system.
  • This processor module 3 is configured to transmit to the supervisor 2 a request 16 and data 17 during a write request in the database 6.
  • H can transmit to the environment the data 17 during a read request .
  • the processor module comprises, in the example described, an interface stage 3c with the communication bus 13a, making it possible to make the physical connection with the bus and to receive the write and / or read requests 16, and a linkage stage 3b between this interfacing stage 3c and the interface stage 3a with the supervisor 2, allowing the management of received requests and their transmission to the supervisor 2 via the interface stage 3a, in order to prepare the frames data 17 for their transfer to and from the database 6.
  • the operation of the input / output module 4 is shown in detail in FIG. 4.
  • the physical input / output 14 of the environment is analog, for example an input / output value of temperature.
  • the interfacing stage 4a with the supervisor 2 of the input / output module 4 is arranged to transmit the requests 16 notifying the module 4 to generate a data output 17 by a stream 24 or to sample a data input.
  • the data is retrieved by the connection stage 4b between the interface stage 4a and the interfacing stage 4c towards the input / output of the environment 14. the link stage 4b converting the data 17 into a format adequate.
  • the data 17 is then supplied to the interface stage 4c, which physically accesses an analog / digital converter 25 to transmit the data item 17 in an analog format understandable by the physical input / output of the environment. through a decoupler / connector 26.
  • this request and its associated data 17 are retrieved by the connection stage 4b between the interface stage 4a and the interfacing stage 4c towards the input / output of the interface. environment 14 which samples the data 17 contained in the analog / digital converter 25 through the interfacing stage 4c. The data is then formatted appropriately and the write request in the database 6 is generated and transmitted to the supervisor 2 by the interfacing stage 4a.
  • the network 15 of the environment is a network using the Arinc 429 standard.
  • the network module 5 connects on one side to the component supervisor 2. 1 and the other bus Arinc 429 type 15.
  • the interface stage 5a with the supervisor 2 transmits the event 27 notifying the module network 5 that data is ready to be sent to the bus 15.
  • the event 27 and the data 17 are recovered by the linkage stage 5b between the interface stage 5a and the interfacing stage 5c to the network.
  • This link stage 5b is configured to convert the data item 17 to a format suitable for the network 15 and, thanks to a correspondence table initialized to the configuration, to retrieve the label or the labels of the network corresponding to the identifier associated with the network. 17.
  • the Arinc data frame thus formed is then advantageously supplied to the interfacing stage 5c to the network 15, which makes the physical access to the bus used by the network 15 in accordance with the communication protocol.
  • the interfacing stage 5c to the network 15 retrieves the Arinc data frame and supplies it to the linkage stage 5b between the stages interfacing 5a and 5c.
  • the link stage 5b extracts the payload from the frame and, thanks to the correspondence table between the identifiers of the data and the labels of the network, performs a write request 16 of the corresponding identifier.
  • the interfacing stage 5a with the supervisor 2 transmits this request to the supervisor 2 which allows the writing of the data item 17 in the database 6.
  • the component 1 according to the invention comprises two network modules 50 and 51, allowing the establishment of a gateway between two networks 54 and 55 to exchange data in the environment.
  • the network 54 is a network using the AFDX standard and the network 55 is a TCP / IP type network at 100 Mbps.
  • supervisor 2 is automatically activated when component 1 is turned on.
  • Supervisor 2 also has access, in this example, to a control register 32, which notably contains information about the Component 1 status and error reports on previous queries.
  • the component 1 includes the database 6 and the configuration table 7.
  • the database 6 and the configuration table 7 are deported to another location of the environment, and are connected to component 1 through dedicated interfaces.
  • the supervisor 2 receives a write request 33 from a communication module, not shown, which has previously prepared the data to be written.
  • the supervisor 2 is configured to check the validity of the request by means of the identifier associated with the data item 17, as a function of the configuration table 7, not shown.
  • the request is valid and the supervisor 2 notifies the module from which the data 17 originates that the access is authorized by a notification 35, as represented in FIG. 7B.
  • the module then performs the transfer of the data 17 to the database 6. During this transfer, the data 17 is encapsulated, as described above.
  • the encapsulated data 17a is written in the database 6.
  • the supervisor 2 notifies the error checking register 32 of a possible transfer error by a notification 36.
  • the supervisor 2 when the supervisor 2 receives a read request 34 from a communication module, not shown, it checks the validity of the request, as in the case of a write request, according to the configuration table 7, not shown.
  • the request is valid and the supervisor 2 notifies the module from which the request 34 originates that access is authorized by a notification 35, as shown in FIG. 8B.
  • the supervisor also transfers data 17 to the communication module, verifying the integrity of the data.
  • the supervisor can send, on request expressed by means of a parameter of the configuration table, a status notification 36 to the module from which the request originates, according to the table configuration 7, to notify him of the end of the transfer or a potential error during it.
  • the data 17 is then ready to be used by the communication module.
  • two components 1 and 60 according to the invention can be grouped together to form a set 100 of components.
  • the components 1 and 60 each comprise, in the example described, a network module 5 and 65, connected via a network 15 ⁇ external environment using the AFDX standard.
  • the component 1 also comprises a processor module 3 connected by a communication bus 13a to a processor 13 of the environment, for example a computer running the Windows operating system.
  • the component 60 further comprises an input / output module 64 having two input channels and two output channels to physical inputs / outputs 14 of the environment.
  • the supervisor 2 After a write request from the processor module 3 of the component 1, data can be written in the database 6 by the supervisor 2 of the component 1. According to the configuration table 7, the supervisor 2 sends a notification signaling the writing of the data to the network module 5 of the component 1, which is configured to recover the data and transmit it on the network 15.
  • the network module 65 of the second component 60 retrieves the data, in the example described, and requests the supervisor 62 to write it to the database 66 associated with the component 60.
  • the supervisor 62 sends a notification to the input / output module 64 which can recover the data and transform it to transmit it to an output 14 of the environment, as previously described.
  • the three components 1, 60 and 70 each comprise a distribution module 46, 47, 48.
  • the distribution modules 46, 47, 48 comprise, in the example considered, an interface stage with a network connection 115 of the external environment, connected to a concentrator.
  • the distribution modules 46, 47, 48 further comprise an interface stage with the respective supervisors 2, 62 and 72 of the components 1, 60 and 70, and a connection stage between these two interface stages, allowing the management communication protocol and transmission of requests to the interfacing stage with supervisors 2, 62 and 72.
  • the three components 1, 60 and 70 are connected by their distribution module 46, 47, 48 to form a set 110 of components according to the invention.
  • the interfacing stage of the modules with the network connection 115 of the environment makes it possible to make the physical connection between the various components.
  • the concentrator 115 interconnecting the distribution modules 46, 47, 48 of the components 1, 60 and 70 uses, in the example described, a redundant physical Ethernet support.
  • the component 1 further comprises an input / output module 4.
  • the component 60 comprises a processor module 63, an input / output module 64 and a network module 65.
  • the component 70 comprises a processor module 73 and a network module 75.
  • One of the components of the assembly 110 is advantageously configured to control the synchronization of the dates of all the components through a time base 68 shared between all the components.
  • the data contained in the database associated with a component of the set 110 is advantageously configured to be accessible by all the components, in particular by means of parameters contained in the configuration table 7.
  • Each component 1, 60, 70 of the assembly 110 is advantageously configured to transmit data, after a write request, to another component of the set, configured to write this data into the database.
  • the component 70 receives data from its processor module 73, and redistributes it to the processor module 63 of the component 60, which will use it for the application to which it is connected, and to the input / output module. output 4 of component 1, which will redirect it to a physical output of the environment.
  • the different write or read requests received by the various components 1, 60, 70 can be ordered, according to their order of arrival and in a priority order defined in the configuration table of each component.
  • the components 1, 60, 70 of the assembly 110 can take turns in hand to the whole to respond to requests addressed to them.
  • FIGS. 11 to 11G An example of distribution of a data item 17 in a set 110 comprising two components 1 and 60 according to the invention is illustrated in FIGS. 11 to 11G.
  • the supervisor 2 of the component 1 sends a notification 37, if requested by means of a dedicated parameter of the configuration table 7, to the communication modules 3, 4 and 46 of the component 1 to prevent them that a data item 17 has been written in the database 6, as represented in FIG. A.
  • the component 1 comprises, in addition to the distribution module 46, a processor module 3 and an input / output module 4.
  • the distribution module 46 being configured, in the example described, to distribute the data 17 as soon as it is written, the supervisor 2 sends a write request 34 to the consumer component via the distribution link 46, as shown in FIG. 11B.
  • the encapsulated data 17a is transferred from the database 6 to the distribution module 46,
  • the distribution module 46 of the component 1 sends the encapsulated data 17a on the concentrator 1 to the distribution module 47 of the other component 60 of the assembly 110.
  • the supervisor 62 of the component 60 being able to receive the data 17 according to its identifier, the distribution module 47 of the component 60 and sends a write request 33 of the data 17 to the supervisor 62, as shown in Figure 1 1E.
  • the encapsulated data 17a is written to the database 66 associated with the component 60 in a step illustrated in Figure 11F.
  • the supervisor 62 sends a status notification 36 to the distribution module 46, according to the configuration table 67 associated with the component 60, not shown, in order to notify it of the end of the writing of the data item 17 in the database 66 or a potential error in it.
  • the supervisor 62 of the component 60 is advantageously configured to send a notification 37, if requested through a parameter of the configuration table 7, to the other communication modules of the component 60, a processor module 63 and an input / output module 64 in the example described, to prevent them that data 17 has been written in the database 6 and is thus available, as shown in Figure 11 G.
  • the assembly 120 comprises three components 1, 60 and 70, interconnected by their distribution module 46, 47, and 48, all three connected to the concentrator 115 of the external environment, a redundant Ethernet physical medium in the example in question.
  • the component 1 further comprises a processor module 3 connected by a communication bus 13a to a processor 13 of the environment, which is a computer operating under the VxWorks 5.5 operating system in the example described.
  • the component 60 includes a processor module 63 connected by a communication bus 69a to a processor 69 of the environment, which is a computer running the Linux operating system in the example described.
  • the component 70 comprises a processor module 73 connected by a communication bus 79a to a processor 79 of the environment, which is a computer running the Windows XP operating system in the example described.
  • Each supervisor 2, 62, 72 of each component 1, 60, 70 constituting the assembly 120 is advantageously interfaced with the processor 13, 69, 79 corresponding, through the processor modules 3, 63, 73 connected to the concentrator 1 15 through distribution modules 46, 47, 48.
  • This variant makes it possible to have a distributed computer architecture, called a "cluster" in English, in which each application hosted by each processor 13, 69, 79 easily accesses local data, contained in the databases 6, 66 or 76 of the components 1, 60, 70, regardless of the operating system of the processor concerned and its location in the environment.
  • the assembly 130 comprises two components 1 and 60, interconnected by their distribution module 46, 47, both connected to the concentrator 115 of the external environment, a redundant Ethernet physical medium in the example considered.
  • the component 1 further comprises, in the example described, a processor module 3 connected by a communication bus 13a to a processor 13 of the environment, which is a computer running the Vx Works 5.5 operating system.
  • the component 60 comprises an input / output module 64 connected to discrete physical inputs and outputs 14 of the environment, and a network module 65 connected to a network 15 of the environment, using the Arinc standard 429.
  • the processor 13 can thus manage the physical inputs / outputs 14 and the network 15 remotely, through the distribution modules 46, 47 and read and write data in the databases 6, 66, as previously described. .
  • the component 1 according to the invention can comprise several input / output modules and several network modules, which makes it possible to have a rack of different inputs / outputs, able to transfer their data in the external environment through different networks.
  • the component 1 according to the invention can be presented with a set of certifications to meet the certification requirements of critical applications, such as aeronautics or defense.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Small-Scale Networks (AREA)

Abstract

Composant électronique (1) à modules de communication supervisés comportant; - au moins deux modules de communication (3, 4, 5) fonctionnant en parallèle, et - un superviseur (2) dépourvu de microprocesseur, chaque module de communication (3, 4, 5, 46) comportant un étage d'interfaçage (20) avec le superviseur (2) permettant à ce dernier d'utiliser un format de données commun à l'ensemble des modules (3, 4, 5), le superviseur (2) étant configuré pour gérer de façon déterministe l'accès à une base de données (6), en fonction d'une table de configuration (7) et de requêtes de lecture et/ou d'écriture dans la base de données (6), provenant des modules de communication (3, 4, 5).

Description

« Composant électronique à réponse déterministe »
La présente invention concerne les composants électroniques destinés à évoluer dans un environnement informatique, permettant l'échange de données et la communication, de façon déterministe, entre différents éléments de l'environnement.
Les systèmes électroniques de communication et de contrôle sont de plus en plus complexes. Une voiture actuelle peut par exemple comporter jusqu'à soixante-dix unités de contrôle électroniques inter-opérantes. Il existe à présent au total près de trois cents protocoles de communication différents.
Face à ces exigences d'interopérabilité et cette complexité, les utilisateurs ont cherché à avoir un standard unique.
La plupart des protocoles de communication intègrent à la fois un protocole de communication, ou langage, et un support physique de transmission. Ces protocoles sont ainsi très dépendants du moyen utilisé et de l'application logicielle visée, et sont incapables de prendre en compte un changement, tel qu'un besoin d'augmentation de bande passante ou de diversification du mode de transmission, par exemple fîlaire, sans-fil, optique ou par courant porteur en ligne.
Les protocoles actuels peuvent ainsi difficilement répondre aux exigences des utilisateurs, notamment suivre le rythme accéléré de sortie de nouveaux produits et applications logicielles sur le marché et la nécessité d'intégrer des éléments hétérogènes pour constituer un environnement compétitif.
Dans le contexte multi-protocole, les architectures distribuées sont de plus en plus utilisées. Ces architectures consistent à mettre en réseau des calculateurs et des capteurs.
Les utilisateurs ont également essayé d'externaliser leurs développements et de rechercher des solutions de type « commercial off-theshelj "» (COTS), c'est-à-dire des solutions déjà disponibles sur le marché pour remplacer leurs développements internes spécifiques.
Il est connu de la demande de brevet US 2006/036772 de proposer un logiciel médiateur évoluant dans une architecture distribuée et communiquant avec un processeur hôte par le biais de modules d'interface utilisant des processeurs logiciels. Des créneaux temporels prédéfinis et non modifiables sont imposés pour les échanges entre le processeur hôte et le logiciel médiateur, en utilisant une horloge synchronisée entre ces derniers.
La demande WO 00/03521 décrit une interface Ethernet utilisant des modules logiciels.
La demande WO 2004/059505 propose une méthode logicielle de partage de données stockées dans une base de données. Différents programmes logiciels peuvent accéder à la base de données.
Ces solutions ne permettent pas d'interagir de manière universelle avec les différents protocoles de communication existants tout en donnant la possibilité de ti-ansmettre, de manière autonome, paramétrable et déterministe, toutes les données issues des différents flux d'un environnement. Les solutions logicielles doivent notamment gérer de nombreuses interruptions lors de l'exécution des programmes, ce qui empêche d'obtenir des réponses déterministes.
Il existe un besoin pour disposer d'un composant électronique capable d'évoluer dans un environnement distribué et de jouer le rôle d'une passerelle entre différents éléments de l'environnement utilisant des protocoles de communication différents, tout en fournissant des réponses déterministes à des requêtes provenant de ces éléments.
L'invention répond à ce besoin grâce à un composant électronique à modules de communication supervisés, le composant comportant :
- au moins deux modules de communication fonctionnant en parallèle, et
- un superviseur dépourvu de microprocesseur,
chaque module de communication comportant un étage d'interfaçage avec le superviseur permettant à ce dernier d'utiliser un format de données commun à l'ensemble des modules, le superviseur étant configuré pour gérer de façon déterministe l'accès à une base de données, en fonction d'une table de configuration et de requêtes de lecture et/ou d'écriture de données provenant des modules de communication.
Par .« de façon déterministe », il faut comprendre que le composant garantit de toujours fournir, pour une même requête, une réponse dans un temps maximum déterminé au préalable.
Par « dépourvu de microprocesseur », il faut comprendre que le superviseur n'exécute aucun programme informatique et ne contient pas de système d'exploitation. L'invention fournit un opérateur médiateur, « middleware » en anglais, de communication temps réel et multi-protocole, jouant le rôle d'une passerelle entre des éléments hétérogènes d'un environnement extérieur utilisant des protocoles de communication différents. Le composant selon l'invention s'inscrit dans un environnement distribué, permettant l'échange de données entre ces différents éléments avec des performances temps réel garanties.
L'invention permet aux utilisateurs de disposer d'une solution modulaire, universelle, simple, adaptable et sécurisée, capable de s'intégrer dans leurs environnements existants, afin de simplifier la gestion des flux de données et les échanges de données dans ces environnements. Cela conduit à la réduction de leurs temps de développement et de validation.
L'invention permet à l'utilisateur de simplifier les développements d'environnements complexes en faisant abstraction de la communication, c'est-à-dire qu'il peut développer l'application désirée sans se préoccuper des aspects de communication nécessaires à son bon fonctionnement. Les aspects de communication sont notamment dissociés du mode de transmission des données, et l'application devient indépendante du protocole de communication utilisé dans l'environnement au sein duquel évolue l'application. L'utilisateur peut ainsi réutiliser facilement des applications déjà développées, et faire le lien entre le passé et le futur en étant capable de fonctionner aussi bien avec d'anciens protocoles de communication qu'avec des nouveaux.
Le composant selon l'invention permet la gestion facilitée de modules de communication, correspondant par exemple à la liaison avec une application de l'environnement et/ou permettant de piloter des entrées/sorties physiques et/ou d'échanger des informations avec d'autres applications par le biais d'un ou de plusieurs réseaux, par tout moyen de transmission, par exemple filaire, sans-fil, optique, ou par courant porteur en ligne.
Le composant selon l'invention permet de gérer l'accès aux données, indépendamment de leur endroit de production, éléments de l'architecture ou modules de communication du composant selon l'invention, et de garantir la mise à disposition des données à l'environnement dans un temps maximum préalablement déterminé, pour un environnement donné. Le superviseur permet de gérer des accès concurrents à la base de données, de manière sécurisée et déterministe. Le composant est avantageusement intégré dans un environnement cible sans qu'il soit nécessaire de programmer de nouvelles lignes de code informatique. Le composant est capable de s'adapter à tout type de système d'exploitation, à tout type de bus de communication de carte informatique, par exemple pour la liaison avec un processeur exécutant une application, et à tout type de protocole de communication.
Le composant selon l'invention ne définit pas un nouveau protocole de communication et est différent d'un bus de communication propriétaire.
Le composant selon l'invention n'impose aucune contrainte temporelle aux éléments de l'environnement, par exemple des processeurs exécutant des applications, les différentes tâches effectuées par le composant, en réponse aux requêtes de lecture et/ou d'écriture de données des modules de communication, n'étant pas assujetties à l'allocation de créneaux temporels. Ces tâches sont séquencées par passage de jetons, ou « tokens » en anglais, c'est-à-dire que le composant est configuré pour passer la main à une tâche suivante lorsque la tâche courante est terminée. Les événements n'ont pas besoin d'être datés pour réaliser lesdites tâches.
Le composant selon l'invention, fournissant une réponse déterministe garantissant la maîtrise des temps de propagation des signaux et les latences de transmission des données, et ainsi leur temps de traitement, procure un haut niveau de sécurité et est particulièrement adapté pour des applications critiques, s'intégrant notamment dans des environnements destinés à l'aéronautique ou à la défense, où ce type de réponse est primordial. Cette caractéristique de prédictibilité est quasiment impossible à atteindre avec les solutions logicielles connues, dites « en couche », et est de plus en plus requise dans les démarches de certification des environnements de niveaux de sécurité critiques.
Composant électronique
Le composant selon l'invention est avantageusement réalisé à l'aide d'un ou plusieurs composants logiques programmables, de préférence reprogrammables. Le composant peut être réalisé à l'aide d'un ou plusieurs composants de type FPGA (réseau de portes programmables in situ ou « field-programmable gâte array » en anglais) ou CPLD (circuit logique programmable complexe ou « complex programmable logic device » en anglais) ou ASIC (« application spécifie integrated -circuit » en anglais).
Le composant selon l'invention se fonde ainsi sur des éléments matériels tels que des portes logiques et des machines d'états. Ces éléments sont avantageusement programmés en langage VHDL (« VHSIC Hardware Description Language »). A la différence des microprocesseurs ou microcontrôleurs, les composants logiques programmables, de type FPGA notamment, sont intrinsèquement parallèles, comportant des matrices de millions de transistors, et sont ainsi parfaitement adaptés à la réception et à l'émission simultanée de plusieurs flux de données. Ils permettent en outre de rendre le composant selon l'invention beaucoup plus robuste aux attaques informatiques, dites « cyber attaques », les logiciels malveillants, ciblant des applications sur microprocesseur, étant le plus souvent inopérants sur un composant logique programmable.
Le composant peut comporter un séquenceur. Ce séquenceur peut être externe au superviseur, étant piloté par le superviseur, ou intégré au superviseur II permet d'organiser les transmissions de requêtes et de données provenant en parallèle des modules de communication par ordre de priorité. Le séquenceur permet de garantir les latences de transmission de données et les temps d'accès aux données, et d'éviter les collisions entre les différentes requêtes en assurant la gestion de requêtes concurrentes.
Le composant comporte avantageusement une base de temps configurée pour adjoindre à une donnée son heure de réception par le module de communication lors d'une requête d'écriture dans la base de données. Cette heure de réception peut être lue avec la donnée lors d'une requête de lecture. Ceci permet à l'environnement de gérer une durée de validité pour chaque donnée, selon le besoin, et de déterminer notamment si une donnée est devenue obsolète.
La base de temps peut utiliser une heure système précise à 1 με, codée sur 52 bits. Elle est avantageusement disponible à tout moment. Elle permet de disposer d'un référentiel de temps commun pour tous les modules de communication du composant.
Le paramétrage du composant peut être réalisé par un outil d'environnement logiciel appelé configurateur. Le paramétrage peut être réalisé à partir de fichiers décrivant les flux d'échanges de données ainsi que leur type dans l'environnement, par exemple quel élément de l'environnement produit quelle donnée, et quelle donnée est consommée par quel(s) élément(s).
Données et base de données
Les données gérées par le composant selon l'invention sont avantageusement identifiées de façon unique par un identifiant. Les données écrites dans la base de données peuvent contenir plusieurs paramètres encapsulés, notamment l'identifiant de la donnée, l'heure associée à cette donnée par la base de temps et le résultat d'un contrôle de redondance cyclique sur la donnée, créant ainsi une métadonnée. Le contrôle de redondance cyclique permet la validation de l'intégrité de la donnée lors de sa lecture. Si la donnée est altérée, le superviseur est configuré pour la lire dans la base de données, et pour envoyer une notification d'erreur au module de communication en même temps que ladite donnée altérée.
L'encapsulation d'une donnée est de préférence inséparable de celle-ci, et ne peut être retirée que lors d'un accès en lecture.
Les données peuvent être enregistrées dans la base de données dans un format dont un exemple non limitatif est illustré sur le tableau suivant, comportant l'identifiant (« identifîer_data »), l'heure associée à la donnée (« date »), la donnée elle-même (« data ») et le résultat du contrôle de redondance cyclique (« crc ») :
L'adresse de la donnée (« first_address ») est avantageusement fournie par la table de configuration.
Le composant communique avantageusement avec la base de données par le biais d'un double port d'accès (ou « dual port » en anglais), permettant d'avoir des accès indépendants à la base de données pour la donnée et son adresse, afin de gérer les accès concurrents à la base de données et d'éviter les pertes de données dans le cas de requêtes concurrentes.
Le composant peut comporter la base de données. Dans une variante, la base de données est déportée à un autre endroit de l'environnement, et est reliée au composant, notamment par le biais d'un double port d'accès et d'une interface dédiée afin que le composant puisse piloter la base de données. Les adresses des données dans la base de données sont avantageusement gérées uniquement par le superviseur, en fonction de la table de configuration, ce qui permet d'éviter les écrasements intempestifs de données.
L'accès à la base de données se fait avantageusement sous la forme d'une interface de type requête/donnée, c'est-à-dire que l'accès se fait par une requête de lecture ou d'écriture et par une trame contenant ou recevant la donnée selon le sens de la requête.
Les transferts vers et depuis la base de données peuvent être définis par un algorithme de type DTDMA (« dynamic time division médium access » en anglais) qui alloue un temps maximum de transfert pour chaque accès. Cet algorithme assure une bande passante mimmale entre le superviseur et la base de données. Contrairement à d'autres algorithmes connus, tout en respectant le déterminisme, il permet d'optimiser les débits ; par exemple si un module de communication est seul à vouloir accéder à la base de données, il peut utiliser la totalité de la bande passante.
Le stockage des données dans la base de données peut être géré selon différents modes d'empilage, déterminés par un paramètre de la table de configuration, par exemple le mode « premier entré, premier sorti » (ou FIFO, « first in first out » en anglais), ou « dernier entré, premier sorti » (ou LIFO, « last in, first out » en anglais).
Les caractéristiques de la base de données sont avantageusement choisies selon les performances désirées et le coût des technologies, afin de s'adapter à chaque environnement.
Le support physique de la base de données peut être une mémoire vive statique à double port (SRAM dual port, « static random access memory » en anglais), dans le cas où le composant comporte la base de données, ou, dans le cas où la base de données est externe au composant, dynamique (SDRAM, « Synchronous Dynamic Random Access Memory » en anglais), par exemple une mémoire DDR (« double data rate » en anglais).
La base de données peut avoir une mémoire de 32, 64 ou 128 bits, une capacité de 1 Mo ou plus, et une fréquence de 125, 200 ou 333 MHz ou plus.
Table de configuration
La table de configuration définit notamment les données contenues dans la base de données et leurs propriétés.
La table de configuration peut contenir par exemple au moins 2048 données de 64 bits chacune. L'identifiant de la donnée à gérer permet d'y accéder. La table de configuration peut être générée par le configurateur, à partir de la définition de l'environnement et des données par l'utilisateur. Pour ce faire, une interface graphique peut être utilisée pour définir graphiquement la topologie de l'environnement, ainsi que l'ensemble des données. Dans une variante, des fichiers XML (« langage de balisage extensible » ou « extensible markup language » en anglais) peuvent être utilisés.
La table de configuration peut comporter les informations de configuration suivantes :
- l'adresse de la donnée dans la base de données (« first_address »),
- la taille de la donnée à écrire ou lire dans la base de données (« data_size »),
- le nombre de données ayant le même identifiant, empilables dans la base de données (« data_number »),
- le mode de gestion de l'empilage dans la base de données (« stack jnode »),
- le pointeur (« riting_current__number ») sur la dernière donnée de taille « data_number » écrite dans la base de données, ce pointeur étant avantageusement mis à jour à chaque lecture ou écriture dans la base de données,
- le pointeur (« reading__current_number ») sur la dernière donnée de taille « dataj umber » lue dans la base de données, ce pointeur étant avantageusement mis à jour à chaque lecture ou écriture dans la base de données,
- un indicateur (« producer ») des ports d'accès pouvant produire la donnée à écrire dans la base de données, codé sur 8 bits avec un bit par port (bit égal à 0 : le port n'est pas associé à l'identifiant de la donnée, bit égal à 1 : le port est associé à l'identifiant de la donnée),
- un indicateur (« consumer ») des ports d'accès pouvant consommer la donnée lue dans la base de données, codé sur 8 bits avec un bit par port (bit égal à 0 : le port n'est pas associé à l'identifiant de la donnée, bit égal à 1 : le port est associé à l'identifiant de la donnée),
- un bit indiquant si la donnée à gérer doit être distribuée à un autre élément de l'environnement ou non (« remote consumer »),
- un bit indiquant si les modules consommateurs de la donnée doivent être prévenus de récriture de ladite donnée ou non (« consumption_enable »), et
- un bit indiquant si les modules producteurs de la donnée doivent être prévenus de la lecture de ladite donnée ou non (« consumption acknowledge »). Ces informations sont illustrées dans le tableau suivant :
Le composant peut comporter la table de configuration. Dans une variante, la table de configuration est déportée à un autre endroit de l'environnement, et est reliée au composant, notamment par le biais d'un port d'accès. La table de configuration peut être stockée sur une mémoire de type Flash ou SRAM ou SDRAM.
La table de configuration est de préférence une entité distincte de la base de données.
Le temps de réponse du composant à chaque requête provenant des modules de communication peut être calculé, par le biais d'un logiciel dédié par exemple, à partir des informations de la table de configuration, notamment à partir de la longueur des trames de données correspondant à la requête.
Superviseur
Le superviseur est avantageusement configuré pour fonctionner en temps réel. Il permet de faire le lien, en temps réel, entre la mémoire locale de l'environnement, qui stocke les données, et les événements provenant des différents modules de communication.
Le superviseur ne dépend de préférence pas du support physique de la base de données, et est configuré indépendamment de ce dernier.
Le superviseur reçoit de préférence les requêtes de l'environnement et permet de faire fonctionner le composant selon l'invention quel que soit le ou les systèmes d'exploitation utilisé par l'environnement et les bus de communication utilisés.
Le superviseur peut être relié à une application logicielle tierce en utilisant une interface de programmation (ou API, « application programming interface » en anglais), comportant un ensemble de commandes pour permettre au composant selon l'invention d'exécuter diverses instructions. Cet ensemble de commandes comporte notamment des commandes élémentaires d'écriture et de lecture des données, et des commandes gérant la configuration de l'environnement, les événements du composant selon l'invention, tels que le contrôle de ce dernier, par exemple l'accès aux informations sur son état et aux informations d'acquittements de commandes, et les services offerts par le composant, par exemple son démarrage et son arrêt après sa configuration, ou l'accès à l'heure système.
L'interface de programmation peut être située dans un processeur hôte auquel est relié le composant selon l'invention, notamment par un module de communication.
L'interface de programmation peut comporter entre 8 et 15 commandes, notamment 10 commandes. Cette interface est avantageusement suffisamment générique pour que l'implantation du superviseur puisse être réalisée pour tout type de système d'exploitation.
Le superviseur est de préférence entièrement paramétrable afin de s'adapter à l'hétérogénéité des modules qui lui sont connectés.
Le superviseur est avantageusement fonctionnellement invariant au sein d'un environnement ou d'un composant à un autre. La table de configuration est avantageusement configurée pour évoluer selon l'application désirée, ce qui permet l'invariance du superviseur. Le superviseur est en outre avantageusement indépendant du nombre de modules de communication présents dans le composant et de la nature de ces derniers. L'évolutivité du composant est ainsi possible en fonction des besoins de l'environnement.
Le superviseur est avantageusement configuré pour vérifier la validité d'une requête de lecture et/ou d'écriture d'une donnée par le biais de l'identifiant associé à ladite donnée. Le superviseur peut ainsi connaître, par le biais de la table de configuration, les propriétés de chaque donnée grâce à son identifiant. Le superviseur peut ainsi être configuré pour vérifier la taille de la donnée lors de chaque requête de lecture ou d'écriture.
Le superviseur peut être configuré, après l'écriture et/ou la lecture d'une donnée dans la base de données, et en fonction de la table de configuration, pour transmettre une notification au module de communication dont provient la requête de lecture et/ou d'écriture de ladite donnée, notamment une notification de succès ou d'erreur.
Le superviseur peut avoir accès à un registre de commandes, permettant de contrôler le composant via l'interface de programmation. Les commandes du registre de commandes gèrent notamment l'initialisation et l'arrêt du composant. Le superviseur peut avoir accès à un registre de contrôle (ou « monitoring » en anglais), contenant notamment des informations sur l'état du composant et des rapports d'erreur sur des requêtes précédentes. Cela permet la mise en œuvre de mécanismes de s reté de fonctionnement, permettant d'utiliser le composant dans des applications critiques soumises à des impératifs de certification.
Modules de communication
Chaque module de communication du composant selon l'invention comporte avantageusement, en outre, un étage d'interfaçage vers l'extérieur, avec un élément de l'environnement, et un étage de liaison entre cet étage d'interfaçage vers l'extérieur et l'étage d'interfaçage avec le superviseur, permettant la gestion et la transmission des requêtes de lecture et/ou d'écriture de données. Les étages d'interfaçage des modules de communication permettent le traitement de données ayant des formats différents car provenant de différents éléments d'un même environnement, par exemple le bus avionique et le radar d'un drone.
Les modules de communication peuvent être réutilisés d'un environnement à l'autre ou pour diverses applications. Une bibliothèque de modules peut ainsi être créée. Un module déjà existant peut également être adapté pour un autre but ou une autre application.
Les modules de communication peuvent être configurés pour transmettre les requêtes de lecture et/ou d'écriture de données au superviseur par le biais de ports d'accès. Ces ports d'accès sont avantageusement identiques quel que soit le module de communication auquel ils sont reliés, et peuvent être contrôlés par le superviseur.
Les requêtes de lecture et/ou d'écriture proviennent de préférence de sollicitations de l'environnement reçues par les modules de communication, notamment une sollicitation d'au moins une application logicielle exécutée sur un processeur de l'environnement, notamment un microprocesseur, et/ou d'une entrée/sortie physique de l'environnement, notamment une entrée/sortie audio et/ou vidéo, et/ou d'un réseau de l'environnement, notamment un CAN, un réseau TCP-IP, un réseau utilisant les normes ARTNC 429, AFDX, MIL STD 1553, ou FlexRay, ou le système Ethercat ou Powerlink.
Processeur Au moins l'un des modules de communication du composant selon l'invention peut être un module processeur, permettant notamment la liaison avec un processeur de l'environnement exécutant une application logicielle.
Ce module processeur peut transmettre au superviseur une requête et des données lors d'une requête d'écriture dans la base de données. H peut transmettre à l'environnement les données lors d'une lecture, et la notification de succès du superviseur le cas échéant.
Le module processeur peut être relié à au moins un bus de communication du processeur, ce bus étant notamment un bus utilisant le standard PCI (« peripheral component interconnect ») ou PCI Express, ou un bus VME (« VERSA module eurocard »).
Le module processeur comporte avantageusement un étage d'interfaçage avec ledit bus de communication, permettant de réaliser la connexion physique avec le bus et de recevoir les requêtes, et un étage de liaison entre cet étage d'interfaçage et l'étage d'interfaçage avec le superviseur, permettant la gestion des requêtes reçues et leur transmission au superviseur via l'étage d'interfaçage avec le superviseur, afin de préparer les trames de données pour leur transfert vers et depuis la base de données.
Entrée/sortie
Au moins l'un des modules de communication peut être un module entrée/sortie, permettant notamment d'établir une liaison avec une entrée/sortie physique de l'environnement. Les entrées/sorties physiques de l'environnement peuvent être du type analogique, discret, RS232 ou PT100.
Le module entrée/sortie est avantageusement autonome, c'est-à-dire qu'une fois paramétré, il génère les requêtes et les transmet au superviseur sans qu'aucun processeur n'effectue un quelconque traitement.
Le module entrée/sortie peut comporter un étage d'interfaçage avec au moins une entrée/sortie physique de l'environnement, permettant de réaliser l'accès physique à cette entrée/sortie et de transmettre ou recevoir les données de l'étage d'interfaçage avec le superviseur. Cet étage d'interfaçage avec au moins une entrée/sortie physique de l'environnement peut être configuré pour accéder à un convertisseur analogique/numérique connecté à l' entrée/sortie physique. Le module entrée/sortie peut comporter en outre un étage de liaison entre cet étage d'interfaçage et l'étage d'interfaçage avec le superviseur, permettant de générer les requêtes dans le format adéquat à partir du paramétrage du module et de les transmettre à l'étage d'interfaçage avec le superviseur.
Réseau
Au moins un des modules de communication peut être un module réseau, permettant notamment l'échange de données entre le composant et l'environnement par un ou plusieurs réseaux.
Le module réseau peut collaborer avec tout type de réseau, par exemple un CAN, un réseau TCP-IP (« transmission control protocol » et « internet protocol »), par exemple pour des flux vidéo, un réseau utilisant les normes aéronautiques ARINC 429, AFDX, ou MIL STD 1553, la norme FlexRay, ou le système Ethercat {« Ethernet for control automaîion technology »), et peut correspondre aux différents protocoles de communication standardisés.
Le module réseau permet de mettre en œuvre une passerelle entre le réseau de l'environnement et le composant selon l'invention, tout en gérant tous les problèmes de communication, tels que la segmentation des données, le respect des protocoles, le décodage ou la mise au format adéquat des données.
Le module réseau peut être dépourvu de processeur, étant purement matériel, dans le cas notamment où le protocole du réseau de l'environnement permet de définir aisément une bijection avec un identifiant d'une donnée. Dans une variante, le module réseau peut utiliser un processeur, afin de gérer le protocole de communication et/ou la mise au format des données et/ou la bijection avec l'identifiant des données. Le code du processeur peut être configuré pour être modifié selon les applications désirées.
Le module réseau peut comporter un étage d'interfaçage avec au moins un réseau de l'environnement, permettant de réaliser la connexion physique au réseau, et un étage de liaison entre cet étage d'interfaçage et l'étage d'interfaçage avec le superviseur, permettant d'interpréter les protocoles de communication du réseau et de transmettre les requêtes à l'étage d'interfaçage avec le superviseur.
L'étage de liaison est avantageusement configuré pour convertir les données à traiter dans un format adéquat pour le réseau et pour récupérer, le cas échéant, le label ou les labels du réseau correspondant à l'identifiant des données, grâce à une table de correspondance entre identifiants et labels du réseau, notamment initialisée à la configuration du module.
Le module réseau d'un composant peut permettre de transmettre des données au module réseau d'un autre composant selon l'invention au sein d'un même environnement. Ceci permet de grouper plusieurs composants selon l'invention afin de former un ensemble de composants.
Le composant selon l'invention peut comporter plusieurs modules réseaux, permettant notamment de faire le lien entre différents réseaux de l'environnement dans lequel évolue le composant et de fournir des temps de traitement optimisés et déterministes.
Le composant peut comporter entre 0 et 12 modules réseau, mieux entre 2 et 8 modules réseau.
Distribution
Au moins un des modules de communication peut être un module de distribution, permettant notamment de connecter entre eux des bases de données de différents composants selon l'invention.
Ce module de distribution joue avantageusement le rôle d'un bus de distribution des données issues de la base de données.
Le module de distribution peut comporter un étage d'interfaçage avec au moins une connexion réseau de l'environnement. Cet étage d'interfaçage permet de réaliser la connexion physique entre les différents composants. Le module de distribution peut comporter en outre un étage de liaison entre cet étage d'interfaçage et l'étage d'interfaçage avec le superviseur, permettant la gestion du protocole de communication du concentrateur et la transmission des requêtes à l'étage d'interfaçage avec le superviseur. Les modules de distribution sont connectés par l'intermédiaire d'un concentrateur ou « hub » en anglais.
Le concentrateur reliant entre eux les modules de distribution de différents composants selon l'invention peut utiliser un support physique Ethernet, par exemple un support en cuivre, notamment redondé, c'est-à-dire que les éléments du support sont systématiquement doublés. Le module de distribution est ainsi avantageusement configuré pour transmettre et recevoir les données sur les deux branches du support en parallèle. Cela permet de sécuriser le transfert des données. Si l'une des deux branches ne répond plus, la donnée continue avantageusement à être reçue ou transmise. L'état du concentrateur peut être connu à tout moment par le composant par le biais du registre de contrôle, ce qui permet d'agir rapidement en cas de panne.
Le module de distribution peut distribuer les données à 1 Gb/s, ou à 10 Gb/s, ou par courant porteur en ligne.
Le composant selon l'invention peut comporter entre 0 et 12 modules de communication, mieux entre 2 et 8 modules de communication.
Toutes les combinaisons de modules de communication sont possibles, ce qui permet de créer une multitude de composants selon l'invention différents.
Sûreté de fonctionnement
Selon les besoins de l'environnement extérieur, des mécanismes intégrés au composant selon l'invention peuvent être mis en place afin de détecter un composant ne respectant pas les règles de communication dans l'environnement, par exemple lire en parallèle du composant les informations reçues et transmises, afin de vérifier son bon fonctionnement, en remontant notamment des informations à l'interface de programmation.
Procédé de fonctionnement du composant
L'invention a ainsi encore pour objet un procédé de fonctionnement d'un composant électronique selon l'invention, comportant au moins deux modules de communication et un superviseur, chaque module de communication comportant un étage d'interfaçage avec le superviseur, procédé dans lequel :
- l'un des modules de communication du composant transmet une requête de lecture et/ou d'écriture de données au superviseur du composant, par le biais de l'étage d'interfaçage avec le superviseur, et
- le superviseur, en fonction d'une table de configuration, gère de façon déterministe l'accès à une base de données, afin d'y lire et/ou d'y écrire lesdites données.
La table de configuration peut être établie en fonction de l'environnement et chargée lors de l'initialisation du composant, en utilisant ou non l'interface de programmation, par exemple par le biais d'un module processeur ou de distribution. Dans une variante ou en combinaison, elle peut être modifiée ultérieurement, selon les évolutions de l'environnement et les applications désirées.
Le superviseur, avant d'écrire ou de lire une donnée dans la base de données, vérifie avantageusement la validité de la requête de lecture et/ou d'écriture de ladite donnée provenant d'un module de communication, notamment par le biais d'un identifiant correspondant aux paramètres de la table de configuration, tel que décrit précédemment.
Procédé de fabrication du composant
L'invention a encore pour objet un procédé de fabrication d'un composant électronique à modules de communication supervisés selon l'invention, comportant au moins deux modules de communication et un superviseur dépourvu de microprocesseur, procédé dans lequel un ou plusieurs composants logiques programmables, notamment de type FPGA, CPLD ou ASIC, sont programmés de telle sorte que les modules de communication fonctionnent en parallèle et que le superviseur gère de façon déterministe l'accès à une base de données, en fonction d'une table de configuration et de requêtes de lecture et/ou d'écriture dans la base de données, provenant des modules de communication.
Utilisation du composant
L'invention a encore pour objet l'utilisation d'un composant électronique à modules de communication supervisés selon l'invention dans un avion, notamment pour le contrôle d'un radar ou d'un altimètre, ou dans un système de contrôle industriel de commandes, par exemple pour la remontée d'informations issues de capteurs, notamment de température ou de vitesse de rotation, vers les applications de supervision.
Ensemble de composants
L'invention a encore pour objet un ensemble comportant plusieurs composants électroniques selon l'invention, lesdits composants comportant chacun au moins un module de distribution et étant reliés entre eux par leur module de distribution.
Chaque composant de l'ensemble selon l'invention est avantageusement configuré pour émettre une donnée, après une requête de lecture, en direction d'un autre composant de l'ensemble, configuré pour écrire cette donnée dans la base de données dans le cas d'une requête d'écriture. Le premier composant peut être appelé composant émetteur, le second composant récepteur.
Chaque superviseur de chacun des composants peut être relié à une interface de programmation. Dans une variante, un seul superviseur ou seulement quelques-uns peuvent être reliés à une interface de programmation.
Une base de temps est avantageusement partagée entre tous les composants. Le partage du temps est avantageusement dynamique, en fonction des besoins de chaque composant. Un des composants de l'ensemble, appelé « composant gérant », est avantageusement configuré pour contrôler la synchronisation des dates de tous les composants par le biais de la base de temps partagée entre tous les composants. Cela pennet la mise en place d'une heure système distribuée. Le composant gérant peut être configuré pour envoyer périodiquement son heure système sur le réseau de distribution, chaque composant de l'ensemble récupérant cette heure et compensant la valeur reçue avec la latence de la distribution.
Les différentes requêtes d'écriture ou de lecture reçues par les différents composants peuvent ainsi être ordonnées suivant un ordre de priorité défini dans la table de configuration de chaque composant.
Les composants de l'ensemble selon l'invention prennent avantageusement tour à tour la main dans l'ensemble pour répondre aux requêtes leur étant adressées, de telle sorte que, à un instant donné, un seul composant soit actif et les autres composants soient uniquement à l'écoute. Ceci permet d'éviter toute collision d'échange de données.
Le composant gérant peut en outre être configuré pour lister les superviseurs connectés de l'ensemble à un instant donné.
Tous les composants de l'ensemble peuvent indifféremment être élus gérant. Si le gérant vient à être déconnecté, à cause par exemple d'une panne du composant, de l'environnement ou du réseau, par exemple à cause de la rupture physique totale du lien entre le concentrateur et ce composant, un nouveau composant peut être élu gérant. Cette réélection est avantageusement effectuée dans une durée inférieure ou égale à 150 μβ, par exemple pour des modules de distribution utilisant un support physique Ethernet. L'interruption de service est ainsi très limitée, et n'impacte que très faiblement le fonctionnement de l'environnement.
Un composant déconnecté de l'ensemble n'est avantageusement plus accessible pour les autres composants, l'ensemble restant néanmoins opérationnel. Dans le cas où ce composant est relié à une interface de programmation, il reste avantageusement actif tout en étant isolé du reste de l'ensemble. Dans le cas où c'est l'unique composant relié à une interface de programmation, le reste de l'ensemble n'est avantageusement plus relié ni contrôlé par une interface de programmation.
Le superviseur de chaque composant est de préférence configuré pour gérer l'accès à une base de données distincte. Les données contenues dans la base de données associée à un composant peuvent être configurées pour être accessibles par tous les composants, notamment par le biais d'informations issues de la table de configuration. Cela permet de distribuer efficacement les données entre les différents composants de l'ensemble selon l'invention. Cela permet également de s'assurer que le transfert d'une donnée a été valablement effectué, en vérifiant que l'encapsulation d'une donnée reçue par un composant récepteur correspond à l'encapsulation au niveau de l'émetteur, notamment le résultat du contrôle de redondance cyclique.
Le concentrateur peut être agencé pour détecter le dysfonctionnement d'un des composants de l'ensemble, par exemple un composant envoyant de façon inopinée ou erronée des données. Ces données pourront être rejetées par les autres composants.
La ou les interfaces de programmation peuvent être configurées pour détecter une panne ou un dysfonctionnement du concentrateur, par exemple un envoi continu de données aux composants en l'absence de requête, ou un envoi erroné. Les composants pourront alors être laissés actifs mais avec un fonctionnement isolé, ou pourront être désactivés.
Un transfert déterministe des données entre composants au sein d'un même environnement est ainsi assuré grâce aux modules de distribution, permettant l'indépendance entre le lieu d'émission et le lieu de réception d'une donnée, sans impact sur les applications de l'environnement extérieur, Le processus de distribution est ainsi géré de façon autonome.
L'ensemble de composants selon l'invention peut être assimilé à un espace de communication fonctionnant comme un macro superviseur unique gérant une base de données distribuée.
Procédé de fonctionnement de l'ensemble
L'invention a encore pour objet un procédé de fonctionnement d'un ensemble comportant plusieurs composants selon l'invention, lesdits composants comportant chacun au moins un module de distribution et étant reliés entre eux par leur module de distribution, procédé dans lequel :
- suite à une requête d'écriture d'une donnée d'un des modules de communication d'un composant, et en fonction de la table de configuration, le module de distribution du composant concerné transmet la donnée à tous les modules de communication des composants, et - les composants associés à l'identifiant de ladite donnée la reçoivent par le biais d'une requête d'écriture provenant de leur module de distribution.
Les superviseurs peuvent envoyer une notification aux autres modules de communication du composant auquel ils appartiennent pour prévenir de la disponibilité de ladite donnée, sur demande exprimée par le biais d'un paramètre de la table de configuration.
Les tables de configuration de chaque composant peuvent être chargées via un seul composant d'entrée.
L'invention pourra être mieux comprise à la lecture de la description détaillée qui va suivre, d'exemples de mise en œuvre non limitatifs de celle-ci, et à l'examen du dessin annexé, sur lequel :
- la figure 1 représente un composant électronique à modules de communication supervisés selon l'invention,
- la figure 2 représente la structure d'un module de communication d'un composant selon l'invention,
- la figure 3 illustre le fonctionnement d'un module processeur d'un composant selon l'invention,
- la figure 4 illustre le fonctionnement d'un module entrée/sortie d'un composant selon l'invention,
- la figure 5 illustre le fonctionnement d'un module réseau d'un composant selon l'invention,
- la figure 6 représente une variante de réalisation d'un composant selon l'invention,
- les figures 7A à 7C illustrent différentes étapes de l'écriture d'une donnée dans la base de données,
- les figures 8A à 8C illustrent différentes étapes de la lecture d'une donnée dans la base de données,
la figure 9 représente un ensemble de composants selon l'invention,
- la figure 10 représente une variante de réalisation d'un ensemble de composants selon l'invention,
- les figures 1 1 A à 1 1G illustrent différentes étapes de distribution d'une donnée dans un ensemble de composants selon l'invention, et - les figures 12 et 13 représentent des variantes d'ensemble comportant plusieurs composants selon l'invention.
Un composant électronique 1 à modules de communication supervisés selon l'invention, évoluant dans un environnement informatique extérieur, est représenté à la figure 1. Ce composant 1 comporte un superviseur 2 dépourvu de microprocesseur et trois modules de communication 3, 4, 5 fonctionnant en parallèle. Le composant 1 selon l'invention est avantageusement réalisé à l'aide d'un ou plusieurs composants logiques programmables, par exemple des composants FPGA.
Le superviseur 2 est configuré pour gérer de façon déterministe l'accès à une base de données 6, en fonction d'une table de configuration 7, telles que décrites précédemment, et de requêtes de lecture et/ou d'écriture dans la base de données 6, provenant des modules de communication 3, 4 et 5.
Les modules de communication 3, 4 et 5 sont configurés pour transmettre les requêtes de lecture et/ou d'écriture de données au superviseur 2 par le biais de ports d'accès 9 internes au composant 1.
Le composant 1 comporte avantageusement un séquenceur, non représenté, piloté par le superviseur et permettant d'ordonner les requêtes provenant des modules de communication 3, 4 et 5 fonctionnant en parallèle.
Comme représenté à la figure 1, le composant 1 comporte une base de temps 8 permettant d'adjoindre à une donnée son heure de réception par le superviseur 2 lors d'une requête d'écriture dans la base de données 6, ladite heure de réception étant notamment lue avec la donnée lors d'une requête de lecture.
Le superviseur 2 est avantageusement relié à une interface de programmation 11, notamment par le biais d'un module de communication, comportant un ensemble de commandes pour permettre au composant 1 selon l'invention d'exécuter diverses instructions. Cet ensemble de commandes comporte notamment des commandes élémentaires d'écriture et de lecture des données.
Comme représenté à la figure 2, chaque module de communication 3, 4, et 5 comporte un étage d'interfaçage 20 avec le superviseur 2 permettant à ce dernier d'utiliser un format de données commun à l'ensemble des données. Chaque module de communication 3, 4, et 5 comporte en outre un étage d'interfaçage 22 vers un élément de l'environnement extérieur du composant 1, et un étage de liaison 21 entre cet étage d'interfaçage 22 et l'étage d'interfaçage 21 avec le superviseur 2, permettant la gestion et la transmission des requêtes de lecture et/ou d'écriture 16 et des données 17.
Les requêtes de lecture et/ou d'écriture proviennent de sollicitations de Γ environnement extérieur reçues par les modules de communication 3, 4 et 5.
Dans l'exemple de la figure 1, le composant 1 comporte un module processeur
3, recevant des sollicitations d'une application logicielle exécutée sur un microprocesseur 13 de l'environnement extérieur, un module entrée/sortie 4, permettant la liaison avec une entrée/sortie physique 14 de l'environnement, et un module réseau 5, permettant l'échange de données entre le composant 1 et P environnement par un réseau 15.
Le fonctionnement du module processeur 3 est représenté en détails à la figure
3. Le microprocesseur 13 utilise dans l'exemple considéré un bus de communication 13a de type PCI 32 bits, et est par exemple inséré dans un ordinateur fonctionnant avec le système d'exploitation Linux. Ce module processeur 3 est configuré pour transmettre au superviseur 2 une requête 16 et des données 17 lors d'une requête d'écriture dans la base de données 6. H peut transmettre à l'environnement les données 17 lors d'une requête de lecture.
Le module processeur comporte, dans l'exemple décrit, un étage d'interfaçage 3c avec le bus de communication 13a, permettant de réaliser la connexion physique avec le bus et de recevoir les requêtes d'écriture et/ou de lecture 16, et un étage de liaison 3b entre cet étage d'interfaçage 3c et l'étage d'interfaçage 3a avec le superviseur 2, permettant la gestion des requêtes reçues et leur transmission au superviseur 2 via l'étage d'interfaçage 3a, afin de préparer les trames de données 17 pour leur transfert vers et depuis la base de données 6.
Le fonctionnement du module entrée/sortie 4 est représenté en détails à la figure 4. Dans cet exemple, l'entrée/sortie physique 14 de l'environnement est analogique, étant par exemple une entrée/sortie valeur de température. Dans l'exemple décrit, l'étage d'interfaçage 4a avec le superviseur 2 du module entrée/sortie 4 est agencé pour transmettre les requêtes 16 notifiant le module 4 de générer une sortie de données 17 par un flux 24 ou d'échantillonner une entrée de données.
Dans le cas d'une requête de lecture 36, la donnée est récupérée par l'étage de liaison 4b entre l'étage d'interfaçage 4a et l'étage d'interfaçage 4c vers l'entrée/sortie de l'environnement 14, l'étage de liaison 4b convertissant la donnée 17 dans un format adéquat. La donnée 17 est ensuite fournie à l'étage d'interfaçage 4c, qui effectue l'accès physique à un convertisseur analogique/numérique 25 pour transmettre la donnée 17 dans un format analogique compréhensible par Γ entrée/sortie physique 14 de Γ environnement, par le biais d'un découpleur/connecteur 26.
Dans le cas d'une requête d'écriture 16, cette requête et sa donnée 17 associée sont récupérées par l'étage de liaison 4b entre l'étage d'interfaçage 4a et l'étage d'interfaçage 4c vers rentrée/sortie de l'environnement 14 qui échantillonne la donnée 17 contenue dans le convertisseur analogique/numérique 25 par le biais de l'étage d'interfaçage 4c. La donnée est ensuite mise au format adéquat et la requête d'écriture dans la base de données 6 est générée et transmise au superviseur 2 par l'étage d'interfaçage 4a.
Le fonctionnement du module réseau 5 est représenté en détails à la figure 5. Dans cet exemple, le réseau 15 de l'environnement est un réseau utilisant la norme Arinc 429. Le module réseau 5 se connecte d'un côté au superviseur 2 du composant 1 et de l'autre au bus 15 de type Arinc 429.
Dans l'exemple considéré, et dans le cas d'une émission de données en provenance du composant 1, lors d'une requête de lecture 16, l'étage d'interfaçage 5a avec le superviseur 2 transmet l'événement 27 notifiant le module réseau 5 qu'une donnée est prête à être envoyée vers le bus 15. L'événement 27 et la donnée 17 sont récupérés par l'étage de liaison 5b entre l'étage d'interfaçage 5a et l'étage d'interfaçage 5c vers le réseau. Cet étage de liaison 5b est configuré pour convertir la donnée 17 dans un format adéquat pour le réseau 15 et, grâce à une table de correspondance initialisée à la configuration, pour récupérer le label ou les labels du réseau 15 correspondant à l'identifiant associé à la donnée 17. La trame de données Arinc ainsi formée est ensuite avantageusement fournie à l'étage d'interfaçage 5c vers le réseau 15, qui effectue l'accès physique au bus utilisé par le réseau 15 en respectant le protocole de communication.
Dans le cas d'une réception de données par le composant 1 en provenance de l'environnement, l'étage d'interfaçage 5c vers le réseau 15 récupère la trame de données Arinc et la fournit à l'étage de liaison 5b entre les étages d'interfaçage 5a et 5c. L'étage de liaison 5b extrait la donnée utile de la trame et, grâce à la table de correspondance entre les identifiants des données et les labels du réseau, effectue une requête d'écriture 16 de l'identifiant correspondant. L'étage d'interfaçage 5a avec le superviseur 2 transmet cette requête au superviseur 2 qui permet l'écriture de la donnée 17 dans la base de données 6. Dans la variante représentée à la figure 6, le composant 1 selon l'invention comporte deux modules réseau 50 et 51 , permettant îa mise en place d'une passerelle entre deux réseaux 54 et 55 afin d'échanger des données dans l'environnement. Dans l'exemple considéré, le réseau 54 est un réseau utilisant la norme AFDX et le réseau 55 est un réseau de type TCP/IP à 100 Mbps.
Dans l'exemple de la figure 6, le superviseur 2 s'active automatiquement à la mise sous tension du composant 1. Le superviseur 2 a également accès, dans cet exemple, à un registre de contrôle 32, contenant notamment des informations sur l'état du composant 1 et des rapports d'erreur sur des requêtes précédentes.
Dans l'exemple considéré, le composant 1 comporte la base de données 6 et la table de configuration 7. Dans la variante de la figure 1, la base de données 6 et la table de configuration 7 sont déportées à un autre endroit de l'environnement, et sont reliées au composant 1 par le biais d'interfaces dédiées.
L'écriture d'une donnée 17 dans la base de données 6 est décrite en référence aux figures 7A à 7C.
Comme représenté à la figure 7A, le superviseur 2 reçoit une requête d'écriture 33 en provenance d'un module de communication, non représenté, qui a au préalable préparé la donnée à écrire. Le superviseur 2 est configuré pour vérifier îa validité de la requête par le biais de l'identifiant associé à la donnée 17, en fonction de la table de configuration 7, non représentée.
Dans l'exemple décrit, la requête est valide et le superviseur 2 notifie le module dont provient la donnée 17 que l'accès est autorisé par une notification 35, comme représenté à la figure 7B. Le module effectue alors le transfert de la donnée 17 vers la base de données 6. Au cours de ce transfert, la donnée 17 est encapsulée, comme décrit précédemment.
Comme représenté à la figure 7C, la donnée encapsulée 17a est écrite dans la base de données 6. Le superviseur 2 notifie au registre de contrôle d'erreurs 32 une éventuelle erreur de transfert par une notification 36.
La lecture d'une donnée 17 dans la base de données 6 est décrite en référence aux figures 8A à 8C.
Comme représenté à la figure 8A, lorsque le superviseur 2 reçoit une requête de lecture 34 provenant d'un module de communication, non représenté, il vérifie la validité de la requête, comme dans le cas d'une requête d'écriture, en fonction de la table de configuration 7, non représentée.
Dans l'exemple décrit, la requête est valide et le superviseur 2 notifie le module dont provient la requête 34 que l'accès est autorisé par une notification 35, comme représenté à la figure 8B. Le superviseur effectue également le transfert de la donnée 17 vers le module de communication, en vérifiant l'intégrité de la donnée.
En fin de transfert, comme représenté à la figure 8C, le superviseur peut envoyer, sur demande exprimée par le biais d'un paramètre de la table de configuration, une notification 36 de statut au module dont provient la requête, en fonction de la table de configuration 7, afin de lui notifier la fin du transfert ou une erreur potentielle lors de celui- ci. La donnée 17 est alors prête à être utilisée par le module de communication.
Comme représenté à la figure 9, deux composants 1 et 60 selon l'invention peuvent être groupés pour former un ensemble 100 de composants. Les composants 1 et 60 comportent chacun, dans l'exemple décrit, un module réseau 5 et 65, reliés par le biais d'un réseau 15 de Γ environnement extérieur utilisant la norme AFDX.
Le composant 1 comporte également un module processeur 3 relié par un bus de communication 13a à un processeur 13 de l'environnement, par exemple un ordinateur fonctionnant sous le système d'exploitation Windows. Le composant 60 comporte en outre un module entrée/sortie 64 comportant deux voies d'entrée et deux voies de sortie vers des entrées/sorties physiques 14 de Γ environnement.
Après une requête d'écriture provenant du module processeur 3 du composant 1, une donnée peut être écrite dans la base de données 6 par le superviseur 2 du composant 1. En fonction de la table de configuration 7, le superviseur 2 envoie une notification signalant l'écriture de la donnée au module réseau 5 du composant 1, qui est configuré pour récupérer la donnée et la transmettre sur le réseau 15.
Le module réseau 65 du second composant 60 récupère la donnée, dans l'exemple décrit, et demande au superviseur 62 de l'écrire dans la base de données 66 associée au composant 60. Le superviseur 62 envoie une notification au module entrée/sortie 64 qui peut récupérer la donnée et la transformer pour la transmettre sur une sortie 14 de l'environnement, comme décrit précédemment.
Dans la variante représentée à la figure 10, les trois composants 1, 60 et 70 selon l'invention comportent chacun un module de distribution 46, 47, 48. Les modules de distribution 46, 47, 48 comportent, dans l'exemple considéré, un étage d'interfaçage avec une connexion réseau 115 de l'environnement extérieur, relié à un concentrateur. Les modules de distribution 46, 47, 48 comportent en outre un étage d'interfaçage avec les superviseurs respectifs 2, 62 et 72 des composants 1, 60 et 70, et un étage de liaison entre ces deux étages d'interfaçage, permettant la gestion du protocole de communication et la transmission des requêtes à l'étage d'interfaçage avec les superviseurs 2, 62 et 72.
Comme représenté à la figure 10, les trois composants 1, 60 et 70 sont reliés par leur module de distribution 46, 47, 48 afin de former un ensemble 110 de composants selon l'invention. L'étage d'interfaçage des modules avec la connexion réseau 115 de l 'environnement permet de réaliser la connexion physique entre les différents composants.
Le concentrateur 115 reliant entre eux les modules de distribution 46, 47, 48 des composants 1 , 60 et 70 utilise, dans l'exemple décrit, un support physique Ethernet redondé.
Dans l'exemple considéré, le composant 1 comporte en outre un module entrée/sortie 4. Le composant 60 comporte un module processeur 63, un module entrée/sortie 64 et un module réseau 65. Le composant 70 comporte un module processeur 73 et un module réseau 75.
Un des composants de l'ensemble 110, le composant 60 dans l'exemple illustré, est avantageusement configuré pour contrôler la synchronisation des dates de tous les composants par le biais d'une base de temps 68 partagée entre tous les composants. Les données contenues dans la base de données associée à un composant de l'ensemble 110 sont avantageusement configurées pour être accessibles par tous les composants, notamment par le biais de paramètres contenus dans la table de configuration 7.
Chaque composant 1 , 60, 70 de l'ensemble 110 est avantageusement configuré pour émettre une donnée, après une requête d'écriture, en direction d'un autre composant de l'ensemble, configuré pour écrire cette donnée dans la base de données. Dans l'exemple décrit, le composant 70 reçoit une donnée provenant de son module processeur 73, et la redistribue au module processeur 63 du composant 60, qui va l'utiliser pour l'application à laquelle il est relié, et au module entrée/sortie 4 du composant 1 , qui va la rediriger vers une sortie physique de l'environnement. Les différentes requêtes d'écriture ou de lecture reçues par les différents composants 1 , 60, 70 peuvent être ordonnées, en fonction de leur ordre d'arrivée et suivant un ordre de priorité défini dans la table de configuration de chaque composant. Les composants 1, 60, 70 de l'ensemble 110 peuvent ainsi prendre tour à tour la main dans l 'ensemble pour répondre aux requêtes leur étant adressées.
Un exemple de distribution d'une donnée 17 dans un ensemble 110 comportant deux composants 1 et 60 selon l'invention est illustré aux figures 1 1 A à 11G.
Après qu'une donnée encapsulée 17a a été écrite dans la base de données 6 associée au composant 1 de l'ensemble 110, comme décrit précédemment en référence aux figures 7A à 7C, le superviseur 2 du composant 1 envoie une notification 37, si demandée par le biais d'un paramètre dédié de la table de configuration 7, aux modules de communication 3, 4 et 46 du composant 1 pour les prévenir qu'une donnée 17 a été écrite dans la base de données 6, comme représenté à la figure 11 A. Dans l'exemple décrit, le composant 1 comporte, en outre du module de distribution 46, un module processeur 3 et un module entrée/sortie 4.
Le module de distribution 46 étant configuré, dans l'exemple décrit, pour distribuer la donnée 17 dès son écriture, le superviseur 2 envoie une requête d'écriture 34 au composant consommateur via le lien de distribution 46, comme représenté à la figure 11B. Dans une étape représentée à la figure 11C, la donnée encapsulée 17a est transférée de la base de données 6 au module de distribution 46,
Comme représenté à la figure 1 1D, le module de distribution 46 du composant 1 envoie la donnée encapsulée 17a sur le concentrateur 1 15 vers le module de distribution 47 de l'autre composant 60 de l'ensemble 110, Dans l'exemple décrit, le superviseur 62 du composant 60 étant apte à recevoir la donnée 17 selon son identifiant, le module de distribution 47 du composant 60 envoie ainsi une requête d'écriture 33 de la donnée 17 au superviseur 62, comme représenté à la figure 1 1E.
La donnée encapsulée 17a est écrite dans la base de données 66 associée au composant 60 dans une étape illustrée à la figure 1 1F. Le superviseur 62 envoie une notification 36 de statut au module de distribution 46, en fonction de la table de configuration 67 associée au composant 60, non représentée, afin de lui notifier la fin de l'écriture de la donnée 17 dans la base de données 66 ou une erreur potentielle lors de celle-ci. Le superviseur 62 du composant 60 est avantageusement configuré pour envoyer une notification 37, si demandé par le biais d'un paramètre de la table de configuration 7, aux autres modules de communication du composant 60, un module processeur 63 et un module entrée/sortie 64 dans l'exemple décrit, pour les prévenir qu'une donnée 17 a été écrite dans la base de données 6 et est ainsi disponible, comme représenté à la figure 11 G.
Dans la variante d'ensemble de composants selon l'invention représentée à la figure 12, l'ensemble 120 comporte trois composants 1 , 60 et 70, reliés entre eux par leur module de distribution 46, 47, et 48, tous trois connectés au concentrateur 115 de l'environnement extérieur, un support physique Ethernet redondé dans l'exemple considéré.
Le composant 1 comporte en outre un module processeur 3 relié par un bus de communication 13a à un processeur 13 de l'environnement, qui est un ordinateur fonctionnant sous le système d'exploitation VxWorks 5.5 dans l'exemple décrit. Le composant 60 comporte un module processeur 63 relié par un bus de communication 69a à un processeur 69 de l'environnement, qui est un ordinateur fonctionnant sous le système d'exploitation Linux dans l'exemple décrit. Le composant 70 comporte un module processeur 73 relié par un bus de communication 79a à un processeur 79 de l'environnement, qui est un ordinateur fonctionnant sous le système d'exploitation Windows XP dans l'exemple décrit.
Chaque superviseur 2, 62, 72 de chaque composant 1, 60, 70 constituant l'ensemble 120 est avantageusement interfacé avec le processeur 13, 69, 79 correspondant, par le biais des modules processeur 3, 63, 73 reliés au concentrateur 1 15 grâce aux modules de distribution 46, 47, 48.
Cette variante permet de disposer d'une architecture distribuée d'ordinateurs, appelée « cluster » en anglais, dans laquelle chaque application hébergée par chaque processeur 13, 69, 79 accède aisément à des données locales, contenues dans les bases de données 6, 66 ou 76 des composants 1, 60, 70, quel que soit le système d'exploitation du processeur concerné et son emplacement dans l'environnement.
Dans la variante d'ensemble de composants selon l'invention représentée à la figure 13, l'ensemble 130 comporte deux composants 1 et 60, reliés entre eux par leur module de distribution 46, 47, tous deux connectés au concentrateur 115 de l'environnement extérieur, un support physique Ethernet redondé dans l'exemple considéré.
Le composant 1 comporte en outre, dans l'exemple décrit, un module processeur 3 relié par un bus de communication 13a à un processeur 13 de l'environnement, qui est un ordinateur fonctionnant sous le système d'exploitation Vx Works 5.5. Dans l'exemple considéré, le composant 60 comporte un module entrée/sortie 64 relié à des entrées et sorties physiques discrètes 14 de l'environnement, et un module réseau 65, relié à un réseau 15 de l'environnement, utilisant la norme Arinc 429.
Le processeur 13 peut ainsi gérer les entrées/sorties physiques 14 et le réseau 15 à distance, par le biais des modules de distribution 46, 47 et de lecture et d'écriture de données dans les bases de données 6, 66, comme décrit précédemment.
L'invention n'est pas limitée aux exemples illustrés. Les particularités des exemples illustrés peuvent se combiner au sein de variantes non illustrées.
Toutes les combinaisons de modules de communication 3, 4, 5 sont possibles. Par exemple, le composant 1 selon l'invention peut comporter plusieurs modules entrée/sortie et plusieurs modules réseau, ce qui permet de disposer d'un rack d'entrées/sorties différentes, pouvant transférer leurs données dans l'environnement extérieur par le biais de différents réseaux.
Le composant 1 selon l'invention peut être présenté avec un ensemble de certifications pour répondre aux exigences de certification des applications critiques, telles que 1 ' aéronautique ou 1 a défense .
L'expression « comportant un » est synonyme de « comprenant au moins un », sauf lorsque le contraire est spécifié.

Claims

REVENDICATIONS
1. Composant électronique (1) à modules de communication supervisés comportant :
- au moins deux modules de communication (3, 4, 5, 46) fonctionnant en parallèle, et
- un superviseur (2) dépourvu de microprocesseur,
chaque module de communication (3, 4, 5, 46) comportant un étage d'interfaçage (20) avec le superviseur (2) permettant à ce dernier d'utiliser un fomiat de données commun à l'ensemble des modules (3, 4, 5, 46),
le superviseur (2) étant configuré pour gérer de façon déterministe l'accès à une base de données (6), en fonction d'une table de configuration (7) et de requêtes de lecture et/ou d'écriture (33, 34) dans la base de données (6), provenant des modules de communication (3, 4, 5, 46).
2. Composant selon la revendication 1 , étant réalisé à l'aide d'un ou plusieurs composants logiques programmables, de préférence reprogrammables.
3. Composant selon la revendication 1 ou 2, étant réalisé à l'aide d'un ou plusieurs composants logiques programmables de type FPGA ou CPLD ou ASIC.
4. Composant selon l'une quelconque des revendications 1 à 3, dans lequel chaque module de communication (3, 4, 5, 46) comporte un étage d'interfaçage (22) vers un élément de l'environnement extérieur du composant (1) ou avec le module de communication (46, 47, 48) d'un autre composant (60, 70) à modules de communication supervisés, et un étage de liaison (21) entre cet étage d'interfaçage (22) et l'étage d'interfaçage (20) avec le superviseur (2), permettant la gestion et la transmission des requêtes de lecture et/ou d'écriture de données (33, 34).
5. Composant selon Tune quelconque des revendications précédentes, dans lequel les modules de communication (3, 4, 5, 46) sont configurés pour transmettre les requêtes de lecture et/ou d'écriture de données (33, 34) au superviseur (2) par le biais de ports d'accès (9) internes au composant (1).
6. Composant selon l'une quelconque des revendications précédentes, comportant un séquenceur permettant d'ordonner les requêtes (33, 34) provenant des modules de communication (3, 4, 5, 46) fonctionnant en parallèle.
7. Composant selon l'une quelconque des revendications précédentes, comportant une base de temps (8) permettant d'adjoindre à une donnée (17) son heure de réception par le superviseur (2) lors d'une requête d'écriture (33) dans la base de données (6), ladite heure de réception étant notamment lue avec la donnée (17) lors d'une requête de lecture (34).
8. Composant selon l'une quelconque des revendications précédentes, dans lequel le superviseur (2) est configuré pour vérifier la validité d'une requête de lecture et/ou d'écriture (33, 34) d'une donnée (17) par le biais d'un identifiant associé à ladite donnée.
9. Composant selon l'une quelconque des revendications précédentes, dans lequel le format d'écriture dans la base de données (6) contient plusieurs paramètres encapsulés, notamment un identifiant de la donnée (17), l'heure associée à cette donnée par la base de temps (8) et le résultat d'un contrôle de redondance cyclique sur la donnée.
10. Composant selon l'une quelconque des revendications précédentes, dans lequel le superviseur (2) peut être configuré, après l'écriture et/ou la lecture d'une donnée (17) dans la base de données (6), et en fonction de la table de configuration (7), pour transmettre une notification (36) au module de communication (3, 4, 5, 46) dont provient la requête de lecture et/ou d'écriture (33, 34) de ladite donnée (17), notamment une notification de succès ou d'erreur.
11. Composant selon l'une quelconque des revendications précédentes, dans lequel les requêtes de lecture et/ou d'écriture (33, 34) proviennent de sollicitations de renvironnement extérieur reçues par les modules de communication (3, 4, 5, 46), notamment une sollicitation d'au moins une application logicielle exécutée sur un processeur (13) de l'environnement extérieur, notamment un microprocesseur, et/ou d'une entrée/sortie physique (14) vers l'environnement extérieur, notamment une entrée/sortie audio et/ou vidéo, ei'ou d'un réseau (15, 54, 55) de l'environnement extérieur, notamment un CAN, un réseau TCP-IP, un réseau utilisant les nonnes ARMC 429, AFDX, MIL STD 1553, ou FlexRay, ou le système Ethercat ou Powerlink.
12. Composant selon l'une quelconque des revendications précédentes, dans lequel au moins l'un des modules de communication est un module processeur (3), pemiettant notamment la liaison avec un processeur (13) de l'environnement extérieur exécutant une application logicielle.
13. Composant selon la revendication précédente, dans lequel le module processeur (3) est relié à au moins un bus de communication (13a) utilisé par le processeur (13) de l'environnement extérieur, le bus (13a) étant notamment un bus PCI, PCI Express ou VME, le module processeur (3) comportant un étage d'interfaçage (3c) avec ledit bus de communication (13a) et un étage de liaison (3b) entre cet étage d'interfaçage (3c) et l'étage d'interfaçage (3a) avec le superviseur (2).
14. Composant selon l'une quelconque des revendications précédentes, dans lequel au moins l'un des modules de communication est un module entrée/sortie (4), permettant notamment la liaison avec une entrée/sortie physique (14) de l'environnement.
15. Composant selon la revendication précédente, dans lequel le module entrée/sortie (4) comporte un étage d'interfaçage (4c) avec au moins une entrée/sortie physique (14) de l'environnement, notamment configuré pour accéder à un convertisseur analogique/numérique (25) connecté à Γ entrée/sortie physique (14), et un étage de liaison (4b) entre cet étage d'interfaçage (4c) et l'étage d'interfaçage (4a) avec le superviseur (2).
16. Composant selon l'une quelconque des revendications précédentes, dans lequel au moins l'un des modules de communication est un module réseau (5), permettant notamment l'échange de données entre le composant (1) et l'environnement par un ou plusieurs réseaux (15, 54, 55).
17. Composant selon la revendication précédente, dans lequel le module réseau (5) comporte un étage d'interfaçage (5c) avec au moins un réseau de l'environnement (15,
54, 55), et un étage de liaison (5b) entre cet étage d'interfaçage (5c) et l'étage d'interfaçage (5a) avec le superviseur (2).
18. Composant selon les deux revendications immédiatement précédentes, comportant plusieurs modules réseaux (5, 51, 50), permettant notamment de faire le lien entre différents réseaux (15, 54, 55) de l'environnement.
19. Composant selon l'une quelconque des revendications précédentes, dans lequel au moins l'un des modules de communication est un module de distribution (46, 47, 48), permettant notamment de connecter entre eux des superviseurs (2, 62, 72) de différents composants (1, 60, 70) à modules de communication supervisés, ledit module de distribution (46, 47, 48) utilisant notamment un support physique Ethernet.
20. Composant selon l'une quelconque des revendications précédentes, comportant la base de données (6).
21. Composant selon l'une quelconque des revendications précédentes, comportant la table de configuration (7).
22. Procédé de fonctionnement d'un composant électronique (1) à modules de communication supervisés selon l'une quelconque des revendications précédentes, comportant au moins deux modules de communication (3, 4, 5, 46) fonctionnant en parallèle et un superviseur (2), chaque module de communication (3, 4, 5, 46) comportant un étage d'interfaçage (20) avec le superviseur (2), procédé dans lequel :
- un des modules de communication (3, 4, 5, 46) du composant (1) transmet une requête de lecture et/ou d'écriture (33, 34) de données (17) au superviseur (2) du composant (1), par le biais de l'étage d'interfaçage (20) avec le superviseur (2), et
- le superviseur (2), en fonction d'une table de configuration (7), gère de façon déterministe l'accès à une base de données (6), afin d'y lire et/ou d'y écrire lesdites données (17).
23. Procédé selon la revendication précédente, dans lequel la table de configuration (7) est chargée lors de l'initialisation du composant (1).
24. Procédé selon les deux revendications immédiatement précédentes, dans lequel le superviseur (2), avant d'écrire ou de lire une donnée (17) dans la base de données (6), vérifie la validité de la requête de lecture et/ou d'écriture (33, 34) de ladite donnée (17) provenant d'un module de communication (3, 4, 5, 46), notamment par le biais d'un identifiant associé à ladite donnée (17) correspondant à des paramètres de contrôle de la table de configuration (7).
25. Procédé de fabrication d'un composant électronique (1) à modules de communication supervisés selon l'une quelconque des revendications 1 à 21, comportant au moins deux modules de communication (3, 4, 5, 46) et un superviseur (2) dépourvu de microprocesseur, procédé dans lequel un ou plusieurs composants logiques programmables, notamment de type FPGA, CPLD ou ASIC, sont programmés de telle sorte que les modules de communication (3, 4, 5, 46) fonctionnent en parallèle et que le superviseur (2) gère de façon déterministe l'accès à une base de données (6), en fonction d'une table de configuration (7) et de requêtes de lecture et/ou d'écriture (33, 34) dans la base de données (6), provenant des modules de communication (3, 4, 5, 46).
26. Utilisation d'un composant électronique (1) à modules de communication supervisés selon l'une quelconque des revendications 1 à 21 dans un avion, notamment pour le contrôle d'un radar ou d'un altimètre, ou dans un système de contrôle industriel de commandes, notamment pour la remontée d'informations issues de capteurs, notamment de température ou de vitesse de rotation, vers les applications de supervision.
27. Ensemble (110) comportant plusieurs composants électroniques (1, 60, 70) à modules de communication supervisés selon l'une quelconque des revendications 1 à 21, les composants (1, 60, 70) comportant chacun au moins un module de distribution (46, 47, 48) et étant reliés entre eux par leur module de distribution (46, 47, 48).
28. Ensemble selon la revendication précédente, dans lequel un des composants (60) est configuré pour contrôler la synchronisation des dates de tous les composants (1 , 60, 70) par le biais d'une base de temps (68) partagée entre tous les composants.
29. Ensemble selon les deux revendications immédiatement précédentes, dans lequel les données (17) contenues dans la base de données (6, 66, 76) associée à un composant (1, 60, 70) sont configurées pour être accessibles par tous les composants, notamment par le biais de paramètres de la table de configuration.
30. Procédé de fonctionnement d'un ensemble (1 10) comportant plusieurs composants (1, 60, 70) selon l'une quelconque des revendications 27 à 29, lesdits composants (1 , 60, 70) comportant chacun au moins un module de distribution (46, 47, 48) et étant reliés entre eux par leur module de distribution, procédé dans lequel :
- suite à une requête d'écriture (34) d'une donnée (17) d'un des modules de communication (3, 4, 5, 63, 64, 65, 73, 74, 75) d'un composant (1 , 60, 70), et en fonction de la table de configuration (7), le module de distribution (46, 47, 48) du composant concerné transmet la donnée (17) à tous les autres modules de distribution des composants (46, 47, 48), et
- les composants (1 , 60, 70) associés à l'identifiant de ladite donnée (17) la reçoivent par le biais d'une requête d'écriture (33) provenant de leur module de distribution (46, 47, 48).
31. Procédé selon la revendication précédente, dans lequel les superviseurs (2, 62, 72) des composants (1, 60, 70) envoient une notification (37) aux autres modules de communication (3, 4, 5, 63, 64, 65, 73, 74, 75) du composant auquel ils appartiennent pour prévenir de la disponibilité de ladite donnée (17), sur demande exprimée par ie biais d'un paramètre de la table de configuration.
32. Procédé selon la revendication 30 ou 31, dans lequel un composant (1 , 60, 70) vient lire, si. souhaité, les données des modules de communication (3, 4, 5, 63, 64, 65, 73, 74, 75) notifiant une donnée disponible.
EP15720436.3A 2014-03-28 2015-03-26 Composant electronique a reponse deterministe Ceased EP3123330A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1452723A FR3019340B1 (fr) 2014-03-28 2014-03-28 Composant electronique a reponse determeniste
PCT/IB2015/052225 WO2015145382A1 (fr) 2014-03-28 2015-03-26 Composant electronique a reponse deterministe

Publications (1)

Publication Number Publication Date
EP3123330A1 true EP3123330A1 (fr) 2017-02-01

Family

ID=51518863

Family Applications (1)

Application Number Title Priority Date Filing Date
EP15720436.3A Ceased EP3123330A1 (fr) 2014-03-28 2015-03-26 Composant electronique a reponse deterministe

Country Status (4)

Country Link
US (1) US20170140046A1 (fr)
EP (1) EP3123330A1 (fr)
FR (1) FR3019340B1 (fr)
WO (1) WO2015145382A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107483476A (zh) * 2017-09-07 2017-12-15 中国人民解放军63686部队 一种校飞航路中合作目标控制的实现方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3057970B1 (fr) 2016-10-26 2019-12-13 Zodiac Aero Electric Architecture de communication pour l'echange de donnees entre des unites de traitement
US9932108B1 (en) * 2017-09-11 2018-04-03 Kitty Hawk Corporation Flexible and robust communication interface
FR3103583B1 (fr) 2019-11-27 2023-05-12 Commissariat Energie Atomique Système de gestion des données partagées

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040128673A1 (en) * 2002-12-17 2004-07-01 Systemauto, Inc. System, method and computer program product for sharing information in distributed framework
US20120084400A1 (en) * 2010-07-23 2012-04-05 Almadi Soloman M Machines, Computer Program Products, and Computer-Implemented Methods Providing an Integrated Node for Data Acquisition and Control

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE59304836D1 (de) * 1992-09-04 1997-01-30 Fault Tolerant Systems Kommunikationskontrolleinheit und verfahren zur übermittlung von nachrichten
US5583450A (en) * 1995-08-18 1996-12-10 Xilinx, Inc. Sequencer for a time multiplexed programmable logic device
US6483846B1 (en) 1998-07-10 2002-11-19 Honeywell Inc. Middleware-based real-time communication system
US6297666B1 (en) * 1998-11-24 2001-10-02 Innovasic, Inc. Fully programmable and configurable application specific integrated circuit
DE19954377C2 (de) * 1999-11-12 2003-04-17 Airbus Gmbh Datenübertragungssystem für Luftfahrzeuge
AT408382B (de) * 2000-03-02 2001-11-26 Fts Computertechnik Gmbh Rechnerknotenarchitektur mit dediziertem middleware computer
GB0019341D0 (en) * 2000-08-08 2000-09-27 Easics Nv System-on-chip solutions
US6957283B2 (en) * 2001-07-25 2005-10-18 Xilinx, Inc. Configurable communication integrated circuit
US20030204560A1 (en) * 2002-04-26 2003-10-30 Chen Thomas C.H. Programmable Logic Controller with embedded Intelligent Web Server
US7493253B1 (en) * 2002-07-12 2009-02-17 Language And Computing, Inc. Conceptual world representation natural language understanding system and method
US7404074B2 (en) * 2002-07-12 2008-07-22 Sca Technica, Inc. Self-booting software defined radio module
US7521960B2 (en) * 2003-07-31 2009-04-21 Actel Corporation Integrated circuit including programmable logic and external-device chip-enable override control
US7353374B1 (en) * 2004-06-22 2008-04-01 Xilinx, Inc. Integrated circuit with supervisory control circuit
US7692448B2 (en) * 2007-09-12 2010-04-06 Neal Solomon Reprogrammable three dimensional field programmable gate arrays
US10210197B2 (en) * 2013-10-18 2019-02-19 New York Air Brake Corporation Dynamically scalable distributed heterogenous platform relational database
CN104717192B (zh) * 2013-12-16 2018-05-18 腾讯科技(深圳)有限公司 合法性验证方法及中间服务器
US9467565B2 (en) * 2014-06-02 2016-10-11 Verizon Patent And Licensing Inc. Supervisory communication system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040128673A1 (en) * 2002-12-17 2004-07-01 Systemauto, Inc. System, method and computer program product for sharing information in distributed framework
US20120084400A1 (en) * 2010-07-23 2012-04-05 Almadi Soloman M Machines, Computer Program Products, and Computer-Implemented Methods Providing an Integrated Node for Data Acquisition and Control

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of WO2015145382A1 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107483476A (zh) * 2017-09-07 2017-12-15 中国人民解放军63686部队 一种校飞航路中合作目标控制的实现方法
CN107483476B (zh) * 2017-09-07 2020-05-22 中国人民解放军63686部队 一种校飞航路中合作目标控制的实现方法

Also Published As

Publication number Publication date
US20170140046A1 (en) 2017-05-18
FR3019340A1 (fr) 2015-10-02
WO2015145382A1 (fr) 2015-10-01
FR3019340B1 (fr) 2016-03-25

Similar Documents

Publication Publication Date Title
EP2378716B1 (fr) Systèmes pour réaliser des communications entre composants d'un système d'automatisation industrielle multi-domaines
EP2507711B1 (fr) Controleur d'acces direct a une memoire pour le transfert direct de donnees entre memoires de plusieurs dispositifs peripheriques
FR3001849A1 (fr) Procede pour router des donnees, programme d'ordinateur, controleur de reseau et reseaux associes
EP3123330A1 (fr) Composant electronique a reponse deterministe
CA2960107C (fr) Architecture bi-voies
EP2149823A1 (fr) Système aéronautique embarqué à reconfiguration dynamique, procédé associé et aéronef embarquant un tel système
RU2605918C2 (ru) Способ предоставления функций в промышленной системе автоматизации и промышленная система автоматизации
FR2925191A1 (fr) Architecture de traitement numerique a haute integrite a multiples ressources supervisees
EP3519958B1 (fr) Procédé d'audit d'une ressource virtualisée déployée dans un réseau informatique en nuage
EP3217290A1 (fr) Systeme sur puce et procede d'echange de donnees entre noeuds de calculs d'un tel systeme sur puce
EP2507712B1 (fr) Systeme autorisant des transferts directs de donnees entre des memoires de plusieurs elements de ce systeme
FR2962619A1 (fr) Dispositif d'acces a des donnees a bord d'un aeronef
WO2007107674A2 (fr) Procede de communication de donnees entre des systemes de traitement heterogenes connectes en reseau local et systeme de communication mettant en oeuvre ce procede
CN113037812A (zh) 数据包调度方法、装置、电子设备、介质和智能网卡
FR2979512A1 (fr) Procede d'echange de donnees entre nœuds d'une grappe de serveurs et grappe de serveurs mettant en œuvre ce procede
CN114979144B (zh) 云边通信方法、装置及电子设备
FR2994782A1 (fr) Procede et systeme d'execution de protocoles de chargement de donnees
WO2020109733A2 (fr) Gestion des données pour le stockage de trames de données dans la mémoire d'un système de transmission de données
EP0822495B1 (fr) Distribution de tickets dans un système informatique multinodal
EP2497235A1 (fr) Outil de diagnostic pour réseaux à haut débit
US11457086B1 (en) Systems and methods for implementing shared locks to stream telemetry data between server instances
EP3874700A1 (fr) Système de transmission de données
EP4066453A1 (fr) Système de gestion des données partagées
FR2930697A1 (fr) Procede et dispositif de configuration dynamique d'un reseau de communication pour la simulation temps reel de l'integration de composants electroniques dans un vehicule
Kakomitas Cloud gateways for heterogenous data sources

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20161028

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20180208

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20200607