Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Дмитриев Универсалный лабораторный стенд. Аппаратные средства проектирования встраиваемых систем 2009

.pdf
Скачиваний:
71
Добавлен:
17.08.2013
Размер:
10.11 Mб
Скачать

Рассмотрим принцип действия таймера Т2. 16-разрядный счетчик через предделитель подключается к одному из двух возможных источников счетных сигналов – внутреннему Fosc/12 или внешнему от входа Т2 (перепад 1/0) с максимальной частотой, соответствующей одному переключению за один процессорный цикл. Выбор источника сигнала и задание коэффициента деления предделителя осуществляется программно при помощи регистра TM2CON. Регистры TML2 и TMH2 можно читать «на лету». Это необходимо делать таким образом, чтобы исключить неправильную интерпретацию считанного значения из-за неодновременного чтения регистров. Запись в регистры TML2 и TMH2 невозможна. Они могут только сбрасываться в 0 сигналом общего сброса или перепадом

1/0 на входе RT2(P1.5) при установленном бите T2ER (TM2CON.5).

Установленный коэффициент деления предделителя сбрасывается при сбросе таймера Т2 или при переключении источника счетных сигналов.

Возможны прерывания при 8- или 16-разрядном переполнении счетчика таймера Т2. Особенность их реализации состоит в том, что им соответствует только один адрес вектора прерывания (8073h). Источник прерывания должен определять сам обработчик прерывания, анализируя флаги T2BO и T2OV. При этом следует учитывать, что установка флага T2OV автоматически вызывает и установку флага T2BO. Флаги переполнения должны сбрасываться программно. При необходимости можно разрешить прерывание сразу по двум возможным вариантам переполнения счетчика таймера Т2. В этом случае в обработчике прерывания надо сбрасывать флаг именно того переполнения, которое прерывание вызвало.

Рассмотрим возможности таймера Т2 по формированию программно управляемых временных интервалов на линиях порта Р4. При работе счетчика таймера Т2 его содержимое сравнивается со значениями регистров компараторов СМ0, СМ1 и СМ2. Когда фиксируется совпадение значений, в регистре TM2IR устанавливаются соответствующие флаги прерываний. Если зафиксировано совпадение с СМ0, то могут быть установлены в 1 линии 0-5 порта Р4, если установлены соответствующие биты разрешения в регистре STE. Если зафиксировано совпадение с СМ1, то могут быть сброшены в 0 линии 0-5 порта Р4, если установлены соответствующие биты разрешения в регистре RTE. Если RTE = 0, порт Р4 не реаги-

51

рует на результат сравнения счетчика таймера Т2 и компараторов СМ1 и СМ2. Если зафиксировано совпадение с СМ2, то могут быть переключены в противоположное состояние линии 6–7 порта Р4, если установлены соответствующие биты разрешения в регистре RTE. Причем основные триггеры-защелки линий Р4.6 и Р4.7 сохраняют свое значение, а переключаются дополнительные триггерызащелки. Таким образом, если при работе с этими линиями порта Р4 в данном режиме происходит их установка, то в следующий раз (после очередного совпадения СМ2 и счетчика таймера Т2), последует их сброс. Это произойдет, даже если до этого был проведен программный сброс этих линий.

После прохождения сигнала «СБРОС» первое переключение устанавливает триггеры-защелки порта Р4 в единичное состояние. Содержимому триггеров-защелок линий 6 и 7 порта Р4 соответствуют только читаемые биты TG46 и TG47 в регистре STE. Их единичное значение свидетельствует о том, что следующее состояние триггера-защелки будет 1, и 0 в противном случае.

Регистры компараторов СМ0, СМ1 и СМ2 сбрасываются в 0 сигналом «СБРОС».

Каждая линия порта Р4 может устанавливаться/сбрасываться программно в любой момент времени. Однако аппаратная установка этих линий по результатам работы компараторов таймера Т2 имеет преимущество. Если по результатам работы компаратора требуется одновременная установка в 1 и сброс в 0, то предпочтение отдается последнему.

Покажем возможности таймера Т2 при измерении временных интервалов. В его состав входят четыре 16-разрядных регистразащелки СТ0, СТ1, СТ2 и СТ3, в которые может загружаться значение счетчика таймера Т2 с приходом входных сигналов CT0I, CT1I, CT2I и CT3I (линии порта Р1.0 – Р1.3). Одновременно с загрузкой данных регистров устанавливаются флаги прерываний в регистре TM2IR. Загрузка может быть разрешена по изменениям на входах 0/1 или 1/0, а также по обоим одновременно. Очевидно, что регистры-защелки позволяют измерять временные интервалы между событиями, связанными с изменениями входных сигналов CT0I, CT1I, CT2I и CT3I. Действительно, с приходом очередного события вызывается разрешенное прерывание, обработчик которого определяет промежуток времени между текущим и предыдущим

52

событиями, анализируя состояния соответствующих регистровзащелок.

Отметим следующие особенности использования таймера Т2 в УЛС. Ввиду того, что линии порта Р1 используются только для работы с JTAG портом ПЛИС, в УЛС таймер Т2 МК может использоваться только в режиме тактирования от внутреннего генератора, а внешнее тактирование и сброс невозможны. Работа с регистрамизащелками также недоступна.

2.6. СТОРОЖЕВОЙ ТАЙМЕР Т3

На рис. 2.6 представлена структурная схема сторожевого таймера Т3. В его состав входят 11-разрядный делитель частоты и 8-разрядный счетчик. Ему соответствует регистр специальных функций Т3 (FFh). Через этот регистр осуществляется загрузка и чтение таймера Т3 из МК. Включается и выключается Т3 только аппаратно входным сигналом EW. В УЛС этот вход Т3 соединен с размещенным тумблером на лицевой панели тумблером. Для загрузки Т3 необходимо выполнить два действия. Во-первых, необходимо разрешить загрузку Т3, установив в «1» бит PCON.4 (WLE). Во-вторых, осуществить последующую запись в регистр специальных функций Т3 необходимого значения. При этом автоматически сбрасывается бит WLE, запрещая случайную

Рис. 2.6. Структурная схема сторожевого таймераТ3

53

перезагрузку Т3 при «зависании» пользовательской программы, делитель частоты при этом также переводится в исходное нулевое состояние.

Сторожевой таймер Т3 предназначен для автоматического сброса МК в исходное состояние (на адрес 0000h) при сбое в работе программного обеспечения, которое выражается в нарушении времени возврата к выполнению фрагмента кода, перезагружающего этот таймер. Таким образом, в корректно работающей программе таймер Т3 постоянно перезагружается в течение интервала времени более короткого по сравнению со «сторожевым» интервалом. Таймер Т3 вырабатывает сигнал «СБРОС» при переполнении (значение в его 8-разрядном счетчике FFh), поэтому при его использовании важно правильно рассчитать значение, которое записывается в счетчик при перезагрузке и определяет «сторожевой» интервал. Расчет проводится путем оценки времени выполнения отдельных модулей исполняемой программы. Такая оценка без труда может быть выполнена при помощи стандартных отладочных средств (dScope, например). Приведем значения минимального и максимального «сторожевых» интервалов времени для таймера Т3 в УЛС. Минимальное время соответствует коду FFh, перезагружаемому в регистр Т3, и составляет: Tmin = 2048×12×1/Fosc. В УЛС Fosc = 11,059 МГц, поэтому Tmin = 2,2 мс. Максимальное время соответствует коду 00h, перезагружаемому в регистр Т3, и составля-

ет: Tmax = 256×2048×12×1/Fosc = 570 мс.

2.7. АНАЛОГО-ЦИФРОВОЙ ПРЕОБРАЗОВАТЕЛЬ

В состав МК PCF80C552 входит 8-канальный 10-разрядный аналого-цифровой преобразователь (АЦП). Он построен по классической схеме поразрядного уравновешивания на основе регистра последовательных приближений и цифро-аналогового преобразователя (ЦАП). Время одного преобразования составляет 50 процессорных циклов. Для работы с АЦП имеются два регистра специальных функций. В регистре ADCH формируются 8 старших разрядов результата преобразования (разряды с 9 по 2). Рассмотрим назначение разрядов регистра управления АЦП ADCON.

54

D7

D6

D5

D4

D3

D2

D1

D0

ADC.1 ADC.0 ADEX ADCI ADCS AADR2 AADR1 AADR0

Назначение битов:

ADC.1 – разряд 1 результата преобразования;

ADC.0 – разряд 0 результата преобразования;

ADEX – бит разрешения аппаратного запуска преобразования перепадом 0/1 сигнала STADC. При ADEX = 0 возможен только программный запуск АЦП установкой бита ADCS. При ADEX = 1 возможен как программный, так и аппаратный запуск;

ADCI – флаг прерывания от АЦП. Этот флаг устанавливается после завершения преобразования, когда его результат может быть считан. Прерывание вызывается, если оно разрешено. Флаг может быть сброшен программно при обработке прерывания. Программно установлен быть не может. Пока этот флаг установлен, новое преобразование не может быть запущено;

ADCS – бит старта и состояния АЦП. Установка этого бита запускает АЦП. Устанавливается программно или аппаратно сигналом STADC. Во время выполнения преобразования ADCS = 1, что свидетельствует о том, что АЦП «занят». После окончания преобразования ADCS сбрасывается в «0» одновременно с установкой флага прерывания ADCI. ADCS не может быть сброшен программно. Новое преобразование не может быть запущено, если ADCI или ADCS установлены в «1».

ADCI

ADCS

Состояние АЦП

0

0

АЦП свободен, преобразование может быть запущено

0

1

АЦП занят, запуск преобразования не возможен

1

0

Преобразование завершено, запуск преобразования не

 

 

возможен

1

1

Не используется

55

AADR2 – разряд 2 адреса аналогового канала, подключаемого к АЦП;

AADR1 – разряд 1 адреса аналогового канала, подключаемого к АЦП;

AADR0 – разряд 0 адреса аналогового канала, подключаемого к АЦП.

AADR2

AADR1

AADR0

Аналоговый вход

0

0

0

Р5.0

0

0

1

Р5.1

0

1

0

Р5.2

0

1

1

Р5.3

1

0

0

Р5.4

1

0

1

Р5.5

1

1

0

Р5.6

1

1

1

Р5.7

Биты AADR2, AADR1 и AADR0 могут изменяться только при

ADCI = 0 и ADCS = 0.

При использовании аппаратного запуска по перепаду 0/1 внешнего сигнала STADC необходимо обеспечить формирование длительности следующих друг за другом его состояний «0» и «1» не менее длительности одного процессорного цикла. В УЛС все восемь линий порта Р5 и сигнал STADC выведены на разъем расширения. Максимальное значение измеряемого напряжения составляет +2.5 В. Очевидно, что использование АЦП возможно только при подключении к стенду дополнительных устройств. В этом случае для получения корректных результатов необходимо ознакомиться с соответствующей документацией на это вспомогательное оборудование УЛС.

56

2.8. ШИРОТНО-ИМПУЛЬСНЫЙ МОДУЛЯТОР

В состав МК входит двухканальный широтно-импульсный модулятор (ШИМ), выходами которого являются линии PWM0 и PWM1. Эти сигналы выводятся на разъем расширения. Как правило, ШИМ используется для управления двигателями постоянного тока. На рис. 2.7 приведена структурная схема ШИМ.

Рис. 2.7. Структурная схема ШИМ

Два канала ШИМ формируют импульсы с программно управляемыми длительностью и периодом следования. Период следования импульсов определяется делителем частоты (регистр PWMP), который совместно с 8-разрядным счетчиком по модулю 255 является общим сразу для двух каналов. Делитель частоты тактируется сигналом с частотой Fosc/2. Делитель частоты программно управляется регистром PWMP, который определяет коэффициент деления, равный 1+PWMP. Частота следования импульсов на выходе ШИМ:

Fpwm = Fosc/[2×(1+PWMP)×255];

где PWMP – содержимое одноименного регистра.

Содержимое счетчика сравнивается со значениями регистров PWM0 и PWM1. Пока содержимое этих регистров больше содер-

57

жимого счетчика, выходы ШИМ (выходные линии PWM0 и PWM1) находятся в нулевом состоянии. При значении регистра, меньшем или равном значению счетчика, на выходе устанавливается единичное значение. Таким образом, изменяя содержимое регистров PWM0 и PWM1, можно управлять скважностью формируемых ШИМ импульсных последовательностей. Отношение длительности нулевого уровня к длительности единичного уровня сигнала на выходе ШИМ определяется соотношением:

PWMx/(255-PWMx),

где PWMx – содержимое одноименного регистра.

Загрузка кодов 00h и FFh в регистры PWM0 и PWM1 устанавливает на выходах этих каналов соответственно постоянные единичное и нулевое значения.

58

3.ТИПОВЫЕ ЗАДАЧИ ПРОЕКТИРОВАНИЯ КОМПОНЕНТОВ ВСТРАИВАЕМЫХ СИСТЕМ НА ОСНОВЕ УЛС

3.1.ОБЩИЕ ПРИНЦИПЫ ОРГАНИЗАЦИИ ПРОГРАММНОГО ОБМЕНА МК С УСТРОЙСТВОМ НА ПЛИС.

ЦИКЛЫ ВНЕШНЕЙ ШИНЫ МК.

Программный обмен с внешними устройствами выполняется МК при помощи команд: MOVX @DPTR,A – запись по адресу, определяемому значением регистра указателя DPTR, MOVX A,@DPTR – чтения. В этом случае МК автоматически выполняет цикл внешней шины для обращения к пространству внешней памяти данных.

Для организации программного обмена МК с ПЛИС используются адреса 7FFA и 7FFB. Каждому из этих адресов в устройстве на ПЛИС должны быть сопоставлены регистры (при записи) или произвольные сигналы устройства (при чтении). Для корректной реализации программного обмена с ПЛИС необходимо руководствоваться временными соотношениями сигналов внешней шины. Цикл шины для программного обмена с ПЛИС реализуется при помощи следующих сигналов: DMK – шина данных, 7FFA и 7FFB – адреса и MKRD и MKWR – стробы чтения и записи. Указанные сигналы подаются из МК в ПЛИС.

Рассмотрим способы подключения регистров устройства на ПЛИС при выполнении команды записи. На рис. 3.1 приведена временная диаграмма цикла внешней шины МК при выполнении следующей последовательности команд:

MOVDPTR,#7FFAh

MOVA,#05h

MOVX@DPTR,A

Из временной диаграммы видно, что запись в регистр устройства на ПЛИС может осуществляться как по переднему, так и по заднему фронту сигнала строба MKWR. Два возможных способа подключения регистров для записи в них данных из МК, показаны на рис. 3.2.

59

Рис. 3.1. Цикл внешней шины при записи в ПЛИС

Рис. 3.2. Два варианта подключения регистров

При выполнении чтения из внешнего устройства результат фиксируется в МК по заднему фронту строба MKRD. При выполнении чтения из ПЛИС в состав устройства должен быть введен управляемый выходной буфер. Его назначение состоит в том, чтобы

60

Соседние файлы в предмете Интегрированные системы управления и проектирования