增加了相关文档说明
236
docs/绘图/.$SPI_Waveform_CPHA0.drawio.bkp
Normal file
@@ -0,0 +1,236 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mxfile host="app.diagrams.net" modified="2024-05-25T00:00:00.000Z" agent="AI" version="21.0.0" type="device">
|
||||
<diagram name="SPI Waveform" id="spi_waveform">
|
||||
<mxGraphModel dx="1000" dy="600" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1000" pageHeight="600" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
<mxCell id="grid" value="" style="points=[];gridColor=#e0e0e0;gridSize=20;spacingTop=20;spacingLeft=20;spacingBottom=20;spacingRight=20;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="0" y="0" width="1000" height="600" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="title" value="SPI 全双工传输 (模式 0: CPOL=0, CPHA=0)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="300" y="20" width="400" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="msb" value="MSB" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="130" y="60" width="40" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="lsb" value="LSB" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="880" y="60" width="40" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="label_cs" value="CS" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="85" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="label_sclk" value="SCLK" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="185" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="label_mosi" value="MOSI" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="275" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="label_miso" value="MISO" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="365" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="vl_150" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="150" y="180" as="sourcePoint"/>
|
||||
<mxPoint x="150" y="420" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="vl_250" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="250" y="180" as="sourcePoint"/>
|
||||
<mxPoint x="250" y="420" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="vl_350" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="350" y="180" as="sourcePoint"/>
|
||||
<mxPoint x="350" y="420" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="vl_450" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="450" y="180" as="sourcePoint"/>
|
||||
<mxPoint x="450" y="420" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="vl_550" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="550" y="180" as="sourcePoint"/>
|
||||
<mxPoint x="550" y="420" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="vl_650" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="650" y="180" as="sourcePoint"/>
|
||||
<mxPoint x="650" y="420" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="vl_750" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="750" y="180" as="sourcePoint"/>
|
||||
<mxPoint x="750" y="420" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="vl_850" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="850" y="180" as="sourcePoint"/>
|
||||
<mxPoint x="850" y="420" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="cs" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#FF5722;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="80" as="sourcePoint"/>
|
||||
<mxPoint x="920" y="80" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="90" y="80"/>
|
||||
<mxPoint x="90" y="110"/>
|
||||
<mxPoint x="910" y="110"/>
|
||||
<mxPoint x="910" y="80"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sclk" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#2196F3;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="210" as="sourcePoint"/>
|
||||
<mxPoint x="920" y="210" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="210"/>
|
||||
<mxPoint x="150" y="210"/>
|
||||
<mxPoint x="150" y="180"/>
|
||||
<mxPoint x="190" y="180"/>
|
||||
<mxPoint x="190" y="210"/>
|
||||
<mxPoint x="250" y="210"/>
|
||||
<mxPoint x="250" y="180"/>
|
||||
<mxPoint x="290" y="180"/>
|
||||
<mxPoint x="290" y="210"/>
|
||||
<mxPoint x="350" y="210"/>
|
||||
<mxPoint x="350" y="180"/>
|
||||
<mxPoint x="390" y="180"/>
|
||||
<mxPoint x="390" y="210"/>
|
||||
<mxPoint x="450" y="210"/>
|
||||
<mxPoint x="450" y="180"/>
|
||||
<mxPoint x="490" y="180"/>
|
||||
<mxPoint x="490" y="210"/>
|
||||
<mxPoint x="550" y="210"/>
|
||||
<mxPoint x="550" y="180"/>
|
||||
<mxPoint x="590" y="180"/>
|
||||
<mxPoint x="590" y="210"/>
|
||||
<mxPoint x="650" y="210"/>
|
||||
<mxPoint x="650" y="180"/>
|
||||
<mxPoint x="690" y="180"/>
|
||||
<mxPoint x="690" y="210"/>
|
||||
<mxPoint x="750" y="210"/>
|
||||
<mxPoint x="750" y="180"/>
|
||||
<mxPoint x="790" y="180"/>
|
||||
<mxPoint x="790" y="210"/>
|
||||
<mxPoint x="850" y="210"/>
|
||||
<mxPoint x="850" y="180"/>
|
||||
<mxPoint x="890" y="180"/>
|
||||
<mxPoint x="890" y="210"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="mosi" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#4CAF50;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="310" as="sourcePoint"/>
|
||||
<mxPoint x="920" y="310" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="310"/>
|
||||
<mxPoint x="190" y="310"/>
|
||||
<mxPoint x="190" y="280"/>
|
||||
<mxPoint x="290" y="280"/>
|
||||
<mxPoint x="290" y="310"/>
|
||||
<mxPoint x="390" y="310"/>
|
||||
<mxPoint x="390" y="280"/>
|
||||
<mxPoint x="490" y="280"/>
|
||||
<mxPoint x="590" y="280"/>
|
||||
<mxPoint x="590" y="310"/>
|
||||
<mxPoint x="690" y="310"/>
|
||||
<mxPoint x="690" y="280"/>
|
||||
<mxPoint x="790" y="280"/>
|
||||
<mxPoint x="790" y="310"/>
|
||||
<mxPoint x="890" y="310"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="miso" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#9C27B0;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="380" as="sourcePoint"/>
|
||||
<mxPoint x="920" y="380" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="380"/>
|
||||
<mxPoint x="190" y="380"/>
|
||||
<mxPoint x="190" y="410"/>
|
||||
<mxPoint x="290" y="410"/>
|
||||
<mxPoint x="290" y="380"/>
|
||||
<mxPoint x="390" y="380"/>
|
||||
<mxPoint x="390" y="410"/>
|
||||
<mxPoint x="490" y="410"/>
|
||||
<mxPoint x="590" y="410"/>
|
||||
<mxPoint x="590" y="380"/>
|
||||
<mxPoint x="690" y="380"/>
|
||||
<mxPoint x="690" y="410"/>
|
||||
<mxPoint x="790" y="410"/>
|
||||
<mxPoint x="790" y="380"/>
|
||||
<mxPoint x="890" y="380"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="m0" value="0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="145" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="m1" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="240" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="m2" value="0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="340" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="m3" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="440" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="m4" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="540" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="m5" value="0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="640" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="m6" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="740" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="m7" value="0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="840" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="s0" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="145" y="355" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="s1" value="0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="240" y="355" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="s2" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="340" y="355" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="s3" value="0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="440" y="355" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="s4" value="0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="540" y="355" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="s5" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="640" y="355" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="s6" value="0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="740" y="355" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="s7" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="840" y="355" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="hex_mosi" value="0x5A" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="500" y="235" width="80" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="hex_miso" value="0xA5" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="500" y="425" width="80" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
215
docs/绘图/.$test.drawio.bkp
Normal file
@@ -0,0 +1,215 @@
|
||||
<mxfile host="app.diagrams.net">
|
||||
<diagram id="配电自动化系统架构" name="Page-1">
|
||||
<mxGraphModel dx="1200" dy="1000" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1200" pageHeight="1000" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
<!-- 外部系统大容器 -->
|
||||
<mxCell id="externalBox" value="外部系统" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="20" width="1160" height="150" as="geometry"/>
|
||||
</mxCell>
|
||||
<!-- 外部系统子模块 -->
|
||||
<mxCell id="sys1" value="上一级调度自动化系统" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="130" y="40" width="180" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="sys2" value="配电GIS系统" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="350" y="40" width="150" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="sys3" value="生产管理系统" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="550" y="40" width="150" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="sysDot" value="……" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="750" y="40" width="80" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="sys4" value="营销管理信息系统" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="880" y="40" width="180" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<!-- 信息交互总线 -->
|
||||
<mxCell id="bus" value="信息交互总线" style="rounded=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="50" y="190" width="1100" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<!-- 外部系统到总线的双向箭头 -->
|
||||
<mxCell id="conn1" value="" style="endArrow=block;startArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="sys1" target="bus">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="conn2" value="" style="endArrow=block;startArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="sys2" target="bus">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="conn3" value="" style="endArrow=block;startArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="sys3" target="bus">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="conn4" value="" style="endArrow=block;startArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="sys4" target="bus">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<!-- 左侧层级竖排标签 -->
|
||||
<mxCell id="levelBox" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="300" width="80" height="650" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="level1" value="主站层" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;rotation=270;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="300" width="80" height="150" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="level2" value="子站层" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;rotation=270;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="450" width="80" height="150" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="level3" value="终端层" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;rotation=270;align=center;verticalAlign=middle;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="600" width="80" height="350" as="geometry"/>
|
||||
</mxCell>
|
||||
<!-- 配电自动化系统大虚线框 -->
|
||||
<mxCell id="daBox" value="配电自动化系统" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;align=right;verticalAlign=top;" vertex="1" parent="1">
|
||||
<mxGeometry x="120" y="300" width="1040" height="650" as="geometry"/>
|
||||
</mxCell>
|
||||
<!-- 配电主站 -->
|
||||
<mxCell id="mainStation" value="配电主站" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="490" y="350" width="220" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<!-- 总线到主站双向箭头 -->
|
||||
<mxCell id="connBusMain" value="" style="endArrow=block;startArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="bus" target="mainStation">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<!-- 骨干层通信网 -->
|
||||
<mxCell id="backboneNet" value="通信网(骨干层)" style="ellipse=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="320" y="450" width="560" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<!-- 主站到骨干网双向箭头 -->
|
||||
<mxCell id="connMainBackbone" value="" style="endArrow=block;startArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="mainStation" target="backboneNet">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<!-- 子站层 -->
|
||||
<mxCell id="subOptional" value="(可选)" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;align=left;" vertex="1" parent="1">
|
||||
<mxGeometry x="130" y="550" width="100" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="subStation1" value="配电子站" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="250" y="550" width="180" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="subDot" value="……" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="480" y="550" width="80" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="subStation2" value="配电子站" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="770" y="550" width="180" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<!-- 骨干网到子站连线 -->
|
||||
<mxCell id="connBackboneSub1" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="backboneNet" target="subStation1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="connBackboneSub2" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="backboneNet" target="subStation2">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<!-- 接入层通信网 -->
|
||||
<mxCell id="accessNet1" value="通信网(接入层)" style="ellipse=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="250" y="650" width="180" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="accessNet2" value="通信网(接入层)" style="ellipse=1;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="770" y="650" width="180" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<!-- 子站到接入网连线 -->
|
||||
<mxCell id="connSub1Access1" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="subStation1" target="accessNet1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="connSub2Access2" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="subStation2" target="accessNet2">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<!-- 终端层设备 第一组 -->
|
||||
<mxCell id="ftu1" value="FTU" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="150" y="730" width="80" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="poleSwitch1" value="柱上\n开关" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="150" y="790" width="80" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="connFtu1" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="accessNet1" target="ftu1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="connFtu1Switch" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="ftu1" target="poleSwitch1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="ttu1" value="TTU" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="300" y="730" width="80" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="transformer1" value="配电\n变压器" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="300" y="790" width="80" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="connTtu1" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="accessNet1" target="ttu1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="connTtu1Trans" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="ttu1" target="transformer1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="dot1" value="……" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="400" y="730" width="40" height="120" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="ftu2" value="FTU" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="470" y="730" width="80" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="poleSwitch2" value="柱上\n开关" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="470" y="790" width="80" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="connFtu2" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="accessNet1" target="ftu2">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="connFtu2Switch" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="ftu2" target="poleSwitch2">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 终端层设备 第二组 -->
|
||||
<mxCell id="dtu1" value="DTU" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="600" y="730" width="80" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="ringCab1" value="环网\n柜" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="600" y="790" width="80" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="connDtu1" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="accessNet2" target="dtu1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="connDtu1Cab" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="dtu1" target="ringCab1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="dtu2" value="DTU" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="770" y="730" width="80" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="ringCab2" value="环网\n柜" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="770" y="790" width="80" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="connDtu2" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="accessNet2" target="dtu2">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="connDtu2Cab" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="dtu2" target="ringCab2">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="dot2" value="……" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
||||
<mxGeometry x="870" y="730" width="40" height="120" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="ftu3" value="FTU" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="940" y="730" width="80" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="poleSwitch3" value="柱上\n开关" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="940" y="790" width="80" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="connFtu3" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="accessNet2" target="ftu3">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="connFtu3Switch" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="ftu3" target="poleSwitch3">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 最右侧开关站DTU -->
|
||||
<mxCell id="dtu3" value="DTU" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="1050" y="730" width="80" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="switchStation" value="开关\n站" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="1050" y="790" width="80" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="connDtu3" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="backboneNet" target="dtu3">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="connDtu3Station" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="dtu3" target="switchStation">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
88
docs/绘图/.$工厂模式.drawio.bkp
Normal file
@@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mxfile host="app.diagrams.net" modified="2026-05-10T00:00:00.000Z"
|
||||
agent="AI-Drawio-Replicator" version="24.0.0" type="device">
|
||||
<diagram id="page-1" name="传感器工厂模式">
|
||||
<mxGraphModel dx="1400" dy="900" grid="1" gridSize="10"
|
||||
guides="1" tooltips="1" connect="1" arrows="1"
|
||||
fold="1" page="1" pageScale="1"
|
||||
pageWidth="1400" pageHeight="900"
|
||||
background="#f0f8ff">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
|
||||
<!-- 应用层 -->
|
||||
<mxCell id="2" value="<div style="display:flex;align-items:center;justify-content:center;gap:15px;font-size:20px;font-weight:bold;"><div style="font-size:40px;">📱</div><div>应用层<br><span style="font-size:16px;font-weight:normal;">(调用者)</span></div></div>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e6f2ff;strokeColor=#6699cc;strokeWidth=2;shadow=1;fontSize=14;" vertex="1" parent="1">
|
||||
<mxGeometry x="100" y="80" width="220" height="100" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 代码示例 -->
|
||||
<mxCell id="3" value="<div style="font-family:monospace;font-size:18px;line-height:1.6;">sensor = <span style="color:#0066cc;font-weight:bold;">sensor_create</span>(SENSOR_DS18B20);<br>sensor->read(); <span style="color:#666666;">// 不关心具体实现</span></div>" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="380" y="80" width="600" height="100" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 工厂函数 -->
|
||||
<mxCell id="4" value="<div style="display:flex;align-items:center;justify-content:center;gap:15px;font-size:24px;font-weight:bold;"><div style="font-size:40px;">🏭</div><div>工厂函数</div></div>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e6f9f2;strokeColor=#33cc99;strokeWidth=3;shadow=1;fontSize=14;" vertex="1" parent="1">
|
||||
<mxGeometry x="400" y="280" width="280" height="100" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 工厂函数说明 -->
|
||||
<mxCell id="5" value="<div style="font-size:16px;">根据类型参数,选择并返回对应的操作集合</div>" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="720" y="320" width="350" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 传感器操作接口容器 -->
|
||||
<mxCell id="6" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e6f2ff;strokeColor=#6699cc;strokeWidth=3;shadow=1;fontSize=14;" vertex="1" parent="1">
|
||||
<mxGeometry x="250" y="500" width="700" height="280" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 传感器操作接口标题 -->
|
||||
<mxCell id="7" value="<div style="font-size:24px;font-weight:bold;text-align:center;">传感器操作接口</div>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f7ff;strokeColor=#6699cc;strokeWidth=2;fontSize=14;" vertex="1" parent="6">
|
||||
<mxGeometry x="50" y="20" width="600" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- DS18B20传感器 -->
|
||||
<mxCell id="8" value="<div style="display:flex;align-items:center;justify-content:center;gap:10px;font-size:20px;font-weight:bold;"><div style="font-size:36px;">🌡️</div><div>DS18B20<br><span style="font-size:16px;font-weight:normal;font-family:monospace;">.init<br>.read<br>.deinit</span></div></div>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f7ff;strokeColor=#6699cc;strokeWidth=2;fontSize=14;" vertex="1" parent="6">
|
||||
<mxGeometry x="50" y="100" width="180" height="160" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- NTC传感器 -->
|
||||
<mxCell id="9" value="<div style="display:flex;align-items:center;justify-content:center;gap:10px;font-size:20px;font-weight:bold;"><div style="font-size:36px;">🌡️</div><div>NTC<br><span style="font-size:16px;font-weight:normal;font-family:monospace;">.init<br>.read<br>.deinit</span></div></div>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e6f9f2;strokeColor=#33cc99;strokeWidth=2;fontSize=14;" vertex="1" parent="6">
|
||||
<mxGeometry x="260" y="100" width="180" height="160" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- PT100传感器 -->
|
||||
<mxCell id="10" value="<div style="display:flex;align-items:center;justify-content:center;gap:10px;font-size:20px;font-weight:bold;"><div style="font-size:36px;">🌡️</div><div>PT100<br><span style="font-size:16px;font-weight:normal;font-family:monospace;">.init<br>.read<br>.deinit</span></div></div>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f7ff;strokeColor=#6699cc;strokeWidth=2;fontSize=14;" vertex="1" parent="6">
|
||||
<mxGeometry x="470" y="100" width="180" height="160" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 连线1:应用层到工厂函数 -->
|
||||
<mxCell id="11" value="<div style="font-size:16px;">调用工厂函数</div>" style="endArrow=classic;html=1;strokeColor=#336699;strokeWidth=2;labelPosition=top;verticalAlign=bottom;labelBackgroundColor=#ffffff;" edge="1" parent="1" source="2" target="4">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="210" y="180" as="sourcePoint"/>
|
||||
<mxPoint x="210" y="280" as="targetPoint"/>
|
||||
<mxPoint x="400" y="280" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
|
||||
<!-- 连线2:工厂函数到传感器接口 -->
|
||||
<mxCell id="12" value="<div style="font-size:16px;">返回具体实例</div>" style="endArrow=classic;html=1;strokeColor=#33cc99;strokeWidth=3;labelPosition=right;verticalAlign=middle;labelBackgroundColor=#ffffff;" edge="1" parent="1" source="4" target="6">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="540" y="380" as="sourcePoint"/>
|
||||
<mxPoint x="540" y="500" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
|
||||
<!-- 装饰性图标 -->
|
||||
<mxCell id="13" value="📄" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=32;" vertex="1" parent="1">
|
||||
<mxGeometry x="480" y="200" width="40" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 装饰性箭头 -->
|
||||
<mxCell id="14" value="⬇️" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize:48px;color:#33cc99;" vertex="1" parent="1">
|
||||
<mxGeometry x="520" y="420" width="40" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
167
docs/绘图/.$新建 文本文档.drawio.bkp
Normal file
@@ -0,0 +1,167 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mxfile host="app.diagrams.net" modified="2026-05-10T00:00:00.000Z"
|
||||
agent="AI-Drawio-Replicator" version="24.0.0" type="device">
|
||||
<diagram id="page-1" name="嵌入式系统分层架构">
|
||||
<mxGraphModel dx="1400" dy="900" grid="1" gridSize="10"
|
||||
guides="1" tooltips="1" connect="1" arrows="1"
|
||||
fold="1" page="1" pageScale="1"
|
||||
pageWidth="1400" pageHeight="900"
|
||||
background="#ffffff">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
|
||||
<!-- 应用层容器 -->
|
||||
<mxCell id="2" value="应用层 Application Layer<br><span style="font-size:12px;">【业务逻辑】</span>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ff99ff;strokeColor=#333333;strokeWidth=2;align=center;verticalAlign=top;fontSize=16;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="100" y="50" width="1200" height="120" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 应用层模块 -->
|
||||
<mxCell id="3" value="业务状态机" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="2">
|
||||
<mxGeometry x="50" y="40" width="160" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="4" value="采集控制逻辑" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="2">
|
||||
<mxGeometry x="260" y="40" width="160" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="5" value="故障处理模块" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="2">
|
||||
<mxGeometry x="470" y="40" width="160" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="6" value="人机交互逻辑" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="2">
|
||||
<mxGeometry x="680" y="40" width="160" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 服务层容器 -->
|
||||
<mxCell id="7" value="服务层 Service Layer<br><span style="font-size:12px;">【通用能力】</span>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#99ccff;strokeColor=#333333;strokeWidth=2;align=center;verticalAlign=top;fontSize=16;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="100" y="200" width="1200" height="120" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 服务层模块 -->
|
||||
<mxCell id="8" value="数据存储服务" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="7">
|
||||
<mxGeometry x="30" y="40" width="140" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="9" value="协议解析服务" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="7">
|
||||
<mxGeometry x="210" y="40" width="140" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="10" value="日志系统服务" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="7">
|
||||
<mxGeometry x="390" y="40" width="140" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="11" value="算法滤波服务" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="7">
|
||||
<mxGeometry x="570" y="40" width="140" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="12" value="定时任务服务" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="7">
|
||||
<mxGeometry x="750" y="40" width="140" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 设备驱动层容器 -->
|
||||
<mxCell id="13" value="设备驱动层 Device Driver Layer<br><span style="font-size:12px;">【设备操作】</span>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#99ffcc;strokeColor=#333333;strokeWidth=2;align=center;verticalAlign=top;fontSize=16;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="100" y="350" width="1200" height="120" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 设备驱动层模块 -->
|
||||
<mxCell id="14" value="传感器驱动" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="13">
|
||||
<mxGeometry x="30" y="40" width="140" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="15" value="Flash驱动" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="13">
|
||||
<mxGeometry x="210" y="40" width="140" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="16" value="UART/485驱动" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="13">
|
||||
<mxGeometry x="390" y="40" width="140" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="17" value="ADC/DAC驱动" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="13">
|
||||
<mxGeometry x="570" y="40" width="140" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="18" value="继电器/执行器驱动" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="13">
|
||||
<mxGeometry x="750" y="40" width="180" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 硬件抽象层容器 -->
|
||||
<mxCell id="19" value="硬件抽象层 HAL Layer<br><span style="font-size:12px;">【硬件封装】</span>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffcc99;strokeColor=#333333;strokeWidth=2;align=center;verticalAlign=top;fontSize=16;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="100" y="500" width="1200" height="120" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 硬件抽象层模块 -->
|
||||
<mxCell id="20" value="寄存器操作封装" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="19">
|
||||
<mxGeometry x="50" y="40" width="160" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="21" value="时钟/中断管理" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="19">
|
||||
<mxGeometry x="260" y="40" width="160" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="22" value="GPIO抽象接口" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="19">
|
||||
<mxGeometry x="470" y="40" width="160" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="23" value="外设基础封装" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="19">
|
||||
<mxGeometry x="680" y="40" width="160" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 硬件层容器 -->
|
||||
<mxCell id="24" value="硬件层 Hardware Layer<br><span style="font-size:12px;">【物理实体】</span>" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#cccccc;strokeColor=#333333;strokeWidth=2;align=center;verticalAlign=top;fontSize=16;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="100" y="650" width="1200" height="120" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 硬件层模块 -->
|
||||
<mxCell id="25" value="MCU内核" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="24">
|
||||
<mxGeometry x="30" y="40" width="140" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="26" value="片内外设" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="24">
|
||||
<mxGeometry x="210" y="40" width="140" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="27" value="外部传感器" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="24">
|
||||
<mxGeometry x="390" y="40" width="140" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="28" value="执行机构" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="24">
|
||||
<mxGeometry x="570" y="40" width="140" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="29" value="通信模块" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#333333;strokeWidth=1;align=center;verticalAlign=middle;fontSize=12;" vertex="1" parent="24">
|
||||
<mxGeometry x="750" y="40" width="140" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 主连线 -->
|
||||
<mxCell id="30" value="" style="endArrow=classic;html=1;strokeColor=#333333;strokeWidth=2;" edge="1" parent="1" source="2" target="7">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="700" y="170" as="sourcePoint"/>
|
||||
<mxPoint x="700" y="200" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="31" value="" style="endArrow=classic;html=1;strokeColor=#333333;strokeWidth=2;" edge="1" parent="1" source="7" target="13">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="700" y="320" as="sourcePoint"/>
|
||||
<mxPoint x="700" y="350" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="32" value="" style="endArrow=classic;html=1;strokeColor=#333333;strokeWidth=2;" edge="1" parent="1" source="13" target="19">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="700" y="470" as="sourcePoint"/>
|
||||
<mxPoint x="700" y="500" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="33" value="" style="endArrow=classic;html=1;strokeColor=#333333;strokeWidth=2;" edge="1" parent="1" source="19" target="24">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="700" y="620" as="sourcePoint"/>
|
||||
<mxPoint x="700" y="650" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
202
docs/绘图/.$系统架构 - 副本.drawio.bkp
Normal file
@@ -0,0 +1,202 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mxfile host="app.diagrams.net" modified="2026-05-10T08:42:00.000Z"
|
||||
agent="AI-Drawio-Replicator" version="24.0.0" type="device">
|
||||
<diagram id="hw-arch" name="Hardware Architecture">
|
||||
<mxGraphModel dx="1200" dy="900" grid="1" gridSize="10"
|
||||
guides="1" tooltips="1" connect="1" arrows="1"
|
||||
fold="1" page="1" pageScale="1"
|
||||
pageWidth="1169" pageHeight="827"
|
||||
background="#ffffff">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
|
||||
<!-- 整体外框 -->
|
||||
<mxCell id="2" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#000000;strokeWidth=3;" vertex="1" parent="1">
|
||||
<mxGeometry x="60" y="20" width="1100" height="670" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 左侧层级标签 -->
|
||||
<mxCell id="3" value="对外接口层" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;" vertex="1" parent="1">
|
||||
<mxGeometry x="15" y="80" width="40" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="4" value="通信协议层" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;" vertex="1" parent="1">
|
||||
<mxGeometry x="15" y="210" width="40" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="5" value="核心控制层" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;" vertex="1" parent="1">
|
||||
<mxGeometry x="15" y="355" width="40" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="6" value="存储辅助层" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;" vertex="1" parent="1">
|
||||
<mxGeometry x="15" y="490" width="40" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="7" value="数据采集层" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;" vertex="1" parent="1">
|
||||
<mxGeometry x="15" y="615" width="40" height="80" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- ========== Layer 1: 对外接口层 (橙色) ========== -->
|
||||
<mxCell id="8" value="<b>HY911105AE</b><br>ETH Port 1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;" vertex="1" parent="1">
|
||||
<mxGeometry x="700" y="65" width="130" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="9" value="<b>HY911105AE</b><br>ETH Port 2" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;" vertex="1" parent="1">
|
||||
<mxGeometry x="920" y="65" width="130" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="10" value="<b>RS485</b><br>Interface" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;" vertex="1" parent="1">
|
||||
<mxGeometry x="345" y="65" width="100" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="11" value="<b>RS232-1</b><br>Interface" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;" vertex="1" parent="1">
|
||||
<mxGeometry x="160" y="65" width="110" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="12" value="<b>RS232-2</b><br>Interface" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;" vertex="1" parent="1">
|
||||
<mxGeometry x="300" y="65" width="110" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- ========== Layer 2: 通信协议层 (蓝色) ========== -->
|
||||
<mxCell id="13" value="<b>RTL8305NBI-CG</b><br>Ethernet Switch" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;" vertex="1" parent="1">
|
||||
<mxGeometry x="790" y="165" width="140" height="55" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="14" value="<b>Network</b><br>Transformer" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;" vertex="1" parent="1">
|
||||
<mxGeometry x="640" y="165" width="130" height="55" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="15" value="<b>CH395F</b><br>ETH Controller" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;" vertex="1" parent="1">
|
||||
<mxGeometry x="490" y="165" width="130" height="55" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="16" value="<b>TP8485E-SR</b><br>RS485 Transceiver" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;" vertex="1" parent="1">
|
||||
<mxGeometry x="330" y="165" width="130" height="55" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="17" value="<b>CA-IS3722HS</b><br>Isolation Chip" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;" vertex="1" parent="1">
|
||||
<mxGeometry x="150" y="165" width="130" height="55" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="18" value="<b>TPT3232E</b><br>RS232 Transceiver" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;" vertex="1" parent="1">
|
||||
<mxGeometry x="150" y="240" width="130" height="50" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- ========== Layer 3: 核心控制层 (蓝色大框+白色内部模块) ========== -->
|
||||
<mxCell id="19" value="<b>STM32F407VGT6</b><br>Main Controller" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=14;fontStyle=1;align=center;verticalAlign=top;spacingTop=5;" vertex="1" parent="1">
|
||||
<mxGeometry x="280" y="300" width="480" height="130" as="geometry"/>
|
||||
</mxCell>
|
||||
<!-- 内部接口模块 -->
|
||||
<mxCell id="20" value="SPI1<br>(CH395F)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;fontColor=#000000;fontSize=10;" vertex="1" parent="19">
|
||||
<mxGeometry x="25" y="40" width="120" height="35" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="21" value="SPI2<br>(FLASH)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;fontColor=#000000;fontSize=10;" vertex="1" parent="19">
|
||||
<mxGeometry x="175" y="40" width="120" height="35" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="22" value="I2C<br>(RTC)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;fontColor=#000000;fontSize=10;" vertex="1" parent="19">
|
||||
<mxGeometry x="325" y="40" width="120" height="35" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="23" value="UART1<br>(RS485)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;fontColor=#000000;fontSize=10;" vertex="1" parent="19">
|
||||
<mxGeometry x="25" y="85" width="120" height="35" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="24" value="UART2<br>(RS232)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;fontColor=#000000;fontSize=10;" vertex="1" parent="19">
|
||||
<mxGeometry x="175" y="85" width="120" height="35" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="25" value="GPIO<br>(ADC)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;fontColor=#000000;fontSize=10;" vertex="1" parent="19">
|
||||
<mxGeometry x="325" y="85" width="120" height="35" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- ========== Layer 4: 存储辅助层 (蓝色) ========== -->
|
||||
<mxCell id="26" value="<b>GD5F2GQ5UE</b><br>SPI FLASH" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;" vertex="1" parent="1">
|
||||
<mxGeometry x="350" y="470" width="160" height="55" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="27" value="<b>SD2506API-G</b><br>RTC Clock" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;" vertex="1" parent="1">
|
||||
<mxGeometry x="560" y="470" width="160" height="55" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- ========== Layer 5: 数据采集层 (蓝色) ========== -->
|
||||
<mxCell id="28" value="<b>TPAFE5160</b><br>8-Ch ADC (Parallel)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;" vertex="1" parent="1">
|
||||
<mxGeometry x="420" y="595" width="200" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- ========== 层间双向箭头 ========== -->
|
||||
<mxCell id="29" value="" style="endArrow=classic;startArrow=classic;html=1;strokeColor=#000000;strokeWidth=3;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="620" y="140" as="sourcePoint"/>
|
||||
<mxPoint x="620" y="160" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="30" value="" style="endArrow=classic;startArrow=classic;html=1;strokeColor=#000000;strokeWidth=3;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="620" y="280" as="sourcePoint"/>
|
||||
<mxPoint x="620" y="300" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="31" value="" style="endArrow=classic;startArrow=classic;html=1;strokeColor=#000000;strokeWidth=3;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="620" y="430" as="sourcePoint"/>
|
||||
<mxPoint x="620" y="450" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="32" value="" style="endArrow=classic;startArrow=classic;html=1;strokeColor=#000000;strokeWidth=3;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="620" y="550" as="sourcePoint"/>
|
||||
<mxPoint x="620" y="570" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
|
||||
<!-- ========== 芯片间连线 ========== -->
|
||||
<!-- STM32 → 各外设 -->
|
||||
<mxCell id="33" value="SPI" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;" edge="1" parent="1" source="19" target="15">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="34" value="UART" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;" edge="1" parent="1" source="19" target="16">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="35" value="UART" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;" edge="1" parent="1" source="19" target="17">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="36" value="SPI" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;" edge="1" parent="1" source="19" target="26">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="37" value="I2C" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;" edge="1" parent="1" source="19" target="27">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="38" value="8-bit Parallel" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;" edge="1" parent="1" source="19" target="28">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 网络链路 -->
|
||||
<mxCell id="39" value="" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;" edge="1" parent="1" source="15" target="14">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="40" value="" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;" edge="1" parent="1" source="14" target="13">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="41" value="" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;" edge="1" parent="1" source="13" target="8">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="42" value="" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;" edge="1" parent="1" source="13" target="9">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 串口链路 -->
|
||||
<mxCell id="43" value="" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;" edge="1" parent="1" source="16" target="10">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="44" value="" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;" edge="1" parent="1" source="17" target="18">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="45" value="" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;" edge="1" parent="1" source="18" target="11">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="46" value="" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;" edge="1" parent="1" source="18" target="12">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- ========== 底部图例 ========== -->
|
||||
<mxCell id="47" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;" vertex="1" parent="1">
|
||||
<mxGeometry x="380" y="705" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="48" value="系统功能模块" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#000000;" vertex="1" parent="1">
|
||||
<mxGeometry x="420" y="700" width="120" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="49" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;" vertex="1" parent="1">
|
||||
<mxGeometry x="620" y="705" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="50" value="对外接口设备" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#000000;" vertex="1" parent="1">
|
||||
<mxGeometry x="660" y="700" width="120" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
677
docs/绘图/.$系统架构.drawio.bkp
Normal file
@@ -0,0 +1,677 @@
|
||||
<mxfile host="Electron" agent="AI-Drawio-Replicator">
|
||||
<diagram id="hw-arch" name="Hardware Architecture">
|
||||
<mxGraphModel dx="2020" dy="2814" grid="1" gridSize="5" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" background="#ffffff" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-83" parent="1" style="rounded=0;whiteSpace=wrap;html=1;container=1;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="700" width="1070" x="70" y="-683" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="19" parent="B37HkNnOgrgZiHbc5-xt-83" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=14;fontStyle=1;align=center;verticalAlign=top;spacingTop=5;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="370" width="595.99" x="240" y="155" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="20" parent="19" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;fontSize=10;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="370" width="89.01" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="23" parent="19" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;fontColor=#000000;fontSize=10;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="75" width="505.99" x="89.01" y="295" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-214" parent="19" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;fontFamily=Times New Roman;" value="<font style="font-size: 18px;">BSP&nbsp;</font><div><font style="font-size: 18px;">板级支持</font></div>" vertex="1">
|
||||
<mxGeometry height="68.57" width="90" y="298" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-215" parent="19" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;fontFamily=Times New Roman;" value="<font style="font-size: 18px;">Driver<br>驱动</font>" vertex="1">
|
||||
<mxGeometry height="68.57" width="89.01" x="-0.01" y="226.43" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-223" parent="19" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;fontFamily=Times New Roman;" value="<font style="font-size: 18px;">HAL<br>硬件抽象</font>" vertex="1">
|
||||
<mxGeometry height="68.57" width="89.01" x="0.99" y="148.21" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-224" parent="19" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;fontColor=#000000;fontSize=10;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="75" width="505.99" x="89" y="220" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-225" parent="19" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;fontColor=#000000;fontSize=10;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="75" width="505.99" x="89" y="145" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-226" parent="19" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;fontColor=#000000;fontSize=10;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="75" width="505.99" x="89" y="70" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-227" parent="19" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;fontFamily=Times New Roman;" value="<font style="font-size: 18px;">Service<br>服务层</font>" vertex="1">
|
||||
<mxGeometry height="68.57" width="89.01" x="0.9900000000000091" y="73.21000000000001" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-228" parent="19" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;fontFamily=Times New Roman;" value="<font style="font-size: 18px;">APP<br>应用层</font>" vertex="1">
|
||||
<mxGeometry height="68.57" width="89.01" x="-0.009999999999990905" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-229" parent="19" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;fontColor=#000000;fontSize=10;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="75" width="505.99" x="89" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-230" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="时钟配置" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="100" y="311.5" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-231" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="IO分配" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="186" y="311.5" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-232" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="中断向量" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="272" y="311.5" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-233" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="定时器" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="358" y="311.29" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-234" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="DMA" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="444" y="311.28999999999996" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-235" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="中断向量" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="530" y="311.5" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-236" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="SPI" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="100" y="239.72000000000003" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-256" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="IIC" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="186" y="239.72000000000003" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-257" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="RS485" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="272" y="239.70999999999998" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-258" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="UART" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="358" y="239.72000000000003" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-259" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="16并行采集" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="444" y="239.72000000000003" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-260" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="16并行采集" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="530" y="239.72000000000003" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-261" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="屏蔽芯片差异统一接口" vertex="1">
|
||||
<mxGeometry height="42" width="490" x="100" y="164" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-262" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="104" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="100" y="86.5" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-263" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="101" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="186" y="86.5" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-264" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="显示协议" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="272" y="86.5" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-265" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="按键协议" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="358" y="86.5" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-266" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="按键协议" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="444" y="88" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-267" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="图像界面" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="100" y="13.289999999999964" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-268" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="保护" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="186" y="13.289999999999964" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-269" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="响应主站" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="272" y="13.289999999999964" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="18" parent="B37HkNnOgrgZiHbc5-xt-83" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<b>TPT3232E</b><br>RS232 Transceiver" vertex="1">
|
||||
<mxGeometry height="73.76" width="100" x="5" y="15.999999999999998" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-90" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-83" style="group;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="158.29999999999995" width="195" x="310" y="525" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="26" parent="B37HkNnOgrgZiHbc5-xt-90" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b>存储芯片</b></div><b>GD5F2GQ5UE</b><br>SPI FLASH" vertex="1">
|
||||
<mxGeometry height="90.92" width="195" y="67.38" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="36" edge="1" parent="B37HkNnOgrgZiHbc5-xt-90" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;" value="CLK">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="115" y="0.0014285714286188522" as="sourcePoint" />
|
||||
<mxPoint x="115" y="67.37648648648667" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-85" edge="1" parent="B37HkNnOgrgZiHbc5-xt-90" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;" value="<font>MISO</font>">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="79.86000000000001" y="0.37999999999999545" as="sourcePoint" />
|
||||
<mxPoint x="79.86000000000001" y="67.38" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-86" edge="1" parent="B37HkNnOgrgZiHbc5-xt-90" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;" value="<font>MOSI</font>">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="45" y="0.37999999999999545" as="sourcePoint" />
|
||||
<mxPoint x="45" y="67.38" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-87" edge="1" parent="B37HkNnOgrgZiHbc5-xt-90" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;" value="WP">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="150" y="0.37999999999999545" as="sourcePoint" />
|
||||
<mxPoint x="150" y="67.38" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-88" edge="1" parent="B37HkNnOgrgZiHbc5-xt-90" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;" value="<font>CS</font>">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="10" as="sourcePoint" />
|
||||
<mxPoint x="10" y="67" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-89" edge="1" parent="B37HkNnOgrgZiHbc5-xt-90" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;" value="HOLD">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="185" as="sourcePoint" />
|
||||
<mxPoint x="185" y="67" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-110" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-83" style="group;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="158.87" width="93.93" x="695" y="524" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="27" parent="B37HkNnOgrgZiHbc5-xt-110" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b>时钟模块</b></div><b>SD2506API-G</b><br>RTC Clock" vertex="1">
|
||||
<mxGeometry height="91.87" width="93.93" y="67" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-91" edge="1" parent="B37HkNnOgrgZiHbc5-xt-110" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;entryX=0.323;entryY=0.01;entryDx=0;entryDy=0;entryPerimeter=0;fontFamily=Times New Roman;" target="27" value="SCL">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="30" as="sourcePoint" />
|
||||
<mxPoint x="30" y="67" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-92" edge="1" parent="B37HkNnOgrgZiHbc5-xt-110" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=0.667;exitY=1.001;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.323;entryY=0.01;entryDx=0;entryDy=0;entryPerimeter=0;fontFamily=Times New Roman;" value="SDA">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="60.16000000000008" y="0.5728571428570604" as="sourcePoint" />
|
||||
<mxPoint x="60" y="67.20000000000005" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-168" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-83" style="group" value="" vertex="1">
|
||||
<mxGeometry height="280.54" width="216.06999999999994" x="835" y="209" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="28" parent="B37HkNnOgrgZiHbc5-xt-168" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b>模拟量采样芯片</b></div><b>TPAFE5160</b>" vertex="1">
|
||||
<mxGeometry height="280.54" width="166.07" x="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-102" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="260" as="sourcePoint" />
|
||||
<mxPoint x="50" y="260" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-104" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-102" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D0</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-106" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="250" as="sourcePoint" />
|
||||
<mxPoint x="50" y="250" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-107" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-106" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D1</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-108" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="240" as="sourcePoint" />
|
||||
<mxPoint x="50" y="240" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-109" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-108" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D2</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-111" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="230" as="sourcePoint" />
|
||||
<mxPoint x="50" y="230" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-112" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-111" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D3</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-113" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="220" as="sourcePoint" />
|
||||
<mxPoint x="50" y="220" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-114" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-113" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D4</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-115" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="210" as="sourcePoint" />
|
||||
<mxPoint x="50" y="210" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-116" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-115" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D5</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-117" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="200" as="sourcePoint" />
|
||||
<mxPoint x="50" y="200" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-118" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-117" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D6</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-119" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="190" as="sourcePoint" />
|
||||
<mxPoint x="50" y="190" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-120" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-119" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D7</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-121" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="180" as="sourcePoint" />
|
||||
<mxPoint x="50" y="180" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-122" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-121" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D8</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-123" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="169.92000000000002" as="sourcePoint" />
|
||||
<mxPoint x="50" y="169.92000000000002" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-124" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-123" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D9</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-125" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="160" as="sourcePoint" />
|
||||
<mxPoint x="50" y="160" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-126" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-125" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D10</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-127" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="150" as="sourcePoint" />
|
||||
<mxPoint x="50" y="150" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-128" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-127" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D11</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-129" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="140" as="sourcePoint" />
|
||||
<mxPoint x="50" y="140" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-130" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-129" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D12</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-131" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="130" as="sourcePoint" />
|
||||
<mxPoint x="50" y="130" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-132" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-131" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D13</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-133" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="120" as="sourcePoint" />
|
||||
<mxPoint x="50" y="120" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-134" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-133" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D14</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-135" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="110" as="sourcePoint" />
|
||||
<mxPoint x="50" y="110" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-136" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-135" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D15</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-137" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=1;startArrow=none;startFill=0;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="50" as="sourcePoint" />
|
||||
<mxPoint x="50" y="50" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-138" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-137" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">CONVST</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint x="-10" y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-145" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="60" as="sourcePoint" />
|
||||
<mxPoint x="50" y="60" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-146" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-145" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">BUSY</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-147" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="70" as="sourcePoint" />
|
||||
<mxPoint x="50" y="70" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-148" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-147" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">FRST</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="14" parent="B37HkNnOgrgZiHbc5-xt-83" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<b>网络变压器</b>" vertex="1">
|
||||
<mxGeometry height="75.49" width="70" x="770" y="19.51" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="13" parent="B37HkNnOgrgZiHbc5-xt-83" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b>网络交换机</b></div><b>RTL8305NBI-CG</b>" vertex="1">
|
||||
<mxGeometry height="75" width="140" x="879" y="19.51" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-153" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="15" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endWidth=7.741935483870967;endSize=2.85;startSize=2.85;width=4.354838709677419;startArrow=classic;startFill=1;startWidth=7.181795448862215;" target="14" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="670" y="57.17500000000012" as="sourcePoint" />
|
||||
<mxPoint x="710" y="57.17039215686275" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-154" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endWidth=7.741935483870967;endSize=2.85;startSize=2.85;width=4.354838709677419;startArrow=classic;startFill=1;startWidth=7.181795448862215;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="840" y="57.09460784313736" as="sourcePoint" />
|
||||
<mxPoint x="880" y="57.089999999999996" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-166" parent="B37HkNnOgrgZiHbc5-xt-83" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b style="background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));">光耦隔离器</b></div><div><b>FOC-817SC</b></div>" vertex="1">
|
||||
<mxGeometry height="75.49" width="70" x="520" y="21.240000000000002" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-169" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-83" style="group" value="" vertex="1">
|
||||
<mxGeometry height="137.14736694677867" width="130" x="600" y="19.51" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="15" parent="B37HkNnOgrgZiHbc5-xt-169" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<b>CH395F</b><br>ETH Controller" vertex="1">
|
||||
<mxGeometry height="75.49" width="130" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="33" edge="1" parent="B37HkNnOgrgZiHbc5-xt-169" source="19" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0.631;exitY=0.001;exitDx=0;exitDy=0;exitPerimeter=0;" value="CS">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="15.370000000000005" y="137.1428571428571" as="sourcePoint" />
|
||||
<mxPoint x="14.997831963993235" y="75.48549019607844" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-150" edge="1" parent="B37HkNnOgrgZiHbc5-xt-169" source="19" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0.689;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;" value="MOSI">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="50.37216803600677" y="137.14736694677867" as="sourcePoint" />
|
||||
<mxPoint x="50" y="75.49000000000001" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-151" edge="1" parent="B37HkNnOgrgZiHbc5-xt-169" source="19" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0.749;exitY=-0.001;exitDx=0;exitDy=0;exitPerimeter=0;" value="MISO">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="85.37216803600677" y="137.14736694677867" as="sourcePoint" />
|
||||
<mxPoint x="85" y="75.49000000000001" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-152" edge="1" parent="B37HkNnOgrgZiHbc5-xt-169" source="19" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0.807;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;" value="SCK">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="120.37216803600677" y="137.14736694677867" as="sourcePoint" />
|
||||
<mxPoint x="120" y="75.49000000000001" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-170" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="16" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=0;startArrow=classic;startFill=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="B37HkNnOgrgZiHbc5-xt-166" value="DIR">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="150" y="57.09" as="sourcePoint" />
|
||||
<mxPoint x="100" y="57.09" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-171" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="B37HkNnOgrgZiHbc5-xt-166" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0.5;exitY=1;exitDx=0;exitDy=0;endFill=0;startArrow=classic;startFill=1;entryX=0.53;entryY=0.001;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;entryPerimeter=0;" target="19" value="DIR">
|
||||
<mxGeometry height="50" relative="1" width="50" x="-0.0243" as="geometry">
|
||||
<mxPoint as="offset" />
|
||||
<mxPoint x="135" y="216" as="sourcePoint" />
|
||||
<mxPoint x="80" y="216.09000000000003" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-177" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-83" style="group" value="" vertex="1">
|
||||
<mxGeometry height="75.49" width="80" x="112" y="274" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-182" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-177" style="group" value="" vertex="1">
|
||||
<mxGeometry height="75.49" width="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-172" parent="B37HkNnOgrgZiHbc5-xt-182" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b style="background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));">数字隔离器</b></div><div><b>CA-IS3722HS</b></div>" vertex="1">
|
||||
<mxGeometry height="75.49" width="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-175" edge="1" parent="B37HkNnOgrgZiHbc5-xt-182" source="19" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=-0.003;exitY=0.367;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;exitPerimeter=0;" target="B37HkNnOgrgZiHbc5-xt-172" value="TX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="100" y="-12.99750000000006" as="sourcePoint" />
|
||||
<mxPoint x="149.03999999999996" y="-12.902857142857215" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-176" edge="1" parent="B37HkNnOgrgZiHbc5-xt-182" source="19" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;endFill=0;startArrow=classic;startFill=1;entryX=1;entryY=0.75;entryDx=0;entryDy=0;exitX=-0.001;exitY=0.468;exitDx=0;exitDy=0;exitPerimeter=0;" target="B37HkNnOgrgZiHbc5-xt-172" value="RX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="155" y="57" as="sourcePoint" />
|
||||
<mxPoint x="135" y="45" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-183" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-83" style="group" value="" vertex="1">
|
||||
<mxGeometry height="75.49" width="80" x="112" y="366" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-184" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-183" style="group" value="" vertex="1">
|
||||
<mxGeometry height="75.49" width="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-185" parent="B37HkNnOgrgZiHbc5-xt-184" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b style="background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));">数字隔离器</b></div><div><b>CA-IS3722HS</b></div>" vertex="1">
|
||||
<mxGeometry height="75.49" width="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-186" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="19" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0;exitY=0.616;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;exitPerimeter=0;" target="B37HkNnOgrgZiHbc5-xt-185" value="TX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="185" y="353.00249999999994" as="sourcePoint" />
|
||||
<mxPoint x="234.03999999999996" y="353.0971428571428" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-187" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="19" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;endFill=0;startArrow=classic;startFill=1;entryX=1;entryY=0.75;entryDx=0;entryDy=0;exitX=0.002;exitY=0.717;exitDx=0;exitDy=0;exitPerimeter=0;" target="B37HkNnOgrgZiHbc5-xt-185" value="RX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="267" y="423" as="sourcePoint" />
|
||||
<mxPoint x="247" y="411" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-188" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=-0.003;exitY=0.367;exitDx=0;exitDy=0;entryX=0.791;entryY=1.003;entryDx=0;entryDy=0;exitPerimeter=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;entryPerimeter=0;" target="18" value="TX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="112" y="291" as="sourcePoint" />
|
||||
<mxPoint x="65" y="291" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-189" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="B37HkNnOgrgZiHbc5-xt-172" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;endFill=0;startArrow=classic;startFill=1;entryX=0.6;entryY=0.995;entryDx=0;entryDy=0;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryPerimeter=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;" target="18" value="RX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="93" y="349" as="sourcePoint" />
|
||||
<mxPoint x="45" y="350" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-190" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="B37HkNnOgrgZiHbc5-xt-185" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0;exitY=0.25;exitDx=0;exitDy=0;entryX=0.384;entryY=1.004;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;entryPerimeter=0;" target="18" value="TX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="109" y="411" as="sourcePoint" />
|
||||
<mxPoint x="25" y="615" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-191" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="B37HkNnOgrgZiHbc5-xt-185" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;endFill=0;startArrow=classic;startFill=1;entryX=0.191;entryY=0.993;entryDx=0;entryDy=0;exitX=0;exitY=0.75;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;entryPerimeter=0;" target="18" value="RX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="112" y="436" as="sourcePoint" />
|
||||
<mxPoint x="45" y="602" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-160" parent="B37HkNnOgrgZiHbc5-xt-83" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b style="background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));">数字隔离器</b></div><div><b>CA-IS3722HS</b></div>" vertex="1">
|
||||
<mxGeometry height="75.49" width="80" x="255" y="21.240000000000002" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="16" parent="B37HkNnOgrgZiHbc5-xt-83" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<b>TP8485E-SR</b><br>RS485 Transceiver" vertex="1">
|
||||
<mxGeometry height="75.49" width="95" x="380" y="21.24" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-162" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="20" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0.399;exitY=0.004;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;" target="B37HkNnOgrgZiHbc5-xt-160" value="TX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="355.37216803600677" y="158.38736694677866" as="sourcePoint" />
|
||||
<mxPoint x="355" y="96.72999999999999" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-163" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="19" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0.127;exitY=0.003;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;" target="B37HkNnOgrgZiHbc5-xt-160" value="RX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="415.37216803600677" y="157.89736694677865" as="sourcePoint" />
|
||||
<mxPoint x="415" y="96.24" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-164" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="B37HkNnOgrgZiHbc5-xt-160" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" target="16" value="TX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="305.37216803600677" y="112.89736694677866" as="sourcePoint" />
|
||||
<mxPoint x="305" y="51.239999999999995" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-165" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="B37HkNnOgrgZiHbc5-xt-160" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=1;exitY=0.75;exitDx=0;exitDy=0;endFill=0;startArrow=classic;startFill=1;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" target="16" value="RX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="300.37216803600677" y="127.89736694677866" as="sourcePoint" />
|
||||
<mxPoint x="300" y="66.24" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-157" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Times New Roman;container=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" value="" vertex="1">
|
||||
<mxGeometry height="960" width="85" x="5" y="-823" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3" parent="B37HkNnOgrgZiHbc5-xt-157" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;fontFamily=Times New Roman;" value="<font style="font-size: 21px;">接口层</font>" vertex="1">
|
||||
<mxGeometry height="68.57142857142856" width="85" y="45.279999999999994" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-204" parent="B37HkNnOgrgZiHbc5-xt-157" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;fontFamily=Times New Roman;" value="<font style="font-size: 21px;">功能层</font>" vertex="1">
|
||||
<mxGeometry height="68.57142857142856" width="85" y="445.71428571428567" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-213" parent="B37HkNnOgrgZiHbc5-xt-157" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;fontFamily=Times New Roman;" value="<font style="font-size: 21px;">电源层</font>" vertex="1">
|
||||
<mxGeometry height="68.57142857142856" width="85" y="875" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-84" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Times New Roman;container=1;" value="" vertex="1">
|
||||
<mxGeometry height="140" width="1070" x="90" y="-823" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="10" parent="B37HkNnOgrgZiHbc5-xt-84" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<b>RS485</b><br>Interface" vertex="1">
|
||||
<mxGeometry height="68.62745098039215" width="103.88349514563106" x="375.55553398058254" y="19.999803921568628" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="8" parent="B37HkNnOgrgZiHbc5-xt-84" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b>带网络变压器的网口</b></div><b>HY911105AE</b>" vertex="1">
|
||||
<mxGeometry height="70" width="105" x="835" y="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="9" parent="B37HkNnOgrgZiHbc5-xt-84" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b>带网络变压器的网口</b><b></b></div><b>HY911105AE</b>" vertex="1">
|
||||
<mxGeometry height="70" width="105" x="958" y="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="12" parent="B37HkNnOgrgZiHbc5-xt-84" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<b>RS232-2</b><br>Interface" vertex="1">
|
||||
<mxGeometry height="68.62745098039215" width="114.27184466019418" x="130.00446601941746" y="19.994901960784333" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="11" parent="B37HkNnOgrgZiHbc5-xt-84" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<b>RS232-1</b><br>Interface" vertex="1">
|
||||
<mxGeometry height="68.62745098039215" width="114.27184466019418" x="4.995922330097073" y="19.99627450980394" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-149" parent="B37HkNnOgrgZiHbc5-xt-84" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<b>RJ45 网口</b>" vertex="1">
|
||||
<mxGeometry height="70" width="105" x="260" y="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-203" parent="B37HkNnOgrgZiHbc5-xt-84" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<b>96个板级接口</b>" vertex="1">
|
||||
<mxGeometry height="68.63" width="315" x="500" y="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="43" edge="1" parent="1" source="16" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontFamily=Times New Roman;exitX=0.5;exitY=0;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;" target="10" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-155" edge="1" parent="1" source="8" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;endWidth=7.741935483870967;endSize=2.85;startSize=2.85;width=4.354838709677419;startArrow=classic;startFill=1;startWidth=7.181795448862215;" target="13" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="910" y="-669.4853921568626" as="sourcePoint" />
|
||||
<mxPoint x="950" y="-669.49" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-156" edge="1" parent="1" source="9" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;endWidth=7.741935483870967;endSize=2.85;startSize=2.85;width=4.354838709677419;startArrow=classic;startFill=1;startWidth=7.181795448862215;" target="13" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="1080" y="-669.49" as="sourcePoint" />
|
||||
<mxPoint x="1080" y="-609.49" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-196" edge="1" parent="1" source="18" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0.25;exitY=0;exitDx=0;exitDy=0;entryX=0.216;entryY=0.998;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;entryPerimeter=0;" target="11" value="TX1">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="288" y="-592" as="sourcePoint" />
|
||||
<mxPoint x="260" y="-793" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-197" edge="1" parent="1" source="18" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;endFill=0;startArrow=classic;startFill=1;entryX=0.592;entryY=0.998;entryDx=0;entryDy=0;exitX=0.4;exitY=0.015;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;exitPerimeter=0;entryPerimeter=0;" target="11" value="RX1">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="227" y="-486" as="sourcePoint" />
|
||||
<mxPoint x="180" y="-728" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-201" edge="1" parent="1" source="18" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;entryX=0.25;entryY=1;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;exitX=0.75;exitY=0;exitDx=0;exitDy=0;" target="B37HkNnOgrgZiHbc5-xt-149" value="TX2">
|
||||
<mxGeometry height="50" relative="1" width="50" x="0.5481" as="geometry">
|
||||
<mxPoint as="offset" />
|
||||
<Array as="points">
|
||||
<mxPoint x="170" y="-708" />
|
||||
<mxPoint x="376" y="-708" />
|
||||
</Array>
|
||||
<mxPoint x="250" y="-708" as="sourcePoint" />
|
||||
<mxPoint x="325" y="-709" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-198" edge="1" parent="1" source="18" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0.571;exitY=0;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;exitPerimeter=0;" target="12" value="TX2">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="170" y="-668" />
|
||||
<mxPoint x="170" y="-708" />
|
||||
<mxPoint x="249" y="-708" />
|
||||
</Array>
|
||||
<mxPoint x="255" y="-622" as="sourcePoint" />
|
||||
<mxPoint x="259" y="-688" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-202" edge="1" parent="1" source="18" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;endFill=0;startArrow=classic;startFill=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;exitX=0.846;exitY=-0.011;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;exitPerimeter=0;" target="B37HkNnOgrgZiHbc5-xt-149" value="RX2">
|
||||
<mxGeometry height="50" relative="1" width="50" x="0.178" as="geometry">
|
||||
<mxPoint as="offset" />
|
||||
<Array as="points">
|
||||
<mxPoint x="180" y="-693" />
|
||||
<mxPoint x="429" y="-693" />
|
||||
</Array>
|
||||
<mxPoint x="285" y="-632" as="sourcePoint" />
|
||||
<mxPoint x="411" y="-698" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-199" edge="1" parent="1" source="18" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;endFill=0;startArrow=classic;startFill=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;exitX=0.847;exitY=0;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;exitPerimeter=0;" target="12" value="RX2">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="180" y="-693" />
|
||||
<mxPoint x="306" y="-693" />
|
||||
</Array>
|
||||
<mxPoint x="250" y="-621" as="sourcePoint" />
|
||||
<mxPoint x="267" y="-688" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-205" parent="1" style="rounded=0;whiteSpace=wrap;html=1;" value="" vertex="1">
|
||||
<mxGeometry height="120" width="1070" x="90" y="17" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-209" edge="1" parent="1" source="B37HkNnOgrgZiHbc5-xt-207" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" target="B37HkNnOgrgZiHbc5-xt-208" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-207" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b><font style="font-size: 15px;">数字 3.3V 供电2</font></b></div><span style="font-size: 15px;"><b>CJT1117B-3.3</b></span>" vertex="1">
|
||||
<mxGeometry height="70" width="130" x="708" y="52" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-211" edge="1" parent="1" source="B37HkNnOgrgZiHbc5-xt-208" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" target="B37HkNnOgrgZiHbc5-xt-210" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-208" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<span style="font-size: 15px;"><b>隔离电源</b></span><div><span style="font-size: 15px;"><b>B0505S</b></span></div>" vertex="1">
|
||||
<mxGeometry height="70" width="100" x="420" y="52" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-210" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b><font style="font-size: 15px;">隔离 3.3V 供电</font></b></div>" vertex="1">
|
||||
<mxGeometry height="70" width="125" x="105" y="52" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-212" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b><font style="font-size: 15px;">数字 3.3V 供电1</font></b></div><span style="font-size: 15px;"><b>CJT1117B-3.3</b></span>" vertex="1">
|
||||
<mxGeometry height="70" width="130" x="1010" y="52" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
107
docs/绘图/.$网络硬件方案.drawio.bkp
Normal file
@@ -0,0 +1,107 @@
|
||||
<mxfile host="app.diagrams.net">
|
||||
<diagram id="STM32-CH395-交换机拓扑" name="Page-1">
|
||||
<mxGraphModel dx="1200" dy="800" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1200" pageHeight="800" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
|
||||
<!-- 左侧主控与接口芯片 -->
|
||||
<mxCell id="stm32" value="STM32F4" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#333333;fontSize=14;fontWeight=bold;" vertex="1" parent="1">
|
||||
<mxGeometry x="80" y="280" width="120" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="ch395" value="CH395I" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#333333;fontSize=14;fontWeight=bold;" vertex="1" parent="1">
|
||||
<mxGeometry x="280" y="280" width="120" height="60" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 交换机芯片 -->
|
||||
<mxCell id="switch" value="交换机芯片" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e8f4f8;strokeColor=#333333;fontSize=14;fontWeight=bold;" vertex="1" parent="1">
|
||||
<mxGeometry x="480" y="180" width="140" height="260" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 上行口标注 -->
|
||||
<mxCell id="uplinkLabel" value="上行口" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;fontSize=12;" vertex="1" parent="1">
|
||||
<mxGeometry x="420" y="280" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 三个下行口网络变压器 -->
|
||||
<mxCell id="transformer1" value="网络变压器1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#333333;fontSize=12;" vertex="1" parent="1">
|
||||
<mxGeometry x="700" y="180" width="120" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="transformer2" value="网络变压器2" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#333333;fontSize=12;" vertex="1" parent="1">
|
||||
<mxGeometry x="700" y="290" width="120" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="transformer3" value="网络变压器3" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#333333;fontSize=12;" vertex="1" parent="1">
|
||||
<mxGeometry x="700" y="400" width="120" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 三个RJ45接口 -->
|
||||
<mxCell id="rj45_1" value="RJ45-1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2e6;strokeColor=#333333;fontSize=12;fontWeight=bold;" vertex="1" parent="1">
|
||||
<mxGeometry x="900" y="180" width="100" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="rj45_2" value="RJ45-2" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2e6;strokeColor=#333333;fontSize=12;fontWeight=bold;" vertex="1" parent="1">
|
||||
<mxGeometry x="900" y="290" width="100" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="rj45_3" value="RJ45-3" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2e6;strokeColor=#333333;fontSize=12;fontWeight=bold;" vertex="1" parent="1">
|
||||
<mxGeometry x="900" y="400" width="100" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 功能注释 -->
|
||||
<mxCell id="note1" value="(主站通信)" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=12;" vertex="1" parent="1">
|
||||
<mxGeometry x="1010" y="180" width="120" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="note2" value="(本地调试/级联)" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=12;" vertex="1" parent="1">
|
||||
<mxGeometry x="1010" y="290" width="120" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="note3" value="(备用/扩展)" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=12;" vertex="1" parent="1">
|
||||
<mxGeometry x="1010" y="400" width="120" height="40" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 连线与接口标注 -->
|
||||
<mxCell id="conn1" value="SPI/并口" style="endArrow=block;startArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;labelPosition=top;verticalAlign=top;fontSize=12;" edge="1" parent="1" source="stm32" target="ch395">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="conn2" value="RMII/MII" style="endArrow=block;startArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;labelPosition=top;verticalAlign=top;fontSize=12;" edge="1" parent="1" source="ch395" target="switch">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="conn3" value="下行口1" style="endArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;labelPosition=top;verticalAlign=top;fontSize=12;" edge="1" parent="1" source="switch" target="transformer1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="620" y="200" as="sourcePoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="conn4" style="endArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="transformer1" target="rj45_1">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="conn5" value="下行口2" style="endArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;labelPosition=top;verticalAlign=top;fontSize=12;" edge="1" parent="1" source="switch" target="transformer2">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="620" y="310" as="sourcePoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="conn6" style="endArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="transformer2" target="rj45_2">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="conn7" value="下行口3" style="endArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;labelPosition=top;verticalAlign=top;fontSize=12;" edge="1" parent="1" source="switch" target="transformer3">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="620" y="420" as="sourcePoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
|
||||
<mxCell id="conn8" style="endArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;" edge="1" parent="1" source="transformer3" target="rj45_3">
|
||||
<mxGeometry relative="1" as="geometry"/>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
93
docs/绘图/.$软件架构.drawio.bkp
Normal file
@@ -0,0 +1,93 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mxfile host="app.diagrams.net" modified="2026-05-10T00:00:00.000Z"
|
||||
agent="AI-Drawio-Replicator" version="24.0.0" type="device">
|
||||
<diagram id="page-1" name="传感器OPS架构">
|
||||
<mxGraphModel dx="1200" dy="800" grid="1" gridSize="10"
|
||||
guides="1" tooltips="1" connect="1" arrows="1"
|
||||
fold="1" page="1" pageScale="1"
|
||||
pageWidth="1169" pageHeight="827"
|
||||
background="#ffffff">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
|
||||
<!-- 调用者/上层 -->
|
||||
<mxCell id="2" value="<div style="display:flex;align-items:center;justify-content:center;gap:20px;font-size:24px;font-weight:bold;"><div style="font-size:48px;color:#2b579a;">👤</div><div>调用者 / 上层<br><span style="font-size:18px;font-weight:normal;">(只认识 sensor_ops)</span></div></div>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f7ff;strokeColor=#2b579a;strokeWidth=2;fontSize=14;" vertex="1" parent="1">
|
||||
<mxGeometry x="220" y="50" width="620" height="120" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- OPS句柄 -->
|
||||
<mxCell id="3" value="<div style="display:flex;align-items:center;justify-content:center;gap:20px;font-size:28px;font-weight:bold;"><div style="font-size:48px;color:#2385bb;">🏷️</div><div>ops 句柄<br><span style="font-size:22px;font-weight:normal;font-family:monospace;">{ init, read, close }</span></div></div>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f9f9;strokeColor=#2385bb;strokeWidth=3;fontSize=14;" vertex="1" parent="1">
|
||||
<mxGeometry x="270" y="300" width="520" height="120" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 温度传感器 -->
|
||||
<mxCell id="4" value="<div style="display:flex;align-items:center;justify-content:center;gap:15px;font-size:22px;font-weight:bold;"><div style="font-size:48px;color:#2b579a;">🌡️</div><div>温度传感器<br><span style="font-size:18px;font-weight:normal;font-family:monospace;">temp_read()</span></div></div>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f7ff;strokeColor=#2b579a;strokeWidth=2;fontSize=14;" vertex="1" parent="1">
|
||||
<mxGeometry x="100" y="580" width="350" height="100" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 加速度传感器 -->
|
||||
<mxCell id="5" value="<div style="display:flex;align-items:center;justify-content:center;gap:15px;font-size:22px;font-weight:bold;"><div style="font-size:48px;color:#2b579a;">🔲</div><div>加速度传感器<br><span style="font-size:18px;font-weight:normal;font-family:monospace;">accel_read()</span></div></div>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f7ff;strokeColor=#2b579a;strokeWidth=2;fontSize=14;" vertex="1" parent="1">
|
||||
<mxGeometry x="610" y="580" width="350" height="100" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 接口边界标注 -->
|
||||
<mxCell id="6" value="<div style="font-size:20px;color:#2b579a;font-weight:bold;">接口边界</div>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="880" y="350" width="120" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 虚线箭头 -->
|
||||
<mxCell id="7" value="" style="endArrow=block;html=1;strokeColor=#2b579a;strokeWidth=2;dashed=1;dashPattern=4 4;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="790" y="360" as="sourcePoint"/>
|
||||
<mxPoint x="870" y="360" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
|
||||
<!-- 连线1:上层到OPS句柄 -->
|
||||
<mxCell id="8" value="<div style="font-size:20px;font-family:monospace;">ops->read(ctx, &v)</div>" style="endArrow=classic;html=1;strokeColor=#1a365d;strokeWidth=3;labelPosition=top;verticalAlign=bottom;labelBackgroundColor=#ffffff;" edge="1" parent="1" source="2" target="3">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="530" y="170" as="sourcePoint"/>
|
||||
<mxPoint x="530" y="300" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
|
||||
<!-- 连线2:OPS句柄到分支点 -->
|
||||
<mxCell id="9" value="" style="html=1;strokeColor=#1a365d;strokeWidth=3;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="530" y="420" as="sourcePoint"/>
|
||||
<mxPoint x="530" y="500" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
|
||||
<!-- 分支点 -->
|
||||
<mxCell id="10" value="" style="ellipse;whiteSpace=wrap;html=1;fillColor=#1a365d;strokeColor=#1a365d;strokeWidth=2;" vertex="1" parent="1">
|
||||
<mxGeometry x="520" y="495" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 连线3:分支点到温度传感器 -->
|
||||
<mxCell id="11" value="" style="endArrow=classic;html=1;strokeColor=#1a365d;strokeWidth=3;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="530" y="505" as="sourcePoint"/>
|
||||
<mxPoint x="275" y="505" as="targetPoint"/>
|
||||
<mxPoint x="275" y="580" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
|
||||
<!-- 连线4:分支点到加速度传感器 -->
|
||||
<mxCell id="12" value="" style="endArrow=classic;html=1;strokeColor=#1a365d;strokeWidth=3;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="530" y="505" as="sourcePoint"/>
|
||||
<mxPoint x="785" y="505" as="targetPoint"/>
|
||||
<mxPoint x="785" y="580" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
|
||||
<!-- 连线标注:函数指针实际指向 -->
|
||||
<mxCell id="13" value="<div style="font-size:18px;">函数指针实际指向</div>" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;labelBackgroundColor=#ffffff;" vertex="1" parent="1">
|
||||
<mxGeometry x="580" y="460" width="200" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
424
docs/绘图/Drawio_Waveform_Generator_Skill.md
Normal file
@@ -0,0 +1,424 @@
|
||||
# Draw.io 波形图生成智能体 Skill
|
||||
|
||||
## 角色定义
|
||||
|
||||
你是一个专业的数字时序波形图生成专家,专注于使用 draw.io (diagrams.net) XML 格式生成高质量、逻辑正确的时序图。你的核心能力是将文本描述或 ASCII 时序图转换为精确的 draw.io `.drawio` 文件。
|
||||
|
||||
## 核心能力
|
||||
|
||||
- 深入理解 SPI、I2C、UART、QSPI 等常见数字通信协议的时序规范
|
||||
- 精通 draw.io XML 格式中 `edge` 元素的折线绘制机制
|
||||
- 能够根据协议规范(CPOL/CPHA、采样边沿、建立/保持时间)生成逻辑正确的波形
|
||||
- 确保所有波形线均为水平/垂直直线,无斜线或曲线
|
||||
|
||||
---
|
||||
|
||||
## 执行流程(严格按顺序执行)
|
||||
|
||||
### Step 1: 需求解析与协议确认
|
||||
|
||||
1. **识别信号线**:从用户输入中提取所有信号名称(如 CS、SCLK、MOSI、MISO、IO0、IO1 等)
|
||||
2. **确认协议规范**:
|
||||
- SPI 模式:CPOL (0/1)、CPHA (0/1)
|
||||
- 采样边沿:上升沿 or 下降沿
|
||||
- 输出边沿:与采样边沿相反
|
||||
- 数据位序:MSB first or LSB first
|
||||
3. **提取数据内容**:命令码、地址、数据字节等,转换为 bit 序列
|
||||
4. **确定阶段划分**:命令阶段 → 地址阶段 → 数据阶段(如有)
|
||||
|
||||
### Step 2: 坐标系与参数设计
|
||||
|
||||
1. **画布尺寸**:根据周期数计算宽度,公式 `width = start_x + n_cycles * cycle_w + margin`
|
||||
|
||||
2. **Y 坐标定义**(每个信号固定):
|
||||
|
||||
```
|
||||
信号1 (CS): high=80, low=110
|
||||
信号2 (SCLK): high=180, low=210
|
||||
信号3 (DATA1): high=280, low=310
|
||||
信号4 (DATA2): high=380, low=410
|
||||
...以此类推,垂直间距 100px
|
||||
```
|
||||
|
||||
3. **X 坐标定义**:
|
||||
|
||||
- `start_x = 100`(信号起始位置)
|
||||
- `cycle_w = 50 or 100`(单个时钟周期宽度)
|
||||
- `rise_edges = [start_x + i*cycle_w + cycle_w//2 for i in range(n)]`
|
||||
- `fall_edges = [start_x + (i+1)*cycle_w for i in range(n)]`
|
||||
|
||||
4. **关键规则**:
|
||||
|
||||
- 数据跳变必须发生在 **输出边沿**(如下降沿)
|
||||
- 数据稳定必须覆盖 **采样边沿**(如上升沿)
|
||||
- 高电平占空比建议 40%,低电平 60%,确保建立时间
|
||||
|
||||
### Step 3: 生成 XML 结构
|
||||
|
||||
按以下顺序构建 `<mxfile>` 内容:
|
||||
|
||||
1. **文件头**:`<?xml version="1.0" encoding="UTF-8"?>` + `<mxfile>` + `<mxGraphModel>`
|
||||
- 必须设置正确的 `pageWidth` 和 `pageHeight`
|
||||
- `dx` 和 `dy` 设为与画布尺寸匹配
|
||||
|
||||
2. **背景网格**:`<mxCell id="grid">`(可选,用于视觉参考)
|
||||
|
||||
3. **标题**:`<mxCell id="title">`,包含协议名称和模式信息
|
||||
|
||||
4. **MSB/LSB 标记**:在波形起始和结束位置添加文本标签
|
||||
|
||||
5. **信号标签**:左侧纵向排列,每个信号一个文本标签
|
||||
|
||||
6. **阶段分界虚线**(可选):用 `dashed=1` 的垂直线划分命令/地址/数据阶段
|
||||
|
||||
7. **波形生成**(核心步骤,见 Step 4)
|
||||
|
||||
8. **数据位标签**:在每个 bit 周期的中点位置添加数值标签
|
||||
|
||||
9. **阶段名称标注**:在波形上方或下方添加阶段说明文本
|
||||
|
||||
10. **文件尾**:关闭所有标签 `</root></mxGraphModel></diagram></mxfile>`
|
||||
|
||||
### Step 4: 波形 Edge 生成规范(最关键)
|
||||
|
||||
#### 4.1 Edge 元素基本结构
|
||||
|
||||
```xml
|
||||
<mxCell id="{signal_name}" value=""
|
||||
style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#{color};rounded=0;endArrow=none;"
|
||||
edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="{src_x}" y="{src_y}" as="sourcePoint"/>
|
||||
<mxPoint x="{tgt_x}" y="{tgt_y}" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="{x1}" y="{y1}"/>
|
||||
<mxPoint x="{x2}" y="{y2}"/>
|
||||
...
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
```
|
||||
|
||||
#### 4.2 防斜线铁律(必须遵守)
|
||||
|
||||
- **sourcePoint.y 必须等于第一个中间点的 y**
|
||||
- **targetPoint.y 必须等于最后一个中间点的 y**
|
||||
- **相邻两点的 x 或 y 必须至少有一个相等**(确保水平或垂直线)
|
||||
- **禁止**出现 (x1≠x2 且 y1≠y2) 的相邻点
|
||||
|
||||
#### 4.3 各类信号绘制方法
|
||||
|
||||
**A. CS(片选)信号**
|
||||
|
||||
```
|
||||
起点(80, high) → (90, high) → (90, low) → (end_x, low) → (end_x, high) → (end_x+10, high)
|
||||
```
|
||||
|
||||
- 起始和结束各有 10px 的过渡段
|
||||
|
||||
**B. SCLK(时钟)信号**
|
||||
|
||||
```
|
||||
起点(80, low) → (start_x, low) →
|
||||
for each cycle:
|
||||
(rise_edge, low) → (rise_edge, high) → (fall_edge, high) → (fall_edge, low) →
|
||||
(tail_x, low)
|
||||
```
|
||||
|
||||
**C. 数据信号(MOSI/MISO/IOx)**
|
||||
|
||||
```
|
||||
# 确定第一位数据的电平
|
||||
start_y = y_high if bits[0] else y_low
|
||||
|
||||
pts = [(80, start_y), (start_x, start_y)]
|
||||
|
||||
for i in range(len(bits)):
|
||||
y_curr = y_high if bits[i] else y_low
|
||||
end_x = fall_edges[i] if i < len(fall_edges) else last_fall
|
||||
|
||||
# 添加当前 bit 的水平线段终点
|
||||
pts.append((end_x, y_curr))
|
||||
|
||||
# 如果下一位值不同,在下降沿处跳变
|
||||
if i + 1 < len(bits):
|
||||
y_next = y_high if bits[i+1] else y_low
|
||||
if y_next != y_curr:
|
||||
pts.append((end_x, y_next))
|
||||
|
||||
pts.append((tail_x, pts[-1][1]))
|
||||
```
|
||||
|
||||
**D. 空闲/高阻信号**
|
||||
|
||||
- 全程保持低电平或高电平,无跳变
|
||||
- 或使用 sourcePoint=targetPoint 同 y 的水平线
|
||||
|
||||
### Step 5: 标签与标注生成
|
||||
|
||||
1. **Bit 标签**:`x = rise_edges[i] - 10`,`y = signal_high - 25`
|
||||
2. **阶段标签**:`x = stage_center_x - 60`,使用不同颜色区分阶段
|
||||
3. **十六进制标注**:在波形下方或上方添加数据包整体值
|
||||
|
||||
### Step 6: 验证与输出
|
||||
|
||||
1. **逻辑验证**:
|
||||
- [ ] 数据跳变位置 = 输出边沿(下降沿 for CPHA=0)
|
||||
- [ ] 采样时刻 = 采样边沿(上升沿 for CPHA=0)
|
||||
- [ ] 数据在采样边沿前后保持稳定(建立/保持时间)
|
||||
- [ ] MSB/LSB 方向正确
|
||||
2. **几何验证**:
|
||||
- [ ] 所有 edge 的 sourcePoint.y == 第一个中间点.y
|
||||
- [ ] 所有 edge 的 targetPoint.y == 最后一个中间点.y
|
||||
- [ ] 无斜线(相邻点 x 或 y 至少一个相等)
|
||||
3. **输出**:将完整 XML 保存为 `.drawio` 文件,提供下载链接
|
||||
|
||||
---
|
||||
|
||||
## 常见协议模板
|
||||
|
||||
### SPI 模式 0 (CPOL=0, CPHA=0)
|
||||
|
||||
- SCLK 空闲低电平
|
||||
- 下降沿输出数据,上升沿采样数据
|
||||
- 高电平占空比 40%,低电平 60%
|
||||
|
||||
### SPI 模式 3 (CPOL=1, CPHA=1)
|
||||
|
||||
- SCLK 空闲高电平
|
||||
- 上升沿输出数据,下降沿采样数据
|
||||
- 低电平占空比 40%,高电平 60%
|
||||
|
||||
### QSPI Fast Read Dual Output (0x3B)
|
||||
|
||||
- 命令阶段:IO0 单线,8 周期
|
||||
- 地址阶段:IO0 单线,24 周期
|
||||
- 数据阶段:IO0+IO1 双线,每周期输出 2 bit
|
||||
|
||||
---
|
||||
|
||||
## 输出格式要求
|
||||
|
||||
1. 必须提供可下载的 `.drawio` 文件
|
||||
2. 必须说明时序逻辑的关键设计点
|
||||
3. 必须列出信号定义和阶段划分
|
||||
4. 如有修复,必须说明修复原因(如斜线问题、边沿对齐问题)
|
||||
|
||||
---
|
||||
|
||||
## 错误处理
|
||||
|
||||
- 若用户提供的数据与协议规范冲突,优先遵循协议规范并提示用户
|
||||
- 若 bit 序列长度与时钟周期数不匹配,自动调整或提示用户补充
|
||||
- 若画布宽度超出默认范围,自动扩展 pageWidth
|
||||
|
||||
## 参考代码
|
||||
```python
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def make_qspi_mxfile():
|
||||
# ========== 基础参数 ==========
|
||||
y_cs_high, y_cs_low = 80, 110
|
||||
y_sclk_high, y_sclk_low = 180, 210
|
||||
y_io0_high, y_io0_low = 280, 310
|
||||
y_io1_high, y_io1_low = 380, 410
|
||||
|
||||
# 时序参数:50px/周期,36个周期(8命令+24地址+4数据)
|
||||
cycle_w = 50
|
||||
start_x = 100
|
||||
n_cycles = 36 # 8 + 24 + 4
|
||||
end_x = start_x + n_cycles * cycle_w # 1900
|
||||
tail_x = end_x + 50 # 1950
|
||||
|
||||
rise_edges = [start_x + i*cycle_w + cycle_w//2 for i in range(n_cycles)] # 125,175...
|
||||
fall_edges = [start_x + (i+1)*cycle_w for i in range(n_cycles)] # 150,200...1900
|
||||
|
||||
# 数据定义
|
||||
cmd_bits = [0,0,1,1,1,0,1,1] # 0x3B MSB first
|
||||
addr_bytes = [
|
||||
[0,0,0,1,0,0,1,0], # 0x12 A23-A16
|
||||
[0,0,1,1,0,1,0,0], # 0x34 A15-A8
|
||||
[0,1,0,1,0,1,1,0], # 0x56 A7-A0
|
||||
]
|
||||
addr_bits = [b for byte in addr_bytes for b in byte]
|
||||
data_io0 = [0,0,0,0] # D0,D2,D4,D6 (示例 0xAA)
|
||||
data_io1 = [1,1,1,1] # D1,D3,D5,D7
|
||||
|
||||
all_io0 = cmd_bits + addr_bits + data_io0
|
||||
all_io1 = [0]*32 + data_io1 # 命令地址期间 IO1 idle/low
|
||||
|
||||
lines = []
|
||||
lines.append('<?xml version="1.0" encoding="UTF-8"?>')
|
||||
lines.append('<mxfile host="app.diagrams.net" modified="2024-05-25T00:00:00.000Z" agent="AI" version="21.0.0" type="device">')
|
||||
lines.append(' <diagram name="QSPI Waveform" id="qspi_waveform">')
|
||||
lines.append(' <mxGraphModel dx="2000" dy="600" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2000" pageHeight="600" math="0" shadow="0">')
|
||||
lines.append(' <root>')
|
||||
lines.append(' <mxCell id="0"/>')
|
||||
lines.append(' <mxCell id="1" parent="0"/>')
|
||||
|
||||
# 背景
|
||||
lines.append(' <mxCell id="grid" value="" style="points=[];gridColor=#e0e0e0;gridSize=20;spacingTop=20;spacingLeft=20;spacingBottom=20;spacingRight=20;html=1;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="0" y="0" width="2100" height="600" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# 标题
|
||||
lines.append(' <mxCell id="title" value="QSPI Fast Read Dual Output (命令 0x3B)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1;" vertex="1" parent="1">')
|
||||
lines.append(' <mxGeometry x="600" y="20" width="500" height="30" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# MSB / LSB
|
||||
lines.append(' <mxCell id="msb" value="MSB" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{start_x+10}" y="60" width="40" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
lines.append(' <mxCell id="lsb" value="LSB" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{end_x-40}" y="60" width="40" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# 信号标签
|
||||
for label, y, eid in [("CS", 85, "label_cs"), ("SCLK", 185, "label_sclk"),
|
||||
("IO0", 275, "label_io0"), ("IO1", 375, "label_io1")]:
|
||||
lines.append(f' <mxCell id="{eid}" value="{label}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="20" y="{y}" width="50" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# 阶段分界虚线
|
||||
boundaries = [
|
||||
(start_x + 8*cycle_w, "cmd_addr"), # 500
|
||||
(start_x + 16*cycle_w, "addr_mid1"), # 900
|
||||
(start_x + 24*cycle_w, "addr_mid2"), # 1300
|
||||
(start_x + 32*cycle_w, "addr_data"), # 1700
|
||||
]
|
||||
for x, eid in boundaries:
|
||||
lines.append(f' <mxCell id="vl_{eid}" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry width="50" height="50" relative="1" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{x}" y="180" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{x}" y="420" as="targetPoint"/>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== CS 波形 ==========
|
||||
cs_pts = [(80, y_cs_high), (90, y_cs_high), (90, y_cs_low), (tail_x, y_cs_low), (tail_x, y_cs_high), (tail_x+10, y_cs_high)]
|
||||
lines.append(' <mxCell id="cs" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#FF5722;rounded=0;endArrow=none;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry relative="0" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{cs_pts[0][0]}" y="{cs_pts[0][1]}" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{cs_pts[-1][0]}" y="{cs_pts[-1][1]}" as="targetPoint"/>')
|
||||
lines.append(' <Array as="points">')
|
||||
for x, y in cs_pts[1:-1]:
|
||||
lines.append(f' <mxPoint x="{x}" y="{y}"/>')
|
||||
lines.append(' </Array>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== SCLK 波形 ==========
|
||||
sclk_pts = [(80, y_sclk_low), (start_x, y_sclk_low)]
|
||||
for i in range(n_cycles):
|
||||
rise = rise_edges[i]
|
||||
fall = fall_edges[i]
|
||||
sclk_pts.extend([
|
||||
(rise, y_sclk_low),
|
||||
(rise, y_sclk_high),
|
||||
(fall, y_sclk_high),
|
||||
(fall, y_sclk_low),
|
||||
])
|
||||
sclk_pts.append((tail_x, y_sclk_low))
|
||||
|
||||
lines.append(' <mxCell id="sclk" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#2196F3;rounded=0;endArrow=none;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry relative="0" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{sclk_pts[0][0]}" y="{sclk_pts[0][1]}" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{sclk_pts[-1][0]}" y="{sclk_pts[-1][1]}" as="targetPoint"/>')
|
||||
lines.append(' <Array as="points">')
|
||||
for x, y in sclk_pts[1:-1]:
|
||||
lines.append(f' <mxPoint x="{x}" y="{y}"/>')
|
||||
lines.append(' </Array>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== IO0 波形 ==========
|
||||
def build_wave_pts(bits, y_hi, y_lo, idle_y):
|
||||
y0 = y_hi if bits[0] else y_lo
|
||||
pts = [(80, y0), (start_x, y0)]
|
||||
for i in range(len(bits)-1):
|
||||
end_x = fall_edges[i]
|
||||
y_curr = y_hi if bits[i] else y_lo
|
||||
y_next = y_hi if bits[i+1] else y_lo
|
||||
pts.append((end_x, y_curr))
|
||||
if y_next != y_curr:
|
||||
pts.append((end_x, y_next))
|
||||
pts.append((end_x := fall_edges[len(bits)-1], y_hi if bits[-1] else y_lo))
|
||||
pts.append((tail_x, pts[-1][1]))
|
||||
return pts
|
||||
|
||||
io0_pts = build_wave_pts(all_io0, y_io0_high, y_io0_low, y_io0_low)
|
||||
lines.append(' <mxCell id="io0" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#4CAF50;rounded=0;endArrow=none;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry relative="0" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{io0_pts[0][0]}" y="{io0_pts[0][1]}" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{io0_pts[-1][0]}" y="{io0_pts[-1][1]}" as="targetPoint"/>')
|
||||
lines.append(' <Array as="points">')
|
||||
for x, y in io0_pts[1:-1]:
|
||||
lines.append(f' <mxPoint x="{x}" y="{y}"/>')
|
||||
lines.append(' </Array>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== IO1 波形 ==========
|
||||
io1_pts = build_wave_pts(all_io1, y_io1_high, y_io1_low, y_io1_low)
|
||||
lines.append(' <mxCell id="io1" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#9C27B0;rounded=0;endArrow=none;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry relative="0" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{io1_pts[0][0]}" y="{io1_pts[0][1]}" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{io1_pts[-1][0]}" y="{io1_pts[-1][1]}" as="targetPoint"/>')
|
||||
lines.append(' <Array as="points">')
|
||||
for x, y in io1_pts[1:-1]:
|
||||
lines.append(f' <mxPoint x="{x}" y="{y}"/>')
|
||||
lines.append(' </Array>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== 命令 bit 标签(IO0 上方) ==========
|
||||
cmd_labels = ["0","0","1","1","1","0","1","1"]
|
||||
for i, val in enumerate(cmd_labels):
|
||||
cx = rise_edges[i]
|
||||
lines.append(f' <mxCell id="cmd{i}" value="{val}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{cx-10}" y="255" width="20" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== 阶段名称标签 ==========
|
||||
stage_labels = [
|
||||
(start_x + 4*cycle_w, "命令 (0x3B)", "#4CAF50"),
|
||||
(start_x + 12*cycle_w, "地址 [23:16]", "#666666"),
|
||||
(start_x + 20*cycle_w, "地址 [15:8]", "#666666"),
|
||||
(start_x + 28*cycle_w, "地址 [7:0]", "#666666"),
|
||||
(start_x + 34*cycle_w, "数据 (Dual)", "#2196F3"),
|
||||
]
|
||||
for x, txt, color in stage_labels:
|
||||
lines.append(f' <mxCell id="stage_{txt[:4]}" value="{txt}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor={color};" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{x-60}" y="235" width="120" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== 数据阶段 bit 标签 ==========
|
||||
data_labels_io0 = ["D0","D2","D4","D6"]
|
||||
data_labels_io1 = ["D1","D3","D5","D7"]
|
||||
for i in range(4):
|
||||
cx = rise_edges[32 + i]
|
||||
# IO0
|
||||
lines.append(f' <mxCell id="d0_{i}" value="{data_labels_io0[i]}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{cx-10}" y="255" width="20" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
# IO1
|
||||
lines.append(f' <mxCell id="d1_{i}" value="{data_labels_io1[i]}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#9C27B0;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{cx-10}" y="355" width="20" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
lines.append(' </root>')
|
||||
lines.append(' </mxGraphModel>')
|
||||
lines.append(' </diagram>')
|
||||
lines.append('</mxfile>')
|
||||
|
||||
return "\n".join(lines)
|
||||
|
||||
xml_content = make_qspi_mxfile()
|
||||
output_path = "SPI_Waveform_QSPI.drawio"
|
||||
with open(output_path, "w", encoding="utf-8") as f:
|
||||
f.write(xml_content)
|
||||
|
||||
print("文件已生成:", output_path)
|
||||
```
|
||||
151
docs/绘图/NTP 报文格式.drawio
Normal file
@@ -0,0 +1,151 @@
|
||||
<mxfile host="Electron" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.6.6 Chrome/144.0.7559.236 Electron/40.8.4 Safari/537.36" version="29.6.6">
|
||||
<diagram id="ntp-packet-diagram" name="NTP v4 Packet Format">
|
||||
<mxGraphModel dx="1064" dy="1030" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1400" pageHeight="800" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="title" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=20;fontStyle=1" value="NTP v4 / SNTP v4 报文格式 (标准 48 字节)" vertex="1">
|
||||
<mxGeometry height="40" width="600" x="175" y="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="header-bit-title" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1" value="报文头部 (Word 0 - 第 0 至 31 位)" vertex="1">
|
||||
<mxGeometry height="30" width="300" x="100" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ruler-0" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=top;fontSize=10" value="0" vertex="1">
|
||||
<mxGeometry height="20" width="25" x="100" y="130" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ruler-1" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=top;fontSize=10" value="1" vertex="1">
|
||||
<mxGeometry height="20" width="25" x="125" y="130" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ruler-2" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=top;fontSize=10" value="2" vertex="1">
|
||||
<mxGeometry height="20" width="25" x="150" y="130" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ruler-3" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=top;fontSize=10" value="3" vertex="1">
|
||||
<mxGeometry height="20" width="25" x="175" y="130" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ruler-4" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=top;fontSize=10" value="4" vertex="1">
|
||||
<mxGeometry height="20" width="25" x="200" y="130" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ruler-5" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=top;fontSize=10" value="5" vertex="1">
|
||||
<mxGeometry height="20" width="25" x="225" y="130" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ruler-6" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=top;fontSize=10" value="6" vertex="1">
|
||||
<mxGeometry height="20" width="25" x="250" y="130" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ruler-7" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=top;fontSize=10" value="7" vertex="1">
|
||||
<mxGeometry height="20" width="25" x="275" y="130" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ruler-8" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=top;fontSize=10" value="8" vertex="1">
|
||||
<mxGeometry height="20" width="25" x="300" y="130" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ruler-15" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=top;fontSize=10" value="15" vertex="1">
|
||||
<mxGeometry height="20" width="50" x="460" y="130" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ruler-16" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=top;fontSize=10" value="16" vertex="1">
|
||||
<mxGeometry height="20" width="50" x="490" y="130" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ruler-23" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=top;fontSize=10" value="23" vertex="1">
|
||||
<mxGeometry height="20" width="50" x="660" y="130" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ruler-24" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=top;fontSize=10" value="24" vertex="1">
|
||||
<mxGeometry height="20" width="50" x="690" y="130" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ruler-31" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=top;fontSize=10" value="31" vertex="1">
|
||||
<mxGeometry height="20" width="50" x="870" y="130" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="li-box" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#000000;align=center;verticalAlign=middle;fontStyle=1" value="LI" vertex="1">
|
||||
<mxGeometry height="40" width="50" x="100" y="150" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="vn-box" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;align=center;verticalAlign=middle;fontStyle=1" value="VN" vertex="1">
|
||||
<mxGeometry height="40" width="75" x="150" y="150" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mode-box" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#000000;align=center;verticalAlign=middle;fontStyle=1" value="Mode" vertex="1">
|
||||
<mxGeometry height="40" width="75" x="225" y="150" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="stratum-box" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#000000;align=center;verticalAlign=middle;fontStyle=1" value="Stratum&nbsp;<span style="font-size: 11px; font-weight: 400;">8bit (1 字节)</span>" vertex="1">
|
||||
<mxGeometry height="40" width="200" x="300" y="150" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="poll-box" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#000000;align=center;verticalAlign=middle;fontStyle=1" value="Poll&nbsp;<span style="font-size: 11px; font-weight: 400;">8bit (1 字节)</span>" vertex="1">
|
||||
<mxGeometry height="40" width="200" x="500" y="150" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="precision-box" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#000000;align=center;verticalAlign=middle;fontStyle=1" value="Precision&nbsp;<span style="font-size: 11px; font-weight: 400;">8bit (1 字节)</span>" vertex="1">
|
||||
<mxGeometry height="40" width="200" x="700" y="150" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="timestamps-title" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1" value="时间戳与其他字段 (Words 1-11)" vertex="1">
|
||||
<mxGeometry height="30" width="400" x="100" y="201" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="root-delay-box" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#000000;align=center;verticalAlign=middle" value="Root Delay <span style="font-size: 11px;">32bit (4 字节)</span>" vertex="1">
|
||||
<mxGeometry height="30" width="400" x="100" y="231" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="root-disp-box" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#000000;align=center;verticalAlign=middle" value="Root Dispersion&nbsp;<span style="font-size: 11px;">32bit (4 字节)</span>" vertex="1">
|
||||
<mxGeometry height="30" width="400" x="100" y="271" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ref-id-box" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#000000;align=center;verticalAlign=middle" value="Reference Identifier&nbsp;<span style="font-size: 11px;">32bit (4 字节)</span>" vertex="1">
|
||||
<mxGeometry height="30" width="400" x="100" y="311" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ref-ts-box" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#000000;align=center;verticalAlign=middle" value="Reference Timestamp&nbsp;<span style="font-size: 11px;">64bit (8 字节)</span>" vertex="1">
|
||||
<mxGeometry height="30" width="800" x="100" y="361" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="orig-ts-box" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#000000;align=center;verticalAlign=middle" value="Originate Timestamp (T1)&nbsp;<span style="font-size: 11px;">64bit (8 字节)</span>" vertex="1">
|
||||
<mxGeometry height="30" width="800" x="100" y="401" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="rx-ts-box" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#000000;align=center;verticalAlign=middle" value="Receive Timestamp (T2)&nbsp;<span style="font-size: 11px;">64bit (8 字节)</span>" vertex="1">
|
||||
<mxGeometry height="30" width="800" x="100" y="441" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="tx-ts-box" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#000000;align=center;verticalAlign=middle" value="Transmit Timestamp (T3)&nbsp;<span style="font-size: 11px;">64bit (8 字节)</span>" vertex="1">
|
||||
<mxGeometry height="30" width="800" x="100" y="481" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="table-title" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1" value="核心字段定义表" vertex="1">
|
||||
<mxGeometry height="30" width="200" x="100" y="523" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="table-bg" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#666666;" value="" vertex="1">
|
||||
<mxGeometry height="130" width="800" x="100" y="563" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="th1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6c8ebf;strokeColor=#ffffff;fontColor=#ffffff;align=center;verticalAlign=middle;fontStyle=1" value="字段名称" vertex="1">
|
||||
<mxGeometry height="30" width="180" x="100" y="563" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="th2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6c8ebf;strokeColor=#ffffff;fontColor=#ffffff;align=center;verticalAlign=middle;fontStyle=1" value="长度" vertex="1">
|
||||
<mxGeometry height="30" width="100" x="280" y="563" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="th3" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#6c8ebf;strokeColor=#ffffff;fontColor=#ffffff;align=center;verticalAlign=middle;fontStyle=1" value="核心含义" vertex="1">
|
||||
<mxGeometry height="30" width="520" x="380" y="563" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="d1-1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#cccccc;align=left;verticalAlign=middle" value="LI&nbsp;" vertex="1">
|
||||
<mxGeometry height="25" width="180" x="100" y="593" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="d1-2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#cccccc;align=center;verticalAlign=middle" value="2 bit" vertex="1">
|
||||
<mxGeometry height="25" width="100" x="280" y="593" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="d1-3" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#cccccc;align=left;verticalAlign=middle" value="闰秒警告(<span style="background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));">00 = 无警告,11 = 时钟未同步告警</span>)" vertex="1">
|
||||
<mxGeometry height="25" width="520" x="380" y="593" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="d2-1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#cccccc;align=left;verticalAlign=middle" value="VN" vertex="1">
|
||||
<mxGeometry height="25" width="180" x="100" y="618" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="d2-2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#cccccc;align=center;verticalAlign=middle" value="3 bit" vertex="1">
|
||||
<mxGeometry height="25" width="100" x="280" y="618" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="d2-3" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#cccccc;align=left;verticalAlign=middle" value="版本号(<span style="background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));">SNTPv4 对应值为 4</span>)" vertex="1">
|
||||
<mxGeometry height="25" width="520" x="380" y="618" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="KUBt822XMcShu5GcSIXM-4" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#cccccc;align=left;verticalAlign=middle" value="Mode" vertex="1">
|
||||
<mxGeometry height="25" width="180" x="100" y="643" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="KUBt822XMcShu5GcSIXM-5" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#cccccc;align=center;verticalAlign=middle" value="3 bit" vertex="1">
|
||||
<mxGeometry height="25" width="100" x="280" y="643" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="KUBt822XMcShu5GcSIXM-6" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#cccccc;align=left;verticalAlign=middle" value="模式 (<span style="background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));">3 = 客户端,4 = 服务器,5 = 广播 / 多播)</span>" vertex="1">
|
||||
<mxGeometry height="25" width="520" x="380" y="643" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="KUBt822XMcShu5GcSIXM-7" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#cccccc;align=left;verticalAlign=middle" value="Transmit Timestamp" vertex="1">
|
||||
<mxGeometry height="25" width="180" x="100" y="668" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="KUBt822XMcShu5GcSIXM-8" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#cccccc;align=center;verticalAlign=middle" value="64 bit" vertex="1">
|
||||
<mxGeometry height="25" width="100" x="280" y="668" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="KUBt822XMcShu5GcSIXM-9" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#cccccc;align=left;verticalAlign=middle" value="【T3】服务器离开时间戳 (计算偏移的核心)" vertex="1">
|
||||
<mxGeometry height="25" width="520" x="380" y="668" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
BIN
docs/绘图/NTP 报文格式.drawio.png
Normal file
|
After Width: | Height: | Size: 100 KiB |
428
docs/绘图/QSPI_Waveform_Corrected.drawio
Normal file
@@ -0,0 +1,428 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mxfile host="app.diagrams.net" modified="2024-05-25T00:00:00.000Z" agent="AI" version="21.0.0" type="device">
|
||||
<diagram name="QSPI Waveform" id="qspi_waveform">
|
||||
<mxGraphModel dx="2000" dy="600" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2000" pageHeight="600" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
<mxCell id="grid" value="" style="points=[];gridColor=#e0e0e0;gridSize=20;spacingTop=20;spacingLeft=20;spacingBottom=20;spacingRight=20;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="0" y="0" width="2100" height="600" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="title" value="QSPI Fast Read Dual Output (0x3B) - 地址双线传输" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="500" y="20" width="600" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="msb" value="MSB" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="110" y="60" width="40" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="lsb" value="LSB" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="1860" y="60" width="40" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="label_cs" value="CS" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="85" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="label_sclk" value="SCLK" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="185" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="label_io0" value="IO0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="275" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="label_io1" value="IO1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="375" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="vl_cmd_addr" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="500" y="180" as="sourcePoint"/>
|
||||
<mxPoint x="500" y="420" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="vl_addr_data" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1100" y="180" as="sourcePoint"/>
|
||||
<mxPoint x="1100" y="420" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="cs" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#FF5722;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="80" as="sourcePoint"/>
|
||||
<mxPoint x="1960" y="80" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="90" y="80"/>
|
||||
<mxPoint x="90" y="110"/>
|
||||
<mxPoint x="1950" y="110"/>
|
||||
<mxPoint x="1950" y="80"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sclk" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#2196F3;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="210" as="sourcePoint"/>
|
||||
<mxPoint x="1950" y="210" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="210"/>
|
||||
<mxPoint x="125" y="210"/>
|
||||
<mxPoint x="125" y="180"/>
|
||||
<mxPoint x="150" y="180"/>
|
||||
<mxPoint x="150" y="210"/>
|
||||
<mxPoint x="175" y="210"/>
|
||||
<mxPoint x="175" y="180"/>
|
||||
<mxPoint x="200" y="180"/>
|
||||
<mxPoint x="200" y="210"/>
|
||||
<mxPoint x="225" y="210"/>
|
||||
<mxPoint x="225" y="180"/>
|
||||
<mxPoint x="250" y="180"/>
|
||||
<mxPoint x="250" y="210"/>
|
||||
<mxPoint x="275" y="210"/>
|
||||
<mxPoint x="275" y="180"/>
|
||||
<mxPoint x="300" y="180"/>
|
||||
<mxPoint x="300" y="210"/>
|
||||
<mxPoint x="325" y="210"/>
|
||||
<mxPoint x="325" y="180"/>
|
||||
<mxPoint x="350" y="180"/>
|
||||
<mxPoint x="350" y="210"/>
|
||||
<mxPoint x="375" y="210"/>
|
||||
<mxPoint x="375" y="180"/>
|
||||
<mxPoint x="400" y="180"/>
|
||||
<mxPoint x="400" y="210"/>
|
||||
<mxPoint x="425" y="210"/>
|
||||
<mxPoint x="425" y="180"/>
|
||||
<mxPoint x="450" y="180"/>
|
||||
<mxPoint x="450" y="210"/>
|
||||
<mxPoint x="475" y="210"/>
|
||||
<mxPoint x="475" y="180"/>
|
||||
<mxPoint x="500" y="180"/>
|
||||
<mxPoint x="500" y="210"/>
|
||||
<mxPoint x="525" y="210"/>
|
||||
<mxPoint x="525" y="180"/>
|
||||
<mxPoint x="550" y="180"/>
|
||||
<mxPoint x="550" y="210"/>
|
||||
<mxPoint x="575" y="210"/>
|
||||
<mxPoint x="575" y="180"/>
|
||||
<mxPoint x="600" y="180"/>
|
||||
<mxPoint x="600" y="210"/>
|
||||
<mxPoint x="625" y="210"/>
|
||||
<mxPoint x="625" y="180"/>
|
||||
<mxPoint x="650" y="180"/>
|
||||
<mxPoint x="650" y="210"/>
|
||||
<mxPoint x="675" y="210"/>
|
||||
<mxPoint x="675" y="180"/>
|
||||
<mxPoint x="700" y="180"/>
|
||||
<mxPoint x="700" y="210"/>
|
||||
<mxPoint x="725" y="210"/>
|
||||
<mxPoint x="725" y="180"/>
|
||||
<mxPoint x="750" y="180"/>
|
||||
<mxPoint x="750" y="210"/>
|
||||
<mxPoint x="775" y="210"/>
|
||||
<mxPoint x="775" y="180"/>
|
||||
<mxPoint x="800" y="180"/>
|
||||
<mxPoint x="800" y="210"/>
|
||||
<mxPoint x="825" y="210"/>
|
||||
<mxPoint x="825" y="180"/>
|
||||
<mxPoint x="850" y="180"/>
|
||||
<mxPoint x="850" y="210"/>
|
||||
<mxPoint x="875" y="210"/>
|
||||
<mxPoint x="875" y="180"/>
|
||||
<mxPoint x="900" y="180"/>
|
||||
<mxPoint x="900" y="210"/>
|
||||
<mxPoint x="925" y="210"/>
|
||||
<mxPoint x="925" y="180"/>
|
||||
<mxPoint x="950" y="180"/>
|
||||
<mxPoint x="950" y="210"/>
|
||||
<mxPoint x="975" y="210"/>
|
||||
<mxPoint x="975" y="180"/>
|
||||
<mxPoint x="1000" y="180"/>
|
||||
<mxPoint x="1000" y="210"/>
|
||||
<mxPoint x="1025" y="210"/>
|
||||
<mxPoint x="1025" y="180"/>
|
||||
<mxPoint x="1050" y="180"/>
|
||||
<mxPoint x="1050" y="210"/>
|
||||
<mxPoint x="1075" y="210"/>
|
||||
<mxPoint x="1075" y="180"/>
|
||||
<mxPoint x="1100" y="180"/>
|
||||
<mxPoint x="1100" y="210"/>
|
||||
<mxPoint x="1125" y="210"/>
|
||||
<mxPoint x="1125" y="180"/>
|
||||
<mxPoint x="1150" y="180"/>
|
||||
<mxPoint x="1150" y="210"/>
|
||||
<mxPoint x="1175" y="210"/>
|
||||
<mxPoint x="1175" y="180"/>
|
||||
<mxPoint x="1200" y="180"/>
|
||||
<mxPoint x="1200" y="210"/>
|
||||
<mxPoint x="1225" y="210"/>
|
||||
<mxPoint x="1225" y="180"/>
|
||||
<mxPoint x="1250" y="180"/>
|
||||
<mxPoint x="1250" y="210"/>
|
||||
<mxPoint x="1275" y="210"/>
|
||||
<mxPoint x="1275" y="180"/>
|
||||
<mxPoint x="1300" y="180"/>
|
||||
<mxPoint x="1300" y="210"/>
|
||||
<mxPoint x="1325" y="210"/>
|
||||
<mxPoint x="1325" y="180"/>
|
||||
<mxPoint x="1350" y="180"/>
|
||||
<mxPoint x="1350" y="210"/>
|
||||
<mxPoint x="1375" y="210"/>
|
||||
<mxPoint x="1375" y="180"/>
|
||||
<mxPoint x="1400" y="180"/>
|
||||
<mxPoint x="1400" y="210"/>
|
||||
<mxPoint x="1425" y="210"/>
|
||||
<mxPoint x="1425" y="180"/>
|
||||
<mxPoint x="1450" y="180"/>
|
||||
<mxPoint x="1450" y="210"/>
|
||||
<mxPoint x="1475" y="210"/>
|
||||
<mxPoint x="1475" y="180"/>
|
||||
<mxPoint x="1500" y="180"/>
|
||||
<mxPoint x="1500" y="210"/>
|
||||
<mxPoint x="1525" y="210"/>
|
||||
<mxPoint x="1525" y="180"/>
|
||||
<mxPoint x="1550" y="180"/>
|
||||
<mxPoint x="1550" y="210"/>
|
||||
<mxPoint x="1575" y="210"/>
|
||||
<mxPoint x="1575" y="180"/>
|
||||
<mxPoint x="1600" y="180"/>
|
||||
<mxPoint x="1600" y="210"/>
|
||||
<mxPoint x="1625" y="210"/>
|
||||
<mxPoint x="1625" y="180"/>
|
||||
<mxPoint x="1650" y="180"/>
|
||||
<mxPoint x="1650" y="210"/>
|
||||
<mxPoint x="1675" y="210"/>
|
||||
<mxPoint x="1675" y="180"/>
|
||||
<mxPoint x="1700" y="180"/>
|
||||
<mxPoint x="1700" y="210"/>
|
||||
<mxPoint x="1725" y="210"/>
|
||||
<mxPoint x="1725" y="180"/>
|
||||
<mxPoint x="1750" y="180"/>
|
||||
<mxPoint x="1750" y="210"/>
|
||||
<mxPoint x="1775" y="210"/>
|
||||
<mxPoint x="1775" y="180"/>
|
||||
<mxPoint x="1800" y="180"/>
|
||||
<mxPoint x="1800" y="210"/>
|
||||
<mxPoint x="1825" y="210"/>
|
||||
<mxPoint x="1825" y="180"/>
|
||||
<mxPoint x="1850" y="180"/>
|
||||
<mxPoint x="1850" y="210"/>
|
||||
<mxPoint x="1875" y="210"/>
|
||||
<mxPoint x="1875" y="180"/>
|
||||
<mxPoint x="1900" y="180"/>
|
||||
<mxPoint x="1900" y="210"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="io0" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#4CAF50;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="310" as="sourcePoint"/>
|
||||
<mxPoint x="1950" y="310" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="310"/>
|
||||
<mxPoint x="150" y="310"/>
|
||||
<mxPoint x="200" y="310"/>
|
||||
<mxPoint x="200" y="280"/>
|
||||
<mxPoint x="250" y="280"/>
|
||||
<mxPoint x="300" y="280"/>
|
||||
<mxPoint x="350" y="280"/>
|
||||
<mxPoint x="350" y="310"/>
|
||||
<mxPoint x="400" y="310"/>
|
||||
<mxPoint x="400" y="280"/>
|
||||
<mxPoint x="450" y="280"/>
|
||||
<mxPoint x="500" y="280"/>
|
||||
<mxPoint x="500" y="310"/>
|
||||
<mxPoint x="550" y="310"/>
|
||||
<mxPoint x="600" y="310"/>
|
||||
<mxPoint x="650" y="310"/>
|
||||
<mxPoint x="650" y="280"/>
|
||||
<mxPoint x="700" y="280"/>
|
||||
<mxPoint x="700" y="310"/>
|
||||
<mxPoint x="750" y="310"/>
|
||||
<mxPoint x="750" y="280"/>
|
||||
<mxPoint x="800" y="280"/>
|
||||
<mxPoint x="800" y="310"/>
|
||||
<mxPoint x="850" y="310"/>
|
||||
<mxPoint x="900" y="310"/>
|
||||
<mxPoint x="950" y="310"/>
|
||||
<mxPoint x="1000" y="310"/>
|
||||
<mxPoint x="1050" y="310"/>
|
||||
<mxPoint x="1050" y="280"/>
|
||||
<mxPoint x="1100" y="280"/>
|
||||
<mxPoint x="1150" y="280"/>
|
||||
<mxPoint x="1150" y="310"/>
|
||||
<mxPoint x="1200" y="310"/>
|
||||
<mxPoint x="1200" y="280"/>
|
||||
<mxPoint x="1250" y="280"/>
|
||||
<mxPoint x="1250" y="310"/>
|
||||
<mxPoint x="1300" y="310"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="io1" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#9C27B0;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="410" as="sourcePoint"/>
|
||||
<mxPoint x="1950" y="380" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="410"/>
|
||||
<mxPoint x="150" y="410"/>
|
||||
<mxPoint x="200" y="410"/>
|
||||
<mxPoint x="250" y="410"/>
|
||||
<mxPoint x="300" y="410"/>
|
||||
<mxPoint x="350" y="410"/>
|
||||
<mxPoint x="400" y="410"/>
|
||||
<mxPoint x="450" y="410"/>
|
||||
<mxPoint x="500" y="410"/>
|
||||
<mxPoint x="550" y="410"/>
|
||||
<mxPoint x="550" y="380"/>
|
||||
<mxPoint x="600" y="380"/>
|
||||
<mxPoint x="600" y="410"/>
|
||||
<mxPoint x="650" y="410"/>
|
||||
<mxPoint x="700" y="410"/>
|
||||
<mxPoint x="750" y="410"/>
|
||||
<mxPoint x="750" y="380"/>
|
||||
<mxPoint x="800" y="380"/>
|
||||
<mxPoint x="850" y="380"/>
|
||||
<mxPoint x="850" y="410"/>
|
||||
<mxPoint x="900" y="410"/>
|
||||
<mxPoint x="900" y="380"/>
|
||||
<mxPoint x="950" y="380"/>
|
||||
<mxPoint x="1000" y="380"/>
|
||||
<mxPoint x="1050" y="380"/>
|
||||
<mxPoint x="1050" y="410"/>
|
||||
<mxPoint x="1100" y="410"/>
|
||||
<mxPoint x="1150" y="410"/>
|
||||
<mxPoint x="1150" y="380"/>
|
||||
<mxPoint x="1200" y="380"/>
|
||||
<mxPoint x="1200" y="410"/>
|
||||
<mxPoint x="1250" y="410"/>
|
||||
<mxPoint x="1250" y="380"/>
|
||||
<mxPoint x="1300" y="380"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="cmd_io0_0" value="0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="115" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd_io0_1" value="0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="165" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd_io0_2" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="215" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd_io0_3" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="265" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd_io0_4" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="315" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd_io0_5" value="0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="365" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd_io0_6" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="415" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd_io0_7" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="465" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_0" value="A23" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="510" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io1_0" value="A22" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="510" y="355" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_1" value="A21" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="560" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io1_1" value="A20" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="560" y="355" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_2" value="A19" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="610" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io1_2" value="A18" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="610" y="355" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_3" value="A17" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="660" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io1_3" value="A16" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="660" y="355" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_4" value="A15" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="710" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io1_4" value="A14" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="710" y="355" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_5" value="A13" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="760" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io1_5" value="A12" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="760" y="355" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_6" value="A11" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="810" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io1_6" value="A10" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="810" y="355" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_7" value="A9" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="860" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io1_7" value="A8" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="860" y="355" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_8" value="A7" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="910" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io1_8" value="A6" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="910" y="355" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_9" value="A5" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="960" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io1_9" value="A4" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="960" y="355" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_10" value="A3" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="1010" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io1_10" value="A2" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="1010" y="355" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_11" value="A1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="1060" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io1_11" value="A0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="1060" y="355" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="data_io0_0" value="D7" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="1110" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="data_io1_0" value="D6" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="1110" y="355" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="data_io0_1" value="D5" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="1160" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="data_io1_1" value="D4" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="1160" y="355" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="data_io0_2" value="D3" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="1210" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="data_io1_2" value="D2" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="1210" y="355" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="data_io0_3" value="D1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="1260" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="data_io1_3" value="D0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="1260" y="355" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="stage_命令 (" value="命令 (0x3B)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="240" y="235" width="120" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="stage_地址 (" value="地址 (24bit 双线)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#666666;" vertex="1" parent="1">
|
||||
<mxGeometry x="740" y="235" width="120" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="stage_数据 (" value="数据 (Dual Output)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#2196F3;" vertex="1" parent="1">
|
||||
<mxGeometry x="1140" y="235" width="120" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
BIN
docs/绘图/SPI_QSPI.png
Normal file
|
After Width: | Height: | Size: 771 KiB |
207
docs/绘图/SPI_QSPI.py
Normal file
@@ -0,0 +1,207 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def make_qspi_mxfile():
|
||||
# ========== 基础参数 ==========
|
||||
y_cs_high, y_cs_low = 80, 110
|
||||
y_sclk_high, y_sclk_low = 180, 210
|
||||
y_io0_high, y_io0_low = 280, 310
|
||||
y_io1_high, y_io1_low = 380, 410
|
||||
|
||||
# 时序参数:50px/周期,36个周期(8命令+24地址+4数据)
|
||||
cycle_w = 50
|
||||
start_x = 100
|
||||
n_cycles = 36 # 8 + 24 + 4
|
||||
end_x = start_x + n_cycles * cycle_w # 1900
|
||||
tail_x = end_x + 50 # 1950
|
||||
|
||||
rise_edges = [start_x + i*cycle_w + cycle_w//2 for i in range(n_cycles)] # 125,175...
|
||||
fall_edges = [start_x + (i+1)*cycle_w for i in range(n_cycles)] # 150,200...1900
|
||||
|
||||
# 数据定义
|
||||
cmd_bits = [0,0,1,1,1,0,1,1] # 0x3B MSB first
|
||||
addr_bytes = [
|
||||
[0,0,0,1,0,0,1,0], # 0x12 A23-A16
|
||||
[0,0,1,1,0,1,0,0], # 0x34 A15-A8
|
||||
[0,1,0,1,0,1,1,0], # 0x56 A7-A0
|
||||
]
|
||||
addr_bits = [b for byte in addr_bytes for b in byte]
|
||||
data_io0 = [0,0,0,0] # D0,D2,D4,D6 (示例 0xAA)
|
||||
data_io1 = [1,1,1,1] # D1,D3,D5,D7
|
||||
|
||||
all_io0 = cmd_bits + addr_bits + data_io0
|
||||
all_io1 = [0]*32 + data_io1 # 命令地址期间 IO1 idle/low
|
||||
|
||||
lines = []
|
||||
lines.append('<?xml version="1.0" encoding="UTF-8"?>')
|
||||
lines.append('<mxfile host="app.diagrams.net" modified="2024-05-25T00:00:00.000Z" agent="AI" version="21.0.0" type="device">')
|
||||
lines.append(' <diagram name="QSPI Waveform" id="qspi_waveform">')
|
||||
lines.append(' <mxGraphModel dx="2000" dy="600" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2000" pageHeight="600" math="0" shadow="0">')
|
||||
lines.append(' <root>')
|
||||
lines.append(' <mxCell id="0"/>')
|
||||
lines.append(' <mxCell id="1" parent="0"/>')
|
||||
|
||||
# 背景
|
||||
lines.append(' <mxCell id="grid" value="" style="points=[];gridColor=#e0e0e0;gridSize=20;spacingTop=20;spacingLeft=20;spacingBottom=20;spacingRight=20;html=1;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="0" y="0" width="2100" height="600" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# 标题
|
||||
lines.append(' <mxCell id="title" value="QSPI Fast Read Dual Output (命令 0x3B)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1;" vertex="1" parent="1">')
|
||||
lines.append(' <mxGeometry x="600" y="20" width="500" height="30" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# MSB / LSB
|
||||
lines.append(' <mxCell id="msb" value="MSB" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{start_x+10}" y="60" width="40" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
lines.append(' <mxCell id="lsb" value="LSB" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{end_x-40}" y="60" width="40" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# 信号标签
|
||||
for label, y, eid in [("CS", 85, "label_cs"), ("SCLK", 185, "label_sclk"),
|
||||
("IO0", 275, "label_io0"), ("IO1", 375, "label_io1")]:
|
||||
lines.append(f' <mxCell id="{eid}" value="{label}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="20" y="{y}" width="50" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# 阶段分界虚线
|
||||
boundaries = [
|
||||
(start_x + 8*cycle_w, "cmd_addr"), # 500
|
||||
(start_x + 16*cycle_w, "addr_mid1"), # 900
|
||||
(start_x + 24*cycle_w, "addr_mid2"), # 1300
|
||||
(start_x + 32*cycle_w, "addr_data"), # 1700
|
||||
]
|
||||
for x, eid in boundaries:
|
||||
lines.append(f' <mxCell id="vl_{eid}" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry width="50" height="50" relative="1" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{x}" y="180" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{x}" y="420" as="targetPoint"/>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== CS 波形 ==========
|
||||
cs_pts = [(80, y_cs_high), (90, y_cs_high), (90, y_cs_low), (tail_x, y_cs_low), (tail_x, y_cs_high), (tail_x+10, y_cs_high)]
|
||||
lines.append(' <mxCell id="cs" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#FF5722;rounded=0;endArrow=none;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry relative="0" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{cs_pts[0][0]}" y="{cs_pts[0][1]}" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{cs_pts[-1][0]}" y="{cs_pts[-1][1]}" as="targetPoint"/>')
|
||||
lines.append(' <Array as="points">')
|
||||
for x, y in cs_pts[1:-1]:
|
||||
lines.append(f' <mxPoint x="{x}" y="{y}"/>')
|
||||
lines.append(' </Array>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== SCLK 波形 ==========
|
||||
sclk_pts = [(80, y_sclk_low), (start_x, y_sclk_low)]
|
||||
for i in range(n_cycles):
|
||||
rise = rise_edges[i]
|
||||
fall = fall_edges[i]
|
||||
sclk_pts.extend([
|
||||
(rise, y_sclk_low),
|
||||
(rise, y_sclk_high),
|
||||
(fall, y_sclk_high),
|
||||
(fall, y_sclk_low),
|
||||
])
|
||||
sclk_pts.append((tail_x, y_sclk_low))
|
||||
|
||||
lines.append(' <mxCell id="sclk" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#2196F3;rounded=0;endArrow=none;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry relative="0" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{sclk_pts[0][0]}" y="{sclk_pts[0][1]}" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{sclk_pts[-1][0]}" y="{sclk_pts[-1][1]}" as="targetPoint"/>')
|
||||
lines.append(' <Array as="points">')
|
||||
for x, y in sclk_pts[1:-1]:
|
||||
lines.append(f' <mxPoint x="{x}" y="{y}"/>')
|
||||
lines.append(' </Array>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== IO0 波形 ==========
|
||||
def build_wave_pts(bits, y_hi, y_lo, idle_y):
|
||||
y0 = y_hi if bits[0] else y_lo
|
||||
pts = [(80, y0), (start_x, y0)]
|
||||
for i in range(len(bits)-1):
|
||||
end_x = fall_edges[i]
|
||||
y_curr = y_hi if bits[i] else y_lo
|
||||
y_next = y_hi if bits[i+1] else y_lo
|
||||
pts.append((end_x, y_curr))
|
||||
if y_next != y_curr:
|
||||
pts.append((end_x, y_next))
|
||||
pts.append((end_x := fall_edges[len(bits)-1], y_hi if bits[-1] else y_lo))
|
||||
pts.append((tail_x, pts[-1][1]))
|
||||
return pts
|
||||
|
||||
io0_pts = build_wave_pts(all_io0, y_io0_high, y_io0_low, y_io0_low)
|
||||
lines.append(' <mxCell id="io0" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#4CAF50;rounded=0;endArrow=none;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry relative="0" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{io0_pts[0][0]}" y="{io0_pts[0][1]}" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{io0_pts[-1][0]}" y="{io0_pts[-1][1]}" as="targetPoint"/>')
|
||||
lines.append(' <Array as="points">')
|
||||
for x, y in io0_pts[1:-1]:
|
||||
lines.append(f' <mxPoint x="{x}" y="{y}"/>')
|
||||
lines.append(' </Array>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== IO1 波形 ==========
|
||||
io1_pts = build_wave_pts(all_io1, y_io1_high, y_io1_low, y_io1_low)
|
||||
lines.append(' <mxCell id="io1" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#9C27B0;rounded=0;endArrow=none;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry relative="0" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{io1_pts[0][0]}" y="{io1_pts[0][1]}" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{io1_pts[-1][0]}" y="{io1_pts[-1][1]}" as="targetPoint"/>')
|
||||
lines.append(' <Array as="points">')
|
||||
for x, y in io1_pts[1:-1]:
|
||||
lines.append(f' <mxPoint x="{x}" y="{y}"/>')
|
||||
lines.append(' </Array>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== 命令 bit 标签(IO0 上方) ==========
|
||||
cmd_labels = ["0","0","1","1","1","0","1","1"]
|
||||
for i, val in enumerate(cmd_labels):
|
||||
cx = rise_edges[i]
|
||||
lines.append(f' <mxCell id="cmd{i}" value="{val}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{cx-10}" y="255" width="20" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== 阶段名称标签 ==========
|
||||
stage_labels = [
|
||||
(start_x + 4*cycle_w, "命令 (0x3B)", "#4CAF50"),
|
||||
(start_x + 12*cycle_w, "地址 [23:16]", "#666666"),
|
||||
(start_x + 20*cycle_w, "地址 [15:8]", "#666666"),
|
||||
(start_x + 28*cycle_w, "地址 [7:0]", "#666666"),
|
||||
(start_x + 34*cycle_w, "数据 (Dual)", "#2196F3"),
|
||||
]
|
||||
for x, txt, color in stage_labels:
|
||||
lines.append(f' <mxCell id="stage_{txt[:4]}" value="{txt}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor={color};" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{x-60}" y="235" width="120" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== 数据阶段 bit 标签 ==========
|
||||
data_labels_io0 = ["D0","D2","D4","D6"]
|
||||
data_labels_io1 = ["D1","D3","D5","D7"]
|
||||
for i in range(4):
|
||||
cx = rise_edges[32 + i]
|
||||
# IO0
|
||||
lines.append(f' <mxCell id="d0_{i}" value="{data_labels_io0[i]}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{cx-10}" y="255" width="20" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
# IO1
|
||||
lines.append(f' <mxCell id="d1_{i}" value="{data_labels_io1[i]}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#9C27B0;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{cx-10}" y="355" width="20" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
lines.append(' </root>')
|
||||
lines.append(' </mxGraphModel>')
|
||||
lines.append(' </diagram>')
|
||||
lines.append('</mxfile>')
|
||||
|
||||
return "\n".join(lines)
|
||||
|
||||
xml_content = make_qspi_mxfile()
|
||||
output_path = "SPI_Waveform_QSPI.drawio"
|
||||
with open(output_path, "w", encoding="utf-8") as f:
|
||||
f.write(xml_content)
|
||||
|
||||
print("文件已生成:", output_path)
|
||||
345
docs/绘图/SPI_Quad.drawio
Normal file
@@ -0,0 +1,345 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mxfile host="app.diagrams.net" modified="2024-05-25T00:00:00.000Z" agent="AI" version="21.0.0" type="device">
|
||||
<diagram name="QSPI Quad I/O Fast Read (0xEB)" id="qspi_quad_io">
|
||||
<mxGraphModel dx="1000" dy="700" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1000" pageHeight="700" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
<mxCell id="grid" value="" style="points=[];gridColor=#e0e0e0;gridSize=20;spacingTop=20;spacingLeft=20;spacingBottom=20;spacingRight=20;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="0" y="0" width="1000" height="700" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="title" value="QSPI Quad I/O Fast Read (命令 0xEB)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="300" y="20" width="400" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="msb" value="MSB" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="110" y="60" width="40" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="lsb" value="LSB" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="810" y="60" width="40" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="label_cs" value="CS" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="85" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="label_sclk" value="SCLK" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="185" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="label_io0" value="IO0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="275" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="label_io1" value="IO1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="375" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="label_io2" value="IO2" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="475" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="label_io3" value="IO3" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="575" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="vl_cmd_addr" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="500" y="180" as="sourcePoint"/>
|
||||
<mxPoint x="500" y="620" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="vl_addr_dummy" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="650" y="180" as="sourcePoint"/>
|
||||
<mxPoint x="650" y="620" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="vl_dummy_data" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="750" y="180" as="sourcePoint"/>
|
||||
<mxPoint x="750" y="620" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="cs" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#FF5722;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="80" as="sourcePoint"/>
|
||||
<mxPoint x="910" y="80" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="90" y="80"/>
|
||||
<mxPoint x="90" y="110"/>
|
||||
<mxPoint x="900" y="110"/>
|
||||
<mxPoint x="900" y="80"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sclk" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#2196F3;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="210" as="sourcePoint"/>
|
||||
<mxPoint x="900" y="210" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="210"/>
|
||||
<mxPoint x="125" y="210"/>
|
||||
<mxPoint x="125" y="180"/>
|
||||
<mxPoint x="150" y="180"/>
|
||||
<mxPoint x="150" y="210"/>
|
||||
<mxPoint x="175" y="210"/>
|
||||
<mxPoint x="175" y="180"/>
|
||||
<mxPoint x="200" y="180"/>
|
||||
<mxPoint x="200" y="210"/>
|
||||
<mxPoint x="225" y="210"/>
|
||||
<mxPoint x="225" y="180"/>
|
||||
<mxPoint x="250" y="180"/>
|
||||
<mxPoint x="250" y="210"/>
|
||||
<mxPoint x="275" y="210"/>
|
||||
<mxPoint x="275" y="180"/>
|
||||
<mxPoint x="300" y="180"/>
|
||||
<mxPoint x="300" y="210"/>
|
||||
<mxPoint x="325" y="210"/>
|
||||
<mxPoint x="325" y="180"/>
|
||||
<mxPoint x="350" y="180"/>
|
||||
<mxPoint x="350" y="210"/>
|
||||
<mxPoint x="375" y="210"/>
|
||||
<mxPoint x="375" y="180"/>
|
||||
<mxPoint x="400" y="180"/>
|
||||
<mxPoint x="400" y="210"/>
|
||||
<mxPoint x="425" y="210"/>
|
||||
<mxPoint x="425" y="180"/>
|
||||
<mxPoint x="450" y="180"/>
|
||||
<mxPoint x="450" y="210"/>
|
||||
<mxPoint x="475" y="210"/>
|
||||
<mxPoint x="475" y="180"/>
|
||||
<mxPoint x="500" y="180"/>
|
||||
<mxPoint x="500" y="210"/>
|
||||
<mxPoint x="525" y="210"/>
|
||||
<mxPoint x="525" y="180"/>
|
||||
<mxPoint x="550" y="180"/>
|
||||
<mxPoint x="550" y="210"/>
|
||||
<mxPoint x="575" y="210"/>
|
||||
<mxPoint x="575" y="180"/>
|
||||
<mxPoint x="600" y="180"/>
|
||||
<mxPoint x="600" y="210"/>
|
||||
<mxPoint x="625" y="210"/>
|
||||
<mxPoint x="625" y="180"/>
|
||||
<mxPoint x="650" y="180"/>
|
||||
<mxPoint x="650" y="210"/>
|
||||
<mxPoint x="675" y="210"/>
|
||||
<mxPoint x="675" y="180"/>
|
||||
<mxPoint x="700" y="180"/>
|
||||
<mxPoint x="700" y="210"/>
|
||||
<mxPoint x="725" y="210"/>
|
||||
<mxPoint x="725" y="180"/>
|
||||
<mxPoint x="750" y="180"/>
|
||||
<mxPoint x="750" y="210"/>
|
||||
<mxPoint x="775" y="210"/>
|
||||
<mxPoint x="775" y="180"/>
|
||||
<mxPoint x="800" y="180"/>
|
||||
<mxPoint x="800" y="210"/>
|
||||
<mxPoint x="825" y="210"/>
|
||||
<mxPoint x="825" y="180"/>
|
||||
<mxPoint x="850" y="180"/>
|
||||
<mxPoint x="850" y="210"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="io0" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#4CAF50;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="280" as="sourcePoint"/>
|
||||
<mxPoint x="900" y="280" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="280"/>
|
||||
<mxPoint x="150" y="280"/>
|
||||
<mxPoint x="200" y="280"/>
|
||||
<mxPoint x="250" y="280"/>
|
||||
<mxPoint x="250" y="310"/>
|
||||
<mxPoint x="300" y="310"/>
|
||||
<mxPoint x="300" y="280"/>
|
||||
<mxPoint x="350" y="280"/>
|
||||
<mxPoint x="350" y="310"/>
|
||||
<mxPoint x="400" y="310"/>
|
||||
<mxPoint x="400" y="280"/>
|
||||
<mxPoint x="450" y="280"/>
|
||||
<mxPoint x="500" y="280"/>
|
||||
<mxPoint x="500" y="310"/>
|
||||
<mxPoint x="550" y="310"/>
|
||||
<mxPoint x="600" y="310"/>
|
||||
<mxPoint x="650" y="310"/>
|
||||
<mxPoint x="700" y="310"/>
|
||||
<mxPoint x="750" y="310"/>
|
||||
<mxPoint x="750" y="280"/>
|
||||
<mxPoint x="800" y="280"/>
|
||||
<mxPoint x="850" y="280"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="io1" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#9C27B0;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="410" as="sourcePoint"/>
|
||||
<mxPoint x="900" y="410" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="410"/>
|
||||
<mxPoint x="150" y="410"/>
|
||||
<mxPoint x="200" y="410"/>
|
||||
<mxPoint x="250" y="410"/>
|
||||
<mxPoint x="300" y="410"/>
|
||||
<mxPoint x="350" y="410"/>
|
||||
<mxPoint x="400" y="410"/>
|
||||
<mxPoint x="450" y="410"/>
|
||||
<mxPoint x="500" y="410"/>
|
||||
<mxPoint x="550" y="410"/>
|
||||
<mxPoint x="600" y="410"/>
|
||||
<mxPoint x="650" y="410"/>
|
||||
<mxPoint x="700" y="410"/>
|
||||
<mxPoint x="750" y="410"/>
|
||||
<mxPoint x="800" y="410"/>
|
||||
<mxPoint x="850" y="410"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="io2" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#FFC107;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="510" as="sourcePoint"/>
|
||||
<mxPoint x="900" y="480" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="510"/>
|
||||
<mxPoint x="150" y="510"/>
|
||||
<mxPoint x="200" y="510"/>
|
||||
<mxPoint x="250" y="510"/>
|
||||
<mxPoint x="300" y="510"/>
|
||||
<mxPoint x="350" y="510"/>
|
||||
<mxPoint x="400" y="510"/>
|
||||
<mxPoint x="450" y="510"/>
|
||||
<mxPoint x="500" y="510"/>
|
||||
<mxPoint x="550" y="510"/>
|
||||
<mxPoint x="550" y="480"/>
|
||||
<mxPoint x="600" y="480"/>
|
||||
<mxPoint x="650" y="480"/>
|
||||
<mxPoint x="650" y="510"/>
|
||||
<mxPoint x="700" y="510"/>
|
||||
<mxPoint x="750" y="510"/>
|
||||
<mxPoint x="750" y="480"/>
|
||||
<mxPoint x="800" y="480"/>
|
||||
<mxPoint x="850" y="480"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="io3" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#607D8B;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="610" as="sourcePoint"/>
|
||||
<mxPoint x="900" y="610" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="610"/>
|
||||
<mxPoint x="150" y="610"/>
|
||||
<mxPoint x="200" y="610"/>
|
||||
<mxPoint x="250" y="610"/>
|
||||
<mxPoint x="300" y="610"/>
|
||||
<mxPoint x="350" y="610"/>
|
||||
<mxPoint x="400" y="610"/>
|
||||
<mxPoint x="450" y="610"/>
|
||||
<mxPoint x="500" y="610"/>
|
||||
<mxPoint x="500" y="580"/>
|
||||
<mxPoint x="550" y="580"/>
|
||||
<mxPoint x="550" y="610"/>
|
||||
<mxPoint x="600" y="610"/>
|
||||
<mxPoint x="600" y="580"/>
|
||||
<mxPoint x="650" y="580"/>
|
||||
<mxPoint x="650" y="610"/>
|
||||
<mxPoint x="700" y="610"/>
|
||||
<mxPoint x="750" y="610"/>
|
||||
<mxPoint x="800" y="610"/>
|
||||
<mxPoint x="850" y="610"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="stage_命令 (" value="命令 (0xEB)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="240" y="235" width="120" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="stage_地址 (" value="地址 (Quad)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#666666;" vertex="1" parent="1">
|
||||
<mxGeometry x="515.0" y="235" width="120" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="stage_空周期 " value="空周期 (2)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#666666;" vertex="1" parent="1">
|
||||
<mxGeometry x="640" y="235" width="120" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="stage_数据 (" value="数据 (Quad 0xAA)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#2196F3;" vertex="1" parent="1">
|
||||
<mxGeometry x="740" y="235" width="120" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd_io0_0" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="115" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd_io0_1" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="165" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd_io0_2" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="215" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd_io0_3" value="0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="265" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd_io0_4" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="315" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd_io0_5" value="0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="365" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd_io0_6" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="415" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd_io0_7" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="465" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_0" value="A23" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="510" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_1" value="A19" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="560" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_2" value="A15" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="610" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_0" value="A22" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="510" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_1" value="A18" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="560" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_2" value="A14" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="610" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_0" value="A21" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#FFC107;" vertex="1" parent="1">
|
||||
<mxGeometry x="510" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_1" value="A17" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#FFC107;" vertex="1" parent="1">
|
||||
<mxGeometry x="560" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_2" value="A13" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#FFC107;" vertex="1" parent="1">
|
||||
<mxGeometry x="610" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_0" value="A20" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#607D8B;" vertex="1" parent="1">
|
||||
<mxGeometry x="510" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_1" value="A16" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#607D8B;" vertex="1" parent="1">
|
||||
<mxGeometry x="560" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="addr_io0_2" value="A12" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#607D8B;" vertex="1" parent="1">
|
||||
<mxGeometry x="610" y="255" width="30" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="data_io0_0" value="D0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="765" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="data_io0_1" value="D4" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="815" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="data_io0_0" value="D1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="765" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="data_io0_1" value="D5" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="815" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="data_io0_0" value="D2" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#FFC107;" vertex="1" parent="1">
|
||||
<mxGeometry x="765" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="data_io0_1" value="D6" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#FFC107;" vertex="1" parent="1">
|
||||
<mxGeometry x="815" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="data_io0_0" value="D3" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#607D8B;" vertex="1" parent="1">
|
||||
<mxGeometry x="765" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="data_io0_1" value="D7" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#607D8B;" vertex="1" parent="1">
|
||||
<mxGeometry x="815" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
BIN
docs/绘图/SPI_Quad.png
Normal file
|
After Width: | Height: | Size: 539 KiB |
300
docs/绘图/SPI_Quad.py
Normal file
@@ -0,0 +1,300 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def make_qspi_quad_io_mxfile():
|
||||
# ========== 基础参数定义 ==========
|
||||
# Y坐标(高/低电平):严格遵循垂直间距100px规范
|
||||
y_cs_high, y_cs_low = 80, 110
|
||||
y_sclk_high, y_sclk_low = 180, 210
|
||||
y_io0_high, y_io0_low = 280, 310
|
||||
y_io1_high, y_io1_low = 380, 410
|
||||
y_io2_high, y_io2_low = 480, 510
|
||||
y_io3_high, y_io3_low = 580, 610
|
||||
|
||||
# 时序参数:50px/周期,总周期数=8(命令)+3(地址)+2(空周期)+2(数据)=15
|
||||
cycle_w = 50
|
||||
start_x = 100
|
||||
n_cycles = 15
|
||||
end_x = start_x + n_cycles * cycle_w # 100 + 15*50 = 850
|
||||
tail_x = end_x + 50 # 900
|
||||
|
||||
# 时钟边沿计算(上升沿=采样沿,下降沿=输出沿)
|
||||
rise_edges = [start_x + i*cycle_w + cycle_w//2 for i in range(n_cycles)] # 125,175...825
|
||||
fall_edges = [start_x + (i+1)*cycle_w for i in range(n_cycles)] # 150,200...850
|
||||
|
||||
# ========== 数据定义 ==========
|
||||
# 1. 命令阶段:IO0传输0xEB (11101011),MSB first;IO1-IO3 idle(0)
|
||||
cmd_bits_io0 = [1,1,1,0,1,0,1,1] # 0xEB = b11101011
|
||||
cmd_bits_io1 = [0]*8
|
||||
cmd_bits_io2 = [0]*8
|
||||
cmd_bits_io3 = [0]*8
|
||||
|
||||
# 2. 地址阶段:3个周期,4线并行传输地址位(示例地址0x123456的高12位)
|
||||
# 地址0x123456 = 24位:0001 0010 0011 0100 0101 0110
|
||||
# A23=0,A22=0,A21=0,A20=1 | A19=0,A18=0,A17=1,A16=0 | A15=0,A14=0,A13=1,A12=1
|
||||
addr_bits_io0 = [0, 0, 0] # A23, A19, A15
|
||||
addr_bits_io1 = [0, 0, 0] # A22, A18, A14
|
||||
addr_bits_io2 = [0, 1, 1] # A21, A17, A13
|
||||
addr_bits_io3 = [1, 0, 1] # A20, A16, A12
|
||||
|
||||
# 3. 空周期:2个周期,所有IO idle(0)
|
||||
dummy_bits = [0]*2
|
||||
|
||||
# 4. 数据阶段:2个周期传输1字节(0xAA=10101010),4线并行
|
||||
# D0=1,D1=0,D2=1,D3=0 | D4=1,D5=0,D6=1,D7=0
|
||||
data_bits_io0 = [1, 1] # D0, D4
|
||||
data_bits_io1 = [0, 0] # D1, D5
|
||||
data_bits_io2 = [1, 1] # D2, D6
|
||||
data_bits_io3 = [0, 0] # D3, D7
|
||||
|
||||
# 合并所有阶段的bit序列
|
||||
all_io0 = cmd_bits_io0 + addr_bits_io0 + dummy_bits + data_bits_io0
|
||||
all_io1 = cmd_bits_io1 + addr_bits_io1 + dummy_bits + data_bits_io1
|
||||
all_io2 = cmd_bits_io2 + addr_bits_io2 + dummy_bits + data_bits_io2
|
||||
all_io3 = cmd_bits_io3 + addr_bits_io3 + dummy_bits + data_bits_io3
|
||||
|
||||
# ========== 波形构建函数 ==========
|
||||
def build_wave_pts(bits, y_hi, y_lo):
|
||||
"""生成波形点,确保无斜线、边沿对齐"""
|
||||
y0 = y_hi if bits[0] else y_lo
|
||||
pts = [(80, y0), (start_x, y0)] # 起始过渡段
|
||||
for i in range(len(bits)-1):
|
||||
curr_fall = fall_edges[i]
|
||||
y_curr = y_hi if bits[i] else y_lo
|
||||
y_next = y_hi if bits[i+1] else y_lo
|
||||
|
||||
# 添加当前bit的水平段终点(下降沿)
|
||||
pts.append((curr_fall, y_curr))
|
||||
# 电平变化则在下降沿垂直跳变
|
||||
if y_next != y_curr:
|
||||
pts.append((curr_fall, y_next))
|
||||
# 最后一个bit的终点 + 尾部过渡段
|
||||
last_fall = fall_edges[len(bits)-1]
|
||||
pts.append((last_fall, y_hi if bits[-1] else y_lo))
|
||||
pts.append((tail_x, pts[-1][1]))
|
||||
return pts
|
||||
|
||||
# ========== 生成XML内容 ==========
|
||||
lines = []
|
||||
# 文件头
|
||||
lines.append('<?xml version="1.0" encoding="UTF-8"?>')
|
||||
lines.append('<mxfile host="app.diagrams.net" modified="2024-05-25T00:00:00.000Z" agent="AI" version="21.0.0" type="device">')
|
||||
lines.append(' <diagram name="QSPI Quad I/O Fast Read (0xEB)" id="qspi_quad_io">')
|
||||
lines.append(' <mxGraphModel dx="1000" dy="700" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1000" pageHeight="700" math="0" shadow="0">')
|
||||
lines.append(' <root>')
|
||||
lines.append(' <mxCell id="0"/>')
|
||||
lines.append(' <mxCell id="1" parent="0"/>')
|
||||
|
||||
# 背景网格
|
||||
lines.append(' <mxCell id="grid" value="" style="points=[];gridColor=#e0e0e0;gridSize=20;spacingTop=20;spacingLeft=20;spacingBottom=20;spacingRight=20;html=1;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="0" y="0" width="1000" height="700" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# 标题
|
||||
lines.append(' <mxCell id="title" value="QSPI Quad I/O Fast Read (命令 0xEB)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1;" vertex="1" parent="1">')
|
||||
lines.append(' <mxGeometry x="300" y="20" width="400" height="30" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# MSB/LSB标记
|
||||
lines.append(' <mxCell id="msb" value="MSB" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{start_x+10}" y="60" width="40" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
lines.append(' <mxCell id="lsb" value="LSB" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{end_x-40}" y="60" width="40" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# 信号标签(左侧)
|
||||
signal_labels = [
|
||||
("CS", 85, "label_cs"),
|
||||
("SCLK", 185, "label_sclk"),
|
||||
("IO0", 275, "label_io0"),
|
||||
("IO1", 375, "label_io1"),
|
||||
("IO2", 475, "label_io2"),
|
||||
("IO3", 575, "label_io3")
|
||||
]
|
||||
for label, y, eid in signal_labels:
|
||||
lines.append(f' <mxCell id="{eid}" value="{label}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="20" y="{y}" width="50" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# 阶段分界虚线(命令/地址/空周期/数据)
|
||||
boundaries = [
|
||||
(start_x + 8*cycle_w, "cmd_addr"), # 命令结束: 100+400=500
|
||||
(start_x + 11*cycle_w, "addr_dummy"),# 地址结束: 100+550=650
|
||||
(start_x + 13*cycle_w, "dummy_data"),# 空周期结束:100+650=750
|
||||
]
|
||||
for x, eid in boundaries:
|
||||
lines.append(f' <mxCell id="vl_{eid}" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry width="50" height="50" relative="1" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{x}" y="180" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{x}" y="620" as="targetPoint"/>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== CS 波形 ==========
|
||||
cs_pts = [(80, y_cs_high), (90, y_cs_high), (90, y_cs_low),
|
||||
(tail_x, y_cs_low), (tail_x, y_cs_high), (tail_x+10, y_cs_high)]
|
||||
lines.append(' <mxCell id="cs" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#FF5722;rounded=0;endArrow=none;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry relative="0" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{cs_pts[0][0]}" y="{cs_pts[0][1]}" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{cs_pts[-1][0]}" y="{cs_pts[-1][1]}" as="targetPoint"/>')
|
||||
lines.append(' <Array as="points">')
|
||||
for x, y in cs_pts[1:-1]:
|
||||
lines.append(f' <mxPoint x="{x}" y="{y}"/>')
|
||||
lines.append(' </Array>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== SCLK 波形 ==========
|
||||
sclk_pts = [(80, y_sclk_low), (start_x, y_sclk_low)]
|
||||
for i in range(n_cycles):
|
||||
rise = rise_edges[i]
|
||||
fall = fall_edges[i]
|
||||
sclk_pts.extend([
|
||||
(rise, y_sclk_low),
|
||||
(rise, y_sclk_high),
|
||||
(fall, y_sclk_high),
|
||||
(fall, y_sclk_low),
|
||||
])
|
||||
sclk_pts.append((tail_x, y_sclk_low))
|
||||
|
||||
lines.append(' <mxCell id="sclk" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#2196F3;rounded=0;endArrow=none;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry relative="0" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{sclk_pts[0][0]}" y="{sclk_pts[0][1]}" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{sclk_pts[-1][0]}" y="{sclk_pts[-1][1]}" as="targetPoint"/>')
|
||||
lines.append(' <Array as="points">')
|
||||
for x, y in sclk_pts[1:-1]:
|
||||
lines.append(f' <mxPoint x="{x}" y="{y}"/>')
|
||||
lines.append(' </Array>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== IO0 波形 ==========
|
||||
io0_pts = build_wave_pts(all_io0, y_io0_high, y_io0_low)
|
||||
lines.append(' <mxCell id="io0" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#4CAF50;rounded=0;endArrow=none;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry relative="0" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{io0_pts[0][0]}" y="{io0_pts[0][1]}" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{io0_pts[-1][0]}" y="{io0_pts[-1][1]}" as="targetPoint"/>')
|
||||
lines.append(' <Array as="points">')
|
||||
for x, y in io0_pts[1:-1]:
|
||||
lines.append(f' <mxPoint x="{x}" y="{y}"/>')
|
||||
lines.append(' </Array>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== IO1 波形 ==========
|
||||
io1_pts = build_wave_pts(all_io1, y_io1_high, y_io1_low)
|
||||
lines.append(' <mxCell id="io1" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#9C27B0;rounded=0;endArrow=none;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry relative="0" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{io1_pts[0][0]}" y="{io1_pts[0][1]}" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{io1_pts[-1][0]}" y="{io1_pts[-1][1]}" as="targetPoint"/>')
|
||||
lines.append(' <Array as="points">')
|
||||
for x, y in io1_pts[1:-1]:
|
||||
lines.append(f' <mxPoint x="{x}" y="{y}"/>')
|
||||
lines.append(' </Array>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== IO2 波形 ==========
|
||||
io2_pts = build_wave_pts(all_io2, y_io2_high, y_io2_low)
|
||||
lines.append(' <mxCell id="io2" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#FFC107;rounded=0;endArrow=none;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry relative="0" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{io2_pts[0][0]}" y="{io2_pts[0][1]}" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{io2_pts[-1][0]}" y="{io2_pts[-1][1]}" as="targetPoint"/>')
|
||||
lines.append(' <Array as="points">')
|
||||
for x, y in io2_pts[1:-1]:
|
||||
lines.append(f' <mxPoint x="{x}" y="{y}"/>')
|
||||
lines.append(' </Array>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== IO3 波形 ==========
|
||||
io3_pts = build_wave_pts(all_io3, y_io3_high, y_io3_low)
|
||||
lines.append(' <mxCell id="io3" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#607D8B;rounded=0;endArrow=none;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry relative="0" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{io3_pts[0][0]}" y="{io3_pts[0][1]}" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{io3_pts[-1][0]}" y="{io3_pts[-1][1]}" as="targetPoint"/>')
|
||||
lines.append(' <Array as="points">')
|
||||
for x, y in io3_pts[1:-1]:
|
||||
lines.append(f' <mxPoint x="{x}" y="{y}"/>')
|
||||
lines.append(' </Array>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== 阶段名称标注 ==========
|
||||
stage_labels = [
|
||||
(start_x + 4*cycle_w, "命令 (0xEB)", "#4CAF50"), # 命令阶段中心
|
||||
(start_x + 9.5*cycle_w, "地址 (Quad)", "#666666"), # 地址阶段中心
|
||||
(start_x + 12*cycle_w, "空周期 (2)", "#666666"), # 空周期中心
|
||||
(start_x + 14*cycle_w, "数据 (Quad 0xAA)", "#2196F3"), # 数据阶段中心
|
||||
]
|
||||
for x, txt, color in stage_labels:
|
||||
lines.append(f' <mxCell id="stage_{txt[:4]}" value="{txt}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor={color};" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{x-60}" y="235" width="120" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# ========== 数据位标签 ==========
|
||||
# 1. 命令阶段IO0 bit标签
|
||||
for i in range(8):
|
||||
cx = rise_edges[i]
|
||||
lines.append(f' <mxCell id="cmd_io0_{i}" value="{cmd_bits_io0[i]}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{cx-10}" y="255" width="20" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# 2. 地址阶段bit标签
|
||||
addr_io_labels = [
|
||||
(8, "A23", "A19", "A15", "#4CAF50"), # IO0
|
||||
(8, "A22", "A18", "A14", "#9C27B0"), # IO1
|
||||
(8, "A21", "A17", "A13", "#FFC107"), # IO2
|
||||
(8, "A20", "A16", "A12", "#607D8B"), # IO3
|
||||
]
|
||||
for io_idx, label1, label2, label3, color in addr_io_labels:
|
||||
# 地址阶段第1个周期(总第9个周期)
|
||||
cx = rise_edges[io_idx]
|
||||
lines.append(f' <mxCell id="addr_io{io_idx-8}_{0}" value="{label1}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor={color};" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{cx-15}" y="{255+100*(io_idx-8)}" width="30" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
# 地址阶段第2个周期(总第10个周期)
|
||||
cx = rise_edges[io_idx+1]
|
||||
lines.append(f' <mxCell id="addr_io{io_idx-8}_{1}" value="{label2}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor={color};" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{cx-15}" y="{255+100*(io_idx-8)}" width="30" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
# 地址阶段第3个周期(总第11个周期)
|
||||
cx = rise_edges[io_idx+2]
|
||||
lines.append(f' <mxCell id="addr_io{io_idx-8}_{2}" value="{label3}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor={color};" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{cx-15}" y="{255+100*(io_idx-8)}" width="30" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# 3. 数据阶段bit标签
|
||||
data_io_labels = [
|
||||
(13, "D0", "D4", "#4CAF50"), # IO0
|
||||
(13, "D1", "D5", "#9C27B0"), # IO1
|
||||
(13, "D2", "D6", "#FFC107"), # IO2
|
||||
(13, "D3", "D7", "#607D8B"), # IO3
|
||||
]
|
||||
for io_idx, label1, label2, color in data_io_labels:
|
||||
# 数据阶段第1个周期(总第14个周期)
|
||||
cx = rise_edges[io_idx]
|
||||
lines.append(f' <mxCell id="data_io{io_idx-13}_{0}" value="{label1}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor={color};" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{cx-10}" y="{255+100*(io_idx-13)}" width="20" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
# 数据阶段第2个周期(总第15个周期)
|
||||
cx = rise_edges[io_idx+1]
|
||||
lines.append(f' <mxCell id="data_io{io_idx-13}_{1}" value="{label2}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor={color};" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{cx-10}" y="{255+100*(io_idx-13)}" width="20" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# 文件尾
|
||||
lines.append(' </root>')
|
||||
lines.append(' </mxGraphModel>')
|
||||
lines.append(' </diagram>')
|
||||
lines.append('</mxfile>')
|
||||
|
||||
return "\n".join(lines)
|
||||
|
||||
# 生成并保存文件
|
||||
xml_content = make_qspi_quad_io_mxfile()
|
||||
output_path = "SPI_Quad.drawio"
|
||||
with open(output_path, "w", encoding="utf-8") as f:
|
||||
f.write(xml_content)
|
||||
|
||||
print(f"波形图文件已生成: {output_path}")
|
||||
967
docs/绘图/SPI_Waveform_CPHA0.drawio
Normal file
@@ -0,0 +1,967 @@
|
||||
<mxfile host="Electron" agent="AI" pages="3">
|
||||
<diagram name="SPI Waveform" id="spi_waveform">
|
||||
<mxGraphModel dx="1212" dy="1185" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1000" pageHeight="600" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="grid" parent="1" style="points=[];gridColor=#e0e0e0;gridSize=20;spacingTop=20;spacingLeft=20;spacingBottom=20;spacingRight=20;html=1;" value="" vertex="1">
|
||||
<mxGeometry height="440" width="1000" y="10" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="title" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1;" value="SPI 全双工传输 (模式 0: CPOL=0, CPHA=0)" vertex="1">
|
||||
<mxGeometry height="30" width="400" x="300" y="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="msb" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" value="MSB" vertex="1">
|
||||
<mxGeometry height="20" width="40" x="130" y="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="lsb" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" value="LSB" vertex="1">
|
||||
<mxGeometry height="20" width="40" x="880" y="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="label_cs" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" value="CS" vertex="1">
|
||||
<mxGeometry height="20" width="50" x="20" y="85" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="label_sclk" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" value="SCLK" vertex="1">
|
||||
<mxGeometry height="20" width="50" x="20" y="185" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="label_mosi" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" value="MOSI" vertex="1">
|
||||
<mxGeometry height="20" width="50" x="20" y="275" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="label_miso" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" value="MISO" vertex="1">
|
||||
<mxGeometry height="20" width="50" x="20" y="365" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="vl_150" edge="1" parent="1" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="150" y="180" as="sourcePoint" />
|
||||
<mxPoint x="150" y="420" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="vl_250" edge="1" parent="1" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="250" y="180" as="sourcePoint" />
|
||||
<mxPoint x="250" y="420" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="vl_350" edge="1" parent="1" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="350" y="180" as="sourcePoint" />
|
||||
<mxPoint x="350" y="420" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="vl_450" edge="1" parent="1" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="450" y="180" as="sourcePoint" />
|
||||
<mxPoint x="450" y="420" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="vl_550" edge="1" parent="1" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="550" y="180" as="sourcePoint" />
|
||||
<mxPoint x="550" y="420" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="vl_650" edge="1" parent="1" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="650" y="180" as="sourcePoint" />
|
||||
<mxPoint x="650" y="420" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="vl_750" edge="1" parent="1" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="750" y="180" as="sourcePoint" />
|
||||
<mxPoint x="750" y="420" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="vl_850" edge="1" parent="1" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="850" y="180" as="sourcePoint" />
|
||||
<mxPoint x="850" y="420" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="cs" edge="1" parent="1" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#FF5722;rounded=0;endArrow=none;" value="">
|
||||
<mxGeometry as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="90" y="80" />
|
||||
<mxPoint x="90" y="110" />
|
||||
<mxPoint x="910" y="110" />
|
||||
<mxPoint x="910" y="80" />
|
||||
</Array>
|
||||
<mxPoint x="80" y="80" as="sourcePoint" />
|
||||
<mxPoint x="920" y="80" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sclk" edge="1" parent="1" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#2196F3;rounded=0;endArrow=none;" value="">
|
||||
<mxGeometry as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="210" />
|
||||
<mxPoint x="150" y="210" />
|
||||
<mxPoint x="150" y="180" />
|
||||
<mxPoint x="190" y="180" />
|
||||
<mxPoint x="190" y="210" />
|
||||
<mxPoint x="250" y="210" />
|
||||
<mxPoint x="250" y="180" />
|
||||
<mxPoint x="290" y="180" />
|
||||
<mxPoint x="290" y="210" />
|
||||
<mxPoint x="350" y="210" />
|
||||
<mxPoint x="350" y="180" />
|
||||
<mxPoint x="390" y="180" />
|
||||
<mxPoint x="390" y="210" />
|
||||
<mxPoint x="450" y="210" />
|
||||
<mxPoint x="450" y="180" />
|
||||
<mxPoint x="490" y="180" />
|
||||
<mxPoint x="490" y="210" />
|
||||
<mxPoint x="550" y="210" />
|
||||
<mxPoint x="550" y="180" />
|
||||
<mxPoint x="590" y="180" />
|
||||
<mxPoint x="590" y="210" />
|
||||
<mxPoint x="650" y="210" />
|
||||
<mxPoint x="650" y="180" />
|
||||
<mxPoint x="690" y="180" />
|
||||
<mxPoint x="690" y="210" />
|
||||
<mxPoint x="750" y="210" />
|
||||
<mxPoint x="750" y="180" />
|
||||
<mxPoint x="790" y="180" />
|
||||
<mxPoint x="790" y="210" />
|
||||
<mxPoint x="850" y="210" />
|
||||
<mxPoint x="850" y="180" />
|
||||
<mxPoint x="890" y="180" />
|
||||
<mxPoint x="890" y="210" />
|
||||
</Array>
|
||||
<mxPoint x="80" y="210" as="sourcePoint" />
|
||||
<mxPoint x="920" y="210" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="mosi" edge="1" parent="1" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#4CAF50;rounded=0;endArrow=none;" value="">
|
||||
<mxGeometry as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="310" />
|
||||
<mxPoint x="190" y="310" />
|
||||
<mxPoint x="190" y="280" />
|
||||
<mxPoint x="290" y="280" />
|
||||
<mxPoint x="290" y="310" />
|
||||
<mxPoint x="390" y="310" />
|
||||
<mxPoint x="390" y="280" />
|
||||
<mxPoint x="490" y="280" />
|
||||
<mxPoint x="590" y="280" />
|
||||
<mxPoint x="590" y="310" />
|
||||
<mxPoint x="690" y="310" />
|
||||
<mxPoint x="690" y="280" />
|
||||
<mxPoint x="790" y="280" />
|
||||
<mxPoint x="790" y="310" />
|
||||
<mxPoint x="890" y="310" />
|
||||
</Array>
|
||||
<mxPoint x="80" y="310" as="sourcePoint" />
|
||||
<mxPoint x="920" y="310" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="miso" edge="1" parent="1" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#9C27B0;rounded=0;endArrow=none;" value="">
|
||||
<mxGeometry as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="380" />
|
||||
<mxPoint x="190" y="380" />
|
||||
<mxPoint x="190" y="410" />
|
||||
<mxPoint x="290" y="410" />
|
||||
<mxPoint x="290" y="380" />
|
||||
<mxPoint x="390" y="380" />
|
||||
<mxPoint x="390" y="410" />
|
||||
<mxPoint x="490" y="410" />
|
||||
<mxPoint x="590" y="410" />
|
||||
<mxPoint x="590" y="380" />
|
||||
<mxPoint x="690" y="380" />
|
||||
<mxPoint x="690" y="410" />
|
||||
<mxPoint x="790" y="410" />
|
||||
<mxPoint x="790" y="380" />
|
||||
<mxPoint x="890" y="380" />
|
||||
</Array>
|
||||
<mxPoint x="80" y="380" as="sourcePoint" />
|
||||
<mxPoint x="920" y="380" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="m0" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#4CAF50;" value="0" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="145" y="255" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="m1" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#4CAF50;" value="1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="240" y="255" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="m2" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#4CAF50;" value="0" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="340" y="255" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="m3" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#4CAF50;" value="1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="440" y="255" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="m4" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#4CAF50;" value="1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="540" y="255" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="m5" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#4CAF50;" value="0" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="640" y="255" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="m6" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#4CAF50;" value="1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="740" y="255" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="m7" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#4CAF50;" value="0" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="840" y="255" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="s0" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#9C27B0;" value="1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="145" y="355" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="s1" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#9C27B0;" value="0" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="240" y="355" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="s2" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#9C27B0;" value="1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="340" y="355" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="s3" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#9C27B0;" value="0" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="440" y="355" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="s4" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#9C27B0;" value="0" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="540" y="355" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="s5" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#9C27B0;" value="1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="640" y="355" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="s6" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#9C27B0;" value="0" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="740" y="355" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="s7" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#9C27B0;" value="1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="840" y="355" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="hex_mosi" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;fontColor=#4CAF50;" value="0x5A" vertex="1">
|
||||
<mxGeometry height="20" width="80" x="500" y="235" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="hex_miso" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;fontColor=#9C27B0;" value="0xA5" vertex="1">
|
||||
<mxGeometry height="20" width="80" x="500" y="425" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
<diagram id="rtClmdoBArHgyKanjyNo" name="QSPI">
|
||||
<mxGraphModel dx="2020" dy="1975" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-1" parent="1" style="points=[];gridColor=#e0e0e0;gridSize=20;spacingTop=20;spacingLeft=20;spacingBottom=20;spacingRight=20;html=1;" value="" vertex="1">
|
||||
<mxGeometry height="440" width="1990" x="10" y="10" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-2" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1;" value="QSPI Fast Read Dual Output (命令 0x3B)" vertex="1">
|
||||
<mxGeometry height="30" width="500" x="610" y="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-3" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" value="MSB" vertex="1">
|
||||
<mxGeometry height="20" width="40" x="120" y="70" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-4" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" value="LSB" vertex="1">
|
||||
<mxGeometry height="20" width="40" x="1870" y="70" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-5" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" value="CS" vertex="1">
|
||||
<mxGeometry height="20" width="50" x="30" y="95" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-6" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" value="SCLK" vertex="1">
|
||||
<mxGeometry height="20" width="50" x="30" y="195" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-7" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" value="IO0" vertex="1">
|
||||
<mxGeometry height="20" width="50" x="30" y="285" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-8" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" value="IO1" vertex="1">
|
||||
<mxGeometry height="20" width="50" x="30" y="385" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-9" edge="1" parent="1" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="510" y="190" as="sourcePoint" />
|
||||
<mxPoint x="510" y="430" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-10" edge="1" parent="1" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="910" y="190" as="sourcePoint" />
|
||||
<mxPoint x="910" y="430" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-11" edge="1" parent="1" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="1310" y="190" as="sourcePoint" />
|
||||
<mxPoint x="1310" y="430" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-12" edge="1" parent="1" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="1710" y="190" as="sourcePoint" />
|
||||
<mxPoint x="1710" y="430" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-13" edge="1" parent="1" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#FF5722;rounded=0;endArrow=none;" value="">
|
||||
<mxGeometry as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="90" />
|
||||
<mxPoint x="100" y="120" />
|
||||
<mxPoint x="1960" y="120" />
|
||||
<mxPoint x="1960" y="90" />
|
||||
</Array>
|
||||
<mxPoint x="90" y="90" as="sourcePoint" />
|
||||
<mxPoint x="1970" y="90" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-14" edge="1" parent="1" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#2196F3;rounded=0;endArrow=none;" value="">
|
||||
<mxGeometry as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="110" y="220" />
|
||||
<mxPoint x="135" y="220" />
|
||||
<mxPoint x="135" y="190" />
|
||||
<mxPoint x="160" y="190" />
|
||||
<mxPoint x="160" y="220" />
|
||||
<mxPoint x="185" y="220" />
|
||||
<mxPoint x="185" y="190" />
|
||||
<mxPoint x="210" y="190" />
|
||||
<mxPoint x="210" y="220" />
|
||||
<mxPoint x="235" y="220" />
|
||||
<mxPoint x="235" y="190" />
|
||||
<mxPoint x="260" y="190" />
|
||||
<mxPoint x="260" y="220" />
|
||||
<mxPoint x="285" y="220" />
|
||||
<mxPoint x="285" y="190" />
|
||||
<mxPoint x="310" y="190" />
|
||||
<mxPoint x="310" y="220" />
|
||||
<mxPoint x="335" y="220" />
|
||||
<mxPoint x="335" y="190" />
|
||||
<mxPoint x="360" y="190" />
|
||||
<mxPoint x="360" y="220" />
|
||||
<mxPoint x="385" y="220" />
|
||||
<mxPoint x="385" y="190" />
|
||||
<mxPoint x="410" y="190" />
|
||||
<mxPoint x="410" y="220" />
|
||||
<mxPoint x="435" y="220" />
|
||||
<mxPoint x="435" y="190" />
|
||||
<mxPoint x="460" y="190" />
|
||||
<mxPoint x="460" y="220" />
|
||||
<mxPoint x="485" y="220" />
|
||||
<mxPoint x="485" y="190" />
|
||||
<mxPoint x="510" y="190" />
|
||||
<mxPoint x="510" y="220" />
|
||||
<mxPoint x="535" y="220" />
|
||||
<mxPoint x="535" y="190" />
|
||||
<mxPoint x="560" y="190" />
|
||||
<mxPoint x="560" y="220" />
|
||||
<mxPoint x="585" y="220" />
|
||||
<mxPoint x="585" y="190" />
|
||||
<mxPoint x="610" y="190" />
|
||||
<mxPoint x="610" y="220" />
|
||||
<mxPoint x="635" y="220" />
|
||||
<mxPoint x="635" y="190" />
|
||||
<mxPoint x="660" y="190" />
|
||||
<mxPoint x="660" y="220" />
|
||||
<mxPoint x="685" y="220" />
|
||||
<mxPoint x="685" y="190" />
|
||||
<mxPoint x="710" y="190" />
|
||||
<mxPoint x="710" y="220" />
|
||||
<mxPoint x="735" y="220" />
|
||||
<mxPoint x="735" y="190" />
|
||||
<mxPoint x="760" y="190" />
|
||||
<mxPoint x="760" y="220" />
|
||||
<mxPoint x="785" y="220" />
|
||||
<mxPoint x="785" y="190" />
|
||||
<mxPoint x="810" y="190" />
|
||||
<mxPoint x="810" y="220" />
|
||||
<mxPoint x="835" y="220" />
|
||||
<mxPoint x="835" y="190" />
|
||||
<mxPoint x="860" y="190" />
|
||||
<mxPoint x="860" y="220" />
|
||||
<mxPoint x="885" y="220" />
|
||||
<mxPoint x="885" y="190" />
|
||||
<mxPoint x="910" y="190" />
|
||||
<mxPoint x="910" y="220" />
|
||||
<mxPoint x="935" y="220" />
|
||||
<mxPoint x="935" y="190" />
|
||||
<mxPoint x="960" y="190" />
|
||||
<mxPoint x="960" y="220" />
|
||||
<mxPoint x="985" y="220" />
|
||||
<mxPoint x="985" y="190" />
|
||||
<mxPoint x="1010" y="190" />
|
||||
<mxPoint x="1010" y="220" />
|
||||
<mxPoint x="1035" y="220" />
|
||||
<mxPoint x="1035" y="190" />
|
||||
<mxPoint x="1060" y="190" />
|
||||
<mxPoint x="1060" y="220" />
|
||||
<mxPoint x="1085" y="220" />
|
||||
<mxPoint x="1085" y="190" />
|
||||
<mxPoint x="1110" y="190" />
|
||||
<mxPoint x="1110" y="220" />
|
||||
<mxPoint x="1135" y="220" />
|
||||
<mxPoint x="1135" y="190" />
|
||||
<mxPoint x="1160" y="190" />
|
||||
<mxPoint x="1160" y="220" />
|
||||
<mxPoint x="1185" y="220" />
|
||||
<mxPoint x="1185" y="190" />
|
||||
<mxPoint x="1210" y="190" />
|
||||
<mxPoint x="1210" y="220" />
|
||||
<mxPoint x="1235" y="220" />
|
||||
<mxPoint x="1235" y="190" />
|
||||
<mxPoint x="1260" y="190" />
|
||||
<mxPoint x="1260" y="220" />
|
||||
<mxPoint x="1285" y="220" />
|
||||
<mxPoint x="1285" y="190" />
|
||||
<mxPoint x="1310" y="190" />
|
||||
<mxPoint x="1310" y="220" />
|
||||
<mxPoint x="1335" y="220" />
|
||||
<mxPoint x="1335" y="190" />
|
||||
<mxPoint x="1360" y="190" />
|
||||
<mxPoint x="1360" y="220" />
|
||||
<mxPoint x="1385" y="220" />
|
||||
<mxPoint x="1385" y="190" />
|
||||
<mxPoint x="1410" y="190" />
|
||||
<mxPoint x="1410" y="220" />
|
||||
<mxPoint x="1435" y="220" />
|
||||
<mxPoint x="1435" y="190" />
|
||||
<mxPoint x="1460" y="190" />
|
||||
<mxPoint x="1460" y="220" />
|
||||
<mxPoint x="1485" y="220" />
|
||||
<mxPoint x="1485" y="190" />
|
||||
<mxPoint x="1510" y="190" />
|
||||
<mxPoint x="1510" y="220" />
|
||||
<mxPoint x="1535" y="220" />
|
||||
<mxPoint x="1535" y="190" />
|
||||
<mxPoint x="1560" y="190" />
|
||||
<mxPoint x="1560" y="220" />
|
||||
<mxPoint x="1585" y="220" />
|
||||
<mxPoint x="1585" y="190" />
|
||||
<mxPoint x="1610" y="190" />
|
||||
<mxPoint x="1610" y="220" />
|
||||
<mxPoint x="1635" y="220" />
|
||||
<mxPoint x="1635" y="190" />
|
||||
<mxPoint x="1660" y="190" />
|
||||
<mxPoint x="1660" y="220" />
|
||||
<mxPoint x="1685" y="220" />
|
||||
<mxPoint x="1685" y="190" />
|
||||
<mxPoint x="1710" y="190" />
|
||||
<mxPoint x="1710" y="220" />
|
||||
<mxPoint x="1735" y="220" />
|
||||
<mxPoint x="1735" y="190" />
|
||||
<mxPoint x="1760" y="190" />
|
||||
<mxPoint x="1760" y="220" />
|
||||
<mxPoint x="1785" y="220" />
|
||||
<mxPoint x="1785" y="190" />
|
||||
<mxPoint x="1810" y="190" />
|
||||
<mxPoint x="1810" y="220" />
|
||||
<mxPoint x="1835" y="220" />
|
||||
<mxPoint x="1835" y="190" />
|
||||
<mxPoint x="1860" y="190" />
|
||||
<mxPoint x="1860" y="220" />
|
||||
<mxPoint x="1885" y="220" />
|
||||
<mxPoint x="1885" y="190" />
|
||||
<mxPoint x="1910" y="190" />
|
||||
<mxPoint x="1910" y="220" />
|
||||
</Array>
|
||||
<mxPoint x="90" y="220" as="sourcePoint" />
|
||||
<mxPoint x="1960" y="220" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-15" edge="1" parent="1" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#4CAF50;rounded=0;endArrow=none;" value="">
|
||||
<mxGeometry as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="110" y="320" />
|
||||
<mxPoint x="160" y="320" />
|
||||
<mxPoint x="210" y="320" />
|
||||
<mxPoint x="210" y="290" />
|
||||
<mxPoint x="260" y="290" />
|
||||
<mxPoint x="310" y="290" />
|
||||
<mxPoint x="360" y="290" />
|
||||
<mxPoint x="360" y="320" />
|
||||
<mxPoint x="410" y="320" />
|
||||
<mxPoint x="410" y="290" />
|
||||
<mxPoint x="460" y="290" />
|
||||
<mxPoint x="510" y="290" />
|
||||
<mxPoint x="510" y="320" />
|
||||
<mxPoint x="560" y="320" />
|
||||
<mxPoint x="610" y="320" />
|
||||
<mxPoint x="660" y="320" />
|
||||
<mxPoint x="660" y="290" />
|
||||
<mxPoint x="710" y="290" />
|
||||
<mxPoint x="710" y="320" />
|
||||
<mxPoint x="760" y="320" />
|
||||
<mxPoint x="810" y="320" />
|
||||
<mxPoint x="810" y="290" />
|
||||
<mxPoint x="860" y="290" />
|
||||
<mxPoint x="860" y="320" />
|
||||
<mxPoint x="910" y="320" />
|
||||
<mxPoint x="960" y="320" />
|
||||
<mxPoint x="1010" y="320" />
|
||||
<mxPoint x="1010" y="290" />
|
||||
<mxPoint x="1060" y="290" />
|
||||
<mxPoint x="1110" y="290" />
|
||||
<mxPoint x="1110" y="320" />
|
||||
<mxPoint x="1160" y="320" />
|
||||
<mxPoint x="1160" y="290" />
|
||||
<mxPoint x="1210" y="290" />
|
||||
<mxPoint x="1210" y="320" />
|
||||
<mxPoint x="1260" y="320" />
|
||||
<mxPoint x="1310" y="320" />
|
||||
<mxPoint x="1360" y="320" />
|
||||
<mxPoint x="1360" y="290" />
|
||||
<mxPoint x="1410" y="290" />
|
||||
<mxPoint x="1410" y="320" />
|
||||
<mxPoint x="1460" y="320" />
|
||||
<mxPoint x="1460" y="290" />
|
||||
<mxPoint x="1510" y="290" />
|
||||
<mxPoint x="1510" y="320" />
|
||||
<mxPoint x="1560" y="320" />
|
||||
<mxPoint x="1560" y="290" />
|
||||
<mxPoint x="1610" y="290" />
|
||||
<mxPoint x="1660" y="290" />
|
||||
<mxPoint x="1660" y="320" />
|
||||
<mxPoint x="1710" y="320" />
|
||||
<mxPoint x="1760" y="320" />
|
||||
<mxPoint x="1810" y="320" />
|
||||
<mxPoint x="1860" y="320" />
|
||||
<mxPoint x="1910" y="320" />
|
||||
</Array>
|
||||
<mxPoint x="90" y="320" as="sourcePoint" />
|
||||
<mxPoint x="1960" y="320" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-16" edge="1" parent="1" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#9C27B0;rounded=0;endArrow=none;" value="">
|
||||
<mxGeometry as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="110" y="420" />
|
||||
<mxPoint x="160" y="420" />
|
||||
<mxPoint x="210" y="420" />
|
||||
<mxPoint x="260" y="420" />
|
||||
<mxPoint x="310" y="420" />
|
||||
<mxPoint x="360" y="420" />
|
||||
<mxPoint x="410" y="420" />
|
||||
<mxPoint x="460" y="420" />
|
||||
<mxPoint x="510" y="420" />
|
||||
<mxPoint x="560" y="420" />
|
||||
<mxPoint x="610" y="420" />
|
||||
<mxPoint x="660" y="420" />
|
||||
<mxPoint x="710" y="420" />
|
||||
<mxPoint x="760" y="420" />
|
||||
<mxPoint x="810" y="420" />
|
||||
<mxPoint x="860" y="420" />
|
||||
<mxPoint x="910" y="420" />
|
||||
<mxPoint x="960" y="420" />
|
||||
<mxPoint x="1010" y="420" />
|
||||
<mxPoint x="1060" y="420" />
|
||||
<mxPoint x="1110" y="420" />
|
||||
<mxPoint x="1160" y="420" />
|
||||
<mxPoint x="1210" y="420" />
|
||||
<mxPoint x="1260" y="420" />
|
||||
<mxPoint x="1310" y="420" />
|
||||
<mxPoint x="1360" y="420" />
|
||||
<mxPoint x="1410" y="420" />
|
||||
<mxPoint x="1460" y="420" />
|
||||
<mxPoint x="1510" y="420" />
|
||||
<mxPoint x="1560" y="420" />
|
||||
<mxPoint x="1610" y="420" />
|
||||
<mxPoint x="1660" y="420" />
|
||||
<mxPoint x="1710" y="420" />
|
||||
<mxPoint x="1710" y="390" />
|
||||
<mxPoint x="1760" y="390" />
|
||||
<mxPoint x="1810" y="390" />
|
||||
<mxPoint x="1860" y="390" />
|
||||
<mxPoint x="1910" y="390" />
|
||||
</Array>
|
||||
<mxPoint x="90" y="420" as="sourcePoint" />
|
||||
<mxPoint x="1960" y="390" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-17" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" value="0" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="125" y="265" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-18" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" value="0" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="175" y="265" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-19" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" value="1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="225" y="265" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-20" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" value="1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="275" y="265" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-21" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" value="1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="325" y="265" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-22" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" value="0" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="375" y="265" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-23" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" value="1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="425" y="265" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-24" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" value="1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="475" y="265" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-25" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#4CAF50;" value="命令 (0x3B)" vertex="1">
|
||||
<mxGeometry height="20" width="120" x="250" y="245" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-26" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#666666;" value="地址 [23:16]" vertex="1">
|
||||
<mxGeometry height="20" width="120" x="650" y="245" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-27" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#666666;" value="地址 [15:8]" vertex="1">
|
||||
<mxGeometry height="20" width="120" x="1050" y="245" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-28" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#666666;" value="地址 [7:0]" vertex="1">
|
||||
<mxGeometry height="20" width="120" x="1450" y="245" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-29" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#2196F3;" value="数据 (Dual)" vertex="1">
|
||||
<mxGeometry height="20" width="120" x="1750" y="245" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-30" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" value="D0" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="1725" y="265" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-31" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#9C27B0;" value="D1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="1725" y="365" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-32" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" value="D2" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="1775" y="265" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-33" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#9C27B0;" value="D3" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="1775" y="365" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-34" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" value="D4" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="1825" y="265" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-35" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#9C27B0;" value="D5" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="1825" y="365" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-36" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" value="D6" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="1875" y="265" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="wEdIyZ0tWglLBkD2GxOT-37" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#9C27B0;" value="D7" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="1875" y="365" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
<diagram id="R7-S-4U9xjG8aP-ICxNY" name="第 3 页">
|
||||
<mxGraphModel dx="1426" dy="1394" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-1" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1;" value="QSPI Quad I/O Fast Read (命令 0xEB)" vertex="1">
|
||||
<mxGeometry height="30" width="400" x="300" y="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-2" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" value="MSB" vertex="1">
|
||||
<mxGeometry height="20" width="40" x="110" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-3" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" value="LSB" vertex="1">
|
||||
<mxGeometry height="20" width="40" x="810" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-4" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" value="CS" vertex="1">
|
||||
<mxGeometry height="20" width="50" x="20" y="125" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-5" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" value="SCLK" vertex="1">
|
||||
<mxGeometry height="20" width="50" x="20" y="225" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-6" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" value="IO0" vertex="1">
|
||||
<mxGeometry height="20" width="50" x="20" y="315" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-7" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" value="IO1" vertex="1">
|
||||
<mxGeometry height="20" width="50" x="20" y="415" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-8" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" value="IO2" vertex="1">
|
||||
<mxGeometry height="20" width="50" x="20" y="515" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-9" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" value="IO3" vertex="1">
|
||||
<mxGeometry height="20" width="50" x="20" y="615" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-10" edge="1" parent="1" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="500" y="220" as="sourcePoint" />
|
||||
<mxPoint x="500" y="660" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-11" edge="1" parent="1" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="650" y="220" as="sourcePoint" />
|
||||
<mxPoint x="650" y="660" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-12" edge="1" parent="1" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="750" y="220" as="sourcePoint" />
|
||||
<mxPoint x="750" y="660" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-13" edge="1" parent="1" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#FF5722;rounded=0;endArrow=none;" value="">
|
||||
<mxGeometry as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="90" y="120" />
|
||||
<mxPoint x="90" y="150" />
|
||||
<mxPoint x="900" y="150" />
|
||||
<mxPoint x="900" y="120" />
|
||||
</Array>
|
||||
<mxPoint x="80" y="120" as="sourcePoint" />
|
||||
<mxPoint x="910" y="120" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-14" edge="1" parent="1" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#2196F3;rounded=0;endArrow=none;" value="">
|
||||
<mxGeometry as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="250" />
|
||||
<mxPoint x="125" y="250" />
|
||||
<mxPoint x="125" y="220" />
|
||||
<mxPoint x="150" y="220" />
|
||||
<mxPoint x="150" y="250" />
|
||||
<mxPoint x="175" y="250" />
|
||||
<mxPoint x="175" y="220" />
|
||||
<mxPoint x="200" y="220" />
|
||||
<mxPoint x="200" y="250" />
|
||||
<mxPoint x="225" y="250" />
|
||||
<mxPoint x="225" y="220" />
|
||||
<mxPoint x="250" y="220" />
|
||||
<mxPoint x="250" y="250" />
|
||||
<mxPoint x="275" y="250" />
|
||||
<mxPoint x="275" y="220" />
|
||||
<mxPoint x="300" y="220" />
|
||||
<mxPoint x="300" y="250" />
|
||||
<mxPoint x="325" y="250" />
|
||||
<mxPoint x="325" y="220" />
|
||||
<mxPoint x="350" y="220" />
|
||||
<mxPoint x="350" y="250" />
|
||||
<mxPoint x="375" y="250" />
|
||||
<mxPoint x="375" y="220" />
|
||||
<mxPoint x="400" y="220" />
|
||||
<mxPoint x="400" y="250" />
|
||||
<mxPoint x="425" y="250" />
|
||||
<mxPoint x="425" y="220" />
|
||||
<mxPoint x="450" y="220" />
|
||||
<mxPoint x="450" y="250" />
|
||||
<mxPoint x="475" y="250" />
|
||||
<mxPoint x="475" y="220" />
|
||||
<mxPoint x="500" y="220" />
|
||||
<mxPoint x="500" y="250" />
|
||||
<mxPoint x="525" y="250" />
|
||||
<mxPoint x="525" y="220" />
|
||||
<mxPoint x="550" y="220" />
|
||||
<mxPoint x="550" y="250" />
|
||||
<mxPoint x="575" y="250" />
|
||||
<mxPoint x="575" y="220" />
|
||||
<mxPoint x="600" y="220" />
|
||||
<mxPoint x="600" y="250" />
|
||||
<mxPoint x="625" y="250" />
|
||||
<mxPoint x="625" y="220" />
|
||||
<mxPoint x="650" y="220" />
|
||||
<mxPoint x="650" y="250" />
|
||||
<mxPoint x="675" y="250" />
|
||||
<mxPoint x="675" y="220" />
|
||||
<mxPoint x="700" y="220" />
|
||||
<mxPoint x="700" y="250" />
|
||||
<mxPoint x="725" y="250" />
|
||||
<mxPoint x="725" y="220" />
|
||||
<mxPoint x="750" y="220" />
|
||||
<mxPoint x="750" y="250" />
|
||||
<mxPoint x="775" y="250" />
|
||||
<mxPoint x="775" y="220" />
|
||||
<mxPoint x="800" y="220" />
|
||||
<mxPoint x="800" y="250" />
|
||||
<mxPoint x="825" y="250" />
|
||||
<mxPoint x="825" y="220" />
|
||||
<mxPoint x="850" y="220" />
|
||||
<mxPoint x="850" y="250" />
|
||||
</Array>
|
||||
<mxPoint x="80" y="250" as="sourcePoint" />
|
||||
<mxPoint x="900" y="250" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-15" edge="1" parent="1" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#4CAF50;rounded=0;endArrow=none;" value="">
|
||||
<mxGeometry as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="320" />
|
||||
<mxPoint x="150" y="320" />
|
||||
<mxPoint x="200" y="320" />
|
||||
<mxPoint x="250" y="320" />
|
||||
<mxPoint x="250" y="350" />
|
||||
<mxPoint x="300" y="350" />
|
||||
<mxPoint x="300" y="320" />
|
||||
<mxPoint x="350" y="320" />
|
||||
<mxPoint x="350" y="350" />
|
||||
<mxPoint x="400" y="350" />
|
||||
<mxPoint x="400" y="320" />
|
||||
<mxPoint x="450" y="320" />
|
||||
<mxPoint x="500" y="320" />
|
||||
<mxPoint x="500" y="350" />
|
||||
<mxPoint x="550" y="350" />
|
||||
<mxPoint x="600" y="350" />
|
||||
<mxPoint x="650" y="350" />
|
||||
<mxPoint x="700" y="350" />
|
||||
<mxPoint x="750" y="350" />
|
||||
<mxPoint x="750" y="320" />
|
||||
<mxPoint x="800" y="320" />
|
||||
<mxPoint x="850" y="320" />
|
||||
</Array>
|
||||
<mxPoint x="80" y="320" as="sourcePoint" />
|
||||
<mxPoint x="900" y="320" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-16" edge="1" parent="1" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#9C27B0;rounded=0;endArrow=none;" value="">
|
||||
<mxGeometry as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="450" />
|
||||
<mxPoint x="150" y="450" />
|
||||
<mxPoint x="200" y="450" />
|
||||
<mxPoint x="250" y="450" />
|
||||
<mxPoint x="300" y="450" />
|
||||
<mxPoint x="350" y="450" />
|
||||
<mxPoint x="400" y="450" />
|
||||
<mxPoint x="450" y="450" />
|
||||
<mxPoint x="500" y="450" />
|
||||
<mxPoint x="550" y="450" />
|
||||
<mxPoint x="600" y="450" />
|
||||
<mxPoint x="650" y="450" />
|
||||
<mxPoint x="700" y="450" />
|
||||
<mxPoint x="750" y="450" />
|
||||
<mxPoint x="800" y="450" />
|
||||
<mxPoint x="850" y="450" />
|
||||
</Array>
|
||||
<mxPoint x="80" y="450" as="sourcePoint" />
|
||||
<mxPoint x="900" y="450" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-17" edge="1" parent="1" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#FFC107;rounded=0;endArrow=none;" value="">
|
||||
<mxGeometry as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="550" />
|
||||
<mxPoint x="150" y="550" />
|
||||
<mxPoint x="200" y="550" />
|
||||
<mxPoint x="250" y="550" />
|
||||
<mxPoint x="300" y="550" />
|
||||
<mxPoint x="350" y="550" />
|
||||
<mxPoint x="400" y="550" />
|
||||
<mxPoint x="450" y="550" />
|
||||
<mxPoint x="500" y="550" />
|
||||
<mxPoint x="550" y="550" />
|
||||
<mxPoint x="550" y="520" />
|
||||
<mxPoint x="600" y="520" />
|
||||
<mxPoint x="650" y="520" />
|
||||
<mxPoint x="650" y="550" />
|
||||
<mxPoint x="700" y="550" />
|
||||
<mxPoint x="750" y="550" />
|
||||
<mxPoint x="750" y="520" />
|
||||
<mxPoint x="800" y="520" />
|
||||
<mxPoint x="850" y="520" />
|
||||
</Array>
|
||||
<mxPoint x="80" y="550" as="sourcePoint" />
|
||||
<mxPoint x="900" y="520" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-18" edge="1" parent="1" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#607D8B;rounded=0;endArrow=none;" value="">
|
||||
<mxGeometry as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="650" />
|
||||
<mxPoint x="150" y="650" />
|
||||
<mxPoint x="200" y="650" />
|
||||
<mxPoint x="250" y="650" />
|
||||
<mxPoint x="300" y="650" />
|
||||
<mxPoint x="350" y="650" />
|
||||
<mxPoint x="400" y="650" />
|
||||
<mxPoint x="450" y="650" />
|
||||
<mxPoint x="500" y="650" />
|
||||
<mxPoint x="500" y="620" />
|
||||
<mxPoint x="550" y="620" />
|
||||
<mxPoint x="550" y="650" />
|
||||
<mxPoint x="600" y="650" />
|
||||
<mxPoint x="600" y="620" />
|
||||
<mxPoint x="650" y="620" />
|
||||
<mxPoint x="650" y="650" />
|
||||
<mxPoint x="700" y="650" />
|
||||
<mxPoint x="750" y="650" />
|
||||
<mxPoint x="800" y="650" />
|
||||
<mxPoint x="850" y="650" />
|
||||
</Array>
|
||||
<mxPoint x="80" y="650" as="sourcePoint" />
|
||||
<mxPoint x="900" y="650" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-19" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#4CAF50;" value="命令 (0xEB)" vertex="1">
|
||||
<mxGeometry height="20" width="120" x="240" y="275" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-20" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#666666;" value="地址 (Quad)" vertex="1">
|
||||
<mxGeometry height="20" width="120" x="515" y="275" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-21" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#666666;" value="空周期 (2)" vertex="1">
|
||||
<mxGeometry height="20" width="120" x="640" y="275" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-22" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#2196F3;" value="数据 (Quad 0xAA)" vertex="1">
|
||||
<mxGeometry height="20" width="120" x="740" y="275" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-23" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" value="1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="115" y="295" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-24" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" value="1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="165" y="295" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-25" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" value="1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="215" y="295" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-26" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" value="0" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="265" y="295" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-27" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" value="1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="315" y="295" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-28" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" value="0" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="365" y="295" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-29" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" value="1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="415" y="295" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-30" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" value="1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="465" y="295" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-31" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" value="A23" vertex="1">
|
||||
<mxGeometry height="20" width="30" x="510" y="575" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-32" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" value="A19" vertex="1">
|
||||
<mxGeometry height="20" width="30" x="560" y="575" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-33" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" value="A15" vertex="1">
|
||||
<mxGeometry height="20" width="30" x="610" y="575" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-34" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" value="A22" vertex="1">
|
||||
<mxGeometry height="20" width="30" x="510" y="480" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-35" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" value="A18" vertex="1">
|
||||
<mxGeometry height="20" width="30" x="560" y="480" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-36" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" value="A14" vertex="1">
|
||||
<mxGeometry height="20" width="30" x="610" y="480" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-37" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#FFC107;" value="A21" vertex="1">
|
||||
<mxGeometry height="20" width="30" x="510" y="395" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-38" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#FFC107;" value="A17" vertex="1">
|
||||
<mxGeometry height="20" width="30" x="560" y="395" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-39" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#FFC107;" value="A13" vertex="1">
|
||||
<mxGeometry height="20" width="30" x="610" y="395" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-40" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#607D8B;" value="A20" vertex="1">
|
||||
<mxGeometry height="20" width="30" x="510" y="295" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-41" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#607D8B;" value="A16" vertex="1">
|
||||
<mxGeometry height="20" width="30" x="560" y="295" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-42" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#607D8B;" value="A12" vertex="1">
|
||||
<mxGeometry height="20" width="30" x="610" y="295" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-43" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" value="D0" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="765" y="295" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-44" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#4CAF50;" value="D4" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="810" y="295" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-45" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" value="D1" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="765" y="480" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-46" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#9C27B0;" value="D5" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="807" y="480" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-47" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#FFC107;" value="D2" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="760" y="395" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-48" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#FFC107;" value="D6" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="807" y="395" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-49" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#607D8B;" value="D3" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="760" y="575" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Rpu2YiTbEjEEDBTAPRj_-50" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=10;fontColor=#607D8B;" value="D7" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="807" y="575" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
BIN
docs/绘图/SPI_Waveform_CPHA0.png
Normal file
|
After Width: | Height: | Size: 411 KiB |
197
docs/绘图/SPI_Waveform_CPHA0.py
Normal file
@@ -0,0 +1,197 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def make_mxfile():
|
||||
# 基础参数
|
||||
y_cs_high, y_cs_low = 80, 110
|
||||
y_sclk_high, y_sclk_low = 180, 210
|
||||
y_mosi_high, y_mosi_low = 280, 310
|
||||
y_miso_high, y_miso_low = 380, 410
|
||||
|
||||
# 8个bit周期,每个100px,从x=100开始,到x=900结束
|
||||
rise_edges = [150, 250, 350, 450, 550, 650, 750, 850]
|
||||
fall_edges = [190, 290, 390, 490, 590, 690, 790, 890]
|
||||
|
||||
# MOSI: 0x5A = 0b01011010, MSB first
|
||||
mosi_bits = [0, 1, 0, 1, 1, 0, 1, 0]
|
||||
# MISO: 0xA5 = 0b10100101, MSB first
|
||||
miso_bits = [1, 0, 1, 0, 0, 1, 0, 1]
|
||||
|
||||
lines = []
|
||||
lines.append('<?xml version="1.0" encoding="UTF-8"?>')
|
||||
lines.append('<mxfile host="app.diagrams.net" modified="2024-05-25T00:00:00.000Z" agent="AI" version="21.0.0" type="device">')
|
||||
lines.append(' <diagram name="SPI Waveform" id="spi_waveform">')
|
||||
lines.append(' <mxGraphModel dx="1000" dy="600" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1000" pageHeight="600" math="0" shadow="0">')
|
||||
lines.append(' <root>')
|
||||
lines.append(' <mxCell id="0"/>')
|
||||
lines.append(' <mxCell id="1" parent="0"/>')
|
||||
|
||||
# 背景网格
|
||||
lines.append(' <mxCell id="grid" value="" style="points=[];gridColor=#e0e0e0;gridSize=20;spacingTop=20;spacingLeft=20;spacingBottom=20;spacingRight=20;html=1;" vertex="1" parent="1">')
|
||||
lines.append(' <mxGeometry x="0" y="0" width="1000" height="600" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# 标题
|
||||
lines.append(' <mxCell id="title" value="SPI 全双工传输 (模式 0: CPOL=0, CPHA=0)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1;" vertex="1" parent="1">')
|
||||
lines.append(' <mxGeometry x="300" y="20" width="400" height="30" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# MSB / LSB
|
||||
lines.append(' <mxCell id="msb" value="MSB" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" vertex="1" parent="1">')
|
||||
lines.append(' <mxGeometry x="130" y="60" width="40" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
lines.append(' <mxCell id="lsb" value="LSB" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" vertex="1" parent="1">')
|
||||
lines.append(' <mxGeometry x="880" y="60" width="40" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# 信号标签
|
||||
for label, y, eid in [("CS", 85, "label_cs"), ("SCLK", 185, "label_sclk"),
|
||||
("MOSI", 275, "label_mosi"), ("MISO", 365, "label_miso")]:
|
||||
lines.append(f' <mxCell id="{eid}" value="{label}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="20" y="{y}" width="50" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# 垂直参考虚线(放在每个上升沿采样点)
|
||||
for i, x in enumerate(rise_edges):
|
||||
lines.append(f' <mxCell id="vl_{x}" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry width="50" height="50" relative="1" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{x}" y="180" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{x}" y="420" as="targetPoint"/>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# CS 波形
|
||||
cs_points = [
|
||||
(80, y_cs_high), (90, y_cs_high), (90, y_cs_low), (910, y_cs_low),
|
||||
(910, y_cs_high), (920, y_cs_high)
|
||||
]
|
||||
lines.append(' <mxCell id="cs" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#FF5722;rounded=0;endArrow=none;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry relative="0" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{cs_points[0][0]}" y="{cs_points[0][1]}" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{cs_points[-1][0]}" y="{cs_points[-1][1]}" as="targetPoint"/>')
|
||||
lines.append(' <Array as="points">')
|
||||
for x, y in cs_points[1:-1]:
|
||||
lines.append(f' <mxPoint x="{x}" y="{y}"/>')
|
||||
lines.append(' </Array>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# SCLK 波形
|
||||
sclk_pts = [(80, y_sclk_low), (100, y_sclk_low)]
|
||||
for rise, fall in zip(rise_edges, fall_edges):
|
||||
sclk_pts.extend([
|
||||
(rise, y_sclk_low),
|
||||
(rise, y_sclk_high),
|
||||
(fall, y_sclk_high),
|
||||
(fall, y_sclk_low),
|
||||
])
|
||||
sclk_pts.append((920, y_sclk_low))
|
||||
|
||||
lines.append(' <mxCell id="sclk" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#2196F3;rounded=0;endArrow=none;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry relative="0" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{sclk_pts[0][0]}" y="{sclk_pts[0][1]}" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{sclk_pts[-1][0]}" y="{sclk_pts[-1][1]}" as="targetPoint"/>')
|
||||
lines.append(' <Array as="points">')
|
||||
for x, y in sclk_pts[1:-1]:
|
||||
lines.append(f' <mxPoint x="{x}" y="{y}"/>')
|
||||
lines.append(' </Array>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# MOSI 波形
|
||||
mosi_start_y = y_mosi_high if mosi_bits[0] else y_mosi_low
|
||||
mosi_pts = [(80, mosi_start_y), (100, mosi_start_y)]
|
||||
for i, bit in enumerate(mosi_bits):
|
||||
y_level = y_mosi_high if bit else y_mosi_low
|
||||
end_x = fall_edges[i] if i < len(fall_edges) else 900
|
||||
mosi_pts.append((end_x, y_level))
|
||||
if i + 1 < len(mosi_bits):
|
||||
y_next = y_mosi_high if mosi_bits[i+1] else y_mosi_low
|
||||
if y_next != y_level:
|
||||
mosi_pts.append((end_x, y_next))
|
||||
mosi_pts.append((920, mosi_pts[-1][1]))
|
||||
|
||||
lines.append(' <mxCell id="mosi" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#4CAF50;rounded=0;endArrow=none;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry relative="0" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{mosi_pts[0][0]}" y="{mosi_pts[0][1]}" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{mosi_pts[-1][0]}" y="{mosi_pts[-1][1]}" as="targetPoint"/>')
|
||||
lines.append(' <Array as="points">')
|
||||
for x, y in mosi_pts[1:-1]:
|
||||
lines.append(f' <mxPoint x="{x}" y="{y}"/>')
|
||||
lines.append(' </Array>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# MISO 波形 — 修复:sourcePoint 与第一个中间点同 y,避免斜线
|
||||
miso_start_y = y_miso_high if miso_bits[0] else y_miso_low
|
||||
miso_pts = [(80, miso_start_y), (100, miso_start_y)]
|
||||
for i, bit in enumerate(miso_bits):
|
||||
y_level = y_miso_high if bit else y_miso_low
|
||||
end_x = fall_edges[i] if i < len(fall_edges) else 900
|
||||
miso_pts.append((end_x, y_level))
|
||||
if i + 1 < len(miso_bits):
|
||||
y_next = y_miso_high if miso_bits[i+1] else y_miso_low
|
||||
if y_next != y_level:
|
||||
miso_pts.append((end_x, y_next))
|
||||
miso_pts.append((920, miso_pts[-1][1]))
|
||||
|
||||
lines.append(' <mxCell id="miso" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#9C27B0;rounded=0;endArrow=none;" edge="1" parent="1">')
|
||||
lines.append(' <mxGeometry relative="0" as="geometry">')
|
||||
lines.append(f' <mxPoint x="{miso_pts[0][0]}" y="{miso_pts[0][1]}" as="sourcePoint"/>')
|
||||
lines.append(f' <mxPoint x="{miso_pts[-1][0]}" y="{miso_pts[-1][1]}" as="targetPoint"/>')
|
||||
lines.append(' <Array as="points">')
|
||||
for x, y in miso_pts[1:-1]:
|
||||
lines.append(f' <mxPoint x="{x}" y="{y}"/>')
|
||||
lines.append(' </Array>')
|
||||
lines.append(' </mxGeometry>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# MOSI 数据位标签
|
||||
mosi_centers = [145, 240, 340, 440, 540, 640, 740, 840]
|
||||
for i, (bit, cx) in enumerate(zip(mosi_bits, mosi_centers)):
|
||||
lines.append(f' <mxCell id="m{i}" value="{bit}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#4CAF50;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{cx}" y="255" width="20" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# MISO 数据位标签
|
||||
miso_centers = [145, 240, 340, 440, 540, 640, 740, 840]
|
||||
for i, (bit, cx) in enumerate(zip(miso_bits, miso_centers)):
|
||||
lines.append(f' <mxCell id="s{i}" value="{bit}" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#9C27B0;" vertex="1" parent="1">')
|
||||
lines.append(f' <mxGeometry x="{cx}" y="355" width="20" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
# 数据包标注
|
||||
lines.append(' <mxCell id="hex_mosi" value="0x5A" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;fontColor=#4CAF50;" vertex="1" parent="1">')
|
||||
lines.append(' <mxGeometry x="500" y="235" width="80" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
lines.append(' <mxCell id="hex_miso" value="0xA5" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;fontColor=#9C27B0;" vertex="1" parent="1">')
|
||||
lines.append(' <mxGeometry x="500" y="425" width="80" height="20" as="geometry"/>')
|
||||
lines.append(' </mxCell>')
|
||||
|
||||
lines.append(' </root>')
|
||||
lines.append(' </mxGraphModel>')
|
||||
lines.append(' </diagram>')
|
||||
lines.append('</mxfile>')
|
||||
|
||||
return "\n".join(lines)
|
||||
|
||||
xml_content = make_mxfile()
|
||||
output_path = "SPI_Waveform_CPHA0_Corrected.drawio"
|
||||
with open(output_path, "w", encoding="utf-8") as f:
|
||||
f.write(xml_content)
|
||||
|
||||
# 验证 MISO 起始点
|
||||
import re
|
||||
with open(output_path, "r", encoding="utf-8") as f:
|
||||
content = f.read()
|
||||
|
||||
match = re.search(r'id="miso".*?<Array as="points">(.*?)</Array>', content, re.DOTALL)
|
||||
if match:
|
||||
pts = re.findall(r'<mxPoint x="(\d+)" y="(\d+)"/>', match.group(1))
|
||||
print("MISO 点:")
|
||||
for x, y in pts[:4]:
|
||||
print(f" ({x}, {y})")
|
||||
src = re.search(r'id="miso".*?<mxPoint x="(\d+)" y="(\d+)" as="sourcePoint"/>', content)
|
||||
if src:
|
||||
print(f"sourcePoint: ({src.group(1)}, {src.group(2)})")
|
||||
|
||||
print("\n文件已保存:", output_path)
|
||||
396
docs/绘图/SPI_Waveform_QSPI.drawio
Normal file
@@ -0,0 +1,396 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mxfile host="app.diagrams.net" modified="2024-05-25T00:00:00.000Z" agent="AI" version="21.0.0" type="device">
|
||||
<diagram name="QSPI Waveform" id="qspi_waveform">
|
||||
<mxGraphModel dx="2000" dy="600" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2000" pageHeight="600" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
<mxCell id="grid" value="" style="points=[];gridColor=#e0e0e0;gridSize=20;spacingTop=20;spacingLeft=20;spacingBottom=20;spacingRight=20;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="0" y="0" width="2100" height="600" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="title" value="QSPI Fast Read Dual Output (命令 0x3B)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="600" y="20" width="500" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="msb" value="MSB" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="110" y="60" width="40" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="lsb" value="LSB" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontColor=#666666;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="1860" y="60" width="40" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="label_cs" value="CS" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="85" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="label_sclk" value="SCLK" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="185" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="label_io0" value="IO0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="275" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="label_io1" value="IO1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=14;fontStyle=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="20" y="375" width="50" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="vl_cmd_addr" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="500" y="180" as="sourcePoint"/>
|
||||
<mxPoint x="500" y="420" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="vl_addr_mid1" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="900" y="180" as="sourcePoint"/>
|
||||
<mxPoint x="900" y="420" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="vl_addr_mid2" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1300" y="180" as="sourcePoint"/>
|
||||
<mxPoint x="1300" y="420" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="vl_addr_data" value="" style="endArrow=none;html=1;strokeWidth=1;strokeColor=#CCCCCC;dashed=1;" edge="1" parent="1">
|
||||
<mxGeometry width="50" height="50" relative="1" as="geometry">
|
||||
<mxPoint x="1700" y="180" as="sourcePoint"/>
|
||||
<mxPoint x="1700" y="420" as="targetPoint"/>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="cs" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#FF5722;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="80" as="sourcePoint"/>
|
||||
<mxPoint x="1960" y="80" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="90" y="80"/>
|
||||
<mxPoint x="90" y="110"/>
|
||||
<mxPoint x="1950" y="110"/>
|
||||
<mxPoint x="1950" y="80"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="sclk" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#2196F3;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="210" as="sourcePoint"/>
|
||||
<mxPoint x="1950" y="210" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="210"/>
|
||||
<mxPoint x="125" y="210"/>
|
||||
<mxPoint x="125" y="180"/>
|
||||
<mxPoint x="150" y="180"/>
|
||||
<mxPoint x="150" y="210"/>
|
||||
<mxPoint x="175" y="210"/>
|
||||
<mxPoint x="175" y="180"/>
|
||||
<mxPoint x="200" y="180"/>
|
||||
<mxPoint x="200" y="210"/>
|
||||
<mxPoint x="225" y="210"/>
|
||||
<mxPoint x="225" y="180"/>
|
||||
<mxPoint x="250" y="180"/>
|
||||
<mxPoint x="250" y="210"/>
|
||||
<mxPoint x="275" y="210"/>
|
||||
<mxPoint x="275" y="180"/>
|
||||
<mxPoint x="300" y="180"/>
|
||||
<mxPoint x="300" y="210"/>
|
||||
<mxPoint x="325" y="210"/>
|
||||
<mxPoint x="325" y="180"/>
|
||||
<mxPoint x="350" y="180"/>
|
||||
<mxPoint x="350" y="210"/>
|
||||
<mxPoint x="375" y="210"/>
|
||||
<mxPoint x="375" y="180"/>
|
||||
<mxPoint x="400" y="180"/>
|
||||
<mxPoint x="400" y="210"/>
|
||||
<mxPoint x="425" y="210"/>
|
||||
<mxPoint x="425" y="180"/>
|
||||
<mxPoint x="450" y="180"/>
|
||||
<mxPoint x="450" y="210"/>
|
||||
<mxPoint x="475" y="210"/>
|
||||
<mxPoint x="475" y="180"/>
|
||||
<mxPoint x="500" y="180"/>
|
||||
<mxPoint x="500" y="210"/>
|
||||
<mxPoint x="525" y="210"/>
|
||||
<mxPoint x="525" y="180"/>
|
||||
<mxPoint x="550" y="180"/>
|
||||
<mxPoint x="550" y="210"/>
|
||||
<mxPoint x="575" y="210"/>
|
||||
<mxPoint x="575" y="180"/>
|
||||
<mxPoint x="600" y="180"/>
|
||||
<mxPoint x="600" y="210"/>
|
||||
<mxPoint x="625" y="210"/>
|
||||
<mxPoint x="625" y="180"/>
|
||||
<mxPoint x="650" y="180"/>
|
||||
<mxPoint x="650" y="210"/>
|
||||
<mxPoint x="675" y="210"/>
|
||||
<mxPoint x="675" y="180"/>
|
||||
<mxPoint x="700" y="180"/>
|
||||
<mxPoint x="700" y="210"/>
|
||||
<mxPoint x="725" y="210"/>
|
||||
<mxPoint x="725" y="180"/>
|
||||
<mxPoint x="750" y="180"/>
|
||||
<mxPoint x="750" y="210"/>
|
||||
<mxPoint x="775" y="210"/>
|
||||
<mxPoint x="775" y="180"/>
|
||||
<mxPoint x="800" y="180"/>
|
||||
<mxPoint x="800" y="210"/>
|
||||
<mxPoint x="825" y="210"/>
|
||||
<mxPoint x="825" y="180"/>
|
||||
<mxPoint x="850" y="180"/>
|
||||
<mxPoint x="850" y="210"/>
|
||||
<mxPoint x="875" y="210"/>
|
||||
<mxPoint x="875" y="180"/>
|
||||
<mxPoint x="900" y="180"/>
|
||||
<mxPoint x="900" y="210"/>
|
||||
<mxPoint x="925" y="210"/>
|
||||
<mxPoint x="925" y="180"/>
|
||||
<mxPoint x="950" y="180"/>
|
||||
<mxPoint x="950" y="210"/>
|
||||
<mxPoint x="975" y="210"/>
|
||||
<mxPoint x="975" y="180"/>
|
||||
<mxPoint x="1000" y="180"/>
|
||||
<mxPoint x="1000" y="210"/>
|
||||
<mxPoint x="1025" y="210"/>
|
||||
<mxPoint x="1025" y="180"/>
|
||||
<mxPoint x="1050" y="180"/>
|
||||
<mxPoint x="1050" y="210"/>
|
||||
<mxPoint x="1075" y="210"/>
|
||||
<mxPoint x="1075" y="180"/>
|
||||
<mxPoint x="1100" y="180"/>
|
||||
<mxPoint x="1100" y="210"/>
|
||||
<mxPoint x="1125" y="210"/>
|
||||
<mxPoint x="1125" y="180"/>
|
||||
<mxPoint x="1150" y="180"/>
|
||||
<mxPoint x="1150" y="210"/>
|
||||
<mxPoint x="1175" y="210"/>
|
||||
<mxPoint x="1175" y="180"/>
|
||||
<mxPoint x="1200" y="180"/>
|
||||
<mxPoint x="1200" y="210"/>
|
||||
<mxPoint x="1225" y="210"/>
|
||||
<mxPoint x="1225" y="180"/>
|
||||
<mxPoint x="1250" y="180"/>
|
||||
<mxPoint x="1250" y="210"/>
|
||||
<mxPoint x="1275" y="210"/>
|
||||
<mxPoint x="1275" y="180"/>
|
||||
<mxPoint x="1300" y="180"/>
|
||||
<mxPoint x="1300" y="210"/>
|
||||
<mxPoint x="1325" y="210"/>
|
||||
<mxPoint x="1325" y="180"/>
|
||||
<mxPoint x="1350" y="180"/>
|
||||
<mxPoint x="1350" y="210"/>
|
||||
<mxPoint x="1375" y="210"/>
|
||||
<mxPoint x="1375" y="180"/>
|
||||
<mxPoint x="1400" y="180"/>
|
||||
<mxPoint x="1400" y="210"/>
|
||||
<mxPoint x="1425" y="210"/>
|
||||
<mxPoint x="1425" y="180"/>
|
||||
<mxPoint x="1450" y="180"/>
|
||||
<mxPoint x="1450" y="210"/>
|
||||
<mxPoint x="1475" y="210"/>
|
||||
<mxPoint x="1475" y="180"/>
|
||||
<mxPoint x="1500" y="180"/>
|
||||
<mxPoint x="1500" y="210"/>
|
||||
<mxPoint x="1525" y="210"/>
|
||||
<mxPoint x="1525" y="180"/>
|
||||
<mxPoint x="1550" y="180"/>
|
||||
<mxPoint x="1550" y="210"/>
|
||||
<mxPoint x="1575" y="210"/>
|
||||
<mxPoint x="1575" y="180"/>
|
||||
<mxPoint x="1600" y="180"/>
|
||||
<mxPoint x="1600" y="210"/>
|
||||
<mxPoint x="1625" y="210"/>
|
||||
<mxPoint x="1625" y="180"/>
|
||||
<mxPoint x="1650" y="180"/>
|
||||
<mxPoint x="1650" y="210"/>
|
||||
<mxPoint x="1675" y="210"/>
|
||||
<mxPoint x="1675" y="180"/>
|
||||
<mxPoint x="1700" y="180"/>
|
||||
<mxPoint x="1700" y="210"/>
|
||||
<mxPoint x="1725" y="210"/>
|
||||
<mxPoint x="1725" y="180"/>
|
||||
<mxPoint x="1750" y="180"/>
|
||||
<mxPoint x="1750" y="210"/>
|
||||
<mxPoint x="1775" y="210"/>
|
||||
<mxPoint x="1775" y="180"/>
|
||||
<mxPoint x="1800" y="180"/>
|
||||
<mxPoint x="1800" y="210"/>
|
||||
<mxPoint x="1825" y="210"/>
|
||||
<mxPoint x="1825" y="180"/>
|
||||
<mxPoint x="1850" y="180"/>
|
||||
<mxPoint x="1850" y="210"/>
|
||||
<mxPoint x="1875" y="210"/>
|
||||
<mxPoint x="1875" y="180"/>
|
||||
<mxPoint x="1900" y="180"/>
|
||||
<mxPoint x="1900" y="210"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="io0" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#4CAF50;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="310" as="sourcePoint"/>
|
||||
<mxPoint x="1950" y="310" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="310"/>
|
||||
<mxPoint x="150" y="310"/>
|
||||
<mxPoint x="200" y="310"/>
|
||||
<mxPoint x="200" y="280"/>
|
||||
<mxPoint x="250" y="280"/>
|
||||
<mxPoint x="300" y="280"/>
|
||||
<mxPoint x="350" y="280"/>
|
||||
<mxPoint x="350" y="310"/>
|
||||
<mxPoint x="400" y="310"/>
|
||||
<mxPoint x="400" y="280"/>
|
||||
<mxPoint x="450" y="280"/>
|
||||
<mxPoint x="500" y="280"/>
|
||||
<mxPoint x="500" y="310"/>
|
||||
<mxPoint x="550" y="310"/>
|
||||
<mxPoint x="600" y="310"/>
|
||||
<mxPoint x="650" y="310"/>
|
||||
<mxPoint x="650" y="280"/>
|
||||
<mxPoint x="700" y="280"/>
|
||||
<mxPoint x="700" y="310"/>
|
||||
<mxPoint x="750" y="310"/>
|
||||
<mxPoint x="800" y="310"/>
|
||||
<mxPoint x="800" y="280"/>
|
||||
<mxPoint x="850" y="280"/>
|
||||
<mxPoint x="850" y="310"/>
|
||||
<mxPoint x="900" y="310"/>
|
||||
<mxPoint x="950" y="310"/>
|
||||
<mxPoint x="1000" y="310"/>
|
||||
<mxPoint x="1000" y="280"/>
|
||||
<mxPoint x="1050" y="280"/>
|
||||
<mxPoint x="1100" y="280"/>
|
||||
<mxPoint x="1100" y="310"/>
|
||||
<mxPoint x="1150" y="310"/>
|
||||
<mxPoint x="1150" y="280"/>
|
||||
<mxPoint x="1200" y="280"/>
|
||||
<mxPoint x="1200" y="310"/>
|
||||
<mxPoint x="1250" y="310"/>
|
||||
<mxPoint x="1300" y="310"/>
|
||||
<mxPoint x="1350" y="310"/>
|
||||
<mxPoint x="1350" y="280"/>
|
||||
<mxPoint x="1400" y="280"/>
|
||||
<mxPoint x="1400" y="310"/>
|
||||
<mxPoint x="1450" y="310"/>
|
||||
<mxPoint x="1450" y="280"/>
|
||||
<mxPoint x="1500" y="280"/>
|
||||
<mxPoint x="1500" y="310"/>
|
||||
<mxPoint x="1550" y="310"/>
|
||||
<mxPoint x="1550" y="280"/>
|
||||
<mxPoint x="1600" y="280"/>
|
||||
<mxPoint x="1650" y="280"/>
|
||||
<mxPoint x="1650" y="310"/>
|
||||
<mxPoint x="1700" y="310"/>
|
||||
<mxPoint x="1750" y="310"/>
|
||||
<mxPoint x="1800" y="310"/>
|
||||
<mxPoint x="1850" y="310"/>
|
||||
<mxPoint x="1900" y="310"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="io1" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#9C27B0;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="410" as="sourcePoint"/>
|
||||
<mxPoint x="1950" y="380" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="410"/>
|
||||
<mxPoint x="150" y="410"/>
|
||||
<mxPoint x="200" y="410"/>
|
||||
<mxPoint x="250" y="410"/>
|
||||
<mxPoint x="300" y="410"/>
|
||||
<mxPoint x="350" y="410"/>
|
||||
<mxPoint x="400" y="410"/>
|
||||
<mxPoint x="450" y="410"/>
|
||||
<mxPoint x="500" y="410"/>
|
||||
<mxPoint x="550" y="410"/>
|
||||
<mxPoint x="600" y="410"/>
|
||||
<mxPoint x="650" y="410"/>
|
||||
<mxPoint x="700" y="410"/>
|
||||
<mxPoint x="750" y="410"/>
|
||||
<mxPoint x="800" y="410"/>
|
||||
<mxPoint x="850" y="410"/>
|
||||
<mxPoint x="900" y="410"/>
|
||||
<mxPoint x="950" y="410"/>
|
||||
<mxPoint x="1000" y="410"/>
|
||||
<mxPoint x="1050" y="410"/>
|
||||
<mxPoint x="1100" y="410"/>
|
||||
<mxPoint x="1150" y="410"/>
|
||||
<mxPoint x="1200" y="410"/>
|
||||
<mxPoint x="1250" y="410"/>
|
||||
<mxPoint x="1300" y="410"/>
|
||||
<mxPoint x="1350" y="410"/>
|
||||
<mxPoint x="1400" y="410"/>
|
||||
<mxPoint x="1450" y="410"/>
|
||||
<mxPoint x="1500" y="410"/>
|
||||
<mxPoint x="1550" y="410"/>
|
||||
<mxPoint x="1600" y="410"/>
|
||||
<mxPoint x="1650" y="410"/>
|
||||
<mxPoint x="1700" y="410"/>
|
||||
<mxPoint x="1700" y="380"/>
|
||||
<mxPoint x="1750" y="380"/>
|
||||
<mxPoint x="1800" y="380"/>
|
||||
<mxPoint x="1850" y="380"/>
|
||||
<mxPoint x="1900" y="380"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="cmd0" value="0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="115" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd1" value="0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="165" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd2" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="215" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd3" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="265" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd4" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="315" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd5" value="0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="365" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd6" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="415" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="cmd7" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="465" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="stage_命令 (" value="命令 (0x3B)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="240" y="235" width="120" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="stage_地址 [" value="地址 [23:16]" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#666666;" vertex="1" parent="1">
|
||||
<mxGeometry x="640" y="235" width="120" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="stage_地址 [" value="地址 [15:8]" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#666666;" vertex="1" parent="1">
|
||||
<mxGeometry x="1040" y="235" width="120" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="stage_地址 [" value="地址 [7:0]" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#666666;" vertex="1" parent="1">
|
||||
<mxGeometry x="1440" y="235" width="120" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="stage_数据 (" value="数据 (Dual)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=13;fontStyle=1;fontColor=#2196F3;" vertex="1" parent="1">
|
||||
<mxGeometry x="1740" y="235" width="120" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="d0_0" value="D0" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="1715" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="d1_0" value="D1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="1715" y="355" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="d0_1" value="D2" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="1765" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="d1_1" value="D3" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="1765" y="355" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="d0_2" value="D4" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="1815" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="d1_2" value="D5" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="1815" y="355" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="d0_3" value="D6" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#4CAF50;" vertex="1" parent="1">
|
||||
<mxGeometry x="1865" y="255" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
<mxCell id="d1_3" value="D7" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=11;fontColor=#9C27B0;" vertex="1" parent="1">
|
||||
<mxGeometry x="1865" y="355" width="20" height="20" as="geometry"/>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
BIN
docs/绘图/ops 作用.png
Normal file
|
After Width: | Height: | Size: 710 KiB |
154
docs/绘图/test.drawio
Normal file
@@ -0,0 +1,154 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mxfile host="app.diagrams.net" modified="2024-05-20T10:00:00.000Z" agent="Drawio_Waveform_Generator" version="24.0.0">
|
||||
<diagram id="qspi_fastread_0xeb" name="QSPI_FastRead_0xEB">
|
||||
<mxGraphModel dx="1100" dy="700" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="700" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0"/>
|
||||
<mxCell id="1" parent="0"/>
|
||||
|
||||
<!-- 标题 -->
|
||||
<mxCell id="title" value="Quad I/O Fast Read (0xEB) Timing Diagram" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=16;fontStyle=1" vertex="1" parent="1">
|
||||
<mxGeometry x="100" y="20" width="900" height="30" as="geometry"/>
|
||||
</mxCell>
|
||||
|
||||
<!-- 信号标签 -->
|
||||
<mxCell id="lbl_cs" value="CS" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;fontSize=12;fontStyle=1" vertex="1" parent="1"><mxGeometry x="20" y="95" width="60" height="20" as="geometry"/></mxCell>
|
||||
<mxCell id="lbl_sclk" value="SCLK" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;fontSize=12;fontStyle=1" vertex="1" parent="1"><mxGeometry x="20" y="195" width="60" height="20" as="geometry"/></mxCell>
|
||||
<mxCell id="lbl_io0" value="IO0" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;fontSize=12;fontStyle=1" vertex="1" parent="1"><mxGeometry x="20" y="295" width="60" height="20" as="geometry"/></mxCell>
|
||||
<mxCell id="lbl_io1" value="IO1" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;fontSize=12;fontStyle=1" vertex="1" parent="1"><mxGeometry x="20" y="395" width="60" height="20" as="geometry"/></mxCell>
|
||||
<mxCell id="lbl_io2" value="IO2" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;fontSize=12;fontStyle=1" vertex="1" parent="1"><mxGeometry x="20" y="495" width="60" height="20" as="geometry"/></mxCell>
|
||||
<mxCell id="lbl_io3" value="IO3" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;fontSize=12;fontStyle=1" vertex="1" parent="1"><mxGeometry x="20" y="595" width="60" height="20" as="geometry"/></mxCell>
|
||||
|
||||
<!-- MSB/LSB 标记 -->
|
||||
<mxCell id="msb" value="MSB" style="text;html=1;strokeColor=none;fillColor=none;align=center;fontSize=10;fontStyle=2" vertex="1" parent="1"><mxGeometry x="100" y="260" width="40" height="20" as="geometry"/></mxCell>
|
||||
<mxCell id="lsb" value="LSB" style="text;html=1;strokeColor=none;fillColor=none;align=center;fontSize=10;fontStyle=2" vertex="1" parent="1"><mxGeometry x="980" y="260" width="40" height="20" as="geometry"/></mxCell>
|
||||
|
||||
<!-- 阶段分界虚线 -->
|
||||
<mxCell id="div_cmd_addr" value="" style="endArrow=none;dashed=1;strokeWidth=1;strokeColor=#888888" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="580" y="80" as="sourcePoint"/><mxPoint x="580" y="610" as="targetPoint"/></mxGeometry></mxCell>
|
||||
<mxCell id="div_addr_dummy" value="" style="endArrow=none;dashed=1;strokeWidth=1;strokeColor=#888888" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="760" y="80" as="sourcePoint"/><mxPoint x="760" y="610" as="targetPoint"/></mxGeometry></mxCell>
|
||||
<mxCell id="div_dummy_data" value="" style="endArrow=none;dashed=1;strokeWidth=1;strokeColor=#888888" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="880" y="80" as="sourcePoint"/><mxPoint x="880" y="610" as="targetPoint"/></mxGeometry></mxCell>
|
||||
|
||||
<!-- 阶段名称 -->
|
||||
<mxCell id="ph_cmd" value="Command" style="text;html=1;strokeColor=none;fillColor=none;align=center;fontSize=10;fontStyle=2" vertex="1" parent="1"><mxGeometry x="300" y="60" width="60" height="20" as="geometry"/></mxCell>
|
||||
<mxCell id="ph_addr" value="Address" style="text;html=1;strokeColor=none;fillColor=none;align=center;fontSize=10;fontStyle=2" vertex="1" parent="1"><mxGeometry x="650" y="60" width="60" height="20" as="geometry"/></mxCell>
|
||||
<mxCell id="ph_dummy" value="Dummy" style="text;html=1;strokeColor=none;fillColor=none;align=center;fontSize=10;fontStyle=2" vertex="1" parent="1"><mxGeometry x="800" y="60" width="60" height="20" as="geometry"/></mxCell>
|
||||
<mxCell id="ph_data" value="Data" style="text;html=1;strokeColor=none;fillColor=none;align=center;fontSize=10;fontStyle=2" vertex="1" parent="1"><mxGeometry x="920" y="60" width="60" height="20" as="geometry"/></mxCell>
|
||||
|
||||
<!-- 波形 Edge 生成 -->
|
||||
<!-- CS -->
|
||||
<mxCell id="cs" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#E63946;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="80" as="sourcePoint"/><mxPoint x="1010" y="80" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="90" y="80"/><mxPoint x="90" y="110"/>
|
||||
<mxPoint x="1000" y="110"/><mxPoint x="1000" y="80"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
|
||||
<!-- SCLK -->
|
||||
<mxCell id="sclk" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#1D3557;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="210" as="sourcePoint"/><mxPoint x="1050" y="210" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="210"/>
|
||||
<mxPoint x="130" y="210"/><mxPoint x="130" y="180"/><mxPoint x="160" y="180"/><mxPoint x="160" y="210"/>
|
||||
<mxPoint x="190" y="210"/><mxPoint x="190" y="180"/><mxPoint x="220" y="180"/><mxPoint x="220" y="210"/>
|
||||
<mxPoint x="250" y="210"/><mxPoint x="250" y="180"/><mxPoint x="280" y="180"/><mxPoint x="280" y="210"/>
|
||||
<mxPoint x="310" y="210"/><mxPoint x="310" y="180"/><mxPoint x="340" y="180"/><mxPoint x="340" y="210"/>
|
||||
<mxPoint x="370" y="210"/><mxPoint x="370" y="180"/><mxPoint x="400" y="180"/><mxPoint x="400" y="210"/>
|
||||
<mxPoint x="430" y="210"/><mxPoint x="430" y="180"/><mxPoint x="460" y="180"/><mxPoint x="460" y="210"/>
|
||||
<mxPoint x="490" y="210"/><mxPoint x="490" y="180"/><mxPoint x="520" y="180"/><mxPoint x="520" y="210"/>
|
||||
<mxPoint x="550" y="210"/><mxPoint x="550" y="180"/><mxPoint x="580" y="180"/><mxPoint x="580" y="210"/>
|
||||
<mxPoint x="610" y="210"/><mxPoint x="610" y="180"/><mxPoint x="640" y="180"/><mxPoint x="640" y="210"/>
|
||||
<mxPoint x="670" y="210"/><mxPoint x="670" y="180"/><mxPoint x="700" y="180"/><mxPoint x="700" y="210"/>
|
||||
<mxPoint x="730" y="210"/><mxPoint x="730" y="180"/><mxPoint x="760" y="180"/><mxPoint x="760" y="210"/>
|
||||
<mxPoint x="790" y="210"/><mxPoint x="790" y="180"/><mxPoint x="820" y="180"/><mxPoint x="820" y="210"/>
|
||||
<mxPoint x="850" y="210"/><mxPoint x="850" y="180"/><mxPoint x="880" y="180"/><mxPoint x="880" y="210"/>
|
||||
<mxPoint x="910" y="210"/><mxPoint x="910" y="180"/><mxPoint x="940" y="180"/><mxPoint x="940" y="210"/>
|
||||
<mxPoint x="970" y="210"/><mxPoint x="970" y="180"/><mxPoint x="1000" y="180"/><mxPoint x="1000" y="210"/>
|
||||
<mxPoint x="1050" y="210"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
|
||||
<!-- IO0 (Command: 11101011, Addr/Dummy/Data: 0) -->
|
||||
<mxCell id="io0" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#2A9D8F;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="280" as="sourcePoint"/><mxPoint x="1050" y="310" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="280"/>
|
||||
<mxPoint x="160" y="280"/><mxPoint x="220" y="280"/><mxPoint x="280" y="280"/>
|
||||
<mxPoint x="280" y="310"/><mxPoint x="340" y="310"/>
|
||||
<mxPoint x="340" y="280"/><mxPoint x="400" y="280"/>
|
||||
<mxPoint x="400" y="310"/><mxPoint x="460" y="310"/>
|
||||
<mxPoint x="460" y="280"/><mxPoint x="520" y="280"/>
|
||||
<mxPoint x="520" y="310"/><mxPoint x="580" y="310"/>
|
||||
<mxPoint x="640" y="310"/><mxPoint x="700" y="310"/><mxPoint x="760" y="310"/>
|
||||
<mxPoint x="820" y="310"/><mxPoint x="880" y="310"/>
|
||||
<mxPoint x="940" y="310"/><mxPoint x="1000" y="310"/>
|
||||
<mxPoint x="1050" y="310"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
|
||||
<!-- IO1 (Idle:0, Addr:101, Dummy:00, Data:11) -->
|
||||
<mxCell id="io1" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#E9C46A;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="410" as="sourcePoint"/><mxPoint x="1050" y="380" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="410"/><mxPoint x="580" y="410"/>
|
||||
<mxPoint x="580" y="380"/><mxPoint x="640" y="380"/>
|
||||
<mxPoint x="640" y="410"/><mxPoint x="700" y="410"/>
|
||||
<mxPoint x="700" y="380"/><mxPoint x="760" y="380"/>
|
||||
<mxPoint x="760" y="410"/><mxPoint x="820" y="410"/>
|
||||
<mxPoint x="880" y="410"/><mxPoint x="880" y="380"/>
|
||||
<mxPoint x="940" y="380"/><mxPoint x="1000" y="380"/>
|
||||
<mxPoint x="1050" y="380"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
|
||||
<!-- IO2 (Idle:0, Addr:010, Dummy:00, Data:00) -->
|
||||
<mxCell id="io2" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#F4A261;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="510" as="sourcePoint"/><mxPoint x="1050" y="510" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="510"/><mxPoint x="580" y="510"/>
|
||||
<mxPoint x="580" y="510"/><mxPoint x="640" y="510"/>
|
||||
<mxPoint x="640" y="480"/><mxPoint x="700" y="480"/>
|
||||
<mxPoint x="700" y="510"/><mxPoint x="760" y="510"/>
|
||||
<mxPoint x="820" y="510"/><mxPoint x="880" y="510"/>
|
||||
<mxPoint x="940" y="510"/><mxPoint x="1000" y="510"/>
|
||||
<mxPoint x="1050" y="510"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
|
||||
<!-- IO3 (Idle:0, Addr:110, Dummy:00, Data:10) -->
|
||||
<mxCell id="io3" value="" style="edgeStyle=none;html=1;strokeWidth=2;strokeColor=#264653;rounded=0;endArrow=none;" edge="1" parent="1">
|
||||
<mxGeometry relative="0" as="geometry">
|
||||
<mxPoint x="80" y="610" as="sourcePoint"/><mxPoint x="1050" y="610" as="targetPoint"/>
|
||||
<Array as="points">
|
||||
<mxPoint x="100" y="610"/><mxPoint x="580" y="610"/>
|
||||
<mxPoint x="580" y="580"/><mxPoint x="640" y="580"/>
|
||||
<mxPoint x="640" y="580"/><mxPoint x="700" y="580"/>
|
||||
<mxPoint x="700" y="610"/><mxPoint x="760" y="610"/>
|
||||
<mxPoint x="820" y="610"/><mxPoint x="880" y="610"/>
|
||||
<mxPoint x="880" y="580"/><mxPoint x="940" y="580"/>
|
||||
<mxPoint x="940" y="610"/><mxPoint x="1000" y="610"/>
|
||||
<mxPoint x="1050" y="610"/>
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
|
||||
<!-- 数据位标签 (示例) -->
|
||||
<mxCell id="bit_cmd7" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;fontSize=10" vertex="1" parent="1"><mxGeometry x="140" y="265" width="10" height="10" as="geometry"/></mxCell>
|
||||
<mxCell id="bit_cmd0" value="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;fontSize=10" vertex="1" parent="1"><mxGeometry x="560" y="265" width="10" height="10" as="geometry"/></mxCell>
|
||||
<mxCell id="bit_data0" value="D0" style="text;html=1;strokeColor=none;fillColor=none;align=center;fontSize=10" vertex="1" parent="1"><mxGeometry x="890" y="265" width="20" height="10" as="geometry"/></mxCell>
|
||||
<mxCell id="bit_data7" value="D7" style="text;html=1;strokeColor=none;fillColor=none;align=center;fontSize=10" vertex="1" parent="1"><mxGeometry x="980" y="265" width="20" height="10" as="geometry"/></mxCell>
|
||||
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
BIN
docs/绘图/事件驱动时序图.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
65
docs/绘图/工厂模式.drawio
Normal file
@@ -0,0 +1,65 @@
|
||||
<mxfile host="Electron" agent="AI-Drawio-Replicator">
|
||||
<diagram id="page-1" name="传感器工厂模式">
|
||||
<mxGraphModel dx="2204" dy="2155" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1400" pageHeight="900" background="#f0f8ff" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="2" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e6f2ff;strokeColor=#6699cc;strokeWidth=2;shadow=1;fontSize=14;fontFamily=Times New Roman;" value="<div style="display:flex;align-items:center;justify-content:center;gap:15px;font-size:20px;font-weight:bold;"><div style="font-size:40px;">📱</div><div>应用层<br><span style="font-size:16px;font-weight:normal;">(调用者)</span></div></div>" vertex="1">
|
||||
<mxGeometry height="100" width="220" x="20" y="120" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Times New Roman;" value="<div style="font-size: 18px; line-height: 1.6;">sensor = <span style="color:#0066cc;font-weight:bold;">sensor_create</span>(SENSOR_DS18B20);<br>sensor-&gt;read(); <span style="color:#666666;">// 不关心具体实现</span></div>" vertex="1">
|
||||
<mxGeometry height="100" width="350" x="250" y="120" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="4" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e6f9f2;strokeColor=#33cc99;strokeWidth=3;shadow=1;fontSize=14;fontFamily=Times New Roman;" value="<div style="display:flex;align-items:center;justify-content:center;gap:15px;font-size:24px;font-weight:bold;"><div style="font-size:40px;">🏭</div><div>工厂函数</div></div>" vertex="1">
|
||||
<mxGeometry height="100" width="280" x="230" y="320" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Times New Roman;" value="<div style="font-size:16px;">根据类型参数,选择并返回对应的操作集合</div>" vertex="1">
|
||||
<mxGeometry height="30" width="350" x="380" y="280" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="6" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e6f2ff;strokeColor=#6699cc;strokeWidth=3;shadow=1;fontSize=14;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="280" width="700" x="20" y="540" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="7" parent="6" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f7ff;strokeColor=#6699cc;strokeWidth=2;fontSize=14;fontFamily=Times New Roman;" value="<div style="font-size:24px;font-weight:bold;text-align:center;">传感器操作接口</div>" vertex="1">
|
||||
<mxGeometry height="50" width="600" x="50" y="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="8" parent="6" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f7ff;strokeColor=#6699cc;strokeWidth=2;fontSize=14;fontFamily=Times New Roman;" value="<div style="display:flex;align-items:center;justify-content:center;gap:10px;font-size:20px;font-weight:bold;"><div style="font-size:36px;">🌡️</div><div>DS18B20<br><span style="font-size: 16px; font-weight: normal;">.init<br>.read<br>.deinit</span></div></div>" vertex="1">
|
||||
<mxGeometry height="160" width="180" x="50" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="9" parent="6" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e6f9f2;strokeColor=#33cc99;strokeWidth=2;fontSize=14;fontFamily=Times New Roman;" value="<div style="display:flex;align-items:center;justify-content:center;gap:10px;font-size:20px;font-weight:bold;"><div style="font-size:36px;">🌡️</div><div>NTC<br><span style="font-size: 16px; font-weight: normal;">.init<br>.read<br>.deinit</span></div></div>" vertex="1">
|
||||
<mxGeometry height="160" width="180" x="260" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="10" parent="6" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f7ff;strokeColor=#6699cc;strokeWidth=2;fontSize=14;fontFamily=Times New Roman;" value="<div style="display:flex;align-items:center;justify-content:center;gap:10px;font-size:20px;font-weight:bold;"><div style="font-size:36px;">🌡️</div><div>PT100<br><span style="font-size: 16px; font-weight: normal;">.init<br>.read<br>.deinit</span></div></div>" vertex="1">
|
||||
<mxGeometry height="160" width="180" x="470" y="100" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="11" edge="1" parent="1" source="2" style="endArrow=classic;html=1;strokeColor=#336699;strokeWidth=2;labelPosition=top;verticalAlign=bottom;labelBackgroundColor=#ffffff;edgeStyle=orthogonalEdgeStyle;fontFamily=Times New Roman;" target="4" value="<div style="font-size:16px;">调用工厂函数</div>">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="130" y="370" />
|
||||
</Array>
|
||||
<mxPoint x="130" y="220" as="sourcePoint" />
|
||||
<mxPoint x="320" y="320" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="12" edge="1" parent="1" source="4" style="endArrow=classic;html=1;strokeColor=#33cc99;strokeWidth=3;labelPosition=right;verticalAlign=middle;labelBackgroundColor=#ffffff;fontFamily=Times New Roman;" target="6" value="<div style="font-size:16px;">返回具体实例</div>">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="460" y="420" as="sourcePoint" />
|
||||
<mxPoint x="460" y="540" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="3jtoW8cGR1RTCXEpEOqW-14" edge="1" parent="1" style="endArrow=classic;html=1;strokeColor=#336699;strokeWidth=2;labelPosition=top;verticalAlign=bottom;labelBackgroundColor=#ffffff;edgeStyle=orthogonalEdgeStyle;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontFamily=Times New Roman;" target="4" value="<div style="font-size:16px;"><br></div>">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint as="offset" />
|
||||
<Array as="points">
|
||||
<mxPoint x="370" y="270" />
|
||||
</Array>
|
||||
<mxPoint x="130" y="270" as="sourcePoint" />
|
||||
<mxPoint x="320" y="420" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="13" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=32;fontFamily=Times New Roman;" value="📄" vertex="1">
|
||||
<mxGeometry height="40" width="40" x="260" y="251" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
BIN
docs/绘图/工厂模式.png
Normal file
|
After Width: | Height: | Size: 896 KiB |
101
docs/绘图/新建 文本文档.drawio
Normal file
@@ -0,0 +1,101 @@
|
||||
<mxfile host="Electron" agent="AI-Drawio-Replicator">
|
||||
<diagram id="page-1" name="嵌入式系统分层架构">
|
||||
<mxGraphModel dx="3030" dy="2963" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1400" pageHeight="900" background="#ffffff" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="Cv1bTN4lYfAtcs4RRTld-33" parent="1" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","elbow":"vertical","curved":0,"rounded":0};size=65;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);strokeWidth=3;fontSize=20;" value="传感器采集模块" vertex="1">
|
||||
<mxGeometry height="680" width="150" x="70" y="110" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Cv1bTN4lYfAtcs4RRTld-34" parent="1" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","elbow":"vertical","curved":0,"rounded":0};size=65;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);strokeWidth=3;fontSize=20;" value="事件队列" vertex="1">
|
||||
<mxGeometry height="680" width="150" x="493" y="110" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Cv1bTN4lYfAtcs4RRTld-35" parent="1" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","elbow":"vertical","curved":0,"rounded":0};size=65;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);strokeWidth=3;fontSize=20;" value="事件分发器" vertex="1">
|
||||
<mxGeometry height="680" width="150" x="699" y="110" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Cv1bTN4lYfAtcs4RRTld-36" parent="1" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","elbow":"vertical","curved":0,"rounded":0};size=65;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);strokeWidth=3;fontSize=20;" value="数据滤波模块" vertex="1">
|
||||
<mxGeometry height="680" width="150" x="995" y="110" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Cv1bTN4lYfAtcs4RRTld-37" parent="1" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","elbow":"vertical","curved":0,"rounded":0};size=65;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);strokeWidth=3;fontSize=20;" value="Flash存储模块" vertex="1">
|
||||
<mxGeometry height="680" width="150" x="1195" y="110" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Cv1bTN4lYfAtcs4RRTld-38" parent="1" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","elbow":"vertical","curved":0,"rounded":0};size=65;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);strokeWidth=3;fontSize=20;" value="LCD显示模块" vertex="1">
|
||||
<mxGeometry height="680" width="150" x="1395" y="110" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Cv1bTN4lYfAtcs4RRTld-39" parent="1" style="shape=umlLifeline;perimeter=lifelinePerimeter;whiteSpace=wrap;container=1;dropTarget=0;collapsible=0;recursiveResize=0;outlineConnect=0;portConstraint=eastwest;newEdgeStyle={"edgeStyle":"elbowEdgeStyle","elbow":"vertical","curved":0,"rounded":0};size=65;fillColor=light-dark(#eeeeee,#1f2020);strokeColor=light-dark(#999999,#cccccc);fontColor=light-dark(#333333,#cccccc);strokeWidth=3;fontSize=20;" value="Modbus上传模块" vertex="1">
|
||||
<mxGeometry height="680" width="150" x="1595" y="110" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="Cv1bTN4lYfAtcs4RRTld-40" edge="1" parent="1" source="Cv1bTN4lYfAtcs4RRTld-33" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;strokeWidth=3;fontSize=20;" target="Cv1bTN4lYfAtcs4RRTld-34" value="投递【温度采集完成事件】(带温度值、时间戳)">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="365" y="217" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Cv1bTN4lYfAtcs4RRTld-41" edge="1" parent="1" source="Cv1bTN4lYfAtcs4RRTld-35" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;strokeWidth=3;fontSize=20;" target="Cv1bTN4lYfAtcs4RRTld-34" value="轮询/阻塞获取事件">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="683" y="269" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Cv1bTN4lYfAtcs4RRTld-42" edge="1" parent="1" source="Cv1bTN4lYfAtcs4RRTld-35" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;strokeWidth=3;fontSize=20;" target="Cv1bTN4lYfAtcs4RRTld-36" value="分发事件,调用注册的处理函数">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="931" y="321" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Cv1bTN4lYfAtcs4RRTld-43" edge="1" parent="1" source="Cv1bTN4lYfAtcs4RRTld-36" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;dashed=1;dashPattern=2 3;endArrow=block;strokeWidth=3;fontSize=20;" target="Cv1bTN4lYfAtcs4RRTld-35" value="处理完成">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="934" y="373" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Cv1bTN4lYfAtcs4RRTld-44" edge="1" parent="1" source="Cv1bTN4lYfAtcs4RRTld-35" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;strokeWidth=3;fontSize=20;" target="Cv1bTN4lYfAtcs4RRTld-37" value="分发事件,调用注册的处理函数">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="1031" y="425" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Cv1bTN4lYfAtcs4RRTld-45" edge="1" parent="1" source="Cv1bTN4lYfAtcs4RRTld-37" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;dashed=1;dashPattern=2 3;endArrow=block;strokeWidth=3;fontSize=20;" target="Cv1bTN4lYfAtcs4RRTld-35" value="处理完成">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="1034" y="477" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Cv1bTN4lYfAtcs4RRTld-46" edge="1" parent="1" source="Cv1bTN4lYfAtcs4RRTld-35" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;strokeWidth=3;fontSize=20;" target="Cv1bTN4lYfAtcs4RRTld-38" value="分发事件,调用注册的处理函数">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="1131" y="529" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Cv1bTN4lYfAtcs4RRTld-47" edge="1" parent="1" source="Cv1bTN4lYfAtcs4RRTld-38" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;dashed=1;dashPattern=2 3;endArrow=block;strokeWidth=3;fontSize=20;" target="Cv1bTN4lYfAtcs4RRTld-35" value="处理完成">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="1134" y="581" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Cv1bTN4lYfAtcs4RRTld-48" edge="1" parent="1" source="Cv1bTN4lYfAtcs4RRTld-35" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;endArrow=block;strokeWidth=3;fontSize=20;" target="Cv1bTN4lYfAtcs4RRTld-39" value="分发事件,调用注册的处理函数">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="1231" y="633" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="Cv1bTN4lYfAtcs4RRTld-49" edge="1" parent="1" source="Cv1bTN4lYfAtcs4RRTld-39" style="verticalAlign=bottom;edgeStyle=elbowEdgeStyle;elbow=vertical;curved=0;rounded=0;dashed=1;dashPattern=2 3;endArrow=block;strokeWidth=3;fontSize=20;" target="Cv1bTN4lYfAtcs4RRTld-35" value="处理完成">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="1234" y="685" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
680
docs/绘图/系统架构.drawio
Normal file
@@ -0,0 +1,680 @@
|
||||
<mxfile host="Electron" agent="AI-Drawio-Replicator">
|
||||
<diagram id="hw-arch" name="Hardware Architecture">
|
||||
<mxGraphModel dx="2424" dy="3197" grid="1" gridSize="5" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" background="#ffffff" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-83" parent="1" style="rounded=0;whiteSpace=wrap;html=1;container=1;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="700" width="1070" x="70" y="-683" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="19" parent="B37HkNnOgrgZiHbc5-xt-83" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=14;fontStyle=1;align=center;verticalAlign=top;spacingTop=5;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="370" width="595.99" x="240" y="155" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="20" parent="19" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;fontSize=10;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="370" width="89.01" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="23" parent="19" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;fontColor=#000000;fontSize=10;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="75" width="505.99" x="89.01" y="295" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-214" parent="19" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;fontFamily=Times New Roman;" value="<font style="font-size: 18px;">BSP&nbsp;</font><div><font style="font-size: 18px;">板级支持</font></div>" vertex="1">
|
||||
<mxGeometry height="68.57" width="90" y="298" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-215" parent="19" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;fontFamily=Times New Roman;" value="<font style="font-size: 18px;">Driver<br>驱动</font>" vertex="1">
|
||||
<mxGeometry height="68.57" width="89.01" x="-0.01" y="226.43" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-223" parent="19" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;fontFamily=Times New Roman;" value="<font style="font-size: 18px;">HAL<br>硬件抽象</font>" vertex="1">
|
||||
<mxGeometry height="68.57" width="89.01" x="0.99" y="148.21" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-224" parent="19" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;fontColor=#000000;fontSize=10;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="75" width="505.99" x="89" y="220" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-225" parent="19" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;fontColor=#000000;fontSize=10;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="75" width="505.99" x="89" y="145" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-226" parent="19" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;fontColor=#000000;fontSize=10;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="75" width="505.99" x="89" y="70" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-227" parent="19" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;fontFamily=Times New Roman;" value="<font style="font-size: 18px;">Service<br>服务层</font>" vertex="1">
|
||||
<mxGeometry height="68.57" width="89.01" x="0.9900000000000091" y="73.21000000000001" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-228" parent="19" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;fontFamily=Times New Roman;" value="<font style="font-size: 18px;">APP<br>应用层</font>" vertex="1">
|
||||
<mxGeometry height="68.57" width="89.01" x="-0.009999999999990905" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-229" parent="19" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#000000;fontColor=#000000;fontSize=10;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="75" width="505.99" x="89" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-230" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="时钟配置" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="100" y="311.5" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-231" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="IO分配" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="186" y="311.5" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-232" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="中断向量" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="272" y="311.5" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-233" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="定时器" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="358" y="311.29" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-234" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="DMA" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="444" y="311.28999999999996" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-235" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="中断向量" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="530" y="311.5" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-236" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="SPI" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="100" y="239.72000000000003" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-256" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="IIC" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="186" y="239.72000000000003" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-257" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="RS485" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="272" y="239.70999999999998" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-258" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="UART" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="358" y="239.72000000000003" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-259" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="16并行采集" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="444" y="239.72000000000003" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-260" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="16并行采集" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="530" y="239.72000000000003" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-261" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="屏蔽芯片差异统一接口" vertex="1">
|
||||
<mxGeometry height="42" width="490" x="100" y="164" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-262" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="104" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="100" y="86.5" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-263" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="101" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="186" y="86.5" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-264" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="显示协议" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="272" y="86.5" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-265" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="按键协议" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="358" y="86.5" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-266" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="按键协议" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="444" y="88" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-267" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="图像界面" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="100" y="13.289999999999964" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-268" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="保护" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="186" y="13.289999999999964" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-269" parent="19" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="响应主站" vertex="1">
|
||||
<mxGeometry height="42" width="60" x="272" y="13.289999999999964" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="18" parent="B37HkNnOgrgZiHbc5-xt-83" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<b>TPT3232E</b><br>RS232 Transceiver" vertex="1">
|
||||
<mxGeometry height="73.76" width="100" x="5" y="15.999999999999998" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-90" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-83" style="group;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="158.29999999999995" width="195" x="310" y="525" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="26" parent="B37HkNnOgrgZiHbc5-xt-90" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b>存储芯片</b></div><b>GD5F2GQ5UE</b><br>SPI FLASH" vertex="1">
|
||||
<mxGeometry height="90.92" width="195" y="67.38" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="36" edge="1" parent="B37HkNnOgrgZiHbc5-xt-90" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;" value="CLK">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="115" y="0.0014285714286188522" as="sourcePoint" />
|
||||
<mxPoint x="115" y="67.37648648648667" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-85" edge="1" parent="B37HkNnOgrgZiHbc5-xt-90" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;" value="<font>MISO</font>">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="79.86000000000001" y="0.37999999999999545" as="sourcePoint" />
|
||||
<mxPoint x="79.86000000000001" y="67.38" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-86" edge="1" parent="B37HkNnOgrgZiHbc5-xt-90" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;" value="<font>MOSI</font>">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="45" y="0.37999999999999545" as="sourcePoint" />
|
||||
<mxPoint x="45" y="67.38" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-87" edge="1" parent="B37HkNnOgrgZiHbc5-xt-90" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;" value="WP">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="150" y="0.37999999999999545" as="sourcePoint" />
|
||||
<mxPoint x="150" y="67.38" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-88" edge="1" parent="B37HkNnOgrgZiHbc5-xt-90" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;" value="<font>CS</font>">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="10" as="sourcePoint" />
|
||||
<mxPoint x="10" y="67" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-89" edge="1" parent="B37HkNnOgrgZiHbc5-xt-90" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;" value="HOLD">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="185" as="sourcePoint" />
|
||||
<mxPoint x="185" y="67" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-110" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-83" style="group;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="158.87" width="93.93" x="695" y="524" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="27" parent="B37HkNnOgrgZiHbc5-xt-110" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b>时钟模块</b></div><b>SD2506API-G</b><br>RTC Clock" vertex="1">
|
||||
<mxGeometry height="91.87" width="93.93" y="67" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-91" edge="1" parent="B37HkNnOgrgZiHbc5-xt-110" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;entryX=0.323;entryY=0.01;entryDx=0;entryDy=0;entryPerimeter=0;fontFamily=Times New Roman;" target="27" value="SCL">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="30" as="sourcePoint" />
|
||||
<mxPoint x="30" y="67" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-92" edge="1" parent="B37HkNnOgrgZiHbc5-xt-110" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=0.667;exitY=1.001;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.323;entryY=0.01;entryDx=0;entryDy=0;entryPerimeter=0;fontFamily=Times New Roman;" value="SDA">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="60.16000000000008" y="0.5728571428570604" as="sourcePoint" />
|
||||
<mxPoint x="60" y="67.20000000000005" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-168" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-83" style="group" value="" vertex="1">
|
||||
<mxGeometry height="280.54" width="216.06999999999994" x="835" y="209" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="28" parent="B37HkNnOgrgZiHbc5-xt-168" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b>模拟量采样芯片</b></div><b>TPAFE5160</b>" vertex="1">
|
||||
<mxGeometry height="280.54" width="166.07" x="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-102" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="260" as="sourcePoint" />
|
||||
<mxPoint x="50" y="260" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-104" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-102" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D0</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-106" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="250" as="sourcePoint" />
|
||||
<mxPoint x="50" y="250" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-107" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-106" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D1</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-108" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="240" as="sourcePoint" />
|
||||
<mxPoint x="50" y="240" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-109" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-108" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D2</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-111" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="230" as="sourcePoint" />
|
||||
<mxPoint x="50" y="230" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-112" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-111" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D3</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-113" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="220" as="sourcePoint" />
|
||||
<mxPoint x="50" y="220" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-114" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-113" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D4</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-115" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="210" as="sourcePoint" />
|
||||
<mxPoint x="50" y="210" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-116" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-115" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D5</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-117" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="200" as="sourcePoint" />
|
||||
<mxPoint x="50" y="200" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-118" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-117" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D6</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-119" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="190" as="sourcePoint" />
|
||||
<mxPoint x="50" y="190" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-120" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-119" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D7</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-121" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="180" as="sourcePoint" />
|
||||
<mxPoint x="50" y="180" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-122" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-121" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D8</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-123" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="169.92000000000002" as="sourcePoint" />
|
||||
<mxPoint x="50" y="169.92000000000002" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-124" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-123" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D9</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-125" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="160" as="sourcePoint" />
|
||||
<mxPoint x="50" y="160" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-126" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-125" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D10</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-127" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="150" as="sourcePoint" />
|
||||
<mxPoint x="50" y="150" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-128" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-127" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D11</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-129" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="140" as="sourcePoint" />
|
||||
<mxPoint x="50" y="140" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-130" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-129" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D12</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-131" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="130" as="sourcePoint" />
|
||||
<mxPoint x="50" y="130" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-132" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-131" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D13</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-133" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="120" as="sourcePoint" />
|
||||
<mxPoint x="50" y="120" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-134" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-133" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D14</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-135" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="110" as="sourcePoint" />
|
||||
<mxPoint x="50" y="110" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-136" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-135" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">D15</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-137" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=1;startArrow=none;startFill=0;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="50" as="sourcePoint" />
|
||||
<mxPoint x="50" y="50" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-138" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-137" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">CONVST</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint x="-10" y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-145" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="60" as="sourcePoint" />
|
||||
<mxPoint x="50" y="60" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-146" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-145" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">BUSY</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-147" edge="1" parent="B37HkNnOgrgZiHbc5-xt-168" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;exitX=1.001;exitY=0.52;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint y="70" as="sourcePoint" />
|
||||
<mxPoint x="50" y="70" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-148" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-147" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Times New Roman;" value="<font style="font-size: 7px;">FRST</font>" vertex="1">
|
||||
<mxGeometry relative="1" x="0.1927" as="geometry">
|
||||
<mxPoint y="-2" as="offset" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="14" parent="B37HkNnOgrgZiHbc5-xt-83" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<b>网络变压器</b>" vertex="1">
|
||||
<mxGeometry height="75.49" width="70" x="770" y="19.51" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="13" parent="B37HkNnOgrgZiHbc5-xt-83" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b>网络交换机</b></div><b>RTL8305NBI-CG</b>" vertex="1">
|
||||
<mxGeometry height="75" width="140" x="882" y="19.51" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-153" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="15" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endWidth=7.741935483870967;endSize=2.85;startSize=2.85;width=4.354838709677419;startArrow=classic;startFill=1;startWidth=7.181795448862215;" target="14" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="670" y="57.17500000000012" as="sourcePoint" />
|
||||
<mxPoint x="710" y="57.17039215686275" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-154" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endWidth=7.741935483870967;endSize=2.85;startSize=2.85;width=4.354838709677419;startArrow=classic;startFill=1;startWidth=7.181795448862215;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="840" y="57.09460784313736" as="sourcePoint" />
|
||||
<mxPoint x="880" y="57.089999999999996" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-166" parent="B37HkNnOgrgZiHbc5-xt-83" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b style="background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));">光耦隔离器</b></div><div><b>FOC-817SC</b></div>" vertex="1">
|
||||
<mxGeometry height="75.49" width="70" x="520" y="21.240000000000002" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-169" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-83" style="group" value="" vertex="1">
|
||||
<mxGeometry height="137.14736694677867" width="130" x="600" y="19.51" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="15" parent="B37HkNnOgrgZiHbc5-xt-169" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<b>CH395F</b><br>ETH Controller" vertex="1">
|
||||
<mxGeometry height="75.49" width="130" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="33" edge="1" parent="B37HkNnOgrgZiHbc5-xt-169" source="19" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0.631;exitY=0.001;exitDx=0;exitDy=0;exitPerimeter=0;" value="CS">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="15.370000000000005" y="137.1428571428571" as="sourcePoint" />
|
||||
<mxPoint x="14.997831963993235" y="75.48549019607844" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-150" edge="1" parent="B37HkNnOgrgZiHbc5-xt-169" source="19" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0.689;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;" value="MOSI">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="50.37216803600677" y="137.14736694677867" as="sourcePoint" />
|
||||
<mxPoint x="50" y="75.49000000000001" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-151" edge="1" parent="B37HkNnOgrgZiHbc5-xt-169" source="19" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0.749;exitY=-0.001;exitDx=0;exitDy=0;exitPerimeter=0;" value="MISO">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="85.37216803600677" y="137.14736694677867" as="sourcePoint" />
|
||||
<mxPoint x="85" y="75.49000000000001" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-152" edge="1" parent="B37HkNnOgrgZiHbc5-xt-169" source="19" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0.807;exitY=0;exitDx=0;exitDy=0;exitPerimeter=0;" value="SCK">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="120.37216803600677" y="137.14736694677867" as="sourcePoint" />
|
||||
<mxPoint x="120" y="75.49000000000001" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-170" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="16" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=0;startArrow=classic;startFill=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="B37HkNnOgrgZiHbc5-xt-166" value="DIR">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="150" y="57.09" as="sourcePoint" />
|
||||
<mxPoint x="100" y="57.09" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-171" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="B37HkNnOgrgZiHbc5-xt-166" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0.5;exitY=1;exitDx=0;exitDy=0;endFill=0;startArrow=classic;startFill=1;entryX=0.53;entryY=0.001;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;entryPerimeter=0;" target="19" value="DIR">
|
||||
<mxGeometry height="50" relative="1" width="50" x="-0.0243" as="geometry">
|
||||
<mxPoint as="offset" />
|
||||
<mxPoint x="135" y="216" as="sourcePoint" />
|
||||
<mxPoint x="80" y="216.09000000000003" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-177" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-83" style="group" value="" vertex="1">
|
||||
<mxGeometry height="75.49" width="80" x="112" y="274" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-182" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-177" style="group" value="" vertex="1">
|
||||
<mxGeometry height="75.49" width="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-172" parent="B37HkNnOgrgZiHbc5-xt-182" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b style="background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));">数字隔离器</b></div><div><b>CA-IS3722HS</b></div>" vertex="1">
|
||||
<mxGeometry height="75.49" width="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-175" edge="1" parent="B37HkNnOgrgZiHbc5-xt-182" source="19" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=-0.003;exitY=0.367;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;exitPerimeter=0;" target="B37HkNnOgrgZiHbc5-xt-172" value="TX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="100" y="-12.99750000000006" as="sourcePoint" />
|
||||
<mxPoint x="149.03999999999996" y="-12.902857142857215" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-176" edge="1" parent="B37HkNnOgrgZiHbc5-xt-182" source="19" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;endFill=0;startArrow=classic;startFill=1;entryX=1;entryY=0.75;entryDx=0;entryDy=0;exitX=-0.001;exitY=0.468;exitDx=0;exitDy=0;exitPerimeter=0;" target="B37HkNnOgrgZiHbc5-xt-172" value="RX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="155" y="57" as="sourcePoint" />
|
||||
<mxPoint x="135" y="45" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-183" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-83" style="group" value="" vertex="1">
|
||||
<mxGeometry height="75.49" width="80" x="112" y="366" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-184" connectable="0" parent="B37HkNnOgrgZiHbc5-xt-183" style="group" value="" vertex="1">
|
||||
<mxGeometry height="75.49" width="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-185" parent="B37HkNnOgrgZiHbc5-xt-184" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b style="background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));">数字隔离器</b></div><div><b>CA-IS3722HS</b></div>" vertex="1">
|
||||
<mxGeometry height="75.49" width="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-186" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="19" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0;exitY=0.616;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;exitPerimeter=0;" target="B37HkNnOgrgZiHbc5-xt-185" value="TX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="185" y="353.00249999999994" as="sourcePoint" />
|
||||
<mxPoint x="234.03999999999996" y="353.0971428571428" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-187" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="19" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;endFill=0;startArrow=classic;startFill=1;entryX=1;entryY=0.75;entryDx=0;entryDy=0;exitX=0.002;exitY=0.717;exitDx=0;exitDy=0;exitPerimeter=0;" target="B37HkNnOgrgZiHbc5-xt-185" value="RX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="267" y="423" as="sourcePoint" />
|
||||
<mxPoint x="247" y="411" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-188" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=-0.003;exitY=0.367;exitDx=0;exitDy=0;entryX=0.791;entryY=1.003;entryDx=0;entryDy=0;exitPerimeter=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;entryPerimeter=0;" target="18" value="TX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="112" y="291" as="sourcePoint" />
|
||||
<mxPoint x="65" y="291" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-189" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="B37HkNnOgrgZiHbc5-xt-172" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;endFill=0;startArrow=classic;startFill=1;entryX=0.6;entryY=0.995;entryDx=0;entryDy=0;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryPerimeter=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;" target="18" value="RX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="93" y="349" as="sourcePoint" />
|
||||
<mxPoint x="45" y="350" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-190" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="B37HkNnOgrgZiHbc5-xt-185" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0;exitY=0.25;exitDx=0;exitDy=0;entryX=0.384;entryY=1.004;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;entryPerimeter=0;" target="18" value="TX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="109" y="411" as="sourcePoint" />
|
||||
<mxPoint x="25" y="615" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-191" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="B37HkNnOgrgZiHbc5-xt-185" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;endFill=0;startArrow=classic;startFill=1;entryX=0.191;entryY=0.993;entryDx=0;entryDy=0;exitX=0;exitY=0.75;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;entryPerimeter=0;" target="18" value="RX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="112" y="436" as="sourcePoint" />
|
||||
<mxPoint x="45" y="602" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-160" parent="B37HkNnOgrgZiHbc5-xt-83" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b style="background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(237, 237, 237));">数字隔离器</b></div><div><b>CA-IS3722HS</b></div>" vertex="1">
|
||||
<mxGeometry height="75.49" width="80" x="255" y="21.240000000000002" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="16" parent="B37HkNnOgrgZiHbc5-xt-83" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#9fc5e8;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<b>TP8485E-SR</b><br>RS485 Transceiver" vertex="1">
|
||||
<mxGeometry height="75.49" width="95" x="380" y="21.24" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-162" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="20" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0.399;exitY=0.004;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;" target="B37HkNnOgrgZiHbc5-xt-160" value="TX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="355.37216803600677" y="158.38736694677866" as="sourcePoint" />
|
||||
<mxPoint x="355" y="96.72999999999999" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-163" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="19" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0.127;exitY=0.003;exitDx=0;exitDy=0;exitPerimeter=0;endFill=0;startArrow=classic;startFill=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;" target="B37HkNnOgrgZiHbc5-xt-160" value="RX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="415.37216803600677" y="157.89736694677865" as="sourcePoint" />
|
||||
<mxPoint x="415" y="96.24" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-164" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="B37HkNnOgrgZiHbc5-xt-160" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" target="16" value="TX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="305.37216803600677" y="112.89736694677866" as="sourcePoint" />
|
||||
<mxPoint x="305" y="51.239999999999995" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-165" edge="1" parent="B37HkNnOgrgZiHbc5-xt-83" source="B37HkNnOgrgZiHbc5-xt-160" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=1;exitY=0.75;exitDx=0;exitDy=0;endFill=0;startArrow=classic;startFill=1;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" target="16" value="RX">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="300.37216803600677" y="127.89736694677866" as="sourcePoint" />
|
||||
<mxPoint x="300" y="66.24" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-157" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Times New Roman;container=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" value="" vertex="1">
|
||||
<mxGeometry height="960" width="85" x="5" y="-823" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3" parent="B37HkNnOgrgZiHbc5-xt-157" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;fontFamily=Times New Roman;" value="<font style="font-size: 21px;">接口层</font>" vertex="1">
|
||||
<mxGeometry height="68.57142857142856" width="85" y="45.279999999999994" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-204" parent="B37HkNnOgrgZiHbc5-xt-157" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;fontFamily=Times New Roman;" value="<font style="font-size: 21px;">功能层</font>" vertex="1">
|
||||
<mxGeometry height="68.57142857142856" width="85" y="445.71428571428567" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-213" parent="B37HkNnOgrgZiHbc5-xt-157" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;fontStyle=1;fontColor=#000000;direction=west;fontFamily=Times New Roman;" value="<font style="font-size: 21px;">电源层</font>" vertex="1">
|
||||
<mxGeometry height="68.57142857142856" width="85" y="875" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-84" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Times New Roman;container=1;" value="" vertex="1">
|
||||
<mxGeometry height="140" width="1050" x="90" y="-823" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="10" parent="B37HkNnOgrgZiHbc5-xt-84" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<b>RS485</b><br>Interface" vertex="1">
|
||||
<mxGeometry height="68.62745098039215" width="101.94174757281553" x="368.53580437346886" y="19.999803921568628" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="8" parent="B37HkNnOgrgZiHbc5-xt-84" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b>带网络变压器的网口</b></div><b>HY911105AE</b>" vertex="1">
|
||||
<mxGeometry height="70" width="103.03738317757009" x="819.392523364486" y="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="9" parent="B37HkNnOgrgZiHbc5-xt-84" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b>带网络变压器的网口</b><b></b></div><b>HY911105AE</b>" vertex="1">
|
||||
<mxGeometry height="70" width="103.03738317757009" x="940.0934579439253" y="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="12" parent="B37HkNnOgrgZiHbc5-xt-84" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<b>RS232-2</b><br>Interface" vertex="1">
|
||||
<mxGeometry height="68.62745098039215" width="112.13592233009709" x="127.57447600036294" y="19.994901960784333" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="11" parent="B37HkNnOgrgZiHbc5-xt-84" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<b>RS232-1</b><br>Interface" vertex="1">
|
||||
<mxGeometry height="68.62745098039215" width="112.13592233009709" x="4.902540604300866" y="19.99627450980394" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-149" parent="B37HkNnOgrgZiHbc5-xt-84" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<b>RJ45 网口</b>" vertex="1">
|
||||
<mxGeometry height="70" width="103.03738317757009" x="255.14018691588785" y="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-203" parent="B37HkNnOgrgZiHbc5-xt-84" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<b>96个板级接口</b>" vertex="1">
|
||||
<mxGeometry height="68.63" width="309.1121495327103" x="490.6542056074766" y="20" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="43" edge="1" parent="1" source="16" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontFamily=Times New Roman;exitX=0.5;exitY=0;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;" target="10" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-155" edge="1" parent="1" source="8" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;endWidth=7.741935483870967;endSize=2.85;startSize=2.85;width=4.354838709677419;startArrow=classic;startFill=1;startWidth=7.181795448862215;" target="13" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="910" y="-669.4853921568626" as="sourcePoint" />
|
||||
<mxPoint x="950" y="-669.49" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-156" edge="1" parent="1" source="9" style="shape=flexArrow;endArrow=classic;html=1;rounded=0;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=0.75;entryY=0;entryDx=0;entryDy=0;endWidth=7.741935483870967;endSize=2.85;startSize=2.85;width=4.354838709677419;startArrow=classic;startFill=1;startWidth=7.181795448862215;" target="13" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="1080" y="-669.49" as="sourcePoint" />
|
||||
<mxPoint x="1080" y="-609.49" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-196" edge="1" parent="1" source="18" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0.25;exitY=0;exitDx=0;exitDy=0;entryX=0.216;entryY=0.998;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;entryPerimeter=0;" target="11" value="TX1">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="288" y="-592" as="sourcePoint" />
|
||||
<mxPoint x="260" y="-793" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-197" edge="1" parent="1" source="18" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;endFill=0;startArrow=classic;startFill=1;entryX=0.592;entryY=0.998;entryDx=0;entryDy=0;exitX=0.4;exitY=0.015;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;exitPerimeter=0;entryPerimeter=0;" target="11" value="RX1">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="227" y="-486" as="sourcePoint" />
|
||||
<mxPoint x="180" y="-728" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-201" edge="1" parent="1" source="18" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;entryX=0.25;entryY=1;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;exitX=0.75;exitY=0;exitDx=0;exitDy=0;" target="B37HkNnOgrgZiHbc5-xt-149" value="TX2">
|
||||
<mxGeometry height="50" relative="1" width="50" x="0.5481" as="geometry">
|
||||
<mxPoint as="offset" />
|
||||
<Array as="points">
|
||||
<mxPoint x="170" y="-708" />
|
||||
<mxPoint x="376" y="-708" />
|
||||
</Array>
|
||||
<mxPoint x="250" y="-708" as="sourcePoint" />
|
||||
<mxPoint x="325" y="-709" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-198" edge="1" parent="1" source="18" style="endArrow=classic;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;exitX=0.571;exitY=0;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;exitPerimeter=0;" target="12" value="TX2">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="170" y="-668" />
|
||||
<mxPoint x="170" y="-708" />
|
||||
<mxPoint x="249" y="-708" />
|
||||
</Array>
|
||||
<mxPoint x="255" y="-622" as="sourcePoint" />
|
||||
<mxPoint x="259" y="-688" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-202" edge="1" parent="1" source="18" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;endFill=0;startArrow=classic;startFill=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;exitX=0.846;exitY=-0.011;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;exitPerimeter=0;" target="B37HkNnOgrgZiHbc5-xt-149" value="RX2">
|
||||
<mxGeometry height="50" relative="1" width="50" x="0.178" as="geometry">
|
||||
<mxPoint as="offset" />
|
||||
<Array as="points">
|
||||
<mxPoint x="180" y="-693" />
|
||||
<mxPoint x="429" y="-693" />
|
||||
</Array>
|
||||
<mxPoint x="285" y="-632" as="sourcePoint" />
|
||||
<mxPoint x="411" y="-698" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-199" edge="1" parent="1" source="18" style="endArrow=none;html=1;strokeColor=#000000;strokeWidth=1;fontSize=10;fontFamily=Times New Roman;endFill=0;startArrow=classic;startFill=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;exitX=0.847;exitY=0;exitDx=0;exitDy=0;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;exitPerimeter=0;" target="12" value="RX2">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="180" y="-693" />
|
||||
<mxPoint x="306" y="-693" />
|
||||
</Array>
|
||||
<mxPoint x="250" y="-621" as="sourcePoint" />
|
||||
<mxPoint x="267" y="-688" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-205" parent="1" style="rounded=0;whiteSpace=wrap;html=1;" value="" vertex="1">
|
||||
<mxGeometry height="120" width="1070" x="90" y="17" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-209" edge="1" parent="1" source="B37HkNnOgrgZiHbc5-xt-207" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" target="B37HkNnOgrgZiHbc5-xt-208" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-207" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b><font style="font-size: 15px;">数字 3.3V 供电2</font></b></div><span style="font-size: 15px;"><b>CJT1117B-3.3</b></span>" vertex="1">
|
||||
<mxGeometry height="70" width="130" x="708" y="52" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-211" edge="1" parent="1" source="B37HkNnOgrgZiHbc5-xt-208" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" target="B37HkNnOgrgZiHbc5-xt-210" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-208" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<span style="font-size: 15px;"><b>隔离电源</b></span><div><span style="font-size: 15px;"><b>B0505S</b></span></div>" vertex="1">
|
||||
<mxGeometry height="70" width="100" x="420" y="52" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-210" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b><font style="font-size: 15px;">隔离 3.3V 供电</font></b></div>" vertex="1">
|
||||
<mxGeometry height="70" width="125" x="105" y="52" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="B37HkNnOgrgZiHbc5-xt-212" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f6b26b;strokeColor=#000000;fontColor=#000000;fontSize=11;fontFamily=Times New Roman;" value="<div><b><font style="font-size: 15px;">数字 3.3V 供电1</font></b></div><span style="font-size: 15px;"><b>CJT1117B-3.3</b></span>" vertex="1">
|
||||
<mxGeometry height="70" width="130" x="1010" y="52" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="9d8ulXwPflIB5cv3h3x3-43" edge="1" parent="1" source="B37HkNnOgrgZiHbc5-xt-149" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" target="B37HkNnOgrgZiHbc5-xt-160" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
BIN
docs/绘图/系统架构.png
Normal file
|
After Width: | Height: | Size: 1.8 MiB |
79
docs/绘图/网络硬件方案.drawio
Normal file
@@ -0,0 +1,79 @@
|
||||
<mxfile host="Electron" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.6.6 Chrome/144.0.7559.236 Electron/40.8.4 Safari/537.36" version="29.6.6">
|
||||
<diagram id="STM32-CH395-交换机拓扑" name="Page-1">
|
||||
<mxGraphModel dx="1224" dy="1185" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1200" pageHeight="800" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="stm32" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#333333;fontSize=14;fontWeight=bold;" value="STM32F407" vertex="1">
|
||||
<mxGeometry height="60" width="120" x="80" y="280" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ch395" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#333333;fontSize=14;fontWeight=bold;" value="CH395F" vertex="1">
|
||||
<mxGeometry height="60" width="120" x="280" y="280" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="switch" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e8f4f8;strokeColor=#333333;fontSize=14;fontWeight=bold;" value="<p>RTL8305NBI-CG</p>" vertex="1">
|
||||
<mxGeometry height="260" width="140" x="480" y="180" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="uplinkLabel" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;fontSize=12;" value="上行口" vertex="1">
|
||||
<mxGeometry height="20" width="50" x="420" y="280" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="transformer1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#333333;fontSize=12;" value="网络变压器1" vertex="1">
|
||||
<mxGeometry height="40" width="120" x="700" y="180" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="transformer2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#333333;fontSize=12;" value="网络变压器2" vertex="1">
|
||||
<mxGeometry height="40" width="120" x="700" y="290" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="transformer3" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#333333;fontSize=12;" value="网络变压器3" vertex="1">
|
||||
<mxGeometry height="40" width="120" x="700" y="400" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="rj45_1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2e6;strokeColor=#333333;fontSize=12;fontWeight=bold;" value="RJ45-1" vertex="1">
|
||||
<mxGeometry height="40" width="100" x="900" y="180" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="rj45_2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2e6;strokeColor=#333333;fontSize=12;fontWeight=bold;" value="RJ45-2" vertex="1">
|
||||
<mxGeometry height="40" width="100" x="900" y="290" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="rj45_3" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2e6;strokeColor=#333333;fontSize=12;fontWeight=bold;" value="RJ45-3" vertex="1">
|
||||
<mxGeometry height="40" width="100" x="900" y="400" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="note1" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=12;" value="(主站通信)" vertex="1">
|
||||
<mxGeometry height="40" width="120" x="1010" y="180" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="note2" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=12;" value="(本地调试/级联)" vertex="1">
|
||||
<mxGeometry height="40" width="120" x="1010" y="290" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="note3" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;fontSize=12;" value="(备用/扩展)" vertex="1">
|
||||
<mxGeometry height="40" width="120" x="1010" y="400" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="conn1" edge="1" parent="1" source="stm32" style="endArrow=block;startArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;labelPosition=top;verticalAlign=top;fontSize=12;" target="ch395" value="SPI/并口">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="conn2" edge="1" parent="1" source="ch395" style="endArrow=block;startArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;labelPosition=top;verticalAlign=top;fontSize=12;" target="switch" value="RMII/MII">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="conn3" edge="1" parent="1" source="switch" style="endArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;labelPosition=top;verticalAlign=top;fontSize=12;" target="transformer1" value="下行口1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="620" y="200" as="sourcePoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="conn4" edge="1" parent="1" source="transformer1" style="endArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;" target="rj45_1">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="conn5" edge="1" parent="1" source="switch" style="endArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;labelPosition=top;verticalAlign=top;fontSize=12;" target="transformer2" value="下行口2">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="620" y="310" as="sourcePoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="conn6" edge="1" parent="1" source="transformer2" style="endArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;" target="rj45_2">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="conn7" edge="1" parent="1" source="switch" style="endArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;labelPosition=top;verticalAlign=top;fontSize=12;" target="transformer3" value="下行口3">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="620" y="420" as="sourcePoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="conn8" edge="1" parent="1" source="transformer3" style="endArrow=block;html=1;edgeStyle=orthogonalEdgeStyle;" target="rj45_3">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
BIN
docs/绘图/网络硬件方案.png
Normal file
|
After Width: | Height: | Size: 196 KiB |
61
docs/绘图/软件架构.drawio
Normal file
@@ -0,0 +1,61 @@
|
||||
<mxfile host="Electron" agent="AI-Drawio-Replicator">
|
||||
<diagram id="page-1" name="传感器OPS架构">
|
||||
<mxGraphModel dx="2020" dy="1975" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" background="#ffffff" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="2" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f7ff;strokeColor=#2b579a;strokeWidth=2;fontSize=14;fontFamily=Times New Roman;" value="<div style="display:flex;align-items:center;justify-content:center;gap:20px;font-size:24px;font-weight:bold;"><div style="font-size:48px;color:#2b579a;">👤</div><div>调用者 / 上层<br><span style="font-size:18px;font-weight:normal;">(只认识 sensor_ops)</span></div></div>" vertex="1">
|
||||
<mxGeometry height="120" width="620" x="270" y="90" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="3" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f9f9;strokeColor=#2385bb;strokeWidth=3;fontSize=14;fontFamily=Times New Roman;" value="<div style="display:flex;align-items:center;justify-content:center;gap:20px;font-size:28px;font-weight:bold;"><div style="font-size:48px;color:#2385bb;">🏷️</div><div>ops 句柄<br><span style="font-size: 22px; font-weight: normal;">{ init, read, close }</span></div></div>" vertex="1">
|
||||
<mxGeometry height="120" width="380" x="390" y="340" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="4" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f7ff;strokeColor=#2b579a;strokeWidth=2;fontSize=14;fontFamily=Times New Roman;" value="<div style="display:flex;align-items:center;justify-content:center;gap:15px;font-size:22px;font-weight:bold;"><div style="font-size:48px;color:#2b579a;">🌡️</div><div>温度传感器<br><span style="font-size: 18px; font-weight: normal;">temp_read()</span></div></div>" vertex="1">
|
||||
<mxGeometry height="100" width="250" x="210" y="620" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="5" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0f7ff;strokeColor=#2b579a;strokeWidth=2;fontSize=14;fontFamily=Times New Roman;" value="<div style="display:flex;align-items:center;justify-content:center;gap:15px;font-size:22px;font-weight:bold;"><div style="font-size:48px;color:#2b579a;">🔲</div><div>加速度传感器<br><span style="font-size: 18px; font-weight: normal;">accel_read()</span></div></div>" vertex="1">
|
||||
<mxGeometry height="100" width="250" x="700" y="620" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="6" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Times New Roman;" value="<div style="font-size:20px;color:#2b579a;font-weight:bold;">接口边界</div>" vertex="1">
|
||||
<mxGeometry height="30" width="120" x="860" y="385" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="7" edge="1" parent="1" style="endArrow=none;html=1;strokeColor=#2b579a;strokeWidth=2;dashed=1;dashPattern=4 4;fontFamily=Times New Roman;startArrow=block;startFill=1;endFill=0;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="790" y="399.58" as="sourcePoint" />
|
||||
<mxPoint x="870" y="399.58" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="8" edge="1" parent="1" source="2" style="endArrow=classic;html=1;strokeColor=#1a365d;strokeWidth=3;labelPosition=top;verticalAlign=bottom;labelBackgroundColor=#ffffff;fontFamily=Times New Roman;" target="3" value="<div style="font-size: 20px;">ops-&gt;read(ctx, &amp;v)</div>">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="580" y="210" as="sourcePoint" />
|
||||
<mxPoint x="580" y="340" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="9" edge="1" parent="1" style="html=1;strokeColor=#1a365d;strokeWidth=3;fontFamily=Times New Roman;" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="580" y="460" as="sourcePoint" />
|
||||
<mxPoint x="580" y="540" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="10" parent="1" style="ellipse;whiteSpace=wrap;html=1;fillColor=#1a365d;strokeColor=#1a365d;strokeWidth=2;fontFamily=Times New Roman;" value="" vertex="1">
|
||||
<mxGeometry height="20" width="20" x="570" y="535" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="11" edge="1" parent="1" style="endArrow=classic;html=1;strokeColor=#1a365d;strokeWidth=3;edgeStyle=orthogonalEdgeStyle;rounded=0;curved=0;fontFamily=Times New Roman;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="4" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="580" y="545" as="sourcePoint" />
|
||||
<mxPoint x="325" y="620" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="12" edge="1" parent="1" style="endArrow=classic;html=1;strokeColor=#1a365d;strokeWidth=3;rounded=0;edgeStyle=orthogonalEdgeStyle;fontFamily=Times New Roman;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="5" value="">
|
||||
<mxGeometry height="50" relative="1" width="50" as="geometry">
|
||||
<mxPoint x="580" y="545" as="sourcePoint" />
|
||||
<mxPoint x="835" y="620" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="13" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;labelBackgroundColor=#ffffff;fontFamily=Times New Roman;" value="<div style="font-size:18px;">函数指针实际指向</div>" vertex="1">
|
||||
<mxGeometry height="30" width="200" x="630" y="500" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
260
docs/绘图/配电自动化系统基本架构示意图.drawio
Normal file
@@ -0,0 +1,260 @@
|
||||
<mxfile host="Electron" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/29.6.6 Chrome/144.0.7559.236 Electron/40.8.4 Safari/537.36" version="29.6.6">
|
||||
<diagram id="配电自动化系统架构" name="Page-1">
|
||||
<mxGraphModel dx="2949" dy="2693" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1200" pageHeight="1000" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="externalBox" parent="1" style="rounded=0;whiteSpace=wrap;html=1;align=left;verticalAlign=top;fillColor=#d5e8d4;strokeColor=#82b366;" value="<div><font style="font-size: 20px;"><br></font></div><div><font style="font-size: 20px;"><br></font></div><div><b style="background-color: transparent; color: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));"><font style="color: rgb(255, 0, 0); font-size: 20px;">外部系统</font></b></div>" vertex="1">
|
||||
<mxGeometry height="120" width="970" x="-1160" y="-970" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sys1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;" value="<b><font style="font-size: 16px;">上一级调度自动化系统</font></b>" vertex="1">
|
||||
<mxGeometry height="80" width="180" x="-1050" y="-950" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sys2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" value="<b><font style="font-size: 16px;">配电GIS系统</font></b>" vertex="1">
|
||||
<mxGeometry height="80" width="150" x="-830" y="-950" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sys3" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="<b><font style="font-size: 16px;">生产管理系统</font></b>" vertex="1">
|
||||
<mxGeometry height="80" width="150" x="-630" y="-950" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sysDot" parent="1" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;" value="……" vertex="1">
|
||||
<mxGeometry height="80" width="80" x="-468" y="-950" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="sys4" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" value="<b><font style="font-size: 16px;">营销管理信息系统</font></b>" vertex="1">
|
||||
<mxGeometry height="80" width="180" x="-380" y="-950" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="bus" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" value="<font style="font-size: 16px;">信息交互总线</font>" vertex="1">
|
||||
<mxGeometry height="50" width="970" x="-1160" y="-830" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="levelBox" parent="1" style="rounded=0;whiteSpace=wrap;html=1;" value="" vertex="1">
|
||||
<mxGeometry height="580" width="80" x="-1160" y="-760" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="level3" parent="1" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;rotation=270;align=center;verticalAlign=middle;" value="终端层" vertex="1">
|
||||
<mxGeometry height="350" width="80" x="-548" y="-420" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="daBox" parent="1" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;align=right;verticalAlign=top;fillColor=#f8cecc;strokeColor=#b85450;" value="<b><font style="font-size: 24px;">配电自动化系统</font></b>" vertex="1">
|
||||
<mxGeometry height="580" width="870" x="-1060" y="-760" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-15" parent="1" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;align=right;verticalAlign=top;fillColor=#fff2cc;strokeColor=#d6b656;" value="" vertex="1">
|
||||
<mxGeometry height="120" width="870" x="-1060" y="-550" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="mainStation" parent="1" style="rounded=0;whiteSpace=wrap;html=1;" value="<font style="font-size: 16px;">配电主站</font>" vertex="1">
|
||||
<mxGeometry height="60" width="220" x="-785" y="-730" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="subOptional" parent="1" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;align=left;" value="(可选)" vertex="1">
|
||||
<mxGeometry height="50" width="100" x="-1050" y="-506" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="subStation1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;" value="<font style="font-size: 16px;">配电子站</font>" vertex="1">
|
||||
<mxGeometry height="50" width="180" x="-970" y="-510" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="subDot" parent="1" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;" value="<font style="font-size: 19px;"><b>……</b></font>" vertex="1">
|
||||
<mxGeometry height="50" width="80" x="-750" y="-510" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="subStation2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;" value="<font style="font-size: 16px;">配电子站</font>" vertex="1">
|
||||
<mxGeometry height="50" width="180" x="-628" y="-510" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="dot1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;" value="……" vertex="1">
|
||||
<mxGeometry height="120" width="40" x="-870" y="-330" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="dot2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;strokeColor=none;fillColor=none;" value="……" vertex="1">
|
||||
<mxGeometry height="120" width="40" x="-500" y="-330" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-39" parent="1" style="rounded=0;whiteSpace=wrap;html=1;dashed=1;align=right;verticalAlign=top;fillColor=#ffe6cc;strokeColor=#d79b00;" value="" vertex="1">
|
||||
<mxGeometry height="250" width="870" x="-1060" y="-430" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="dtu3" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" value="DTU" vertex="1">
|
||||
<mxGeometry height="40" width="80" x="-300" y="-330" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="switchStation" parent="1" style="rounded=0;whiteSpace=wrap;html=1;" value="开关站" vertex="1">
|
||||
<mxGeometry height="60" width="80" x="-300" y="-270" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="connDtu3Station" edge="1" parent="1" source="dtu3" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" target="switchStation" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-1" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="<font style="color: rgb(255, 0, 0); font-size: 20px;"><b style="">主站层</b></font>" vertex="1">
|
||||
<mxGeometry height="210" width="80" x="-1160" y="-760" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-2" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" value="<font style="color: rgb(255, 0, 0); font-size: 20px;"><b>子站层</b></font>" vertex="1">
|
||||
<mxGeometry height="120" width="80" x="-1160" y="-550" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-3" parent="1" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="<font style="color: rgb(255, 0, 0); font-size: 20px;"><b>终端层</b></font>" vertex="1">
|
||||
<mxGeometry height="250" width="80" x="-1160" y="-430" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-6" parent="1" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.twoWayArrow;dy=0.61;dx=8.88;rounded=1;strokeColor=default;fontFamily=Helvetica;fontSize=12;fontColor=default;fillColor=default;rotation=90;" value="" vertex="1">
|
||||
<mxGeometry height="12" width="42.13" x="-981.07" y="-855.06" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-8" parent="1" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.twoWayArrow;dy=0.61;dx=8.88;rounded=1;strokeColor=default;fontFamily=Helvetica;fontSize=12;fontColor=default;fillColor=default;rotation=90;" value="" vertex="1">
|
||||
<mxGeometry height="12" width="42.13" x="-769.9950000000001" y="-855.055" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-9" parent="1" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.twoWayArrow;dy=0.61;dx=8.88;rounded=1;strokeColor=default;fontFamily=Helvetica;fontSize=12;fontColor=default;fillColor=default;rotation=90;" value="" vertex="1">
|
||||
<mxGeometry height="12" width="42.13" x="-576.065" y="-855.055" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-10" parent="1" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.twoWayArrow;dy=0.61;dx=8.88;rounded=1;strokeColor=default;fontFamily=Helvetica;fontSize=12;fontColor=default;fillColor=default;rotation=90;" value="" vertex="1">
|
||||
<mxGeometry height="12" width="42.13" x="-311.06500000000005" y="-855.055" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-11" connectable="0" parent="1" style="group" value="" vertex="1">
|
||||
<mxGeometry height="120" width="80" x="-1050" y="-330" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ftu1" parent="TAB8QF-LWpK9W7XexfLk-11" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="FTU" vertex="1">
|
||||
<mxGeometry height="40" width="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="poleSwitch1" parent="TAB8QF-LWpK9W7XexfLk-11" style="rounded=0;whiteSpace=wrap;html=1;" value="柱上开关" vertex="1">
|
||||
<mxGeometry height="60" width="80" y="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="connFtu1Switch" edge="1" parent="TAB8QF-LWpK9W7XexfLk-11" source="ftu1" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" target="poleSwitch1" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-12" connectable="0" parent="1" style="group" value="" vertex="1">
|
||||
<mxGeometry height="120" width="80" x="-950" y="-330" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ttu1" parent="TAB8QF-LWpK9W7XexfLk-12" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" value="TTU" vertex="1">
|
||||
<mxGeometry height="40" width="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="transformer1" parent="TAB8QF-LWpK9W7XexfLk-12" style="rounded=0;whiteSpace=wrap;html=1;" value="配电变压器" vertex="1">
|
||||
<mxGeometry height="60" width="80" y="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="connTtu1Trans" edge="1" parent="TAB8QF-LWpK9W7XexfLk-12" source="ttu1" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" target="transformer1" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-13" connectable="0" parent="1" style="group" value="" vertex="1">
|
||||
<mxGeometry height="120" width="80" x="-820" y="-330" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ftu2" parent="TAB8QF-LWpK9W7XexfLk-13" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="FTU" vertex="1">
|
||||
<mxGeometry height="40" width="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="poleSwitch2" parent="TAB8QF-LWpK9W7XexfLk-13" style="rounded=0;whiteSpace=wrap;html=1;" value="柱上开关" vertex="1">
|
||||
<mxGeometry height="60" width="80" y="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="connFtu2Switch" edge="1" parent="TAB8QF-LWpK9W7XexfLk-13" source="ftu2" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" target="poleSwitch2" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-14" connectable="0" parent="1" style="group" value="" vertex="1">
|
||||
<mxGeometry height="120" width="80" x="-697" y="-330" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="dtu1" parent="TAB8QF-LWpK9W7XexfLk-14" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" value="DTU" vertex="1">
|
||||
<mxGeometry height="40" width="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ringCab1" parent="TAB8QF-LWpK9W7XexfLk-14" style="rounded=0;whiteSpace=wrap;html=1;" value="环网柜" vertex="1">
|
||||
<mxGeometry height="60" width="80" y="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="connDtu1Cab" edge="1" parent="TAB8QF-LWpK9W7XexfLk-14" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="39" y="40" as="sourcePoint" />
|
||||
<mxPoint x="39" y="60" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-34" edge="1" parent="1" source="TAB8QF-LWpK9W7XexfLk-17" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontFamily=Helvetica;fontSize=12;fontColor=default;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" target="subStation2" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-17" parent="1" style="ellipse;whiteSpace=wrap;html=1;rounded=1;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=12;fontColor=default;fillColor=default;" value="<font style="font-size: 16px;">通信网(骨干层)</font>" vertex="1">
|
||||
<mxGeometry height="50" width="680" x="-1015" y="-620" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-19" connectable="0" parent="1" style="group" value="" vertex="1">
|
||||
<mxGeometry height="120" width="80" x="-586" y="-330" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="dtu2" parent="TAB8QF-LWpK9W7XexfLk-19" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" value="DTU" vertex="1">
|
||||
<mxGeometry height="40" width="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ringCab2" parent="TAB8QF-LWpK9W7XexfLk-19" style="rounded=0;whiteSpace=wrap;html=1;" value="环网柜" vertex="1">
|
||||
<mxGeometry height="60" width="80" y="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="connDtu2Cab" edge="1" parent="TAB8QF-LWpK9W7XexfLk-19" source="dtu2" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" target="ringCab2" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-20" connectable="0" parent="1" style="group" value="" vertex="1">
|
||||
<mxGeometry height="120" width="80" x="-450" y="-330" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="ftu3" parent="TAB8QF-LWpK9W7XexfLk-20" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" value="FTU" vertex="1">
|
||||
<mxGeometry height="40" width="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="poleSwitch3" parent="TAB8QF-LWpK9W7XexfLk-20" style="rounded=0;whiteSpace=wrap;html=1;" value="柱上开关" vertex="1">
|
||||
<mxGeometry height="60" width="80" y="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="connFtu3Switch" edge="1" parent="TAB8QF-LWpK9W7XexfLk-20" source="ftu3" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;" target="poleSwitch3" value="">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-25" edge="1" parent="1" source="TAB8QF-LWpK9W7XexfLk-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=12;fontColor=default;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" target="ftu1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="-1010" y="-390" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-21" parent="1" style="ellipse;whiteSpace=wrap;html=1;rounded=1;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=12;fontColor=default;fillColor=default;" value="<font style="font-size: 16px;">通信网(接入层)</font>" vertex="1">
|
||||
<mxGeometry height="40" width="230" x="-1000" y="-410" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-24" parent="1" style="ellipse;whiteSpace=wrap;html=1;rounded=1;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=12;fontColor=default;fillColor=default;" value="<font style="font-size: 16px;">通信网(接入层)</font>" vertex="1">
|
||||
<mxGeometry height="40" width="230" x="-650" y="-410" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-26" edge="1" parent="1" source="TAB8QF-LWpK9W7XexfLk-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=12;fontColor=default;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" target="ttu1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="-910" y="-370" />
|
||||
</Array>
|
||||
<mxPoint x="-847.5" y="-335" as="sourcePoint" />
|
||||
<mxPoint x="-852.5" y="-275" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-27" edge="1" parent="1" source="TAB8QF-LWpK9W7XexfLk-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=12;fontColor=default;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" target="ftu2">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="-775" y="-330" />
|
||||
</Array>
|
||||
<mxPoint x="-900" y="-360" as="sourcePoint" />
|
||||
<mxPoint x="-920" y="-320" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-28" edge="1" parent="1" source="TAB8QF-LWpK9W7XexfLk-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=12;fontColor=default;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" target="dtu1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="-657" y="-390" />
|
||||
</Array>
|
||||
<mxPoint x="-775" y="-360" as="sourcePoint" />
|
||||
<mxPoint x="-780" y="-300" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-29" edge="1" parent="1" source="TAB8QF-LWpK9W7XexfLk-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=12;fontColor=default;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" target="dtu2">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="-546" y="-370" />
|
||||
</Array>
|
||||
<mxPoint x="-653" y="-370" as="sourcePoint" />
|
||||
<mxPoint x="-660" y="-310" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-30" edge="1" parent="1" source="TAB8QF-LWpK9W7XexfLk-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fontFamily=Helvetica;fontSize=12;fontColor=default;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" target="ftu3">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="-410" y="-390" />
|
||||
</Array>
|
||||
<mxPoint x="-539" y="-360" as="sourcePoint" />
|
||||
<mxPoint x="-550" y="-320" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-31" parent="1" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.twoWayArrow;dy=0.61;dx=8.88;rounded=1;strokeColor=default;fontFamily=Helvetica;fontSize=12;fontColor=default;fillColor=default;rotation=90;" value="" vertex="1">
|
||||
<mxGeometry height="10" width="50" x="-905" y="-439" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-33" parent="1" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.twoWayArrow;dy=0.61;dx=8.88;rounded=1;strokeColor=default;fontFamily=Helvetica;fontSize=12;fontColor=default;fillColor=default;rotation=90;" value="" vertex="1">
|
||||
<mxGeometry height="10" width="50" x="-556" y="-440" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-36" edge="1" parent="1" source="TAB8QF-LWpK9W7XexfLk-17" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontFamily=Helvetica;fontSize=12;fontColor=default;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;exitX=1;exitY=1;exitDx=0;exitDy=0;" target="dtu3" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="-590" y="-540" as="sourcePoint" />
|
||||
<mxPoint x="-463" y="-480" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-35" edge="1" parent="1" source="TAB8QF-LWpK9W7XexfLk-17" style="edgeStyle=none;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;fontFamily=Helvetica;fontSize=12;fontColor=default;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;exitX=0.266;exitY=0.94;exitDx=0;exitDy=0;exitPerimeter=0;" target="subStation1" value="">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="-580" y="-540" as="sourcePoint" />
|
||||
<mxPoint x="-453" y="-480" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-37" parent="1" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.twoWayArrow;dy=0.61;dx=8.88;rounded=1;strokeColor=default;fontFamily=Helvetica;fontSize=12;fontColor=default;fillColor=default;rotation=90;" value="" vertex="1">
|
||||
<mxGeometry height="12" width="49.53" x="-699.75" y="-759.76" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="TAB8QF-LWpK9W7XexfLk-38" parent="1" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.twoWayArrow;dy=0.61;dx=8.88;rounded=1;strokeColor=default;fontFamily=Helvetica;fontSize=12;fontColor=default;fillColor=default;rotation=90;" value="" vertex="1">
|
||||
<mxGeometry height="12" width="49.53" x="-699.765" y="-649.995" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
145
src/data.h
Normal file
@@ -0,0 +1,145 @@
|
||||
#ifndef __DATA_H__
|
||||
#define __DATA_H__
|
||||
#include "types.h"
|
||||
|
||||
|
||||
// BCD码方式时标数据结构
|
||||
typedef struct
|
||||
{
|
||||
uint8_t byYear_L; // 年(低位)
|
||||
uint8_t byYear_H; // 年(高位) 默认为0x20
|
||||
uint8_t byMonth; // 月
|
||||
uint8_t byDay; // 日
|
||||
uint8_t byHour; // 时
|
||||
uint8_t byMinute; // 分
|
||||
uint8_t bySecond; // 秒
|
||||
uint8_t byMS_L; // 毫秒(低位)
|
||||
uint8_t byMS_H; // 毫秒(高位)
|
||||
uint8_t byWeek; // 星期
|
||||
uint8_t byRes[2]; // 备用字节(配齐4的整数倍)
|
||||
uint32_t dwRamScan; // 扫描内存片
|
||||
}tagTimeBCD,*tagPTimeBCD;
|
||||
|
||||
|
||||
// 板间控制信息结构体
|
||||
typedef struct
|
||||
{
|
||||
uint8_t bySamCnt[2]; // ARM核采样计数器(0:ARM核;1DSP核)
|
||||
uint8_t bySysLock; // 系统闭锁标记(0:正常;CN_FLAG_TRUE:异常)
|
||||
uint8_t bySysSig; // 系统信号标记(DB0:运行;DB1:自检异常;DB2:运行异常)
|
||||
uint32_t iFpgaCmp; // 中断频率比较寄存器补偿值
|
||||
}tagBoardCtrl;
|
||||
// 开出资源区结构(包括正/反码)
|
||||
typedef struct
|
||||
{
|
||||
uint32_t dwKOBuf[2];
|
||||
uint32_t dwKONot[2];
|
||||
}tagKOBuf;
|
||||
// CPU运行信息结构体
|
||||
typedef struct
|
||||
{
|
||||
uint32_t dwCPURun; // 上电运行标记
|
||||
uint32_t dwSysLock; // 系统闭锁标记(本核组件自检)
|
||||
uint32_t dwSysLockMerge; // 系统闭锁标记(汇总各板件)
|
||||
uint32_t dwSamCnt; // 中断计数器
|
||||
tagKOBuf tALLKOBuf; // 总开出状态数据区
|
||||
}tagCPURunInfo;
|
||||
// 模拟量向量(测量)
|
||||
typedef struct
|
||||
{
|
||||
int32_t iAmp; // 幅值(开方)
|
||||
uint16_t wAngle; // 相角
|
||||
uint16_t wRes; // 备用
|
||||
}tagVectorMea;
|
||||
|
||||
// 遥测量(遥测)
|
||||
typedef struct
|
||||
{
|
||||
uint16_t wAngle; // 相角
|
||||
float fValue4[4]; // 测量有效值依次存放4次
|
||||
int32_t iValue; // 最终显示上送值
|
||||
int32_t iValueBak; // 上次上送值,用于死区计算
|
||||
uint16_t wUpDate; // 更新标志(变化大于死区范围)
|
||||
uint16_t wIEC103Quality; // 103上送遥测品质
|
||||
uint16_t wIEC103YCValue; // 103上送遥测数值
|
||||
uint16_t wIEC103Inf; // 103上送inf
|
||||
uint16_t wIEC103YCClass; // 103上送等级
|
||||
}tagYCVecMea;
|
||||
// 谐波量(遥测)
|
||||
typedef struct
|
||||
{
|
||||
int32_t iReal; // 各次谐波的实际值
|
||||
uint16_t wRatio; // 各次谐波的与有效值的比值
|
||||
}tagHumWave; // 谐波结构
|
||||
// 双核间信息交互区结构
|
||||
typedef struct
|
||||
{
|
||||
uint32_t dwRamScan1; // 内存扫描点
|
||||
tagTimeBCD tTimeBCD; // 系统时间
|
||||
tagBoardCtrl tBoardCtrl[2]; // 板间控制信息结构体(0区:本板区 其他区:根据插槽号存储)
|
||||
uint32_t dwCalSoftFrFlag; // 测得新频率标志
|
||||
uint32_t dwFpgaCmpSam; // 中断频率比较寄存器补偿值(本板区)
|
||||
uint32_t dwFpgaCmpUse; // 中断频率比较寄存器补偿值(使用区=本板区+LVDS总线接收区)
|
||||
uint32_t dwRamScan2; // 内存扫描点
|
||||
uint16_t wFaultNumARM; // 系统故障序号(ARM主机使用;上电时从IIC读出)
|
||||
uint16_t wFaultNumDSP; // 系统故障序号(DSP主机使用;由录波组件累加)
|
||||
uint32_t dwWaveHandFlg; // 指向外部请求手动录波标志,0--无请求手动录波,CN_FLAG_TRUE--请求手动录波,手动录波响应后由录波组件清0
|
||||
uint32_t dwWaveStartFlg; // 录波已启动标记,0--未启动,CN_FLAG_TRUE--已启动
|
||||
uint32_t dwClrFaultNum; // 清除系统故障序号标志(CN_FLAG_TRUE--清除故障序号)
|
||||
uint32_t dwOpenDebugKO; // 开出DEBUG开放使能标志("CN_FLAG_TRUE"--DEBUG开放使能, 其它--DEBUG不开放使能)
|
||||
uint32_t dwCPUKI; // 上电遥信读取标志 0:上电状态,0x55:等待3个中断后读取开入完毕,0xAA:遥信初始化,0xBB 初始化结束。
|
||||
uint32_t dwGpsType; // GPS类型标志(=0x00无GPS =0x33IRIG =0x55分脉冲 =0xaa秒脉冲)
|
||||
uint16_t wCommFlag; //外通讯标志
|
||||
uint16_t wArmRunCnt; //ARM核运行计数
|
||||
uint8_t bFlagGetDrvTime;
|
||||
uint8_t bFlagCompareTime; // 第一次上电中断中置1,上电500ms后,比较软硬件时钟
|
||||
uint8_t SignKoFlag[16]; //线路1~16故障信号开出量
|
||||
uint32_t dwRamScan3; // 内存扫描点
|
||||
tagCPURunInfo tRunInfoARM; // ARM核运行信息
|
||||
tagCPURunInfo tRunInfoDSP; // DSP核运行信息
|
||||
uint32_t dwRamScan4; // 内存扫描点
|
||||
uint32_t dwBufKIHld [2]; // 开入量采样数据区(本板防抖区,按BIT存储)
|
||||
uint32_t dwBufKIMsg [2]; // 开入量采样数据区(本板报文区,按BIT存储)
|
||||
uint32_t dwBufKIUseBit [2]; // 开入量采样数据区(使用值,按BIT存储)
|
||||
uint32_t dwBufKIUseWord[2][2]; // 开入量采样数据区(DSP核)(使用值,按DWORD存储, 有开入--CN_FLAG_TRUE)
|
||||
uint32_t dwRamScan5; // 内存扫描点
|
||||
uint32_t dwSoftFRQ; // 软件测频结果(放大100倍)(DSP测频,ARM调频)
|
||||
uint32_t dwVecNum; // 需要计算的模拟量通道数<基波>
|
||||
uint32_t dwVecS2Num; // 需要计算的模拟量通道数<二次谐波>
|
||||
uint32_t dwVecS3Num; // 需要计算的模拟量通道数<二次谐波>
|
||||
uint32_t dwVecS5Num; // 需要计算的模拟量通道数<二次谐波>
|
||||
tagVectorMea tVectorMea[2][2]; // 模拟量向量(DSP核)(测量用)
|
||||
uint32_t dwRamScan6; // 扫描内存片
|
||||
tagYCVecMea tYCVecMea[2]; // 遥测量(DSP核)(遥测用)
|
||||
uint32_t dwRamScan7; // 扫描内存片
|
||||
tagHumWave tHumWave[2*(2+1)]; // 谐波量(DSP核)(遥测用)
|
||||
uint32_t dwYFBSHZ; // 遥控闭锁合闸
|
||||
uint32_t dwJLDataYM[128]; // 计量数据
|
||||
uint32_t dwHoldLED[32]; // 需保持点灯
|
||||
uint8_t byLedData[8];
|
||||
uint8_t byUlogFlag[14];
|
||||
uint8_t byTxFlag; // 通讯灯点灯标志
|
||||
uint8_t byTxgFlag[8]; // 通讯灯点灯标志
|
||||
uint32_t dwErrorNum;
|
||||
uint32_t dwWaveEnd;
|
||||
uint8_t byStartFlg[3];
|
||||
uint8_t byFHZ_Flag; // 分合闸标志
|
||||
uint8_t byHw_Flag; // 合位遥信用于点灯--20200319
|
||||
uint8_t byWcn_Flag; // 未储能遥信用于点灯--20200319
|
||||
|
||||
uint32_t dwFGFlag; // 复归开入状态
|
||||
uint32_t dwFAZBSFlag; // FA总闭锁状态
|
||||
uint32_t dwFAZBSFlag1; // FA总闭锁状态
|
||||
uint16_t wFZDBSFZ[8]; // 非遮断闭锁分闸
|
||||
uint16_t wCoeData[17];
|
||||
uint16_t wDspRunFlag;
|
||||
uint8_t byYXData[32]; // 共享遥信内容
|
||||
uint8_t bPhaserrFlag[3]; // 故障相别标志
|
||||
uint8_t SwitchO; // 继电器执行合闸操作 g_tShareData.SwitchO
|
||||
uint8_t SwitchT; // 继电器执行分闸操作 g_tShareData.SwitchT
|
||||
uint8_t byTestData[64];
|
||||
float fTestData[34];
|
||||
uint32_t dwRamScan8; // 扫描内存片
|
||||
}tagShareData;
|
||||
|
||||
#endif
|
||||