(Bascom AVR) تراشه نویسی و کار با (card magnetic)کارت های مغناطیسی امنیتی در محیط بسکام(مهندسی برق _ الکترونیک)
پژوهشگر و نویسنده: دکتر ( افشین رشید )
نکته : آیا تاکنون کارت مغناطیسی دیده اید ،آنها را با کارت های اعتباری و کارت های تلفن که روی خود یک تراشه دارند. اشتباه نگیرید اشتباه نگیرید ، این کارت ها بدون تماس کار خود را انجام میدهند ، فقط کافی است شما ان را از شکاف یاروی دستگاه مرکزی (کارت خوان رد کنید ، دستگاه کارت خوان با میدانی که ایجاد میکند ، کارت را تغذیه کرده وکارت کد موجود در حافظه ی خود را برای دستگاه می فرستد.
ویژگی اصلی این کارت ها دارا یودن یک نوار سیاه رنگ است.کارت خوان این دستگاه که بانام ریدیر کارت مغناطیسی(reader card magnetic ) در بازار موجود است . دارای 5 سیم به شرح زیر است :
1 -قرمز = تغذیه 5 ولت کارت ریدر
2 -مشکی = تغذیه گراند کارت
3 -زرد = انتخاب تراشه
4 -سبز = کلاک کارت ریدر
5 -آبی = خروجی دیتا برای میکرو
با دستورات زیر در محیطBascom avr میتوان کارت ریدر را برای میکرو معرفی کرد:
_mport Alias Piny
_mdata Alias X
_mcs Alias X
_mclock Alias X
Config Porty = Input
Porty = 255
READMAGCARD var , count , coding
Piny Alias mport:_با این دستور پورتی که کارت ریدر به ان متصل است مشخص میشود مانند :
PinB Alias mport _
X Alias mdata:_نشان میدهد که پایه داده به کدام یک از پایه های میکرو متصل شده است ، X شماره پایه است که میتواند بین 0 تا 7 باشد (سیم آبی ) X Alias mcs :_نشان میدهد که پایه انتخاب به کدام یک از پایه های میکرو متصل شده است ، X شماره پایه است که میتواند بین 0تا 7 باشد (سیم زرد ) X Alias mclock :_نشان میدهد که پایه کلاک به کدام یک از پایه های میکرو متصل شده است ، X شماره پایه است که میتواند بین0 تا 7 باشد (سیم سبز ) Input = Porty Config : پورتی که کارت ریدر به ان متصل است حتما باید به عنوان ورودی تعریف شود
255 = Porty : تمام وردی های پورت را یک میکند ( تا به فقط به صفر شدن واکنش نشان دهند) با دستور زیر میتوان خروجی کارت ریدر را خواند:
READMAGCARD var , count , coding
Var:در این متغیر بایت خوانده شده قرار میگیرد
Count:در این متغیر شماره بیت خوانده شده قرار میگیرد،شماره بیت طبق جدول روبرو است. داده های خوانده شده در کنار هم قرار میگیرند و یک رقم را به وجود میاورد ، این رقم ها میتواند رمز عبور، کد شناسایی ... باشد.
Coding:بر روی کارت های مغناطیسی دارای سه خط وجود دارد ، در صورتی که شما از خط اول استفاده کنید باید به جای Coding رقم 7 را قرار دهید و در صورتی که از خط دوم یا سوم استفاده کنید باید به جای Coding رقم 5 را قرار دهید.
مانند:
$regfile = "m16def.dat" : $crystal = 1000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Pina.0 , Db5 = Pina.1 , Db6 = Pina.2 , Db7 =
Pina.3 , Rs = Pina.4 , E = Pina.5
Dim A As Byte , B As Byte
_mport Alias Pinb
_mdata Alias 0
_mcs Alias 1
_mclock Alias 2
Config Portb = Input
Portb = 255 : Do
Reset Porta.0 : Locate 1 , 1 : Lcd "Insert your card"
Readmagcard A , B , 5
Select Case A
Case 12
Locate 1 , 1 : Lcd "welcome mr a" : Wait 2 : Cls
Case 13:
Locate 1 , 1 : Lcd "welcome mr b" : Set Porta.0 : Wait 5 : Cls
Case 14 :
Locate 1 , 1 : Lcd "welcome mr c" : Set Porta.0 : Wait 5 : Cls
Case 15 :
Locate 1 , 1 : Lcd "welcome mr d" : Set Porta.0 : Wait 5 : Cls
برنامه بالا مربوط به یک سیستم نگهبانی است ، فقط افرادی که دارای کارت میباشند و مقداریر حافظه کارت انها در دستگاه ثبت شده میتوانند وارد شود.
پژوهشگر و نویسنده: دکتر ( افشین رشید )