Современная электроника №9/2019
ИНЖЕНЕРНЫЕ РЕШЕНИЯ 55 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 9 2019 Рис. 8. Структурная схема вычислителя не даёт никакойошибки, заисключени- ем пренебрежимо малой ошибки окру- гления числа 0,0199999 до 0,02. Таким образом, итоговая формула вычисления значения температуры окружающей среды T A ITOG , представлен- ного в единицах 0,1°C, с учётом пред- варительного умножения на 10 реали- зована в вычислителе проекта ПЛИС в следующем виде: . Температура объекта T O ITOG вычисля- ется в проекте ПЛИС по формуле, ана- логичной (2), с подстановкой значения T O вместо T A . Вычисление значений T A ITOG и T O ITOG в проектеПЛИСосуществляется в контрол- лере вычисленийи сравнения результата с порогом (в вычислителе), структурная схема которогоприведенана рисунке 8. Для обеспечения умножения на 419430 в проектеПЛИСиспользуется стандарт- наямегафункция умножителя LPM_MULT из утилитыMegaWizard Plug-InManager средыQuartus II. Умножитель представ- ляет собой комбинационное устройство, на которое не подаются никакие вход- ные синхросигналы. Разрядность сомно- жителей выбрана, исходя из их макси- мальных возможных значенийоперан- дов умножителя. Деление на 2097152, как уже было сказано, реализуется путём логиче- ского сдвига вправо с помощью язы- ковой конструкции, представленной в листинге 1. Для обеспечения вычитания числа 2732 впроектеПЛИСиспользуется стан- дартная мегафункция вычитателя LPM_ ADD_SUBиз утилитыMegaWizardPlug-In Manager средыQuartus II. Вкачествевычи- таемого в этой мегафункции использу- ется константа–десятичное число2732. Уменьшаемоеиразностьвмегафункции вычитателядолжныбытьпредставленыв дополнительномкоде. Длявсегдаположи- тельного уменьшаемого, которое исход- но представлено в прямом коде, указан- ное требованиенеиграетроли, посколь- ку уположительныхчиселпредставление в дополнительномипрямомкоде совпа- дает. Преобразованиеразностииз допол- нительного в прямой код может потре- боваться только в случае отрицательной разности, поскольку дальнейшие опера- циинадразностьюввычислителе требу- ютпредставленияданныхвпрямомкоде. Преобразованиекодаразностис генера- циейзнакаполучившегосярезультатаосу- ществляется с помощью языковой кон- струкции, представленной в листинге 2. (2) Синхросигнал с выхода PLL (10 МГц) Значение адреса ведомого на шине, значение команды Слово значения температуры, прочитанное из датчика Temper_natural Словозначениятемпературы, прочитанноеиздатчика Temper_natural clk_pll clk_pll clk_pll clk_pll clk_pll clk_pll clk_pll clk_pll Флаг превышения порога Porog_Temper clk_pll clk_pll result_lim_sub Преобразователь издополнительного кода в прямой код Преобразователь издополнительного кода в прямой код Знак температуры Преобразователь из двоичного представления в двоично-десятичное представление binar_BCD_XXXX.v Преобразователь из двоичного представления в двоично-десятичное представление binar_BCD_XXXX.v Знак порога сравнения температуры Вычислитель Сигнал несовпадения CRC (к выходу подключения светодиода индикации несовпадения CRC) Знак температуры (к контроллеру ЖКИ, к блоку передачи пакета через UART) Значение температуры (к контроллеру ЖКИ, к блоку передачи пакета через UART) Признак состояния устройства (к контроллеру ЖКИ, к блоку передачи пакета через UART) Значения порога сравнения температуры (к контроллеру ЖКИ) Знак порога сравнения температуры (к контроллеру ЖКИ) Признак превышения порога сравнения температуры (к блоку передачи пакета через UART) Сигнал превышения порога сравнения температуры (к контроллеру формирования звуковых сигналов, к выходу подключения светодиода индикации превышения порога) Генератор символа ASCII Преобразователь в кодировку ASCII Преобразователь в кодировку ASCII Генератор символа ASCII Генератор символа ASCII Генератор символа ASCII result_sub hold_imp result_ Константа 419430 Константа 2097152 Константа 2732 Константа 2730 Константа ERROR_CRC8 Формирователь короткого импульса по фронту Trigger_2st_front.v С С С С С С С С С С == А А А А А А А == А–B А–B А>B Y D Q RG А А А ≠ B А /B А × B В В В В В Y В В ADR ADR MUX MUX Значение CRC, прочитанное из датчика Temper_Kelvin_x10_ish Temper_Kelvin_x10 Temper_decimal Temper_alarm_limit_decimal Temper_Kelvin_x10_hold Сигнал состояния устройства hold Значение порога сравнения температуры Temper_alarm_limit CRC8_in = 0 CRC8_ERROR Генератор CRC CRC8_40.v Шина порога сравнения температуры с выхода контроллера обработки сигналов кнопок Сигнал состояния устройства с выхода контроллера обработки сигналов кнопок Шина с выхода блока периодического чтения данных из датчика MLX90614
RkJQdWJsaXNoZXIy MTQ4NjUy