Vassilis Serasidis
Данное устройство предназначено только для чтения смарт-карт (телефонных карт) и как программатор данных карточек использоваться не может. Вы не сможете с помощью этого устройства переписать содержимое карты, взломать или произвести какие-либо незаконные действия.
Цель этого проекта – ознакомление с последовательным протоколом, понятие процесса чтения микроконтроллером карты для возможности построения своих устройств разграничения доступа (например, Электронный замок со смарт-картой в роли ключа), либо устройство контроля оставшихся «единиц» на карте.
Устройство позволяет считывать содержимое памяти смарт-карты. При разработке тестировалась карта с объемом памяти 64 байта (512 бит), первые 8 байт (64 бита) защищены от записи и предназначены только для чтения.
Для отображения прочитанных данных, а также с целью снижения затрат на устройство, используется персональный компьютер с программой Hyper Terminal. Данные передаются по последовательному интерфейсу (RS232).
Схема устройства очень простая и изображена на рисунке.
Основой является микроконтроллер AT90S2313 с запрограммированной памятью программ и EEPROM памятью. Преобразователь логических уровней интерфейса RS232 (+-12 В) к уровню TTL и обратно собран на специализированной микросхеме MAX232. После сборки схемы, подключите устройство к порту RS232 компьютера, запустите программу Hiper Terminal и проведите настройку (скорость обмена: 19200 бит/с; биты данных: 8; четность: нет; стоповые биты: 1).
Далее, подключив питание устройства, вставьте в слот карту, которую необходимо прочитать и нажмите кнопку для старта процесса чтения. Если при сборке устройства использовать специальный слот для смарт-карт, то имеется возможность задействовать концевой переключатель слота и процесс чтения карты будет автоматизирован.
Для тестирования была использована греческая смарт-карта (ISO7816) для доступа к услугам телевидения.
Считанная карта памяти этой карты показана на рисунке ниже.
Первый байт (85) и второй байт (FC) – код страны. Третий байт (0B) – количество «единиц», четвертый – код пользователя (оператора, клиента). Эти результаты были получены при тестировании 50 различных греческих смарт-карт для доступа к услугам телевидения
Байты 5,6,7,8 – серийный номер карты в шестнадцатеричном формате. Если перевести шестнадцатеричное число 4A037AA0 в десятичный формат, то получите серийный номер карты указанный на ней (1241741984).
Байты 9, 10, 11,12,13 – это счетчик оставшихся единиц, 5 уровневый октальный счетчик, уменьшающий количество единиц до 0.
Исходный код, .hex-файл и .eep-файл для прошивки микроконтроллера AT90S2313
Исходный код, .hex-файл и .eep-файл для прошивки микроконтроллера AT90S1200
Дополнительная информация по смарт-картам