Ридер магнитных карт своими руками

Добавил пользователь Валентин П.
Обновлено: 05.10.2024

Всем доброго времени суток. Сразу буду честен, что я зарегистрировался что бы получить помощь. Но обещаю и что сам буду оказывать помощь.
Имеется ридер магнитных карт "mercury 150-123" и 100 пластиковых магнитных карт с записанной на них информацией в виде чисел от 001 до 100. Ридер имеет интерфейс RS232(Com порт). Программой Гипертерминал данные с карт прекрасно считываются.
Подскажите мне пожалуйста: как получить мне эти данные в Excel или в VBA для дальнейшей их обработки. Как я понимаю нужно использовать модуль Ms comm control. Макросом открываю порт, выставляю все необходимые настройки сом порта, а дальше ни знаю как получать данные

Всем доброго времени суток. Сразу буду честен, что я зарегистрировался что бы получить помощь. Но обещаю и что сам буду оказывать помощь.
Имеется ридер магнитных карт "mercury 150-123" и 100 пластиковых магнитных карт с записанной на них информацией в виде чисел от 001 до 100. Ридер имеет интерфейс RS232(Com порт). Программой Гипертерминал данные с карт прекрасно считываются.
Подскажите мне пожалуйста: как получить мне эти данные в Excel или в VBA для дальнейшей их обработки. Как я понимаю нужно использовать модуль Ms comm control. Макросом открываю порт, выставляю все необходимые настройки сом порта, а дальше ни знаю как получать данные leon3952

leon3952,
Вам не кажется, что это уж слишком: оставить на форуме Экселистов пост про карт-ридер, не выложить txt-пример того, что Вы получаете через гипертерминал и уже через 41 минуту "апать" свой пост? Мол, и почему это мне никто до сих пор не ответил?
Вы что, думаете, что все сразу полезут в интернет искать подробности о взаимодействии ПО ЖЕЛЕЗУ Вашего ридера с компьютером, а потом начнут срочно изобретать способы получать с него данные не стандартно, а напрямую в Excel?
Ну, ну. Ждите ответа.

leon3952,
Вам не кажется, что это уж слишком: оставить на форуме Экселистов пост про карт-ридер, не выложить txt-пример того, что Вы получаете через гипертерминал и уже через 41 минуту "апать" свой пост? Мол, и почему это мне никто до сих пор не ответил?
Вы что, думаете, что все сразу полезут в интернет искать подробности о взаимодействии ПО ЖЕЛЕЗУ Вашего ридера с компьютером, а потом начнут срочно изобретать способы получать с него данные не стандартно, а напрямую в Excel?
Ну, ну. Ждите ответа. Alex_ST

leon3952,
Вам не кажется, что это уж слишком: оставить на форуме Экселистов пост про карт-ридер, не выложить txt-пример того, что Вы получаете через гипертерминал и уже через 41 минуту "апать" свой пост? Мол, и почему это мне никто до сих пор не ответил?
Вы что, думаете, что все сразу полезут в интернет искать подробности о взаимодействии ПО ЖЕЛЕЗУ Вашего ридера с компьютером, а потом начнут срочно изобретать способы получать с него данные не стандартно, а напрямую в Excel?
Ну, ну. Ждите ответа. Автор - Alex_ST
Дата добавления - 18.11.2012 в 20:16

Считыватель

Конечно наибольшее распространение получили пластиковые банковские и дисконтные пластиковые карточки, а также магнитные пропуска – идентификаторы.

Магнитная карта

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

Магнитные карточки выпускаются в виде пластиковых пластин стандартного размера, с обратной стороны которой имеется магнитная лента (полоса), шириной 12,7 миллиметров, на которой записана информация. На лицевой стороне размещена графическая или текстовая информация с идентификацией владельца и ее эмитента (организации выпустивший карту). На магнитную ленту можно в цифровом виде записать определенную информацию объемом до 100,0 байт. Для считывания и идентификации записанных данных требуются специальные устройства – считыватели или картридеры.

Карта

Плотность размещения данных на второй и третьей дорожках составляет 75,0 и 210,0 bpi соответственно, причем третья дорожка предназначена только для хранения цифровой и служебной информации.

При формировании идентификационного кода или обновляемых данных процесс записи осуществляется в следующей последовательности:

Картридер при помощи специальной головки считывает информационный контент с магнитной полосы и при помощи специального программно-аппаратного комплекса преобразует ее в форму понятную для чтения или дальнейшего использования и обработки.

Виды считывателей

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

В зависимости от функционального назначения пластиковой карточки (платежная или идентификационная) и типа операций, для считывания с нее информации применяются различные типы катридеров.

Сегодня все конструкции делятся на три группы:

  1. Щелевые.
  2. Встраиваемые.
  3. Автоматизированные.

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

Для считывания данных встраиваемым картридером карту необходимо поместить внутрь прибора. Автоматизированные считыватели все операции по захвату, считыванию информации и выдаче карты обратно клиенту проводят без вмешательства оператора.

По типу подключения картридеры бывают:

  1. Интегрированные, которые являются частью программно-аппаратного комплекса.
  2. Автономными (корпусными), которые в свою очередь подразделяются на:
    • Настольные.
    • Навесные.

Наиболее значимыми техническими характеристиками, по которым следует выбирать конкретную модель картридера являются:

  • Категория идентифицируемых карт.
  • Число дорожек чтения.
  • Допустимая (реальная, максимальная) скорость протягивания – только для щелевых моделей.
  • Интерфейс подключения к программно-аппаратному комплексу.

При выборе следует принимать во внимание немаловажный фактор индивидуальности и назначения конкретной модели.

Выбор конкретной модели считывателя магнитных карт

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

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

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

Основными критериями выбора обычно являются:

  1. Уровень защиты от несанкционированного копирования считываемой информации.
  2. Для объектов, расположенных на улице устойчивость к погодным условиям и антивандальные свойства.
  3. Энергопотребление.
  4. Эргономичность (удобство пользования) как для оператора, так и для клиента.

Встраиваемые считыватели обычно продаются в качестве ремонтного изделия, так как в большинстве случаев их первоначальное приобретение входит в стоимость покупки полнокомплектного оборудования (кассового аппарата, банкомата, платежного терминала).

Обзор наиболее перспективных моделей

Считыватель

Считыватель

  1. Относительно невысокую стоимость.
  2. Возможность интегрирования в уже установленные программно-аппаратные комплексы других производителей.
  3. Компактность.
  4. Возможность двунаправленного прочитывания пластиковой карты.

Считыватель

В большинстве случаев эта информация нужна для более высокой степени защиты карты, а при совершении безналичных расчётов не используется. Считыватели для систем контроля и доступа вообще могут быть однодорожечными и их цена завит от бренда, дизайна и автономности работы.

При этом речь ведется только о считывателях информационно-идентифицирующих данных. Цена катридеров с возможностью перезаписи начинается от 20,0 тысяч рублей.

  • В первой части была теория,
  • Во второй мы сделали электронный rfid замок с доступом по карте или брелоку.
  • В третьей мы научились записывать разную информацию на карту. Например, Фамилию и имя.
  • Теперь настала очередь рассмотреть копирование RFID карт.

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

Копирование карт не сложнее, а то даже и проще чем запись. Надо просто поднести карту и на клавиатуре нажать 1 и ENTER.
Подождать пока карта считается.
Нажать 2 и снова ENTER.
Подождать и вуаля. У вас полная копия карты.
Ну, почти полная, так как UID всё же остался старым. Как это побороть, я рассказал в видео.

подключение

Объяснять схему подключение не буду. Я это делал уже на протяжении трёх уроков. Если что не понятно пишите в комментариях или посмотрите предыдущие уроки.

Теперь давайте посмотрим весь процесс в целом.
Сначала мы загрузим dumpinfo и посмотрим на содержимое карт.
Будем рассматривать сектора от 0 до 3.

Чистая карта

пустая карта

Карта с информацией

записанная карта

Теперь загрузим скетч, который я назвал Reader.
Проверяем карты. Смотрим вдруг там есть какая-то информация и мы можем её затереть.
Сначала смотрим брелок.
Он оказался чистым и готовым к записи.
Если там была какая-то информация и вам её не жалко, то при следующей записи она сотрётся и поверх неё запишется новая.
То же смотрим с картой 1.
А вот на карте 2 находится нужная для нас информация. Вот её то мы и будем копировать.

Теперь скопируем нашу карту на брелок и на ещё одну карту.
Загружаем скетч COPIER.
Ждём пока в мониторе порта не покажется меню с выбором действия.
Если нажать на кнопку 1 то мы скопируем карту в буфер обмена, а цифра 3 запишет информацию на новую карту.
Главное, чтобы во время работы карта была в зоне действия считывателя, а то данные не считаются или не сохранятся.

Считываем данные с карты.
Ждём пока не снова не появится меню.
Нажимаем 3, и ждём пока информация не скопируется на брелок.
То же самое делаем со следующей картой.

Снова загрузим Reader и проверим как всё прошло.

По очереди подносим брелок и карты к считывателю и смотрим на вывод сохранённых данных.
Как можно увидеть вся информация скопировалась.
Теперь у вас есть целых 3 метки и можно их терять или ломать. Всегда есть запасная, и можно ещё их наделать целую кучу.


Ну вот и всё. Всё, как всегда, работает.
Готовые скетчи можно будет скачать по ссылкам в описании, а текстовую информацию можно прочитать в блоге. Там есть много интересного. Так что переходите.
И, как всегда, в конце урока я прошу вас поставить лайк этому видео, если оно вам понравилось. И жду ваших комментариев.
Следующее видео будет про вывод информации в программу Excel для отображения данных. Это будет очень интересный пример.
И чем больше ваших положительных отзывов, тем быстрее оно выйдет.
До встречи в следующих уроках.

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

F9Q858YH63P3USJ.LARGE

Я решил сам разобраться в этой технологии. Для этого я заказал нужные компоненты и собрал RFID считыватель своими руками.

В данной статье я расскажу, как собрать работающий считыватель RFID-меток.

Шаг 1

F63AAGQH5Y9W0SN.LARGE
FF56MGIH63P3UTZ.LARGE

В одной из прочитанных мною статей автор говорил, что его мобильный RFID считыватель работал только на частоте 13,56 МГц (короткая волна), но на частоте 1,25 кГц (длина волны ниже границы АМ-диапазона) не работал. Я же сделал считыватель, работающий на стандартной для всей этой отрасли частоте 125 кГц. Это значит, что для моего считывателя нужна другая комбинация антенны и конденсатора. Это иллюстрируют базовая схема и базовая формула. Чтобы получить нужное значение, выберите соответствующую формулу, подставьте ваши значения и с помощью калькулятора получите результат.

Шаг 2

F4DS383H5Y9W0WX.LARGE
FW7MY72H5Y9W0U5.LARGE
FPF99OKH5Y9W0W2.LARGE

Сначала я намотал проволоку на основу примерно 10 см в диаметре (я больше чем уверен, что пара сантиметров плюс-минус роли не сыграют).

Когда проволока была намотана на основание, я сравнил катушку с другими катушками, которые у меня уже были. Так я примерно оценил индуктивность новой катушки – у меня вышло около 330 мкгн.

Прежде чем приступить к пайке, я сделал предварительную сборку на макетной плате.

Шаг 3

FOSTE6OH5R9F3MB.LARGE
FN37D2UH63P3V27.LARGE

На макетной плате сначала соединяем катушку, диод и два дисковых 0,01 мкФ конденсатора (соединены последовательно друг с другом, а затем параллельно с диодом, что дает общую емкость 0,005 мкФ (5000 пФ)), затем включаем считыватель радиометок. При положении считывателя на расстоянии около 10 см от катушки горит диод. Диод горит очень ярко на расстоянии примерно 1,5 см.

Затем я добавил 100 пФ (0,0001 мкФ) конденсатор параллельно электросхеме, это увеличило радиус действия считывателя. Затем я выяснил, что добавив второй такой же конденсатор параллельно всей схеме я еще больше увеличу радиус действия считывателя. А добавление третьего конденсатора, напротив, уменьшило этот радиус. Таким образом, я установил, что емкость 5200 пФ является оптимальной для моей катушки (иллюстрация третьей попытки).

Мой приемник срабатывал бы на 10 см при использовании 0,005 мкФ конденсатора в параллельном соединении с катушкой и диодом, но макетная плата позволила использовать дополнительные конденсаторы и, тем самым, увеличила расстояние до 12,5 см.

Шаг 4

FZ1FYKXH63P3V56.LARGE
FJVUT8UH5Y9W0W6.LARGE
F4FFJB0H5EDVA2S.LARGE
FMCQ0O1H63P3V4E.LARGE

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

Шаг 5

FQMHQI1H5Y9W59H.LARGE

Все компоненты, использованные в пробной сборке на макетной плате, я собрал на печатной плате и спаял их. Потом я приклеил схему к катушке, чтобы все устройство можно было перемещать с места на место просто в руке, без лишних проводов или соединений. Устройство работает нормально. Я ожидал, что оно будет реагировать на все считыватели радиометок в пределах 7-12 см и работающие на частоте 125 кГц.

Шаг 6

Так как я знаю, что максимальное свечение диода на заданном расстоянии достигается при емкости 0, 0052 мкФ, я вставил это значение вместе с длиной волны 125 кГц в соответствующую формулу и получил значение индуктивности 312 мкгн, вместо 330 мкгн, на которые я рассчитывал.

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

Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.

Считыватель магнитной полосы пластиковых карт на PIC16F628A

В настоящее время в продаже можно найти массу всяких дешёвых китайских считывателей магнитной полосы, но поскольку покупать такие вещи настоящим радиохламерам должно быть неинтересно и неспортивно, то мы решили рассказать как собрать подобный считыватель самим, на коленке.

Итак, нам понадобятся: считывающая головка от магнитофона (как на рисунке слева), тонкий лист текстолита, двухканальный операционник, контроллер PIC16F628A, ну и всякая рассыпуха, типа резисторов и конденсаторов.

Начнём мы с изготовления каркаса. Для каркаса нужно вырезать из текстолита 1 кусок размерами 70х50 мм, 1-2 куска размерами 70х30 мм и ещё несколько кусков размерами 20х20 мм (столько, чтобы общая толщина сложенных друг на друга кусков, кроме первого, была примерно равна высоте считывающей головки).

Далее все куски надо сложить друг на друга, выровняв по двум сторонам. Должен получиться примерно такой слоёный пирог, как на рисунке справа. Теперь всю эту конструкцию нужно скрепить, — склеить или просверлить по углам дырки и стянуть винтами, или ещё как-нибудь (лучше всё же стянуть винтами, хотя бы на первое время, так будет удобнее добавлять/убавлять слои для подгона высоты).

Далее выпиливаем из текстолита полоску, по ширине равную ширине считывающей головки и длиной около 40 мм. Это будет держатель головки. На один конец припаиваем головку с проводами, от другого конца до головки делаем прорезь, должно получиться как на рисунке слева.

Осталось только соединить держатель головки и каркас. В верхней части каркаса, примерно посередине нужно закрепить скобу (гвоздь, проволоку), и с обоих сторон от этой скобы просверлить по отверстию, диаметр которого совпадает с шириной прорези в держателе головки. Далее нужно винтами, вставленными в просверленные отверстия закрепить держатель на каркасе. Должно получиться как на рисунке справа. Толщина винтов опять же должна совпадать с диаметром отверстий и шириной прорези, чтобы держатель не болтался. Он должен иметь возможность перемещаться только вдоль оси, соединяющей центры отверстий. Это нужно для возможности позиционирования головки на дорожке магнитной полосы. Чуть подкручивая винты можно регулировать степень прижимания головки к поверхности каркаса (опирающийся на скобу держатель будет изгибаться чуть сильнее или чуть меньше).

Ну вот, каркас готов, — можно переходить к схеме и печатной плате.

Схема нашего кардридера приведена на рисунке слева.

Как видите, данный девайс можно условно разделить на две части: аналоговую и цифровую. Аналоговая часть состоит из считывающей головки и двухкаскадного усилителя, выполненного на сдвоенном операционнике LM358. Цифровая часть состоит из контроллера и преобразователя интерфейсов на микросхеме MAX232, позволяющего передать информацию от контроллера на компьютер или на другой контроллер по интерфейсу RS-232. Чтобы сильно не загружать схему, — обвязка MAX232 не нарисована, её можно посмотреть в даташите или вот здесь.

Задача контроллера — отсчитать промежутки времени между изменениями уровня сигнала с головки (другими словами — измерить время между фронтами) и передать их на компьютер. Для этих целей используется встроенный в контроллер компаратор, на один вход которого подаётся сигнал с усилителя, а на другой — опорный уровень с делителя на резисторах. Контроллер засекает время между прерываниями от компаратора. Далее программа на компьютере восстанавливает из этих временных интервалов исходный двоичный сигнал, а потом декодирует его.

Полностью собранный девайс выглядит вот так:

Как видите, контроллер пришлось вынести на отдельную плату от аналоговой части и преобразователя интерфейсов. Это позволило развернуть контроллер и сделать электронную часть в целом менее широкой (менее 20 мм, чтоб сбоку от держателя головки помещалась). Платы размещаются одна над другой и сопряжены с помощью 5-ти штырькового разъёма (на фотке не так, но это просто у меня разъёма не было).

Подробно про приём и декодирования F/2F частотно кодированных сигналов можно прочитать вот здесь (мы имеем дело как раз с такими сигналами и реализуем как раз такой алгоритм, как в той статье), а про то, где и в каком формате на карте обычно записывают данные — вот тут.

Программа для компьютера декодирует записанные в log-файл с помощью программы RH_Com интервалы между импульсами (в hex-формате). Данная программа дана просто для примера, в ней реализовано декодирование только пятибитной кодировки, отсутствует контроль правильности считывания по чётности и LRC.

Сообщества › Сделай Сам › Блог › RFID контроль доступа

Что такое RFID
Википедия нам говорит следующее:
RFID (англ. Radio Frequency IDentification, радиочастотная идентификация) — способ автоматической идентификации объектов, в котором посредством радиосигналов считываются или записываются данные, хранящиеся в так называемых транспондерах, или RFID-метках.
Внешне метки выглядят либо так

bc7be95s 960

a27be95s 960

fafbe95s 960

867be95s 960

f27be95s 960

ce7be95s 960

Считываем
В теории каждая карта имеет уникальный собственный номер Uid, зная который мы можем идентифицировать и саму карту (на самом деле карты можно дублировать, но пока об этом скромно умолчим 🙂 )
Для того, чтобы считать нам понадобится собственно сам модуль rc522 и плата Arduino Pro Mini или другая подобная, но тогда нужно будет помотреть к каким выводам подключаться. Предостерегаю от использования Pro Micro — у меня с ней нормально не заработало, возможно нужно было просто поиграться с выводами RST и SS

e1fbe95s 960

8efbe95s 960

86fbe95s 960

RST — Reset. Линия сброса. Данный пин цепляется на цифровой порт с PWM на пин 9 Pro Mini;

GND — Ground. Земля — тут очевидно

MISO — Master Input Slave Output — Данные от ведомого к ведущему, SPI; на Pro Mini это пин 12

MOSI — Master Output Slave Input — данные от ведущего к ведомому, SPI; — к 11 пину на Pro Mini

SCK — Serial Clock — тактовый сигнал, SPI; — пин 13

NSS — Slave Select — выбор ведомого, SPI; — пин 10

IRQ — линия прерываний; — оставляем свободным.

У меня получилось нечто подобное:

72fbe95s 960

59fbe95s 960

7dfbe95s 960

b3fbe95s 960

997be95s 960

Кроме того, как защита от зависания, возможного в авто, при скачках напряжения, используется Сторожевой таймер (он же watchdog)
Чтобы в случае перезагрузки система восстанавливала свой статус, он записывается каждый раз в энергонезависимую память EEPROM

Еще обратите внимание, что все временные интервалы в функциях delay(), millis() отсчитываются не в милисекундах, а как 10*милисекунды. Это особенность интерпретатора Arduino для микроконтроллеров, куда не загружен загрузчик Ардуино — я о ней писал ранее

Ну и собственно говоря сам код:

MFRC522 mfrc522(SS_PIN, RST_PIN);
unsigned long uidDec, uidDecTemp; // для храниения номера метки в десятичном формате
unsigned long uidOld = 0;
unsigned long kod1=1**********8; // код метки 1, записать свой
unsigned long kod2=2**********5; // код метки 2, записать свой
int stat =0; //Состояние замка: 0 — открыт; 1 — закрыт (после первого запуска и отладки, оставить только int stat =0;
unsigned long time_s; // Время от последнего изменения статуса

// Сброс таймера watchdog
wdt_reset();

// Считываем текущее состояние замка
stat = EEPROM.read(0);

digitalWrite(14, HIGH); // turn the LED on (HIGH is the voltage level)
delay(50); // wait for a second
digitalWrite(14, LOW); // turn the LED off by making the voltage LOW
delay(50); // wait for a second
uidOld=uidDec;
time_s=millis();
stat=0;
EEPROM.write(0, stat); // Записываем текущее состояние замка
>
>
>
>

inline void WDT_on(void)

© 2021 Народное творчество Все права сохранены. Внимание! Информация, опубликованная на сайте, носит исключительно ознакомительный характер и не является рекомендацией к применению. Материалы могут содержать информацию, предназначенную для пользователей старше 18 лет. 18+

Читайте также: