Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: TowiTek RFID Antenne Kategorie: Sonstige Hardware (von Franz-Peter - 24.12.2010 10:49)
Als Antwort auf Re: TowiTek RFID Antenne von Joerg - 24.12.2010 7:41
Ich nutze:
C-Control Pro Mega128, CC-Pro 128 Application Board, Pro-Bot128
> >
> > > Hallo Franz-Peter,
> > >
> > > vielen Dank für Deine Antwort.
> > > Hättest Du mal ein Beispiel, wie du den Empfang durchführst...
> > >
> > > Zur Syncronisation:
> > >
> > > Wenn man nach einem fehlerhaften Empfang oder zyklich ein Serial_Init_IRQ aufrufen würde,
> > > mü�te man sich nicht auch dann wieder syncronisieren?
> > >
> > > Da die Unit ja nur 2 serielle Schnitstellen hat, wie hast du denn die 4 Antennen angeschlossen?
> > > Ã?ber welche Entfernung gehst Du? Mit oder ohne Pegelwandler?
> > >
> > > GrueÃ?e Joerg
> > Hallo Joerg,
> > Das Problem beim Synchronisieren ist, dass Du aufgrund fehlender Anfangs- und Endekennung einen
> > fehlerhaften Empfang gar nicht erkennen kannst. Es sind ja alle Zeichen gültig.
> > Und ein unbekannter Transponder ist in diesem Sinne auch nur dann ein Fehler wenn Du ganz sicher
> > bist, dass nur die hinterlegten Transponder an deine Antenne kommen.
> > Ein zyklisches Serial_Init kann den Fehler sogar erst provozieren: Wenn das Init gerade
> > stattfindet, wenn die Antenne eine ID sendet, gehen vielleicht genau die ersten 1 oder 2 Zeichen
> > verloren und Du beginnst mitten in der �bertragung das Zählen deiner 5 Byte.
> > Zumindest wenn Du keinerlei EinfluÃ? darauf hast, wann ein Transponder an die Antenne kommt,
> > geht es nur mit einer Zeitüberwachung.
> > Ich starte einen 50ms Timer , wenn ich das (evtl vermeintliche) 1. Zeichen empfange.
> > Mit dem Empfang des 5. Zeichens wird der Timer wieder gestoppt. Läuft er vorher ab, wird der Empfang
> > abgebrochen und startet wieder beim 1. Zeichen.
> > Den Timer realisiere ich als Bytevariable, die im 10ms Interrupt heruntergezählt wird.
> > Das habe ich soeben im Thread von Christian beschrieben:
> > (Beta 2.12.06 Timer Probleme  http://ccpro.cc2net.de/forum/lesen.php?eintrag=5922 ).
> > Ich realisiere alle meine Timer so.
> >
> > Das mit den 4 Schnittstellen ist in der Tat ein Problem gewesen, dass micht etwas Aufwand gekostet
> > hat: Ich habe an eine Mega32 3 SCC Bausteine Z8530 angeschlossen ( ich weis nicht, ob es den noch
> > neu gibt, aber ich hatte noch einige in der Schublade). Jeder enthält 2 serielle Schnittstellen und
> > wird über einen 8-Bit Datenbus angesprochen.
> > Da der Mega32 keinen externen Datenbus hat, habe ich das per Assemblerprogramm über die Ports
> > emuliert. Die Interruptverarbeitung für die Bausteine habe ich auch in Assembler geschrieben, da
> > der Interpreter für die Verwaltung von 6 seriellen Schnittstellen zu langsam ist.
> > Der Mega32 arbeitet nun als Konzentrator für die 4 Antennen und setzt die empfangenen ID's in eine
> > interne 1 Byte-Transpondernummer um. Ã?ber eine der Schnittstellen ist die Mega32 mit der Steuerung
> > (Mega128) verbunden, die nun abfragen kann, welcher Transponder wo erkannt wurde.
> > GruÃ?
> > Franz-Peter
> > P.S. ich beutze keine Pegelwandler, und die maximale Entfernung ist ca. 3m
> >
>
> Hallo Franz-Peter,
>
> vielen Dank für Deine ausführliche Erklärung.
>
> Da du sehr viel in Assembler schreibst und sehr zeitkritisch bist, stellt sich für mich die Frage,
> warum du ein C-Control benutzt und nicht den AVR C Compiler?
>
> Kann man das mit den 6 Schnitstellen nicht einfach über ein 'oder' machen, wenn man davon
> ausgehen kann, das immer nur eine Antenne gleichzeitig verwendet wird?
>
> Ich habe da noch mal eine Frage: Benutzt Du eine Antenne im AuÃ?enbereich?
> Die Antennen sind ja nur bis 0 Grad spezifiziert und ich wollte eine an der
> Eingangstür verwenden.
>
> Mit der syncronisation hatte ich mir das wie folgt vorgestellt:
> (Mü�te eigentlich ähnlich deinem Timer sein)
>
> In einem Thread alle 50ms das erste Zeichen abfragen.
>
> Wenn Zeichen empfangen dann ein Thread_Delay von 50ms
>
> Wenn empfangen Daten falsch (egal ob asynchron oder nicht registrierter Chip)  ==> Seriell_Init
>
>
> Grü�e Joerg
>
Hallo Joerg,
insgesamt ist der Anteil der in Assembler geschriebenen Software bei mir immer noch recht gering.
Auch wenn das jetzt bei dem Mega32 für die RFID Antennen etwas mehr ist. Meine 'Hauptsteuerung'
mit Mega 128 enthält eigentlich wenig zeitkritisches. Das lässt sich alles noch mit dem Interpreter
beherrschen. Weil ich sehr viel Bitverarbeitung benötige ( bisher ca. 100 I/O für Lichtschranken,
Relais u.ä - und es wird noch mehr werden) habe ich mir nur ein paar Assemblerroutinen für eine
komfortable Bit-Verarbeitung geschrieben. Die CC pro hat da meiner Meinung nach (noch?) ein gewisses
Defizit.
Ich setze die RFID Antennen nur im Innenbereich ein. Deshalb ist der Temperaturbereich für mich kein
Problem.
Die Synchronisation müsste so wie Du es vorhast, auch funktionieren. Ich würde nach dem Thread_Delay
dann abfragen, ob genau 5 Zeichen empfangen wurden (geht ja mit Serial_IRQ_Info). Wenn nicht, bist
du auf jeden Fall asynchron und kannst gleich ein seriell Init machen.
GruÃ? - und ein frohes Weihnachtsfest
Franz-Peter


    Antwort schreiben


Antworten:

Re: TowiTek RFID Antenne (von PeterS - 24.12.2010 11:25)
    Re: TowiTek RFID Antenne (von Franz-Peter - 24.12.2010 13:13)
        Re: TowiTek RFID Antenne (von PeterS - 25.12.2010 23:23)