Читання прошивки таксофонної картки

Підключення карт до комп'ютера для зчитування і запису в основному здійснюється через LPT порт.

Збираємо схему читалки. (для 8 контактних).

Схема підключення карт до комп'ютера

АБО по таблиці (для 6 контактних).

розташування

призначення

куди підключати

розпаювання картки

  1. VCC (харчування)

  2. RST (скидання)

  3. CLK (тактові імпульси)

  4. GND (земля)

  5. не використовується

  6. I / O (введення / виведення)

1.     - + 5V

2.     - 2 pin LPT

3.     - 3 pin LPT

4.     - 25 pin LPT

6.     - 11 pin LPT

Харчування через імпульсні діоди (анодами до порту) з 6-9 контакт LPT, також можна взяти його з першого Піна GamePortа (порт для джойстика) або з клавіатури.

Робота з софтом

Завантажити 24 kb

Отже коли все підключено можна приступати до роботи з софтом. Якщо все підключено правильно на екрані з'явиться приблизно наступне:

Якщо ж всі дані в HEX кодах матимуть значення "FF" або ж в 16-тірічной системі числення "11111111", значить що то неправильно підключення, або погано контачить. На цьому сита своє завдання вполненниє, тепер ваша черга дерзайте! Ця прога не тільки простий Рідер вона ще вміє знімати одиниці з карти ...

  2. Фізичний стандарт ISO
На малюнку показана нумерація контактів чіпа картки

Тип ISO 7816-1

 

  1. Vcc + 5V

  2. R / W

  3. Clock

  4. Reset

  5. Gnd

  6. Vpp + 21V

  7. I / O

  8. Fuse

1 VCC (харчування)

2 RST (скидання)

3 CLK (тактові імпульси)

4 GND (земля)

5 no use (не використовується)

6 I / O (введення / виведення)

  Що записано на картках? (для Пітерських карток)

   призначенням кожного біта, записаного на карті.

На картці використовуються тільки 16 байт. Всі інші рівні 0xFF.

Приклади пам'яті карт

Ця карта на 50 одиниць закінчилася. Номер 0050415503.

Придатна до 30.09.98

E9, 30, FF, 01, F1, E2, 80, C0

00, 00, 00, 00, 00, FF, 18, EA

Ця карта на 400 одиниць також порожня. Номер 0400155921.

Придатна до 30.09.98

E9, 30, FF, 01, 88, A7, 9B, E8

00, 00, 00, 00, 00, FF, D9, 79

Ось карта на 1000 одиниць. Залишилося 998. Номер 1000013039.

Придатна до 31.12.99

E9, 30, FF, 01, F7, 3F, 59, DC

00, 01, 7F, 0F, 3F, FF, 68, 6B

Потім я подзвонив по цій карті. Залишилося 6 одиниць.

E9, 30, FF, 01, F7, 3F, 59, DC

00, 00, 00, 00, 3F, FF, 68, 6B

Нарешті, вона закінчилася.

E9, 30, FF, 01, F7, 3F, 59, DC

00, 00, 00, 00, 00, FF, 68, 6B

призначення полів

1. Перші 4 байта - якийсь ідентифікатор. На всіх картах

E9, 30, FF, 01.

2. Наступні 4 байта - серійний номер карти. Розташувавши біти в байтах в зворотному порядку, а потім і самі байти, отримаємо 32 розрядне ціле без знака. Наприклад, байти F7, 3F, 59, DC на протилежне біт виглядають як EF, FC, 9A, 3B. Отримаємо номер карти 0x3B9AFCEF або 1000013039 в десятковому вигляді. Неважко помітити, що номер, надрукований на карті, завжди складається з 10 цифр, а перші 4 цифри - ємність картки.

3. Наступні 5 байт - кількість одиниць, що залишилися на картці. Формат зберігання дуже цікавий: використовується кількість одиничних бітів в байті, починаючи з молодшого. Відповідно значення байта 07 відповідає 3 одиницям, значення 1F - п'яти, а 7F - семи одиницям. Максимальна кількість одиниць, що зберігаються в байті - сім. Відповідно використовується восьмерична система числення. Таким чином, байти 00, 01, 7F, 0F, 3F відповідають 01746 в вісімковій системі або 998 одиниць в десятковій системі. Максимальна кількість одиниць може виражатися числом 77777 в вісімковій або 32767 в десятковій системі.

4. Наступний байт завжди дорівнює FF. Схоже, він не використовується.

5. Два останніх байта, мабуть, висловлюють CRC або інший контрольний код для перших 8 постійних байт, тому що при витрачанні одиниць вони не змінюються, але на

кожній картці вони свої. Поки їх призначення не ясно. Виявилося, що термін придатності не записаний на карті. По всій видимості, він якось пов'язаний з номером карти.

Можливо, кожному терміну придатності відповідають певний діапазон номерів.

Як вже говорилося, з 10 цифр номера перші 4 висловлюють ємність карти. Решта 6 не ідентифікують карту однозначно, тому що вже випущено понад мільйон карт. Всього при подібній системі нумерації може існувати 6 мільйонів карт:

* На 25 одиниць з номерами від 0025000000 до 0025999999

* На 50 одиниць з номерами від 0050000000 до 0050999999

* На 100 одиниць з номерами від 0100000000 до 0100999999

* На 200 одиниць з номерами від 0200000000 до 0200999999

* На 400 одиниць з номерами від 0400000000 до 0400999999

* На 1000 одиниць з номерами від 1000000000 до 1000999999