Студопедия

Главная страница Случайная лекция


Мы поможем в написании ваших работ!

Порталы:

БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика



Мы поможем в написании ваших работ!




Смарт-карты с открытой памятью. Протоколы работы

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

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

Одним из наиболее крупных поставщиков смарт-карт на российский рынок является фирма "Gemplus". Эта фирма разрабатывает и изготовляет самые разные смарт-карты: от самых простых и дешевых (с открытой памятью) до самых дорогих и, естественно, наиболее защищенных (микропроцессорные асинхронные карты). Вообще стоимость и область применения любой смарт-карты определяется, прежде всего, ее защищенностью от несанкционированного доступа к записанной на нее информации.

В данной лабораторной работе используются смарт-карты с открытой памятью фирмы "Gemplus" - GFM-2K. Некоторые технические характеристики этих карт приведены в табл. 4.

Таблица 4. Характеристики смарт-карт GFM-2K

Параметр Значение Единица измерения Примечание
Уровни сигналов ТТЛ - -
Питающее напряжение 5 ± 25% В -
Время выборки < 10 Мкс -
Время записи Около 10* Мс -
Протокол работы I2C (Phillips) - -
Объем защищенной памяти - - -
Объем незащищенной памяти Бит Организация памяти: 256 x 8 бит или 32 x 8 байт **

* - зависит от значения напряжения питания.

** - такая организация памяти определяется протоколом работы карт (см. ниже).

GFM-2K поддерживают стандарты ISO 7816-1,2. Смысл сигналов на контактах карты представлен на рис. 5.

Как было указано выше, смарт-карты с открытой памятью GFM-2K работают по протоколу последовательной передачи данных I2C. Данный протокол – двухпроводной, т.е. использует две линии: одну – для передачи данных, другую – для синхронизации. Протокол разработан фирмой ‘Phillips’ и используется уже достаточно длительное время.

Краткое описание протокола I2C.

Шина, с которой работают два (или более) устройства для передачи данных, представляет собой совокупность синхронизирующей линии (SCL) и линии передачи данных (SDA). Устройства работают по принципу "Master - Slave". Устройство Master генерирует синхроимпульсы, управляет доступом в шину и реализует состояния “Старт” и “Стоп”. Любое из устройств может работать как передатчик данных и как приемник, однако именно Master определяет какой из режимов будет выбран в следующий момент.

Метод доступа в шину следующий:

передача данных может быть начата только, когда шина свободна;

при передаче данных состояние линии передачи данных не должно изменяться. В противном случае это будет воспринято как сигналы “Старт” или “Стоп”.

Далее описаны основные состояния шины (см. рис. 6).

Шина не занята.

SCL и SDA имеют высокий уровень.

Начало передачи данных (“Старт”).

 
 

Изменение SDA от высокого уровня к низкому, когда SCL имеет высокий уровень. Любая команда должна начинаться со “Старта”.

Конец передачи данных (“Стоп”).

Изменение SDA от низкого уровня к высокому, когда SCL имеет высокий уровень. Все операции должны заканчиваться “Стопом”.

Содержательная часть.

Когда после “Старта” состояние линии SDA не меняется на время высокого значения сигнала SCL, считается, что передан очередной бит данных команды или адреса. Подготовка к следующей передаче бита (т.е. изменение состояния линии SDA) должна осуществляться во время низкого уровня на линии SCL.

Количество передаваемых бит между сигналами “Старт” и “Стоп” задается устройством Master и, теоретически, не ограничено. Однако только последние 16 бит будут зафиксированы приемником. Таким образом, память, предварительно накапливающая принимаемые биты, работает по принципу FIFO.

Передача бит в составе байта осуществляется старшими разрядами вперед.

Уведомление (Acknowledge).

Устройство, работающее на прием, после приема каждого байта данных обязано послать сигнал уведомления (Acknowledge). Master специально генерирует для этого лишний тактовый импульс.

 
 
Примечание: Во время осуществления цикла записи в EEPROM управляющий блок запоминающего устройства Slave не генерирует сигнал уведомления до окончания цикла записи.     Примечание: Во время осуществления цикла записи в EEPROM – память, управляющий блок запоминающего устройства Slave не генерирует сигнал уведомления до окончания цикла.

 

 


Сигналом уведомления является удержание в низком состоянии линии SDA на все время присутствия специального такта.

Master должен сигнализировать устройству Slave об окончании получения данных путем удержания (отсутствия генерации) сигнала уведомления. Slave должен ответить на это установкой линии SDA в высокое состояние, чтобы позволить устройству Master послать “Стоп”.

Реализуемые операции.

Протокол I2C предполагает наличие на шине множества устройств. Тогда для обращения к конкретному необходимо сгенерировать некоторый “Сигнал выбора”. Однако, поскольку, I2C – последовательный протокол, то это должно быть реализовано в последовательном виде.

Делается это следующим образом. Каждая операция начинается с посылки “Старта” и, вслед за ним, управляющего байта. Структура управляющего байта показана на рис. 7.

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

Для смарт-карт GFM-2K адрес показан на рис. 7.

Восьмой бит управляющего байта задает режим работы: чтения или записи.

Запись байта.

После передачи управляющего байта и получения уведомления Master должен отправить восьмибитный адрес, который Slave записывает в свой адресный указатель, отвечая на прием адреса сигналом уведомления. После получения данного сигнала Master посылает восьмиразрядное слово, которое Slave запишет по указанному адресу и, затем, отправит сигнал уведомления. В конце операции Master обязан отправить “Стоп” для уведомления устройства Slave (рис. 8).

 
 
Примечание: Обратите внимание на то, что последний сигнал уведомления отправляется только после того, как запись произведена. Таким образом, для увеличения пропускной способности шины I2C целесообразно после отправки последнего бита записываемого слова поллингом (т.е. постоянным опросом) ожидать появления уведомления, после чего немедленно продолжать работу.  

 


 
 


Запись страницы.

С точки зрения быстродействия, операция записи байта нерациональна при работе с большими объемами информации. Для уменьшения временных затрат предусмотрена запись страницами. В нашем случае страница представляет собой восемь последовательно расположенных в памяти байт. Причем, первый байт из этой серии расположен по адресу, младшие 3 бита которого – нулевые. Вследствие этого всю память GFM-2K можно представить как последовательность из 256 байт или 32 неперекрывающихся страниц по 8 байт.

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

 


Протокол этой операции отличается от протокола операции записи байта следующим:

после отправки первого байта информации и получения уведомления Master не отправляет “Стоп”, а продолжает посылку еще семи байт, получая уведомление после каждого из них;

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

Чтение по текущему адресу.

Как было указано выше, чип устройства Slave имеет внутренний адресный указатель. Этот указатель после каждой операции чтения и записи инкрементируется на 1, т.е. если, например, операция записи была произведена по адресу n, то следующая за ней операция чтения по текущему адресу, прочитает байт, содержащийся в ячейке (n+1).

После получения управляющего байта с R/W = 1 устройство Slave посылает сигнал уведомления о получении команды, а затем байт, адрес которого содержится в данный момент во внутреннем счетчике. Master после получения байта данных не уведомляет об этом устройство Slave, но обязано сгенерировать сигнал “Стоп” (рис. 9).

Произвольное чтение.

Операция произ-вольного чтения дает устройству Master возможность доступа к любой ячейке памяти Slave. Для реализации этой операции, прежде всего, необходимо установить интересующий адрес во внутренний указатель Slave. Это делается отправкой адреса, как части операции записи байта. Таким образом после отправки управляющего байта с R/W = 0 и адреса, а также получения уведомления, Master снова генерирует “Старт”. Это прерывает операцию записи, но требуемый адрес оказывается в адресном указателе устройства Slave.


Далее осуществляется описанная выше операция чтения по текущему адресу (рис.10).

 

В протоколе I2C предусмотрена также операция последовательного чтения, которая позволяет за одно обращение прочитать целиком всю память. Однако разработчики чипов смарт-карт GFM-2K сочли использование подобной операции излишним

Задание.С помощью программной оболочки записать в первые 2 байта памяти карты GFM-2K произвольные значения, а затем, реализовав протокол чтения (также с помощью оболочки) после сброса карты, прочитать записанные значения.

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

1. Внимательно ознакомиться с методическими указаниями к работе.

2. Получить у преподавателя смарт-карту GFM-2K.

3. С помощью программной оболочки и макета записать в несколько первых байт памяти карты произвольную информацию.

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

реализовать операцию произвольного чтения;

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

5. Зарисовать составленные протоколы и ответ карты.

6. Упаковать переданные картой данные в байты.

7. Сравнить полученные байты с теми, которые были записаны при реализации п. 3.

8. Составить отчет о проделанной работе.

Содержание отчета:

1. Цель работы.

2. Записанная на карту информация (2 байта).

3. Графическое изображение протоколов работы с ответом карты.

4. Показать процесс упаковки байтов.

 

 


<== предыдущая страница | следующая страница ==>
Реализация протоколов работы с телекартами второго поколения через порт параллельной передачи данных с использованием компьютера | Области применения смарт-карт

Дата добавления: 2015-06-30; просмотров: 320; Нарушение авторских прав




Мы поможем в написании ваших работ!
lektsiopedia.org - Лекциопедия - 2013 год. | Страница сгенерирована за: 0.004 сек.