Atmega32-vel Embedded web server+ videó interface

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00
Kapcsolat:

HozzászólásSzerző: norbi » 2009. július 6. hétfő, 13:19

Miből adódik a Wireshark ill. a T_enetpacket (T_enetpacketh és T_enetpacketl egyben, csak inkább létrehoztam egy word változót az MSB overlay címén, hogy ne külön keljen műveletet végezni vele) ethernet header számolási külömbsége?

A Wireshark szerint a TCP csomag 66byte, az említett változó szerint 40hex vagyis 64byte.

Ugyan ez van a HTTP csomagnál is, a WS szerint 543byte, "szerintem" meg 223hex, 547byte.

A GETPACKET részben nem változtattam semmit, ezek az eredei Ben féle program szerint jöttek ki.

Még valami: az ECHOPACKETBAN mért kell kivonni a T_enetpacketl-nől 4et??

Kód: Egész kijelölése

  Hulp1 = T_enetpacketlenl - 4

Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00
Kapcsolat:

HozzászólásSzerző: norbi » 2009. július 10. péntek, 21:44

Szép lassan alakul a szoftver... 8)

Hogy lehet úgy "alakítani" a MAC-címet, hogy pl.egy csomagelemző a cím előtt a gép nevét is lássa?

Erre gondolok: Clevo_35:8C:XX:XX:XX

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10054
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2009. július 11. szombat, 5:35

A MAC címek tartományokba vannak, 1-1 gyártóhoz rendelve...

http://standards.ieee.org/regauth/oui/oui.txt
http://www.coffer.com/mac_find/

Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00
Kapcsolat:

HozzászólásSzerző: norbi » 2009. július 11. szombat, 9:24

Köszönöm! Pont erre gondoltam!

Még egy apróság csomagelemző ügyben...
Meg lehet figyelni valahogy az olyan csomagokat is a belső hálózaton, amik külső IP-re mennek (és így az AVR-ben cél MAC-címnek a router címe van)?

Eddig Wireshark-kal figyeltem, de most "figyelő" módban sem látja a csomagokat...enélkül meg tehetetlen vagyok...(érdekes módon a többi PC által küldött s kapott csomagokat látja!).

Ezért tegyek be egy másik PC-t, amiben 2hálókártya van, s iktassam az AVR és a router közé (így ez a PC lenne az átjáró)?

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10054
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2009. július 11. szombat, 9:29

A regi etherrealt hasznalom en erre...

Azaz a masik PC-nek cimzett csomagokra gondolsz?

Hat....
A mai routerekben Switch van, azzaz csak a _megfelelo_ iranyba kuldi a csomagokat. A jelismetlo-eloszo, ami mindenkinek mindent c-ű elosztó a HUB. Azzaz a mostani Routered utan egy HUB-ot (10 MBites volt csak belole), és arra a figyelendo eszkozok...

(ez meg az elmeleti tanulasaimbol maradt meg igy...) Kiprobalni holnap DE tudom...

Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00
Kapcsolat:

HozzászólásSzerző: norbi » 2009. július 11. szombat, 9:36

Igen, egy másik PC-nek címzem a csomagokat (egy Szervernek, statikus IP-vel) s ezeket a csomagkat kellene figyelnem, amiket küldök neki s amiket válaszban küld!

Egy 10MBites HUB-om van itthon (LanPro) ezzel kipróbáljam esetleg? bár kipróbálom, mit veszíthetek? :P

u.i.: ezzel megy!!! 8)

Az OUT-ra tettem a PC-t, amin a WS megy, az IN-en van az AVR kliens és a router bemenet!

Nagyon köszönöm! Így megmenekültem egy plussz PC-től! :wink:
A hozzászólást 1 alkalommal szerkesztették, utoljára norbi 2009. július 11. szombat, 9:49-kor.

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10054
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2009. július 11. szombat, 9:46

HUB legyen. Az sima jelerősítő-jelformázó.
A switch az az irányt is megjegyzi, h melyik irányba küldje a csomagot.
A router meg eltérő rétegek közt átjárást is biztosít (PPP[ADSL] és ethernet (TCP/IP)).

+találtam, ahol szebben le van írva:)
http://www.practicallynetworked.com/net ... _types.htm
http://www.cap-lore.com/Hardware/HBRS.html
Hun:
http://www.bibl.u-szeged.hu/inf/demo/Ha ... sz_dev.htm
http://prog.hu/tudastar/5171/Mi+a+kulon ... ozott.html


jó olvasást :P

Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00
Kapcsolat:

HozzászólásSzerző: norbi » 2009. július 12. vasárnap, 21:46

Köszi a linkeket is!

Nem rég tanultam ezt én is, csak a HUB ezen tulajdonsága valahogy elfelejtődött 8)
A segítség szuper volt, így már látom a csomagokat, azért van egy DE...de így lassult a hálózat (lustaság beszél belőlem, mert ha másolok valamit egyik gépről a másikra így ki kell iktatni a HUB-ot ill. a net is lasabb - gondolom a csomagszórás miatt-)...nincs ebből véletlenül 100Mbites?

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10054
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2009. július 13. hétfő, 4:21

Sajna nincsen:(
Tipp:
Az AVR és a figyelendo gep HUB-on, míg a többi switch/routeren...

Sajna 100-as HUB-ot még nem láttam (a switch-ek is 10-essel kezdődtek, és a hálózati szórás (HUB) miatt gyorsan ki is szorították a régi technológiát...

Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00
Kapcsolat:

HozzászólásSzerző: norbi » 2009. július 14. kedd, 9:58

Értem...

A Ben féle eth.programban 60byte-nál kevesebb adat mért nem megy(mehet ki)?

Mert tett bele egy kiegészítést, hogy ha kevesebb menni ki 60-nál, akkor töltse fel az üres részt:

Kód: Egész kijelölése

      If Txlen < 60 Then
         Txlen = 60
      End If


Nekem xsak 54byte kellene, s helyesen beállított rgiszterenél n(remélem, hogy helyesen) sem megy ki, csak ha 60-ra kiegészítem...

Kód: Egész kijelölése

   Call Write_rtl8019as(cr , &H22)
   Call Write_rtl8019as(tpsr , Txstart)
   Call Write_rtl8019as(rsar0 , &H00)
   Call Write_rtl8019as(rsar1 , &H40)
   Call Write_rtl8019as(isr , &HFF)
   Hulp1 = Low(txlen)
   Call Write_rtl8019as(rbcr0 , Hulp1)
   Hulp1 = High(txlen)
   Call Write_rtl8019as(rbcr1 , Hulp1)
   Call Write_rtl8019as(cr , &H12)

      For I = 1 To Txlen
         Call Write_rtl8019as(rdmaport , Packet(i))
      Next

   Byte_read = 0
      Do
         Hulp1 = Byte_read And Rdc
         Call Read_rtl8019as(isr)
      Loop Until Hulp1 = 0

   Hulp1 = Low(txlen)
   Call Write_rtl8019as(tbcr0 , Hulp1)
   Hulp1 = High(txlen)
   Call Write_rtl8019as(tbcr1 , Hulp1)
   Call Write_rtl8019as(cr , &H24)

Ha itt a TXLEN csak 54, akkor nem megy ki semmi...

Avatar
Robert
Elektronbűvölő
Hozzászólások: 10054
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

HozzászólásSzerző: Robert » 2009. július 14. kedd, 11:00

Ethernet szabvány írja elő a minimális hosszt. Ekkor fel kell tölteni a fennmaradó részt.

Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00
Kapcsolat:

HozzászólásSzerző: norbi » 2009. július 14. kedd, 11:06

Eddig ok, de telnet programos szerver csatlakozásnál csomagelemzővel figyelve az ACK csomag csak 54byte!

Ez, hogy lehetséges?

Telnettel simán tudok csatlakozni a távoli szerverhez, SYN csomag 66byte, válasz SYN&ACK 66byte erre válasz ACK csak 54byte! Ugyenezt akarom eljátszani az AVR-rel is, mert az AVR kliensem által küldött 66byte-os ACK-ra újabb SYB&ACK-ot kapok a szervertől, vagyis valamiért nem eszi meg, azért gondoltam, hogy megenné, ha ez is ugyanugy 54byte-os lenne! De lehet, hogy nem is ez a hiba...bár amugy ugyanugy néz ki a telnet által küldött csomag mint az enyém, kivéve, hogy nekem van még 12byte a végén, ami a 66byte eléréséhez kell.

Sőt, most nézem, hogy minden ACK válasz csak 54byte-os. Akkor nekem mért nem megy ki semmi, ha a csomagom össz mérete 54byte?

Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00
Kapcsolat:

HozzászólásSzerző: norbi » 2009. július 14. kedd, 14:54

Tudja valaki, hogy az RDC konstans értéke mért pont &h40 vagyis 64?

Két helyen is jelentős nekem, egyik a GETPACKET-ban van:

Kód: Egész kijelölése

 Hulp1 = Byte_read And Rdc

 If Hulp1 <> 64 Then
      Call Read_rtl8019as(isr)
 End If


ill. a csomag küldésénél:


Kód: Egész kijelölése

      Do
         Hulp1 = Byte_read And Rdc
         Call Read_rtl8019as(isr)
      Loop Until Hulp1 = 0


Meg nem értem, hogy mért kell a T_enetpacketlen-ből kivonni 4-t, hogy megkapjuk a TXLEN-t :?
:

Kód: Egész kijelölése

Txlen=T_enetpacketlen-4


HELP :wink:

Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00
Kapcsolat:

HozzászólásSzerző: norbi » 2009. július 15. szerda, 9:06

HELP :(

Avatar
norbi
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2006. augusztus 3. csütörtök, 6:00
Kapcsolat:

HozzászólásSzerző: norbi » 2009. július 15. szerda, 17:16

HELP :wink:


Vissza: “Bascom-AVR nyelvű programozás (AVR programozásának lehetőségei)”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég