Стандарты магнитных карт - Применение усилителя считывающей головки с магнитной полосой

Hacker

Professional
Messages
1,046
Reputation
9
Reaction score
743
Points
113
App Note 006 Применение усилителя считывающей головки с магнитной полосой AN10E40

Время от времени появляются технологии, которые просты в использовании, надежны и адаптируются ко многим приложениям. Магнитные полосы данных - одна из таких технологий. Очевидный пример - кредитная карта. Но есть много других примеров, в том числе бумажные билеты на самолет, клубные карты для покупок, идентификационные карты магазина видеопроката, водительские права, дебетовые карты торговых автоматов и этот список можно продолжить. В этой заметке по применению кратко описывается, как можно использовать программируемую аналоговую матрицу Anadigm Field Programmable Analog Array (FPAA) для создания полного усилителя / декодера считывания магнитной полосы и как ее можно легко подключить к главному процессору. В примечании также описаны преимущества фиксированной функции программируемых аналоговых и фиксированных функций в таком приложении. Стандартная карта » Я просто зафиксирую здесь основные моменты, понимая, что мы используем считывающую головку и корпус, предназначенные для приложений чтения магнитных полос пластиковых карт. Таких поставщиков много, в данном случае использовалась продукция Magtek. Я просто зафиксирую здесь основные моменты, понимая, что мы используем считывающую головку и корпус, предназначенные для приложений чтения магнитных полос пластиковых карт. Таких поставщиков много, в данном случае использовалась продукция Magtek.

Трек 1 - IATA Трек 2 - ABA Трек 3 - THRIFT

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

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

Дорожка 1 - Дорожка 2 IATA - Дорожка ABA 3 - Дорожные

биты на символ Альфа - 6 данных + 1 четность (нечетная) BCD - 4 данных + 1 четность (нечетная) BCD - 4 данных + 1 четность (нечетная)

бит на дюйм 210 75 210

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

Считывающая головка проходит по полосе в этом направлении.

S
N
N
S
S
N
N
S
SN
NSSN
NS
S
N
NS
SN
N
S

Магнитная полоса

Преобразование сигнала головки чтения в F2F 0

0
0
0
B1 = 1
B2 = 1
B3 = 0
B4 = 1
P = 0

Декодирование из F2F в двоичные данные карты 4 тактовых бита (ведущие нули)

Start Sentinal ";"

Магнитная полоса. Понимание процесса преобразования начинается с знания того, как данные хранятся на карте. Представьте длинную цепочку стержневых магнитов, некоторые из которых имеют длину одну единицу (и всегда встречаются парами), а остальные - две единицы. Кроме того, каждый из этих стержневых магнитов расположен вопреки предпочтительному состоянию, так что север всегда касается севера, а юг всегда касается юга. В этих областях, где примыкают одинаковые полюса, наблюдается большая концентрация силовых линий магнитного поля. Сигнал считывающей головки Магнитная полоса проходит мимо считывающей головки. Ток будет индуцироваться при прохождении каждой из этих областей с высокой концентрацией магнитного потока. NN будет индуцировать ток в одном направлении, а SS будет индуцировать ток в противоположном направлении. Как оказалось, полярность сигнала считывающей головки значения не имеет. Только интервал между переходами имеет значение для преобразования в сигнал F2F. F2F или Aiken Biphase На данный момент мы отложим обсуждение того, как создать форму волны F2F из сигнала считывающей головки, и вместо этого сосредоточимся только на том, что такое кодирование F2F. Также известное как Aiken Biphase, кодирование F2F использует пространство между переходами потока для кодирования бита. Магнит с двумя единицами представляет ноль, а пара полос с одной единицей представляет собой единицу. Другими словами, каждый бит занимает на полосе одинаковую физическую длину. Бита с «лишним» магнитным переходом в середине длины называется единицей. Опять же, полярность этих переходов произвольна, это относительное пространство между переходами, которое означает Единицу или Ноль. Преобразование данных карты в ASCII Каждая дорожка начинается и заканчивается «битами синхронизации» . Биты синхронизации - это не что иное, как строка нулей. Оказывается, ручное считывание карты - это событие с довольно постоянной скоростью. Таким образом, битовый период от начала смахивания очень близок к битовому периоду в конце смахивания. «Биты синхронизации» проверяются на длину (битовый период) и устанавливают скорость конкретного пролистывания. Ноль распознается, если время, прошедшее между переходами потока, близко к битовому периоду. Единица распознается, если время, прошедшее между переходами потока, близко к половине периода бита. Для процессоров, оснащенных периферийным таймером, можно подключить выход FPAA (который будет переключаться между 0 и 5 В во время считывания карты) к входному контакту порта таймера. Прерывания будут генерироваться при каждом переходе, и сохранение значений таймера в массиве - это все, что требуется от подпрограммы обслуживания прерывания. Небольшая постобработка массива значений позволяет легко расшифровать единицы и нули. Для более дешевых процессоров вам придется вместо этого подключить выход FPAA к входному контакту общего назначения на процессоре. Как только первый переход обнаружен (обычно как прерывание), процессор должен полностью посвятить себя отслеживанию времени, регулярному опросу входного контакта и записи, когда происходят переходы. Здесь снова постобработка массива отметок времени расшифрует единицы и нули. Вместо этого мне придется подключить выход FPAA к входному контакту общего назначения на процессоре. Как только первый переход обнаружен (обычно как прерывание), процессор должен полностью посвятить себя отслеживанию времени, регулярному опросу входного контакта и записи, когда происходят переходы. Здесь снова постобработка массива отметок времени расшифрует единицы и нули. Вместо этого мне придется подключить выход FPAA к входному контакту общего назначения на процессоре. Как только первый переход обнаружен (обычно как прерывание), процессор должен полностью посвятить себя отслеживанию времени, регулярному опросу входного контакта и записи, когда происходят переходы. Здесь снова постобработка массива отметок времени расшифрует единицы и нули.

Имейте в виду, что карта могла быть сдвинута назад. Переворачивание данных легко выполняется в программном обеспечении. Теперь, когда у вас есть строка из единиц и нулей, вам нужно определить, где начинались данные, и как их интерпретировать. Для ознакомления с этой частью процесса см. Приложение к этой заметке. Применение AN10E40 в качестве усилителя с магнитной считывающей головкой и генератора F2F Требуются только каскады усиления G01 и компараторы C02. Показанная здесь схема представляет собой своего рода «аналоговый триггер SR». Компараторы и их цепи обратной связи образуют бистабильную схему. Схема стабилизируется только в двух состояниях. [-100]

[-100] N
0 В +2,5 В +1,25 В
0 В (VMR)
N

Головка чтения ячейки ввода-вывода

.5] [-0

Ячейка ввода-вывода

-1,25 В
0 В [-10]
[-10]
[-0.

Ячейка ввода-вывода

+2,5 В,

высокий логический уровень

-25 мВ,

низкий логический уровень

Ячейка ввода- вывода

SS Ячейка

ввода-вывода

0 В
.5] [-0

Ячейка ввода-вывода

0 В (VMR)
[-0,5]
5]
-2,5 В [-10]
[-10]

Смотрим на принципиальную схему слева. Напряжения выделены жирным шрифтом, а коэффициенты усиления усилителя указаны в квадратных скобках. Усилители показаны с пузырьками на их выходах, чтобы служить визуальным напоминанием о том, что все это инвертирующие усилители. Предположим, что карты нет и все напряжения на узлах такие, как показано. (Напоминание: вся обработка аналоговых сигналов в FPAA выполняется по отношению к промежуточной шине напряжения (VMR), и по соглашению это обозначается как 0 В. VMR на самом деле находится на 2,5 В выше заземления микросхемы… так что для левой диаграммы вверху , процессор будет воспринимать выход +2,5 В как +5 В (высокий логический уровень), а выход -2,5 В как 0 В (низкий логический уровень).) Изучите напряжения узлов на мгновение, и вы увидите, что схема находится в стабильном состоянии. На выходе высокий логический уровень. Теперь посмотрим, что происходит, когда карта проходит мимо считывающей головки. В примере, показанном выше справа, магнитное поле SS прошло через зазор в считывающей головке. Это вызвало небольшой всплеск отрицательного сигнала. Входные каскады с высоким коэффициентом усиления преобразуют этот небольшой всплеск в сигнал полной шины. (Любой входной сигнал с амплитудой более 25 мВ просто приведет к ограниченному сигналу, как показано.) Этот положительный импульс, подаваемый на отрицательный вывод верхнего компаратора, заставит его изменить состояние, как показано спадающей формой выходного сигнала. С нижним компаратором происходит прямо противоположное, когда вся схема переходит в другое стабильное состояние. Теперь на выходе низкий логический уровень. Входные каскады с высоким коэффициентом усиления преобразуют этот небольшой всплеск в сигнал полной шины. (Любой входной сигнал с амплитудой более 25 мВ просто приведет к ограниченному сигналу, как показано.) Этот положительный импульс, подаваемый на отрицательный вывод верхнего компаратора, заставит его изменить состояние, как показано спадающей формой выходного сигнала. С нижним компаратором происходит прямо противоположное, когда вся схема переходит в другое стабильное состояние. Теперь на выходе низкий логический уровень. Входные каскады с высоким коэффициентом усиления преобразуют этот небольшой всплеск в сигнал полной шины. (Любой входной сигнал с амплитудой более 25 мВ просто приведет к ограниченному сигналу, как показано.) Этот положительный импульс, подаваемый на отрицательный вывод верхнего компаратора, заставит его изменить состояние, как показано спадающей формой выходного сигнала. С нижним компаратором происходит прямо противоположное, когда вся схема переходит в другое стабильное состояние. Теперь на выходе низкий логический уровень. С нижним компаратором происходит прямо противоположное, когда вся схема переходит в другое стабильное состояние. Теперь на выходе низкий логический уровень. С нижним компаратором происходит прямо противоположное, когда вся схема переходит в другое стабильное состояние. Теперь на выходе низкий логический уровень.

На рисунке выше изображена схема в действии. В этом конкретном случае считывающая головка была подключена напрямую к AN10E40. Верхний график показывает исходный вход считывающей головки… шум и все такое. Нижний график показывает выходной сигнал схемы (логический сигнал 0–5 В F2F). Никакие другие компоненты не использовались. Ничего подобного; это так просто с программируемым аналогом.

Схема, как показано выше, потребляет только 9 из 20 CAB, доступных в AN10E40. Фактически, два последовательных усилителя в нижней части схемы действительно не требуются, при условии, что отрицательная клемма нижнего компаратора вместо этого подключена к VMR, и это снижает потребление CAB на два. В AN10E40 достаточно места для второго считывающего канала. Преимущества использования программируемого аналога Описанная схема достаточно проста и, конечно, может быть построена с использованием примерно двадцати стандартных компонентов. Так почему же программируемый аналог?

Очевидный ответ - количество компонентов. В этом приложении не использовались какие-либо дополнительные компоненты. Считывающая головка была подключена напрямую к FPAA. Однако настоящие преимущества не станут очевидными, пока вы не вынесете схему из лаборатории и не попадете в суровый свет реального мира. В реальном мире считыватели полосок кредитных карт, построенные без программируемых аналогов, - это не все, чем они должны быть. Вы видели свидетельства этого так много раз, что, вероятно, уже оцепенели. Найдите минутку и вспомните все приемы «смахивания» кассира, свидетелями которых вы были. «Медленное и неторопливое» смахивание. «Быстрый свайп». Проведите пальцем по экрану "запустить назад". Техника «бегать туда-сюда, вперед-назад» (одна из моих любимых). Параметр «очистите карту и попробуйте еще раз смахнуть». Параметр «заверните карту в полиэтиленовый пакет и попробуйте еще раз смахнуть». Техника «попробуй другой кардридер». И, конечно же, это окончательный план действий в непредвиденных обстоятельствах, когда кассир держит карту прямо на свету, чтобы можно было распознать сильно изношенные выпуклые числа и ввести вручную (обычно, делясь с вами отвращенным взглядом). Грязь, износ, температура и воздействие непреднамеренных магнитных полей - все это делает карты с магнитной полосой трудными для чтения. Точно так же грязь, износ и коррозия снижают эффективность считывающих головок. Так как же программируемый аналог исправить ситуацию? Главный процессор может загрузить полную новую конфигурацию схемы в AN10E40 менее чем за 125 микросекунд. Таким образом, если провести пальцем не удалось, вы можете отрегулировать усиление входных усилителей всего за доли секунды. Фактически, в тщательно спроектированной системе вы можете регулировать усилители считывания во время ведущих битов синхронизации! Второго свайпа не потребуется. Схема также может быть настроена для чтения карт с разной коэрцитивной силой магнитной полосы. Хотя обычно это не важно для считывающих головок, регулировка сигналов привода записывающей головки необходима для учета таких различий коэрцитивной силы. Это некоторые преимущества применения программируемого аналога только в стандартных карточных приложениях. В пользовательских приложениях использование программируемого аналога дает еще больше преимуществ. Для приложений с высоким уровнем безопасности FPAA может быть настроен для обработки различных методов кодирования данных, включая генерацию и декодирование тонов. Функции чтения и записи и многое другое. Второго свайпа не потребуется. Схема также может быть настроена для чтения карт с разной коэрцитивной силой магнитной полосы. Хотя обычно это не важно для считывающих головок, регулировка сигналов привода записывающей головки необходима для учета таких различий коэрцитивной силы. Это некоторые преимущества применения программируемого аналога только в стандартных карточных приложениях. В пользовательских приложениях использование программируемого аналога дает еще больше преимуществ. Для приложений с высоким уровнем безопасности FPAA может быть настроен для обработки различных методов кодирования данных, включая генерацию и декодирование тонов. Функции чтения и записи и многое другое. Второго свайпа не потребуется. Схема также может быть настроена для чтения карт с разной коэрцитивной силой магнитной полосы. Хотя обычно это не важно для считывающих головок, регулировка сигналов привода записывающей головки необходима для учета таких различий коэрцитивной силы. Это некоторые преимущества применения программируемого аналога только в стандартных карточных приложениях. В пользовательских приложениях использование программируемого аналога дает еще больше преимуществ. Для приложений с высоким уровнем безопасности FPAA может быть настроен для обработки различных методов кодирования данных, включая генерацию и декодирование тонов. Функции чтения и записи и многое другое. регулировка сигналов привода записывающей головки важна для учета таких различий коэрцитивной силы. Вот некоторые преимущества применения программируемого аналога только в стандартных карточных приложениях. В пользовательских приложениях использование программируемого аналога дает еще больше преимуществ. Для приложений с высоким уровнем безопасности FPAA может быть настроен для обработки различных методов кодирования данных, включая генерацию и декодирование тонов. Функции чтения и записи и многое другое. регулировка сигналов привода записывающей головки важна для учета таких различий коэрцитивной силы. Это некоторые преимущества применения программируемого аналога только в стандартных карточных приложениях. В пользовательских приложениях использование программируемого аналога дает еще больше преимуществ. Для приложений с высоким уровнем безопасности FPAA может быть настроен для обработки различных методов кодирования данных, включая генерацию и декодирование тонов. Функции чтения и записи и многое другое.

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

дорожка 1 2 3

Стандартный IATA ABA Thrift

BPI 210 75 210

Тип символа Буквенно-цифровой BCD BCD

Количество символов 79 40 107

Схема кодирования 6 бит + нечетная четность 4 бита + нечетная четность 4 бит + нечетная четность

Комментарии Только чтение Только чтение Чтение и запись (необычное использование)

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

Также общими для каждого трека являются символы Start Sentinel (SS), End Sentinel (ES) и Logitudnal Redundancy Check (LRC). На дорожке 1 символы SS и ES - это% и? Соответственно. На дорожках 2 и 3 символы SS и ES: и? соответственно. Разделители полей (FS) являются общими для дорожек 1 и 2. Если сначала вы не узнаете Start Sentinel, то, скорее всего, карта была перемещена назад. Вам придется соответствующим образом настроить алгоритм декодирования. LRC - это сумма всех предыдущих битов Bn для всех предыдущих символов на полосе (переполнение игнорируется). Бит нечетной четности, связанный с каждым символом, будет указывать на проблему только из-за того, что нечетное количество битов (например, 1) было ошибочным для этого символа. Маловероятно, что в одном символе будет 2 битовых ошибки, но если есть, проверка нечетной четности не распознает событие. Тогда задача LRC состоит в том, чтобы добавить еще один уровень проверки ошибок для потока данных, связанного со всей дорожкой. Конкретный макет дорожки 1

нули | SS | FC | Primary Acct (не более 19 символов) | Имя (не более 26 символов) | FS | другие данные | ES | LRC | нули Track 2 Specific Layout

нули | SS | Primary Acct (не более 19 символов) | FS | другие данные | ES | LRC | нули Трек 3 Слишком много нестандартных применений Трека 3, чтобы перечислить здесь. Достаточно сказать, что это в значительной степени заброшенный трек, и, следовательно, именно здесь большинство специализированных или настраиваемых систем будут кодировать данные. Первоначальное намерение состояло в том, чтобы использовать эту дорожку как дорожку чтения / записи и фактически переносить сюда зашифрованную информацию о балансе вашего банковского счета. Это позволяло банкоматам, не подключенным к сети, выдавать деньги, не зная наверняка, каким был ваш фактический баланс на момент снятия. Банковской отрасли не потребовалось много времени, чтобы понять, что гораздо лучше объединить банкоматы в сеть и отказаться от идеи динамических данных на вашей карте банкомата. Трек 3 теперь сирота.

Набор символов дорожки 1 - 6-битный алфавит с символом нечетной четности

P B6 B5 B4 B3 B2 B1 Пробел 1 0 0 0 0 0 0

0 0 0 1 1 1 0 2E N 1 1 0 1 1 1 0 4E / 1 0 0 1 1 1 1 2F O 0 1 0 1 1 1 1 4F 0 0 0 1 0 0 0 0 30 P 1 1 1 0 0 0 0 50 1 1 0 1 0 0 0 1 31 Q 0 1 1 0 0 0 1 51 2 1 0 1 0 0 1 0 32 R 0 1 1 0 0 1 0 52 3 0 0 1 0 0 1 1 33 S 1 1 1 0 0 1 1 53 4 1 0 1 0 1 0 0 34 T 0 1 1 0 1 0 0 54 5 0 0 1 0 1 0 1 35 U 1 1 1 0 1 0 1 55 6 0 0 1 0 1 1 0 36 V 1 1 1 0 1 1 0 56 7 1 0 1 0 1 1 1 37 W 0 1 1 0 1 1 1 57 8 1 0 1 1 0 0 0 38 X 0 1 1 1 0 0 0 58 9 0 0 1 1 0 0 1 39 Y 1 1 1 1 0 0 1 59 3A Z 1 1 1 1 0 1 0 5A 3B 5B 3C 5C = 1 0 1 1 1 0 1 3D 5D 3E ^ (FS) 0 1 1 1 1 1 0 5E? (ES) 0 0 1 1 1 1 1 3F 5F Чтобы преобразовать в значение ASCII, игнорируйте P (бит четности) и добавьте шестнадцатеричное значение B [6: 0] к 20 шестнадцатеричному. Например, для символа / 0F + 20 = 2F Набор символов 2 и 3 дорожек - 4-битный двоично-десятичный код с нечетной четностью

Символ P B4 B3 B2 B1 Символ ASCII P B4 B3 B2 B1 ASCII 0 1 0 0 0 0 30 8 0 1 0 0 0 38 1 0 0 0 0 1 31 9 1 1 0 0 1 39 2 0 0 0 1 0 32: (AS) 1 1 0 1 0 3A 3 1 0 0 1 1 33; (SS) 0 1 0 1 1 3B 4 0 0 1 0 0 34 <1 1 1 0 0 3C 5 1 0 1 0 1 35 = (FS ) 0 1 1 0 1 3D 6 1 0 1 1 0 36> 0 1 1 1 0 3E 7 0 0 1 1 1 37? (ES) 1 1 1 1 1 3F Чтобы преобразовать в значение ASCII, игнорируйте P (четность bit) и добавьте шестнадцатеричное значение B [4: 0] к 30 шестнадцатеричному. Например, для; символ, B + 30 = 3B P = Бит четности, обычно нечетный SS = Start Sentinel ES = End Sentinel

FS = Field Separator AS = Account Separator (Track 3 Only) OG = Option Graphic
 
Top