Современная электроника №4/2021

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 50 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 4 2021 Для пересчёта результата преоб- разования из битов в милливольты с последующим его преобразовани- ем из двоичного в двоично-десятич- ное представление в проекте ПЛИС используется языковая конструкция, приведённая в листинге 6. В каче- стве исходных данных для пересчё- та и преобразования представления здесь используется содержимое реги- стра rezult_ADC. Для повышения точности преобра- зований значение parameter U_ref_mV, в авторском варианте проекта равное 3300, может быть скорректировано, исходя из конкретного значения напря- жения опорного напряжения АЦП в милливольтах. Выдача результата АЦП в последова- тельном виде во внешние устройства реализована с помощью модуля ниж- него уровня, исходный текст которого содержится в файле ADC_rezult_serial.v. Формат последовательной выдачи в проекте ПЛИС в общих чертах воспро- изводит распространённый формат SPI режима 0 (бит полярности SPOL = 0, бит комбинации фазы SPHA = 0). При этом ПЛИС является ведущим (master) устройством на шине и гене- рирует опорный синхросигнал. Сигнал принимаемых данных MISO в после- довательном интерфейсе отсутствует, поскольку АЦП в ПЛИС не принимает извне никаких данных, сигналу переда- ваемых данных MOSI в проекте ПЛИС соответствует выход OUT_ADC_serial, сигналу синхронизации SCLK в проек- те ПЛИС соответствует выход clk_OUT_ ADC с частотой 25 МГц, сигналу выбо- ра ведомого устройства /SS в проекте ПЛИС соответствует выход start_OUT_ ADC. Однократная последовательная выдача 12-разрядного слова результа- та АЦПпроизводится по каждому поло- жительному фронту сигнала готовности результата АЦПOUT_command_ready_ ADC, который представляет собой копию сигнала command_ready_ADC, выведенную из ПЛИС. Временные диаграммы формата последовательной выдачи показаны на рисунке 29. Параллельная выдача результата АЦП в проекте ПЛИС реализована в виде 12-разрядной параллельной выход- ной шины OUT_rezult_ADC_bus, сло- во данных на которой обновляется по каждому положительному фронту сиг- нала готовности результата АЦПOUT_ command_ready_ADC. В качестве исход- ных данных для обновления шины здесь используется содержимое реги- стра rezult_ADC. Преобразование выходного кода АЦП в значение температуры в ° С со знаком реализована в проекте ПЛИС с помощью модуля нижнего уровня, исходный текст которого содержится в файле Code_Temper_conv.v. В осно- ве модуля лежит таблица соответствия температуры выходному коду АЦП от температурного датчика TSD, взятая из [1, Table 4]. Каждому значению аргу- мента – 12-разрядного выходного кода АЦП code_ADC – в таблице сопостав- лено пять 8-разрядных значений: дво- ичное значение модуля температуры в ° С temper_mod_C, двоичное значение сотен модуля температуры в ° С temper_ mod_sot_C, двоичное значение десят- ков модуля температуры в ° С temper_ mod_des_C, двоичное значение единиц модуля температуры в ° С temper_mod_ ed_C, двоичное значение знака темпе- ратуры temper_znak_C. Такой подход позволяет избежать необходимости дополнительного преобразования в проекте ПЛИС из двоичного в двоич- но-десятичное представление. Выда- ваемые модулем Code_Temper_conv.v значения сотен, десятков и единиц модуля температуры и знака температу- ры поступают на индикацию после пре- образования в модуле верхнего уровня в ASCII-формат, которое заключается в прибавлении к каждому байту десятич- ного числа 48. Модуль обслуживания ЖКИ, исход- ный текст которого содержится в фай- ле LCD_12864.v, сразу после включения питания ПЛИС производит аппарат- ный сброс подключённого к ПЛИС ЖКИ 12864ZW (длительность сбро- са 0,2 с, задаётся константой VALUE_ END_RESET), начальную инициализа- цию ЖКИ, затем в течение 3 с на ЖКИ выводится начальная заставка, содер- жащая информацию о проекте ПЛИС и его версии. Время вывода начальной заставки задаётся константой VALUE_ END_BOOT. После окончания индика- ции заставки начинает производить- ся циклический последовательный вывод на индикацию четырёх групп 8-разрядных регистров знакомест: data_LCD1_0_reg – data_LCD1_15_reg, data_LCD2_0_reg – data_LCD2_15_reg, data_LCD3_0_reg – data_LCD3_15_reg, data_LCD4_0_reg – data_LCD4_15_reg. Каждая группа включает по 16 реги- стров (по числу символов в строкеЖКИ) и соответствует одной строкеЖКИ (все- го четыре строки: 1…4). Содержимое всех регистров обновляется одновре- менно в начале каждого цикла инди- кации содержимым соответствующих им 8-разрядных входов модуля обслу- живания ЖКИ: data_LCD1_0 – data_ LCD1_15, data_LCD2_0 – data_LCD2_15, data_LCD3_0 – data_LCD3_15, data_ LCD4_0 – data_LCD4_15. На этих вхо- дах модуль верхнего уровня выстав- ляет данные в произвольные моменты времени, поскольку разными входами в модуле верхнего уровня управляют раз- ные цифровые автоматы. Цикл инди- кации (интервал обновления инфор- мации на ЖКИ) равен 0,5 с (задаётся константой VALUE_ZIKL). Синхрони- зация модуля обслуживания ЖКИ осу- ществляется внутренним синхросигна- лом с частотой 1кГц, поступающим из модуля верхнего уровня. Рис. 29. Формат последовательной выдачи результата АЦП из ПЛИС Рис. 30. Результаты АЦП для универсального входа ПЛИС на интервале 50 мкс для нулевого входного сигнала

RkJQdWJsaXNoZXIy MTQ4NjUy