Fórum témák

» Több friss téma
Fórum » PIC illesztése TCP/IP - ETHERNET - IDE felületen
Lapozás: OK   13 / 18
(#) watt válasza potyo hozzászólására (») Jan 25, 2013 1 /
 
Nem erre gondoltam. Igaz nem számoltam utána, csak érzésre mondom, hogy már a 10mbps-et sem lehetne feldolgozni a PIC-el, de 100-at tuti nem! Akkor meg mindek a 4 bites adatvonal, ha kettőn is átjön annyi, amennyit érdemben kezelni lehet.
LCD ügyben egyetértünk. 16F627A-val szoktam soros LCD modulokat csinálni. Én sem értem, miért nem lehet gyárilag sorosra építeni!?
A hozzászólás módosítva: Jan 25, 2013
(#) _vl_ válasza watt hozzászólására (») Jan 26, 2013 /
 
Idézet:
„Akkor meg minek a 4 bites adatvonal, ha kettőn is átjön annyi, amennyit érdemben kezelni lehet.”

Nem számít, hogy mennyi adatot akarsz átvinni, mivel azok a vezetékek szinkron fix órajellel mennek. Azaz ha másodpercenként csak 1kB-ot akarsz átvinni, akkor is 50MHz-cel fog átmenni az adat, és az idő nagy részében üresen ketyeg az órajel. Az RS232-nél, az I2C-nél, meg az SPI-nél szabadon megválaszthatod, hogy milyen órajellel menjen, itt nem.
(#) pajti2 válasza potyo hozzászólására (») Jan 26, 2013 /
 
Részemről fpga-t akarok netre kötni, nem pic-et. A pic csak közvetítő lenne. Az fpga-m pedig igényelni fog önmaga egy 40..50-es netet. Én nem azon aggódom, hogy egy switch-től milyen sebességgel menne tovább, mert az már teljesen más tészta. Ott egyébként is minimum gigabit lesz. (Míg MC-ék a 10-es net is bőven elég dolgokról álmodoznak, időközben már a gigabit is kommersz technológia lett.) 100-as net ugyan nekem sem kell, de a 10 nagyon lassú. Akad fpga-ra is ethernet kapcsolat, de olyan áron, hogy egy pic meg egy enc624 még az áramköri felülettel együtt is jobban jön ki. Meg aztán fpga-ra intelligens folyamatokat tervezni nagyon durván nőnek ott a költségek, és jelentőset tudnék spórolni rajta, ha pic kerülhetne mellé, és az rendezné el azt a pár dolgot, ami egyébként lassú folyamat, viszont sorrendi végrehajtó intelligenciát igényel. Én így kerültem abba a szituba, hogy pic-et kötni ethernetre, és nem 10-es sebességgel. Eddig a pic32 + enc624 34 vonalasan viszi a pálmát az én esetemben. Ha működni tud a DMA-s verzió is, akkor nem zuhanna be a speed-em olyan 60-80-ig (az mc lib real time programozza a psp-t, arra is megy ám az idő!), hanem koppra meglehetne a 100 is. Nem olyan rossz dolog egy kicsit rázsírozni a sebességre.
A hozzászólás módosítva: Jan 26, 2013
(#) potyo válasza pajti2 hozzászólására (») Jan 26, 2013 /
 
Na de várj, MII és RMII között nincs sebességkülönbség, csak a vezetékek száma az eltérés, én erre gondoltam a kérdésemben. És a PSP-t sem hiszem, hogy gyorsabb lenne.

Idézet:
„Míg MC-ék a 10-es net is bőven elég dolgokról álmodoznak, időközben már a gigabit is kommersz technológia lett.”


Az lett, de szükség is van rá? A 10Mbit-et elhiszem, hogy van, ahol kevés, de a 100-nál többnek én eddig csak akkor láttam értelmét, ha nagy fájlokat másolok egyik számítógépről a másikra. Az persze más kérdés, hogy sok hálókártya a processzorral intéztet ezt-azt, aztán hiába gigabites háló, ha 100%-on megy a processzor már 17MB/s másolástól is... Úgyhogy én valamilyen szinten egyezek a Microchippel, hogy a feladatok nagyon nagy többségére a 10Mbit is bőven jó, a maradékra meg ott 100Mbit. Ha az nem elég, akkor ott már nem PIC-et kell használni, vagy az egész rosszul van kitalálva. Neked mi az, amire 40-50Mbit kell?
(#) pajti2 válasza potyo hozzászólására (») Jan 26, 2013 /
 
RMII-vel a 100-hoz az kellene, hogy ami 50MHz-es órajel van a phy oldalán, az közvetlenül data clock lehessen, és az adatvég eszköz ne tízzel ossza le azt a jelet, mert az olcsóbbik RMII interface azt az 50MHz-et a belső állapotgépéhez használja, és értékes adatjel mintavételezés csak minden tizedik órajelen van - így lesz 10 a 100-ból, még ha kompatibilis is. Süssék meg a kompatibilitást, nekem speed kell

Nem akarom elkiabálni, de ha összejön, akkor egy lehetséges alkalmi munka, és talán több is. Egyenlőre arra kértek meg, komponensek szintjén szedjem össze, miből lehet meggyúrni a cuccot, és próbáljam olcsóra csiszolni. Van egy bit stream szerveren, amit célszerűen etherneten le kell küldeni egy eszköznek, ami lehetségesen megváltoztat benne dolgokat, és ha megváltoztatja, vissza is kell küldeni a szerverre. Dióhéjban ennyi a lényeg. Az eszköz átlagos adat sebessége 25 mbps. Szélső értékeket nem tudok. Ugyan jó nagy fifo-t is terveztem sram-ból, de akkor is nyugodtabb vagyok sokkal gyorsabb ethernettel. Ha valamit rosszul is találtam ebben ki, perpillanat nem érzékelem a hibámat.
(#) potyo válasza pajti2 hozzászólására (») Jan 26, 2013 /
 
Még mindig nem értelek. Azt mondod, hogy ha RMII-vel rákötöm mondjuk a PIC32-re a DP83848-at, akkor hiába mondja magát 100Mbit-nek a kapcsolat, csak 10-el fog menni a valós adatátvitel? Vagy mi ez a minden tizedik órajelen értékes mintavételezés?
(#) pajti2 válasza potyo hozzászólására (») Jan 27, 2013 /
 
Kicsit pontosabban én azon aggódok, hogy még csak nem is fogja magát 100-asnak mondani. Azt gyanítom, hogy a pic32 beépített mac-je _egyáltalán_ nem tud olyan sebességet. Se 2 vonalasan, se 4 vonalasan, se sehogy se. Maximum külső vezérlővel psp-n. Ezért is kérdeztem meg tőled, hogy ha már úgyis egybe gyúrtad a cuccot, és nálad rmii-vel működik, esetleg letesztelted-e a sebességet is? Leginkább nem egy nagy ügy pic-re az mc lib fölé írni egy programot, ami 1kbyte-os udp packeteket hajigál egy fix ip:port-ra (ahol legyen ott a géped valami módon), a gépen pedig egy socket szervert futtatni, ami az elmúlt másodpercekben beérkezett packetokat csak darabra megszámolja. Azt is felkínáltam, hogy segítek a programokkal, ha szükséges. Annyit reagáltál rá, hogy átmenetileg nincs egyben minden a teszteléshez. Részemről meg nem ér meg annyit, hogy külön a nyakadra járjak miatta. (Akár phy, akár psp, a külső tok az külső tok, egymás helyettesítői ebből a szempontból, és még árban is kb ugyan ott vannak: nudli olcsó mindkettő.) Igazából csak érdekesség jelleggel örülnék, ha kiderülne, mi is a szitu a pic32 rmii-jével.
(#) potyo válasza pajti2 hozzászólására (») Jan 27, 2013 /
 
Ha csak ennyi hiányzik a kipróbáláshoz, akkor mostmár lemérhetjük, hogy mi tud. Sosem használtam még UDP-t, de a jövő héten délutánonként ráérek, ha segítesz a pices oldali kóddal, akkor szívesen csinálok tesztet. Használsz valami skype, msn, gtalk-ot? Privátban küldj egy címet, amin el tudjuk érni egymást, úgy gyorsabb lesz, mint fórumon.
(#) watt válasza potyo hozzászólására (») Márc 12, 2013 /
 
Szia potyo!
Elakadtam egy látszólag egyszerű dologban. A webkiszolgáló a PIC-ben van, van fix IP címe, stb. Ha feltöltök egy oldalt a PIC-re, akkor elég a XMLHttpRequest.open metódusában az url-nél a fájl nevét megadni(pl. led.cgi), egyértelmű, hogy melyik IP-re vonatkozik. De ha nem a szerveren szeretném elhelyezni a html-t, hanem mondjuk egy pendrive-on, vagy éppen a gépen fejlesztve, futtatva, akkor ide be kéne írnom az egész elérési utat, azaz IP címet. Ezt valahogy nem fogadja el, pedig normál HTML módon elérem a PIC-ben futó alkalmazásokat így, persze ott nem használom az XMLHttpRequest-et. Lehet, hogy ez csak szerverről megnyitva működik?
(#) watt válasza watt hozzászólására (») Márc 12, 2013 /
 
Közben megoldódott! Köszi!
(#) kissi válasza watt hozzászólására (») Márc 12, 2013 /
 
Lehet belőle tanulni ?!
(#) potyo válasza watt hozzászólására (») Márc 12, 2013 /
 
Én is kíváncsi lennék. Bár a kérdést sem értem teljesen Abba futottál bele, hogy a böngésző nem enged XMLHttpRequest-et futtatni eltérő domain felé?
A hozzászólás módosítva: Márc 12, 2013
(#) watt válasza potyo hozzászólására (») Márc 12, 2013 /
 
A XMLHttpRequest.open metódusa nem fogadta el az IP címet az url helyén. Aztán valahogy még is!
Most ott vagyok elakadva, hogy három böngésző háromféleképpen írja ki, amit a PIC visszaküld a *.cgi-ben válaszként. Egyedül a Mozilla írja jól ki. Mindegyiken ugyanaz a karakterkódolás van beállítva(ISO-8859-2).
Az biztos, hogy a PIC-be még jó adatok vannak, mert soros porton keresztül elküldöm terminálra, ott jól jelenik meg.
Az igaz, hogy a forrásban még nem állítottam be a kódot, most ezzel próbálkozom.
(#) potyo válasza watt hozzászólására (») Márc 12, 2013 /
 
Legjobb lenne mindenhol UTF-8 kódolást használni, mert az XMLHttpRequest azzal dolgozik függetlenül mindentől. Bár ez felvethet egyéb problémákat, de gondolom úgysem akarsz szöveget vágni a PIC-el ékezetes karakterek mentén és hasonló elvetemült dolgokat csinálni.

Hogy néz ki az a háromféle kiírás és hogy néz ki a kód, ami ezt csinálja?
(#) _vl_ válasza watt hozzászólására (») Márc 12, 2013 /
 
Idézet:
„Mindegyiken ugyanaz a karakterkódolás van beállítva(ISO-8859-2).”

Két helyen lehet karakterkódolást "mondani" a browser számára.
Egyrészt a HTTP fejlécben (Content-Type), másrészt META tagben a dokumentumon belül. Ha mind a kettő szerepel, de a kettő eltér egymástól, akkor véletlenszetű eredményekkel találkozhatsz.
(#) watt válasza potyo hozzászólására (») Márc 12, 2013 /
 
Ezzel a kezdeménnyel kísérletezek, de ezt legalább már én raktam össze. Meg kellett tanulnom a javascriptet, a DOM-ot, a HTML-t és pár egyéb témával összefüggő dolgot, de nem sok időm van rá. Ezért elég lassan haladok, de legalább már van fény az alagút végén!
A PIC oldali dolgokat is meg kellett fejtenem, részben kezdem átlátni, mi miért van, de még ott is vannak foltok.
A hozzászólás módosítva: Márc 12, 2013

index.zip
    
(#) bbb válasza watt hozzászólására (») Márc 12, 2013 /
 
Szia!

Csak gyorsan rápislantottam a kódodra. A feldolgozandó XML-nek is megfelelő kódolásúnak kell lennie! Sokszor futottam már bele abba, hogy az XML fejlécbe UTF-8 volt beírva, de ANSIként volt elmentve az XML fájl, ami miatt értelmezésbeli problémák voltak. Így első blikkre neked is valami hasonló gondod lehet, mivel a html fejléced rendben lévőnek tűnik.
(#) watt válasza bbb hozzászólására (») Márc 12, 2013 /
 
Egy *.cgi kiterjesztésű szöveges fájl van hozzárendelve a callback-hez. Ez van benne:
  1. Success! ~adat(0)~


Esetleg a PIC programja keverhet el valamit a TCPPutArray() -ban. ?
(#) watt válasza potyo hozzászólására (») Márc 12, 2013 /
 
Itt van néhány kép az eredményekről:
(#) potyo válasza watt hozzászólására (») Márc 12, 2013 /
 
Ez szerintem pontosan attól van, hogy keveredik az ISO-8859-2 és az UTF8 kódolás, mivel az XMLHttpRequest UTF8-at használ mindenképpen. Ki tudod úgy próbálni, hogy átállítod a böngésződben az oldal kódolását kézzel UTF8-ra (ekkor a Küldés gomb felirata és az "itt jelenik meg a válaszüzenet" lesz majd hibásan kimutatva, de ez lényegtelen), és úgy megpróbálsz beírni ékezetes karaktereket a mezőbe. Úgy már szerintem minden böngészőben jó lesz a picből visszajött és megjelenített szöveg. A következő lépés, hogy az index.html fájlodat átkonvertálod BOM nélküli UTF8 kódolásúra (ez ha Notepad++-t használsz, akkor Kódolás->Átalakítás UTF8 kódolásra BOM nélkül), és akkor már a statikus szövegek is jók lesznek.

Hogy a PIC is jó headert küldjön, ha minden igaz, akkor a Microchip/TCPIP Stack/HTTP2.c fájlban kell ezt a részt:
  1. if(curHTTP.fileType != HTTP_UNKNOWN)
  2.                         {
  3.                                 TCPPutROMString(sktHTTP, (ROM BYTE*)"Content-Type: ");
  4.                                 TCPPutROMString(sktHTTP, (ROM BYTE*)";  charset=utf-8");
  5.                                 TCPPutROMString(sktHTTP, HTTP_CRLF);
  6.                         }

lecserélni erre:
  1. if(curHTTP.fileType != HTTP_UNKNOWN)
  2.                         {
  3.                                 TCPPutROMString(sktHTTP, (ROM BYTE*)"Content-Type: ");
  4.                                 TCPPutROMString(sktHTTP, (ROM BYTE*)httpContentTypes[curHTTP.fileType]);
  5.                                 TCPPutROMString(sktHTTP, (ROM BYTE*)";  charset=utf-8");
  6.                                 TCPPutROMString(sktHTTP, HTTP_CRLF);
  7.                         }


Ki nem próbáltam, de elvileg ez kellene.

Illetve a meta tagban is UTF8-at kell beállítani. Ez az ilyenolyan ISO meg ANSI kódolás ma már túlhaladott az interneten.
A hozzászólás módosítva: Márc 12, 2013
(#) watt válasza potyo hozzászólására (») Márc 13, 2013 /
 
Szia! Köszi, kipróbálom délután!
Azt írod, az XMLHttpRequest UTF-8-at használ. A fura az, hogy a .send() is ennek a metódusa, még is a PIC-be jó kód érkezik, legalább is a soros vonalon visszaküldött bájtokat a terminál jól jeleníti meg. Igaz nem néztem, hogy a terminál mire van állítva, illetve, hogy lehet-e állítani a kódolását. Megnézem majd, hogy a karakter kód értéke más-e, mint amit elvileg elküldtem. Fel kell hajtanom az eltérő kódtáblákat...
Aki ezt kitalálta! Elég sok ilyen ócska dolgot használunk, ami csak azért működik még, mert nagyon fájna változtatni rajta egy húzással. Ilyen a PC architektura is...
(#) _vl_ válasza watt hozzászólására (») Márc 13, 2013 /
 
Ethernetes fejlesztéshez szerintem nélkülözhetetlen dolog egy Ethernet sniffer használata, akár mikrokontrollerre fejleszt az ember, akár PC-re, vagy bármi másra.
Nekem a kedvencem: Wireshark.
Így nem kell találgatni, hogy vajon mit küldött a PIC, mit küldött a PC.
(#) watt válasza _vl_ hozzászólására (») Márc 13, 2013 /
 
Ezt nem ismertem, köszönöm, hasznos lesz!
(#) watt válasza potyo hozzászólására (») Márc 13, 2013 /
 
Szia!
Kipróbáltam a kódot, látszólag semmi nem változott.
Viszont megnéztem az adatfogalmat(köszi _vl_!). Az ö helyén a kódja 0xf6 küldődik és ez is lesz visszaküldve. Úgy tűnik nem itt lesz a baj, hanem a megjelenítéssel a DOM-ban.

  1. document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
(#) potyo válasza watt hozzászólására (») Márc 13, 2013 /
 
A DOM kezelés az így jó. Szerintem továbbra sem jó a karakterkódolás valahol. Átállítottál mindent UTF8-ra? Milyen kódolásúnak ismeri fel az oldalt a böngésző, ha automatikuson hagyod? Chrome-ban nyisd meg a kontrollerről az oldalt, nyomj F12-t, majd frissítsd az oldalt, és nézd meg, hogy a képen látható helyen (azzal, hogy nálad az index.html-t válasz ki a baloldali listából), a Response headers alatt a Content-Type-nál pontosan az szerepel-e, ami itt a képen.
A hozzászólás módosítva: Márc 13, 2013

1.png
    
(#) bbb válasza watt hozzászólására (») Márc 13, 2013 /
 
Szia watt!

Ajánlom figyelmedbe az alábbi szösszenetet:
responseText vs. nem UTF-8 kódtábla

Amúgy ha már Wiresharkolsz, akkor érdemes a szűrökkel is megismerkedned, mert nagyon jól lehet vele adatforgalmat figyelni (meg persze jelszavakat szerezni ). Nekem egyik kedvenc szűrőm TCP-IP forgalom figyelésénél az ip.src == ipcím, illetve ip.dst == ipcím no és persze az egyéb szűrőkkel simán vegyítheted a szokásos && (és), || (vagy) logikai kapcsolatokkal kedved szerint.
(#) watt válasza potyo hozzászólására (») Márc 13, 2013 /
 
Gondolom az nem jelent eltérést, ha kisbetűvel van írva a kódolás:
  1. Content-Type:text/html;  charset=utf-8


Nem tudtam, hogy a chrome ilyeneket tud, nem rossz!

De közben a chrome-alatt jó lett, de az IE9 alatt még mindig nem.

Próbáltam így is:
  1. xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

Hátha a kezelés hibádzik. Ekkor a chrome és a fox nem működött(érthetően), az IE9 ugyanúgy rosszul!
(#) potyo válasza watt hozzászólására (») Márc 13, 2013 /
 
IE alatt nem állítottad be véletlenül kézzel a karakterkódolást, és úgy maradt?
(#) watt válasza potyo hozzászólására (») Márc 13, 2013 /
 
Ha ez azt mutatja, akkor nem, mert auton van és az utf-8-at választotta.
(#) bbb válasza watt hozzászólására (») Márc 14, 2013 /
 
Az ie és az ff fejlesztőeszközeit is érdemes használgatnod. (ie esetén F12, ff-ben nem tudom van-e gyorsgomb hozzá)
Ezekben anélkül tudod a forrást módosítgatni, hogy közben az eredeti is megváltozna, de a változtatásaidat rögtön látni fogod, hogy mit eredményeznek. (Én sokat használom őket weboldalak alakításánál.)
Következő: »»   13 / 18
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem