Initial CAN Physical Layer spec
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Architecture diagram sources
|
||||
|
||||
The architecture Markdown embeds these 22 SVG figures. Matching PNG previews
|
||||
The architecture Markdown embeds these 23 SVG figures. Matching PNG previews
|
||||
are provided for viewers that do not support SVG. Diagrams describe the working
|
||||
architecture; component qualification and schematic-release requirements remain
|
||||
in the parent documents.
|
||||
@@ -11,6 +11,7 @@ in the parent documents.
|
||||
| --- | --- |
|
||||
| Power | [Sources](power-sources.svg), [protected branches](power-branches.svg) |
|
||||
| Analogue acquisition | [Passive input](analog-input.svg), [thermistor](thermistor.svg), [ratiometric acquisition](ratiometric.svg) |
|
||||
| Vehicle CAN FD | [Trunk, termination and service access](can-topology.svg) |
|
||||
| Timing inputs | [Crank/cam interface](trigger-input.svg) |
|
||||
| Deadman | [Contacts and diagnostics](deadman-inputs.svg), [permit gates](deadman-permit.svg), [output gates](deadman-outputs.svg) |
|
||||
| Ignition | [Power](ignition-power.svg), [commands](ignition-command.svg), [current flag](ignition-flag.svg), [grounding](ignition-ground.svg) |
|
||||
@@ -20,8 +21,10 @@ in the parent documents.
|
||||
|
||||
## Editing and regeneration
|
||||
|
||||
- The 12 block figures have editable `.drawio` sources. Open them in draw.io.
|
||||
`build_blocks.py` recreates their baseline layout and `block-connections.json`.
|
||||
- The 13 block figures have editable `.drawio` sources. Open them in draw.io.
|
||||
`build_blocks.py` recreates the original 12 block layouts and `block-connections.json`.
|
||||
The CAN topology is maintained directly in `can-topology.drawio`, with its
|
||||
own `can-topology.connections.json` manifest; the builder does not overwrite it.
|
||||
Running it overwrites manual layout edits, so update the generator when those
|
||||
edits should be reproducible, or export the edited `.drawio` directly.
|
||||
- The 10 circuit/logic figures are generated by `build_circuits.py`, with a
|
||||
|
||||
@@ -0,0 +1,132 @@
|
||||
{
|
||||
"title": "Vehicle CAN FD topology",
|
||||
"source": "IO_MODULES/CAN_PHYSICAL_LAYER.md: Topology, termination, and service access",
|
||||
"nodes": {
|
||||
"title": {
|
||||
"label": "Vehicle CAN FD \u00b7 continuous linear trunk",
|
||||
"bounds": [
|
||||
30,
|
||||
20,
|
||||
1100,
|
||||
45
|
||||
]
|
||||
},
|
||||
"subtitle": {
|
||||
"label": "500 kbit/s arbitration \u00b7 2 Mbit/s data phase \u00b7 approximately 2\u20132.5 m end-to-end",
|
||||
"bounds": [
|
||||
30,
|
||||
75,
|
||||
1100,
|
||||
40
|
||||
]
|
||||
},
|
||||
"rear": {
|
||||
"label": "Rear endpoint\n120 \u03a9 across CAN_H / CAN_L",
|
||||
"bounds": [
|
||||
30,
|
||||
170,
|
||||
290,
|
||||
105
|
||||
]
|
||||
},
|
||||
"ecu": {
|
||||
"label": "ECU \u00b7 local PCB junction\nMid-bus connection",
|
||||
"bounds": [
|
||||
440,
|
||||
170,
|
||||
280,
|
||||
105
|
||||
]
|
||||
},
|
||||
"front": {
|
||||
"label": "Front endpoint\n120 \u03a9 across CAN_H / CAN_L",
|
||||
"bounds": [
|
||||
840,
|
||||
170,
|
||||
290,
|
||||
105
|
||||
]
|
||||
},
|
||||
"distance1": {
|
||||
"label": "0.5\u20131 m",
|
||||
"bounds": [
|
||||
320,
|
||||
130,
|
||||
120,
|
||||
40
|
||||
]
|
||||
},
|
||||
"distance2": {
|
||||
"label": "1\u20131.5 m",
|
||||
"bounds": [
|
||||
720,
|
||||
130,
|
||||
120,
|
||||
40
|
||||
]
|
||||
},
|
||||
"ecu_note": {
|
||||
"label": "ECU transceiver joins locally on PCB.\nOptional ECU 120 \u03a9 termination: OPEN in V1;\nenable only if the ECU becomes an endpoint.",
|
||||
"bounds": [
|
||||
340,
|
||||
305,
|
||||
710,
|
||||
90
|
||||
]
|
||||
},
|
||||
"service": {
|
||||
"label": "Debug / service connector\nCAN_H \u00b7 CAN_L \u00b7 CAN_0V\nVery short PCB branch\nNo termination",
|
||||
"bounds": [
|
||||
440,
|
||||
480,
|
||||
350,
|
||||
110
|
||||
]
|
||||
},
|
||||
"busport": {
|
||||
"label": "Same local ECU bus",
|
||||
"bounds": [
|
||||
60,
|
||||
490,
|
||||
270,
|
||||
80
|
||||
]
|
||||
},
|
||||
"foot": {
|
||||
"label": "Lines above represent the CAN_H / CAN_L twisted pair, not individual conductors.\nAll nodes also share the defined CAN_0V reference. Avoid a long attached service cable.",
|
||||
"bounds": [
|
||||
30,
|
||||
625,
|
||||
1100,
|
||||
55
|
||||
]
|
||||
}
|
||||
},
|
||||
"connections": [
|
||||
{
|
||||
"from": "rear",
|
||||
"to": "ecu",
|
||||
"label": ""
|
||||
},
|
||||
{
|
||||
"from": "ecu",
|
||||
"to": "front",
|
||||
"label": ""
|
||||
},
|
||||
{
|
||||
"from": "busport",
|
||||
"to": "service",
|
||||
"label": ""
|
||||
}
|
||||
],
|
||||
"continuations": {
|
||||
"busport": "ecu"
|
||||
},
|
||||
"bus_model": "Each trunk line represents the differential CAN_H/CAN_L pair. CAN_0V is a separate shared reference.",
|
||||
"termination": {
|
||||
"rear": "120 ohm across CAN_H/CAN_L",
|
||||
"front": "120 ohm across CAN_H/CAN_L",
|
||||
"ecu": "120 ohm option, solder jumper normally open; endpoint use only",
|
||||
"service": "none"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<mxfile host="app.diagrams.net">
|
||||
<diagram name="Vehicle CAN FD topology" id="can-topology">
|
||||
<mxGraphModel page="1" pageWidth="1160" pageHeight="680">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="title" value="Vehicle CAN FD · continuous linear trunk" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=26;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f0fc;strokeColor=none;fillColor=none;align=left;" vertex="1" parent="1">
|
||||
<mxGeometry x="30" y="20" width="1100" height="45" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="subtitle" value="500 kbit/s arbitration · 2 Mbit/s data phase · approximately 2–2.5 m end-to-end" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f0fc;strokeColor=none;fillColor=none;align=left;" vertex="1" parent="1">
|
||||
<mxGeometry x="30" y="75" width="1100" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="rear" value="Rear endpoint 120 Ω across CAN_H / CAN_L" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f4ed;" vertex="1" parent="1">
|
||||
<mxGeometry x="30" y="170" width="290" height="105" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ecu" value="ECU · local PCB junction Mid-bus connection" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f0fc;" vertex="1" parent="1">
|
||||
<mxGeometry x="440" y="170" width="280" height="105" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="front" value="Front endpoint 120 Ω across CAN_H / CAN_L" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f4ed;" vertex="1" parent="1">
|
||||
<mxGeometry x="840" y="170" width="290" height="105" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="rear_ecu" source="rear" target="ecu" value="" edge="1" parent="1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;startArrow=none;endArrow=none;strokeWidth=3;strokeColor=#416680;fontSize=18;fontFamily=DejaVu Sans;labelBackgroundColor=#ffffff;exitX=1;exitY=0.5;entryX=0;entryY=0.5;">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ecu_front" source="ecu" target="front" value="" edge="1" parent="1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;startArrow=none;endArrow=none;strokeWidth=3;strokeColor=#416680;fontSize=18;fontFamily=DejaVu Sans;labelBackgroundColor=#ffffff;exitX=1;exitY=0.5;entryX=0;entryY=0.5;">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="distance1" value="0.5–1 m" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=17;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f0fc;strokeColor=none;fillColor=none;align=left;" vertex="1" parent="1">
|
||||
<mxGeometry x="320" y="130" width="120" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="distance2" value="1–1.5 m" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=17;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f0fc;strokeColor=none;fillColor=none;align=left;" vertex="1" parent="1">
|
||||
<mxGeometry x="720" y="130" width="120" height="40" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ecu_note" value="ECU transceiver joins locally on PCB. Optional ECU 120 Ω termination: OPEN in V1; enable only if the ECU becomes an endpoint." style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f0fc;strokeColor=none;fillColor=none;align=left;" vertex="1" parent="1">
|
||||
<mxGeometry x="340" y="305" width="710" height="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="service" value="Debug / service connector CAN_H · CAN_L · CAN_0V Very short PCB branch No termination" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#eef0f3;" vertex="1" parent="1">
|
||||
<mxGeometry x="440" y="480" width="350" height="110" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="busport" value="Same local ECU bus" style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=18;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f0fc;" vertex="1" parent="1">
|
||||
<mxGeometry x="60" y="490" width="270" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="service_branch" source="busport" target="service" value="" edge="1" parent="1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;html=0;startArrow=none;endArrow=none;strokeWidth=2;strokeColor=#416680;fontSize=18;fontFamily=DejaVu Sans;labelBackgroundColor=#ffffff;exitX=1;exitY=0.5;entryX=0;entryY=0.5;">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="foot" value="Lines above represent the CAN_H / CAN_L twisted pair, not individual conductors. All nodes also share the defined CAN_0V reference. Avoid a long attached service cable." style="rounded=1;html=0;fontFamily=DejaVu Sans;fontSize=17;fontColor=#172b40;strokeColor=#577086;fillColor=#e8f0fc;strokeColor=none;fillColor=none;align=left;" vertex="1" parent="1">
|
||||
<mxGeometry x="30" y="625" width="1100" height="55" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 68 KiB |
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 14 KiB |
Reference in New Issue
Block a user