Hallo, ich bin gerade dabei ein fremdes BUS-System (Ältere CNC Anlage mit Mitsubishi Steuerung) zu decodieren. (Aufgenommen mit Saleae Logic, Kopie angehängt https://www.saleae.com/). Das ist ein reine Asynchrone Serielle Übertragung auf RS-422 Basis, also insgesamt 2 Datenleitung. Ich habe bis jetzt folgendes raus bekommen: 1. Es ist eine NRZ Datenübertragung, ähnlich wie UART, aber ohne START und STOP Bits, nur reine 8 Datenbits. 2. 1 Datenpaket besteht aus (Alle Daten sind 0 Byte): Preamble 3 Byte + Daten 194 Byte + CRC 2Byte + Preamble 3 Byte = 202 Byte = 1616 Bit 3. nur bei Preamble: Max Länge H-Pegel oder L-Pegel 7Bit nacheinander. 4. nur bei Daten und CRC: Max Länge H-Pegel oder L-Pegel 6Bit nacheinander. 4.1 Kommen irgendwo (bei Daten oder CRC) 6Bit nacheinander egal low oder high Pegel, wird das ganze Frame(Datenpaket) um ein 1Bit verlängert. Beispiel, es kommen 5x (6Bit) nacheinander: ...xxxxx01100000011111100000011111100101000111111xxxx... Das Paket ist dann 1616 Bit + 5 Bit = 1621Bit. Dabei bleiben die beiden Preamble und CRC auf seinen Plätzen (werden nicht verschoben). Alle Pakete die ich bis jetzt gesehen haben variieren von 1616 Bit bis 1622 Bit. Diese Bitverlängerung hat was mit Preamble zutun, es dürfen in Daten keine 7 Bits nacheinander kommen! Oder? 5. Die Datenübertagung müsste NRZ-S sein, bin mir fats 100% sicher: https://de.wikipedia.org/wiki/Non_Return_to_Zero Preamble ist ausgerechnet (nach NRZ-S) immer: 01111110011111101111110 (7E7E7E). Die Frage ist, hat schon einer sowas gesehen oder realisiert, mir gehts erst um die Bitverlängerung, wie wird das gemacht? Die 2 Frage wäre die CRC Berechnung, da muss ich aber noch Daten dekodieren. 1. Paket habe ich schon mal (Mit NRZ-S ausgerechnet) :-) Preamble 3x7E (wird aber denke ich nicht mitberechnet) + Daten 194x 0x00 + CRC 0x7D34 + Preamble 3x7E (wird aber denke ich nicht mitberechnet). Gruß Georg
Georg schrieb: > 5. Die Datenübertagung müsste NRZ-S sein, bin mir fats 100% sicher: > https://de.wikipedia.org/wiki/Non_Return_to_Zero > Preamble ist ausgerechnet (nach NRZ-S) immer: 01111110011111101111110 > (7E7E7E). Oder bin ich ganz falsch und es ist ganz was anderes, MAnchester ist es aber nicht, NRZ-S passt da am besten. nur diese Bitverlängerung bei 6 gleichen Bits, das macht mich "verrückt".
Bei dem Übertragungsprotokoll handelt es sich offenbar um eine Anlehnung an das bitweise(*) HDLC. Dieses verwendet auch sog. Flags am Anfang und Ende eines Pakets, die allerdings 01111110 lauten und nur einfach auftreten. Das, was Du als Bitverlängerung beschreibst, ist allgemein unter der Bezeichnung Bitstuffing bzw. Bitstuffing bekannt. Dies wird nicht nur bei HDLC, sondern auch z.B. bei CAN und Ethernet verwendet. https://de.wikipedia.org/wiki/Bitstopfen Zu (*): Es gibt neben dem o.a. bitweisen HDLC auch noch das byteweise HDLC, welches z.B. bei PPP und PPPoE eingesetzt wird, also TCP/IP über Modem/ISDN bzw. DSL. PPP ist allerdings nicht auf IP-basierte Protokolle beschränkt, sondern eignet sich auch dafür, andere Protokolle wie z.B. PAP, CHAP, IPX oder Appletalk zu übertragen.
:
Bearbeitet durch User
Andreas S. schrieb: > Bei dem Übertragungsprotokoll handelt es sich offenbar um eine Anlehnung > an das bitweise(*) HDLC. Dieses verwendet auch sog. Flags am Anfang und > Ende eines Pakets, die allerdings 01111110 lauten und nur einfach > auftreten. Das, was Du als Bitverlängerung beschreibst, ist allgemein > unter der Bezeichnung Bitstuffing bzw. Bitstuffing bekannt. Dies wird > nicht nur bei HDLC, sondern auch z.B. bei CAN und Ethernet verwendet. Da kommt der Stopfen her :-), sehr schön, da werde ich mich ein wenig einlesen, Danke. Gruß Georg
Muss ja eigentlich eine verbreitete Industrieschnittstelle sein. "Profibus" evtl.?
Joe F. schrieb: > "Profibus" evtl.? glaube ich nicht... Das ist was eigenes von Mitsubishi, es gibt nicht mal eine Pinbezeichnung vom Stecker (Computer->Servo). Gruß Georg
Ich bin mir fast sicher das da dieses IC verbaut ist, das Teil kann alles: xMR15-13 Data Format 000 NRZ 001 NRZB 010 NRZI-Mark 011 NRZI-Space 100 Bi-phase-Mark 101 Bi-phase-Space 110 Bi-phase-Level 111 Differential Biphase-Level 0000 Asynchronous Asynchronous 0001 — External Sync 0010 Isochronous Isochronous 0100 Monosync Monosync 0101 Bisync Bisync 0110 HDLC/SDLC HDLC/SDLC 0111 Transp. Bisync Transp. Bisync 1000 Nine-Bit Nine-Bit 1001 802.3 (Ethernet) 802.3 (Ethernet) 1010 — — 1011 — — 1100 Slaved Monosync — 1101 — — 1110 HDLC/SDLC Loop — 1111 — — Das ist das was ich brauche :-)
Es passt jetzt alles, NRZI-Space mit Bitstuffing, und der Rest, es geht jetzt alles auf, nur nicht die Checksumme, komme einfach nicht weiter, CRC von Zilog und Konsorten hauen nicht hin... habe alle bekannten Polynome durch probiert: Paket besteht: 3x 8Bit Flag, 194x 8Bit Data, 2x 8Bit CRC, 3x 8Bit Flag. Flags und CRC wird nicht einberechnet. 1. Paket: Flag (3 Byte):7E7E7E Data (194 Byte): 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000 CRC (2 Byte):7D34 Flag (3 Byte):7E7E7E 2. Paket: Flag (3 Byte):7E7E7E Data (194 Byte): FB808040000060004020607FFFFF80000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000 CRC (2 Byte):4C1A Flag (3 Byte):7E7E7E 2. Paket: Flag (3 Byte):7E7E7E Data (194 Byte): A50100480000FF0F2FC80000000000000000000000000000000000C00000000000000000 00000000000000000000000000008048000000507AD90000000000000000000000000000 000000C00000000000000000000000000000000000000000000040480000FF9FF5F30000 000000000000000000000000000000C00000000000000000000000000000000000000000 0000C04A0000000000000000000000000000F2FF00000000000000800000840000000000 0000000000000000000000000000 CRC (2 Byte):CF55 Flag (3 Byte):7E7E7E Irgend einer Idee? SRP16 Rocksoft habe schon Probiert, ein "dreier" gabs bis jetzt nicht
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.