Sari la conținut
ELFORUM - Forumul electronistilor

Comunicare date prin radio de mica putere


bogdanm

Postări Recomandate

Ok, pai sa le luam pe rand:

 

- ce avantaj(e) are codificarea Manchester 1/3 fata de software FM-ul pe care il face tipul? E nevoie de circuite suplimentare pentru implementare sau merge direct din microcontroller? Daca e asa usor de sincronizat se rezolva problema cu timpul de start al quartz-ului sau mai mult se complica?

- am inteles ce ai spus tu despre datu cu semnalul dreptunghiular direct in emitator. Mersi de informatie, habar nu aveam :) Pentru cine vrea sa se informeze, am gasit un link care mi se pare bun:

 

http://www.complextoreal.com/ISI.htm

 

Dar: cat de mult conteaza chestia asta la un emitator care bate maxim cativa metri? Daca totusi conteaza, nu m-am prins cat de usor/greu e de implementat.

Link spre comentariu
  • Răspunsuri 28
  • Creat
  • Ultimul Răspuns

Top autori în acest subiect

  • bogdanm

    12

  • cirip

    9

  • Gheorghe Dracu

    2

  • Guest1

    1

Top autori în acest subiect

- ce avantaj(e) are codificarea Manchester 1/3 fata de software FM-ul pe care il face tipul?

-M1/3 e mai rapida. La FM-ul propus de tip, perioada de bit se dubleaza intre transmisia lui 0 sau 1. M1/3 are perioada de bit constanta indiferent ce transmiti: 0 sau 1.

-M1/3 este f usor de decodat. Un simplu monostabil soft si o citire de port sunt suficiente ptr decodare. La FM trebuie sa masori perioada, sa o compari cu pragul... Dureaza.

 

E nevoie de circuite suplimentare pentru implementare sau merge direct din microcontroller?

Direct.

 

Daca e asa usor de sincronizat se rezolva problema cu timpul de start al quartz-ului sau mai mult se complica?

Sunt 2 probleme diferite. Pornirea cuartului e una. Sincronizarea de bit pe fluxul de date e alta. Eu vorbeam de sincronizarea de bit.

 

Dar: cat de mult conteaza chestia asta la un emitator care bate maxim cativa metri?

Avand in vedere ca filtrarea se poate face cu un simplu RC, eu cred ca merita. Daca nu filtrezi nu-i exclus sa auzi date prin toate radiourile si teveurile din casa. Nu e musai sa se intample asa, dar cresc sansele. Dar daca nu-ti pasa, nu pune.

 

Cirip

Link spre comentariu

Bun asa. Atunci poate imi dai si mie niste informatii despre Manchester 1/3 asta, ca atunci cand incerc sa caut pe google 1/3 se incapataneaza sa caute 1 si 3 separat si iese o varza :evil: Am inteles acu cum e treaba cu sincronizarea; din pacate, continui sa nu vad cum se poate face cu un quartz daca ce spune tipul acolo e real. Trebuie sa caut niste datasheet-uri de la niste oscilatoare in capsula din aia DIP8 (de exemplu) si sa vad ce scrie acolo, ca banuiesc ca au un timp de startup destul de apropiat de cel mai bun. Daca filtrarea se face cu un simplu RC, merita. Eu citisem in pagina aia pe care am dat-o ca link o groaza de chestii despre filtre digitale si ma durea deja capu, nu am gasit nicaieri o implementare atat de simpla. Daca am inteles bine tu vrei la iesire un filtru simplu care sa pastreze numai prima armonica, nu ?Apropo, stie cineva ceva despre oscilatoarele SAW? N-am timp sa caut pe net acu :( Imi aduc aminte vag ca am citit undeva cum ca ar avea un timp de start mult mai mic decat astea cu quartz.

Link spre comentariu

M1/3 am cautat si eu si nu gasesc. Nu mai stiu unde am citit, dar am folosit si merge. O sa fac o schita ca sa intelegi ideea.

din pacate, continui sa nu vad cum se poate face cu un quartz daca ce spune tipul acolo e real.

Eu nu prea inteleg de ce se plange tipul acolo. Este adevarat ca trebuie un timp de pornire, dar e ca la statia de emisie/receptie. Apesi pe butonul de emisie, astepti un pic si dupa aia vorbesti. Nu te impiedica nimeni sa pornesti intai oscilatorul si sa transmiti date dupa 100ms.

Eu citisem in pagina aia pe care am dat-o ca link o groaza de chestii despre filtre digitale

He he, se poate face si asa, dar nu e cazul aici. Un simplu RC cu taierea la fundamentala e suficient. De fapt, daca e sa fim corecti la sange, nu tai nici la fundamentala nici la armonica. Spectrul datelor aleatoare nu e un spectru dicret, ci unul continuu. Acolo apare notiunea de densitate de putere. Anvelopa densitatii spectrale este functia sinc(x) (adica sinus cardinal, definita ca sin(x)/(x) ). Primul nul al functiei se gaseste la x=pi, care coincide cu frecventa corespunzatoare lui 1/T, T=perioada de bit. Primul nul separa primul lob al densitatii spectrale de restul componentelor. Se demonstreaza ca pastrarea acestui prim lob este suficienta pentru recuperarea datelor. In consecinta, daca frecventa la 3dB a RCului este egala cu frecventa primului nul (f=1/T), compromisul e acceptabil. Sper ca n-am luat-o razna prea mult :) Parerea mea e sa nu te complici cu SAW e pos sa fie mai vioi ptr ca are Q mai mic, dar asta va avea implicatii asupra calitatii semnalului: stabilitate, jitter. Eu cred ca e bine sa stai cu cuartul.Cirip
Link spre comentariu
M1/3 am cautat si eu si nu gasesc. Nu mai stiu unde am citit, dar am folosit si merge. O sa fac o schita ca sa intelegi ideea.

Sarumana :)

Eu nu prea inteleg de ce se plange tipul acolo. Este adevarat ca trebuie un timp de pornire, dar e ca la statia de emisie/receptie. Apesi pe butonul de emisie, astepti un pic si dupa aia vorbesti. Nu te impiedica nimeni sa pornesti intai oscilatorul si sa transmiti date dupa 100ms.

Corect, dar daca nu ma insel el comanda direct oscilatorul on/off, si probabil de aici aparea problema. Oscilatorul poate ramane insa pornit tot timpul si folosit numai atunci cand e necesar.

De fapt, daca e sa fim corecti la sange, nu tai nici la fundamentala nici la armonica. Spectrul datelor aleatoare nu e un spectru dicret, ci unul continuu. Acolo apare notiunea de densitate de putere. Anvelopa densitatii spectrale este functia sinc(x) (adica sinus cardinal, definita ca sin(x)/(x) ). Primul nul al functiei se gaseste la x=pi, care coincide cu frecventa corespunzatoare lui 1/T, T=perioada de bit. Primul nul separa primul lob al densitatii spectrale de restul componentelor. Se demonstreaza ca pastrarea acestui prim lob este suficienta pentru recuperarea datelor. In consecinta, daca frecventa la 3dB a RCului este egala cu frecventa primului nul (f=1/T), compromisul e acceptabil. Sper ca n-am luat-o razna prea mult :)

Tu sigur n-ai luat-o razna, mi-e teama insa ca nu am eu toate cunostintele necesare sa inteleg in totalitate ce spui. Pe de alta parte chiar am reusit sa vad o logica in spusele tale (spre surprinderea mea), deci nu e asa de grav :)

Link spre comentariu

Salut,Uite aici Manchesteru' 1/3 sau modificat, cum ii mai zic unii.http:\\www.izatech.as.ro\cirip\Manch_1_3.gifDecodarea se face cam asa:1)Astepti un front crescator. Ala poate sa fie o intrerupere pe front crescator, ca sa nu freci duda intr-o bucla. Eu am lucrat pe intrerupere.2)Sari la intrerupere, setezi un delay egal cu juma' de bit (adica 1.5 perioade elementare; un bit este format din 3 perioade elementare: prima e intotdeauna 1, a doua e chiar bitul si a treia e intotdeauna 0)3) Cand a expirat delayul (poate fi o alta intrerupere, ca doar de aia ai timere) citesti portul la care ai aplicat semnalul M1/3. Daca citirea dupa frontul crescator e1, atunci bitul e 1 si shiftezi ca sa asamblezi octeti sau cati biti vrei acolo. Daca e zero la citire, bitul e zero si shiftezi un zero.

Oscilatorul poate ramane insa pornit tot timpul

Absolut de acord, dar credeam ca te doare sufletul de baterie. Eu, cum am mai spus, il porneam cu 100ms inainte sa incep transmisia. Sau, le poti porni simultan (oscilatorul si clampanitul datelor), dar incepi cu un preambul de 100ms, ceva gen 101010101010... si ii dai si receptorului timp sa se trezeasca , sa-si faca gimnastica si sa bea cafelutza. Frame_Start poate fi un octet oarecare, 0xAC, 0xE7, 0x16, ce vrei tu, numai sa-i spuna receptorului ca incep datele de-adevaratelea. In fine, nu mai insist. Se pot imagina tot felul de cocomarle: CRC, corectie de horori, esantionare in mai multe puncte si dai la pisica bitul/octetul cu pricina daca nu respecta timingul, ca-i clar ca s-a betegit, etc...Cu luatul razna... Ma mai ia si pe mine flama si ma dau mare ca am vocabular, dar daca vrei detalii, mai intreaba. :) Bafta,Cirip
Link spre comentariu

Mersi pentru schita si pentru explicatii, sunt simple si clare. E drept ca ma doare nitel si de consum, drept pentru care cea mai buna e o schema hibrida: pornesc oscilatorul doar la inceputul unei transmisii, si-l opresc cand am terminat. Nici nu-l pornesc si opresc non-stop, si nici nu-l tin pornit tot timpul. Despre corectiile de erori la transmisii radio am mai citit si eu cate ceva. I-as da niste pachete suficient de mici cu un cod Hamming la urma, ca sa poata corecta erorile. Oricum ar fi, as face orice ca sa nu trebuiasca sa am un transceiver la fiecare cap pentru un protocol bidirectional. Cred ca daca trimit acelasi pachet de 3 ori (de exemplu) cu un cod Hamming atasat la fiecare in parte pot sa stau relativ linistit in ceea ce priveste erorile. Mai ales ca nu am de gand sa folosesc jucaria pentru chestii critice.Acu ca tot a venit vorba de consum ... ce facem cu receptorul? Daca la transmisie partea cu consumul e mai simplu de rezolvat, ca-l trezesc exact cand am chef de transmis, receptorul trebuie sa stea treaz tot timpul. De fapt nu stiu daca trebuie, dar asta am vazut pana acum. Chiar si ZigBee-ul, care trebuia sa fie super low-power, se "lauda" cu un consum la receptie de 17mA, care mi se pare mare :( Care e experienta ta cu receptoarele astea nesuferite? :DLasa ca-i bine cu vocabularul, ma ambitioneaza si pe mine sa mai pun mana pe alte carti in afara de alea de programare :)

Link spre comentariu

ZigBee - Habar n-aveam de el. Am tras un ochi. Mi se pare ca e ca si cum ti-ai lua mertzanul ca sa cari burean pentru capre. Nu cred ca e cazul sa ridici o intreaga stiva de protocol ca sa trimiti 2-3 octeti. Intr-adevar, depinde ce vrei sa faci, dar eu am inteles ca aplicatia e f simpla si nepretentioasa.17mA... E mult, e putin, nu stiu. Trage un ochi la integratele pe care ti le-am scris mai inainte. Consumul e de 3-4mA. Daca lucrezi la frecvente mai mici, nu ai nevoie de prea multe componente prin jur. Oricum, iti dau scris ca un Tx/Rx pe 900MHz sau 2.4G nu il faci acasa pe genunchi. Alea le iei de gata, dar sunt cu zeama de bani. Mai pui un procesor, care daca nu-l fugaresti prea tare, nu consuma nici 1mA.Mai e o tehnica de reducere a consumului la receptie. Faci cum a facut Bula pe vremea impuscatului, ca sa faca economie de electrica. Cica a pus un afis la butonul de la sonerie: " Nu sunati ca consumati. Ies eu din cand in cand."Setezi un timer sa-l trezeasca pe procul de la receptie din cand in cand. Cand s-a trezit, activeaza si receptorul si il intreaba " Tataie, e ceva pe frecventa?" Daca nu, la culcare toata lumea pana vine urmatorul impuls de la timer. Trebuie sa ai grija ca transmisia sa dureze mai mult decat intervalul dintre doua treziri ale receptorului, ca sa fii sigur ca receptorul "prinde". In acest caz decizia majoritara ar fi potrivita. Atentie, cele de mai sus se bazeaza pe ideea ca volumul de date e redus.O mica corectie la spectru. Sinc-ul e valabil ptr datele necodate, adica chioare 1 si 0. Termenul, daca iti este familiar, este de NRZ (de la Non Return to Zero). Daca faci codare (de ex M1/3) spectrul se schimba un pic, dar cred ca folosirea valorii T=1/3 dintr-un bit ptr calculul frecv trece jos e adecvata scopului. In treacat, daca te doare de utilizarea eficienta a spectrului, exista coduri de linie mai sofisticate, care impacheteaza spectrul frumusel, dar nu cred ca merita efortul.Bafta!Cirip

Link spre comentariu

ZigBee mi se pare numai bun pentru aplicatii tip home automation, adica ceea ce ma intereseaza. Nu era vorba chiar de 2-3 octeti. Overall nu m-ar deranja deloc un transceiver cu o stiva simpla de protocoale la un pret mic. Stiu cum e treaba pe la frecventele alea astronomice, nici nu aveam de gand sa incerc. Mersi ca mi-ai clarificat cum e cu reducerea consumului, auzisem undeva de metoda asta, dar nu stiam detaliile. Stiu ce e NRZ, nu am inteles niciodata de ce e nevoie de o denumire atat de complicata pentru date chioare :) Nu ma doare chiar atat de cumplit de spectru, asa ca tipul asta de codificare e numai bun.Multumesc pentru ajutor.Bogdan

Link spre comentariu
  • 3 luni mai târziu...
  • 1 lună mai târziu...
  • 7 luni mai târziu...
Vizitator redmann

am facut eu o transmisie wireless cu microcontrolere de la atmel in banda 88-108 semnal digital RS232 viteza 600b/s relativ mic dar pt unele aplicatii destul;schema e f simpla cu filtre cu tot semnalul digital iese f curat .Am avut la dispozitie toata aparatura unui laborator(lucrez intr-unul) .Am incercat sa fac upload la schema dar merge f greu.Pt cei interesati YMSG : misu_m02

Link spre comentariu
  • 4 săptămâni mai târziu...
Vizitator MihaiR

@cirip : e interesanta codarea Manchester 1/3 sau modificata si chiar am intalnit-o in protocolul sony 434Mhz numai ca nu se gaseste mai nimic pe internet despre el. Daca dai de ceva documente despre el ar fi de mare folos.

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum



×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări