lec 5 296dsp продолжение.ppt
- Количество слайдов: 49
Микроконтроллеры и микроконтроллерные системы. ЦИФРОВАЯ ОБРАБОТКА СИГНАЛОВ Лекция 5(продолжение) проф. Шеховцов Б. Г. Факультет компьютерной инженерии и управления, кафедра ЭВМ, ХНУРЭ Лекция 5 Март 2013 1
ОСНОВНЫЕ ТЕМЫ ЛЕКЦИИ • Цифровые регуляторы(ЦР). Дискретная регуляторы(ЦР модель ПИД –регулятора. • Алгоритм реализации ПИД–регулятора. Требования к сигнальному процессору. • Цифровые фильтры(ЦФ). • Специальные регистры поддержки цифровой обработки сигналов. • Режимы работы аккумулятора при выполнении операций умножениянакопления • Ограничения при работе с аккумулятором • Тест-задание Лекция 5 Март 2013 2
ЧТО ТАКОЕ ЦИФРОВАЯ ОБРАБОТКА СИГНАЛОВ? • Термин цифровая обработка сигналов используется для обозначения методологии извлечения полезного сигнала из сложного входного цифрового сигнала, а также последующего анализа и преобразования входного сигнала с использованием математических алгоритмов, то есть программным путем. • Цифровая обработка сигналов выполняется в реальном масштабе времени, поэтому первостепенное значение имеет время обработки при заданной точности. Лекция 5 Март 2013 3
• Наиболее часто термин встречается применительно к системам управления, в которых за счет ввода сигналов задания и обратных связей формируются значения управляющих воздействий, то есть реализуется воздействий алгоритм цифрового регулирования переменных. • Второй типовой является задача получения ряда последовательных выборок значений входной переменной и преобразования этой последовательности в другую, например, такую, в которой отсутствуют шумы и помехи. Эта задача называется цифровой фильтраций сигналов. Лекция 5 Март 2013 4
• Самыми быстрыми алгоритмами ЦОС являются алгоритмы табличной обработки, обработки когда значения операндов входной переменой, последовательных значений выходной величины данных, значения некоторой функции извлекаются из таблиц в памяти. • Процессоры серии MCS-296 имеют мощные средства поиска, извлечения и автоматической модификации данных в таблицах. • Задачи цифрового регулирования и цифровой фильтрации предъявляют практически одинаковые требования к системе команд Лекция 5 Март 2013 5
ЦИФРОВЫЕ РЕГУЛЯТОРЫ. ДИСКРЕТНАЯ МОДЕЛЬ ПИД–РЕГУЛЯТОРА. • Наиболее часто встречаются на практике пропорционально – интегрально -дифференциальные регуляторы (ПИД) • Используется в системах регулирования координат двигателей (скорости, положения), в системах управления параметрами технологического процесса (расходом, давлением, температурой, концентрацией веществ и пр. ). в системах слежения за объектами и т. д. • Задача является типовой в электромеханике, энергетике, химии, связи и др. • На примере ПИД- регулятора и проанализируем требования, предъявляемые к системе команд процессора, требования реализация которых позволит существенно упростить решение и сократить цикл 2013 Лекция 5 Март выполнения программы. 6
ДИСКРЕТНАЯ МОДЕЛЬ ПИД–РЕГУЛЯТОРА. • Передаточная функция непрерывного ПИДрегулятора, реализуемого на аналоговой технике (например на базе операционных усилителей), имеет вид: где Kn - коэффициент передачи пропорциональной части; Тu - постоянная интегрирования; Тd - постоянная дифференцирования. Лекция 5 Март 2013 7
ДИСКРЕТНАЯ МОДЕЛЬ ПИД–РЕГУЛЯТОРА. • Передаточной функции ПИД- регулятора будет соответствовать дифференциальное уравнение: где u(t) - величина рассогласования между заданным значением регулируемой величины и ее фактическим значением, снимаемым с датчика обратной связи; e(t) –управляющее воздействие, подаваемое на вход объекта управления. Лекция 5 Март 2013 8
• Особенность любой цифровой системы управления в том, что входная информация доступна только в фиксированные моменты времени t = k. Т где k — целое число 0, 1, 2, . . . , номер очередной выборки данных; T - интервал квантования по времени, задаваемый таймером интервала дискретизации. Лекция 5 Март 2013 9
После получения очередной выборки входных данных, выполняется расчет выходного управляющего воздействия. • Выдача воздействия на объект управления либо после завершения расчета, либо с запаздыванием на один интервал квантования, т. е. в начале следующего цикла выборки входных данных. · Второй метод предпочтительнее, так как интервалы квантования системы управления по входу и выходу будут одинаковыми и постоянными, не зависящими от длительности цикла прохождения алгоритма внутри процессора (скана цифрового регулятора). Лекция 5 Март 2013 10
• С точки зрения “наблюдателя”, находящегося внутри системы управления, значения входной e(t) и выходной u(t) функций определены только в дискретные моменты времени t = k. Т. • Такие дискретные функции называются решетчатыми, а уравнения, связывающие между собой дискретные переменные, называются дискретными разностными уравнениями. • Если интервал квантования T существенно меньше (желательно на порядок) самой маленькой постоянной времени системы, то существует простой метод перехода от непрерывного дифференциального уравнения регулятора к разностному. Лекция 5 Март 2013 11
• Значения непрерывных величин заменяются дискретными, а значения дифференциалов непрерывных функций - так называемыми разностями, то есть величинами приращений дискретных переменных за период дискретизации Т. • Это условие получило название теоремы Котельникова - Шеннона: если цифровой Шеннона регулятор или цифровой фильтр имеет частоту дискретизации по крайней мере вдвое большую, чем максимальная частота входного сигнала, то он может быть реализован без существенных погрешностей на базе своего аналогового прототипа. Лекция 5 Март 2013 12
ДИСКРЕТНАЯ МОДЕЛЬ ПИД–РЕГУЛЯТОРА. • Аналогом дифференциала первого порядка для непрерывной функции при этом является первая обратная разность (первая левая разность): • Аналогом дифференциала второго порядка - вторая разность: или • По аналогии с дифференциалами высокого порядка непрерывных функций могут быть определены и высшие разности для дискретных функций. Лекция 5 13 Март 2013
• Продифференцируем исходное уравнение непрерывного ПИД- регулятора, чтобы избавиться от интеграла: • Для перехода от непрерывного уравнения к разностному заменим непрерывные переменные дискретными, дифференциалы этих переменных разностями, а приращение времени dt — величиной интервала квантования по времени Т. Получим: Лекция 5 Март 2013 14
• В результате алгебраических преобразований, дискретное разностное уравнение ПИД -регулятора примет вид: • Обозначив коэффициенты в скобках как k 0 , k 1 , k 2 перепишем дискретное уравнение ПИД регулятора в виде: u(k) = u(k -1) + k 0 е(k) – k 1 е(к -1) + +k 2 е(к - 2). Лекция 5 Март 2013 15
• Не существует однозначного перехода от дифференциального уравнения к дискретному. Для этой цели можно использовать весь арсенал численных методов интегрирования дифференциальных уравнений (Эйлера, Коши, Рунге-Кутта и т. д. ). • Рост точности при переходе от непрерывной системы к дискретной не дается бесплатно, а сопровождается усложнением алгоритма и ростом требований к быстродействию процессора. Лекция 5 Март 2013 16
АЛГОРИТМ РЕАЛИЗАЦИИ ПИД -РЕГУЛЯТОРА • Расчет текущего значения управляющего воздействия u(k) выполнить в соответствии с рекуррентным алгоритмом, когда к предыдущему значению управляющего воздействия u(k - 1) добавляется значение приращения u(k), рассчитанного на текущем интервале: u(k) = u(k - 1) + u(k), где u(k) = k 0 е(k) – k 1 е(к -1) + k 2 е(к - 2). Лекция 5 Март 2013 17
• Для хранения управляющего воздействия u(k) используется специальный регистрнакопитель (аккумулятор АСС). • Для хранения трех последовательных выборок входной переменной е(k), е(k-1), е(k -2) — три последовательные ячейки памяти данных. • Если реализуемый регулятор должен быть перенастраиваемым, т. е. должен допускать изменение параметров в процессе работы, то для хранения коэффициентов также целесообразно использовать три ячейки. RAM – b 0 , b 1 , b 2. Лекция 5 Март 2013 18
• На этапе инициализации должны выполняться действия: 1. Очистка аккумулятора АСС 0, то есть u(k -1) 0; 2. Очистка таблицы последовательных выборок входной переменной е(k-1) 0, е(k-2) 0; 3. Инициализация коэффициентов ПИДрегулятора в таблице коэффициентов b 0= k 0 , b 1 = - k 1, b 2 = k 2. Лекция 5 Март 2013 19
• При расчете на текущем интервале квантования, то есть в процессе одного скана программы ПИД-регулятора выполняются следующие действия: 1. Опрос очередного значения входной переменной с записью текущей выборки е(k) в таблицу выборок. 2. Последовательное умножение трех последних выборок е(k), е(k - 1), е(k - 2) на соответствующие коэффициенты b 0 = k 0, b 1 = -k 1, b 2 = k 2 с накоплением результата в аккумуляторе: АСС + bi e(k - i) , для всех i от 0 до 2. Лекция 5 Март 2013 20
3. Циклический сдвиг всех выборок на одну позицию в памяти данных с удалением самой “старой” выборки из таблицы: е(k - 2) е(k - 1), е(k - 1) е(k). 4. Выдача рассчитанного значения управляющего воздействия в порт. Примечание: обычно пункт 4 алгоритма выполняется перед пунктом 1, то есть по прерыванию от таймера задания интервала квантования выдается ранее рассчитанное значение управляющего воздействия, а затем делается очередная выборка входных данных. Лекция 5 Март 2013 21
ТРЕБОВАНИЯ К СИГНАЛЬНОМУ ПРОЦЕССОРУ Для эффективной реализации ПИД-регулятора сигнальный процессор должен иметь следующие возможности: • Допускать работу как с целыми числами со знаком, так и с дробными числами со знаком. • Иметь команду умножения с накоплением результатов в аккумуляторе. • Иметь систему контроля возможных переполнений в процессе операций умножения-накопления. Лекция 5 Март 2013 22
• Иметь систему автоматического ограничения накопленного значения в аккумуляторе максимально допустимыми значениями, то есть режим насыщения. • Допускать в процессе операции умножения-накопления автоматическую замену уже использованной выборки данных следующей выборкой данных из таблицы выборок, то есть совмещать пункты 2 и 3 приведенного выше алгоритма. Лекция 5 Март 2013 23
ДИСКРЕТНЫЕ МОДЕЛИ НАИБОЛЕЕ РАСПРОСТРАНЕННЫХ ЦИФРОВЫХ РЕГУЛЯТОРОВ. Тип цифрового регулятора Дискретная модель Пропорциональнодвукратнодифференциальный (ПДД) u(k)=k 0 e(k) - k 1 e(k-1) + +k 2 e(k-2) Пропорциональноинтегрально дифференциальный (ПИД) u(k)=u(k-1) + k 0 e(k) -k 1 e(k-1) + k 2 e(k-2) Пропорциональнодвукратно-интегральный (ПИИ) u(k)=2 u(k-1) - u(k-2) + + k 0 e(k) - k 1 e(k-1) + + k 2 e(k-2) Лекция 5 Март 2013 24
• Как видно, реализация ПДДрегулятора проще, чем ПИД – регулятора. • А характерной особенностью является необходимость предварительной очистки Асс. • Для этой цели в системе команд DSP требуются команды умножения с накоплением и предварительной очисткой Асс. Лекция 5 Март 2013 25
• Реализация ПИИ- регулятора потребует некоторого изменения алгоритма. • Для расчета текущего значении управляющего воздействия u(k) потребуется к таблице трех последовательных выборок входной переменной добавить таблицу из двух предыдущих (ранее рассчитанных) значений выходного управляющего воздействия u(k-1), u(k-2). • Ранее рассчитанные значения выходного управляющего воздействия должны умножаться на фиксированные коэффициенты (2 и 1 соответственно) и точно также обновляться при каждом скане программы регулятора. Лекция 5 Март 2013 26
ЦИФРОВЫЕ ФИЛЬТРЫ • При цифровой фильтрации сигналов можно добиться того, что выходной сигнал (например, преобразованный вновь в аналоговую форму) не будет содержать высокочастотного шума и помех (низкочастотный фильтр), не будет содержать сигналов в каком-либо наперед заданном диапазоне частот (полосовой фильтр) и т. д. Лекция 5 Март 2013 27
• В общем случае дискретные модели цифровых фильтров и цифровых регуляторов совпадают. • Анализ мат. модели ЦФ показывает, что новых требований к DSP не возникает. • Отличие состоит лишь в размерах таблицы выборок, таблицы выходных отсчетов и количестве операций умножения – накопления для реализации ЦФ. Лекция 5 Март 2013 28
• Например, для фильтра n-го порядка дискретная модель представляет собой линейное разностное уравнение n-го порядка: u(k)+а 1 u(k-1)+ а 2 u(k-2)+ …+an u(k-n)= = b 0 e(k) +b 1 e(k-1)+…+ bn e(k-n), где а 1, а 2 , …an , b 0 , b 1, b 2… bn представляют собой константы со знаком, величины e(k), e(k-1)… e(k-n) – последовательный ряд выборок входной переменной на текущем, предыдущем и т. д. интервалах дискретизации, а величины u(k), u(k-1), …, u(k-n) – последовательный ряд выходных значений. Лекция 5 Март 2013 29
РЕГИСТРЫ АККУМУЛЯТОРА АСС_0 Х Адрес 39 АСС_04 (06 h) Старший байт переполнения 31 АСС_02 (0 Eh) 16 Старшее слово аккумулятора 15 АСС_00 (0 Ch) 32 0 Младшее слово аккумулятора • 40 -разрядный аккумулятор (ACC_0 x) постоянно находится в ячейках 06 h, 0 C– 0 FH. • Вы должны читать из или записывать в аккумулятор как два слова в ячейки 0 CH и 0 EH и как один байт в ячейку5 06 H. Лекция 30 Март 2013
• Аккумулятор - 40 -разрядный регистр, который накапливает результаты математических операций. • Его главное назначение - увеличивать точность команд умножения и в ускорении расчетов. • Аккумулятор представляет собой обычный регистр специальной функции (SFR) в нижнем файле RRAM. • 40 -разрядный аккумулятор составлен из 32 битов, адресуемых как два слова и другие восемь битов для переполнения. • Для получения результата умножения- накопления можно считать текущее значение аккумулятора. • Можно также инициализировать начальное значение состояния аккумулятора, записав в регистры аккумулятора требуемое значение. • При сбросе процессора аккумулятор автоматически очищается. Лекция 5 31 Март 2013
РЕГИСТР СОСТОЯНИЯ И УПРАВЛЕНИЯ АККУМУЛЯТОРОМ (ACC_STAT) ACC_STAT 7 6 FME SME 5 - Номер Мнемоника бита 7 Лекция 5 FME 4 - 3 - 2 STOVF Адрес: 0 Вh 1 0 OVF STSAT Функция Fractional Mode Enable. Установка режима работы с дробными числами. Результат команды знакового умножения сдвигается влево на один разряд перед сложением с содержимым аккумулятора. При умножении без знака, этот бит игнорируется. 32 Март 2013
Таблица(продолжение) 6 SME Saturation Mode Enable. Установка этого бита включает режим насыщения. При умножении со знаком и накоплении результат не может превысить максимально возможного положительного или отрицательного значения и автоматически выполняется ограничение результата. Лекция 5 Март 2013 33
Таблица(продолжение) 5: 3 2 1 0 Зарезервировано. STOVF Sticky Overflow Flag. Флаг ловушка переполнения. Очищается флажок программно. OVF Overflow Flag. Бит указывает, что произошло переполнение. Флажок изменяться после каждого накопления. STSAT Sticky Saturation. Флаг ловушка насыщения. Очищается этот флажок программно. Лекция 5 Март 2013 34
РЕЖИМЫ РАБОТЫ АККУМУЛЯТОРА ПРИ ОПЕРАЦИЯХ УМНОЖЕНИЯНАКОПЛЕНИЯ Биты задания режима работыоказывают влияние только на результат операций умножения-накопления чисел со знаком SME FME 0 Лекция 5 1 Режим работы Работа с дробными знаковыми без режима насыщения. Сдвигает насыщения слагаемое влево на один разряд перед добавлением его к аккумулятору. Устанавливает флажки OVF и STOVF (как выше сказано). Март 2013 35
РЕЖИМЫ РАБОТЫ АККУМУЛЯТОРА ПРИ ОПЕРАЦИЯХ УМНОЖЕНИЯНАКОПЛЕНИЯ SME FME 0 Лекция 5 0 Режим работы Работа с целыми знаковыми без режима насыщения. Устанавливает OVF и STOVF, если знаковые разряды аккумулятора и слагаемого равны, но знаковый разряд результата — противоположный. Март 2013 36
Таблица режимов работы аккумулятора (продолжение) SME FME Режим работы 1 Лекция 5 0 Накопление целых со знаком с ограничением на уровне положительного максимума (7 FFFFFFFH) или отрицательного (80000000 H). Устанавливает флажок STSAT: =1. Накопление продолжается после фиксации насыщения, причем прибавление положительного числа к максимальному отрицательному или отрицательного к максимальному положительному выведет аккумулятор из режима насыщения, но взведенный флаг STSAT аппаратно не меняется Март 2013 37
Таблица режимов работы аккумулятора (продолжение) SME FME Режим работы 1 Лекция 5 1 Накопление дробных со знаком до насыщения. Сдвигает результат умножения влево на один разряд перед добавлением его к аккумулятору. Устанавливается флажок STSAT: =1. Накопление чисел со знаком происходит аналогично тому как описано выше. Март 2013 38
ОГРАНИЧЕНИЯ ПРИ РАБОТЕ С АККУМУЛЯТОРОМ Аппаратные средства процессора позволяют использовать аккумулятор в качестве операнда только с определенными командами Имеются две группы таких команд: Первая группа допускает в качестве операнда младшие 32 бита аккумулятора: либо длинное слово целиком, либо его отдельные компоненты слова АСС_00 и АСС_02 При этом из состава 17 -ти новых и модифицированных команд в эту группу входят: • Все восемь команд умножения с накоплением с мнемоникой MAC Лекция 5 Март 2013 39
• Команды ADDC/SUBC сложения/вычитания слов с учетом переноса с одним из операндов в АСС_02. • Команды MSAC и MVAC пересылки содержимого аккумулятора с предварительным циклическим сдвигом, автоматическим ограничением (насыщением) или без него. • Для них разрешен аппаратно режим насыщения. (ниже все эти команды будут рассмотрены подробно) Лекция 5 Март 2013 40
Ряд команд, допускающих в качестве операнда команд младшие 32 бита аккумулятора, не входят в аккумулятора состав 17 -ти новых команд, т. к. для них не разрешен аппаратно режим насыщения: насыщения Команды LD/ST загрузки/сохранения слов в АСС_00 и АСС_02. LD ACC_00, #1234 h; LD ACC_02, #0 ABCDh ; ST ACC_00, Rg_Long ; ST ACC_02, Rg_Long+2; • Команды ADD/SUB сложения/вычитания слов с одним из операндов в АСС_00 ADD ACC_00, #0 ABCDh; SUB ACC_00, #55 AAh ; ACC_00 Лекция 5 Март 2013 41
• Не входят в состав 17 -ти новых команд и команды сравнения CMPL, сдвига SHLL и CMPL SHRAL, а также нормализации NORML, SHRAL NORML работающие с содержимым аккумулятора как с длинным словом по адресу АСС_00. SHRAL ACC_00, #count ; count=1… 31 SHRAL ACC_00, breg ; SHLL ACC_00, breg ; CMPL ACC_00, R-Long; сравнить R-Long ; длинные слова NORML ACC_00, breg ; Лекция 5 Март 2013 42
ОГРАНИЧЕНИЯ ПРИ РАБОТЕ С АККУМУЛЯТОРОМ Вторая группа команд допускает работу со старшим байтом аккумулятора: аккумулятора • Команды умножения с накоплением MAC, MACRZ, MACZ, ориентированные на работу с целыми числами без знака. • Операндом-приемником для этих команд является весь 40 -битовый аккумулятор. • Команды LDB/STB загрузки/сохранения байта АСС_04 Лекция 5 Март 2013 43
• Операции умножения с 40 -битовым накоплением могут выполняться только для целых чисел без знака при запрете режима насыщения, когда автоматический контроль выхода результата накопления за максимальновозможное значение не производится • В этом случае контроль за возможным переполнением осуществляет сам пользователь программным путем. Лекция 5 Март 2013 44
Далее -информация для размышлений самостоятельно Лекция 5 Март 2013 45
РЕЖИМ НАСЫЩЕНИЯ при работе с числами со знаком можно включить или выключить по флагу SME. • Если режим насыщения выключен, то при накоплении и выходе результата за пределы разрядной сетки (32 -битового числа со знаком в дополнительном коде) вырабатывается флаг переполнения OVF. • Это имеет место при сложении чисел с одинаковыми знаками и идентифицируется по изменению знака результата на противоположный. Лекция 5 Март 2013 46
• Разрешение режима насыщения предотвращает переполнение, так как результат переполнение всегда ограничивается максимально возможным положительным или отрицательным значениями: 7 FFFFFFFH = 0111 1111 1111 b = 231 - 1 = +2 147 483 647 80000000 Н =1000 0000 0000 b = -2 147 483 648, причем флаг OVF в этом случае никогда не вырабатывается. Лекция 5 Март 2013 47
РЕЖИМ РАБОТЫ С ДРОБНЫМИ ЧИСЛАМИ СО ЗНАКОМ • Используется тогда, когда необходимо выполнить операции умножения-накопления с дробными числами со знаком. • Дробное число со знаком представляется в фиксированном формате так, что “мнимая” десятичная точка располагается между знаковым разрядом (старшим значащим битом) и смежным битом. • Например, максимальное дробное положительное число, которое с высокой точностью равно 1: 0. 1111 1111 b 1111 Лекция 5 Март 2013 48
• При работе с дробными числами перед операцией накопления результат умножения дробных чисел со знаком сдвигается влево на один бит. • Тем самым удаляется дополнительный знаковый разряд, полученный в результате операции умножения. • Результат умножения оказывается при этом в правильном формате с размещением десятичной точки между знаковым разрядом и смежным битом. Лекция 5 Март 2013 49
lec 5 296dsp продолжение.ppt