Статья опубликована в рамках: Научного журнала «Студенческий» № 19 (19)
Рубрика журнала: Технические науки
Секция: Радиотехника, Электроника
Скачать книгу(-и): скачать журнал часть 1, скачать журнал часть 2, скачать журнал часть 3
ЦИФРОВОЙ БЛОК ИНТЕРФЕЙСА I2C
В современных электронных системах присутствует общая черта – потребность в передаче и хранении информации. Для этих целей инженеры всего мира разрабатывали различные протоколы для передачи и устройства для хранения данных.
Была поставлена задача разработать цифровой блок интерфейса:
- Блок предназначен для работы с памятью типа EEPROM с последовательным интерфейсом I2C (TWI);
- Блок должен поддерживать работу с микросхемами памяти с количеством разрядов в информационном слове 8 бит, емкостью до 32768 слов;
- Блок должен поддерживать режим записи данных со входа (2 ячейки по 8 бит по 1 адресу);
- Блок должен поддерживать режим чтения данных (2 ячейки по 8 бит по 1 адресу);
- Блок должен поддерживать режим протокола с адресной посылкой в 8 бит и 16 бит.
Изначально модуль можно представить черным ящиком, имеющим некоторое количество входных и выходных контактов. Конкретизируем количество входов и выходов блока, составив таблицу 1.
Таблица 1.
Описание входов/выходов блока
Наименование |
Направление |
Назначение |
ADDR(N-2:0) |
ВХОД |
Адрес, по которому производится чтение/запись |
DATA_WR(15:0) |
ВХОД |
Данные для записи |
STROBE |
ВХОД |
Строб начала чтения/записи данных |
RW |
ВХОД |
Сигнал переключения режима: 1 – запись, 0 – чтение |
CLK |
ВХОД |
Внешний синхросигнал 50 МГц |
RESET |
ВХОД |
Сигнал сброса, активный уровень – 0 |
EXT_PROT_EN |
ВХОД |
Сигнал переключения используемого протокола: 0 – 24С01, 1 – 1644CP2T |
IS_BUSY |
ВЫХОД |
Сигнал выполнения операции |
SDA_IN |
ВХОД |
Вход SDA |
SDA_EN |
ВЫХОД |
Сигнал переключения площадки SDA. Режим выхода – активный 0 |
SDA_OUT |
ВЫХОД |
Выход SDA |
SCL_IN |
ВХОД |
Вход SCL |
SCL_OUT |
ВЫХОД |
Сигнал переключения площадки SCL. Режим выхода – активный 0 |
SCL_OUT |
ВЫХОД |
Выход SLC |
DATAQ(15:0) |
ВЫХОД |
Шина выходных данных |
Контакты SDA и SCL (всего 6 штук) идут на контактные площадки, представляющие собой двунаправленный буфер с третьим состоянием.
Опираясь на таблицу 1, выполняем внешнее описание модуля, в результате чего получаем готовый к заполнению черный ящик, представленный на рисунке 1.
Рисунок 1. Черный ящик блока EEPROM_I2C_CTRL
Перед реализацией блока следует определиться с внутренней структурой. Она должна выполнять все поставленные задачи, а также иметь потенциал к модернизации отдельных функций, не задевая функциональности других. Для реализации подобной структуры было выбрано модульное строение.
На рисунке 2 представлена использованная внутренняя структура блока EEPROM_I2C_CTRL.
Рисунок 2. Внутренняя структура блока EEPROM_I2C_CTRL
Блок RESET служит внутренним буфером для блокирования данных во время выполнения операции записи и чтения, является защитой от непреднамеренных действий пользователя.
Блок управления выполняет функцию управления остальными модулями структуры, а также формирует сигнал о выполнении операций. Содержит в себе делитель системной частоты.
Модуль TX производит генерацию сигнала на шине I2C для выполнения операции записи. На рисунке 3 представлены реализуемые протоколы записи данных в двух режимах работы.
Рисунок 3. Протоколы записи данных, реализуемые в двух режимах работы
Расшифровка сокращений представлена в таблице 2.
Таблица 2.
Примененные сокращения
Сокращение |
Расшифровка |
ST |
Старт-условие |
SP |
Стоп-условие |
AS |
Подтверждение от ведомого |
AM |
Подтверждение от ведущего |
DW |
Цикл записи 8 бит данных |
DR |
Цикл чтения 8 бит данных |
WR |
Формирование условия для записи |
RD |
Формирование условия для чтения |
AW |
Передача 8 бит адреса |
PROG |
Удержание на время программирования EEPROM |
Модуль RX производит генерацию сигнала на шине I2C для выполнения операции чтения. На рисунке 4 представлены реализуемые протоколы чтения данных в двух режимах работы.
Рисунок 4. Протоколы чтения данных, реализуемые в двух режимах работы
Фильтр представляет собой сдвиговый регистр размером 3 бита и логическую функцию, которой соответствует таблица истинности, представленная в таблице 3.
Таблица 3.
Таблица истинности логической функции фильтра
X[2] |
X[1] |
X[0] |
Q |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
Выходной мультиплексор выполняет переключение контактов на выход схемы в зависимости от используемого модуля.
Модуль удержания входного сигнала – экстраполятор полученных данных с EEPROM.
Блок был написан на языке Verilog и испытан на работоспособность на платформе FPGA Altera с памятью EEPROM 24C01, использующей адресную посылку размерностью 8 бит, и памятью EEPROM 1644CP2T, использующей адресную посылку размерностью 16 бит.
Список литературы:
- Интерфейсная шина IIC (I2C) // Электроника для всех [Электронный ресурс] – Режим доступа: http://easyelectronics.ru/?s=1.%09Интерфейсная+шина+IIC+%28I2C%29+ (дата обращения: 30.11.17).
- Микросхемы интегральные 1644РС2Т Технические условия, ОАО «Интеграл», 2014 г. [Электронный ресурс] – Режим доступа: http://integral.by/sites/default/files/pdf/10_specifikaciya_1644rs2t.pdf (дата обращения: 30.11.17).
- 2-Wire Serial EEPROM AT24C01 Datasheet – Atmel Corporation [Электронный ресурс] – Режим доступа: http://www.atmel.com/images/doc0180.pdf (дата обращения: 30.11.17).
Оставить комментарий