Тактовый, меандровый сигнал с частотой 20 МГц подаётся на счётчик от внешнего, относительно ПЛИС генератора. В режиме накопления сигнал тактирования дополнительно проходит через делитель частоты на 5, выполненный на базе четырёхразрядного счётчика из набора макрофункций системыMAX+PLUS II.
Принцип работы блока тактирования отражён на функциональной схеме (рис.5.6).
Схемный файл блока тактирования Clocking.gdf находится в ПРИЛОЖЕНИИ 2.
Тестирование блока проведено в сигнальном редакторе системы MAX+PLUS II. В качестве входных тестовых векторов введены сигналы: сlk (сигнал тактирования частотой 20 МГц), сanal (канальные импульсы системы регистрации), read (сигнал тактирования режима быстрой трансляции) и hold (сигнал перевода в режим быстрой трансляции).
В режиме накопления блок тактирования генерирует сигналы управления eo (enable output) и write синхронно импульсам сanal, в режиме быстрой трансляции дополнительно генерируется сигнал записи буферного ОЗУ wrBRAM синхронно импульсам read. Результаты тестирования обоих режимов приведены на рисунке 5.7. Временные интервалы на диаграмме указаны в микросекундах.
Адресный блок вырабатывает значение адреса ячеек накопительного ОЗУ по отрицательному фронту импульса canal или read в зависимости от режима работы. Сигналы разрешения выходов формируются не ранее 120 нс. Выдача сигнала защёлкивания (чтения) данных в обоих случаях происходит не ранее чем через 200 нс после импульса ео. Послестояние данных при операциях записи ОЗУ составляет не менее 19 нс. Такие временные параметры призваны обеспечить устойчивую работу модуля накопления.
В режиме быстрой трансляции необходимо проводить запись нулевых байтов в ячейки накопительного ОЗУ, данные которых, уже перенесены в буферное ОЗУ.
За время нерабочего режима системы регистрации может быть произведена трансляция данных только одной из микросхем накопительного ОЗУ (в соответствии со значением сигнала Selram). При этом незанятое накопительное ОЗУ должно находится в режиме хранения данных.
Таким образом, необходимо обеспечить раздельную выдачу команд управления (EO, WR) для каждого накопительного ОЗУ.
Функции разделения команд, а также дополнительные функции выдачи сигналов обнуления на формирователи шин данных накопительных ОЗУ реализованы в блоке формирования Form. Соответствующий схемный файл Form.gdf графического редактора MAX+PLUS II находится в приложении 2.
Помимо рассмотренных устройств, в блоке Kern присутствуют дополнительные элементы, не включённые ни в один внутриструктурный файл этого блока. К ним относятся схема формирователя шины данных для буферного ОЗУ, управляемая сигналами hold и Selram, и триггер разрешения счёта импульсов от внешних трактов регистрации.
Триггер разрешения счёта должен использоваться для работы модуля в режиме снятия амплитудных спектров, для запуска счёта на очередном этапе сканирования.
Файл Kern.gdf графического редактора системы MAX+PLUS II находится в приложении 2.
5.1.2 Связь с внешними устройствами
Наличие буферной памяти, как средства взаимодействия нескольких источников и приёмников данных, требует построения соответствующей системы управления разделяемым ресурсом. Основным устройством управления на схеме модуля накопления является микроконтроллер. Выполняя программу накопления данных, он должен постоянно отслеживать и задавать режимы использования буферного ОЗУ. Всего предполагается 3 режима использования БОЗУ:
- запись-чтение данных со стороны микроконтроллера;
- запись-чтение данных со стороны магистрали ISA;
- запись данных из системы накопления первого байта.
Кроме контроля режимов работы БОЗУ микроконтроллер должен осуществлять конфигурирование и управление схемой, используя:
- триггер разрешения счёта входных импульсов;
- триггер флага трансляции данных в БОЗУ ( используемый для запуска сигнала hold в ближайшем нерабочем режиме системы регистрации);
- триггер выбора банка данных в пространстве БОЗУ;
- триггеры установки порогового адреса.
Алгоритм работы модуля накопления позволяет организовать попарную адресацию триггеров.
Для функций управления предполагается использовать один 8-битный порт микроконтроллера. В этом случае удобно построить двухразрядную шину данных и трёхразрядную шину адреса. Один бит порта необходимо использовать для стробирования данных.
Элементы входящие в систему управления реализованы в ПЛИС.
Обработка адресных линий микроконтроллера производится адресным селектором, выполненным в виде файла Asmc.gdf. По приходу положительного фронта тактирующего сигнала «с» микроконтроллера на выходах селектора формируются стробы защёлкивания данных с линий Dmc0 и Dmc1 для соответствующих пар триггеров. Распределение адресов устройств представлено в таблице 2.
Таблица 2 Распределение адресов регистров управления
Адрес Бит данных |
000 |
001 |
010 |
011 |
100 |
101 |
110 |
111 |
Dmc0 |
Установка значений порогового адреса 00 – 511 01–1023 10–2047 11–4095 |
Установка флага hold (выдача в БОЗУ данных 1-го байта) |
Установка режимов использования БОЗУ 00 – МК 01 – ISA 10 – система накопления 1-го байта |
триггер разрешения счёта |
Флаги в поле адресов ввода-вывода |
Резерв |
Резерв |
Резерв |
Dmc1 |
Установка сигнала Selram |
триггер иницициализации запроса прерывания |
Адресный селектор выполнен в виде дешифратора. Схемный файл Asmc.gdf находится в ПРИЛОЖЕНИИ 2. Блок выдачи сигналов управления буферного ОЗУ (управляющий блок) выполнен в файле Direct.gdf. Блок выполняет мультиплексирование входящих сигнальных линий чтения и записи со стороны внешних устройств, исходя из состояния триггеров управления режимом использования БОЗУ (см. таблицу 2). Непосредственно триггеры установки режимов и мультиплексоры сигналов расположены во внутренней структуре в виде блока Muxrg.gdf. Помимо сигналов управления БОЗУ, управляющий блок генерирует сигналы разрешения выходов внешних двунаправленных шинных формирователей, обеспечивающих связь БОЗУ с микроконтроллером, а также с 8-битной шиной данных магистрали ISA. Те же сигналы используются для подключения внешних адресных линий заведённых через ПЛИС, к шине адреса БОЗУ (рис.5.9).
Схемные файлы Direct.gdf и Muxrg.gdf находятся в ПРИЛОЖЕНИИ.
Доступ к буферному ОЗУ со стороны магистрали ISA осуществляется по принципу разделяемой памяти. То есть ячейки буферного ОЗУ находятся в некотором поле адресов памяти компьютера. Для осуществления доступа требуется обработка всех 20 адресных линий шины ISA. 12 младших линий непосредственно адресуют ячейки БОЗУ, другие 8 используются для установки пространства памяти.
Интерфейсный блок Interfase выполняет обработку адресных линий и вырабатывает сигнал AdrE разрешения доступа к БОЗУ, поступающий на вход блока управления Direct.
Для осуществления быстрой связи между микроконтроллером и компьютером в интерфейсном блоке предусмотрено две пары триггеров. Триггера могут выполнять роль флагов, например, для выставления запроса на передачу накопленных данных в компьютер.
Для селектирования адресов пространства памяти, и триггеров расположенных в поле устройств ввода-вывода интерфейсный блок содержит схему дешифрации линий адреса Selectisa. Здесь можно задать селектируемые адреса путём добавления (удаления) примитивов логического отрицания NOT на входах соответствующих линий (см. файл Selectisa.gdf в ПРИЛОЖЕНИИ 2).
Микроконтроллер может инициализировать прерывание в компьютере установив специальный триггер в интерфейсном блоке. Обращение к буферному ОЗУ со стороны магистрали ISA расценивается, как реакция на прерывание и триггер сбрасывается.
Схемный файл Interfase.gdf находится в ПРИЛОЖЕНИИ 2.
Тактирование блока Kern осуществляется сигналами read и clk. Меандровый сигнал clk частотой 20 МГц поступает от внешнего кварцевого генератора на вход глобального тактового сигнала GCLK1 ПЛИС. Для получения меандрового сигнала read с частотой 400 кГц, на базе шестиразрядного счётчика и вспомогательной комбинационной схемы, построен делитель частоты Divisor. Его схема в виде файла Divisor.gdf представлена в ПРИЛОЖЕНИИ 2.
Структура, составленная из блоков Kern, Asmc, Direct, Interfase, Divisor и других элементов представляет собой единый проектный файл Sistema.gdf. Этот файл обрабатывается компилятором MAX+PLUS II, который создаёт загрузочный код для программирования ПЛИС. Проект Sistema может быть размещён на одном кристалле ПЛИС EPM7256SRC208-7 с логической ёмкостью 5000 эквивалентных вентилей. Из 256 макроячеек микросхемы использовано 251, что составляет 98% ёмкости.
5.2 Разработка принципиальной схемы модуля накопления
В модуле накопления используется 8-битный микроконтроллер AT89c51 содержащий 4 Кб FLASH-памяти программ, 128 байт ОЗУ и содержащий 32 программируемые линии ввода-вывода. Линии ввода-вывода объединены в четыре 8-разрядных двунаправленных порта, два из которых используются в качестве шины адреса/данных для доступа к внешней памяти программ и данных. Один из портов имеет дополнительные функции (последовательный порт, входы внешних прерываний, входы счётчиков, выходы стробирующих сигналов записи-чтения во внешнюю память данных).
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16