Мехатронная система обеспечения заданной скорости электровоза на различных участках пути

§ Краевые эффекты конвейера. В фазах Fetch и Decode может одновременно осуществляться запрос шины, если на завершающей фазе текущей команды осуществляется чтение. Предупреждение конфликтов осуществляет контроллер внешней шины External Bus Controller,

§ управляя приоритетами записи, выборки и чтения. Следует упомянуть также о краевых эффектах конвейера, которые могут возникнуть на фазе Write

Back при использовании адреса, уже измененного на фазе Fetch. Хотя специальное аппаратное устройство искусственно передвигает вперед операнды чтения и записи, необходимо постоянно об этом помнить. Команды умножения и деления занимают 5 и 10 машинных циклов соответственно и имеют сложный операционный код. Поскольку эти команды длятся больше одного цикла, в конвейер на стадии Decode вставляются холостые команды.

3.3 Конфигурирование внешней шины

§ Одним из наиболее полезных свойств C166 является поддержка нескольких режимов конфигурации, когда, например, выборка кода и данных из внешней памяти осуществляется по 16-разрядной демультиплексной шине с нулевым ожиданием, а доступ к медленной периферии (часы RTC) из соображений экономии может происходить по 8-разрядной шине с 3 состояниями ожидания. В первом случае шина управляется регистром конфигурации BUSCON0, а во втором случае - регистрами конфигурации BUSCON1 и ADDRESEL1, которые определяют режим шины и адресный диапазон соответственно.

§ В ряде микроконтроллеров (C165 и C167) присутствует до четырех независимых дополнительных регистров конфигурации BUSCON1-BUSCON4, каждому из которых соответствует свой внешний вывод CS для соединения с входом разрешения выборки кристалла. Размер и начальный адрес диапазона для каждого сигнала CS1-CS4 задается в регистрах ADDRSEL1-ADDRSEL4. При задании областей действия сигналов CS необходимо помнить, что начальный адрес должен быть кратен размеру блока. Например, для блока размером 64 Кбайт, начальный адрес должен быть равен 0x00000 или 0x10000 или 0x20000 и т.д.

§ Характеристики системной шины для областей памяти, не перекрываемых данными четырьмя адресными диапазонами, задаются в регистре BUSCON0 и устанавливаются аппаратно при считывании линий порта 0 во время сброса, т.е. сигнал CS0 используется для адресации всех областей не определенных сигналами CS1-CS4.Кроме того, для экономии внешней логики присутствуют программируемые сигналы управления шиной. Это означает, что при более чем 20-кратном выигрыше в производительности проект с С166 получается проще, чем для 8031. С166 содержит также программируемые функции арбитража шины HOLD/HOLDA/BREQ для операций межпроцессорного обмена.

§ Непосредственное управление внешней шиной в соответствии с содержимым регистров конфигурации осуществляет контроллер внешней шины. В каждом диапазоне временные параметры циклов чтения-записи и режим работы системной шины задаются специальными битами в регистрах конфигурации. Ширина адресной шины может составлять в зависимости от кристалла 16 (для несегментированного режима), 18 (80C166), 22 (C164) и 24 (C165 и С167) разряда. Ширина шины данных может быть 8 или 16 разрядов, и работа может вестись в мультиплексном и демультиплексном (MUX и NMUX) режимах (у C161 и C164 предусмотрена только мультиплексная внешняя шина). Демультиплексный шинный интерфейс оптимален при высоких требованиях к времени обращения к внешним ОЗУ и ПЗУ. Как уже отмечалось, режимы работы шины могут динамически меняться в процессе выполнения программы. Сравнение скорости работы для различных конфигураций шины при частоте ЦПУ 20 МГц приведено в таблице

3.4 Система прерываний

§ Разветвленная схема прерываний C166 с 64 уровнями (16 уровней и на каждом уровне группа из 4 прерываний) обеспечивает гибкое и быстрое

§ задание приоритетов и обслуживание запросов прерываний (рисунок 3.4). В контроллере прерываний предусмотрены аппаратные ловушки (Hardware-Traps) и программные ловушки (Software-Traps), позволяющие обрабатывать ошибки, возникающие при неверном исполнении команд, нарушении границ стека, а также отслеживать немаскируемое прерывание NMI, программный и аппаратный сброс. Приоритеты прерываний от аппаратных и программных ловушек самые высокие.

§ Контроллер прерываний обеспечивает малое время отклика на запрос прерывания: минимальное время составляет 250 нс @20 МГц, а максимальное - 600 нс. Чтобы уменьшить время отклика при выполнении сложных команд умножения и деления, занимающих 5 и 10 циклов соответственно, также предусмотрено прерывание. Обработка прерываний осуществляется в течение малых временных интервалов. Это очень важно для высокоуровневых приложений, таких как управление приводами, когда решаются задачи цифровой обработки сигналов и весьма нежелательны флуктуации входных и выходных переменных. Таким образом, достигается высокая производительность в реальном масштабе времени.

§ Механизм обработки прерываний работает следующим образом. Для каждого прерывания имеется собственный регистр управления Interrupt Control Register (xxIC). При установке одного или нескольких флагов запроса прерывания Interrupt Request (IR) в регистрах управления xxIC производится сравнение их приоритетов с текущим приоритетом выполняемой программы, который содержится в регистре состояния процессора. После проверки номера в группе в регистре прерывания с наибольшим номером уровня и группы очищается флаг IR, и контроллер приступает к обработке этого прерывания. При этом в стеке автоматически сохраняется содержимое регистра состояния процессора PSW, указателя команд IP и в сегментированном режиме указателя сегмента CSP и загружаются новые значения этих регистров согласно

§ процедуре обработки прерывания.

система прерываний

Рисунок 3.4 – Схема прерываний

Регистрация внешних прерываний может осуществляться в альтернативном режиме по внешним входам, например, по входам Capture. Кроме того, имеется немаскируемое прерывание NMI. Часть внешних прерываний регистрируются каждые 0,5 цикла, т.е. каждые 50 нс @ 20 МГц.

§ Изменение уровня приоритета прерывания во время исполнения программы является достаточно типичной задачей для ряда приложений. Например, уровень приоритета может зависеть от значения сигнала на внешнем входе. В этом случае после проверки состояния входа процедура обслуживания прерывания переключает уровень прерывания на более низкий, изменяя содержимое регистра ILVL. После понижения уровня выполняемого прерывания могут поступить запросы на прерывание с более высоким приоритетом. Такая ситуация может привести к определенным проблемам. Пусть, например, выполняется прерывание A на уровне 10 и поступает запрос от прерывания B с уровнем 12, которое и поступает на выполнение. Если теперь уровень прерывания B будет снижен до значения меньшего, чем 10, прерывание A не сможет стать активным пока не закончится выполнение B. Возможен еще более плохой вариант, если прерывание B снизит свой уровень до значения 5, и теперь даже прерывание C с уровнем 7 сможет его прервать. Такие ситуации

Страница:  1  2  3  4  5  6  7  8  9  10  11  12  13 


Другие рефераты на тему «Транспорт»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы