Kazalo po Svet elektronike forumu Svet elektronike
Revija za prave elektronike
 
AlbumAlbum   Pomoč pogostih vprašanjPomoč pogostih vprašanj   IščiIšči   Seznam članovSeznam članov   Skupine uporabnikovSkupine uporabnikov   Registriraj seRegistriraj se 
 Tvoj profilTvoj profil   Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil   PrijavaPrijava 

RFM12 zanesljivost prenosa podatkov

 
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Samogradnje
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 805
Kraj: Ljubljana

PrispevekObjavljeno: Ned Jan 20, 2013 10:02 am    Naslov sporočila: RFM12 zanesljivost prenosa podatkov Odgovori s citatom

Testiram RFM12 povezavo.
Dosegel sem, da na 1000 telegramov dobim 4 napačne.

Kolikšna je pričakovana zanesljivost podatkov. Je 4 napake na 1000 dober ali slab rezultat?
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
RudiP
Profesionalec


Pridružen/-a: Sre Jul 2008 8:39
Prispevkov: 128
Kraj: KOPER

PrispevekObjavljeno: Pon Jan 21, 2013 7:03 am    Naslov sporočila: Odgovori s citatom

4/1000 je zelo dober rezultat. Kakšno hitrost si uporabil za prenos podatkov in na kakšni razdalji si to testiral. Na kateri frekvenci delata TFM12. Hvala
_________________
Lep pozdrav !
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 805
Kraj: Ljubljana

PrispevekObjavljeno: Pon Jan 21, 2013 8:45 am    Naslov sporočila: Odgovori s citatom

Hm, jaz sem pa mislil, da je to slab rezultat.

Testiral sem na razdalji od sobe do kuhinje, morda 15m
na 433 Mhz s hitrosjo 9600 Bd.


Testiranje ustavil pri

$,T1 on :217 ,*4A 18 0D DOBER dobri 2516 slabi 31
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
RudiP
Profesionalec


Pridružen/-a: Sre Jul 2008 8:39
Prispevkov: 128
Kraj: KOPER

PrispevekObjavljeno: Pon Jan 21, 2013 5:02 pm    Naslov sporočila: Odgovori s citatom

Zmanjšaj hitrost na 1200 kar je za prenos tvoje količine podatkov več kot preveč. Jast imam sedaj na 1200 in 100m razdalje. Uporabljam CRC8 za
kontrolo podatkov. Če paket ni uspešno sprejet zahtevam ponovni odgovor.

Prijetno delo še naprej.

_________________
Lep pozdrav !
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 805
Kraj: Ljubljana

PrispevekObjavljeno: Tor Jan 22, 2013 3:34 pm    Naslov sporočila: Odgovori s citatom

In si kaj meril, kolikšna je zanesljivost prenosa?

Bom pa probal kot praviš z hitrostjo 1200 Bd
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
RudiP
Profesionalec


Pridružen/-a: Sre Jul 2008 8:39
Prispevkov: 128
Kraj: KOPER

PrispevekObjavljeno: Sre Jan 23, 2013 6:32 am    Naslov sporočila: Odgovori s citatom

Vilko,

Ob nepravilnem crc-ju pošljem na drugo stran zahtevo za ponovni pošiljanje podatkov, zato se z računanjem zanesljivosti prenosa nisem bavil. V mojih
rešitvah so podatki dinamični v obliki bajt ali word.

_________________
Lep pozdrav !
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 805
Kraj: Ljubljana

PrispevekObjavljeno: Sre Jan 23, 2013 9:13 am    Naslov sporočila: Odgovori s citatom

Ja, hvala Rudi.

Seveda se da programirati pošiljanje zahteve za ponovitev telegrama.
Kaj naj rečem? Sem len in pretežno zaseden z drugimi nalogami, ki jih mora opraviti procesor. Običajno kar ignoriram napačno sprejet telegram.

Telegrami so običajno neke vrste raporti, poročila, ki jih sužnji pošiljajo gospodarju ciklično. Računam pač, da bo v naslednjem ciklu telegram uspešno prispel. Če gospodar pošlje ukaz, v naslednjem raportu zazna, je ukaz izveden ali ni, in ponovi ukaz, če je bil ingoriran s strani sužnja.

Do sedaj sem uporabljal RS485 zvezo, ki se je izkazala za zanesljivo.
Tole z RFM12 je bolj študija, ker so ga nekateri hvalili, kako dobro daleč nese.

Nisem še realiziral tvojega predloga, a ga bom.

Lep pozdrav
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 805
Kraj: Ljubljana

PrispevekObjavljeno: Čet Jan 24, 2013 5:51 pm    Naslov sporočila: Odgovori s citatom

RudiP je napisal/a:
Zmanjšaj hitrost na 1200 kar je za prenos tvoje količine podatkov več kot preveč. Jast imam sedaj na 1200 in 100m razdalje.


Hej, Rudi, kako pa nastaviš 1200 Bd?
Kolikor gledam nastavitve za RFM12 ni mogoče nastaviti na 1200 Bd.
Kako to nastaviš ti?
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
RudiP
Profesionalec


Pridružen/-a: Sre Jul 2008 8:39
Prispevkov: 128
Kraj: KOPER

PrispevekObjavljeno: Čet Jan 24, 2013 8:03 pm    Naslov sporočila: Odgovori s citatom

Vilko moja napaka. Najnižja hitrost je 2400, odgovoril sem na hitro brez preverit. Vedel sem da je najnižja hitrost očitno pozabil pa da je tu 2400. prijetno delo še naprej.
_________________
Lep pozdrav !
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 805
Kraj: Ljubljana

PrispevekObjavljeno: Pet Jan 25, 2013 3:33 pm    Naslov sporočila: Odgovori s citatom

Kako je z timer-interrupt rutino in RFM12?

Sprejemni program je lepo sprejemal program, kot ste videli zgoraj.
Želel sem programu dodati nekaj vsebine, za to potrebujem timer interrupt, a čim sem ga programiral, je program nehal sprejemati.

ALI SPIMOVE uporablja timer? in če ja, katerega? Mimogrede, poukusil sem z Timer0 in Timer1 - rezultat je isti. Če je programirana timer rutina,

Koda timer:

Koda:

'                   - - - - - - - - - - - - Timer0 - - - - - - - - - - - - - - - - - -
Const Timer1reload = 10
config timer1=timer,prescale = 1024
load timer1 , Timer1Reload
on ovf1 Timer1_isr
enable timer1
start timer1
enable interrupts
Dim Sekundabit As Bit
Dim Senddelay As Byte
Dim Cetrtsekbit As Bit
Dim Ti As Word
Goto Skip2

Timer1_ISR:
   load timer1, Timer1Reload
   Incr Ti
   If Ti > 999 Then                                         ' 1000 msec  = sekunda
    Set Sekundabit
    Ti = 0
   End If
   If Senddelay < 255 Then Incr Senddelay
Return


Skip2:



celoter program v priponki
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 805
Kraj: Ljubljana

PrispevekObjavljeno: Sob Jan 26, 2013 10:14 am    Naslov sporočila: Odgovori s citatom

Zožil se sum na eno samo instrukcijo:

Timer interrupt dela.
Glede na timer interrupt se postavi sekundabit vsako sekundo.
V glavnem programu vsako sekundo pretaknem ledico - utripanje - dela
V istem programu pišem na software uart - pokvari prebrano vsebino.

Če je instrukcija
Koda:
        Print #2 , "Sekunda"
komentirana, tedaj je izhod pravilen, in ledica utripa sekundno:
Citiram:
$,T1 on :25 ,*79 17 0D DOBER dobri 1 slabi 1
$,T1 on :26 ,*7A 17 0D DOBER dobri 2 slabi 1
$,T1 on :27 ,*7B 17 0D DOBER dobri 3 slabi 1
$,T1 on :28 ,*74 17 0D DOBER dobri 4 slabi 1
$,T1 on :29 ,*75 17 0D DOBER dobri 5 slabi 1
$,T1 on :30 ,*7D 17 0D DOBER dobri 6 slabi 1
Če pa pustim, da se koda izvaja, dobim garbage, kot temu rečemo:

Citiram:
Sekunda
Ou·Ö}ľDx7$ř,T1 on :32 ,*7F 16 0D SLAB dobri 0 slabi 1
Sekunda
Sekunda
Sekunda
Sekunda
OÔv±}ľDx1$<0>ˆ‰‰ząéÍ́±©ÝĹ݁Á"= I‘˝‰ÉĄ/š±…‰Ą/jRţSekunda
Sekunda
Sekunda
Sekunda
Ou·}ľDv`7<0>R"b˘Ĺ˝ąéÍс±©ÝĺĹ݁Á"= I‘˝‰ÉĄOš±…‰Ą/jRţSekunda
Koda,ki se izvaja vsako sekundo je sledeča:
Koda:
    If Sekundabit = 1 Then
         Toggle Portc.6
        Reset Sekundabit
        Print #2 , "Sekunda"
    End If


Imate kako idejo? Bila bi dobrodošla.

A, ja še to: software uart je definiran tako:
Koda:
Open "coma.7:9600,8,n,1" For Output As #2                   'izhod na A7 - pin 10 konektorja
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 805
Kraj: Ljubljana

PrispevekObjavljeno: Sob Jan 26, 2013 10:21 am    Naslov sporočila: Odgovori s citatom

Ma, ne vem, kaj se dogaja.
Ko sem končal pisanje prejšnjega prispevka, in spet odprl terminal, sem dobil:
Citiram:
$,T1 on :174 ,*4C 18 0D DOBER dobri 142 slabi 1
Sekunda
Sekunda
Sekunda
Sekunda
Sekunda
$,T1 on :175 ,*4D 18 0D DOBER dobri 143 slabi 1
Sekunda
Sekunda
Sekunda
Sekunda
Sekunda
$,T1 on :176 ,*4E 18 0D DOBER dobri 144 slabi 1
Sekunda
Sekunda
Sekunda
Sekunda
Sekunda
$,T1 on :177 ,*4F 18 0D DOBER dobri 145 slabi 1
Sekunda
Sekunda
Sekunda
Sekunda
Sekunda
$,T1 on :178 ,*40 18 0D DOBER dobri 146 slabi 1
Sekunda
Sekunda
Sekunda
Sekunda
Sekunda
$,T1 on :179 ,*41 18 0D DOBER dobri 147 slabi 1
Sekunda
Sekunda
Sekunda
Sekunda
Kar je seveda popolnoma pravilno, pa nisem se dotaknil mikroprocesorja...
Ja, čudna so pota...
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Jure
Urednik


Pridružen/-a: Pon Jan 2004 12:51
Prispevkov: 2058
Kraj: Ljubljana

PrispevekObjavljeno: Sob Jan 26, 2013 10:37 am    Naslov sporočila: Odgovori s citatom

Vilko,

edino, kar mi pride na misel, je sprememba temperature...

Lp
Jure
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Vlado
Profesionalec


Pridružen/-a: Ned Jan 2004 16:11
Prispevkov: 555
Kraj: Ljubljana

PrispevekObjavljeno: Sob Jan 26, 2013 11:53 am    Naslov sporočila: Odgovori s citatom

Joj, joj,
zakaj vstrajate na generiranju sekund tako da imate prekinitev vsako milisekundo?
Timer1 omogoča prekinitev vsako sekundo, tako bo ostalo dovolj časa za ostalo delo, prekinitev se bo zgodila samo enkrat v sekundi.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
vilko
Profesionalec


Pridružen/-a: Pon Jan 2004 11:54
Prispevkov: 805
Kraj: Ljubljana

PrispevekObjavljeno: Sob Jan 26, 2013 11:56 am    Naslov sporočila: Odgovori s citatom

To je zato, ker potrebujem (v planu) zakasnitev pošiljanja telegrama.
Senddelay bajt postavi vsak interupt sprejema na nulo,
Interrupt rutina ga premika naprej vsako milisekundo
Rutina za oddajanje telegrama čaka, da senddelay zrase na določeno random vrednost v milisekundah.
Nazaj na vrh
Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo    Kazalo po Svet elektronike forumu -> Samogradnje Časovni pas GMT + 1 ura, srednjeevropski - zimski čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
You cannot attach files in this forum
You cannot download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group