ПРОГРАММИРОВАНИЕ СМАРТ-КАРТЫ И ТИПЫ
ПРОГРАММАТОРОВ.
Прежде чем приступить к программированию смарт-карты необходимо
пояснить несколько важных моментов для смарт-карт на основе
процессоров PIC.
Так как нет возможности напрямую запрограммировать
память карты, то сначала используя специальную программу
- загрузчик (обычно называемую Loader.hex) программируют
ПИК, а потом через него программируют ЕЕПРОМ. И затем
программируют снова ПИК но уже настоящей прошивкой.
Учитывая это стандартный программатор
должен иметь режим JDM (для программирования PIC в GoldWafer
карте), Phoenix (для программирования EEPROM через PIC).
Можно добавить еще режим Smartmouse (тот же Phoenix, но
работающий на частоте 6Мгц) для работы с оригинальными
картами и режим программирования Fun-карт и это вполне
достаточно для работы.
Цена таких программаторов 35-60 долларов, в зависимости
от способа изготовления и комплектации.
Если есть опыт работы с паяльником , то
можно собрать самому. Схем таких программаторов достаточно
в интернете.
1. Программирование Gold Wafer или
Silvercard (Pic2)
Для программирования карты Вам понадобится:
-
Компьютер с COM-портом
-
Программатор с кабелем и блоком
питания
-
Файлы для программирования
-
Программа для работы с программатором
- ICProg для записи в карту загрузчика и самой программы
(pic)
-
Программа WinPhoenix для записи
в карту данных (памяти) 24C16
1. Установите программы ICProg и WinPhoenix.
Укажите в настройках программы COM-порт, к которому подключен
Ваш программатор. В ic_prog можно выбрать язык интерфейса
- русский.
2. Скачайте файлы, которые необходимо
запрограммировать в карту. Файлы обычно имеют расширение
hex (для чипов PIC16F84) и bin (для микросхем памяти 24С16).
Для пик2 файлы несколько иные, например, ds9_16F876.hex
и память - ds9_24lc64.hex. Прошивка обычно состоит из
2-х файлов. Вам нужно 3. Третий - это WinPhoenixLoader.
3. Переключите программатор в режим "JDM".
После подключения программатора к компьютеру запустите
ICProg и вставьте карту в программатор. Блок питания для
этого, в принципе не нужен.
4. Укажите программе микросхему для программирования
("Настройки\Микросхемы\...") - PIC16F84 (или PIC16F876).
Затем откройте файл loader.hex и нажмите кнопку "Команды\Программировать
всё (F5)". Если у Вас обнаружена ошибка записи по адресу
0000, скорее всего у Вас ничего не вышло. Проблема может
быть из-за:
-
стоит галочка "CP" - защита от
считывания - программатор не может прочитать то,
что записал. Снимите ее
-
неисправен программатор
-
неисправен шнур от программатора
до компьютера
-
неправильно стоят переключатели
на программаторе
-
неправильно стоят переключатели
в программе (всякие там инверсии и прочая чушь
по-умолчанию должна быть выключена)
-
выбран не тот тип микросхемы
-
выбран не тот ком-порт
-
отсутствует или неправильно вставлена
карта или карта не 16F84 & 24C16 (например,
пытаетесь вшить ds9 прошивку в GW :-))
-
в панели задач Windows (справа
внизу, где время показывает) запущена какая-либо
резидентная программа типа факса, Palm DeckTop
и т.п., которая "садится" на ком-порт.
-
если у Вас Win2000, WinXP - они
не пускают напрямую к портам. Инструкцию по устранению
этого недоразуменя можно взять
здесь.
-
нерабочая версия ICProg или WinPhoenix
-
ещё миллион причин...
Если ничто не помогает - попробуйте на
другом компьютере.
5. После программирования процессора карты
PIC16F84 (16F876) можно приступать к программированию
памяти карты 24С16 (24LC64). Для этого необходимо переключить
программатор в режим Phoenix, подключить блок питания
(если этого не было сделано раньше) и запустить программу
WinPhoenix. Поскольку напрямую запрограммировать память
пластиковой карты невозможно, программа WinPhoenix передаёт
данные процессору карты, а процессор (предварительно загруженный
программой ..Loader) сам записывает эти данные в память
карты. Для GW будет показано, что считано 2048 байт, для
PIC2 - 8 кБ. В нашем случае данные - файл ключей eeprom.bin.
Проверьте, правильно ли указан порт компьютера, загрузите
файл ключей и запустите программу: Card - Program. Если
вам выдало "Falied" - либо в карте нерабочий загрузчик,
либо не тот ком-порт, либо неправильно стоят мычки на
программаторе либо забыли подключить блок питания.
6. Итак, данные в память карты занесены,
теперь остаётся запрограммировать процессор рабочей программой.
Переключаем снова программатор в режим JDM , загружаем
файл рабочей прошивки pic16f84.hex (ds9_16f876) и программируем
карту (F5). (См. пункт 4)
Если при прошивке будут возникать ошибки,
попробуйте поиграться с настройками типа I/O Delay (меню
"Settings - Hardware"). Для считывания прошивки из pic'а
воспользуйтесь кнопкой Read All (F8).
Существует еще множество программ для
программирования смарт-карт. Все они в принципе похожи
и отличаются различными сервисными возможностями, наличием
встроенного загрузчика, редактора и т.п. Бывает так, что
в некоторых случаях просто не удается запрограммировать
смарт-карту IcProg и WinPhoenix, и тогда просто стоит
попробовать другие программы: ChipCat, CardWriter или
JGProg.
ПРОГРАММИРОВАНИЕ
FUN-КАРТЫ ПРОГРАММОЙ FUNPROM
Эта программа предназначена только для
работы с Atmel/Fun-картами и программатором Fun. С ее
помощью можно программировать Fun-карту и редактировать
ее. Но редактор работает только с одной определенной кодировкой,
а не Х в 1 .
1. Запускаем программу FunProm, при первом запуске проверяем
наличие в программе необходимых для работы dll файлов,

если все на месте , то загружаем необходимые
для прошивки карты файлы:
flash.hex , ee_ext.hex и ee_int.hex. Если мы программируем
Х в 1 прошивку то ee_int.hex не загружаем.
Теперь жмем кнопку Erase , чтобы убедиться что карта полность
стерта и чиста и жмем кнопку Program,
появляется табличка Confirm: "Verify eeprom while programing?"'
на нее отвечаем No и карта программируется.

после чего начинается непосредственная запись нашей карты
(все этапы происходят автоматически - без вашего дальнейшего
участия).
После окончания процесса программирования внизу программы
появляется надпись, что девайс запрограммирован: Device
programmed
Редактирование ключей (только для одной
кодировки)
Когда мы загрузим все три файла прошивки во втором
окошке появиться надпись "SECA keys" (или ViaKey)
Здесь можно вручную менять ключи.
Если у нас есть файл с автоапдейтом, то двойным щелчком
мыши открываем провайдера и вводим все детали необходимые
для автоапдейта.
SA (Shared Address) - часть PPUA. Это
первые 3 байта.
CUSTWP (Customer Word Pointer) - последний
байт PPUA
UA (Unique Address)- серийный номер вашей
оригиналки. Это одно из свойств автоапдейта Fun-карты,
позволяющее вводить индивидуальный UA для каждого провайдера.
Provider Matrix пересылает нас к Package Bit Map (PBM)

Редактирование файлов Х в 1 можно выполнять
программой PicBinEdit.
Удачи!
Использованы материалы с сайтов:
www.duwgati.com, www.sat.spb.ru, www.tvsat.ru и др.