Fórum témák

» Több friss téma
Fórum » Manchester kódolás
 
Témaindító: kardi, idő: Márc 18, 2006
Lapozás: OK   1 / 1
(#) kardi hozzászólása Márc 18, 2006 /
 
Sziasztok!

Gondoltam ez a téme megér egy topicot!

Segitségetekre volna szükségem, vagy legalább némi infóra.

A diploma munkámhoz kellenne egy olyan rádiós vezérlés, amely az adótól 30-40 méterre lévő mechanikus órát vezérelné. A vezérlés annyiból állna, hogy az adónak csak egy jelet kellenne küldeni, amelyet egy Pic a vevő segitségével feldolgozna, és léptetné az órát. A pic egy 16F628-as lenne.

Megvettem a Conrádban kapható adó-vevő párt (megtekinthető:adó-vevő )és ha jól értelmeztem az útmutatót, akkor manchester kodolással kell vezérelni. A vezérlést +5 és -5 voltal valósitanám meg.
Már probáltam mindenhogy vezérelni, de nemigazán akar münködni.

Van-e esetleg valakinek tapasztalata e téren, vagy valami ötlete, hogy hogyan is kellenne megirni, az adó és a vevő programját. Nekem egy példa program nagyon sokat segitene. Kell-e valami illesztő áramkör a modul és a Pic közé?

Elnézést, hogy ilyen hosszasra sikeredett a kérdésem.
Minden választ, és infót előre is köszönök!

Üdv
Attila
(#) Topi válasza kardi hozzászólására (») Márc 18, 2006 /
 
Bevallom őszíntén én nem igazán vágom mi az a Manchester kódolás.
De elmondom, én hogy valósítanám meg.
Adó oldalon kell egy 1Hz-es oszcillátor. Ami simán rá van kötve, az adóra. TTL jel mindkét oldalon, nem kell illeszteni.
Vevő oldalon nem tom milyen mechanikus óra van, de ha azt is neked kell megoldani akkor tennék rá egy léptető motort a mechanikára... Ha csak ennyi kell, nem is kell rá PIC. Léptető motor vezérlő IC-t lehet kapni. Sőt pár kapuból is leht csinálni.
És egyszerűen a step bemenetre rákötöd a vevőt...
Kell egy nagyteljesítményű darlington híd. Mondjuk ULM2003. Én azt zoktam használni kisebb max 500mA-es léptető motoroknál!

Üdv. Topi.

Szerk: ChipCAD nél kaphatóak 433MHz-es adó-vevő modulok. És nem 3500ft. max 1000ft/db
(#) Gory válasza kardi hozzászólására (») Márc 18, 2006 /
 
Hi!

Nézd meg a MikroBasic nevű programot. Abban van azt hiszem könyvtár Manchester kódolásra, így neked nem kell szenvedni az alacsonyszintű dolgokkal, csak két sort begépelni.
(#) kardi válasza Gory hozzászólására (») Márc 20, 2006 /
 
Köszönöm az ötleteket.

Tegnap délután sikerült müködő képes programot irnom, igy a vezérlés is müködött. Ez mind szép és jó, viszont észre vettem, hogy a vevő közelében 4-5 méterre, ha van bármilyen elektromos eszköz (mobil, tv) azonnal összezavarodik, vagyis az általam küldőtt jelek karakterisztikája megváltozik, igy használhatatlan lesz az adó - vevő páros. Már az, hogy mobil telefonok ne legyenek a közelében elképzelhetetlen ugyanis az általam használt mechanikus óra egy elég forgalmas helyen lesz beüzemelve.
Persze lehet, hogy valami spéci szűrövel kilehetne szürni a hibás jeleket.

Mindenkinek azt tudom ajánlani, hogy a Conradban kapható adó-vevő párost ne vegye meg, mert nem igazán lehet használni, csak pénzkidobás, a másik meg, hogy Manchester kodolással kell vezérelni, ami még bonyolultabbá teszi a feladatot.

A ChiCad-nél kapható Topi által emlitett adó vevőkkel kapcsolatban van valakinek némi tapasztalata? Érzékenyek a zavarokra?

Átolvastam a fórum néhány témáját, és arra az elhatározásra jutottam, hogy inkább veszek egy vezeték nélküli csengőt, átalakitom, és azt fogom a vezérléshez használni, mivel, hogy sokkal megbizhatóbb a zavarok szempontjából.

Üdv
Kardi
(#) Báddzsó válasza kardi hozzászólására (») Márc 27, 2006 /
 
pont nem rég vettem egy telecontrolli adót meg vevőt chipcadnél. 2 napja próbáltam ki. dugdosós próbapanelon van, egy 1/4 hullámhosszú drót az antenna. Csodálatosan müxik, nem kell neki mencseszter kódolás. Hatótávot nem próbáltam nagyon, csak annyira, hogy összegyűrtem az antennákat és elvittem a ház egyik sarkába az adót, másikba a vevőt köztük kb 70cm téglafal, de így is kifogástalanul ment, egyébként a szgépem nagyon zavar mindent (tv, radió), de ezek jól működtek.
Egyébként a Manchester kódolás nem bonyolult. minden bitből kettő lesz: 0-ból 01, 1-ből 10
tehát egy bájt ami ez: 00110101 abból ez lesz: 0101101001100110
erre azért van szükség, hogy a vevőben kiegyenlítse a bitérzékelő elektronika munkáját ( vhol olvastam..), meg így nem annyira érzékeny a zavarokra a cucc.
(#) Báddzsó válasza Báddzsó hozzászólására (») Márc 27, 2006 /
 
Egyébként, meg egyébként .
Típusaik:RTFQ1 (433.9), RRFQ1
(#) Csaplar válasza Báddzsó hozzászólására (») Júl 24, 2008 /
 
Sziasztok!

Szeretnék egy kis segítséget kérni.

Van egy MTP-K4-es RFID transponderem, amely soros porton küldi ki a kártya kódját a PC-re.

Sajnos a kódot Manchester kódoltan kapom vissza.

Nem nagyon értek hozzá, így nem tudom, hogyan kellene visszaalakítani.

Létezik esetleg valamilyen IC, amely ezt megteszi?

C-ben programozgatok, abban tudnátok egy kis példát mutatni?

Köszönettel:
Zoli
(#) MPi-c válasza Csaplar hozzászólására (») Júl 24, 2008 /
 
Ezt írtad:

Szia!
Topi rf modulokkal kapcsolatos cikkében leírja a manchester kódolás menetét. A cikkben szereplő pic-re írt c kódoló program azonban nem teljesen úgy oldja meg a kódolást.
Én PIC-ben a lentebbi megoldást használom. Mint látható a kódokat a kódolás és a dekodolás során egy azonos tartalmú kódtáblából - tömb- veszem:
  1. /** Manchester kódolás. Forrás: ccs fórum **/
  2. //Kódtábla
  3. const char manchester[16] = {
  4. 0b01010101, //0
  5. 0b01010110, //1
  6. 0b01011001, //2
  7. 0b01011010, //3
  8. 0b01100101, //4
  9. 0b01100110, //5
  10. 0b01101001, //6
  11. 0b01101010, //7
  12. 0b10010101, //8
  13. 0b10010110, //9
  14. 0b10011001, //A
  15. 0b10011010, //B
  16. 0b10100101, //C
  17. 0b10100110, //D
  18. 0b10101001, //E
  19. 0b10101010}; //F
  20.  
  21. //Kódolás
  22. //putc(manchester[(Adat & 0xf0) >> 4]);
  23. //putc(manchester[Adat & 0x0f]);
  24. // vagy
  25. unsigned char MANkodolo1( unsigned char Adat)
  26. {
  27.    return manchester[(Adat & 0xf0) >> 4];
  28. }
  29. unsigned char MANkodolo2( unsigned char Adat)
  30. {
  31.    return manchester[Adat & 0x0f];
  32. }
  33.  
  34. //Dekódolás
  35. unsigned char MANdekodolo(unsigned char ByteDekodra1, unsigned char ByteDekodra2)
  36. {
  37.    unsigned char i, j;
  38.  
  39.    for(i = 0; i <= 15; i++)
  40.       if (manchester[i] == ByteDekodra1) break;
  41.    if (i == 16)
  42.       MANHiba = 1;
  43.    for(j = 0; j <= 15; j++)
  44.       if (manchester[j] == ByteDekodra2) break;
  45.    if (j == 16)
  46.       MANHiba = 1;
  47.   return(i * 16 + j);
  48. }
(#) Csaplar válasza MPi-c hozzászólására (») Júl 25, 2008 /
 
Köszönöm a példát!

És valamilyen CMOS IC-t nem lehet kapni ami ugyanezt megtenné, hogy nem kellene a kontrollert terhelni, hanem megoldódna hardveresen?

Köszönettel:
Zoli
(#) Gafly hozzászólása Júl 25, 2008 /
 
Csak ugy mellesleg mondom hogy beirtam a keresobe hogy "what is manchester code" es annyi talalat van hogy csak na. Peldaul az elso
(#) szkrep hozzászólása Feb 19, 2010 /
 
Ebben a feljebb látható kódban hogy küldök el pl egy szöveget? Vagy csak simán párosával byte-okat tud? Kezdek megkergülni attól, hogy semmi nem akar működni amit találok
Ha el akarok küldeni valamit, meg kell írnom azt is, hogy hogyan darabolódjon fel kettesével byte-okra?
(#) zenetom hozzászólása Aug 3, 2013 /
 
Tanulmányoztam én is Topi cikkében a C-s "Manchester kódoló rutint", de az nem Manchester kódolás.
A hozzászólás módosítva: Aug 3, 2013
(#) Hp41C válasza zenetom hozzászólására (») Aug 3, 2013 /
 
Ilyen egyszerű:
ToManchester
  1. movwf   Scratch5
  2.                 addwf   Scratch6,f
  3.                 movlw   0x55
  4.                 btfsc   Scratch5,3
  5.                 addlw   0x40
  6.                 btfsc   Scratch5,2
  7.                 addlw   0x10
  8.                 btfsc   Scratch5,1
  9.                 addlw   0x04
  10.                 btfsc   Scratch5,0
  11.                 addlw   0x01
  12.                 return

  1. BYTE ToManchester(BYTE nibble)                          // Encodes nibble to a Manchester coded byte
  2. {
  3.         BYTE Scratch3 = 0;
  4.         if (nibble & 1) Scratch3 |=  1;
  5.         if (nibble & 2) Scratch3 |=  4;
  6.         if (nibble & 4) Scratch3 |= 16;
  7.         if (nibble & 8) Scratch3 |= 64;
  8.         Scratch3 += 0x55;
  9.         return (Scratch3);
  10. }
A hozzászólás módosítva: Aug 3, 2013
(#) zenetom válasza Hp41C hozzászólására (») Aug 3, 2013 /
 
Közben már én is kidolgoztam egyet, de azért köszi!
(#) bernula hozzászólása Márc 10, 2018 /
 
Sziasztok!

Tudom egyszerű dolog, de valahogy most nem látom át. Pic12f675 re szeretnék assemblyben egy manchester kódoló és dekódoló algoritmust. Csupán 1 vagy 2 bytenyi adatot küldenék néha és a vevő állandóan figyelné az adatot....tulajdonképpen rc adóvevő lenne és proporcionális vezérlés. Szóval egyszerű kóder dekóder áramkörök nem jók, ezt a piccel oldanám meg. Hogy tudnám az adót és vevőt szinkronizálni, és a hibajavítás is fontos lenne.... Még segitség lehetne, de sajna nem találtam googleben kész manchester kódoló,dekódoló assembly példaprogramot, vagy egy protokollt.
A hozzászólás módosítva: Márc 10, 2018
(#) Hp41C válasza bernula hozzászólására (») Márc 10, 2018 /
 
Manchester kódoló:
  1. ;******************************************************************************
  2. ; Converts nibble in W to 8 bit Manchester code byte in W
  3.  
  4. ToManchester
  5.                 movwf   Scratch
  6.                 movlw   0x55
  7.                 btfsc   Scratch,3
  8.                 addlw   0x40
  9.                 btfsc   Scratch,2
  10.                 addlw   0x10
  11.                 btfsc   Scratch,1
  12.                 addlw   0x04
  13.                 btfsc   Scratch,0
  14.                 addlw   0x01
  15.                 return
A hozzászólás módosítva: Márc 10, 2018
Következő: »»   1 / 1
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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