Re: TowiTek RFID Antenne Kategorie: Sonstige Hardware (von Franz-Peter - 23.12.2010 10:52) | ||
Als Antwort auf TowiTek RFID Antenne von Joerg - 22.12.2010 21:40 | ||
| ||
> Hallo, > ich versuche gerade mit meine Projectboard PRO128 die > TowiTek RFID Antenne mit dem entsprechenden Beispiel > (siehe unten) in Betrieb zu nehmen. > Ich habe aber noch einige Probleme. > > Da meine Serielle Schnittstelle 0 bereits belegt ist, benutze ich Seriell 1. > > > In dem Beispiel steht > > // 5 byte Empfangspuffer - 0 byte Sendepuffer > Serial_Init_IRQ(0,buffer,0,5,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD9600); > > Sind die 0 und 5 für die Buffer nicht verdreht???? > > in der Doku steht > > void Serial_Init_IRQ(byte serport,byte ramaddr[],byte recvlen,byte sendlen,byte par, > > Dann wird folgender Vergleich durchgeführt: > > if (felder[i]==0x100)break; > > felder ist doch ein Byte und kann niemals 0x100 werden oder???? > > > Für Hilfe währe ich sehr dankbar.... > > > Grü�e Joerg > > > > > /*' Auslesen der RFID - Antenne für C-Control #191553 > ' In diesem Programm werden bis zu 10 Karten ausgelesen und überprüft > ' wird eine gültige Karte erkannt wird LED1 geschalten > ' Ausgang des Lesers wird direkt an Port D.0 (Mega32) oder > ' Port E.0 (Mega 128)angeschlossen > ' erforderliche Library: IntFunc_Lib.cc > ' passende Transponder z.B. #191214,#191201,#191034,#191518,#130245,#130274 > ' by hiaslsoft 2010 > */ > > > // 5 byte Sende + Empfungspuffer + 6 byte interne FIFO Verwaltung > byte buffer[11]; // Array für 232 deklariert > byte felder[10]; // Array für Daten aus der Schnittstelle > byte count; > byte user[10][5]= //10 User + 5 Byte Daten > {125,1,2,0,3, //User1 > 125,1,2,232,90, //User2 > 1,197,171,26,48, //User3 > 125,1,2,0,3, //User4 > 129,1,2,0,3, //User5 > 1,127,188,47,128, //User6 > 125,1,2,0,3, //User7 > 125,1,2,0,3, //User8 > 125,1,2,0,3, //User9 > 129,113,0,232,90 //User10 > }; > > //------------------------------------------------------------------------------ > // Hauptprogramm > // > void main(void) > { > > count=1; > //Init RS232: 9600 bps, 8 Bit, 1 Stop, NP > // 5 byte Empfangspuffer - 0 byte Sendepuffer > Serial_Init_IRQ(0,buffer,0,5,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD9600); > Port_DataDirBit(PORT_LED1,PORT_OUT); > Port_WriteBit(PORT_LED1,PORT_OFF); > > > while(true) > > { byte i; > i=0; > AbsDelay(500); // 500m Sek. Wartezeit bis zur Grö�e des > // Empfangspuffers werden die seriellen > // Eingaben aufgezeichnet > > > while (i<=4) > { > felder[i]=Serial_ReadExt(0); > > if (felder[i]==0x100)break; // bei 0x100 ist der Puffer leer > else ++i; //solange Einlesen , bis 5Byte ausgelesen > } > if (felder[0]!=0) // Abfrage ob das Array gefüllt wurde > > { > display(); //Code anzeigen > vergleich(); //Code überprüfen > AbsDelay(500); > } > > } > } > void display(void) > { > int i; > for(i=0;i<=4;i++) > { > Msg_WriteInt(felder[i]); //Ausgeben der 5 Codebytes > Msg_WriteText("|"); > } > Msg_WriteText("r Leseversuch: "); //Anzahl der Leseversuche > Msg_WriteWord(count); > Msg_WriteText("r r"); > ++count; > } > void vergleich(void) > { > int x,usr; > byte open; > open=false; > usr=0; > while(usr<=9) > { > x=0; > while(x<=4) > { > if (felder[x]==user[usr][x]) // Vergleich des eingelesenen Codes und den Usern > { > open=true; //flag wird gesetzt , wenn die einzelnen bytes > ++x; // übereinstimmen > } > else > { > open=false; // wird ein falsches byte endeckt wird der nächste > break; // usercode überprüft > } > > } > if (open==true)break; //sobald ein gültiger Code registriert wird > //wird die Schleife verlassen > ++usr; //nächster User wird überprüft > } > if (open==true) > { //bei einem gültigen Code wird LED1 eingeschalten > Port_WriteBit(PORT_LED1,PORT_ON); //LED1 einschalten > AbsDelay(1500); //variable Verzögerung (Türöffner) > Port_WriteBit(PORT_LED1,PORT_OFF); //LED1 ausschalten > Serial_Init_IRQ(0,buffer,0,5,SR_8BIT|SR_1STOP|SR_NO_PAR,SR_BD9600); //serielle Schnittstelle leeren > } > } Hallo Joerg, das würde ich auch so sehen - so kann das Beispiel nicht wirklich funktionieren. Das mit der Bytevariable beim Empfang mit Serial_ReadExt ist mir auch schonmal passiert. In der Variable steht dann 0 wenn kein Zeichen empfangen wurde. Das ist auch solange ok, wie ein NULL-Zeichen nie empfangen werden kann. Da die Towitek Antenne die Bytes des Transponders aber nicht Hex-Codiert, sondern direkt binär ausgibt, kann das sehr wohl passieren. Ich habe die Antenne auch im Einsatz ( an meiner Anlage sind 4 Antennen angeschlossen) und bisher auch recht gute Erfahrung damit gemacht. Es gibt aber noch ein Problem auf das Du achten musst: Bleibt der Transponder im Empfangsbereich, so wird die ID alle 200ms erneut gesendet. Leider sendet die Antenne keine Anfangs- oder Endekennung. Wenn der Empfang sich also nur 1mal irgendwie 'verschluckt' und 1 Zeichen verlorengeht kommt eine einfache Empfangsroutine aus dem Takt und Du bekommst verschobene TransponderID's. Da es keine Anfangs- und Endekennungne gibt, kann man das meiner Meinung nach nur über eine Zeitüberwachung erkennen: Die 5 Zeichen eines Transponders müssen innerhalb eines bestimmten Zeitfensters ankommen, sonst ist die Synchronisation verloren gegangen und das oder die letzten Zeichen gehören schon zur nächsten �bertragung. Gru� Franz-Peter | ||
Antwort schreiben Antworten: Re: TowiTek RFID Antenne (von Joerg - 4.01.2011 7:47) Re: TowiTek RFID Antenne (von Franz-Peter - 4.01.2011 15:06) Re: TowiTek RFID Antenne (von Joerg - 4.01.2011 15:21) Re: TowiTek RFID Antenne (von PeterS - 5.01.2011 9:50) Re: TowiTek RFID Antenne (von Joerg - 5.01.2011 10:51) Re: TowiTek RFID Antenne (von hiaslsoft - 5.01.2011 13:36) Re: TowiTek RFID Antenne (von hiaslsoft - 5.01.2011 15:19) Re: TowiTek RFID Antenne (von Joerg - 5.01.2011 16:19) Re: TowiTek RFID Antenne (von Joerg - 23.12.2010 11:34) Re: TowiTek RFID Antenne (von Franz-Peter - 23.12.2010 12:23) Re: TowiTek RFID Antenne (von Joerg - 24.12.2010 7:41) Re: TowiTek RFID Antenne (von Franz-Peter - 24.12.2010 15:19) Re: TowiTek RFID Antenne (von Franz-Peter - 24.12.2010 10:49) 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) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum