Skip to content

Commit 6ceb84d

Browse files
bmenne-dspacekahramonjBenedikt Mennepmaichrbertsch
authored
Prepare v100-rc.2 release (#280)
* Add small text proposals * Rename "Signal Abstraction layer" to correct "Physical Signal Abstraction layer" (fixed wording) (#274) Co-authored-by: Benedikt Menne <[email protected]> * Fix high-cut AUTOSAR example (#273) * Fix high-cut AUTOSAR example * Clarify AUTOSAR example description --------- Co-authored-by: Benedikt Menne <[email protected]> * Fixed "Remove clock redundancies within FMI-LS-BUS #165" (#272) * Fixed "Remove clock redundancies within FMI-LS-BUS #165" --------- Co-authored-by: Benedikt Menne <[email protected]> * Fix and harmonize figure 7 description and colors (#278) Co-authored-by: Benedikt Menne <[email protected]> * Allow periodic clocks for input in high cut As discussed in #276, the restriction to triggered clocks for inputs is not necessary, and actually less performant in the case of (quasi) fixed communication schedules, either due to actually statically scheduled busses, or due to the details of dynamic scheduling variations not mattering for the use case. * Accept review feedback refinement Co-authored-by: Christian Bertsch <[email protected]> * Avoid using input or output for clocks in high-cut * Make sentences about periodic/aperiodic non-normative * Minor fixes * Use name "TransmissionClock" in high cut examples * Minor text changes in low cut * Update RC.1 tags to RC.2 (#281) Co-authored-by: Benedikt Menne <[email protected]> * Set ls-version tags to 1.0.0-rc.2 --------- Co-authored-by: kahramon.jumayev <[email protected]> Co-authored-by: Benedikt Menne <[email protected]> Co-authored-by: Pierre R. Mai <[email protected]> Co-authored-by: Christian Bertsch <[email protected]> Co-authored-by: Klaus Schuch <[email protected]>
1 parent 1f5ac72 commit 6ceb84d

13 files changed

+70
-62
lines changed

docs/1____introduction.adoc

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,15 @@ This communication architecture can be operated by a common FMU importer and all
3232

3333
This standard allows a highly accurate bus simulation using FMI 3.0 mechanisms.
3434
To profit from such accuracy on a system level to predict system behavior, all system simulation components must provide at least that level of accuracy.
35-
Focusing on single-virtual-ECUs use cases, such as protocol validation, accuracy requirements for the "rest-bus" can be relaxed.
35+
When focusing on single virtual ECU use cases, such as protocol validation, the accuracy requirements for the rest of the system can be relaxed.
3636

3737
Contrary, on system level, the accuracy of the simulation depends on the accuracy of all its components.
38-
These components can be virtual ECUs, plant models, rest-bus simulators, data replay components and, of course, the bus simulation.
38+
These components can be virtual ECUs, plant models, residual bus simulators, data replay components and, of course, the bus simulation.
3939
A single low-accuracy component limits the overall system simulation accuracy.
40-
The level of detail of these run-time models determine the size of the window for send-message events.
41-
With virtual ECUs using the zero-time execution model footnote:[Simulated tasks are executed infinitely fast.], the time of send-message events can only be determined to be somewhere within the given smallest granularity of the virtual ECU's internal scheduler.
40+
The level of detail of these runtime models determine the size of the window for data transmission events.
41+
With virtual ECUs using the zero-time execution model footnote:[Simulated tasks are executed infinitely fast.], the time of data transmission can only be determined to be somewhere within the given smallest granularity of the virtual ECU's internal scheduler.
4242
More detailed models, like instruction set simulators or even System-C models of the hardware, can narrow the window for these events significantly.
43-
However, current modelling technologies, as of writing this standard, do not allow practical implementations in terms of modelling time and run time of virtual ECUs that can be used to simulate all realistic bus simulation effects, such as collision and arbitration events.
43+
However, current modelling technologies, as of writing this standard, do not allow practical implementations in terms of modelling time and runtime of virtual ECUs that can be used to simulate all realistic bus simulation effects, such as collision and arbitration events.
4444

4545
=== How to Read This Document [[introduction-how-to-read-this-document]]
4646

@@ -80,7 +80,7 @@ This layered standard defines requires the use of a layered standard manifest fi
8080

8181
|`fmi-ls-version`
8282
| `\http://fmi-standard.org/fmi-ls-manifest`
83-
| `1.0.0-rc.1`
83+
| `1.0.0-rc.2`
8484
| Version of the layered standard. This layered standard uses semantic versioning, as defined in <<PW13>>.
8585

8686
|`fmi-ls-description`

docs/3____physical_signal_abstraction.adoc

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -20,37 +20,44 @@ The respective FMU variables are connected to a Bus Simulation, which emulates t
2020
image::high_cut_network_fmu.svg[width=80%, align="center"]
2121

2222
=== Variables [[high-cut-variables]]
23-
This section explains the different variable types used to carry network traffic through FMI input and output variables.
23+
This section explains the variable types used to carry network traffic through FMI variables.
2424

2525
==== Signal Variables [[high-cut-signal-variables]]
26-
To define the Physical Signal Abstraction layer, signal variables are defined.
26+
To define the Physical Signal Abstraction layer, signal variables are used.
2727

2828
A signal variable carries the physical value of a network signal normally packaged inside a PDU or frame.
2929
The unit definition of the variable must match the one defined in the <<high-cut-network-description-files>>, if provided.
3030

31-
Each network signal must be listed as <<high-cut-terminal-member-variable-for-signals>> of its corresponding <<high-cut-pdu-terminal>>.
31+
Each network signal must be listed as a <<high-cut-terminal-member-variable-for-signals>> of its corresponding <<high-cut-pdu-terminal>>.
3232

33-
In case multiplexed signals are present in a frame/PDU/container PDU: All signals/PDUs are present, but only the active signal according to the multiplex switch signal contains a valid value, all inactive variables have undefined values _[those values could even be outside their specified min-max range without fault]_.
33+
In case multiplexed signals are present in a frame/PDU/container PDU:
34+
All signals/PDUs are present, but only the active signal according to the multiplex switch signal contains a valid value, all inactive variables have undefined values.
35+
_[These values could even be outside their specified min-max range without fault.]_
3436

35-
All signal variables are clocked to exactly indicate when they have been sent, see <<high-cut-clock-variables>>.
37+
All signal variables are clocked to indicate when they have been sent/received, see <<high-cut-clock-variables>>.
3638

3739
==== Clock Variables [[high-cut-clock-variables]]
38-
In order to use FMU input and output variables as transport layer for networks, input and output Clocks are used.
40+
In order to use FMU input and output variables as transport layer for networks, Clocks are used to indicate the timing.
3941
Such a Clock is scheduled by the sending FMU to indicate the transmission of the corresponding frame or frames.
4042

41-
The output Clock type, `periodic` or `aperiodic`, is defined by the sending FMU.
42-
This allows the FMU (or better the exporting tool) to balance the accuracy and performance of its network communication:
43+
The Clock type (`periodic` or `aperiodic`) is defined by the sending FMU.
4344

44-
- While `aperiodic` Clocks allow very accurate network simulations, frequently entering `Event Mode` might reduce the network simulation speed.
45-
- Using `periodic` Clocks reduces the number of `Event Modes` required and might speeds up the simulation at the cost of simulation accuracy, because timing must be forced into a fixed grid and some intermediate values might not be transmitted.
46-
- One could use (structural) parameters to define the accuracy of `aperiodic` Clocks, allowing control of the simulation accuracy and performance with the same FMU.
47-
- The input Clocks shall be `triggered` Clocks.
45+
_[This allows the FMU (or better the exporting tool) to balance the accuracy and performance of its network communication:_
4846

49-
The importer will then connect and merge output Clock activations, even those of different Clock types, and forwards them to the input Clocks, as required by the network semantics.
5047

51-
Signal variables belonging to frame `BusName.FrameName` are triggered by the Clock `BusName.FrameName_Clock` and all these variables and their corresponding Clock must share the same `causality` (`input` or `output`).
48+
_- While `aperiodic` Clocks allow very accurate network simulations, frequently entering `Event Mode` might reduce the network simulation speed._
5249

53-
_[Note: The statements regarding `aperiodic` and `periodic` Clocks and their impact on performance should be understood as general tendencies rather than universally valid truths, as other aspects such as baud rates and expected bus loads must be taken into account for a more precise estimate.]_
50+
_- Using `periodic` Clocks might reduces the number of `Event Modes` required and might speeds up the simulation at the cost of simulation accuracy, because timing must be forced into a fixed grid and some intermediate values might not be transmitted._
51+
52+
_- One could use (structural) parameters to define the accuracy of `aperiodic` Clocks, allowing control of the simulation accuracy and performance with the same FMU._
53+
54+
_Note: The statements regarding `aperiodic` and `periodic` Clocks and their impact on performance should be understood as general tendencies rather than universally valid truths, as other aspects such as baud rates and expected bus loads must be taken into account for a more precise estimate.]_
55+
56+
The Clocks of a receiving frame shall be `triggered` Clocks if they are to be driven by the respective Clock of the sending frame.
57+
Alternatively, Clocks of a receiving frame can be `periodic` Clocks matching the relevant Clock of the sending frame, which causes them to be scheduled for the same time instances
58+
_[This may allow for more efficient simulation in the case that there exists a more or less static communications schedule, and more detailed simulation of timing variation is not needed.]_
59+
60+
Signal variables belonging to frame `BusName.FrameName` and all its variables must share the same `causality` (`input` or `output`).
5461

5562
=== Network Description Files [[high-cut-network-description-files,network description file]]
5663
Standardized <<high-cut-network-description-files,network description files>> may optionally be shipped with each FMU to describe properties of signals and frames, such as signal units, frame composition and trigger conditions.
@@ -123,7 +130,7 @@ All <<high-cut-terminal-member-variable-for-signals,`TerminalMemberVariables`>>
123130

124131
Attribute definitions::
125132
* `variableName` refers to the input or output variable name of the FMU.
126-
These variables represent the Signal Abstraction layer.
133+
These variables represent the Physical Signal Abstraction layer.
127134
Unless there are other requirements, it is recommended to build the variable names as follows: `BusName.FrameName.PDUName.SignalName`, e.g., `Powertrain.tcuSensors.tcuSensors.vCar`.
128135
This approach automatically provides unique names for all bus-related variables, and can also be used for the Clock variables, to allow automatic grouping by non-terminal-aware tools.
129136
* `memberName` is the `SignalName` as given in the <<high-cut-network-description-files>>, e.g., `vCar`, if given.
@@ -191,12 +198,12 @@ The following AUTOSAR system extract (in ARXML format) shows the mapping of an A
191198
<SHORT-NAME>SystemExtract</SHORT-NAME>
192199
<ELEMENTS>
193200
<CAN-CLUSTER>
194-
<SHORT-NAME>Powertrain</SHORT-NAME>
201+
<SHORT-NAME>PowertrainCluster</SHORT-NAME>
195202
<CAN-CLUSTER-VARIANTS>
196203
<CAN-CLUSTER-CONDITIONAL>
197204
<PHYSICAL-CHANNELS>
198205
<CAN-PHYSICAL-CHANNEL>
199-
<SHORT-NAME>tcuSensors</SHORT-NAME>
206+
<SHORT-NAME>Powertrain</SHORT-NAME>
200207
<FRAME-TRIGGERINGS>
201208
<CAN-FRAME-TRIGGERING>
202209
<SHORT-NAME>tcuSensors_FrameTriggering</SHORT-NAME>
@@ -250,6 +257,7 @@ The following file shows the <<high-cut-bus-terminal,Bus Terminal>> definition r
250257
The `name` of the <<high-cut-frame-terminal,frame terminal>> is derived from the ShortName attribute of the respective AUTOSAR frame.
251258
The `name` of the <<high-cut-pdu-terminal,PDU terminal>> is derived from the ShortName attribute of the respective AUTOSAR PDU.
252259
The `SignalName`, and so the resulting `memberName`, is derived from the respective AUTOSAR ISignal.
260+
The `BusName` is derived from the AUTOSAR Cluster ShortName concatenated via a `.` character with the AUTOSAR Physical Channel ShortName.
253261

254262
.Example terminalsAndIcons.xml file.
255263
[[example-terminalsAndIconHighCut-autosar-xml]]

docs/4____network_abstraction.adoc

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -123,11 +123,11 @@ Sending a CAN frame is represented by the Bus Operation: CAN Transmit.
123123
Since the FMI-LS-BUS describes the simulation of network communication above the electrical level, not all content of a CAN frame is relevant.
124124
The corresponding argument values ​​do not have to be analogous to those of the original frame representation.
125125
Argument values can be transformed, i.e., presented in a different form, for easier use.
126-
<<figure-bus-operation-can-frame-mapping-example>> illustrates the mapping between the FMI-LS-BUS CAN Transmit Bus Operation and a CAN Standard Data Frame.
126+
<<figure-bus-operation-can-frame-mapping-example>> illustrates the mapping between the FMI-LS-BUS CAN Transmit Bus Operation and a Standard CAN Data Frame.
127127
The information that can be mapped directly is shown in green.
128128
The yellow representation describes transformed values and the information shown in red is not required/used.
129129

130-
.Mapping between the FMI-LS-BUS CAN Transmit Bus Operation and a CAN Standard Data Frame.
130+
.Mapping between the FMI-LS-BUS CAN Transmit Bus Operation and a Standard CAN Data Frame.
131131
[#figure-bus-operation-can-frame-mapping-example]
132132
image::bus_operation_can_frame_mapping_example.svg[width=65%, align="center"]
133133

@@ -208,7 +208,7 @@ Since Clock variables are strictly related to the `Event Mode`, networked FMUs s
208208
The point in time where Bus Operations are transferred from the `Tx_Data` to the `Rx_Data` variables is defined by the `Tx_Clock` variable.
209209
This point is also referred to as the Bus Communication Point.
210210
A Bus Communication Point and a regular communication point can take place at the same time, but should be considered as independent by the importer.
211-
In contrast to a regular communication point where input/output variables used in step mode are exchanged, only the clocked Tx/Rx data variables need to be considered by the importer.
211+
In contrast to a regular communication point where input/output variables used in `Step Mode` are exchanged, only the clocked Tx/Rx data variables need to be considered by the importer.
212212

213213
For defining the point in time of a Bus Communication Point, `time-based` or `triggered` Clocks can be used for the `Tx_Clock` variable.
214214
Hence the Clock type can influence the bus simulation significantly - the differences should be taken into account.
@@ -236,23 +236,23 @@ To make sure that the `Rx_Data` variables is set properly, an importer has to ac
236236

237237
_[Note: For clarity always a direct connection line between the `Tx_Clock` and `Rx_Clock` variables is shown in figures of this document.]_
238238

239-
A `time-based` Clock can be `periodic` or `aperiodic`.
239+
_A `time-based` Clock can be `periodic` or `aperiodic`.
240240
Both allow defining Bus Communication Points independently of the regular communication points with fixed or variable distances.
241-
The difference between the two Clock types is listed in the following table.
241+
<<table-tx-clock-properties>> describes how the usage of different FMI Clock types affects how Bus Communication Points are realized inside the specified FMU._
242242

243243
.Time-based Clock properties.
244244
[#table-tx-clock-properties]
245245
[cols="3,1,7"]
246246
|====
247247
h|Clock properties h|intervalVariability h|Description
248-
|`periodic`|`constant`|The Bus Communication Point interval is defined in the `modelDescription.xml`.
249-
|`periodic`|`fixed`|The Bus Communication Point interval is defined in the `modelDescription.xml` or must be provided in `Initialization Mode`.
250-
|`periodic`|`tunable`|The Bus Communication Point interval is defined in the `modelDescription.xml` or must be provided in `Initialization Mode` and can be changed in `Event Mode`.
251-
|`aperiodic`|`changing`|The Bus Communication Point interval must be provided in `Initialization Mode` and can be changed in `Event Mode` if this Clock ticked.
252-
|`aperiodic`|`countdown`|The Bus Communication Point interval must be provided in `Initialization Mode` and can be changed in every `Event Mode`.
248+
|`periodic`|`constant`|_The Bus Communication Point interval is defined in the `modelDescription.xml` and is constant during simulation._
249+
|`periodic`|`fixed`|_The Bus Communication Point interval gets fixed during `Initialization Mode` and stays fixed during simulation._
250+
|`periodic`|`tunable`|_The Bus Communication Point interval can change in any `Event Mode`._
251+
|`aperiodic`|`changing`|_The Bus Communication Point interval can change in any `Event Mode` if this Clock ticked._
252+
|`aperiodic`|`countdown`|_The Bus Communication Point interval can change in any `Event Mode`, where the interval can also be unknown in some `Event Mode`._
253253
|====
254254

255-
Network FMUs using a `time-based` `Tx_Clock` variable should set the Co-Simulation attribute `canHandleVariableCommunicationStepSize = "true"` in the model description file, since `fmi3DoStep` is typically called with variable `communicationStepSize`.
255+
_Network FMUs using a `time-based` `Tx_Clock` variable should set the Co-Simulation attribute `canHandleVariableCommunicationStepSize = "true"` in the model description file, since `fmi3DoStep` is typically called with variable `communicationStepSize`._
256256

257257
===== Triggered Tx Clock Variables [[low-cut-tx-triggered-clock-variables]]
258258
A `triggered` Clock basically allows signalling events when returning from `fmi3DoStep` either by using an `Early Return` or when the requested communication point at latexmath:[t_{i+1}] was reached.
@@ -269,15 +269,15 @@ image::low_cut_communication_with_triggered_tx_clock.svg[width=100%, align="cent
269269
The input Clocks (`Rx_Clock`) shall be `triggered` Clocks.
270270

271271
==== Tx/Rx Data Variables [[low-cut-tx-rx-data-variables, Communication Variables]]
272-
The Tx/Rx variables are of type `fmi3Binary` and contain multiple Bus Operations, as sent or receive by the FMU.
272+
The `Tx_Data`/`Rx_Data` variables are of type `fmi3Binary` and may contain zero, one or multiple Bus Operations, as sent or received by the FMU.
273273
If no Bus Operations shall be sent by a specified Network FMU at a given Bus Communication Point, the size of the corresponding binary `Tx_Data` variable shall be set to zero.
274-
The senders can choose how many Bus Operations are buffered and/or for how long operations are buffered before activating an output Clock to trigger the actual sending of these operations.
274+
Sender FMUs can choose how many Bus Operations are buffered and/or for how long operations are buffered before activating an output Clock to trigger the actual sending of these operations.
275275
This allows senders to trade accuracy for speed: Buffering more and interrupting the simulation less will lead to faster simulations, but less accurate timing of the network communication.
276276

277277
==== Selecting the type of Tx Clock [[low-cut-selecting-tx-variables]]
278-
Selecting suitable Tx variables allows the FMU (or better the exporting tool) to balance the accuracy and performance of its network communication:
278+
Selecting a suitable `intervalVariability` for `Tx Clock' allows the FMU (or better the exporting tool) to balance the accuracy and performance of its network communication:
279279

280-
- While `aperiodic` Clocks allow very accurate network simulations, frequently entering `Event Mode` migth reduce the network simulation speed.
280+
- While `aperiodic` Clocks allow very accurate network simulations, frequently entering `Event Mode` might reduce the network simulation speed.
281281
- Using `periodic` Clocks and queueing the operations to be transmitted reduces the number of `Event Mode` entries and might speeds up the simulation at the cost of simulation accuracy.
282282
- One could use (structural) parameters to define the accuracy of `aperiodic` Clocks, allowing control of the simulation accuracy and performance with the same FMU.
283283

@@ -296,7 +296,7 @@ The following table lists the MIME types to use for the Tx/Rx data variables wit
296296
|MIME type
297297
|Description
298298

299-
|application/org.fmi-standard.fmi-ls-bus.can; version="1.0.0-rc.1"
299+
|application/org.fmi-standard.fmi-ls-bus.can; version="1.0.0-rc.2"
300300
|Binary variables simulating a CAN network including CAN, CAN FD and CAN XL
301301

302302
|====

docs/examples/X_network4FMI_modelDescription_highCut_autosar.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
<fmiModelDescription fmiVersion="3.0" modelName="Network4FMI"
33
instantiationToken="Network4FMI">
44
<ModelVariables>
5-
<Clock name="Powertrain.tcuSensors_FrameTriggering_Clock" valueReference="1007"
5+
<Clock name="PowertrainCluster.Powertrain.tcuSensors_FrameTriggering_Clock" valueReference="1007"
66
causality="input" variability="discrete" intervalVariability="triggered"/>
7-
<Float64 name="Powertrain.tcuSensors.vCar_ISignalTriggering" valueReference="1005"
7+
<Float64 name="PowertrainCluster.Powertrain.tcuSensors.vCar_ISignalTriggering" valueReference="1005"
88
causality="input" variability="discrete" start="0" clocks="1007"/>
9-
<Float64 name="Powertrain.tcuSensors.oilTemp_ISignalTriggering" valueReference="1006"
9+
<Float64 name="PowertrainCluster.Powertrain.tcuSensors.oilTemp_ISignalTriggering" valueReference="1006"
1010
causality="input" variability="discrete" start="20" clocks="1007"/>
1111
</ModelVariables>
1212
<ModelStructure>

0 commit comments

Comments
 (0)