pete1612
12.01.2013, 22:53
Hallo!
Ich habe mir das AVR-NET-IO-Board von Pollin besorgt.
Natürlich habe ich das, weil ich mich in die Ethernet-Technik einarbeiten möchte.
Erstes Ziel sollte es sein, eine Verbindung mit dem Board herzustellen. Dazu soll noch kein Webserver oder der gleichen auf dem Mega32 implementiert werden, sondern
schlichtweg ein 3-Way-Handshake stattfinden.
Also jetzt eine kurze Einleitung in meine Welt, damit Ihr so ungefähr bescheid wisst und mir evtl weiterhelfen könnt:
Ich habe ein einfaches Programm in C für meinen Rechner (Linux Ubuntu) geschrieben, welches mir einen Socket bereitstellt, der als Client auf Port 80 der IP 192.168.2.60 eine Verbindung anfragt. Verbunden ist mein Rechner über ein Crossover-Netzwerkkabel mit dem AVR-NET-IO.
Der Mega32 horcht auch PINB2, ob der ENC28J60 ein Paket empfangen hat. Hat dieser etwas empfangen holt der Mega32 das Paket ab und speichert es in einem Feld.
Dieses Feld in dem sich das Paket befindet wird dann über die UART an meinen PC geschickt....und hier ist das Resultat in aufgearbeiteter Form:
(Aufgearbeitet hat das ein ebenfalls von mir geschriebenes einfaches Programm, das mir das Resultat der wirren Zeichenkette, die ich über die RS232 bekommen habe in Dezimal und Hexadezimalwerte wandelt und sauber in eine Datei schreibt, was das analysieren etwas leichter macht.
Alle "c" bzw 99(DEZ) bzw 0x63(HEX) sind eigentlich 0-Bytes (0x00), die aber im Controller auf 99 gesetzt werden, da sie sonst verschluckt würden aber im Feld (MCU) vorhanden sind!
0. Zeichen= ÿ Dezimal: 255 Hexadezimal: ff Bitfolge(LSB): 11111111 DESTINATION MAC (6 Byte)
1. Zeichen= ÿ Dezimal: 255 Hexadezimal: ff Bitfolge(LSB): 11111111
2. Zeichen= ÿ Dezimal: 255 Hexadezimal: ff Bitfolge(LSB): 11111111
3. Zeichen= ÿ Dezimal: 255 Hexadezimal: ff Bitfolge(LSB): 11111111
4. Zeichen= ÿ Dezimal: 255 Hexadezimal: ff Bitfolge(LSB): 11111111
5. Zeichen= ÿ Dezimal: 255 Hexadezimal: ff Bitfolge(LSB): 11111111
6. Zeichen= Dezimal: 3 Hexadezimal: 3 Bitfolge(LSB): 00110000 SOURCE MAC (6 Byte)
7. Zeichen= } Dezimal: 124 Hexadezimal: 7c Bitfolge(LSB): 1011100
8. Zeichen= { Dezimal: 122 Hexadezimal: 7a Bitfolge(LSB): 1111110
9. Zeichen= · Dezimal: 182 Hexadezimal: b6 Bitfolge(LSB): 1111101
10. Zeichen= ~ Dezimal: 125 Hexadezimal: 7d Bitfolge(LSB): 00001110
11. Zeichen= Dezimal: 126 Hexadezimal: 7e Bitfolge(LSB): 11101110
12. Zeichen= Dezimal: 8 Hexadezimal: 8 Bitfolge(LSB): 00010000 ???????
13. Zeichen= Dezimal: 6 Hexadezimal: 6 Bitfolge(LSB): 01100000
14. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
15. Zeichen= Dezimal: 1 Hexadezimal: 1 Bitfolge(LSB): 10000000
16. Zeichen= Dezimal: 8 Hexadezimal: 8 Bitfolge(LSB): 00010000
17. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
18. Zeichen= Dezimal: 6 Hexadezimal: 6 Bitfolge(LSB): 01100000
19. Zeichen= Dezimal: 4 Hexadezimal: 4 Bitfolge(LSB): 00100000
20. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
21. Zeichen= Dezimal: 1 Hexadezimal: 1 Bitfolge(LSB): 10000000
22. Zeichen= Dezimal: 3 Hexadezimal: 3 Bitfolge(LSB): 00110000
23. Zeichen= } Dezimal: 124 Hexadezimal: 7e Bitfolge(LSB): 10110010
24. Zeichen= { Dezimal: 122 Hexadezimal: 7a Bitfolge(LSB): 11011111
25. Zeichen= · Dezimal: 182 Hexadezimal: b6 Bitfolge(LSB): 11001101
26. Zeichen= ~ Dezimal: 125 Hexadezimal: 7d Bitfolge(LSB): 01111111
27. Zeichen= Dezimal: 126 Hexadezimal: 7e Bitfolge(LSB): 11101110
28. Zeichen= À Dezimal: 192 Hexadezimal: c0 Bitfolge(LSB): 00000011 SOURCE IP
29. Zeichen= š Dezimal: 168 Hexadezimal: a8 Bitfolge(LSB): 00010101
30. Zeichen= Dezimal: 2 Hexadezimal: 2 Bitfolge(LSB): 01000000
31. Zeichen= Š Dezimal: 166 Hexadezimal: a6 Bitfolge(LSB): 01100101
32. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
33. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
34. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
35. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
36. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
37. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
38. Zeichen= À Dezimal: 192 Hexadezimal: c0 Bitfolge(LSB): 00000011 DESTINATION IP
39. Zeichen= š Dezimal: 168 Hexadezimal: a8 Bitfolge(LSB): 00010101
40. Zeichen= Dezimal: 2 Hexadezimal: 2 Bitfolge(LSB): 01000000
41. Zeichen= < Dezimal: 60 Hexadezimal: 3c Bitfolge(LSB): 00111100
42. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
43. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
44. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
45. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
46. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
47. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
48. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
49. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
50. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
51. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
52. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
53. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
54. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
55. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
56. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
57. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
58. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
59. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
60. Zeichen= è Dezimal: 232 Hexadezimal: e8 Bitfolge(LSB): 00010111 FRAME CHECK SEQUENCE
61. Zeichen= ¬ Dezimal: 172 Hexadezimal: ac Bitfolge(LSB): 00110101
62. Zeichen= Š Dezimal: 166 Hexadezimal: a6 Bitfolge(LSB): 01100101
63. Zeichen= Z Dezimal: 90 Hexadezimal: 5a Bitfolge(LSB): 01011010
64. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
->HIER FOLGEN NUR NULLEN..<-
199. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
200. Zeichen= ! Dezimal: 33 Hexadezimal: 21 Bitfolge(LSB): 10000100
201. Zeichen= Dezimal: 32 Hexadezimal: 20 Bitfolge(LSB): 00000100
202. Zeichen= X Dezimal: 88 Hexadezimal: 58 Bitfolge(LSB): 00011010
203. Zeichen= ÿ Dezimal: 255 Hexadezimal: ff Bitfolge(LSB): 11111111
Einiges habe ich ja schon herausinterpretieren können. Die 6 Byte mit dem Inhalt 255 am Anfang sind die für meinen Laptop noch unbekannte Bestandteile der MAC-Adresse. Die 6 Folgen von 255 sind eine allgemeine Adressierung. Daraufhin folgt meine MAC-Adresse, die ich für diesen Beitrag etwas verändert habe.
Und dann einige Null-Bytes mit einigen Werten, die ich weder als IP-HEADER noch Länegenangabe oder VLAN-TAG logisch einordenen kann, da sie zu kurz sind oder von den Bitwerten her gar keinen Sinn ergeben...Die Frage ist also...was ist das für ein Mist der da steht???
Eiegntlich sollte man meinen, ich müsste einen Ethernet-Frame mit VLAN-Tag oder Längenangabe und noch mindestens einen gescheiten IP-HEADER haben.
Da hab ich ja "nur" die Adressen scheinbar. Und ich brauche um eine Verbindung aufzubauen ja noch wenigstens ein Byte, in dem ich ein SYN-Bit lesen kann.
Kann mir jemand etwas dazu sagen?? =)
Vielen Dank im Vorraus!
Ich habe mir das AVR-NET-IO-Board von Pollin besorgt.
Natürlich habe ich das, weil ich mich in die Ethernet-Technik einarbeiten möchte.
Erstes Ziel sollte es sein, eine Verbindung mit dem Board herzustellen. Dazu soll noch kein Webserver oder der gleichen auf dem Mega32 implementiert werden, sondern
schlichtweg ein 3-Way-Handshake stattfinden.
Also jetzt eine kurze Einleitung in meine Welt, damit Ihr so ungefähr bescheid wisst und mir evtl weiterhelfen könnt:
Ich habe ein einfaches Programm in C für meinen Rechner (Linux Ubuntu) geschrieben, welches mir einen Socket bereitstellt, der als Client auf Port 80 der IP 192.168.2.60 eine Verbindung anfragt. Verbunden ist mein Rechner über ein Crossover-Netzwerkkabel mit dem AVR-NET-IO.
Der Mega32 horcht auch PINB2, ob der ENC28J60 ein Paket empfangen hat. Hat dieser etwas empfangen holt der Mega32 das Paket ab und speichert es in einem Feld.
Dieses Feld in dem sich das Paket befindet wird dann über die UART an meinen PC geschickt....und hier ist das Resultat in aufgearbeiteter Form:
(Aufgearbeitet hat das ein ebenfalls von mir geschriebenes einfaches Programm, das mir das Resultat der wirren Zeichenkette, die ich über die RS232 bekommen habe in Dezimal und Hexadezimalwerte wandelt und sauber in eine Datei schreibt, was das analysieren etwas leichter macht.
Alle "c" bzw 99(DEZ) bzw 0x63(HEX) sind eigentlich 0-Bytes (0x00), die aber im Controller auf 99 gesetzt werden, da sie sonst verschluckt würden aber im Feld (MCU) vorhanden sind!
0. Zeichen= ÿ Dezimal: 255 Hexadezimal: ff Bitfolge(LSB): 11111111 DESTINATION MAC (6 Byte)
1. Zeichen= ÿ Dezimal: 255 Hexadezimal: ff Bitfolge(LSB): 11111111
2. Zeichen= ÿ Dezimal: 255 Hexadezimal: ff Bitfolge(LSB): 11111111
3. Zeichen= ÿ Dezimal: 255 Hexadezimal: ff Bitfolge(LSB): 11111111
4. Zeichen= ÿ Dezimal: 255 Hexadezimal: ff Bitfolge(LSB): 11111111
5. Zeichen= ÿ Dezimal: 255 Hexadezimal: ff Bitfolge(LSB): 11111111
6. Zeichen= Dezimal: 3 Hexadezimal: 3 Bitfolge(LSB): 00110000 SOURCE MAC (6 Byte)
7. Zeichen= } Dezimal: 124 Hexadezimal: 7c Bitfolge(LSB): 1011100
8. Zeichen= { Dezimal: 122 Hexadezimal: 7a Bitfolge(LSB): 1111110
9. Zeichen= · Dezimal: 182 Hexadezimal: b6 Bitfolge(LSB): 1111101
10. Zeichen= ~ Dezimal: 125 Hexadezimal: 7d Bitfolge(LSB): 00001110
11. Zeichen= Dezimal: 126 Hexadezimal: 7e Bitfolge(LSB): 11101110
12. Zeichen= Dezimal: 8 Hexadezimal: 8 Bitfolge(LSB): 00010000 ???????
13. Zeichen= Dezimal: 6 Hexadezimal: 6 Bitfolge(LSB): 01100000
14. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
15. Zeichen= Dezimal: 1 Hexadezimal: 1 Bitfolge(LSB): 10000000
16. Zeichen= Dezimal: 8 Hexadezimal: 8 Bitfolge(LSB): 00010000
17. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
18. Zeichen= Dezimal: 6 Hexadezimal: 6 Bitfolge(LSB): 01100000
19. Zeichen= Dezimal: 4 Hexadezimal: 4 Bitfolge(LSB): 00100000
20. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
21. Zeichen= Dezimal: 1 Hexadezimal: 1 Bitfolge(LSB): 10000000
22. Zeichen= Dezimal: 3 Hexadezimal: 3 Bitfolge(LSB): 00110000
23. Zeichen= } Dezimal: 124 Hexadezimal: 7e Bitfolge(LSB): 10110010
24. Zeichen= { Dezimal: 122 Hexadezimal: 7a Bitfolge(LSB): 11011111
25. Zeichen= · Dezimal: 182 Hexadezimal: b6 Bitfolge(LSB): 11001101
26. Zeichen= ~ Dezimal: 125 Hexadezimal: 7d Bitfolge(LSB): 01111111
27. Zeichen= Dezimal: 126 Hexadezimal: 7e Bitfolge(LSB): 11101110
28. Zeichen= À Dezimal: 192 Hexadezimal: c0 Bitfolge(LSB): 00000011 SOURCE IP
29. Zeichen= š Dezimal: 168 Hexadezimal: a8 Bitfolge(LSB): 00010101
30. Zeichen= Dezimal: 2 Hexadezimal: 2 Bitfolge(LSB): 01000000
31. Zeichen= Š Dezimal: 166 Hexadezimal: a6 Bitfolge(LSB): 01100101
32. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
33. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
34. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
35. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
36. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
37. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
38. Zeichen= À Dezimal: 192 Hexadezimal: c0 Bitfolge(LSB): 00000011 DESTINATION IP
39. Zeichen= š Dezimal: 168 Hexadezimal: a8 Bitfolge(LSB): 00010101
40. Zeichen= Dezimal: 2 Hexadezimal: 2 Bitfolge(LSB): 01000000
41. Zeichen= < Dezimal: 60 Hexadezimal: 3c Bitfolge(LSB): 00111100
42. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
43. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
44. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
45. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
46. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
47. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
48. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
49. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
50. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
51. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
52. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
53. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
54. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
55. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
56. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
57. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
58. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
59. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
60. Zeichen= è Dezimal: 232 Hexadezimal: e8 Bitfolge(LSB): 00010111 FRAME CHECK SEQUENCE
61. Zeichen= ¬ Dezimal: 172 Hexadezimal: ac Bitfolge(LSB): 00110101
62. Zeichen= Š Dezimal: 166 Hexadezimal: a6 Bitfolge(LSB): 01100101
63. Zeichen= Z Dezimal: 90 Hexadezimal: 5a Bitfolge(LSB): 01011010
64. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
->HIER FOLGEN NUR NULLEN..<-
199. Zeichen= c Dezimal: 99 Hexadezimal: 63 Bitfolge(LSB): 11000110
200. Zeichen= ! Dezimal: 33 Hexadezimal: 21 Bitfolge(LSB): 10000100
201. Zeichen= Dezimal: 32 Hexadezimal: 20 Bitfolge(LSB): 00000100
202. Zeichen= X Dezimal: 88 Hexadezimal: 58 Bitfolge(LSB): 00011010
203. Zeichen= ÿ Dezimal: 255 Hexadezimal: ff Bitfolge(LSB): 11111111
Einiges habe ich ja schon herausinterpretieren können. Die 6 Byte mit dem Inhalt 255 am Anfang sind die für meinen Laptop noch unbekannte Bestandteile der MAC-Adresse. Die 6 Folgen von 255 sind eine allgemeine Adressierung. Daraufhin folgt meine MAC-Adresse, die ich für diesen Beitrag etwas verändert habe.
Und dann einige Null-Bytes mit einigen Werten, die ich weder als IP-HEADER noch Länegenangabe oder VLAN-TAG logisch einordenen kann, da sie zu kurz sind oder von den Bitwerten her gar keinen Sinn ergeben...Die Frage ist also...was ist das für ein Mist der da steht???
Eiegntlich sollte man meinen, ich müsste einen Ethernet-Frame mit VLAN-Tag oder Längenangabe und noch mindestens einen gescheiten IP-HEADER haben.
Da hab ich ja "nur" die Adressen scheinbar. Und ich brauche um eine Verbindung aufzubauen ja noch wenigstens ein Byte, in dem ich ein SYN-Bit lesen kann.
Kann mir jemand etwas dazu sagen?? =)
Vielen Dank im Vorraus!