Serielles Kommunikationsprotokoll DPM
(Dilbertian-Protokoll geändert)
Notieren Sie den Protokollnamen
Der name “Dilbertiano” kommt von der ersten Version dieses Protokolls, Wir nannten “IDP invertiert Dilbertian Protokoll” (2010), wo Nullen vertreten waren, mit einer Zelle “Schließen” und mit einer Zelle “groß” (“0” dünn und “1” Fett – wie pro die folgende Vignette kommt aus “Dilbert” von Scott Adams – www.Dilbert.com).
Weil ein neues Protokoll ?
Theremino das System soll eine einfache Input-Output-System für PC, billig und einfach zu bedienen. Machen es einfach, die Verwendung der automatischen Nummerierung sind notwendig und die Anerkennung von ihren Typen, zur Vereinfachung und minimieren die Kosten der Links ist notwendig, um auf dem Drahtseil nur kommunizieren.
Es ist ein ähnliches Protokoll mussten wir es schreiben. Die aktuelle Version sammelt das Beste aus vielen Jahren des Experimentierens und der Forschung.
Dieses Dokument im PDF-Format herunterladen:
DPM_Protocol_2015_ENG.PDF
DPM_Protocol_2015_ITA.PDF
Funktionen
- Bidirektionale serielle Kommunikation über ein einziges Kabel.
- Automatische Konfiguration.
- Automatische Erkennung der angeschlossenen Geräte.
- Anzahl der Geräte reicht von 1 in 200.
- Anzahl der gesendeten und empfangenen Bytes hängt von der Art des Geräts.
- Übertragungsgeschwindigkeit bis zu 4 Zum Übertragen von großen Datenmengen mit kurzen Kabeln Megabit/sek..
- Übertragungsgeschwindigkeit bis zu 100 Kbit/sec bei langen Leitungen (bis zu 10 Km).
- Hohe Effizienz der Kommunikation (Von 10 in 20 Mal größer als in Dose).
Elektrische Rollläden
Die Übertragung erfolgt auf einem einzigen Draht, aber Sie brauchen einen Verweis Masse und Versorgungsspannung, dorthin, wo die Drähte normalerweise drei.
Jedes Gerät, das DPM unterstützt müssen eine Eingangsbuchse (mit dem Master) und ein Ausgang an nachgeschaltete Geräte (Sklaven)
Die Anschlüsse sind normalerweise vom verwendet. 3 Poli, mit Abstand der 2.54 mm.
Über die Mitteilung der hätte Kette einen Meister (Versorgung mit Strom und timing) und eine Reihe von Geräten in Kaskade (als Slave).
Ist die Spannung, die der Master Online bietet 5 V, mit der gleichen Toleranz und mit der gleichen Maximalstrom von 5 V das ausscheidende vom USB-Anschluss.
Die maximale Stromstärke, die der Master bietet begrenzt die Anzahl und Art von Geräten, die angeschlossen werden können. Dieser Strom, ist in der Regel 250 aber, und kann erhöht werden, bis zu 500 aber. Es durchgehen würde überschreiten die Kapazität des USB ’ und Besonderheiten zu den Anschlusssteckern verhängen würde.
Die maximale Anzahl von anschließbare Geräte wird durch folgenden Faktoren begrenzt.:
– Die maximale Stromstärke, die der “Master” bieten.
– Die maximale Anzahl der Bytes, die die Linie trägt die Zykluszeit von Reis-Übertragung.
Sowohl die “Master” die die “Sklave” in der Zeile mit einem Dämpfungsfaktor Widerstand verbunden sind, Es fungiert auch als ein Tiefpass, Radio-Interferenz und Überspannung Schutz. Der Wert dieses Widerstandes ist in der Regel aus 33 in 330 Ohm
Sendeformat
Mithilfe eines Non Return to Zero-Formats (NRZ) Standard.
Standardformat = 8, N, 1
– 1 bisschen zu starten
– 8 Datenbits
– No-Parity
– 1 Stopp-bit
Ebenen der Datenleitung “Com-Line”
Die Linie beiseite zu Ebene hoch (3.3 V)
Das signal “1” wird durch gekennzeichnet 3.3 V
Das signal “0” wird durch gekennzeichnet 0 V
Mal wiederholen und Durchsatz
Übertragungsgeschwindigkeit
Mit niedrigen Drehzahlen wenn die Länge, und so die Kapazität des die Anschlusskabel, sind hoch. Wenn die Entfernungen kurz und hoch sind kann Geschwindigkeit verwendet werden, um mit einer großen Anzahl von Geräten zu kommunizieren (oder Kommunikation mit Geräten, die eine große Anzahl von Bytes benötigen) Sind etablierte benannte Geschwindigkeiten von “1” (1 k/s) bis zu “12” (4 Megabit pro Sekunde)
Maximale Anzahl von bytes
Abhängig von der Baud-Rate ist die maximale Anzahl der Bytes, die übertragen werden kann in der folgenden Tabelle aufgeführt..
Mal, Entfernungen und Anzahl der bytes
Geschwindigkeit
|
Bitzeit
|
bisschen
für
Sekunde
|
Byte
jeder 15MS |
Byte jedes
30MS |
Max. Distanz
|
Max. Tragkraft
|
Sklaven
Max
Anzahl
|
1
|
1 MS
|
1K
|
1
|
3
|
10 Km
|
1 UF
|
3
|
2
|
500 uns
|
2K
|
3
|
6
|
5 Km
|
500 NF
|
6
|
3
|
200 uns
|
5K
|
4
|
8
|
2 Km
|
200 NF
|
15
|
4
|
100 uns
|
10K
|
15
|
30
|
1 Km
|
100 NF
|
30
|
5
|
50 uns
|
20K
|
30
|
60
|
500 m
|
50 NF
|
60
|
6
|
20 uns
|
50K
|
40
|
80
|
200 m
|
20 NF
|
150
|
7
|
10 uns
|
100K
|
150
|
300
|
100 m
|
10 NF
|
160
|
8
|
5 uns
|
200K
|
300
|
600
|
50 m
|
5 NF
|
80
|
9
|
2 uns
|
500K
|
400
|
800
|
20 m
|
2 NF
|
32
|
10
|
1 uns
|
1M
|
1500
|
3000
|
10 m
|
1 NF
|
16
|
11
|
500 NS
|
2M
|
3000
|
6000
|
5 m
|
500 pf
|
8
|
12
|
250_nS
|
4M
|
6000
|
12000
|
2.5 m
|
250 pf
|
4
|
Alle Geräte müssen zumindest die Geschwindigkeit implementieren. “7” Das ist die Standardgeschwindigkeit betrachtet.. Möchten Sie ein anderes Tempo aus der “7” alle Geräte in der Kette müssen unterstützt werden.
Die “maximale Entfernung” hängt von den Eigenschaften von Kabeln, die Tabellenwerte werden für ein geschirmtes Kabel RG58 aus berechnet. 50 Ohm mit Fähigkeit, 100pF pro meter.
At-niedrige Geschwindigkeiten die Anzahl der “Sklaven” ist begrenzt durch die maximale Anzahl der Bytes, die übertragen werden können 30 Millisekunden. (jeder Slave wird mindestens ein Byte verwendet, und Sie behaupten, eine Wiederholung schnell genug, fließende Bewegungen zu machen)
Mit hoher Geschwindigkeit, die Anzahl der “Sklaven” ist durch die maximale Kapazität begrenzt., jede “Sklave” Fügt eine Kapazität von ca. 40..60 PF und reduziert den maximalen Abstand von ca. 50 cm.
Die Kapazität wurde auf der Grundlage 30pF pro berechnet. “Sklave” sowie andere 20pF an ein Verbindungskabel von 20 cm und andere 10pF die zusätzlichen Resistenzen auf Rechnung “bilaterale Schalter” (insgesamt: 60pf)
Maximale Kabellänge der Kommunikation als die Versorgungsstrom und Widerstand pro meter
Kabel Typ —>
Maximaler Strom
( Spitzenstrom )
|
H1500/H1000/H500/H155/RG11
20 Milli-Ohm
oder weniger
pro meter
|
RG58 /Rg59u/H155 /
NET-Kabel
über
50 Milli-Ohm
pro meter
|
Rg59/RG6 /Telefon verdreht Draht /
NET-Kabel
über
100 Milli-Ohm
pro meter
|
10 aber | 1 Km | 400 m | 200 m |
20 aber | 500 m | 200 m | 100 m |
50 aber | 200 m | 80 m | 40 m |
80 aber | 125 m | 50 m | 25 m |
100 aber | 100 m | 40 m | 20 m |
200 aber | 50 m | 20 m | 10 m |
400 aber | 25 m | 10 m | 5 m |
500 aber | 20 m | 8 m | 4 m |
800 aber | 12.5 m | 5 m | 2.5 m |
1 In | 10 m | 4 m | 2 m |
Bei der Berechnung der Entfernung berücksichtigen wir, die den Spannungsabfall am Boden, nicht überschreitet 200 MV. Der Spannungsabfall am Netzkabel, verursacht keine Übertragungsfehler, Es kann auch wesentlich höher sein (die 5 V kann nach unten zu fallen. 3.3 V ohne Probleme schaffen) Bei geschirmten Kabeln am Boden ist der Bildschirm, Das hat in der Regel weniger Widerstand als gemeldet, So wird der Abstand größer sein..
Kabel-Kapazität
Die Werte der “maximale Länge” in der obigen Tabelle angegebenen gelten nur für Anschlusskabel mit einer Kapazität von ca. 100 PF pro meter. Die folgende Tabelle zeigt die Korrekturen für die am häufigsten verwendeten Kabel angewendet werden.
Kabel
|
Externe
Durchmesser
( mm )
|
Impedanz
( Ohm )
|
Kapazität
(PF/Mt.)
|
Widerstand
(Milliohm
/ Zähler)
|
Max Länge Korrektor
|
H1500
|
15
|
50
|
80
|
4
|
x 1.25
|
H1000
|
10.3
|
50
|
80
|
11
|
x 1.25
|
Rg213
|
10.3
|
50
|
100
|
|
–
|
H500
|
9.8
|
50
|
82
|
15
|
x 1.22
|
H155
|
5.8
|
50
|
82
|
32
|
x 1.22
|
Rg8
|
10
|
52
|
90
|
|
–
|
Rg11 (TV)
|
10.3
|
75
|
60
|
21
|
x 1.7
|
RG59 (TV)
|
6.15
|
75
|
67
|
159
|
x 1.5
|
RG6_(Sat-TV)
|
6.8
|
75
|
51
|
100
|
x 2.0
|
RG56/In _(TV)
|
6.9
|
75
|
53
|
|
x 2.0
|
RG59/U _(TV)
|
4.5
|
75
|
53
|
45
|
x 2.0
|
RG58
|
5.2
|
50
|
100
|
53
|
–
|
Rg142
|
4.95
|
50
|
96
|
|
–
|
RG174
|
2.8
|
50
|
100
|
|
–
|
Rg178
|
1.85
|
50
|
95
|
|
–
|
Rg179
|
2.55
|
75
|
64
|
|
x 1.5
|
RG187
|
2.7
|
75
|
65
|
|
x 1.5
|
Rg188
|
2.7
|
50
|
95
|
|
–
|
Rg196
|
1.9
|
50
|
93
|
|
–
|
Rg316
|
2.5
|
50
|
95
|
|
–
|
NET-Kabel
|
|
|
min 50
Max 130
|
min 60
Max 200
|
x 2.0
x 0.7
|
PC-Audio-Kabel
|
|
|
min 120
Max 300
|
min 500
Max 3000
|
x 0.8
x 0.5
|
Mikrofonie
Kabel
|
|
|
min 60
Max 300
|
|
x 1.7
x 0.3
|
Telefon verdreht-Draht
|
|
|
50
|
100
|
x 2.0
|
Es gibt auch niedriger Kapazität Kabel (wenig gebrauchte und schwer zu finden):
- Rg62 – 93 Ohm – 44 PF/mt
- RG71 – 93 Ohm – 44 PF/mt
- Rg210 – 93 Ohm – 44 PF/mt
- RG63 – 125 Ohm – 33PF/mt
- RG114 – 185 Ohm – 27PF/mt
Die Fähigkeit eines unbekannten Kabels Messen:
- Bereiten Sie den perfekten enthäuten Geschirmtes Kabel und isolierte zentrale Ausrichtung beibehalten.
- Messen Sie zwischen zentralen und äußeren Schild mit einem Meter oder Kapazitätsmeter.
- Zur Verbesserung der Messgenauigkeit, Verwenden Sie fünf oder zehn Meter Kabel.
- Teilen Sie den Wert der Picofarads gemessen an der Anzahl der Meter Kabel.
Arten von Geräten
Die Geräte sind mit einer Reihe von gekennzeichnet. 0 in 199 Ihr "Typ" identifiziert.
In die Phase der Anerkennung und Nummerierung jedes Gerät identifiziert sich mit diesem "Typ".
Zur Zeit sind folgende Geräte definiert:
Gerätetyp
|
Geschwindigkeit
min
|
Geschwindigkeit max
|
In heraus Pins
|
Macht
|
Name
|
0
|
Spezielle “benutzerdefinierte” Typ
|
||||
1
|
1
|
12
|
1
|
12 aber
|
Kapazitiver Sensor
Hallo Qualität
|
2
|
1
|
12
|
10
|
InOut Servo
|
|
3
|
1
|
12
|
12
|
InOut Generic
|
|
4
|
1
|
12
|
12
|
InOut
|
|
5
|
6
|
Virtueller Master-Pins
(erste version) |
|||
8
|
10
|
Virtueller Master-Pins – V2
|
|||
9 | 12 | Virtueller Master-Pins – V4 | |||
255 | Unbekannt |
Maximale Anzahl der Geräte
Die maximale Anzahl von anschließbare Geräte eingeschränkt durch:
– die maximale Anzahl der Bytes, die abhängig von der gewählten Geschwindigkeit übertragen werden können.
– die maximale Stromstärke, die der "Meister" bieten können (normalerweise 500 aber)
– die maximale Anzahl der Geräte, unterstützt durch das Protokoll ist 200 (Von 0 in 199)
Typen von pin
Die Pins sind mit einer Reihe von gekennzeichnet. 0 in 255 identifizieren ihre "PinType".
Ausgabetypen Pin
Ausgabepin
Typ
|
Name
|
Master Slave
Byte
|
Slave zum Master
Byte
|
0
|
NICHT VERWENDETE
|
0
|
0
|
1
|
DIG_OUT
|
1
|
0
|
2
|
PWM_8
|
1
|
0
|
3
|
PWM_16
|
2
|
0
|
4
|
SERVO_8
|
1
|
0
|
5
|
SERVO_16
|
2
|
0
|
6 | SCHRITTMOTOREN | 4 | 0 |
7 | PWM_FAST | 5 | 0 |
Eingabe Pin-Typen
Filtereingang
Typ
|
Name
|
Master Slave
Byte
|
Slave zum Master
Byte
|
129
|
DIG_IN
|
0
|
1
|
130
|
DIG_IN_PU
|
0
|
1
|
131
|
ADC_8
|
0
|
1
|
132
|
ADC_16
|
0
|
2
|
133
|
CAP_8
|
0
|
1
|
134
|
CAP_16
|
0
|
2
|
135
|
RES_8
|
0
|
1
|
136
|
RES_16
|
0
|
2
|
140
|
ZÄHLER
|
0
|
2
|
141
|
COUNTER_PU
|
0
|
2
|
142
|
FAST_COUNTER
|
0
|
2
|
143
|
FAST_COUNTER_PU
|
0
|
2
|
144
|
PERIODE
|
0
|
4
|
145
|
PERIOD_PU
|
0
|
4
|
146
|
SLOW_PERIOD
|
0
|
4
|
147
|
SLOW_PERIOD_PU
|
0
|
4
|
150
|
USOUND_SENSOR
|
0
|
2
|
160
|
CAP_SENSOR
|
0
|
3
|
165
|
STEPPER_DIR
|
0
|
4
|
180
|
ENCODER_A
|
0
|
2
|
181
|
ENCODER_A_PU
|
0
|
2
|
182
|
ENCODER_B
|
0
|
0
|
183
|
ENCODER_B_PU
|
0
|
0
|
175
|
ADC_24
|
0
|
1
|
176
|
ADC_24_DIN
|
0
|
0
|
177
|
ADC_24_DOUT
|
0
|
0
|
Kommunikation zwischen Master und Slaves (serielle Schnittstelle)
Erste byte | Art der Übermittlung | Übertragung | Empfang |
255 (*4) | Spezial erweitert (für zukünftige Erweiterungen) |
1 Byte (Erweiterung) >>>>> Siehe die Tabelle der erweiterten Verben <<<<< |
— |
254 (*1) | RecogStart Die frühzeitige Erkennung Nummerierung und |
1 Byte (Daten-Byte-Zahl = 0) 1 Byte (CRC von Cmd / 0) |
— |
253 (*2) | Schwanzspitze Geben Sie Sequenznummer und die Anforderung des Typs |
1 Byte (Daten-Byte-Zahl = 1) 1 Byte (Von 0 in 199) 1 Byte (CRC Cmd/Nbytes/Typ) |
1 Byte ( Typ ) 1 Byte ( CRC ) |
251 (*3) | FastDataExchange Schnellen Datenaustausch. |
1 Byte (Daten-Byte-Zahl = 0) 1 Byte (CRC Cmd/0) Von 0 in 60 Datenbytes |
Von 0 in 63 Datenbytes |
249 (*4) | SetupSlavePins Geben Sie Einstellungen für die ein pin “Sklave” |
1 Byte (Slave-index) 1 Byte (Anzahl der Datenbytes) NN-Byte (PinTypes: 1 Byte pro pin) 1 Byte (CRC von Cmd/SlaveId/usw...) |
1 Byte (Slave-index) 1 Byte (CRC für bytes zurück) |
248 (*4) | SetMasterName Geben Sie den Namen der “Meister” |
NN-Byte (Zeichen des Namens durch Null beendet) | — |
247 (*4) | GetMasterName Lesen den Namen der “Meister” |
— | NN-Byte (Zeichen des Namen von Null beendet) |
246 (*4) | SendValuesToSlave Senden “n” Byte ein Sklave “m” (Max 56 Byte) |
1 Byte (Slave-index) 1 Byte (Anzahl der bytes) Byte 1 . . . Byte-n 1 Byte (CRC Cmd/SlaveId/nBytes/n) |
1 Byte (Slave-index) 1 Byte (CRC für bytes zurück) |
245 (*4) | GetValuesFromSlave Antrag auf “n” Bytes, die Sklavin “m” (Max 56 Byte) |
1 Byte (Slave-index) 1 Byte (Anzahl der bytes) 1 Byte (CRC von Cmd/SlaveId/nBytes) |
Byte1 . . Byte-n 1 Byte (Slave-index) 1 Byte (CRC auf n + 1 vorherige byte) |
244 (*4) | SendBytesToSlave Senden “n” Bytes, die Sklavin “m” (Max 56 Byte) |
1 Byte (Slave-index) 1 Byte (Anzahl der bytes) Byte 1 . . . Byte-n 1 Byte (CRC Cmd/SlaveId/nBytes/n) |
1 Byte ( Slave-index ) 1 Byte ( CRC ) auf bytes zurück |
243 (*4) | GetBytesFromSlave Antrag auf “n” Bytes, die Sklavin “m” (Max 56 Byte) |
1 Byte (Slave-index) 1 Byte (Anzahl der bytes) 1 Byte (CRC von Cmd/SlaveId/nBytes) |
Byte 1 . . . Byte-n 1 Byte (Slave-index) 1 Byte ( CRC ) über n + 1 vorherige byte |
199 (*5) | SetSpeed | 1 Byte (Comm. Geschwindigkeit) 1 Byte (CRC auf Cmd/Komm.) |
— |
0 | Keine Aktion |
(*1) Service-Befehle.
(*2) Der Befehl dient nur der Kapitän und die Sklaven Schwanzspitze während der Erkennung.
(*3) Schnelle Kommunikation – der Meister tauscht die Werte alle Sklaven mit nur einem USB-Exchange
(*4) Kommunikation-Befehle an den einzelnen slave
(*5) Spezielle Befehle
SendValuesToSlave sendet die Werte an den Filterausgang eines Sklaven (Physischen Formen auf dem Master oder virtuellen Sklaven)
GetValuesFromSlave liest die Werte aus der Input-Pin eines Sklaven (Physischen Formen auf dem Master oder virtuellen Sklaven)
SendBytesToSlave generische Byte senden (Konfigurationsbeispiel), in Richtung eines Sklaven (Physischen Formen auf dem Master oder virtuellen Sklaven)
GetBytesFromSlave recht generisch Byte (zum Beispiel des Staates), ein Sklave (Physischen Formen auf dem Master oder virtuellen Sklaven)
Alle Befehle haben Codes aus 200 in 255, um zu verhindern, im Falle von Störungen, IDs und Sklave-Typen (Von 0 in 199) könnte als Befehl interpretiert werden. (SetSpeed zählt nicht, da es nie hinunter die serielle Schnittstelle, sondern nur durch gesendet wurde ’ HAL, mit dem Master, über USB)
Kommunikation zwischen Host-Computer und Master (USB)
Da der Befehle “Host” Verso “Master”
Befehlsname | ID USB_TxData[0] |
PARAMETER USB_TxData[1 bis n] |
RecogStart | CommandID, | Nbytes |
FastDataExchange | CommandID, | Von 0 An 60 Datenbytes |
SetupSlavePins | CommandID, | SlaveId, Nbytes |
SetMasterName | CommandID, | MasterName (NULL-terminierte) |
GetMasterName | CommandID, | – |
SendValuesToSlave | CommandID, | SlaveId, Nbytes, Byte1….ByteN |
GetValuesFromSlave | CommandID, | SlaveId, Nbytes |
SendBytesToSlave | CommandID, | SlaveId, Nbytes, Byte1….ByteN |
GetBytesFromSlave | CommandID, | SlaveId, Nbytes |
SetSpeed | CommandID, | CommSpeed |
Antworten da “Master” Verso “Host”
Befehlsname | ANTWORT USB_RxData[0] |
RÜCKGABEWERTE USB_RxData[1 bis n] |
RecogStart | 0 = OK | Nslaves, Sklave Typ1 … Sklave-Typ N |
FastDataExchange | 0 = OK | Von 0 An 63 Datenbytes |
SetupSlavePins | 0 = OK | – |
SetMasterName | 0 = OK | – |
GetMasterName | 0 = OK | Master-Name (NULL-terminierte) |
SendValuesToSlave | 0 = OK | – |
GetValuesFromSlave | 0 = OK | Byte 1 … Byte N |
SendBytesToSlave | 0 = OK | – |
GetBytesFromSlave | 0 = OK | Byte 1 … Byte N |
SetSpeed | 0 = OK | – |
Die Nullstellung der USB-Puffer angibt, ob der Befehl ausgeführt wurde, aus “Master” erfolgreich.
Berechnung der CRC
Alle CRC verwendet werden über eine bestimmte Anzahl von aufeinander folgenden Bytes berechnet und das CRC-Ergebnis ist ein byte. CRC-Berechnung mit einem Algorithmus, basierend auf "Longitudinal Redundancy Check".
Longitudinal Redundanzprüfung
Dim CRC as Byte
CRC = 0
For each byte b
CRC = CRC Xor b
Next
"Konflikte" zwischen weltlichen Sequenzen zu vermeiden ( Zum Beispiel 0000 = 1111 oder 123 = 321 ) und einfache Sequenzen, die gültigen CRC produzieren ( Zum Beispiel 0000 mit CRC = 0 ) die oben genannte Methode ist mit eine Permutation geändert..
Das CRC Berechnung ergibt sich leistungsfähig und extrem einfach.
Berechnung der CRC in diesem Protokoll benutzt
Dim CRC as Byte
CRC = 0
For each byte b
CRC = CRC Xor b
CRC = CRC + 1
Next
Einstellung der Baudrate
Entscheiden Sie sich für eine Baudrate als Standard verwenden, dann sollte der "Meister" an alle Geräte in der Kette die neue Geschwindigkeit kommunizieren.
Diese Einstellung sollte möglich sein, schon vor der Herstellung einer Schleife-Geräteerkennung und muss möglich sein, auch mit sehr langen Leitungen. Deshalb gibt es ein spezielles Kommando, das nun angezeigt wird.
1 – Der Meister behält der high Line für 50 MS
2 – Die Sklaven sind definitiv zur ein Zeichen abgelegt.
3 – Der Master generiert eine Pause (niedrigen Level Linie 12 etwas mit minimaler Geschwindigkeit
4 – Der Meister gibt ein 55 Zeichen (01010101) die gewünschte Baudrate
5 – Alle Sklaven ableiten die Baud-Rate aus dieser bytes (Auto-baud)
6 – Der Master sendet ein Byte, die angibt, die "Geschwindigkeit" (Von 1 in 12)
7 – Der Master sendet ein Byte CRC berechnet auf zwei bytes (Cmd/Geschwindigkeit)
8 – Wenn der Slave ist ändert ein Fehler seine Geschwindigkeit sich nicht
Überprüfen Sie die Baud-rate
Wenn Sie eine zu hohe Geschwindigkeit festlegen für Übertragungsleitung verwendet einige Geräte in der Kette können möglicherweise nicht um die Einstellung zu unterstützen und beim Übertragen von Daten können Fehler auftreten.
Wenn Übertragungsfehler NULL oder kleiner sind als die 0.1% dann gilt das Geschwindigkeit-set.
Anerkennung und Nummerierung
1 – Der Master-Ausgänge an den Slave ganzen Folge von "Speed"-Einstellung, um sicherzustellen, dass alle mit der gleichen Geschwindigkeit kommunizieren.
2 – Befehle zum übermittelt Master nicht. 50 Millisekunden.
3 – An dieser Stelle alle slaves sollte warten Sie auf einen Befehl.
4 – Der Meister gibt einen Code "254″ (RecogStart).
5 – Die Sklaven, die sie setzen die schwachen-Pull-up (100-400 UA) auf die ein-/ Ausgabe und öffnen den Ausgangsanschluss nachgeschalteten Geräte. Sie reagieren nicht mehr auf alle Befehle außer "253″ (Schwanzspitze).
6 – Der Meister gibt einen Code "253″ (Typ-Anforderung) und dann ein Byte mit der Zahl 0″, das erste Gerät in der Kette trifft ein Byte mit seinen Typ, Entfernt den Pull-up, Verbinden Sie mit der nachgeschaltete Slave und reagiert nicht auf Befehle.
7 – Der Meister gibt einen Code "253″ (Typ-Anforderung) und dann ein Byte mit der Zahl 1″, Das zweite Gerät in der Kette trifft ein Byte mit seinen Typ, Entfernt den Pull-up, Verbinden Sie mit der nachgeschaltete Slave und reagiert nicht auf Befehle.
8 – Der Meister gibt einen Code "253″ (Typ-Anforderung) und dann ein Byte mit der Nummer "2″,
9 – Der Meister gibt gegenüber den Sklaven alle Einstellung-Sequenz "Speed", zeigt, dass alle Sklaven in der normalen Kommunikationsmodus.
10 – Der Meister weist den Host (PC) über USB-Slave erkannt, Anzahl und Art der einzelnen.
Roberto_Cena & Livio_Cicala (2010 – 2016)