![]() |
![]() |
![]() |
![]() |
Главная Чип-карты: устройство и применение 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [ 17 ] 18 19 20 21 22 23 24 25 26 27 ЧИП-КАРТЫ. УСТРОЙСТВО и ПРИМЕНЕНИЕ 860 NEXT F 870 PRINT ;PRINT R; стираний зоны № 2 произведено; 12B-R разрешено 99 END 5О00 H=0:B$= :C$= :H$=- :K=0:FOR F=B ТО Е 5010 IF H(F)=1 THEN В$=е5* 1 ELSE B$=ejt 0 6015 IF LEN(BJ)=25S THEN C$=C$tLEFr$(B$.1):6$=RIGHT$(BJ,254) 5020 IF H(F)=1 THEN H=Ht2 (3-K) 6030 K=K+1 5040 IF K<=3 THEN 5100 5050 H$=H$+HEX$(H) 50B0 K=0;H=0 5100 NEXT F 5110 PRINT H$ 5220 RETURN 6000 REN (c)1995 Patrick GUEULLE Результат этой обработки выводится последовательно, в два экрана; пример представлен нижа Зона изготовителя. 32FF 0011001011111111 Зона владельца: В76091101С12Е5ВВ 0110011101100000100100010001000000011100000100101110010110111011 Маска секретного кода: FFFF Счетчик ошибок. FFFF 1111111111111111 Предыдущий код введен правильно Защищенная зона: 0042300000423000 О0О0О0ОО010О0О1О0С110О0ОООООО0О0ОО0О00О0О1ОО0О100011000000000000 Рабочая зона № 1: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFPFFFFFFFFF 11 11111111111111111111111111111111П111111111111111111111111111111111111 1111111111 1111111111111111111111111111111111111111111111111111111111111111111111 1111111111 1111111111111111111111111111111111111111111111111111111111111111111111 1111111111 11111111111111 PBENJI = 1, R0ENJ1 = 1 Маска кода стирения зоны 1 . FFFFFFFFF ---Следующая страница, нажать <ENTER>---- Рабочая зона Щ 2: FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF 1111111111111111111111111111111111111111111111111111111111111111111111 1111111111 1111111111111111111111111111111111111111111111111111111111111111111111 1111111111 АБОТА С СИНХРОННЫМИ КАРТАМИ 1111111111111111111111111111111111111111111111111111111111111111111111 1111111111 11111111111111 peEN 2 = 1, RDEKJ2 = 1 Мабка кода стирания зоны № 2: FFFFFF Счетчик стираний зоны № 2: FFFFFFFFFFFFFFFFFFFFFFF 1111111111111111111111111111111111111111111111111111111111111111111111 1111111111 11111111111111111111111111111111111111111111 О стираний зоны № 2 произведено, 12В разрешено АРТЫ НА МИКРОСХЕМАХ I2C лтя электронные карточки с I2C и похожими шинами производит [ножество изготовителей, не следует забывать, что именно компа-ня Philips разработала концепцию шины 12С . Выпустив карты D2000 (256 байт) и D4000 (512 байт), фирма осле многих лет производства пнкартированных микросхем CF 8582 с нестандартной цоколевкой наконец-то приняла цоко-[евку, рекомендованную в ISO 7816. Поэтому обозначение кон-актов, приведенное на рис. 4.14, следует на сегодняшний день счи-*гать абсолютно устаревшим, тем более что для карты на базе PCF 8582 МС необходимо подключение внешней RC-цепи к контакту РТС согласно схеме, представленной на рис. 4.15. В результате этой эволюции устройства, рассмотренные в настоящей главе, MoriT считывать и записывать данные в память вышеуказанных карт, которые есть даже в розничной торговле (компания SELECTRONIC), причем достаточно дешевы и обладают памятью большого объема - 2048 и 4096 бит соответственно. ![]() Рис. 4.14. Цоколевка чип-карты на микросхеме PCF 8582МС Рис. 4.15. Внешняя RC-цепь для микросхемы PCF 8582 мС ЧИП-КАРТЫ. УСТРОЙСТВО И ПРИМСНШИЕ Эти карты интересны еще и тем, что обеспечивают свободны: доступ как дЛ чтения, так и для записи, поскольку не снабжены никакой системой защиты. В отличие от стандартных синхронных, в чип-картах I2C обмен данными осуществляется не побитно, а побайтно, причем можно выбрать произвольный адрес и начиная с него последовательно считывать любое количество байтов. Поэтому программа чтения LECTI2C.BAS действует совсем иначе, нежели ранее описанные программы. 10 ВЕН - LECTI2C.BAS - 20 KEY OFF :CLS :DEF SEG=0 30 Sl=PEEK(№ El+256-PEEK(SH 9) для LPTl 40 S2=PEE №40Alt256.PEEK(SH40B) для LPT2 50 OUT S2,0 :E2=S2*1 60 IF (INP(E21 AND 64) о 0 THEN S=S1 :COTO 100 70 OUT S2.12fl 60 IF (INP(E2) AND 64) о 64 THEN S=S1 ;GOTO 100 SC S--S2 100 E=S-H no OUT S,2.DUT S+2,0 120 CLS :PBINT BcTaB Tb карту I2C для чтения, затея нажать <ENTEB>-130 INPUT Zt 140 OUT S.2:0UT S+2.0:0UT S,2:0UT S+2,1:0UT S.O:OUT S+2.1 START-услоаие 150 Н'ИНАО iGOSUB 4B0 :GOSUB 400 IBO OPEN 120. ROM- FOB OUTPUT AS 1 170 CLS : PBINT Ввести количество считываемых байтов 0 INPUT С :CLS ISO И=0 :COSUe 460 :G0SUB 400 200 FOB T=0 TO 300 :NE)(T T 210 OUT S,2:0UT St2.0:0UT S.2:0UT S+2,1:0UT S,0:OUT 8*2.1 220 В=ША1 :COSUB 460 .GOSUB 400 230 FOB G=l TO C-1 240 GOSUB 300 :GOSUB 3B0 250 NEXT G 260 GOSUB 300 :GOSUB 390 270 OUT S,D:DUT S+2.1:0UT S,2:DUT St2.1:0UTS.2:0UT St2.0 STOP-условие 2B0 ENO 290 ВЕИ (0)1992.1997 Patrick GUEULLE 300 K=0 Прием байта 310 FOB F=0 TO 7 320 OUT S.O:OUT St2.0:0UT S.2:0UT S+2.0 330 D=INP(E) :0= D AND 12B 340 IF 0=0 THEN K=Kt2-(7-F) 350 OUT S,0:OUT S+2.0:NEXT F 360 PRINT USING :K;iPBINToi.K: 370 RETURN PA60TA С Синхронными картами 380 OUT S.O:OUT S+2.1:0UT S.2:0UT St2,1:0UTS.0:0UT S+2.1:BETUBN tx 0 390 OUT S.C-.OUT St2.C:0UT S,2:0l)T St2,0:0l)TS.C:CUT S*2.0.RETURN tx 1 400 OUT S.OiOUT S+2.0:0UT S.Z.OUT S*2,0 ожидание ACK 410 N=D 420 D=INP(E) :D= 0 AND 12B 430 N=Nt1;IF N>500 THEN END 440 IF D=0 THEN 420 450 OUT S,0:OUT St2.0:BFTUBN 460 D=0 : ВЕН передача байта 470 IF И>127 THEN D=TH=H-12B 4B0 GOSUB 630 490 IF H>63 THEN D=1H=H-64 500 GOSUB 630 510 IF M>31 THEN D=1N=N-32 520 GOSUB 630 630 IF M>15 THEN D=1 H=H-ie 540 GOSUB 630 550 IF H>7 THEN 0=1:И=Н-В 560 GOSUB 630 570 IF H>3 THEN D=l:H=H-4 560 GOSUB 630 590 IF H>1 THEN D=1:H=N-2 600 GOSUB B30 610 0=H .GOSUB 630 620 BETURN 630 IF D=l THEN GOSUB 390 640 IF D=0 THEN GOSUB 380 650 0=O:BFTUBN Считывая последовагспьно заданное число байтов, начиная с первого (обычно все содержимое памяти), программа выводит их на экран в десятичной форме и одновременно сохраняет в текстовом файле, называемом 12С.ЙСН. Формат этого файла (free format deci-ma\ - свободный десятичный формат) совместим с многочисленными утилитами перекодировки, например в двоичный или в щестнадцатеричный форматы. Он в любом случае поддерживается программой записи PflCGRI2C.BAS, что позволяет простейшим способом тиражировать карты данного типа. 10 ВЕИ - PB0GBI2C.BAS - 20 KEY OF :CLS :DEF SEG=0 30 Sl=PEEK(l,H408)t256.PEEK(liH409) для LPTl : 40 S2=PEEK(W0A)+256.PEEK(I1H406) для LPT2 : 50 OUT S2.0 :E2=S2t1 60 IF (INP(E2) ANO 64) v> 0 THEN S=S1 :COTO \aO 70 OUT S2.(26 ЧИП-КАРТЫ УСТРОЙСТВО И ПРИМСНСНИЕ РАБО ТА С СИНХРОННЫМИ КАРТАМИ ВО IF (1КР(Е2) AND 64) о 84 THEN S-S1 :GOTO 100 90 S=S2 100 E=St1 110 OUT S.2:0UT St2.0:L=0 120 CLS :РНЖ-Введите имя используемого файла с растрением ВОН 130 INPUT F$ :F$=F$+ .R0H 140 OPEN F$ FOR INPUT AS 1 160 DIN W(40Q6) 160 CLS :PRINT - Идет чтение файла - 170 IF EOF(l) THEN 210 IBO INPUT 1.W(L) 190 L=Ltl 200 GOTO 170 210 CLOSEJI :CLS 220 CLS : PRINT Вставить программируемую карту I2C и нажать <ENTER> 230 Рнтт Внимание! Нинимальная емкость карты : ;L- байг 240 INPUT Z$ :CLS iPRINT - Идет программирование - 250 FOR G=0 TO L-1 .PRINT. : 260 OUT S.2:0UT St2.0:0UT S,2:0UT St2,l:0UT S,0:OUT S+2,1 START-условие 270 H=SHAO :GOSUB 430 .GOSUB 370 280 H=G :GOSUB 430 :GOSUB 370 290 H=W(G) :GOSUB 430 :GOSUB 370 300 OUT S,0:OUT S+2.1:0UT S,2:0UT S+2,1:0UT S,2:0UT S+2.0 STOP-условие 310 FOR T=0 TO 2000:NE)(T T 320 NEXT G 330 END 340 REH (c)1992.1997 Patrick GUEULLE 350 OUT S.O:OUT S+2,l:DUT S,2:0UT S+2.1:0UT S,0:OUT St2.1:RETURN tx 0 360 OUT S,0:OUT St2.0:0UT S,2.0UT S*2,0:0UT S,0:OUT St2,0:RETURN tx 1 370 OUT S,0-OUT St2,0:0UT S.2:0UT St2,0 : REN отдание АСК ЗВО N=0 390 D=INP(E) 0= D ANO 12B 400 N=NH:IF K>500 THEN END 410 IF D=0 THEN ,390 420 DUT S.O:OUT St2.0-RETURN 430 0=0 : REN вывод байта 440 IF Н>127 THEN D=1:M.H-12B 450 GOSUB BOO 460 IF H>63 THEN 0=1:N=H-64 470 GOSUB 600 4B0 IF H>31 THEN D=l:H=N-32 490 GOSUB 600 500 IP H>15 THEN D=l:H=H-16 510 GOSUB 600 520 IF N>7 THEN D=1:H=H-B 530 GOSUB BOO 540 IF H>3 THEN D=l:M=M-4 550 GOSUB 600 560 IF H>1 THEN D=l:H=H-2 670 GOSUB 600 580 D=H :GOSUB 800 590 RETURN 600 IF D=l THEN GOSUB 3B0 610 IF D=0 THEN GOSUB 350 B20 D=0:RETURN Интересно отметить, что эти карты пустые в единицах (когда они новые - заполнены байтами FFh, или 266), и для них безразлично, как ведется запись: из 1 в О или из О в 1. Изготовление фальшивой карты с микросхемой I2C Предложенная в книге концепция фальшивых карт , которые изготовляются в виде печатных плат толщиной 0,8 мм, может быть легко воплощена в чип-картах I2C, с учетом того, что похожие микросхемы памяти очень широко распространены в DIP-корпусе с восемью выводами. В этом смысле мигфосхема 24С02 (256 байт) подобна кристаллу D2000, а 24С04 (512 байт) - кристаллу D4000, если включать эти элементы по схеме, показанной на рис. 4.16. Впрочем, вполне можно экспериментировать с памятью меньшего (24С01) или большего (24С08 и 24С16) объема и даже с более специфичными элементами, предлагаемыми некоторыми компаниями - например, Х76041 фирмы XICOR. Вместо уянверсальных фальшивых карт , представленных на рис 2.13, можно изготовить специализированньп ! вариант (топология печатной платы показана на рис. 4.17). Рис. 4.18 уточняет расположение микросхемы в DIP-корпусе, которую желательно устанавливать в панельки с гиперболическими (цанговыми) контактами. Для удобства приводится нумерация кон-TalcTOB согласно стандарту ISO. ![]() 7]-Vcc (ISO 1) Т] GND (ISO 5) б~-- SCL (IS0 3) - SDA (ISO 7) Рис. 4.16. Чип-корта на микросхеме 24С02 |
© 2007 EPM-IBF.RU
Копирование материалов разрешено в случае наличия письменного разрешения |