Как читают телефонные карты, или научись цеплять к своему компу девайсы

Спецвыпуск Xakep, номер #011, стр. 011-088-2

Настройка порта

Перед тем как программировать порт, его надо настроить. В BIOS setup есть пункт - integrated peripherals (встроенные периферийные устройства), или похожий, где указывается адрес и режим работы параллельного порта. Поставь адрес 378h и режим EPP или ECP.

Питание

Лучше всего будет запитать карту от блока питания компа. В отличие от адаптеров, он, как правило, неплохо стабилизирован. Отлично, если блок питания отдельный и не стоит в компе. Если он все-таки в компе, из которого уже валит дым, значит ты что-то сделал не так, и питание замкнуло. Покупай новый комп и в следующий раз будь аккуратнее :).

Блок питания твоей персоналки бывает двух типов: ATX и AT. Они много чем отличаются, но главное вот что. Если разъем питания для матплаты состоит из половинок - значит, блок AT, и все пучком. Если разъем этот один - значит, блок ATX, и, чтобы завестись, он хочет получить от матплаты подтверждение ее наличия. Чтобы он все-таки работал без матплаты, надо замкнуть ногу 14 (она обычно зеленого цвета) на землю (черного цвета).

Из блока питания идет куча хвостиков с четырьмя контактами на конце. Если повернуть такой хвостик к себе и фасками на ребрах вниз, слева будет красный провод - это +5В, потом два черных провода - земля, и справа желтый - это +12В. Для питания карты нам нужно как раз 5 вольт.

Стандарты

Чтобы карты были совместимы с телефонными автоматами, большие умные дяди прописали для них единый стандарт: ISO 7816-2. В стандартах обычно подробно описано, что нужно сделать для чтения, записи, обнуления, и другие подробности работы карты. Запомни: стандарты - это как раз то, что нам ВСЕГДА нужно. И начинать надо именно с изучения стандартов.

Сначала - по-русски. Есть два управляющих проводка: CLK и Reset - ими мы устанавливаем карту в нужный режим (обнуление, чтение, запись). Чтобы подробнее изучить, как это происходит, надо серьезно заморачиваться. Еще есть проводок I/O, через этот проводок карточка нам отвечает.

А теперь сам стандарт. То есть это, ясное дело, не весь стандарт, а только маленький кусочек, к тому же мы перевели его на русский. Можно понять что происходит и по описанию, но лучше смотреть на диаграммы.

Счетчик адреса сбрасывается в 0, когда сигнал таймера CLK переходит из НИЗКОГО уровня в ВЫСОКИЙ, если линия Reset имеет ВЫСОКИЙ уровень сигнала.

Заметь, что счетчик адреса не может быть сброшен, если он в диапазоне от 0 до 7.

XXXXВерстальщику: вставить скриншот ХХХХ

smart_13.ai

Сброс счетчика адреса карты в 0

XXXX

Счетчик адреса увеличивается на 1 с каждым переходом сигнала CLK из НИЗКОГО уровня в ВЫСОКИЙ столько, сколько уровень линии Reset остается НИЗКИМ. Данные, содержащиеся в каждом адресованном бите, выводятся на контакт I/O каждый раз, когда уровень CLK падает. Уменьшить значение счетчика адреса можно следующим образом: сбросить счетчик адреса в 0 и увеличить его до нужного значения.

Программируем

Эта главка для тех, кто решил заморочиться не по-детски. Проще, конечно, качнуть нашу или похожую прогу из инета, но если ты хочешь подробнее разобраться в том что происходит - разбирайся. Мы тебе поможем. Для этого здесь собраны кусочки проги РадиоМастера.

Назад на стр. 011-088-1  Содержание  Вперед на стр. 011-088-3

ttfb: 3.0899047851562 ms