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 PeterS - 24.12.2010 11:25)
Als Antwort auf Re: TowiTek RFID Antenne von Franz-Peter - 24.12.2010 10:49

>  > >
> > > > 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

Hallo Franz-Peter,

>Die CC pro hat da meiner Meinung nach (noch?) ein gewisses Defizit.

Was könnte man da besser machen?

Gruss Peter


    Antwort schreiben


Antworten:

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