You are on page 1of 8

An Application Layer for using Firewire in industrial applications

Philippe Dallemagne
Centre Suisse dElectronique et
de Microtechnique
Jaquet-Droz 1
2007 Neuchiitel, Switzerland
Philippe.Dallemagne@csem.ch

Luis Ruiz
Centre Suisse dElectronique et
de Microtechnique
Jaquet-Droz 1
2007 Neuchstel, Switzerland
Luiz.Ruiz@csem.ch

Abstract

1.2

Firewire can ofer real-time communication services
for industrial applications. However, Firewire lacks an
industry-oriented Application Layer. This paper presents
the services which may be used over Firewire, in order
to make it compliant with the industrial applications
needs. The mapping of these services on Firewire
services is also described. This Application Layer gives
the ability to easib and rapidly set up real-time
communications in an industrial context.

1

Firewire defines a serial bus that can connect at high
speeds several kinds of devices, called ‘bodes’’. This
standard is based on the Control and Status Register
(CSR) Standard I S 0 13213[2]. It has been designed for
connecting multimedia devices. It offers services
especially well suited for video streams, for example
“Digital Video” [4]. These ‘Isochronous”services can be
used for transferring real-time data in industrial
applications [9], [lo], [ll], [13].
Asynchronous transactions are not time-bound, but
the delivery is guaranteed. They can therefore be used
for configuration, download, etc.
A fieldbus (or Local Industrial Network) is
characterized by the presence of only the two lower
layers of the OS1 model. It usually provides also a
dedicated Application Layer [141, [161. Firewire
basically defines the Physical and the Data Link Layer.
Therefore, specific services need to be defined in an
upper layer so that applications fully and consistently
benefits from the Firewire performances.
The application may also directly use the standard
services of Firewire with some restrictions in order to
keep the other services out of trouble (for example to
avoid skew on the cycle start).

Introduction

Firewire as a fieldbus
Fieldbuses (Interbus-S[ 171, Profibus[ 181, CAN[ 191,
FIP[12], etc.) greatly helped in reducing the costs of
industrial control systems. However, most of them have
now reached some limits (response time, bandwidth,
etc.). Previous experiments 191, [ 101, [ 111, [ 131 have
shown that Firewire (IEEE 1394-1995)[1] can be used in
an industrial environment, for example motion control or
tool-machines control. Firewire brings better
performances (100 to 400 Mbit/s) than current fieldbuses
at comparable costs. Since the Firewire standard includes
a backplane version, it is also applicable to the backplane
buses, which suffers from the same limitations.
In the cable environment, Firewire can help in
improving the performance of the communication while
reducing the cost of distributing the application, since
several Firewire interfaces are already available for
consumer appliances. The use of Firewire as the
communication system and the definition of an adapted
Application Layer (AL) will hopefully lead to the
definition of a powerful control platform, that respects
the specific industrial application requirements [6], [7].
Moreover, the use of Firewire in backplane
environments allows the definition of intermediate
systems, from the most centralized to the fully
distributed, in a almost transparent way.

1.1

WFCS-2OO0, September 6-8, Porto, Portugal
0-7803-6500-3/00/$10.00
@2000JEEE

The need for an Application Layer for
Firewire

1.3

Concepts
The Application Layer services aim at handling and
transferring variables, events, interrupts, and programs.
This AL is kept as simple as possible and offers realtime capabilities as well as non real-time.
The available services are basically derived from
MPS (Manufacturing PeriodicaVaperiodic Services)
[12], E161 and MMS (Manufacturing Message Service)
[22], [16], but they do not handle lists of variables.
Variables are uniquely identified and characterized over
the whole network. The AL offers two families of
services : MPS-like services and SubMMS [12]-like
services. The AL handles real-time variables (periodic,
sporadic) like in M P S and asynchronous services (i.e.
non real-time) like in MMS. The former basically
consists of Read (local and far), Write (local and far) and
Update primitives for variables. The latter basically

109

subscription. although the transfer of the value of such a variable is broadcast to save bandwidth. A variables distributed database is used to globally and uniquely identify and describe every piece of data (variable) that is transferred with the help of the AL. The AL will make Firewire suitable for highperformance real-time applications. precision and coding to be determined).). Any other information will be 110 . a toggle and an optional validity duration (in number of Firewire cycles). during which it gets all the productions declarations. The asynchronous services include download and program invocation capabilities. a Master node is elected. 2. the timing aspects (production or delivery dates for example) of the aperiodic variables will be available to the application.).1 Communication models Real-time variables (periodic and sporadic) are broadcast by their producers and consumed by the nodes that need them. which is built during the network initialization (variables declarations). An aperiodic variable must be able to provide its age (date of production) to the application. The application may also modify the variable value. temporal or structural characteristics. 64-bit word (octlet). These variables can be time-constrained (periodic or sporadic) or not (aperiodic) [21]. 2. Therefore. Any of them can be a producer and/or a consumer. Variables database. Thus the AL can warn the application that the variable value has changed (Update). based on the built-in Firewire cycle (125 ps. a period (in number of Firewire cycles). etc. Real-time variables. The AL operates in two phases: configuration (nodes identification. variables declaration.) and operation (variables exchanges. After the regular Firewire initialization.). modified or in error condition (not produced. The definition of data types for variables pertains to some kind of Presentation layer. 16-bit word winlet). program invocation services. a value (in relation with the variable type). a type. A global synchronization is maintained throughout the network. which determines the real-time traffic.) is time-stamped with the cycle count. The macro-cycle is broadcast to every participating node and the Master starts the operational phase.considered as non-critical and it will be handled on a best-effort scheme. Consumers of periodic or sporadic variables are rather ‘passive” for the real-time traffrc since they do not request the variables. The timers are reset when the variable is received. Every event related to any variable (production. This family of services uses a client-server model to exchange data through Firewire asynchronous transactions. calculation of the macro-cycle.3 Variables in industrial applications Aperiodic (non time-critical) variables. 2 Application Layer presentation 2. we could use timers to indicate this event to the application. like byte. floating point value (range. which is not covered in this paper. not periodically refreshed. 1. not inside the variable value. since they explicitly request the variable value.2 Architecture The AL defines a Master node and participating nodes. the AL is informed of the characteristics of the exchanged variables and it maintains the variables database (identifiers. However. the value is said to be invalid when its age is greater than its period. On any participating node. It is made of a name. The communication model used here is the producer-consumer. The application is notified when the local copy of a variable has been refreshed. in which the producers strictly follows the macro-cycle so that realtime variable can be produced periodically and on time. which may be difficult to decode and interpreted by the lower layers). The variables that are transferred in an industrial environment are usually of basic types. The consumers of aperiodic variables are ‘hctive”. master election. Events and interrupts can be efficiently instantiated through several periodic variables. Variables type. etc.e. consists of download. aperiodic variables management. etc. etc. This request will be completed by a response from the node that produces the variable (the ‘Servef’node).). properties. a type. 32-bit word (quadlet). The producer indicates that the value of the variable has changed by toggling an indicator bit that is sent as a field of the variable delivery frame (i. from which it computes a “macro-cycle”. even though this aspect is usually part of the fieldbuses AL. a time-stamp and a toggle. transfer.4 Benefits and expected results The usage of the Firewire isochronous bandwidth is optimized and periodic variables can be transferred in real-time. The value of a periodic variable is valid for the associated period (or for a given validity interval). etc. start or stop its (periodical) production or trigger its aperiodic production. The AL transfers variables of different types and sizes. A periodic variable is made of a name. non real-time events and interrupts should be implemented through aperiodic variables to lower the stress on the periodic traffic. etc. defined by the application. a time-stamp. Phases. where the producing nodes produces variables periodically or on request. A periodic variable is periodically transmitted on the network. An aperiodic variable is available to any application that requests it (the client node). Then it starts the AL configuration process. byte stream (length is variable). The AL itself may also evaluate the variable promptness and freshness. a value. a validity duration (in number of Firewire cycles). However. Like in FIP.

the DLL signals the interrupt to the AL which in turn signals it to the application and clears the interrupt. Figure 1. The AL must keep this information in its database. like in XED for example. validity term. An interrupt can be considered as a sporadic variable that needs an acknowledgement (clear). It is valid until a bus-reset occurs. it is the interval in which the complete production combination occurs only once. which are broadcast (ie. With the toggle generalization. The macrocycle allows every producer to produce its variable on time. which will indicate whether the value has changed since the last update of the variable.Local micro-cycle. From the application point of view. Quality of the variable database. a time-stamp. #en the consumer receives a interrupt value with a modified toggle. deadline (earliest term. They are considered as regular periodic variables. This is applied for periodic variables as well as for aperiodic variables. latest term) respected or not. For example. All variables are timestamped for their production and emission. promptness (age). which is the smallest interval in which the highest rate periodic variable (on the node) occurs LCM(al1 periods on the node) times. The producer and the consumers of a variable must also take care of un-initialized variables. - Local macro-cycle. the events are sporadic variables (without any acknowledgement) that can be simulated by dedicated periodic variables. i Local macro-cvcle Local micro-cycle for A Bus cycle. and another for the acknowledgement of the interrupdevent. Though they offer a greater flexibility. a deadline (in number of Firewire cycles). Therefore. a so-called ‘Interrupt” is entirely handled by the application. the application can create two periodic variables: one for the indication. The periodic traffic is based on three periodical production cycles: . The modification of the variable (its toggle has changed) at the consumer end means that the event occurred at the producer end. The producer of the variable calculates the value of the toggle. This quality relies on the variable quality and the global consistency of the handled variables. The variable A ISproduced every 375 us The vanable B IS produced every 250 us 0 Figure 2. It will be up to the application to determine the value of boolean events. a value and a toggle. We dont consider complex event management. which samples the possible event indicator at the producer end. the interrupt will be immediately cleared by the source when sent and by the target as soon as it is handled after reception. The AL maintains freshness and validity indicator. A variable value that is sent over the network by the protocol also includes a “modification toggle”. ie. which is the biggest interval in which a given production is done only once. The macro-cycle is therefore the Least Common Multiple (LCM) of all producers cycles. The evaluation formula will be defined and transmitted by other means. Interrupts and events. Similarly. The production node may stop the actual production of a periodic variable during the network operations. immediately confirms the service and clears the interrupt when the variable has been sent. The only difference is that they wont be updated periodically and the quality evaluation is different. Example of local macro-cycle. with a bit that indicates that the variable production is started or stopped. 2. 125 us. The variable value quality shall be appreciated on freshness.4 Productions scheduling and macro cycle The macro cycle is calculated in order to enable all periodic productions to occur in accordance with the production periods (including interrupts and events). When the’ application signals an interrupt.Sporadic variables. the AL signals it to the Data Link Layer (DLL). we can ensure that any value modification will be indicated to the application. 111 . Therefore. Example of local microcycle. etc. A sporadic variable is made of a name. if necessary. The quality of service can be monitored by the application. the period (it is at least one bus cycle). a minimum inter-arrival delay (in number of Firewire cycles). confidence (optional). the periodic variable value is still sent. a type. the application can implement the behavior of an interrupt. without any acknowledgement) : this gives the ability to send the same value several times (re-send for forward error correction) without troubling nodes that already received the value correctly. This allows the transfer of event and interrupts through periodic variables. Variable management. They can not be ‘piggy backed” on the periodic traMic since the period of this periodic traffic may not comply with the sporadic variable requirements. based on the reception date and the lifetime. It depends on the quality of the information delivered to the different applications that make use of the information. With two periodic variables. such features seem far too complex and heavy for communication controllers. The macro-cycle specifies the Firewire cycle and the isochronous channel in which any variable shall be produced. However.

late) skew.2 Synchronization with the Firewire cycle One of the purposes of the AL services is to transfer real-time variables on-time. i. associated to its allocated channel number. The time-stamping and synchronization of the periodic traffic (variables. dedicated registers [2]. For example. since the bus is a broadcast tree. The CSR Architecture defines a Clock Synchronization mechanism using optional. for example. 3. the Master counts the number of responses it gets (from both the producers and consumers) and it can use these numbers in later steps. The application can use them to perform specific. The Firewire cycle count (CYCLE-TIME register. This can be done with asynchronous transactions (node 63 for broadcast) or with isochronous actions (all channels are broadcast).1 4 Application Layer services 4. type conflicts. The Master node also establishes control points from which the process can not go hrther if the control conditions are not fulfilled. Global macro-cycle. More sophisticated 112 .two or no producers. a variable may be considered as an address in the CSR architecture. which gives the age (absolute consistency) and time consistency (local relative consistency).). etc. called “macro-cycle”. The objects manipulated by the protocol are mapped onto the CSR architecture. It is terminated when there is no more arbitration for asynchronous transactions or no more variable declaration inside a fairness interval.1 Presentation The AL offers services for the initialization and operations phases. The Firewire start cycle maintains a coherent time reference between all nodes. Mapping of the AL services on Firewire Firewire basic services and CSR architecture IEEE. events and interrupts) occurs in isochronous channels (previously allocated). This “macrocycle” specifies which and when any variable shall be produced during the Global macro-cycle duration. All timings and duration are expressed in Firewire cycles.1394-1995 asynchronous transactions can constitute a Basic Asynchronous Transactions service. A structure. It handles also errors (variables inconsistencies. Operations. is broadcast by the Master node to every node in the network. cycle-count (13 bits. in order to check the consistency of the produced and the consumed variables. variable localization and addressing scheme. the asynchronous transactions are not timebounded. The CYCLE-TIME register is a 32-bit register. Multicast transfers are implemented with Firewire. For example. events and interrupts) and the nodes that handle them is implicitly done with the help of the Firewire cycle. the smallest interval in which the highest-rate periodic variable (of all nodes) will be produced LCM(all periods on all nodes) times. in 1/8000th of a second) and cycleoffset (in 1/3072thof a cycle).3 Point-to-point. The AL uses the convenient Firewire built-in clock synchronization mechanism (cycle start) that is issued by the root node. A cycle-offset different from 0 indicates that the past cycle was late of this value. The declaration interval begins when the first variable declaration is performed. Each producer will declare (broadcast) the list of its produced variables. since the target and initiator nodes are identified in the asynchronous packets. 3 3. This means that some addresses will be reserved for our own needs. or implicitly filtered by the DLL. multicast or broadcast communication Point-to-point transfers are implemented with asynchronous transactions. Isochronous channels may be genuinely used by applications. The cycle-offset is used for the ‘positive’’( ie. The use of isochronous channels should be reserved for time-critical data. This ‘$lobal” clock has a rate of 8kHz. Broadcasts are easily implemented with both the isochronous (all channels and 63 specifically) and asynchronous (to node 63) transactions. no consumer. which is the combination of local macro-cycles from all producers. the producers and consumers identification. However. This address should be accessed from any layer. explicitly filtered by the application on all nodes. Firewire compliant. Specific ‘hnchor points” are defined for the AL services in the 1212 CSR architecture (memorymapped). Initialization. Multicast is therefore done using broadcast transactions.[1]. asynchronous transmissions. in seconds -> 128 seconds range). Services are performed by using the available Firewire services.e. macro-cycle calculation and diffusion. It will be used for timestamping every exchanged variable.- synchronization schemes can be implemented by the application by reserving some periodic variables to simulate synchronizationvariables. because the Firewire asynchronous services do not guaranty the delay of delivery (an asynchronous 3. The Master node allocates the necessary bandwidth after having received all the variables declarations. The real-time traffic (periodichporadic variables. updated at each cycle start) is used for time-stamping and macrocycle/synchronization. It is structured in 3 fields: secound-count (7 bits. The Firewire root automatically corrects this skew. The network initialization is made of the Master node election. but will likely be known by the application.

When the number of list declarations equals the number of producers. The Master may also be a producer or a consumer and it will also act as such. it registers the candidate Physical-ID as the Master and sends a “you are the Master” message to the candidate. No nodes can be inserted in the network during operation.e. In order to avoid the 113 . once the timer expires. As long as this channel is unknown. thus allowing them to send it some configuration-oriented asynchronous transactions. All capable nodes will therefore know that this channel will be reserved and used for the aperiodic traffic. The Master node can free the ATC. If 1394a is used. It is important since the Master counts the number of variables declaration and compares it to the number of producers. This event shall be reported to the application. The Master allocates a asynchronous stream channel before. since they may interfere with the real-time isochronous traffic (i.4 Aperiodic variables declaration To ensure the aperiodic traffic. It shall first broadcast the free transaction. asynchronous broadcast on node 63 may be replaced by an asynchronous stream. any pending aperiodic variable request can start. and all their Application layer shall record the ATC number for future use. The AL does not support hot plugging. because it would induce a bus-reset. ie. All other pending candidates shall retire when they have recognized that another node has declared before. the variables declaration service ends. This will give the number of producing node in the network. This channel is called Aperiodic Traffic Channel (ATC). Then the Master broadcasts a ‘bend me variables lists” to all participating nodes. This is not desirable to use isochronous actions to perform these services. events and interrupts). the ATC will be supposed to be free. In the case of the candidate node being alone on the bus (no nodes replies to its candidature will occur) a timer shall be set in order to time-out the Master election. 4. the producer and the variables list.3 Periodic variables declaration Each declared producer allocates a channel number. The Master is confirmed as being the Master when it receives at least one ‘you are the Master” asynchronous indication from any node (except itself).5 Macro-cycle and channel allocation The macro-cycle indicates which variable shall be produced in which cycle. The parameter ‘producer” shall be set to 1 (Yes). The aperiodic variables names are known by the requesting nodes. There is also a timer to decide when the election replies process expires. though it does not offer any obvious benefit. 4. The Master shall count the number of producers that send such a message.e. services are not started and any further MPS-like PDU shall be ignored. It means that some variables will not be produced in every cycle. read. Further declaration are ignored. Each producer must send a variables declaration (even if it does not intend to produce anything : the variable list will be empty). the MPS-like 4. The first participating node that says “I am Master candidate” is elected. All producer node shall send the ‘you are the Master” message. This latter message is accompanied by an boolean indicating whether the node is a variable producer or not. write and lock (and asynchronous streams from 1394a). the Master node reserves one asynchronous stream channel. The Master checks the variables identifiers to ensure that no double declaration exists. This timer is set to 2 fairness intervals. When a node receives the first candidature. if elected. recognizes itself and is recognized by the other participating nodes as the Master. it receives the variables declaration. since the aperiodic traffic producers ‘publish” the lists of available variables so that consumers can request them to the right node. ie. i. 4. it calculates the macro-cycle and informs every participating node of the macro-cycle. 44 ms (to ensure that every node will have an opportunity to send an asynchronous transaction). This node may or may not be the root. It could be any node that declares itself as Master-capable. All pending ‘you are the Master” messages shall be ignored. thus making the macro-cycle obsolete. Other services are operated through asynchronous transactions. Once the ATC is defined. All aperiodic traffic shall cease within the next two faimess intervals. The consumers can associate the channel.2 Election of the Master node The Master node declares itself as “Master candidate” and. each producer declares its produced variables and its channel number by an asynchronous transaction to the Master. which complies with the fairness algorithm. to complete. The services described here are based on the IEEE 1394-1995 standard. periodic and sporadic productions. no aperiodic traffic shall occur. which specify the address and memory usage in conformance to the CSR architecture [2].transaction can take up to 22 ms. This ATC number will be immediately broadcast to all nodes by a broadcast asynchronous transaction. If the Master election fails. Then. Extensions like the IEEE 1394a standard (frozen but not official) may be used. which is too long for the target applications). After two faimess intervals (running requests and subsequent response will complete). No bandwidth allocation is necessary since asynchronous streams pertain to the asynchronous traffic. The Master is elected first so that the Master could be identified by all participating nodes. which will identify the producer.

it needs to know precisely when the data shall be made available to the PHY and whenhow it will be actually sent on the wire. immediately following the ‘Start”). accordingly to the macro-cycle. If a station misses the cycle start. one quadlet each two cycles . In the first next cycle. 4. based on the capabilities of Firewire. consumer. As the node needs to send isochronous data on specific Firewire cycles on a periodic basis. Each producer shall use this indication as the beginning of the macro-cycle. when all producers know when and what to send. By the Producers . The channel bandwidth allocation (made by the Master) is equivalent to the greatest load of production in all bus cycles included in the local macrocycle.). without however exceeding. a part of the bandwidth will likely be lost in each channel. All productions will be stopped. the AL tests if it is the start of the macro-cycle. thus trying to allocate the lowest possible bandwidth. This is also a useh1 indication for re-synchronization. Less than the whole bandwidth is used for the AL services at any Firewire cycle. the application programs the Firewire adapter so that it sends the variable value (“outgoing transmission pipe”).. When the period of a given variable completes (matching of the Firewire cycle number with the cycle of production of the variable). the other of two cycles . at different rates. I Master allocate a channel for a compu bandwidth (overall needed for the dec accordingly to the macro cycle Figure 3. have been considered for periodic variable production: .using time stamping. It will stop the network. Two techniques. a given percentage of the overall bandwidth (for example. which relies on the Firewire clock synchronization mechanism (based on the cycle start packet and the dedicated registers). the isochronous allocated bandwidth corresponds to the highest sum of the micro-cycles bandwidth requirement on any bus-cycle. Master 4. 4. On each Firewire cycle start. so that some free isochronous bandwidth may be available for other isochronous devices (DV cameras. The modification of a is indicated to the application. Example of allocation. it shall be sent at cycle N+1. etc.. at any one Firewire cycle. because the resulting needed Firewire bandwidth would exceed 100 %. For example : a node that only needs to produce a variable (say a quadlet) each Firewire cycle will have a local micro-cycle of one Firewire cycle for the variable and a local macro-cycle of one Firewire cycle. The sum of all producer needs would exceed the maximum allowed isochronous traffic per Firewire cycle (lows.overhead of allocateddeallocating the channels and bandwidth. A node that needs to produce two variables . Therefore. which is not allowed. the Master reports an error to all participating nodes The producers are not able to allocate their own required bandwidth.6 Time reference and data transfers The start of the macro-cycle is indicated to the application.which gives a macro-cycle of two cycles. . the isochronous bandwidth must be ‘bverallocated”. The bandwidth usage must therefore be optimized: the Master will try to fit all production according their timing requirement into the available bandwidth. For a given producer. the value will be sent inside the channel.using isochronous channels (one for each producing node) in which a sufficient slice of the bandwidth is periodically reserved for a given variable. The producers will arbitrate the bus to start the productions. Periodic traffic (summary) 114 . The expected behavior is therefore : when something is sampled at the start of cycle N and put in the ‘transmission pipe”at cycle N.one quadlet each cycle. the value will be available in the ‘Incoming transmission pipe”. Some producers may have several periodical productions to make.will have two micro-cycles . Both solutions have been used in order to time-stamp variable and to guarantee on-time delivery.e.one of one cycle. The macro cycle starts on the next Firewire Cycle start (i..7 Network start The Master starts the network by a broadcast asynchronous transaction..). 70%).. the Master station will detect that the corresponding scheduled productions did not occur during the first macro-cycle.8 Transfer mechanisms Periodic variables production. during the local macro-cycle. In case of insufficient available bandwidth (impossible scheduling with the available bandwidth).

. without any bandwidth (the channel number is associated to the variables declaration).. . Aperiodic traffic (summary) 115 .Aperiodic variable transfers mechanism. . . The variables value are always available to the application. motor position). It is then up to the Application layer to extract the needed variables. Server va. control loop. the implementation of this Application Layer gives to Firewire new perspectives outside of the multimedia field. Firewire represents a strong contender for the current fieldbuses. The transfer of an aperiodic can occur at any time (on request) once the Master starts the network. .. associated to such an Application Layer. since the Master automatically computes a valid macro-cycle before starting the network operations.~ . The request is broadcast on node 63.. Therefore. The consumer application must therefore tell its AL what are the expected variables (subscription).... The AL of the consumers shall keep a list. about 30 axis of a multi-axis tool-machine can be managed in lms. which was to have guaranteed real-time exchanges.~. . such as a better comprehension of the whole application and the possibility to check and validate an architecture or a distribution of the data. Variables .at!h~~.. as a node may produce several variables. The consumer AL stores a copy of the received values. Periodic consumption.1 Conclusion The Application Layer enables the Firewire technology to achieve the main expected result... . thus preventing from any asynchronous transaction that would last longer than the remaining bandwidth.. However. .. The aperiodic variables are also declared by the variables owner. This avoids several requestlresponse sequences.. > Variables list broadcast c -se - - . A dedicated asynchronous channel is allocated.. . every consumer will therefore know the characteristics of any variable and its production channel. at least in some areas.. For example.~i... The production is triggered when the current cycle corresponds to the cycle in which the variable must be produced.. It tests the toggle of each transmitted variable to determine if the value has changed. It also makes the application scalable and independent from the variable location. . Such a goal could also be achieved by using list broadcast Figure 4. The variable is returned in the dedicated asynchronous stream channel.nt. A variable can also be “deleted”... This could be useful for system for which skew must not occur (eg...2 Future work New functionalities and services may be added in the future. applications that want to consume variables will listen to the corresponding channels._.. . . .ue~.. but this can happen at any time during the network operation (asynchronous broadcast).known. The periodic variables production of a given node takes place in an isochronous channel that is associated to the node during the network initialization. It offers other useful features for real-time application development.list .. The channel is an asynchronous stream that is broadcast inside the asynchronous traffic.. and .. I . Finally.. therefore all nodes can read it.. The isochronous channel traffic is broadcast on the bus. which links any locally consumed variable to its respective production channel.. Since the Master sends the macro-cycle to every participating node.~~. Thus the aperiodic variable is made available to every consumers. a consumer node will receive several variables inside one packet.. some of them being useless to it. Client .. . like tool-machine or short-range industrial network.. to which the AL must be sensitive. (This information is actually taken from the macro-cycle initially sent by the Master).ab!er.. The use of asynchronous transactions shall therefore be controlled. . location . ... 5 I -:\{# 5. for example the definition of an ‘bccurate mode” in which the possible start cycle skew would not be allowed anymore. It gives Firewire the ability to be used in the industrial activities by easily and rapidly developing or porting test applications. Then. This service is based on a client-server production model : a node (the client) requests the value of a given variable to another node (the server) which completes the service by returning the variable value to the client. : variable value on ATCvariablevalue I I I Conclusion and future work 5. which may be indicated to the application... The variable value is time-stamped by the producer with the cycle in which the variable has been sampled. - - v m .. .. which requests them to the AL database (local Read).. The Master makes this information available in the macro-cycle. which will record the variable value.

ISO/DIS 11898: 1998. L. Mammeri. Nov. Jean-Pierre Thomesse.. and J. February. 1I . Ulloa. All local copies of a given variable should be consistent network-wide.. Using Firewire as Industrial Network. the performance of Firewire combined with its Application Layer must be measured on the field in many real-world applications. pp. 2. Decotignie. 1316-1321. L. 55-63. J. 1994. presented at Real-Time Systems 2000. Ruiz and J. Paris octobre 93 17. vol. NF C 46-601 Bus FKP : architecture et prksentation gCnCrale. References 1. IEEE. March 2000.435-448. 1999.presented at Singapore International Conference on Intelligent Control and Instrumentation SICICIP2. Auslander. S. McCarthy. Classification des contraintes temuorelles. IEC 61883. 1993. International standard IS0 9596-1. Laurent Mealares. September23-24. 1996. Koppenhoefer. J. 7. DesprCs F. D. Distributed Fieldbiis and Control Network Svsterns.48. This would give a good understanding of the available services. Hernandez. Z. Some guidelines or profiles may be published so as to define application-specific types of variables and their behavior. V01. Germany. Magdeburg. Mammeri.Fieldbus: a Network for Process Level Communication. pp. PROFIBUS-ProcessField BUSDIN Deutsches Institut fiir Normung E. Chile. 41. 22. The spatial consistency of the distributed database should be more formally covered: a variable can be used by several applications. 4-6. P. Philippe Dallemagne. Proceedings of the fieldbus Conference FeT99. 8-13. 1999. 9.13. 16.V. 21. 2. Patrick Pleinevaux. IEEE Standard for a High Performance Serial Bus. P. Phoenix Contact. vol. Main Paradigms as a Basis for Current Fieldbus Concepts. Characterizing Temporal Consistencv in a Fieldbus Environment. 20. judicious local timers on producing nodes. J. Z. Annales de TClCcommunications/ Annals of Telecommunications. September23-24. proposed standard for Digital Interface for Consumer Electronic AudioNideo Equipment L. Un &eau de terrain a hautes performances sur la base de Firewire. France. Miguel Leon Chavez. each of them having a local copy of the variable. Taka. 1992. Raja. Thomesse. pp. Magdeburg. Paris. Contribution GDR-PRC-PRS. IEEE1394 in comparison with Other Bus Svstems. Decotignie. ISO. 1988. 3. Dallemagne. O. Proceedings of the fieldbus ConferenceFeT99. Ruiz. pp.P. _A Survev on Industrial Communication Networks. Pleinevaux and J. An Application Programming Interface (AFT) should eventually be provided. This property is not evaluated in the current implementation of the AL.CESA'96 IMACS-IEEE/SMC Multiconference. Reference Manual for INTERBUS Peripherals Communication Protocol. enables faster development cycles and improves the maintainability of the application. 30 august 1996 ISOhEC 13123:1994. Interchange of Digital Information . Fieldbus Based Integrated Communication and Control Svstems. Ruiz and P. 1999. Jean-Dominique Decotignie. pp. J.9-10. pp.M.-D. 15. Manufacturing Message Specification (MMS). Decotignie. Guidec. Schickhuber G. 19" Conference of the Chilean Computer Society. Luis Ruiz. 4. Dallemagne. Eyrolles. IO.-D. in order to give access to the AL services through high-level languages. 3 133 18. P. 18.Lille. IEEE. Collection "industries". Automatisation des svstkmes de productions. 3 13-318. Control and Status RePister (CSR) Architecture for MicrocomputerBuses. France. Grenoble. Finally.-D. INTERBUS-S. 8. Stampfl. IEE Computing and Control Engineering Journal. IEEE Network Magazine. Decotignie. Road Vehicles. Ruiz. AFNOR 90 116 .Controller Area Network (CAN) for High-speed Communication. L. Part 1 : Service definition. Groupe temps-rCel. 1997. 1993.. RCseaux locaux industriels. _A low-cost real-time system for control and monitoring of high performance tool-machines. 6. 1999. IEEE Industrial Electronics Society Newsletter. Time Critical Communication Networks: Field Busses. 1994 G. Cditions Kirk. 1991. 14. F. Singapore. Centre de Recherche en Informatique de Nancy. 1994. Intemational Organization for Standardization. Germany. 9-12 juillet 1996. du besoin a I'utilisation. N.-D. 5.. 19. Berlin (D) 1988 DIN V19245-1988 (Teil 1+2). 12. Decotignie. 1998. Proceedings of Computational Engineering in SystemsApplications . presented at INNOCAP99. No. Maisons-Alfort.-D.