Так как программирование микросхемы может осуществляться только под внутрикристальным управлением, то в микросхеме в блоке компаратора адреса “зашит” адрес МС. Другими словами, когда по I2C шине начиная с процедуры “Старт” передается цифровая последовательность, в которой указывается адрес микросхемы, к которой обращается микроконтроллер или другое головное устройство. Этот адрес называется служебным. Из этого следует, что в блоке компаратора адреса сравниваются служебный адрес МС и адрес, находящийся в цифровой последовательности. Если результат сравнения оказывается положительным, то осуществляется передача данных (считывание, запись, стирание) из МС или в МС.
Сдвиговый регистр предназначен для преобразования последовательной цифровой последовательности в параллельную. Это необходимо преже всего потому, что внутри самой микросхемы существует внутренняя шина. Она представляет собой совокупность параллельных проводников, которые подходят к каждому из блоков. Таким образом можно сказать, что в каждом блоке находятся преобразователи такого рода.
Как отмечалось выше программирование ЭСППЗУ осуществляется только под внутрикристальным программированием. Это подоазумевает наличие внутреннего задающего генератора. Генератор вырабатывает высокостабильную цифровую последовательность импульсов. Период повторения импульсов состовляет порядка 1..2 мкс. Для внутрикристального программирования период повторения импульсов должен составлять 7..8 мкс. Для целей увеличения периода повторения используется делитель частоты, который уменьшает значение частоты. Использование генератора и делителя частоты обусловлено оптимальным сочетанием площади, занимаемое генераторам и делителем. Это технологическре решение упрощает размещение блоков в самой микросхеме.
Генератор высокого напряжения предназначен для выработки высокого напряжения (около 30 В), которое необходимо для подачи в накопитель для реализации режима стирание/запись.
Декодер строк и столбцов предназначен для выработки номера необходимого строки и столбца, к которым происходит обращение.
Накопитель предназначен для долговременного неразрушаемого хранения информации. Накопитель представляет собой совокупность двух блоков. Каждый их этих блоков делится на 4 и т.д. Такое деление обусловлено тем, что происходит уменьшение времени обращения к ячейке памяти, что в результате приводит к увеличению быстродействия.
Как известно, объем накопителя составляет 16К, где К=1024 бит, что является достаточно большим объемом, то соответственно и занимает большую площадь в микросхеме. Из этого следует, что с точки зрения технологии площадь элементарного запоминающего элемента должна быть как можно меньшей. При этом надо учитывать, что к элементарной ячейке необходимо подвести адресную шину, что в свою очередь увеличивает площадь накопителя. В таком случае идут на объединение нескольких элементарных ячеек в одну группу ( например. четыре ячейки – в одну, восемь – в одну). Так как в МС организована побайтовая передача информации, то объединяют восемь ячеек в одну. И к этой группе подводят одну адресную шину. Такое решение уменьшает площадь накопителя, но все же она остается самой большой.
Страничный регистр предназначен для предварительной информации, которая может быть записана в накопитель либо может служить для считывания данных из него. Как видно из представленной структурной схемы страничный регистр находится в непосредственной близости от накопителя .Это опять таки увеличивает быстродействие микросхемы. Также этот блок предназначен для постраничного доступа к накопителю, что уменьшает время обращения к нему. Постраничный режим используется как на этапе тестирования, так и во время эксплуатации.
Блок задания временной последовательности предназначен для выработки цифровой последовательности, которая поступает в различные блоки, на основании внутрикристальной программы.
3.2 Описание взаимодействия основных блоков структурной схемы
Электрически стираемое программируемое постоянное запоминающее устройство работает во взаимодействии с I2C шиной. Рассмотрим режимы и протоколы, при которых ЭСППЗУ функционирует.
ЭСППЗУ, как отмечалось выше, предназначено для хранения, записи и считывания информации. Для хранения информации в ЗУ существует специальный вид транзисторов, основанных на так называемых МНОП-стрктурах. Для записи и считывания информации существуют режимы или протоколы, которые задаются процессором управления или микроконтролером. Эти протоколы задают в каком из режимов будет функционировать ЭСППЗУ. Протоколы представляют собой цифровую последовательность, которая передается по шине управления I2C. Приведем протокол в режиме "Чтения" с вводом адреса слова (таблица 3.2), сокращенный протокол в режиме "Чтения" (таблица3.3), протокол в режиме "Стирание/Запись" двух байтов (таблица 3.4) и протокол в режиме "Стирание/Запись" страницы (таблица 3.5). Также приведем таблицу 3.1, в которой раскрываются обозначения слов приведенных в протоколах.
ST | CR/WR | As | WA | As | ST | CS/RD | As | DA | Am | DA | Am | SP |
Таблица3.3
ST | CR/RD | As | DA | Am | DA | Am | SP |
Таблица3.4
ST | CR/WR | As | WA | As | DE | As | DE | As | SP |
Таблица3.5
ST | CR/WR | As | WA | As | DE | As | DE | As | DE | As | SP |
Из протоколов очевидно, что каждая передача данных начинается с условия "Старт" и завершается условием "Стоп". Информация передается в байтоорганизованной форме. Число байтов информации, передаваемых между условиями "Старт" и "Стоп" ограничено в режиме "Стирание/Запись" и неограниченно в режиме "Чтение". Каждое слово из восьми бит (каждый байт) сопровождается проверочным девятым битом, битом подтверждения. Семь из восьми бит информации является адресом ЭСППЗУ, восьмой бит определяет направление передачи информации.
Особенностью протоколов в режиме "Чтения" является изменение направления передачи информации по линии SDA: до окончания управляющего слова CS/RD микросхема принимает информацию, а после него происходит передача (считывание) данных. Один раз задав протокол можно последовательно считать неограниченное число байтов данных. После каждого байта внутрикристальный счетчик адреса автоматически приращивается на "единицу" пополучению подтверждения от "главного приемника" (Am=0). Сразу после отрицательного фронта тактового импульса подтверждения ( в случае As или Am=0) выход МС является низкоомным и на линии SDA устанавливается первый бит считываемого байта информации. В случае передачи информации микросхемой последнего байта ведущее устройство должно выдать не сигнал, подтверждающий прием, а передать ведомому устройству информацию об окончании приема (Am=0). В этом случае после отрицательного фронта тактового импульса подтверждения выход МС переводится в состояние с высоким выходным сопротивлением (закрывается), на линии SDA устанавливается высокий уровень, разрешающий ведущему устройству выработать условие "Стоп".
Как видно из функциональной схемы ЭСППЗУ перед тем , как цифровая последовательность поступит в блок логики управления I2C шиной, она проходит коррекцию амплитуды и длительности составляющих ее импульсов. После того, как ведущее устройство сформировала условие "Стоп" начинается внутренний цикл программирования, посредством которого информация записывается, считывается либо стирается. Рассмотрим, что же происходит.
Блок логики управления I2C шиной отслеживает поступаемый адрес в цифровой последовательности, а компаратор адреса сравнивает приходящий адрес с адресом "зашитым" в ЭСППЗУ. Далее, так как внутри ЭСППЗУ существует внутренняя параллельная шина, то необходимо последовательную цифровую последовательность перевести в параллельную. Для этих целей служит сдвиговый регистр. Указатель адреса показывает через декодер строк к какой строке накопителя и напрямую к строке страничного регистра идет обращения при стирании, записи или считывании. Также указатель адреса показывает декодеру столбцов к какой ячейке идет обращение. Блок задания временной последовательности координирует работу при обращении к накопителю, то есть при стирании или записи новой информации он дает "разрешение" на включение генератора высокого напряжения. При считывании информации из накопителя генератор высокого напряжения должен быть выключен.
Необходимо различать два основных режима записи: побайтовая запись и страничная запись. В первом случае, после принятия адреса слова микросхема выдает подтверждение, принимает последующие восемь бит данных и снова выдает подтверждение. При этом адрес слова автоматически приращивается. После этого ведущее устройство может тотчас же прервать передачу посредством формирования условия "Стоп". После формирования условия "Стоп" стартует активный процесс перепрограммирования и последовательная шина свободна для другой передачи. Если ЭСППЗУ адресуется через I2C шину во время программирования, то она не выдает бит подтверждения.