Солонина А., Улахович Д. Алгоритмы и процессоры цифровой обработки сигналов (2002) (1095891), страница 54
Текст из файла (страница 54)
Поэтому любое положительное значение 16-разрядного числа вне этих границ заменяется числами 7ГГОт для и-закона и 7ГГ811 для А-закона, а любое отрицательное значение 16-разрядного числа вне этих границ заменяется числами ГГГС11 для рзакона и ГГГ811 для А-закона; ноль в стандарте р-закона перелается чередованием чисел 7Г)т/ГГ)т, а в стандарте А-закона чередованием чисел 55!тттЕ)511, что отражено на рис. 8.5 и в табл.
8.2. При экспандированни 8-разрялнос слово перскодируется соответственно в 14- или 13-разрялные ланные, с которымв лолжен работать процессор. Форматы кампанлируемых лапиых представлены на рис. 8.6, откуда видна, что компанлируел1ые данные размещаются в стаРших разрядах 16-разрялпых слов. 15 14 3 2 1 О Содержимое ,4-ЭИКОн Рекистр упРавления состоянием ожидэния ЦПУ Знак 15 14 2 1 О СОдержимов мэакон Знак Таблица б.2.
Законы компандирования Рме. ВЛ. Генератор задержек Алгоритмы и процессоры цифровой обработки сигналов Рма. 8.6. форматы компандируемык данных Законы компандирования в процессорах реализованы по-разному. В процессорах фирмы Мо!ого!а они представлены в виле таблиц, помещенных во внутреннюю Х-память, поэтол!у пользователю необходилю составлять специальные программы для обращения к таблицам. В процессорах фирм Техал 1пзгшгпеплз и Апа!ая е!еуэсез кол!панлирование реализована аппаратно, что позволяет выбирать закон компандирования для каждого последовательного порта независимо установкой соответствующих битов в регистрах управления портами с полюшыо команд бит-манипуляций.
8.3. Генератор задержек доступа к памяти Генератор задержек доступа к памяти предназначен лля временнога согласования процессора с низкоскоростной и высокоскоростной внешней пе Риферией, включая намаюсь. Каждое из внешних устройств может иметь свою длительность цикла обмена. Для высокоскоростной периферии цикл обмена составляет один машинный такт; если цикл обмена превышает зта значение, процессору необходимо прелоспэвить некоторое ереме азктя)аяяя, ва б.
Периферийные устройства за сяшее от скорости обмена конкретнога устройства. Генератор задержек (Рис. о.7) формирует сигню! ожидания обменом данных. Генератор задержек является программируемым и состоит из следующих элементов: (3 декодера; П регистра управления состоянием ожидания ЦПУ; С) счетчика на инкремент; П схемы "И". При обрашснпи процессора к внешней периферии из ЦПУ на декодер по- лается спгнаэ абра!целил и адрес группы устройств с одинаковым циклом обмена (на рисунке таких групп четыре).
Декодер по указанному адресу выбирает соответствующее поле в регистре управления ожиданием ЦПУ. Записанное в это поле на этапе инициализации число загружается в 3-разрядный счетчик, рабокнаший на лекремент. Если загруженное содержимое не равно нулю и от внешнего устройства не поступил сигнал готовности, с выхода схел!ы "И" на ЦПУ подается сигнал ожидания (%А!Т) и одновременно запускается счетчик подачей на него ТИ. Состояние ожидания (неготовности) поддерживается до тех пор, пока счетчик не достигнет нуля и ат внешнего Устройства не поступит сигнал готовности, который проверяется только при достижении счетчиком нуля.
Поскольку разрялнасть счетчика в данном примере равна 3 (лля процессоров ТМ532ОС5х), Орел!я ожилания может составлять ло 7 машинных циклов (ТИ). Если вся периферия конфигурнрована пол пулевое состояние счетчика, ТИ отклю !а!отея ат генератора задержек. Алгоритмы и процессоры цифровой обработки сигналов -ва В. Периферийные устройстве Если по достижении счетчиком нуля сигнал готовности не обнаруживается, счетчик перезагружается и начинает новый счет. Так удается организовать более длительиос время ожидания, чем 7 машинь<ых цшсюв. Например, загрузив в счетчик число 4„можно получить время ожидания в 8 машинных циклов. Разрядность счетчика и потому длительность никла ожидания может превосходить 3; например, в процессорах ТМБ320С54хх разрядность счетчика ранна 14, поэтому длительность цикла ожидания может превышать 14 машинных циклов.
8.4. Таймеры Прерывшшя и разнообразные временные задержки в процессоре можно организовывать программно, для чего необходимо созлавать специалы<ые подпрограмл<ы прерывания, которые отсчитывали бы время и па окончании счета выдавали бы требуемый сигнал прерывания. Програмлщый способ организаш<ш залсржек и прерываний при своей несложности имеет два существенных нелостатка: П выполнение программы прерывания запрещает параллельную рабат) процессора па какой-либо лругой программе; процессор начинает работать по друп<м программал< лишь по истечении времени задержки, определяемого программой прерывания; П обеспечение большого времени задержки вынуждает пользователя создавать большие буферы, т. е.
уменьшать резерв пал<яти. Поскольку необходимость в организации прерываний и временных задержек не является редким событием, программная их реализация привалит к увеличению времени выполнения основной программы. Во избежание этпл неприятностей современные процессоры снабжены таймером — программируемым аппаратныл< внутрикристальным устройством.
Если не углубляться в детали, таймер — это внутрикристальный счетчик па вычитание (декремент) илп приращение (инкремент), котарьш по окончании счета выдает ил<пульс, называемый сигналом "прерывания по таймеру . или просто прерыванием таймера. Начальное состояние таймера (инициализация) устанавливается программна. 8.4.1. Таймеры на декремент Наиболее распространенными являются таймеры, работающие па декремент. Таймер лскрсмснтируется на елиницу олин раз за алям цикл звдаьпюй частоты лекрсмснта уаск, которая может састав<шгь половину или четверть тактовой частоты процессора. Как только содержимое счетчика становится равным нулю, таймер вырабатывает импульсный сигнал, воспринимаемый как запрос па выполнение процессором функций, опрелеленных программистол<.
К такил< функциям люгут относиться: П счет событий; П организация прерываний центрального процессорного устройства по прашесгвии време«и, залаваемога пользователем при инициализации таймера; П генерирование периодических прямоугольных импульсов заданной длительности и скважности (рис. 8.8); П прерывание контроллера 0Мул для организации передачи данных; П автол<атическая перезагрузка счетчика для продолжения процесса. если это прелусмотрено пользователем.
длитальность Период импульса Период Ска длитатьность Рис. 8.8. Периодические прямоугольные импульсы таймера Процессор может содержать один илн более тайльеров. Их архитектура отличается от семейства к семейству, но тем це менее, они обладают некоторыми основными чертами и элел<еь<глми, отображенными «а обобщеппой структурной схеме таймера (рпс. 8.9). Таймер включает в себя три программно доступных регистра и лва программно недоступных счетчика: П реп<стр управления гаймером; П регистр счетчика; П регистр коэффициента деления; П счетчик коэффициента деления; П счетчик тайл<ера. Регистры и счетчики располагаются в Х-пал<ать<.
Регистр управления таймером обеспечивает: П останов и перезапуск таймера; П выбор генератора тактовых импульсов (внутренний или внешний); П задание типа сигнала прерывания (олно- или биполярный сигнал); П определение режима работы (вил сигнала па вывале: одиночный, периодический. мсанлр). рЛава 8.
Периферийные устройства Сброс [яббатт Сброс теамет»в а я 'я Б х а я пес и Яс н я я Б ст О во ти ос»Внов, пере»етру»ке я т о я О мО с в я со е я а х я я я »' » Ф с с » е О т х я Ф у'ее Оо О» На цПУ 3 3 Утрввпенне ВХВОДОМ Упрввпенне реяямвмя останов я пб~м»впуск С» "с» Реп~он» управления таймерам с» Ю Вр с» "о Алгоритмы и процессоры цифровой обработки сигналов Рис. 8.9. Обобщенная структурная схема таймера на декремент Назначение и функции остальных регистров и счетчиков будут ясны из дальнейшего. Разрядность регистров и счетчиков определяется конкретной модификацией процессора.
Перед запуском таймера, который может осуществляться как от внешнего сигнала "сброса", так и битами останова и перезапуска регистра управления таймером, необходимо произвести инициализацию (уста»топку начального состояния) таймера, для чего: 11 установить биты регистра управления согласно руководству; и загрузить в регистр счетчика и репютр коэффиштента деления константы йГ~ — 1 и Жз — 1 соответственно. Коэффициенты /Ч, и Жз называются коэффициентами счета и определяют длительность периода, с которым таймер будет выдавать сигнал прерывания.
Рассмотрим работу таймера по рис. 8.9 и 8.10, полагая /Ч, = 4 и Жз = 3. Прп инициализации в регистре счетчика должна быть размещена константа 3, а в регистре коэффициента деления — константа 2, поскольку счет при декремснте идет "вниз", включая О. И И И И И И И И И И ° ИИИНИИИИНИИИИИИИНИНИНИ ) пава гз Периферийные устройства 301 Загрузка Сброс/старт Удиржеиип (бппгж риеке! и игтектпвый) ь импульса ВывОд 8.4.3. Работа таймера Алгоритмы и процессоры цифровой обработки сигналов толи запуска, который остается равным нулю, если не требуется астапова С лтомснта загрузки начинается декремептнрованне содержимого счетчика деления на каждом такте ТИ; как только его содержимое становится равным нулю, формируется сигнал счета, но которому счетчик коэффициента деления перезагружается из регистра коэффициента леденил, а счетчик тайлтера декрелтентгируется па единнну.