ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

صفحه 1 از 4 1234 آخرین
نمایش نتایج: از 1 به 10 از 33
  1. #1
    2009/09/12
    اردبيل
    2,503
    121

    ساخت ريدر 125khz براي تق هاي rf id

    سلام :redface:
    خسته نباشين دوستان
    بعد از روز ها تلاش نتايج تجربه هاي من اينه
    کسي اطلاعاتي داره که بشه اين طرح رو کامل کرد
    طراح سايت روسي مي باشد
    لينک سايت
    www.serasidis.gr
    لينک مستقيم مدار ريدر
    http://www.serasidis.gr/circuits/RFID_reader/125kHz_RFID_reader.htm










    برنامه مورد نظر در اتمل استديو نوشته شده و به زبان سي مي باشد (براي ميکرو atiny 13)
    لينک برنامه م***و کنترلر atiny 13
    http://www.serasidis.gr/circuits/RFID_reader/125kHz_RFID_reader.rar
    حالا از دوستان کسي مي تونه کمک کنه تا ميکرو رو عوض کنيم و بر روي ميکرو atmega 8 بزنيم ؟


    اضافه شده در تاریخ :
    هدف:
    ساخت فرکانس 125 کيلو هرتز براي rf id ريدر


    براي ساخت ريدر 125 khz نياز به سيگنال 125 کيلو هرتز داريم براي اين سيگنال ميتوان از انواع فيليپ فلاپ ها استفاده کرد به دليل فرکانس نسبتا زياد و عدم پايداري فيليپ فيلاپ ها استفاده از تايمر 2 ميکرو کنترلر براي ساخت اين فرکانس توصيه مي شود
    بنده با محيط بيسکام براي اين قسمت برنامه نوشتم
    اصول کاري به اين صورت مي باشد که تايمر 2 را در حالت ctc مد راه انداخته و با هر بار رسيدن به فلگ به صورت نرم افزاري باعت تغير وضعيت پايه oc2 مي شويم (toggle)
    کد برنامه به اين صورت مي باشد

    $regfile = "m8def.dat"

    $crystal = 16000000
    Config Pind.7 = Output
    Config Timer2 = Timer , Compare = Toggle , Prescale = 1 , Clear Timer = 1
    Stop Timer2
    Ocr2 = 62 '62for 125000hz

    Start Timer2
    برنامه در پست بعدي همراه شبيه سازي قرار داده خواهد شد
    [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]
  2. #2
    2012/12/30
    بوشهر
    3,206
    1,111

    پاسخ : ساخت ريدر 125khz براي تق هاي rf id

    سلام
    حالا حامد جان چرا اینجا تاپیک رو زدی(توی ARM)؟
    برنامه رو بذار تا در حد سوادمون بهت بگیم چیکار کرده(پ نکن؛ کدهاشو بذار).
  3. #3
    2009/09/12
    اردبيل
    2,503
    121

    پاسخ : ساخت ريدر 125khz براي تق هاي rf id

    راس ميگي اشتباه کردم هواسم اصلا نبود الان ميگم انتقال بدن
    کد برنامه atyni 13
    کد:
    /*
    		125kHz RFID reader. 
    
    		Target: ATtiny13 at 9.6MHz internal RC oscillator.
    
    		- Input pin : PB1 (RFID signal).
    		- Output pin: PB2 (Buzzer) Sounds when an RFID tag is been read successfully.
    		- Output pin: PB4 (TxD) Transmits the RFID tag serial number (2400 bps 8n1).
                  This pin is TTL logic (0 or +5V). Do not connect it direct to RS232 port. Use a voltage shifter such as MAX232. 		
    		
    		
    		Frimware v1.00 was written by Vassilis Serasidis on 18 August 2012. 
    		http://www.serasidis.gr
    		avrsite@yahoo.gr, info@serasidis.gr
    		
    		This code is distributed under GNU GPL V3.
    		Commercial use of this project can be done after the permission of the author (Vassilis Serasidis).
    		
    		
    		There is no warranty for this project. Use it with your own responsibility.
    */
    
    
    
    #include <avr/io.h>
    #include <avr/interrupt.h>
    #include <util/delay.h>
    #include <string.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <stdint.h>
    
    #define COIL   PB0
    #define SIGNAL_IN PB1
    #define BUZZER  PB2
    #define PWM_PIN1 PB3
    #define TXD		 PB4
    #define TIME1   18
    #define TRUE   0
    #define FALSE   1 
    volatile unsigned char counter1 = 0;
    volatile unsigned char receivedBits = 0,startBitCounter = 0; 
    unsigned char dataBuffer[8];// = {0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x88}; //8 bytes * 8 bits = 64 bits received data length from RFID tag.
    unsigned char parity,colParity;
    
    void hex2Ascii (void);
    void delay_time(unsigned long counter);
    void sendTxD (unsigned char txd);
    void init_PWM (void);
    
    int main (void)
    {
    	DDRB |= ((1<<COIL) | (1<<BUZZER) | (1 << PWM_PIN1) |(1<<TXD));
    	DDRB &= ~(1<<SIGNAL_IN); 
    
     	init_PWM();
    
    	unsigned char wrongParity,k = 0,m,n,temp = 0,temp2,p,r;
    	unsigned char i=0;
    
    	sei();          // Enable global interrupts
     
    	startBitCounter = 1;
     
     
      for (;;)
      {  		
    		
    		for(n=0;n<2;n++)
    		{
    			while(counter1 == 255);
    			i=0;
    
    			for(k=0;k<4;k++) 
    			{
    				while(i<250) //Stay here until you find a steady logic '1' to PB1 for some time. 
    				{
    					if(bit_is_set(PINB,PWM_PIN1))
    						i++;
    					else
    						i=0;
    				}
    			}
    		
    			while((bit_is_set(PINB,PWM_PIN1))); //Stay here until you find a logic '0' to PB1.
    			
    
    			parity = 0;
    			for(i=0;i<5;i++) // There is 1 byte (8-bit) for the customer ID (bits 10-13 and bits 15-18) and 4 bytes (32-bit) for the RFID tag serial number (bits 20-24, 26-29, 31-34 and 36-39).
    			{	       // That is (4 bits + 1 parity bit)= 5 bits. 5 bits * 10 
    				dataBuffer[i] = 0;
    			
    				for(m=0;m<2;m++) // 2 times is needed to complete 1 byte (2 * 4 bits)
    				{
    				
    					for(k=0;k<4;k++) // 4 bits of data for each RFID number.
    					{
    						dataBuffer[i] <<= 1;
    				
    						if((bit_is_set(PINB,PWM_PIN1))) //Save the 4-bit part of the 32-bit Tag's serial number.
    							dataBuffer[i] |= (1<<0);
    						else
    							dataBuffer[i] &= ~(1<<0);
    
    						receivedBits++;	
    						_delay_us(TIME1);
    					}
    					parity >>= 1;
    					if((bit_is_set(PINB,PWM_PIN1)))
    						parity |= (1<<7);      //The fifth bit is the parity of the previous 4 bits. Is been stored to the 'parity' variable.
    					_delay_us(TIME1);
    				}			
    			}
    		}
    		colParity = 0;
    		for(k=0;k<4;k++) // Read the 4 bits of column parity (bits 60-64).
    		{
    			colParity <<= 1;
    				
    			if((bit_is_set(PINB,PWM_PIN1))) //Save the 4-bit part of the 32-bit Tag's serial number.
    				colParity |= (1<<0);
    			else
    				colParity &= ~(1<<0);
    			_delay_us(TIME1);
    		}
    		
    		cli(); //Clear interrupts and check the parity of the collected 32 bits from the serial number (4 bytes length).
    		//TCCR0B &= ~(1<<CS00);
    		
    		wrongParity = FALSE; //We give the value of FALSE to the 'wrongParity' variable.
    		p = 1;
    		r = 4;
    		for(m=1;m<5;m++) //Check for parity only the 4 bytes that contain the Tag's serial number.
    		{
    			for(i=0;i<2;i++)
    			{
    				temp = 0;
    				for(n=(r+0);n<(r+4);n++) //Check the parity of the first 4 bits of the Tag's serial number.
    				{						
    					if(bit_is_set(dataBuffer[m],n)) 
    						temp ^= 1;
    				}
    				//temp %= 2; //Find of the 4-bit number has odd or even number of 'Ones'.
    				temp2 =(parity & p); //Compare the calculated parity with the stored one from the 'parity' variable.
    				
    				if(temp2 != 0)
    					temp2 = 1;
    				p <<= 1;	
    
    				//sendTxD(0x30 + temp);
    				//sendTxD(0x30 + temp2);
    				//sendTxD(' ');
    
    				if(temp != temp2) //If the calculated parity is not the same with the stored one,
    				{
    					wrongParity = TRUE; //mark 'wrongParity' variable as TRUE because the parity is wrong and
    					break;       //terminate the 'for' loop.
    				}
    
    				r ^= 0b00000100;
    			}
    
    		}		
    		
    		p = 0b00000001;
    		for(m=0;m<4;m++)
    		{
    			temp = 0;
    			for(i=0;i<5;i++)
    			{
    				if(!(dataBuffer[i] & p)) 	
    					temp ^= 1;
    				p <<= 4;
    				if(!(dataBuffer[i] & p)) 
    					temp ^= 1;	
    				p >>= 4;				
    			}
    			temp2 =(colParity & p); //Compare the calculated parity with the stored one from the 'parity' variable.
    			
    			if(temp2 != 0)
    				temp2 = 1;
    			p <<= 1;
    			
    			if(temp != temp2) //If the calculated parity is not the same with the stored one,
    			{
    				wrongParity = TRUE; //mark 'wrongParity' variable as TRUE because the parity is wrong and
    				break;       //terminate the 'for' loop.
    			}
    		}				
    
    			if(wrongParity == FALSE) //If the parity calculation gives correct parity then
    				hex2Ascii();     //go to send the Tag's serial number as ASCII trough TxD pin.
    
    
    			for(m=0;m<8;m++)
    				dataBuffer[m] = 0; //Clear data buffer.
    			//TCCR0B |= (1<<CS00);
    			sei();			
    
      }
    }
    
    //===================================================================
    // Convert a Hex number into ASCII.
    //===================================================================
    void hex2Ascii (void)
    {
    	uint32_t temp = 0;
    	unsigned char i,buffer[12];
    
    
    	//sendTxD(' '); //send a 'space' character.
    
    	for(i=1;i<5;i++) //Leave the byte 0 (8-bit customer ID) and get the next 32-bit serial number of the Tag.
    	{
    		temp <<= 8;
    		temp |= dataBuffer[i];
    	}
    
    	ultoa(temp,buffer,10); //Convert the 32-bit number 'temp' into ASCII string 'buffer'.
    
    	//PORTB |= (1<<BUZZER);
    	for(i=0;i<strlen(buffer);i++)
    		sendTxD(buffer[i]);
    
    	sendTxD(0x0d);
    	_delay_ms(1000);
    	//PORTB &= ~(1<<BUZZER);
    }
    
    //===================================================================
    // Software based Serial Transmittion.
    // Transmits one character each time it runs.
    // (2400 bps at 9.6MHz internal RC oscillator).
    //===================================================================
    void sendTxD (unsigned char txd)
    {
    	unsigned char bitCounter = 0; 
    
    	PORTB &= ~(1 << TXD);
    		_delay_us(405);
    	for(bitCounter=8; bitCounter>0; bitCounter--)
    	{
    		if (bit_is_clear(txd, 0))
    			PORTB &= ~(1 << TXD);
    		else
    			PORTB |= (1 << TXD);
    
    		_delay_us(405);
    		txd >>= 1;
    	}
    	PORTB |= (1 << TXD);
    	_delay_us(405);
    }
    //==============================================================================
    // Interrupt from INT0 pin.     
    //==============================================================================
    ISR(PCINT0_vect)  ///INT0 Handler
    {
    	if((counter1 > 90)&&(bit_is_set(PINB,SIGNAL_IN)))
    		PORTB |= (1<<PWM_PIN1);
    	else
    	if((counter1 > 90)&&(bit_is_clear(PINB,SIGNAL_IN)))
    		PORTB &= ~(1<<PWM_PIN1);
    		
    
    	counter1 = 0;
    }
    
    //==============================================================================
    //     
    //==============================================================================
    ISR(TIM0_OVF_vect) //Timer0 Overflow Handler
    {
    	if(counter1 < 255)
    		counter1++;
    	else
    		PORTB |= (1<<PWM_PIN1);
    }
    
    
    //===============================================================================
    // PWM function. Is set to produce the 125kHz square wave.
    //===============================================================================
     
    void init_PWM (void)
    {
    	TCCR0A |= (1<<WGM00 | 1<<WGM01 | 1<<COM0A0 | 1<<COM0B0); 
    	TCCR0B |= (1<<WGM02 | 1<<CS00 | 1<<FOC0A | 1<<FOC0B);// Configure timer 1 for CTC mode
    	TIMSK0 |= (1<<TOIE0); //Timer/Counter0 Overflow Interrupt Enable
    	PCMSK |= (1<<PCINT1);// enabele pcint1 inturubt
    	GIMSK |= (1<<PCIE); /// enabel pin intrubt 
    
    	OCR0A  = 38;      // Set CTC compare value38
    	OCR0B  = 38;      // Set CTC compare value38
    //	OCR0A  = 5; 
    //	OCR0A  = 5; 
    	
    }
    [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]
  4. #4
    2009/09/12
    اردبيل
    2,503
    121

    پاسخ : ساخت ريدر 125khz براي تق هاي rf id

    http://freshengineer.com/blog/simple-rfid-reader-module-design/
    لينکي براي دمودلاسيون اطلاعات کارت
    [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]
  5. #5
    2014/05/22
    200
    5

    پاسخ : ساخت ريدر 125khz براي تق هاي rf id

    نقل قول نوشته اصلی توسط Rohalamin
    سلام
    حالا حامد جان چرا اینجا تاپیک رو زدی(توی ARM)؟
    برنامه رو بذار تا در حد سوادمون بهت بگیم چیکار کرده(پ نکن؛ کدهاشو بذار).
    سلام حامد جان برای دانلود سورس کد غیر ممکنه دانلودش ، وب سایت خرابه
  6. #6
    2009/09/12
    اردبيل
    2,503
    121

    پاسخ : ساخت ريدر 125khz براي تق هاي rf id

    سورسشو دانلود کردم ولی جوابی نگرفتم
    چیز ناقصی هست و شاخت ریدر عملا غیر ممکن و سخته
    از ماژول استفاده کنین راحت
    [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]
  7. #7
    2014/05/22
    200
    5

    پاسخ : ساخت ريدر 125khz براي تق هاي rf id

    نقل قول نوشته اصلی توسط حامد رحيمي
    سورسشو دانلود کردم ولی جوابی نگرفتم
    چیز ناقصی هست و شاخت ریدر عملا غیر ممکن و سخته
    از ماژول استفاده کنین راحت
    یعنی شما ونه دوستان جوابی نگرفتین؟؟
  8. #8
    2009/09/12
    اردبيل
    2,503
    121

    پاسخ : ساخت ريدر 125khz براي تق هاي rf id

    نه والا
    [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]
  9. #9
    2010/08/19
    کردستان
    1,925
    897

    پاسخ : ساخت ريدر 125khz براي تق هاي rf id

    سلام اقا حام خوبی ؟

    آقا من خیلی وقت پیش کلی رو این برد مانور دادم اما جواب نداد که نداد.
    اگه با اسکوپ خروجی دیتا رو ببینی خیلی با چیزی که اون قرار داده فرق می کنه و اصلا دیتا متقارن نیس.

    این نمونه ای که من ساختم


    من مقادیر خازن و سیم پیچ رو به بهترین شکل انتخاب کرده بودم به صورتی که شکل سینوسی بدون اعوجاجی رو در خروجی داشتم.
    قبل از مانور روی سورس باید ابتدا دیتای تگ رو بتونید درست دریافت کنید و متاسفانه من نتونستم این مشکل رو حل کنم و نشد بیشتر روش وقت بزارم.
    دوستان پایه باشن ماهم در خدمتیم که یه ریدر سادو و کارآمد بسازیم...

    موفق باشید
    چرا ناراحتی پاتریک!
    + امروز ی بچه دیدم سرچهارراه گل میفروخت
    - از دیدنش ناراحت شدی؟
    + نه
    پس چی ناراحتت کرده
    + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
    ------------------------------------------------------------------------------------------------------
    تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
  10. #10
    2014/05/22
    200
    5

    پاسخ : ساخت ريدر 125khz براي تق هاي rf id

    نقل قول نوشته اصلی توسط سوران آراسته
    سلام اقا حام خوبی ؟

    آقا من خیلی وقت پیش کلی رو این برد مانور دادم اما جواب نداد که نداد.
    اگه با اسکوپ خروجی دیتا رو ببینی خیلی با چیزی که اون قرار داده فرق می کنه و اصلا دیتا متقارن نیس.

    این نمونه ای که من ساختم


    من مقادیر خازن و سیم پیچ رو به بهترین شکل انتخاب کرده بودم به صورتی که شکل سینوسی بدون اعوجاجی رو در خروجی داشتم.
    قبل از مانور روی سورس باید ابتدا دیتای تگ رو بتونید درست دریافت کنید و متاسفانه من نتونستم این مشکل رو حل کنم و نشد بیشتر روش وقت بزارم.
    دوستان پایه باشن ماهم در خدمتیم که یه ریدر سادو و کارآمد بسازیم...

    موفق باشید
    سلام سوران جان
    من پایه ام ، اما نمیدونم از کجا باید شروع کنم ؟ و با بسکام هم مینویسم .
صفحه 1 از 4 1234 آخرین
نمایش نتایج: از 1 به 10 از 33

موضوعات مشابه

  1. ساخت گیرنده RFID 125KHz
    توسط mojitaba در انجمن پروژه ها و مقالات تكميل شده AVR
    پاسخ: 25
    آخرين نوشته: 2019/05/08, 11:40
  2. مشکل در تگ های مچی که ار سایت خریدم (تگ RFID 125KHZ مدل دستبندی)
    توسط parsafar در انجمن مدارهای الکترونیکی فرکانس بالا
    پاسخ: 0
    آخرين نوشته: 2015/05/15, 21:42
  3. ريدر RFID از نوع UHF و تگ برچسبي رو از کجا بخرم؟
    توسط sobhan537 در انجمن ماژول های RFID و NFC
    پاسخ: 2
    آخرين نوشته: 2014/02/06, 11:02
  4. مدار داخلی یک RFID reader 125KHZ
    توسط سوران آراسته در انجمن مدار هاي ديجيتال
    پاسخ: 0
    آخرين نوشته: 2013/12/21, 23:12
  5. نحوه ساختن RFID ريدر فقط به يك AVR
    توسط Questioner در انجمن ماژول های RFID و NFC
    پاسخ: 16
    آخرين نوشته: 2012/04/16, 18:51

کاربرانی که این تاپیک را مشاهده کرده اند: 2

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •