Reviewd and fixed deadman architecture

This commit is contained in:
2026-09-10 23:53:27 +02:00
parent 31b3595ac0
commit f8d111ef5c
15 changed files with 304 additions and 305 deletions
+61 -38
View File
@@ -1,58 +1,81 @@
<?xml version='1.0' encoding='utf-8'?>
<mxfile host="app.diagrams.net">
<diagram name="Deadman contacts and observations" id="deadman-inputs">
<mxGraphModel page="1" pageWidth="1040" pageHeight="650" grid="1" gridSize="10">
<diagram name="Parallel switches · one ECU deadman input" id="deadman-inputs">
<mxGraphModel page="1" pageWidth="1040" pageHeight="750" grid="1" gridSize="10">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="node_title" value="Deadman contacts and observations" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=26;fontColor=#172b40;strokeColor=#577086;fillColor=#ffffff;spacing=10;strokeColor=none;fillColor=none;align=left;" vertex="1" parent="1">
<mxCell id="node_title" value="Parallel switches · one ECU deadman input" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=26;fontColor=#172b40;strokeColor=#577086;fillColor=#ffffff;spacing=10;strokeColor=none;fillColor=none;align=left;" vertex="1" parent="1">
<mxGeometry x="30" y="18" width="980" height="42" as="geometry" />
</mxCell>
<mxCell id="node_As" value="Protected 5 V&#10;Independent NO contact A" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#fff1d6;spacing=10;" vertex="1" parent="1">
<mxGeometry x="30" y="100" width="260" height="80" as="geometry" />
<mxCell id="node_supply" value="Protected 5 V" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#fff1d6;spacing=10;" vertex="1" parent="1">
<mxGeometry x="30" y="200" width="220" height="80" as="geometry" />
</mxCell>
<mxCell id="node_Ap" value="Protected input A&#10;Own filter + default-low bias" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f0fc;spacing=10;" vertex="1" parent="1">
<mxGeometry x="370" y="100" width="290" height="80" as="geometry" />
<mxCell id="node_left" value="Left NO switch&#10;Held = closed" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f4ed;spacing=10;" vertex="1" parent="1">
<mxGeometry x="340" y="90" width="230" height="80" as="geometry" />
</mxCell>
<mxCell id="node_Ah" value="DEADMAN_A_HELD&#10;5 V · non-inverting" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f0fc;spacing=10;" vertex="1" parent="1">
<mxGeometry x="750" y="100" width="260" height="80" as="geometry" />
<mxCell id="node_right" value="Right NO switch&#10;Held = closed" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f4ed;spacing=10;" vertex="1" parent="1">
<mxGeometry x="340" y="300" width="230" height="80" as="geometry" />
</mxCell>
<mxCell id="node_Ad" value="DEADMAN_A_STATUS&#10;3.3 V · held = high → MCU" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f4ed;spacing=10;" vertex="1" parent="1">
<mxGeometry x="370" y="220" width="330" height="75" as="geometry" />
<mxCell id="node_shared" value="DEADMAN_IN&#10;Joined at steering wheel" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f0fc;spacing=10;" vertex="1" parent="1">
<mxGeometry x="740" y="200" width="270" height="80" as="geometry" />
</mxCell>
<mxCell id="e0" source="node_As" target="node_Ap" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;strokeWidth=2;strokeColor=#416680;fontSize=16;fontFamily=DejaVu Sans;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" edge="1" parent="1">
<mxCell id="e0" source="node_supply" target="node_left" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;strokeWidth=2;strokeColor=#416680;fontSize=16;fontFamily=DejaVu Sans;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="290" y="240" />
<mxPoint x="290" y="130" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="e1" source="node_supply" target="node_right" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;strokeWidth=2;strokeColor=#416680;fontSize=16;fontFamily=DejaVu Sans;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="290" y="240" />
<mxPoint x="290" y="340" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="e2" source="node_left" target="node_shared" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;strokeWidth=2;strokeColor=#416680;fontSize=16;fontFamily=DejaVu Sans;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="660" y="130" />
<mxPoint x="660" y="240" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="e3" source="node_right" target="node_shared" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;strokeWidth=2;strokeColor=#416680;fontSize=16;fontFamily=DejaVu Sans;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="660" y="340" />
<mxPoint x="660" y="240" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="node_note390" value="Switches are physically in parallel. Either held → asserted; both released → deasserted." style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=16;fontColor=#172b40;strokeColor=#577086;fillColor=#ffffff;spacing=10;strokeColor=none;fillColor=none;align=left;" vertex="1" parent="1">
<mxGeometry x="30" y="390" width="980" height="60" as="geometry" />
</mxCell>
<mxCell id="node_input" value="DEADMAN_IN&#10;One ECU signal pin" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f0fc;spacing=10;" vertex="1" parent="1">
<mxGeometry x="30" y="490" width="240" height="80" as="geometry" />
</mxCell>
<mxCell id="node_conditioning" value="Protection + filter&#10;Default-low bias" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f0fc;spacing=10;" vertex="1" parent="1">
<mxGeometry x="340" y="490" width="270" height="80" as="geometry" />
</mxCell>
<mxCell id="node_ok" value="DEADMAN_OK&#10;5 V · hardware gates" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f0fc;spacing=10;" vertex="1" parent="1">
<mxGeometry x="740" y="490" width="270" height="80" as="geometry" />
</mxCell>
<mxCell id="node_status" value="DEADMAN_STATUS&#10;3.3 V → one MCU input" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f4ed;spacing=10;" vertex="1" parent="1">
<mxGeometry x="340" y="630" width="310" height="80" as="geometry" />
</mxCell>
<mxCell id="e4" source="node_input" target="node_conditioning" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;strokeWidth=2;strokeColor=#416680;fontSize=16;fontFamily=DejaVu Sans;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e1" source="node_Ap" target="node_Ah" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;strokeWidth=2;strokeColor=#416680;fontSize=16;fontFamily=DejaVu Sans;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" edge="1" parent="1">
<mxCell id="e5" source="node_conditioning" target="node_ok" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;strokeWidth=2;strokeColor=#416680;fontSize=16;fontFamily=DejaVu Sans;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e2" source="node_Ap" target="node_Ad" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;strokeWidth=2;strokeColor=#416680;fontSize=16;fontFamily=DejaVu Sans;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1">
<mxCell id="e6" source="node_conditioning" target="node_status" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;strokeWidth=2;strokeColor=#416680;fontSize=16;fontFamily=DejaVu Sans;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="node_Bs" value="Protected 5 V&#10;Independent NO contact B" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#fff1d6;spacing=10;" vertex="1" parent="1">
<mxGeometry x="30" y="345" width="260" height="80" as="geometry" />
</mxCell>
<mxCell id="node_Bp" value="Protected input B&#10;Own filter + default-low bias" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f0fc;spacing=10;" vertex="1" parent="1">
<mxGeometry x="370" y="345" width="290" height="80" as="geometry" />
</mxCell>
<mxCell id="node_Bh" value="DEADMAN_B_RELEASED&#10;5 V · inverting" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f0fc;spacing=10;" vertex="1" parent="1">
<mxGeometry x="750" y="345" width="260" height="80" as="geometry" />
</mxCell>
<mxCell id="node_Bd" value="DEADMAN_B_STATUS&#10;3.3 V · held = high → MCU" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f4ed;spacing=10;" vertex="1" parent="1">
<mxGeometry x="370" y="465" width="330" height="75" as="geometry" />
</mxCell>
<mxCell id="e3" source="node_Bs" target="node_Bp" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;strokeWidth=2;strokeColor=#416680;fontSize=16;fontFamily=DejaVu Sans;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e4" source="node_Bp" target="node_Bh" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;strokeWidth=2;strokeColor=#416680;fontSize=16;fontFamily=DejaVu Sans;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;exitX=1;exitY=0.5;entryX=0;entryY=0.5;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="e5" source="node_Bp" target="node_Bd" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;strokeWidth=2;strokeColor=#416680;fontSize=16;fontFamily=DejaVu Sans;labelBackgroundColor=#ffffff;endArrow=block;endFill=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="node_note575" value="Separate harness paths. MCU status observations are diagnostic; the 5 V signals feed the permit gates." style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=16;fontColor=#172b40;strokeColor=#577086;fillColor=#ffffff;spacing=10;strokeColor=none;fillColor=none;align=left;" vertex="1" parent="1">
<mxGeometry x="30" y="575" width="980" height="60" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>