Skip to content

Commit 7a9616f

Browse files
committed
Add initial material for Telltale analysis
Signed-off-by: Paul Albertella <[email protected]>
1 parent 36ceeec commit 7a9616f

File tree

5 files changed

+96
-0
lines changed

5 files changed

+96
-0
lines changed

safety-analysis/telltale/README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Telltale Safety Analysis
2+
3+
## Purpose and scope
4+
5+
This section of the repository the OSEP working group's analysis of the Automotive Working Group's [Instrument Cluster use case](https://github.com/elisa-tech/wg-automotive/tree/master/Cluster_Display_Use_Case_v2).
6+
7+
There are two distinct parts to this:
8+
9+
* General instrument cluster / dashboard display (non-safety)
10+
* Specific telltale notifications as part of this display
11+
12+
Our focus is on the specific mechanism that verifies that the telltales are displayed correctly, and the roles and responsibilities that Linux has in supporting this. 'Displayed correctly' in this context means that the rendering of the telltale portions of the display have resulted in a specified result on the screen, within an specified timeframe.
13+
14+
Looking at [this diagram](https://raw.githubusercontent.com/elisa-tech/wg-automotive/master/Cluster_Display_Use_Case_v2/stpa/Telltale-control-structure-minimal.svg) from the Automotive WG:
15+
16+
* The system boundary is an ECU running an operating system (involving Linux) that is responsible for executing the cluster display and associated processing
17+
* The checking control and safety manager are the safety-relevant components that implement the safety mechanism
18+
* The dashboard manager may also be safety relevant, because it provides the input data to the checking control
19+
* The watchdog may be internal to the ECU or external (future design decision)
20+
21+
The latter is an additional safety mechanism that has been proactively added in the system concept, but we may want to omit it for our initial stage of analysis, to better understand the context that may make it necessary, and explore other options.
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
digraph G {
2+
3+
node [shape=box width=1 height=0.5
4+
fontname=arial fontsize=16
5+
style=filled fillcolor=white]
6+
graph [splines=ortho ranksep=0.8 newrank=true
7+
nodesep=0.8 compound=true
8+
fontname=arial fontsize=16]
9+
10+
subgraph cluster_cluster {
11+
label="Instrument Cluster" style=rounded labeljust=l margin=15
12+
init [label="Init process" width=3]
13+
subgraph cluster_processes {
14+
label="Other processes" fontsize=12
15+
style=rounded penwidth=0.5
16+
margin=10 bgcolor=lightgrey
17+
receiver [label="Dashboard\nManager" width=3.5]
18+
checker [label="Telltale\nChecking" penwidth=3]
19+
other [label="Other GUI\nprocesses"]
20+
render [label="GUI\nRendering" width=3]
21+
}
22+
os [label="Linux\nKernel" width=5]
23+
}
24+
can [label="Communications"]
25+
display [label="Display"]
26+
27+
{rank=same; checker; render}
28+
29+
init -> os
30+
init -> os [dir=back]
31+
init -> os [dir=back style=dashed]
32+
init -> receiver [lhead=cluster_processes]
33+
init -> receiver [dir=back style=dashed lhead=cluster_processes]
34+
receiver -> checker
35+
receiver -> render
36+
render -> os [ltail=cluster_processes]
37+
render -> os [dir=back style=dashed ltail=cluster_processes]
38+
other -> render
39+
render -> checker
40+
checker -> os
41+
receiver -> os [dir=back style=dashed]
42+
os -> can
43+
os -> can [dir=back style=dashed]
44+
os -> display
45+
}
36.4 KB
Loading
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
digraph G {
2+
3+
node [shape=box width=1 height=0.5
4+
fontname=arial fontsize=16
5+
style=filled fillcolor=white]
6+
graph [splines=ortho ranksep=0.5 newrank=true
7+
nodesep=0.2 compound=true
8+
fontname=arial fontsize=16]
9+
10+
driver [label="Driver of\n vehicle"]
11+
subgraph cluster_vehicle {
12+
label="Vehicle systems" style=rounded
13+
source [label="Other\nSource"]
14+
requester [label="Telltale\nSource"]
15+
}
16+
cluster [label="Instrument\nCluster" style=bold width=2.5]
17+
display [label="Display" width=2]
18+
watchdog [label="Watchdog"]
19+
backlight [label="Display backlight"]
20+
21+
{rank=same; driver;source}
22+
driver->display [dir=back style=dashed]
23+
source -> cluster
24+
requester -> cluster
25+
cluster -> watchdog
26+
cluster -> display
27+
cluster -> display [dir=back style=dashed]
28+
watchdog -> backlight
29+
display -> backlight [dir=back style=dashed]
30+
}
23.2 KB
Loading

0 commit comments

Comments
 (0)