آیا می توان با avr پرتکل iso7816 را بطور کامل پشتیبانی کرد ؟
اطلاعیه
Collapse
No announcement yet.
iso7816 با avr
Collapse
X
-
پاسخ : iso7816 با avr
سلام
من تو یک شرکت که " دیسپنسر های بنزین " تولید می کرد ، بودم و روی آنها دستگاه های که کارت هوشمند سوخت وجود داشت.
اسم شرکت " مخابرات راه دور شیراز" ؛ یک از اونا باز کردم دیدم میکرو کنترلر داخلیش atmega64 .
که فکر کنم بشه این پروتکل iso7816 را پیاده سازی کرد.
من تو پاساژ امجد ، طبقه بالای همکف رو برو پله ها قبلا یک مغازه است که کتاب آموزش کارت های هوشمند مثل سوخت و تلفنی و ... داشت که احتمالا این پروتکل هم توش باشه.خداوندا
از بچگی به من آموختندهمه را دوست بدار حال که بزرگ شده ام و کسی را دوست می*دارم می گویند:
فراموشش کن
دکتر علی شریعتی
دیدگاه
-
پاسخ : iso7816 با avr
با سلام،
اگر با پروتکل ISO7816 - T0 کارت راه می افته، با یه ارتباط ساده سریال میشه!
اینجا سر نخ رو داده :
http://electronicdesign.com/article/digital/drive-smart-cards-with-a-low-cost-mcu-s-uart15147
سخت افزار و کد رو داده، ولی کل کار با خودته تا کامل بشه .... :mrgreen:
مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....
Sh_Nourbakhsh@Yahoo.com
http://s2.picofile.com/file/7170362468/_Wall_e_.jp
دیدگاه
-
پاسخ : iso7816 با avr
با سلام،
این هم یه پروژه است به اسم شاه کلید که بر اساس همون پست قبلی طراحی و اجرا شده ( البته کامله ) یه نگاهی بهش بنداز، شاید بکارت اومد ......
http://s3.picofile.com/file/7528927197/AT3244.rar.html
ضمنا، اگر پورت سریال برات مهمه، میتونی سریال سخت افزاری رو برای کارت استفاده کنی و یه سریال نرم افزاری هم برای ارتباطت راه بندازی! و در بدترین حالت، از یه میکرو با دو سریال پورت استفاده کنی، مثلا همون ATmega64 ..... :mrgreen:
مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....
Sh_Nourbakhsh@Yahoo.com
http://s2.picofile.com/file/7170362468/_Wall_e_.jp
دیدگاه
-
پاسخ : iso7816 با avr
آقا ممنون یه موضوع دیگه شما می دونید فرکانسهایی که این استاندارد ساپورت می کنه چیه ؟
چون من مجبورم کلاک رو خودم با یک پین میکرو بهش بدم و نمی تونم مثل اون چیزی که شما دادید از کریستال میکرو استفاده کنم البته دلیلش هم همون ارتباط سریالکه با دستگاه دیگه ای دارم و باود ریت اون رو نمیشه با این کریستال دقیق در اورد .
دیدگاه
-
پاسخ : iso7816 با avr
نوشته اصلی توسط داریوش عباسیآقا ممنون یه موضوع دیگه شما می دونید فرکانسهایی که این استاندارد ساپورت می کنه چیه ؟
چون من مجبورم کلاک رو خودم با یک پین میکرو بهش بدم و نمی تونم مثل اون چیزی که شما دادید از کریستال میکرو استفاده کنم البته دلیلش هم همون ارتباط سریالکه با دستگاه دیگه ای دارم و باود ریت اون رو نمیشه با این کریستال دقیق در اورد .
شما شماتیک مثال پست دوم ( مثال کامل ) رو دیدی؟!
فرکانس کاریش دقیقا مشخصه ( 4.9152MHz ) و منبع کلاکش هم از میکرو جدا شده.
با تلفیق پروژه دومی و یه ارتباط سریال نرم افزاری ( که همه جا هست )، کار شما راه می افته ..... :mrgreen:
مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....
Sh_Nourbakhsh@Yahoo.com
http://s2.picofile.com/file/7170362468/_Wall_e_.jp
دیدگاه
-
پاسخ : iso7816 با avr
اره شماتیک دوم رو هم دیدم و نمی دونم چرا کریستال گذاشته ؛ می تونسته اون کلاک رو با میکرو درست کنه و از یه پین بهش بده .
البته سوال من هم همینه که کلا این استاندارد فقط با این کلاک کار می کنه یا نه ؟
با تایمر و استفاده از وقفه اون اختمالا بشه یک کلاک اینجوری ساخت البته هر چی گشتم نتونستم باود ریتهای دیگری که اختمالا ساپورت میکنه رو پیدا کنم . و راحتترین اونها رو انتخاب کنم.
دیدگاه
-
پاسخ : iso7816 با avr
نوشته اصلی توسط داریوش عباسیاره شماتیک دوم رو هم دیدم و نمی دونم چرا کریستال گذاشته ؛ می تونسته اون کلاک رو با میکرو درست کنه و از یه پین بهش بده .
البته سوال من هم همینه که کلا این استاندارد فقط با این کلاک کار می کنه یا نه ؟
با تایمر و استفاده از وقفه اون اختمالا بشه یک کلاک اینجوری ساخت البته هر چی گشتم نتونستم باود ریتهای دیگری که اختمالا ساپورت میکنه رو پیدا کنم . و راحتترین اونها رو انتخاب کنم.
ISO 7816-3 Smart Card Standard:
Part 3: Electronic Signals and Transmission Protocols
http://www.cardwerk.com/smartcards/smartcard_standard_ISO7816-3.aspxمادامی که از شخصی یاد میشود، او و افکارش زنده اند ....
Sh_Nourbakhsh@Yahoo.com
http://s2.picofile.com/file/7170362468/_Wall_e_.jp
دیدگاه
-
پاسخ : iso7816 با avr
با سلام،
شما این استانداره که در پست قبلی قرار داده بودم رو خوندی؟!
اگر میخوای روی این کارتها کار کنی، حتما بخونش، مهمه....
اینو تووش دیدی؟ :
In order to read the initial character (TS), all cards shall initially be operated with fi in the range of 1 MHz to 5 MHz.
فرکانس کریستال در راه اندازی اولیه، باید بین 1 تا 5 مگاهرتز باشه!
حالا شما مشکلت با باودریت هستش یا با فرکانس کریستال؟ این دو تا با هم فرق دارن.....
بعد از راه اندازی کارت، اگر خواستی، میتونی باودریت رو با اعمال تغییرات لازم در پارامترهای کارت، تغییر بدی.
این هم تووش نوشته که خیلی مهمه :
This initial etu is used during answer to reset is replaced by the work etu during subsequent transmission. F is the clock rate conversion factor and D is the bit rate adjustment factor to determine the work etu in subsequent transmissions.
For internal clock cards:
initial etu = 1/9600 s
work etu = (1/D)*(1/9600) s
For external clock cards:
initial etu = 372/fi s
work etu = (1/D)*(F/fs) s
The minimum value of fs shall be 1MHz.
The maximum value of fs is given by table 6.
I and P define the active state at VPP.
- Maximum programming current : Ipp = 1mA
- Programming voltage : Vpp = P.V
N is an extra guardtime requested by the card. Before receiving the next character, the card requires a delay of at least (12+N) etu from the start leading edge of the previous character. No extra guardtme is used to send characters from the card to the interface device.
The default values of these parameters are:
F = 372 ; D = 1 ; I = 50 ; P = 5 ; N = 0
این متن رو ببین، برادر آلمانی، ولفگانگ در مورد نحوه محاسبه باودریت نوشته و خلاصه ای از چند پاراگراف همون استاندارده! ( با فرکانس کریستال 3.5712 MHz ) :
کد:Use the current (1997) edition of 7816-3, not the obsolete (1989) edition. Its still not easy to do the calculations, so readers of this note should check it over carefully. 7816-3:1997 section 8.2 on work waiting time: wwt = 960 * WI * (Fi / f) f = card clock frequency - let us assume 3571200 Hz (3.5712 MHz) Fi is the clock rate conversion factor. It is coded as FI in the top 4 bits of ATR interface byte TA(1), and Table 7 is used to find the value of Fi. If TA(1) is not present, the default value of Fi is 372 (see below about this muddle). WI is coded in ATR specific interface byte TC(2); the default value if TC(2) is not sent by the card is 10 Using default values and the assumed card clock frequency of 3571200, we have: wwt = 960 * 10 * (372 / 3571200) = 1 second For the calculation of the etu (elementary time unit, or bit period on the I/O line), another factor comes in. 7816-3:1997 section 6.5.2: 1 etu = (F / D) * (1 / f) First, one of 7816-3's muddles must be cleared out of the way: if interface byte TA(1) is present, F = Fi as found via Table 7 (see above); if TA(1) is not present, F = Fd = 372; but if a successful PPS exchange in which the interface device sends PPS1 to request the card to accept values of F and D takes place, F = Fn as sent back by the card. (PPS is the new name for PTS) D is the extra factor: the I/O line bit rate adjustment factor (e.g. changing D from the default 1 to the value 2 halves the length of the etu, or doubles the bit rate). The same muddle as for F applies: first, it is coded as DI in the bottom 4 bits of ATR interface byte TA(1), and Table 8 is used to find the value of Di; if TA(1) is not present, the default value of Di is Dd = 1; and a PPS exchange can change D just as it can change F. So, using default values and a clock rate of 3.5712 MHz: 1 etu = (372 / 1) * (1 / 3571200) = 1.04167 sec (104.167 microsec or, of course, 1/9600 sec) It seems, therefore, that changing the value of Di in the ATR does not change the value of the wwt, but changing the value of Fi does. Is this what the writers of 7816-3:1997 meant? I don't think so, because the wwt required is related to the values of clock sent to the card, the internal structure of the card's CPU and clock processing circuits, and the application algorithm programmed into the card. Changing Fi and Di doesn't change the way that the card runs its application code, and so should not change the wwt - but changing Fi does change the wwt. FI from the card, besides influencing I/O bit rate, also indicates the max clock frequency that the card can be run at. So: FI = 0 (means Fi = 372), Di = 1 gives a bit rate of 9600 in our example, a wwt of 1 sec, and indicates (Table 7) a max clock frequency of 4 MHz (typical for a card run at 3 Volts Vcc) FI = 1 (also means Fi = 372), Di = 1 gives a bit rate of 9600 in our example, a wwt of 1 sec, and indicates (Table 7) a max clock frequency of 5 MHz (typical for a low cost card run at 5 Volts Vcc) FI = 3 (means Fi = 744), Di = 2 also gives a bit rate of 9600 in our example, but changes the wwt to 2 sec, and indicates (Table 7) a max clock frequency of 8 MHz (e.g. for a Hitachi 3109 card as used by "rollout spec" Mondex in a single application environment)
و این فایل رو بر اساس توضیحاتی که داده، درست کرده :
www.wrankl.de/HdC/CalcATR.xls
به سایت این برادر محترم آلمانی، ولفگانگ، یه سری بزن، کارش درسته!
این هم یه نمونه شبیه ساز کارت هست که اوپن سورس با VB نوشته، کلی بدرد میخوره :biggrin:
http://www.wrankl.de/TSCS/TSCS.html
ضمنا، این هم چیز خوبیه : :mrgreen:
http://www.smartcard.co.uk/tutorials/sct-itsc.pdf
بقول برادرای خارجکی
Any question?!
مادامی که از شخصی یاد میشود، او و افکارش زنده اند ....
Sh_Nourbakhsh@Yahoo.com
http://s2.picofile.com/file/7170362468/_Wall_e_.jp
دیدگاه
دیدگاه