Билет № 24
1.
Структура системы ЦОС.
Учёт требований обработки в реальном времени.
СТРУКТУРА СИСТЕМЫ ЦОС
Цифровые сигналы удобны тем, что их можно
обрабатывать с помощью ЭВМ. Это делается в следующей структуре:
Электронный ключ ЭК
переводит аналоговый сигнал в дискретные отсчёты, следующие с частотой
дискретизации. Аналого-цифровой преобразователь АЦП переводит отсчёты в
двоичные кодовые слова. На практике обычно применяют устройство
выборки-хранения и АЦП последовательного приближения.
Операции ЦОС, например цифровая фильтрация,
выполняются в ЦСП, представляющем собой
микрокомпьютер. На выходе системы осуществляется обратная операция - в ЦАП
кодовые слова превращаются в отсчёты дискретного сигнала и, наконец, на
выходе фильтра ФНЧ возникает обработанный аналоговый сигнал. ФНЧ работает как
интерполятор – восстанавливает ход функции между отсчётами.
Выборка отсчётов осуществляется в АЦП через
интервал дискретизации T = 1/fД, от которого зависит точность
представления аналогового сигнала. Чем больше частота дискретизации, тем более
точным будет представление сигнала в цифровом виде, тогда как в случае малого
числа отсчетов (низкая частота дискретизации) может теряться информация о
сигнале.
Присутствие на входе АЦП составляющих с
частотами более высокими, чем fд/2, вызывает искажение
спектра сигнала типа наложения (aliasing). Эффект наложения
искажает отсчёты сигнала и не позволит получить точное восстановление. Для
предотвращения наложения, перед АЦП необходимо иметь аналоговый
ФНЧ, подавляющий частоты более высокие, чем частота Fв - высшая рабочая
частота. Такой подавляющий ФНЧ вместе с АЦП образуют кодер.
Для получения аналогового сигнала после цифровой
обработки применяют декодер, состоящий из ЦАП и сглаживающего ФНЧ.
Промышленность производит кодер и декодер вместе в
виде одной ИМС, имеющей название кодек.
Обмен данными с кодеком происходит через
последовательный порт ЦСП, имеющий двунаправленное действие.
|
|
|
|
Выбор частоты дискретизации
Существует ограничение на минимальное значение fд для АЦП. Согласно
теореме Котельникова необходимо иметь частоту дискретизации fд 2Fв, иначе невозможным
будет точное, без искажений восстановление сигнала после обработки.
Выбрав более высокую частоту дискретизации
(избыточную дискретизацию), мы уменьшаем требование к крутизне спада ФНЧ в
кодере и, следовательно, уменьшаем сложность фильтра за счет использования
более быстрого АЦП.
Количество операций в алгоритме обработки,
выполняемом ЦСП для одного отсчёта сигнала, может составлять сотни и тысячи.
Чтобы выполнять обработку сигналов в реальном времени,
обработка одного отсчёта должна укладываться в интервал времени, равный периоду
дискретизации в АЦП. Для этого нужно иметь тактовую частоту процессора в сотни
и тысячи раз более высокую, чем частота дискретизации в АЦП.
2. Устройство
обмена между шинами. Назначение и особенности использования.
Данное устройство соединяет 24-разрядную шину PMD
и 16-разрядную шину DMD, обеспечивая двунаправленный обмен
данными между ними. На программной модели процессора (рис. 11
) оно представлено 8-битным регистром обмена PX, компенсирующим разницу
в разрядности соединяемых шин. Его содержимое всегда соответствует младшим
битам источника/приемника данных. Регистр может быть непосредственно записан и
считан инструкцией типа регистр - регистр, например: AX0=PX;
При чтении PX старшие биты приемника (AX0) обнуляются.
При чтении 24-битных данных из памяти программ в
любой регистр, например, AX0 = PM(I4, M4);
старшие 1 6 бит записываются в регистр приемник AX0, а младшие 8 бит
автоматически сохраняются в регистре PX и могут быть в
дальнейшем использованы. Аналогично, 16-битные данные из любого регистра
записываются в старшие 1 6 бит слова памяти, а младшие 8 бит данных
автоматически записываются из регистра PX: PM(I4, M4)
= AX0; Если эти данные важны, то они должны быть предварительно
записаны в PX с шины DMD.
3. Особенности
использования и программирования кольцевого буфера.
Оба генератора поддерживают режимы линейной и
циклической адресации соответственно линейного и циклического буферов,
аппаратно создаваемых в памяти. Циклическую адресацию называют
также модульной, а циклический буфер - кольцевым. Режим
адресации линейного или циклического буферов для используемого индексного
регистра I задается регистром
длины буфера L, имеющим
с регистром I одинаковый номер, т.
е. I0-L0, I1 -L1 и
т. д.
При инициализации регистра L
отличным от нуля значением активизируется устройство адресации по модулю,
обеспечивающее автоматическую адресацию циклического буфера длиной,
определяемой значением регистра L.
Линейная адресация обеспечивается при записи в
регистр L нулевого значения длины кольцевого буфера, блокирующего
устройство модульной адресации.
После перезапуска процессора в регистрах I,
M и L содержатся случайные
значения. Поэтому программа должна обязательно предусматривать инициализацию
регистров L, соответствующих всем
используемым регистрам I.
Ниже приводимая последовательность инструкций
является простым примером задания и использования линейной косвенной адресации:
I3=0x3800;
M2=1; L3=0; I7=0x0100; M4=1; L7=0;
МX0=DM (I3, M2); МX1=PM (I7, M4); MR=MX0*MX1;
В случае циклической или модульной адресации
следующий адрес циклического (кольцевого) буфера вычисляется в соответствии с выражением:Следующий
адрес = (I+M
- B) по модулю (L) + B,
где I - это текущий адрес; M -
модифицирующее значение (со знаком); В - базовый адрес; L -
длина буфера, отвечающая условию: L>|M|.
Вычисленный адрес записывается в индексный
регистр I и становится текущим адресом ячейки памяти.
Базовый адрес циклического буфера длины L
равен 2n или кратен 2n , где n
удовлетворяет условию: 2n-1 < L
< 2n. На практике не требуется самим вычислять n;
редактор связей автоматически помещает циклический буфер по правильному адресу.
Приводимый пример иллюстрирует вычисление адреса
при модульной адресации:
Пусть I0 = 4, M0 =
1 , L0 = 3, базовый адрес B = 4. Следующий адрес =
(4+1-4) по модулю (3) + 4 = 5; Следующий адрес = (5+1-4) по модулю (3) + 4 = 6;
Следующий адрес = (6+1 -4) по модулю (3) + 4 = 4 и т. д.
Модульная адресация данных применяется, как
правило, в циклах, организуемых с помощью инструкции DO UNTIL.
Ниже приведен простой пример инициализации и исполнения такого цикла:
000
00000000}