Смарт-карты

         

Делаем карту сами !


Эта страничка предназначена для пытливых зрителей, знакомы с радиолюбительством.

Для того, чтобы изготовить простой имитатор смарт-карты, известный как Multimac II необходимо следующее:

микроконтроллер PIC 16C84 или PIC 16F84; EEPROM 24LC16; печатная плата; программатор с интерфейсом к компьютеру программа для чипа (следите за новостями);

Одночиповая карта точно такая же, только без EEPROM 24LC16
Эта карта, в отличие от одночиповой, хранит все коды в дополнительной EEPROM. Для обновления карты, как правило, не требуется перепрограммировать PIC, достаточно только EEPROM - то есть таблицу кодов.

Обратите внимание - Во время работы карты ввод-вывод чипа осуществляется через RB7, а тактовая частота подается с вывода 16 - OSC . Но для программирования карты тактовую частоту необходимо подавать на вывод 12 - RB6 - именно для этого оба этих вывода подключены к площадке CLOCK.
Красным цветом показаны проводники, предназначенные для программирования EEPROM без выпаивания - через ISO-площадки. Но в некоторых декодерах эти проводники могут вызвать сбои. Тогда их необходимо либо исключить, но пропадет возможность простого программирования EEPROM, либо после программирования заклеить ISO-площадки скотчем. В принципе возможно программировать EEPROM в собранной карте и без этих проводников.

Если у вас нет фирменного программатора для карты целиком - поставьте чипы в панельки, тогда для перепрограммирования их не нужно будет выпаивать.

При этом возможно, что у вас все заработает !

Информация только для
частного использования!
Коммерческое использование
запрещено!(Вся информацияа только в образовательных целях и не является пособием по несанкционированому просмотру телеканалов. Авторы не несут ответственности за использование приведенной информации)


НА ЧТО ГОДИТСЯ ТЕЛЕФОННАЯ КАРТОЧКА?


А.ФИЛЮТИЧ
220056, г.Минск, ул.Лесная, 1 — 22

Раньше использованные карточки можно было обменять на почте, но теперь, с введением в оборот одноразовых карточек, все изменилось

После того как карточка закончилась, ее можно только выбросить или положить в коллекцию. Но не спешите выбрасывать использованную карточку. Она еще может послужить в качестве электронного ключа или пароля для ваших программ

Микросхема в телефонной карточке имеет 8 выводов, но реально используются только 5. Однако можно обойтись только четырьмя

Посмотрите на микросхему: самый большой по площади контакт — "земля"

Расположение остальных выводов показано на рис.1. Как уже упоминалось, один из контактов можно не использовать. Этот контакт — питание +5V. Используются только контакты Reset, Clock, Data и Gnd

Саму микросхему подключаем к ПК при помощи параллельного порта. Для этого требуется переходник, схема которого показана на рис.2. Подавая необходимые данные в порт 378h (базовый адрес LPT1), можно прочитать данные", записанные в микросхему. Это делается через бит 7 порта 379h. Нас интересуют только первые четыре байта данных, т.к. остальные содержат OOh. Первый прочитанный байт должен быть равен 7Вh. Три следующих — различны для разных карточек. Следует заметить, что информация, записанная в микросхему, постоянна и никогда не изменяется, т.е. не зависит от оставшегося количества минут

Ниже приведен текст программы, читающей информацию из карточки. Program TeleCard;
uses crt;
Const;
Copyright=;'(С) Филютич Алексей, 1997';
Var;
i,j,dat: byte;
Data: array [0..3] of byte;
{————————};
Function ReadCard:byte;
var;
S:byte;
begin;
asm ;
mov dx,379h ;
in a1,dx ;
mov c1,7 ;
shr a1,c1 ;
mov S,a1 ;
end;;
ReadCard:=S;
end;;
{——————————————};
Procedure WriteData (A: byte) ;assembler;
asm;
mov a1,A;
mov dx, 37Bh;
out dx,a1 ;
end;;
{————————————};
Procedure Next; {Увеличить адрес};
begin;
Delay (1) ;
WriteData (0);
WriteData (2) ;
WriteData (0);
end;
{——————————————}
Procedure Reset;
{Сброс микросхемы в исходное состояние}

Простейший программатор двухчиповых смарт-карт




С помощью переключателя производится выбор для программирования либо PIC, либо EEPROM.Для одночиповых карт Nordic переключатель не нужен.

Обратите внимание: EEPROM в собранной карте удается программировать только если карта имеет дополнительные проводники SCL и SDA (см.схему).

Если проводников нет, то придется по мудрить с программой PIX - в ней предусмотрена опция программирования EEPROM через PIC - сначала в PIC зашивается программа-помощник, которая в следующем цикле программирования принимает данные и пишет их в EEPROM, а затем уже PIC заново прошивается рабочей прошивкой.



Простейший программатор смарт-карт


Почему я рекомендую программировать именно через RS232 ? - да потому, что спалить принтерный порт очень просто, а чтобы спалить RS232 требуется специальная подготовка. Если вам непонятно - как это получается - почитайте копию статьи Вадима Чеснокова - "Начнем от печки" из Компьютерной Газеты.

Как работает такой программатор?

1. По линии DTR осуществляется передача данных в чип, по линии CTS - прием данных из чипа.
2. Линия RTS служит для приема - передачи стробирующих импульсов.
3. Линия TxD осуществляет формирование сигнала MCLR - общий сброс, который имеет низкий уровень непосредственно до начала цикла программирования, а в процессе цикла программирования сюда подается напряжение программирования +12 вольт, необходимое чипу для перепрограммирования памяти программ.
Питание чипа карты осуществляется от цепочки: TxD -> VD1 -> C1 + VZ1, которая накапливает на конденденсаторе и стабилизирует напряжение на уровне 5.6 вольт.
Эта схема собиралась мной и многократно повотрялась нашими читателями.
Проблема такого программатора заключается в том, что сигналы интерфейса RS232 плохо совместимы с TTL уровнями. Логическая "1" (high или mark) это -12V вольт относительно GND интерфейса, а логический "0" (low или space) это +12V вольт и все согласование уровней осуществляется резисторами, причем в цепочки согласования входят сопротивления самого RS232 - то есть в некоторых экземплярах может быть нечеткая работа.

Кроме того в этом программаторе маловато напряжение программирования - почти всегда это +9 - +9.5 вольт и некоторым экземплярам PIC может не хватить (примерно 0.5 %).

Какое программное обеспечение использовать ?

Лучше всего использовать PIX (MS-Dos). У меня он работал даже из-под Windows 95 ! Установите в нем тип программатора 9) Ludi и укажите COM-порт к которому он подключен.

Кроме того, можно порекомендовать PicProg 0.6 - эта программа под Windows, но она не имеет опции VERIFY, то есть проверить карту можно будет только на тюнере.


Обратите внимание - если вы установили защиту кода Code Protection или Cdp - VERIFY будет невозможен (чип не даст прочитать программу).
Для программирования следует использовать прошивку для PIC в которой ввод-вывод осуществляется через RB7 - обычно файлы с такими прошивками именуют с цифрой 7 в имени (стандартные пластиковые смарт-карты или wafer имеют как раз такое устройство).

Для тех кто использует 16F84 вместо 16С84 - в этом чипе для правильной работы должет быть включен Power UP Timer ( Enable). Это можно сделать в программаторе - если используется PIX, то предохранители (Fuses) нужно устоановить так: 3FF9 а именно: [O]sc XT [W]dt NO [P]wr YES [C]dp NO.

Можно оснастить этот программатор переключателем, с помощью которого производится выбор для программирования либо PIC, либо EEPROM.

В заключение следует отметить, что таким программатором нормально программируются карты, в которых к ISO-площадке I/O подключен 13-ый вывод PIC - RB7, а вывод 12 - RB6 подключен к площадке ISO Clock - такие, как показано на нашей страничке. Для других карт необходимо знать их устройство и поставить DIP-переключатель - тогда можно будет программировать различные карты.

Еще одна проблема - трудно найти ISO7816 слот для карты. В Санкт-Петербурге могу порекомендовать фирму "Крис", в Москве - "Бурый Медведь". На крайний случай - поставьте чипы на карте на панельки и соберите программатор по такой схеме - тогда можно будет, сняв чипы, отпрограммировать их и установить обратно в карту.

Конечно, хорошо бы оснастить эту схему собственным кварцевым генератором, источником питания для чипа, +12 вольт для программирования, формирователями для RS232 - и у нас получится Smart Mouse Interface, который более корректно работает с различными картами. SmartMouse позволяет экспериментировать с другими смарт-картами - от сотовых телефонов, таксофонными и т.п.

Редакция и оформление -
©Александр Борзов 
     
Мы не несем никакой ответственности за использование нашими читателями информации и технологий, изложенных на этих страницах. 


Простейший универсальный программатор смарт-карт


Немного о разнообразии карт.

На текущий момент в обороте находится великое множество карт - одночиповые , двухчиповые, с двумя PIC и т.д.

Чем они все отличаются ?

С точки зрения их программирования они отличаются только методом подключение выводов PIC : 13 - RB7 и 12 - RB6. Дело в том, что при программировании PIC необходимо подавать данные на RB7, импульсы синхронизации - на RB6. Если иметь в программаторе переключатель и знать устройство карты - можно программировать самые разнообразные карты.

Немного об устройстве карт.

Во время работы карты ввод-вывод чипа осуществляется через RB7, а тактовая частота снимается с вывода 16 - OSC , но в некоторых картах ввод-вывод производится через RB6, соответственно этот вывод и подключен к ISO-площадке I/O, а вывод RB7 - к какой либо из площадок ISO4 или ISO8. Однако, для программирования карты тактовую частоту необходимо подавать на вывод 12 - RB6, а данные - на RB7. Для этих манипуляций в данной схеме и применен DIP-переключатель.

Обратите внимание - если ввод/вывод карты осуществляется через RB6 - нужно использовать соответствующую прошивку !

Характеристики наиболее распространеннных карт и соответствующие установки ключа DIP-ключа для различных карт (пустая ячейка - OFF)

Обратите внимание: В блоке DATA (с 1-го по 4-ый ключ) одновременно может быть включен только один ключ !
Тоже касается блока CLOCK.

Тип карты Где в карте RB7 Где в карте RB6 1 2 3 4 5 6 7 8
1 PIC ввод/вывод через RB7 ISO7 ISO3   on     on      
1 PIC ввод/вывод через RB6 ISO8 ISO7 on           on  
1 PIC Wafer card ввод/вывод через RB7 ISO7 ISO3   on     on      
2 PIC RB6, Master PIC ISO8 ISO7 on           on  
2 PIC RB6, Slave PIC ISO4 ISO7     on       on  
MULTIMAC, PIC ввод/вывод через RB7 ISO7 ISO3   on     on      
MULTIMAC EEPROM     on         on    
MM2 Wafer, PIC ввод/вывод через RB7 ISO7 ISO3   on     on      
MM2 Wafer, EEPROM     on         on    

Карта страничек | Новости |Американский блок |Изменения на Транспондерах | Гостевая Книга



Смарт-карты


Делаем карту Multimac II Делаем карту сами ! Простейший программатор смарт-карт Простейший универсальный программатор смарт-карт Простейший программатор двухчиповых смарт-карт НА ЧТО ГОДИТСЯ ТЕЛЕФОННАЯ КАРТОЧКА