Расчет разрядности представления данных и числа итераций
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Введение

 

В данной курсовой работе стоит задача разработать специализированное цифровое устройство - процессор CORDIC, являющееся отдельным законченным модулем для расчёта значений обратной тригонометрической функции arcSin(Z) и функции возведения в степень числа arCth(Z).

Устройство такого рода может использоваться в сложной комплексной системе, реализующей расчёт координат, расстояния или размера объекта, либо может найти своё применение в системах навигации и позиционирования. Такие приборы широко используются в различных сферах жизнедеятельности, начиная от строительных площадок и заканчивая сверхточными системами позиционирования объектов в космосе.

Данное устройство должно сочетать в себе как высокое быстродействие, так и необходимую точность вычисления. Исходя из задания, в основе работы устройства лежит метод Волдера «Цифра за цифрой». Этот метод представляет собой ряд итерационных формул, в результате расчёта которых происходит процесс поворота вектора до нужного угла.

Общая идея метода сводится к следующему. Последовательным умножением аргумента на заранее выбранные константы, приблизить аргумент с заданной точностью для одних функций к единице, для других функций - к нулю. Однако, для того, чтобы само значение функции при этом оставалось неизменным, необходимо одновременно совершать эквивалентные действия над выбранными константами. При выборе значений констант особым образом удается существенно упростить вычисления значений функции.

Промоделировав математическую модель метода Волдера в пакете Scilab, ее необходимо реализовать практически на интегральных микросхемах. Построить такое устройство можно как на отдельных микросхемах низкой степени интеграции выполняющих определённые функции, либо на программируемой логической матрице, либо на готовом микроконтроллере.

Каждый из этих способов имеет свои преимущества и недостатки, поэтому необходимо выбрать наиболее эффективный и экономичный среди них.

Для построения устройства на ПЛИС необходимо его смоделировать в САПР на языке VHDL. При использовании микроконтроллера необходимо написать программу либо на языке ASSEMBLER, либо на любом другом языке программирования высокого уровня, например C++. Таким образом, разработка и построение цифрового устройства является комплексной и весьма сложной задачей, требующей глубоких знаний во многих компьютерных дисциплинах.

Большинство цифровых систем строится на микропроцессорах либо на микроконтроллерах. И при помощи микропроцессорных систем происходит управление различными технологическими процессами и отдельными операциями. Данные системы практически универсальны, так как они имеют очень высокое быстродействие, и достаточную разрядность для выполнения точных расчетов на производстве. А так же используя в данных системах ППЗУ возможно при помощи одной компьютерной системы управление различным оборудованием. То есть необходимо изменение только программы управления.



АНАЛИЗ ПОСТАВЛЕННОЙ ЗАДАЧИ

 

В курсовой проекте необходимо реализовать специализированный математический процессор для вычисления элементарных функций arcSin(Z) и arCth(Z).

Эти функции можно реализовать методом Волдера «Цифра за цифрой», метод Меджита и др. Оба эти метода основаны на ряде итерационных формул, которые приведены в таблице 1.1. Основное их различие заключается в том, что в методе Меджита на первом этапе сразу рассчитываются все направляющие коэффициенты. В данном устройстве будем использоваться метод Волдера «Цифра за цифрой», так как он требует меньших аппаратных затрат и обладает достаточной точностью вычислений.

В таблице 1 приведены итерационные формулы для вычисления заданных элементарных функций по методу Волдера «Цифра за цифрой».

 

Табл.1 - Метод Волдера для расчёта ArcSin(z).

Вычисление

   

Вычисление

 

Данное устройство должно являться частью комплексного прибора, поэтому оно должно иметь разъём для подключения и все соответствующие интерфейсные сигналы.

Устройство получает данные от главного модуля и передаёт ему обратно результат. Данные передаются в формате с фиксированной точкой. На целую часть отводится 7 разрядов и 1 знаковый, на дробную часть также отводится 16 разрядов. Передача осуществляется по интерфейсу I2C(TWI). Выбран именно этот интерфейс так как в нём реализовано распознавание пакетов (начало, конец, распознавание собственных адресов для каждого устройства, что является хорошим способом и альтернативным вариантом для предотвращения коллизий).

Организация сброса

 

В данном случае нет смысла использовать отдельную кнопку сброса, сброс будет осуществляться по включению питания либо по внешнему сигналу сброса от устройства управления. При включении устройства подаётся питание на контроллер и автоматически осуществляется сброс, при выключении устройства, просто снимается питание с контроллера.

Для предотвращения сбоев работы контролера и выполнения программы при скачке напряжения, используем встроенную схему сброса при снижении питания BOD, которая отслеживает напряжение питания. Если работа этой схемы разрешена, то при снижении питания ниже некоторого уровня она переводит контроллер в состояние сброса. Когда напряжение вновь увеличится до порогового значения, запускается таймер задержки сброса. После формирования задержки tTOUT внутренний сигнал сброса снимается и происходит запуск микроконтроллера.

Включением/выключением схемы BOD управляет конфигурационная ячейка BODEN. Для разрешения работы схемы эта ячейка должна быть запрограммирована в «0». Порог срабатывания VBOT определяется состоянием конфигурационной ячейки BODLEVEL, при «1» порог срабатывания 2.7 В, при «0» порог 4 В.

Для уменьшения вероятности ложных срабатываний порог напряжения переключения схемы имеет гистерезис, равный 50 мВ. Кроме того, срабатывание схемы BOD происходит только в том случае, если период провала больше 2 мкс.

Задание длительности задержки сброса tTOUT определяется значением конфигурационных ячеек, и включает в себя две составляющих: ts – выход на рабочий режим и стабилизация частоты тактового генератора, tr – для установки напряжения питания. При использовании встроенного RC-генератора с внутренней RC-цепочкой при включённой схеме BOD, биты конфигурации SUT1-0 установлены в значение «00», при этом ts= 6 тактов, tr –соответственно не используется.

Алгоритм работы устройства

 

Рис.3.1 - Алгоритм работы устройства

 

Описание алгоритма программы микроконтроллера:

1. Подача напряжения питания на устройство, автоматически происходит сброс и запуск внутреннего генератора тактовых импульсов;

2. Инициализация режимов работы контролера и его внутренних устройств (портов, интерфейсов и т.д.);

3. Переход в энергосберегающий режим ожидания Power Down;

4. Ожидание прерывания INT1, выводящего контролер из спящего режима;

5. При приходе сигнала SS происходит загрузка регистров SPI и прием данных по MISO от УКС.

6. Анализ полученных данных. Если получена команда 1 – запуск вычисления функции arcth Z, если получена команда 2 – функции arcsin Z.

7. Начало вычисления заданной функции:

1 этап вычислений - расчет ri , Xi (для функции arcth Z) или ri , Qi (для функции arcsin Z);

2 этап вычислений – расчет Yi , Qi или Xi

8. Установка флага завершения вычислений;

9. Выдача результата по MOSI;

10.  Ожидание прерывания либо INT0 переводящего в спящий режим контроллер, либо INT1 запускающего следующий расчёт.

Заключение

В данной работе был промоделирован и реализован процессор CORDIC. Данный процессор способен выполнять вычисление различных элементарных функций, таких как тригонометрические, логарифмические и другие. Однако в данном случае стояла задача реализовать только функции arCth Z и arcsinZ.

Вычисление заданной функции устройство выполняет в соответствии с техническим заданием с заданной точностью и в течении заданного периода времени.

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

Данное устройство является универсальным и может быть использовано в любом комплексном устройстве. Для согласования работы данного устройства с ведущим устройством не возникает никаких сложностей, так как оно может работать асинхронно, принимать и генерировать прерывания.

Введение

 

В данной курсовой работе стоит задача разработать специализированное цифровое устройство - процессор CORDIC, являющееся отдельным законченным модулем для расчёта значений обратной тригонометрической функции arcSin(Z) и функции возведения в степень числа arCth(Z).

Устройство такого рода может использоваться в сложной комплексной системе, реализующей расчёт координат, расстояния или размера объекта, либо может найти своё применение в системах навигации и позиционирования. Такие приборы широко используются в различных сферах жизнедеятельности, начиная от строительных площадок и заканчивая сверхточными системами позиционирования объектов в космосе.

Данное устройство должно сочетать в себе как высокое быстродействие, так и необходимую точность вычисления. Исходя из задания, в основе работы устройства лежит метод Волдера «Цифра за цифрой». Этот метод представляет собой ряд итерационных формул, в результате расчёта которых происходит процесс поворота вектора до нужного угла.

Общая идея метода сводится к следующему. Последовательным умножением аргумента на заранее выбранные константы, приблизить аргумент с заданной точностью для одних функций к единице, для других функций - к нулю. Однако, для того, чтобы само значение функции при этом оставалось неизменным, необходимо одновременно совершать эквивалентные действия над выбранными константами. При выборе значений констант особым образом удается существенно упростить вычисления значений функции.

Промоделировав математическую модель метода Волдера в пакете Scilab, ее необходимо реализовать практически на интегральных микросхемах. Построить такое устройство можно как на отдельных микросхемах низкой степени интеграции выполняющих определённые функции, либо на программируемой логической матрице, либо на готовом микроконтроллере.

Каждый из этих способов имеет свои преимущества и недостатки, поэтому необходимо выбрать наиболее эффективный и экономичный среди них.

Для построения устройства на ПЛИС необходимо его смоделировать в САПР на языке VHDL. При использовании микроконтроллера необходимо написать программу либо на языке ASSEMBLER, либо на любом другом языке программирования высокого уровня, например C++. Таким образом, разработка и построение цифрового устройства является комплексной и весьма сложной задачей, требующей глубоких знаний во многих компьютерных дисциплинах.

Большинство цифровых систем строится на микропроцессорах либо на микроконтроллерах. И при помощи микропроцессорных систем происходит управление различными технологическими процессами и отдельными операциями. Данные системы практически универсальны, так как они имеют очень высокое быстродействие, и достаточную разрядность для выполнения точных расчетов на производстве. А так же используя в данных системах ППЗУ возможно при помощи одной компьютерной системы управление различным оборудованием. То есть необходимо изменение только программы управления.



АНАЛИЗ ПОСТАВЛЕННОЙ ЗАДАЧИ

 

В курсовой проекте необходимо реализовать специализированный математический процессор для вычисления элементарных функций arcSin(Z) и arCth(Z).

Эти функции можно реализовать методом Волдера «Цифра за цифрой», метод Меджита и др. Оба эти метода основаны на ряде итерационных формул, которые приведены в таблице 1.1. Основное их различие заключается в том, что в методе Меджита на первом этапе сразу рассчитываются все направляющие коэффициенты. В данном устройстве будем использоваться метод Волдера «Цифра за цифрой», так как он требует меньших аппаратных затрат и обладает достаточной точностью вычислений.

В таблице 1 приведены итерационные формулы для вычисления заданных элементарных функций по методу Волдера «Цифра за цифрой».

 

Табл.1 - Метод Волдера для расчёта ArcSin(z).

Вычисление

   

Вычисление

 

Данное устройство должно являться частью комплексного прибора, поэтому оно должно иметь разъём для подключения и все соответствующие интерфейсные сигналы.

Устройство получает данные от главного модуля и передаёт ему обратно результат. Данные передаются в формате с фиксированной точкой. На целую часть отводится 7 разрядов и 1 знаковый, на дробную часть также отводится 16 разрядов. Передача осуществляется по интерфейсу I2C(TWI). Выбран именно этот интерфейс так как в нём реализовано распознавание пакетов (начало, конец, распознавание собственных адресов для каждого устройства, что является хорошим способом и альтернативным вариантом для предотвращения коллизий).

Расчет разрядности представления данных и числа итераций

 

Произведём расчёт числа итераций и разрядности в математическом пакете SciLab.

Определим диапазон допустимых значений заданных элементарных функций. Исследуем итерационные формулы для вычисления Θ = arcth Z:

 


 

 

Тогда границы значений функции, при которых метод Волдера является верным, лежит в следующем пределе:

 

 

При этом Z для функции Θ = arch Z должно находиться в следующем диапазоне:

 

 

Определим диапазон допустимых значений аргументов функции 2Z, а затем диапазон значений само функции.


 

 

Тогда границы значений функции, при которых метод Волдера является верным, лежит в следующем пределе:

 

 

Следовательно функция будет изменяться в диапазоне:

 

.

 

Рассчитаем минимальное число итераций при погрешности преобразования равной 0,01% и максимальной выходной величине 4,685:

 

 

Тогда количестово разрядов данных составит:

 

.

 





Дата: 2019-05-28, просмотров: 179.