Исследование и совершенствование интегрирующих аналого-цифровых преобразователей напряжения Σ-архитектуры тема диссертации и автореферата по ВАК РФ 00.00.00, кандидат наук Коротков Алексей Александрович
- Специальность ВАК РФ00.00.00
- Количество страниц 169
Оглавление диссертации кандидат наук Коротков Алексей Александрович
Введение
Глава 1. Классификационные признаки и тенденции развития Е-АЦП
1.1. Общие сведения
1.2. Описание классификационных признаков
1.3. Анализ состояния и тенденций производства
1.4. Основные результаты и выводы по первой главе
Глава 2. Разработка структурно-алгоритмических решений интегрирующего аналого-цифрового преобразования с компенсацией погрешности от краевых эффектов
2.1. Разработка интегрирующих АЦП с промежуточной ШИМ
2.1.1. Общие замечания
2.1.2. Моделирование ХТ-АЦП в МаАаЬ^тиНпк
2.1.3. Анализ реализуемости с учётом современных технологических возможностей
2.1.4. Моделирование ХТ-АЦП в N1 Ми1^т
2.2. Анализ погрешности от краевых эффектов ХТ-АЦП с комбинированной компенсацией
2.3. Анализ погрешности от краевых эффектов ХТ-АЦП с аналоговой компенсацией
2.3.1. Описание алгоритма
2.3.2. Разработка имитационной модели ХТ-АЦП
2.3.3. Выявление критически важных элементов
2.4. Анализ погрешности от краевых эффектов ХТ-АЦП с цифровой компенсацией
2.4.1. Разработка функциональной схемы
2.4.2. Имитационная модель ИАЦП с коррекцией результата
преобразования в цифровой форме
2
2.5. Оценка эффективности компенсации погрешности от краевых эффектов имитационных моделей ХТ-АЦП с различными видами коррекции
2.6. Основные результаты и выводы по второй главе
Глава 3. Анализ инструментальной составляющей погрешности ЕД-АЦП
3.1. Общие замечания
3.2. Методика проведения модельных экспериментов
3.3. Анализ влияния параметров элементов прямого канала преобразования однобитного ХД-модулятора
3.4. Анализ влияния параметров элементов опорного канала преобразования
3.5. Оценка комплексного влияния параметров элементов однобитных ХД-модуляторов
3.6. Анализ влияния цифрового фильтра высокого порядка
3.7. Основные результаты и выводы по третьей главе
Глава 4. Разработка СППР при выборе преобразователей информации с сигма-дельта архитектурой и реализация алгоритма ШИМ средствами N1 МиШэ1ш
4.1. Разработка СППР при выборе ПИ с сигма-дельта архитектурой
4.1.1. Актуальность разработки СППР
4.1.2. Назначение и режимы работы СППР
4.2. Моделирование ИАЦП с промежуточной ШИМ
4.2.1. Описание алгоритма функционирования малоразрядного интегрирующего преобразователя напряжения в интервал времени
4.2.2. Реализация алгоритма в виде имитационной модели
4.3. Основные результаты и выводы по четвертой главе
Заключение
Список использованных источников
Приложение А. Патент РФ и авторские свидетельства о государственной
регистрации программ для ЭВМ
Приложение Б. Внедрение результатов диссертационной работы
Приложение В. Листинг программы «Система поддержки принятия решений при выборе преобразователей информации с сигма-дельта архитектурой» и интегрированной базы данных
Список используемых сокращений
АЦП - аналого-цифровой преобразователь; ГИД - генератор импульсов дискретизации; ГОЧ - генератор опорной частоты;
ИАЦП - интегрирующий аналого-цифровой преобразователь;
ИИС - информационно-измерительная система;
ИОН - источник опорного напряжения;
ИРМ - импульсно-разностная модуляция;
КИМ - кодо-импульсная модуляция;
КИХ - конечная импульсная характеристика;
КМОП - комплементарная структура металл-оксид-полупроводник; МАЦП - малоразрядный аналого-цифровой преобразователь; МЗР - младший значащий разряд;
МИАЦП - малоразрядный интегрирующий аналого-цифровой преобразователь;
ООС - отрицательная обратная связь;
ОС - обратная связь;
ОУ - операционный усилитель;
ПИ - преобразователь информации;
ПЛИС - программируемые логические интегральные схемы; ПНВ - преобразователь напряжения в интервал времени; САПР - системы автоматизированного проектирования; СДАЦП - сигма-дельта аналого-цифровой преобразователь; СДМ - сигма-дельта модулятор;
СДЦАП - сигма-дельта цифро-аналоговый преобразователь;
Сигма-Т ИАЦП (ХТ-АЦП) - подкласс ИАЦП использующий принцип ШИМ;
СКО - среднеквадратическое отклонение;
СППР - система поддержки принятия решений;
СЧ - счетчик (импульсов);
ТКС - температурный коэффициент сопротивления;
5
УС - устройство сравнения;
УУ - устройство управления;
ФВФ - формирователь весовой функции;
ФИМ - фазо-импульсная модуляция;
ФПУ - формирователь порогового уровня;
ЦАП - цифро-аналоговый преобразователь;
ЦИ - цифровой интегратор;
ЦФ - цифровой фильтр;
ЧИМ - частотно-импульсная модуляция;
ШИМ - широтно-импульсная модуляция;
ENOB - effective number of bits (эффективное количество разрядов); MEMS - microelectromechanical systems (микроэлектромеханические системы); SINC-фильтры - цифровые фильтры с амплитудно-частотной характеристикой вида (sinx/x)k;
SNR - signal to noise ratio (отношение сигнал/шум).
Рекомендованный список диссертаций по специальности «Другие cпециальности», 00.00.00 шифр ВАК
Интегрирующие аналого-цифровые преобразователи, использующие методы однобитной сигма-дельта модуляции2012 год, кандидат технических наук Тер-Аракелян, Руслан Геворкович
Разработка методик совершенствования высокоточных интегрирующих аналого-цифровых преобразователей2017 год, кандидат наук Сидорова, Ирина Александровна
Исследование шумов квантования дельта-сигма АЦП и разработка методов их снижения2013 год, кандидат наук Иванов, Александр Владимирович
Шумовые свойства и схемотехника сигма-дельта модуляторов прецизионных аналого-цифровых преобразователей2013 год, кандидат наук Колесников, Дмитрий Васильевич
Синтез и реализация дельта-сигма АЦП двоичного и троичного кода с расширенной полосой рабочих частот и малой потребляемой мощностью2010 год, кандидат технических наук Пилипко, Михаил Михайлович
Введение диссертации (часть автореферата) на тему «Исследование и совершенствование интегрирующих аналого-цифровых преобразователей напряжения Σ-архитектуры»
Введение
Разработка и внедрение интегрирующих аналого-цифровых преобразователей (ИАЦП) в 70-80-е гг. прошлого века позволили решить важнейшую задачу повышения метрологических характеристик, решить задачу повышения помехоустойчивости, а простота схемотехнического решения обеспечила массовое внедрение. Были заложены основы теории и практики построения ИАЦП, ключевые варианты структурно-алгоритмических решений, которые послужили базисом для дальнейшего развития и совершенствования данного класса преобразователей информации.
Значительный вклад в теорию и практику ИАЦП внесли научные коллективы, возглавляемые В. В. Бариновым, Е. Н. Бормонтовым, И. М. Вишенчуком, Л. И. Волгиным, Э. И. Гитисом, В. С. Гутниковым, В. И. Диденко, К. Б. Карандеевым, В. Ю. Кнеллером, В. Г. Кноррингом, С. В. Кондратенко, А. С. Коротковым, Л. Ф. Куликовским, Е. А. Ломтевым, В. Д. Михотиным, П. В. Новицким, П. П. Орнатским, Ю. С. Солодовым, Ю. М. Тузом, Э. К. Шаховым, В. М. Шляндиным, и зарубежными учеными J. C. Candy, R. M. Gray, R. Gregorian, S. Hein, W. Kester, S. Norsworthy, R. E. Schreier, G. C. Temes и др. Важное место занимает научная школа профессора Эдуарда Константиновича Шахова (ПГУ, Пенза), труды которого легли в основу научных работ нескольких поколений ученых.
Благодаря развитию электронной компонентной базы в 80-х годах 20-го века, получил развитие и широкое практическое внедрение вариант ИАЦП, основанный на принципе SA-модуляции, так называемый подкласс ИД-АЦП, относящиеся к отдельному подклассу преобразователей напряжения S-архитектуры.
У данного подкласса имеется ряд ограничений: сложность привязки результата измерения к времени преобразования; наличие методической составляющей погрешности от краевых эффектов; эффект переноса спектра, и как
следствие, необходимость ограничения высокочастотных компонентов спектра сигналов.
Преодолеть указанные ограничения возможно путём использования структурно-алгоритмических решений построения ИАЦП, основанных на других видах импульсной модуляции в промежуточном преобразовании. Одним из перспективных решений, указанных выше ограничений, является подкласс ИАЦП, который основан на использовании принципа широтно-импульсной модуляции в промежуточном преобразовании, так называемый ХТ-АЦП. Их достоинством по сравнению с ХД-АЦП является возможность полностью исключить или существенно упростить цифровой фильтр-дециматор. Возможны варианты широтно-импульсной модуляции, которые позволяют существенно упростить структуру, снизить энергопотребление, повысить технологичность. В настоящее время наблюдается недостаточность развития, как теории, так и практики построения прецизионных ИАЦП. Поэтому, разработка и исследование ИАЦП Х-архитектуры является актуальной задачей. Применение новых структурно-алгоритмических решений ИАЦП позволит улучшить метрологические характеристики измерительных систем в традиционных областях применения ХД-АЦП: хроматография, медицина (электрокардиография, электроэнцефалография), геология (сейсмические исследования), технические измерения.
Цель работы: исследование и разработка измерительных интегрирующих аналого-цифровых преобразователей ХТ-архитектуры, использующих в промежуточном преобразовании широтно-импульсную модуляцию.
Задачи исследования:
1. Исследование тенденций развития и систематизация ХД-АЦП, как «технического аналога» для решения задачи совершенствования интегрирующих преобразователей информации с передискретизацией сигнала.
2. Разработка экспертной системы поддержки принятия решений при выборе преобразователя информации ХД-архитектуры с заданными параметрами.
3. Исследование влияния параметров аналоговых компонентов на инструментальную составляющую погрешности преобразования ХД-АЦП для выявления критических элементов.
4. Исследование, совершенствование и реализация структурно-алгоритмических решений компенсации погрешности от краевых эффектов, разработка эффективных алгоритмов имитационного моделирования ХТ-АЦП.
5. Разработка методики проектирования ИАЦП ХТ-архитектуры с доведением характеристик до уровня технического аналога, при условии ограничения номенклатуры используемых компонентов, в том числе и зарубежных.
6. Техническая реализация ХТ-АЦП.
Объектом исследования являются интегрирующие аналого-цифровые преобразователи напряжения с промежуточной импульсной модуляцией (широтно-импульсной ХТ-АЦП и импульсно-разностной ХД-АЦП).
Предмет исследований:
- структуры и алгоритмы ИАЦП. Методы компенсации погрешности от краевых эффектов;
- имитационные модели ХТ-АЦП; однобитных ХД-модуляторов высоких порядков; аналого-цифровых фильтров-дециматоров.
Методы исследований включают в себя элементы теории дискретизации и квантования аналоговых сигналов, теории линейных импульсных систем, аналоговой и цифровой фильтрации, системы моделирования Ма^аЬ^тиНпк Я2014Ь и N1 Ми1^т 12.0, системы программирования Qt-5 С++ и SQLite.
Научная новизна работы:
1. Разработаны элементы теории и проектирования ИАЦП с передискретизацией сигнала для структурно-алгоритмических решений с заданными техническими характеристиками и замещения «технического аналога» из класса ХД-АЦП.
2. Раскрыт механизм возникновения погрешности от краевых эффектов для
ИАЦП с передискретизацией сигнала, ограничивающих возможность
9
синхронизации результата преобразования в многоканальных ИИС, предложены эффективные оригинальные методы структурно-алгоритмической компенсации погрешности от краевых эффектов, основанные на теории математической эквивалентности описания процесса возникновения ошибок квантования во временной и амплитудной форме.
3. Решена задача выявления элементов ИАЦП с передискретизацией сигнала, определяющих метрологические характеристики ИИС, основанная на использовании теории непрерывно-дискретных систем и разработанной имитационной Ми1^т-модели.
Практическое значение результатов работы:
1. Разработана база данных ХД-АЦП, производимых ведущими мировыми компаниями, и экспертная система поддержки принятия решений для выбора оптимальной структуры преобразователя информации ХД-архитектуры на этапе проектирования по заданным метрологическим и эксплуатационным характеристикам.
2. Разработан комплекс имитационных моделей в средах N1 МиШв1ш, Ма^аЬ^тиНпк, позволяющих проводить качественный и количественный анализ методической составляющей погрешности от краевых эффектов и инструментальной составляющей погрешности для структур ХТ-АЦП на этапе выбора структурно-технических решений
3. Решена задача импортозамещения при реализации ХТ-АЦП с учётом ограничения использования зарубежных электронных компонентов.
На защиту выносятся:
1. Структурно-алгоритмическое решение ХТ-АЦП с учетом особенностей использования в составе ИИС.
2. Структурно-алгоритмические решения ХТ-АЦП с аналоговой, цифровой и комбинированной способами компенсации погрешности от краевых эффектов.
3. Методика анализа инструментальной составляющей погрешности ХД-АЦП высокого порядка.
4. Структурно-алгоритмическое решение 16-разрядного ХТ-АЦП с малой погрешностью дискретизации с учетом возможности реализации в интегральном исполнении.
5. Экспертная система поддержки принятия решений при выборе преобразователя информации ХД-архитектуры с интегрированной базой данных коммерческих ХД-АЦП.
Внедрение результатов исследования.
Теоретические и практические результаты диссертационной работы автора использованы АО «НИИЭМП» при разработке АЦП-ВТ в рамках выполнения Государственного контракта №4684 от 21.03.2016г, что подтверждается актом внедрения.
Справкой подтверждается использование в образовательном процессе ФГБОУ ВО «Пензенский государственный университет» (г.Пенза) следующих результатов диссертационной работы, представленной на соискание ученой степени кандидата технических наук:
- модели интегрирующих АЦП с промежуточным преобразованием в ШИМ сигнал в программных средах МаЙаЬ и N1 Ми1^т при проведении практических и лабораторных занятий по дисциплинам «Схемотехника» и «Системы электроники и автоматики автомобилей и тракторов» образовательной программы бакалавриата 13.03.02 «Электроэнергетика и электротехника» (специализация «Электронные и электрические системы автомобилей и тракторов»);
- база данных «Преобразователи информации с сигма-дельта архитектурой» при проведении практических занятий по дисциплине «Схемотехника» и подготовке выпускной квалификационной работы по образовательной программе бакалавриата 13.03.02 «Электроэнергетика и электротехника» (специализация «Электронные и электрические системы автомобилей и тракторов»).
Апробация работы. Основные положения диссертационной работы
докладывались и обсуждались на научно-технических конференциях
профессорско-преподавательского состава Пензенского государственного
университета (Пенза, 2012-2014, 2017), а также на ряде конференций и
11
симпозиумов: Межвузовская научно-практическая конференция «Будущее в руках молодежи» (Пенза, 2012); Всероссийская научно-практическая конференция «Модели, системы, сети в экономике, технике, природе и обществе» (Пенза, 2012); Международный симпозиум «Надежность и качество» (Пенза, 2013, 2014, 2017); Международная научно-практическая конференция «Фундаментальные и прикладные исследования в современном мире» (Санкт-Петербург, 2013); Международная научно-практическая конференция «The 5th International Workshop on Computer Science and Engineering» (Москва, 2015); Международная научно-практическая конференция «The 4th International Conference on the Transformation of Education» (Лондон, 2016); Международная научно-практическая конференция «The 8th International Conference «Science and Technology»» (Лондон, 2017); Международная научно-практическая конференция «Sibcon 2017» (Астана, 2017); Международная научно-практическая конференция «MWENT 2018» (Москва, 2018), X Международная научная конференция «Инновационные технологии, экономика и менеджмент в промышленности» (Волгоград, 2021).
Публикации. По теме диссертации опубликовано 27 печатных работ, в том числе 10 статей в изданиях, рекомендованных ВАК. Опубликовано 3 статьи в изданиях, индексируемых наукометрической базой SCOPUS. Получены 2 свидетельства РФ о государственной регистрации программы для ЭВМ и 1 патент РФ.
Структура и объем диссертации. Диссертация состоит из введения, четырех глав, заключения, списка использованных источников из 96 наименований, трёх приложений. Объём работы: 169 страниц текста, включая 51 рисунок и 19 таблиц. Приложения к диссертации занимают 26 страниц.
Глава 1. Классификационные признаки и тенденции развития Х-АЦП
1.1. Общие сведения
Известна обобщённая структурная схема ИИС [1], представленная на рисунке 1.1.
Рисунок 1.1 - Обобщённая структурная схема ИИС
Обобщённая структурная схема ИИС включает следующие функциональные блоки:
УУ - устройство управления;
ИУ - исполнительные устройства;
ОИ - объект исследования;
Дг- - множество датчиков (/ - номер датчика);
К - коммутатор;
НП - нормирующий преобразователь;
АЦП - аналого-цифровой преобразователь;
ЦАП - цифро-аналоговый преобразователь;
ЦФ - цифровой фильтр;
УИР - устройства индикации и регистрации.
Функциональные узлы обобщённой структурной схемы ИИС (рисунок 1.1) между собой включаются средствами стандартных интерфейсов, в которых находятся системы шин и системы интерфейсных узлов. Узлы интерфейса, которые содержатся в аналоговых блоках, в основном нужны для приёма сигналов
управления и передачи другим блокам информации о состоянии связанных с ними блоков. Таким образом передаются команды управления для изменения режима работы, а также для подключения заданного участка блоков используя коммутатор [1].
УУ формирует сигналы управления, а также принимает информацию, поступающую от функциональных узлов схемы, затем направляет сигналы управления на ИУ для задания воздействия на ОИ. Воздействия могут быть, как вариант, в виде электрических, механических, тепловых, оптических, гидравлических, акустических величин. Воздействия могут быть организованы для создания условий проведения эксперимента или для уравновешивания величин, действующих на входы датчиков. В этом случае система называется замкнутой с компенсационной ОС, а формируемые воздействия -компенсирующими величинами [1].
В качестве блока НП могут быть применены нормирующие преобразователи аналоговых сигналов (масштабные преобразователи, преобразователи вида модуляции), аналоговые вычислительные устройства, устройства сравнения аналоговых сигналов [1].
К устройствам индикации и регистрации относятся формирователи кодо-импульсных сигналов, различные печатающие устройства вроде принтеров, устройства чтения и записи информации на носители вроде дисководов, различные накопители информации, дисплеи, сигнализаторы, цифровые индикаторы [1].
Цифровой фильтр, устройства индикации и регистрации, устройство управления могут быть функционально заменены ПК.
На этапе формирования технического задания разработки ИИС к АЦП в её
составе предъявляются различные конструктивные и функциональные
требования. Одним из основных требований к многоканальным ИИС выступает
синхронизация во времени моментов измерения физических величин по всем
каналам [2]. Это предполагает необходимость применения в составе ИИС
аналого-цифровых преобразователей с привязкой результатов измерения к
14
моменту измерения, что нереализуемо с помощью ХД-АЦП. Поэтому разработка прецизионных преобразователей напряжения Д-архитектуры, обладающих данным свойством, выступает очень важной задачей.
Базовая идея, являющаяся основой как Д-модуляции, так и ХД-модуляции, заключается в использовании обратной связи, увеличивающей эффективность преобразования абстрактного квантователя [3, 4]. Вариант Д-модулятора разработан и предложен в 1952 году [5]. Дельта-модулятор включал в свою структуру однобитный квантователь (обычный компаратор) в прямом канале преобразования сигнала и полосового фильтра (чаще всего обычного интегратора Миллера) в канале обратной связи. Информативный сигнал и ошибка квантования вычитались из преобразуемого сигнала, проходя через полосовой фильтр. Идея Д -модулятора зарегистрирована патентом в 1954 году [6]. Зарегистрированная система работала по принципу выделения, и дальнейшего вычитания из преобразуемого сигнала ошибки квантования. Система, содержащая непрерывный интегратор как циклический фильтр и триггер Шмидта как квантователь имела полосу сигнала около 5кГц, и в ней достигалось около 40дБ SNR. Подробное исследование данной системы и методы её улучшения с целью оптимизации метрологических характеристик проведены в 1962 году [7]. В работе предложена модификация системы путём добавления в цепь её обратной связи полосового фильтра с конечной импульсной характеристикой (КИХ). В результате такой модификации система стала способна предсказать и компенсировать дальнейшую ошибку квантователя. Так, к результату преобразования сигнала прибавлялась ошибка квантования, обработанная КИХ-фильтром [3, 4].
Несколько позднее появилась структура сигма-дельта модулятора, которая
стала продолжением развития концепции дельта-модулятора. Структура
предложена разработчиками из Японии в 1964 году [8]. Поскольку структура
включала в себя дельта-модулятор и интегратор Миллера, разработчики дали ей
название - дельта-сигма модулятор, в которой часть "сигма" предполагает
суммирование, которое осуществляется интегратором Миллера. В дальнейшем
авторы множества научных работ начали часто его называть сигма-дельта
15
модулятором, сейчас в литературе и работах множества различных авторов встречаются оба названия [3, 4].
Существует возможность использования в Х-архитектуре других видов импульсной модуляции помимо Д-модуляции для решения задач совершенствования алгоритмов интегрирующего аналого-цифрового преобразования, однако недостаточность теории и практики не позволяет оценить потенциальные достоинства данного подхода.
В дальнейшие годы концепция сигма-дельта преобразования сигналов получила широкое распространение в различных областях применения, а её теоретические основы значительно обогатились. Использование каскадирования нескольких интеграторов в прямом канале преобразования сигнала предложено в работе 1977 года [9]. Применение модуляторов высоких порядков (порядок модулятора соответствует количеству используемых интеграторов в прямом канале преобразования) позволило значительно повысить характеристики и качество преобразования в целом, но вызвало появление нескольких иных проблем, одной из главных среди которых можно назвать проблему устойчивости
[3, 4].
Несколько лет спустя, Риччи предложил использовать циклические фильтры более высокого порядка [10], и в 1986 г. Адамс описал 18-битный AZ-АЦП с использованием непрерывного циклического фильтра третьего порядка и четырехбитный квантователь с подстроечными резисторами, исполнявшими роль ЦАП [11]. Полезная теория, анализ и техника построения были разработаны Кэнди и его сотрудниками в лабораториях Белла [3, 4, 12-16].
В 1986 году Кэнди и Хюйн первыми разработали структуру устойчивого
двухкаскадного ДХ-модулятора - MASH (multi stage noise shaping) [15, 17]. В
двухкаскадном ДХ-модуляторе сигнал на выходе ДХ-модулятора первого порядка
вместе с ошибкой квантования проходит обработку вторым ДХ-модулятором в
кодовую последовательность выходной информации. Затем цифровые
последовательности информации с выходов обоих модуляторов проходят
преобразование цифровой частью структуры, которая своим алгоритмом
16
преобразования позволяет отделить ошибку квантования второго модулятора и значительно, либо даже полностью устранить ошибку квантования первого модулятора. MASH впервые применили Хайяши и др. в АН-АЦП в 1986 г [3, 4, 18].
Другая активно рассматриваемая многими авторами возможность повышения качества обработки входного сигнала - использование многоуровневого квантователя в структуре сигма-дельта модулятора. Важным сопутствующим ограничением возможности применения таких структур выступает необходимость добавления многоразрядных ЦАП (разрешающая способность которого определяет уровень квантования) в опорный канал преобразования, которые вызывают значительные ухудшения линейности преобразования АЦП в целом [3, 4, 19, 20].
Использование многобитного внутреннего квантователя в AZ-системе с цифровой коррекцией линейности было предложено Ларсеном и др. [21] в 1988 г.; использование динамического согласования (рандомизации, перемешивания) было также введено Кэрли и Кенней для внутренних ЦАП в составе AZ-ЛЦП в 1988 г. [22]. Различные алгоритмы подавления рассогласования были предложены последовательно Люнгом и Сатэрья [23], Стори [24], Рэдманом-Уайтом и Борнером [25], Джексоном [26], Адамсом и Кваном [27], Бэйрдом и Файзом [28], Шрэйером и Зангом [29], Гэлтоном [30]. Полосовые AZ-модуляторы были разработаны для потенциального применения в беспроводных коммуникациях и появились в поздних 1980-х [31-33]. Сейчас активно ведутся научные работы по разработке полосовых сигма-дельта преобразователей информации, необходимость в них увеличивается из-за большой потребности применения в устройствах обработки сигналов для телекоммуникационных технологий [3, 4].
Спустя около трёх десятилетий теоретические основы концепции сигма-дельта модуляции начали находить массовое практическое применение в комплексных коммерческих продуктах. Можно сказать, вплоть до середины 80-х годов уровень технологического развития полупроводников не позволял
практически реализовать сигма-дельта АЦП в интегральной форме. В большем счёте из-за сложности практической реализации в интегральной форме цифрового фильтра-дециматора [3, 4, 34].
Для проведения большинства измерений часто не требуется АЦП со скоростью преобразования, которую дают параллельные АЦП, зато необходима большая разрешающая способность [3, 4]. В 2010г корпорацией Texas Instruments начали выпускаться микросхемы с заявленной разрешающей способностью 32 бита (при этом эффективная разрядность 31 бит) [35].
Структурная схема сигма-дельта АЦП первого порядка приведена на рисунке 1.2. Аналоговый сигнал поступает на интегратор, выход которого подсоединен к компаратору, который в свою очередь присоединен к 1 -разрядному ЦАП в обратной связи. Однобитный ЦАП часто включает в свою структуру двухпозиционный аналоговый ключ и подключенный к нему источник опорного напряжения. Сумматор, интегратор, компаратор, однобитный ЦАП представляют собой ХД-модулятор, к выходу которого подключен цифровой фильтр-дециматор. В результате преобразования входного аналогового сигнала на выходе цифрового фильтра получается код [3, 4].
Рисунок 1.2 - Функциональная схема ХД-АЦП первого порядка
Очень важным достоинством сигма-дельта АЦП выступает то, что все его внутренние элементы могут быть выполнены интегральным способом на площади одного кремниевого кристалла по КМОП-технологии [36].
1.2. Описание классификационных признаков
В настоящее время существует множество всевозможных схемотехнических решений ХД-модуляторов. Всё многообразие существующих схемотехнических решений интегральных микросхем ХД-модуляторов можно классифицировать по трём структурным [37]. Рассмотрим их более подробно, воспользовавшись составленным специально для данной цели классификационным графом ХД-модуляторов, который иллюстрируется рисунком 1.3.
Рисунок 1.3 - Классификационный граф ХД-модуляторов
Все существующие структуры ХД-модуляторов являются замкнутыми, иными словами, в них включен опорный канал с действующей отрицательной обратной связью (ООС). Стоит отметить, что некоторые схемотехнические решения выделяются топологическим многообразием. Все существующие вариации ХД-модуляторов можно разграничить, согласно первому признаку представленного графа (рисунок 1.3), на одноконтурные и многоконтурные. Можно с уверенностью сказать, что количество контуров в значительной степени влияет на соотношение сигнал/шум квантования [37].
По возможности обеспечения ХД-модулятором высокой линейности преобразования, указанные выше структурные решения, одноконтурного и
многоконтурного ХД-модуляторов схожи между собой. Но они существенно отличаются по возможности повышения эффективного разрешения. Задача вытеснения спектра шума квантования за пределы полосы частот информативного сигнала достигается увеличением порядка ХД-модулятора, путём введения в прямой канал дополнительных интеграторов [37].
В качестве второго наиболее важного классификационного признака стоит выделить вид используемого интегратора (рисунок 1.3) в структуре ХД-модулятора. Все разновидности ХД-модулятора реализуемы с непрерывными либо непрерывно-дискретными интеграторами (рисунок 1.4) в их составе. Непрерывные интеграторы (классический интегратор Миллера) применяются во всём многообразии решений ИАЦП [38]. Непрерывно-дискретные интеграторы широко применяются в ХД-архитектуре, и создаются на основе переключаемых конденсаторов [37, 39].
а)
б)
Рисунок 1.4 - Непрерывный интегратор (а) и сигма-дельта модулятор с непрерывно-дискретным интегратором (б)
В качестве третьего наиболее важного классификационного признака стоит выделить количество уровней квантователя. Все существующие схемотехнические решения ХД-модулятора по указанному критерию стоит классифицировать на однобитные и многобитные. При использовании однобитного квантователя, ЦАП в составе опорного канала ХД-модулятора реализует только один уровень квантования, эта особенность позволяет получить более линейную характеристику преобразования из-за естественной эквивалентности квантов уравновешивающего сигнала (сигнала опорного канала преобразования с выхода ЦАП). В ином варианте схемотехнического решения, так как линейность характеристики преобразования ХД-модулятора зависит от линейности характеристики преобразования ЦАП в опорном канале, для достижения 16-битного преобразования применяется лазерная подгонка, которая в значительной степени усложняет и, в связи с этим, замедляет производство мультибитного ХД-АЦП. Однако, мультибитные ХД-АЦП широко применяются в различных звуковых ХД-ЦАП, в которых скремблированием битов достигается нужная линейность характеристики преобразования и, одновременно с этим, вытеснение шума квантования из полосы частот полезного сигнала [37, 39, 40].
Чтобы устранить погрешность преобразования, вызванную неравенством
ступеней ЦАП, применяются различные структурно-алгоритмические решения.
Эти специальные методы устранения погрешности преобразования значительно
21
усложняют практическую реализацию [37, 39]. Несмотря на указанный недостаток, существует явная закономерность расширяющегося использования мультибитных ХД-модуляторов, поскольку данный вариант структурного решения даёт возможность расширения частотного диапазона информативного сигнала без увеличения значения коэффициента передискретизации. Помимо этой особенности данного структурного решения, можно наблюдать значительную устойчивость осуществляемого преобразования [37].
Описанные вариации ХД-модуляторов разделяются по множеству критериев, среди них - характерные черты архитектур, характеристик и соединений функциональных узлов в формате комплексного решения. Практическое использование получили и всевозможные схемотехнические решения ХД-модуляторов, как вариант, с последовательным и параллельным соединеним пары ХД-модуляторов. Последовательное соединение пары ХД-модуляторов чаще всего называют каскадным. Стоит отметить, что последовательное соединение интеграторов в прямом канале преобразования ХД-модуляторов значительно улучшают качество помехоподавления, поскольку передаточная функция многоконтурного архитектурного решения эквивалентна произведению передаточных функций входящих структурных узлов. Схожее утверждение действительно и для последовательного включения нескольких ХД-модуляторов - увеличивается эффективность устранения шумов квантования при преобразовании. Архитектурные решения с использованием параллельного соединения нескольких ХД-модуляторов дают возможность уменьшить значение коэффициента передискретизации и, в том числе, устранить потребность передискретизации полностью без изменения частотного диапазона информативного сигнала [37].
Похожие диссертационные работы по специальности «Другие cпециальности», 00.00.00 шифр ВАК
Методы автоматизированного проектирования цифровой части АЦП последовательного приближения и сигма-дельта АЦП на основе высокоуровневых моделей2023 год, кандидат наук Скрипниченко Максим Николаевич
Совершенствование цифровых фильтров в составе дельта-сигма аналого-цифровых преобразователей для измерительных каналов2003 год, кандидат технических наук Каулио, Владимир Валерьевич
Разработка эффективных сигма-дельта АЦП повышенной разрядности за счет снижения внутренних шумов2005 год, кандидат технических наук Лаврентьев, Максим Валерьевич
Анализ и развитие методов аналого-цифрового преобразования на основе Дельта-Сигма модуляции1998 год, кандидат технических наук Гублер, Глеб Борисович
Сигма-дельта модуляторы для высокоразрядных АЦП звукового диапазона2005 год, кандидат технических наук Самонов, Андрей Александрович
Список литературы диссертационного исследования кандидат наук Коротков Алексей Александрович, 2023 год
Список использованных источников
1. Цапенко, М. П. Измерительные информационные системы. Структуры и алгоритмы, системотехническое проектирование.: Учебное пособие для вузов - 2-е. изд. / М. П. Цапенко. - М.: Энергоатомиздат. - 1985. - 438 с.
2. Орнатский, П. П. Автоматические измерения и приборы / П. П. Орнатский. - Киев: Головное издательство издательского объединения «Вища школа». - 1986. - 504 с.
3. Самонов, А. А. Сигма-дельта модуляторы для высокоразрядных АЦП звукового диапазона: Дис. ... канд. наук / А. А. Самонов. - М.: 2005.
4. Добровольский, О. А. Разработка цифровых ядер звуковых сигма-дельта ЦАП и АЦП: Дис. ... канд. наук / О. А. Добровольский. - М.: 2005.
5. de Jager, F. Delta modulation - a method of PCM transmission using the one unit code / F. de Jager // Philips Res. Rep. - 1952. - Vol. 7. - pp.442-466.
6. Cutler, C. C. Transmission Systems Employing Quantization / C. C. Cutler // U. S. Patent № 2927962. - 1960. - Mar. 8 (filed Apr. 26, 1954).
7. Spang, H.A. Reduction of quantizing noise by use of feedback / H. A. Spang, P. M. Schultheiss // IRE Trans. on Commun. Syst. - 1962. - Dec. - pp.373-380.
8. Inose, H. A telemetering system code modulation - Д-Х modulation / H. Inose, H. Yasuda, J. Murakami // IRE Trans. Space Elect. Telemetry. - 1962. - Vol. 8. - pp.204-209.
9. Ritchie, G. R. Higher order interpolation analog to digital converters: Ph.D.Dissertation. - University of Pennsylvania. - 1977.
10. Ritchie, G. R. Interpolative digital to analog converters / G. R. Ritchie, J. C. Candy, W. H. Ninke // IEEE Transactions on Communications. - 1974. - Vol. 22. - № 11. - pp.1797-1806.
11. Adams, R. W. Design and implementation of an audio 18-bit analog-to-digital converter using oversampling techniques / R. W. Adams // Journal of the Audio Engineering Society. - 1986. - Vol. 34. - № 3. - pp.153-166.
12. Candy, J. C. A use of limit cycle oscillations to obtain robust analog-to-digital converters / J. C. Candy // IEEE Transactions on Communications. - 1974. -Vol. 22. - № 3. - pp.298-305.
13. Candy, J. C. A voiceband codec with digital filtering / J. C. Candy, B. A. Wooley, O. J. Benjamin // IEEE Transactions on Communications. - 1981. - Vol. 29. -№ 6. - pp.815-830.
14. Candy, J. C. The structure of quantization noise from sigma-delta modulation / J. C. Candy, O. J. Benjamin // IEEE Transactions on Communications. -1981. - Vol. 29. - № 9. - pp.1316-1323.
15. Candy, J. C. A use of double integration in sigma-delta modulation / J. C. Candy // IEEE Trans.Commun. - 1985. - Vol. 33. - № 3. - pp.249-258.
16. Candy, J. C. Decimation for sigma-delta modulation / J. C. Candy // IEEE Transactions on Communications. - 1986. - Vol. 34. - № 1. - pp.72-76.
17. Candy, J. C. Double integration for digital-to-analog conversion / J. C. Candy, A. Huynh // IEEE Transactions on Communications. - 1986. - Vol. 34. - № l. -pp.77-81.
18. Hayashi, T. A multistage delta-sigma modulator without double integration loop / T. Hayashi, Y. Inabe, K. Uchimura, A. Iwata // ISSCC Digest of Technical Papers. - 1986. - Feb. - pp.182-183.
19. Lee, W. L. A novel higher order interpolative modulator topology for high resolution oversampling A/D converters: Master's Thesis. - Massachusetts Institute of Technology. - 1982.
20. Chao, H. A higher order topology for interpolative modulators for oversampling A/D conversion / H. Chao, S. Nadeem, W. L. Lee, G. Sodini // IEEE Trans.Circuits Syst. - 1990. - Vol. 37. - pp.309-318.
21. Larson, L. E. Multi-bit oversampled SA A/D converter with digital error correction / L. E. Larson, T. Cataltepe, G. C. Temes // Electronics Letters. - 1988. -Vol. 24. - Aug. - pp.1051-1052.
22. Carley, R. A 16-bit 4-th order noise-shaping D/A converter / R. Carley, J. Kenney // IEEE Proceedings of the Custom Integrated Circuits Conference. - 1988. -pp.21.7.1-21.7.4.
23. Leung, B. H. Multi-bit D-A A/D converter incorporating a novel class of dynamic element matching / B. H. Leung, S. Sutarja // IEEE Transactions on Circuits and Systems II. - 1992. - Vol. 39. - Jan. - pp.35-51.
24. Story, M. J. Digital to analogue converter adapted to select input sources based on a preselected algorithm once per cycle of a sampling signal / M. J. Story // U.S. patent number 5138317. - 1992. - Aug. 11.
25. Redman-White, W. Improved dynamic linearity in multi-level DA converters by spectral dispersion of D/A distortion products / W. Redman-White, D. J. L. Boumer // IEE Conference Publication European Conference on Circuit Theory and Design. -1989. - Sept. 5-8. - pp.205-208.
26. Jackson, H. S. Circuit and method for cancelling nonlinearity error associated with component value mismatches in a data converter / H. S. Jackson // U.S. patent number 5221926. - 1993. - June 22.
27. Adams, R. W. Data-directed scrambler for multi-bit noise-shaping D/A converters / R. W. Adams, T. W. Kwan // U.S. patent number 5404142. - 1995. - April 4.
28. Baird, R. T. Linearity enhancement of multibit AD A/D and D/A converters using data weighted averaging / R. T. Baird, T. S. Fiez // IEEE Transactions on Circuits and Systems II. - 1995. - Vol. 42. - № 12. - pp.753-762.
29. Schreier, R. Noise-shaped multibit D/A converter employing unit elements / R. Schreier, B. Zhang // Electronics Letters. - 1995. - Vol. 31. - № 20. - Sept. 28. -pp.1712-1713.
30. Galton, I. Noise-shaping D/A converters for AD modulation / I. Galton // IEEE Transactions on Circuits and Systems II, Proceedings of the 1996 IEEE International Symposium on Circuits and Systems. - 1996. - Vol. 1. - May. - pp.441444.
31. Pearce, T. H. Analogue to digital conversion requirements for HF radio receivers / Т. H. Pearce, A. C. Baker // Proceedings of the IEE Colloquium on system aspects and applications of ADCs for radar, sonar and communications. - London: 1987. - Nov. - Digest No 1987/92.
32. Gailus, P. H. Method and arrangement for a sigma delta converter for bandpass signals / P. H. Gailus, W. J. Turney, F. R. Yester, Jr. // US Patent number 4857928. - 1989. - Aug.
33. Schreier, R. Bandpass sigma-delta modulation / R. Schreier, W. M. Snelgrove // Electronics Letters. - 1989. - Vol. 25. - № 23. - Nov. 9. - pp.1560-1561.
34. Leslie, C. An improved sigma-delta modulator architecture / C. Leslie, B. Singh //Proceedings of the 1990 IEEE Int. Symp. Circuits Syst. - 1990. - Vol. 1. -pp.372-375.
35. Products for Analog to Digital Converter. [Электронный ресурс]. - Режим доступа: http://www.ti.com/lsds/ti/data-converters/analog-to-digital-converter-products.page
36. Как работают аналогово-цифровые преобразователи и что можно узнать из спецификации на АЦП? [Электронный ресурс]. - Режим доступа: http://www.efo.ru/doc/Silabs/Silabs.pl72089
37. Ашанин, В. Н. ХД-аналого-цифровые преобразователи: основы теории и проектирования / В. Н. Ашанин, Б. В. Чувыкин, Э. К. Шахов. - Пенза: Информационно-издательский центр ПензГУ. - 2009. - 188 с.
38. Ашанин, В. Н. Теория интегрирующего аналого-цифрового преобразования / В. Н. Ашанин, Б. В. Чувыкин, Э. К. Шахов. - Пенза: Информационно-издательский центр ПензГУ. - 2009. - 214 с.
39. Schreier, R. Understanding delta-sigma data converters / R. Schreier, G. C. Temes. - New Jersey: IEEE Press. - 2008. - 446 p.
40. Кестер, У. Аналого-цифровое преобразование: пер. с англ./ У. Кестер. -М.: Техносфера. - 2007. - 1015 с.
41. Шлыков, Г.П. Характеристики измерительных и сигнальных аналого-
цифровых преобразователей / Г.П. Шлыков // Цифровая информационно-
136
измерительная техника: межвузовский сборник научн. трудов. - Вып. 11. - Пенза: изд-во Пенз. политехн. института. - 1981. - С.26-29.
42. АЦП. [Электронный ресурс]. - Режим доступа: http://www.analog.com/ru/analog-to-digital-converters/ad-converters/products/index.html
43. Precision Sigma-Delta ADCs. [Электронный ресурс]. - Режим доступа: http://www.maximintegrated.com/products/data_converters/adcs/precision-sd-adc.cfm
44. Ашанин, В. Н. Проблемы теории анализа и синтеза средств измерений гетерогенной структуры / В. Н. Ашанин // Датчики и системы. - 2011. - №7. - С.2-7.
45. Ашанин, В. Н. Классификация измерительных преобразователей информации непрерывно-дискретной системы гетерогенной структуры / В. Н. Ашанин // Известия ВУЗов: Поволжский регион. Технические науки. - 2011. - № 3 (19). - С.98-104.
46. Коротков, А. А. Развитие и тенденции в производстве преобразователей информации с ХД-архитектурой / В. Н. Ашанин, Б. В. Чувыкин,
A. А. Коротков, И. А. Сидорова // Сборник материалов IV Международная научно-практическая конференция "Фундаментальные и прикладные исследования в современном мире" 24-25 декабря 2013 г. Санкт-Петербург: Информационно-издательский учебно-научный центр «Стратегия будущего». -2013. - С.111-114.
47. Коротков, А.А. Анализ состояния и тенденций производства интегральных преобразователей с информации ХД-архитектуры / В. Н. Ашанин, Б.
B. Чувыкин, А. А. Коротков, И. А. Сидорова // Известия ВУЗов: Поволжский регион. Технические науки. - № 1 (29). - 2014. - С.26-35.
48. Ашанин, В. Н. Виды интегрирующих аналого-цифровых преобразователей / В. Н. Ашанин, Б. В. Чувыкин, Э. К. Шахов // Измерения. Контроль. Автоматизация: состояние, проблемы, перспективы. - 2009. - № 3 -
C.47-51.
49. Ашанин, В. Н. Разделение функций - основной принцип совершенствования средств измерений / Э. К. Шахов, В. Н. Ашанин // Датчики и системы. - 2006. - № 7. - С.2-7.
50. Коротков, А. А. Анализ инструментальной погрешности ХД-модулятора с помощью компьютерного моделирования / А. А. Коротков / В кн.: Надежность и качество. Труды международного симпозиума. Пенза, ПДНТП. -2013. - С.190-194.
51. Коротков, А. А. Определение инструментальной составляющей погрешности однобитных ХД-модуляторов на основе принципа разделения функций / В. Н. Ашанин, А. А. Коротков, Б. В. Чувыкин / В кн.: Надежность и качество. Труды международного симпозиума. Пенза, ПДНТП. - 2014. - С.50-52.
52. Шахов, Э. К. Интегрирующие развертывающие преобразователи / Э. К. Шахов, В. Д. Михотин. - М.: Энергоатомиздат. - 1986. - 144 с.
53. Ашанин, В. Н. Особенности оценки погрешности измерения преобразователей информации с передискретизацией сигнала / В. Н. Ашанин, Б. В. Чувыкин // Современные информационные технологии. Выпуск 10. Сб. статей международной НТК. Пенза, ПГТА. - 2009. - С. 10-11.
54. Ашанин, В. Н. Реализация концепций ХД-АЦП в интегрирующих АЦП с другими видами импульсной модуляции / Э. К. Шахов, В. Н. Ашанин, А. И. Надеев // Известия ВУЗов: Поволжский регион. - 2006. - № 6. - С.226-236.
55. Надеев, А. И. Сравнительный анализ интегрирующих АЦП с промежуточным преобразованием в сигналы широтной и разностной импульсной модуляции / А. И. Надеев // Информационно-измерительная техника. Межвузовский сборник научных трудов, Пенза, Издательство Пензенского государственного университета. - Выпуск 31. - 2007. - С.99-106.
56. Ашанин, В. Н. Структурно-алгоритмические методы компенсации погрешности от краевых эффектов в интегрирующих АЦП / В. Н. Ашанин // Известия ВУЗов: Поволжский регион. Технические науки. - 2009. - № 4. - С.82-92.
57. Коротков, А. А. Разработка интегрирующего аналого-цифрового преобразователя с промежуточной широтно-импульсной модуляцией сигнала / В. Н. Ашанин, А. А. Коротков / В кн.: Надежность и качество. Труды международного симпозиума. - Пенза. - 2017. - Т. 2. - С.153-156.
58. Коротков, А. А. Компьютерное исследование сигма-Т АЦП с аналого-цифровой компенсацией погрешности от краевых эффектов / В. Н. Ашанин, А. А. Коротков // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2017. - № 4 (44). - С.55-67.
59. ОАО НПЦ «ЭЛВИС». [Электронный ресурс]. - Режим доступа: http: //www. multicore. ru/download.php?file=mc/data_sheets/ELVEES_catalogue. pdf
60. ОАО «НИИЭТ». [Электронный ресурс]. - Режим доступа: http://www.niiet.ru/chips/dais?id=166
61. Ашанин, В. Н. Патент 2291559 Российская Федерация. Способ интегрирующего аналого-цифрового преобразования напряжения / Шахов Э. К., Ашанин В. Н. - 2007. - Бюл № 1.
62. Коротков, А. А. Разработка сигма-Т аналого-цифрового преобразователя / В. Н. Ашанин, А. А. Коротков // Современные научные исследования и разработки. - Научный центр «Олимп». - Астрахань. - 2017. - № 5 (13). - С.38-43.
63. Ашанин, В. Н. Способ интегрирующего аналого-цифрового преобразования напряжения / Э. К. Шахов, В. Н. Ашанин // Патент на изобретение РФ № 2303327. - БИ № 20. - 2007.
64. Коротков, А. А. Реализация алгоритма ХТ-АЦП с аналоговой компенсацией погрешности от краевых эффектов / В. Н. Ашанин, А. А. Коротков, С. И. Торгашин // Известия высших учебных заведений. Поволжский регион. Технические науки. - 2017. - № 2 (42). - С.66-78.
65. Ашанин, В. Н. 1А-АЦП: анализ погрешности от краевых эффектов/ В. Н. Ашанин, Б. В. Чувыкин, Э. К. Шахов // Известия ВУЗов. Поволжский регион. Технические науки. - 2007. - № 3. - С.80-90.
66. Ашанин, В. Н. Теоретическое и экспериментальное исследование методов совершенствования интегрирующих аналого-цифровых преобразователей : дис. к.т.н. / В. Н. Ашанин - Л.: ЛПИ. - 1982. - 232 с.
67. Коротков, А. А. Анализ инструментальной составляющей погрешности однобитных ХД-модуляторов / В. Н. Ашанин, А. А. Коротков, Б. В. Чувыкин // Известия ВУЗов: Поволжский регион. Технические науки. - 2014. - № 2 (30). -С.52-61.
68. Коротков, А. А. Разработка интегрирующего ХТ-аналого-цифрового преобразователя с коррекцией погрешности от краевых эффектов в цифровой форме / В. Н. Ашанин, А. А. Коротков // Модели, системы, сети в экономике, технике, природе и обществе. - 2017. - № 3 (23). - С.139-150.
69. Коротков, А. А. Патент РФ на изобретение № 2725678. «Интегрирующий аналого-цифровой преобразователь напряжения» / В. Н. Ашанин, А. А. Коротков // Федеральное государственное бюджетное образовательное учреждение высшего образования «Пензенский государственный университет». - Заявл. - 29.11.2018. - Зарег. - 03.07.2020 - Федеральная служба по интеллектуальной собственности, патентам и товарным знакам.
70. Иванов, В. А. Исследование шумов квантования ДХ-АЦП и разработка методов их снижения: дис. к.т.н. / В. А. Иванов-М.: МЭИ. - 2013. - 164 с.
71. Brigati, S. Modeling sigma-delta modulator non-idealities in SIMULINK / S. Brigati, F. Francesconi, P. Malcovati, D. Tonietto, A. Baschirotto, F. Maloberti // Proceedings of ISCAS '99. - 1999. - Vol. 2. - pp.384-387.
72. Malcovati, P. Behavioral modeling of switched-capacitor sigma-delta modulators / P. Malcovati, S. Brigati, F. Francesconi, F. Maloberti, F. Cusinato, A. Baschirotto // IEEE Trans. on Circuits and Systems I. - 2003. - Vol. 50. - No. 3. -pp.352-364.
73. Norsworthy, S. R. Delta-Sigma Data Converters. Theory, Design and Simulation / S. R. Norsworthy, R. Schreier, G. C. Temes // Piscataway, NJ: IEEE Press. - 1997.
74. Category: Control Systems, File: SD Toolbox [Электронный ресурс]. -Режим доступа: http://www.mathworks.com/matlabcentral/fileexchange.
75. Fornasari, A. Improved Modeling of Sigma-Delta Modulator Non-Idealities in SIMULINK / A. Fornasari, P. Malcovati, F. Maloberti // Proc. of the IEEE International Symposium on Circuits and Systems, ISCAS - 2005. - Kobe. - 23-26 May. - Vol. 6. - pp.5982-5985.
76. Tortosa, R. Analysis of clock jitter error in multibit continuous-time ХД modulators with NRZ feedback waveform / R. Tortosa, J. M. de la Rosa, A. Rodríguez-Vázquez, F. V. Fernández // IEEE International Symposium: Circuits and Systems, ISCAS. - 2005. - May. - pp.3103-3106.
77. Dendouga, A. Modeling of a Second Order Non-Ideal Sigma-Delta Modulator / A. Dendouga, N. E. Bouguechal, S. Kouda, S. Barra // International Journal of Electrical and Computer Engineering. - № 5 (6). - 2010. - pp.327-332.
78. Verma, P. A Graphical User Interface (GUI) implemented Low-pass continous time Sigma-delta ADC with improved SNR & ENOB / P. Verma, A. K. Sahu // International Journal of Advanced Research in Computer Science and Software Engineering. - № 4 (6). - June. - 2014. - pp. 144-149.
79. Hajare, S. S. Modeling Non-Idealities of CT Sigma-Delta Modulator for Software Defined Radio / S. S. Hajare, M. R. Madki // International Journal of Electronics and Computer Science Engineering. - Volume 2. - Number 1. - 2013. -pp.233-240.
80. Dendouga, A. Modeling of a Second Order Sigma-Delta Modulator with Imperfections / A. Dendouga, N. E. Bouguechal, S. Kouda, S. Barra // International Journal of Electrical and Computer Engineering. - Volume 3. - Number 2. - 2011. -pp.248-258.
81. Ye Xu. A Wideband High Dynamic Range Continuous-Time Sigma-Delta ADC for Wireless Applications / Master's Thesis at school of ICT. - Integrated Devices and Circuits. - Aug. - 2010. - 77 p.
82. Jun, Yuan. Continuous time sigma delta ADC design and non-idealities
analysis / Yuan Jun, Zhang Zhaofeng, Wu Jun, Wang Chao, Chen Zhenhai, Qian
141
Wenrong, Yang Yintang // Journal of Semiconductors. - Vol. 32. - No. 12. -December. - 2011. - pp.125007-1-125007-6.
83. Jaykar, S. Modeling of Sigma-Delta Modulator Non-Idealities with Two Step Quantization in MATLAB/SIMULINK / S. Jaykar, K. Pande, A. Peshattiwar, A. Parkhi // International Journal of Computing and Technology. - Volume 1. - Issue 2. -March. - 2014. - pp.94-99.
84. Ашанин, В. Н. ХД-АЦП: Синтез одноконтурных структур / Б. В. Чувыкин, Э. К. Шахов, В. Н. Ашанин // Известия ВУЗов: Поволжский регион. -2007. -№ 1. - С.91-106.
85. Ашанин, В. Н. ХД-АЦП: Синтез структур высоких порядков / Б. В. Чувыкин, Э. К. Шахов, В. Н. Ашанин // Известия ВУЗов: Поволжский регион. -2007. - № 2. - С.67-79.
86. Коротков, А. А. Система поддержки принятия решений при выборе преобразователей информации с сигма-дельта архитектурой / В. Н. Ашанин, Б. В. Чувыкин, И. А. Долгова, А. А. Коротков, И. А. Сидорова // Прикаспийский журнал: управление и высокие технологии. - 2014. - № 4 (28). - С.22-33.
87. Сидорова, И. А. Разработка методик совершенствования высокоточных интегрирующих аналого-цифровых преобразователей: Дис. ... канд. наук / И. А. Сидорова. - Пенза: 2017.
88. Чувыкин Б. В. Методика определения низкочастотных периодических колебаний в однобитных сигналах сигма-дельта модуляторов / Б. В. Чувыкин, И. А. Долгова, И. А. Сидорова // Прикаспийский журнал: управление и высокие технологии. - № 2 (26). - 2014. - С.174-181.
89. Юрманов В. А. Реализации передискретизации в ХД-АЦП на непрерывных интеграторах / В. А. Юрманов, К. Ю. Пискаев, А. В. Куц // Прикаспийский журнал: управление и высокие технологии. - № 1 (25) - 2014. -С.113-121.
90. Черемисов П. Быстродействие? Экономичность? Высокое разрешение? - АЦП от Texas Instruments. / П. Черемисов // «Новости электроники». - № 11. - 2010. - С.6-10.
91. Черноруцкий И. Г. Методы принятия решений / И. Г. Черноруцкий // СПб.: БХВ-Петербург. - 2005. - 416 с.
92. Kreibich, J. Using SQLite. / J. Kreibich // Press «O'Reilly Media». - 2010. - 528 p.
93. Кузнецов, М. А. Современная классификация систем поддержки принятия решений / М. А. Кузнецов, С. С. Пономарев // Прикаспийский журнал: управление и высокие технологии. - № 3 (7). - 2009. - С.52-58.
94. АС Система поддержки принятия решений «Преобразователи информации с сигма-дельта архитектурой» / В. Н. Ашанин, Б. В. Чувыкин, А. А. Коротков, И. А. Сидорова // Свидетельство о государственной регистрации программы для ЭВМ №2014660777 от 15.10.2014г.
95. Ашанин, В. Н. Метод определения длительности переходного процесса в ХД-АЦП с однобитным Д-модулятором высокого порядка / В. Н. Ашанин, Б. В. Чувыкин, Р. Г. Тер-Аракелян // Известия ВУЗов. Поволжский регион. Технические науки. - 2010. - № 3 (15). - С.70-81.
96. Ашанин, В. Н. Преобразователь напряжения во временной интервал /
B. Н. Ашанин, В. С. Гутников // Приборы и системы управления. - №9. - 1982. -
C.31-32.
Приложение А
Патент РФ и авторские свидетельства о государственной регистрации программ
для ЭВМ
Приложение Б
Внедрение результатов диссертационной работы
УТВЕРЖДАЮ
Временный генеральный директор >AQ «НИИЭМП» Д.П. Воробьев
« Т]__2016г.
У--
>Ар «НИИЭМП»
Д.П. Воробьев 2016г.
АКТ
внедрения результатов интеллектуальной деятельности Короткова Алексея Александровича
Комиссия в составе: председателя - временного генеральной) директора ОАО «НИИЭМП» Воробьева Д.П. и членов комиссии: заместителя генерального директора по развитию Мирошниченко В В.. начальника НПК-5 Волкова HB. ученого секретаря НТС Рыжова A.A. составила настоящий акт о гом. что при разработке АЦП ВТ в рамках выполнения Государственного контракта №4684 от 30.06.2003 г. использованы следующие результаты интеллектуальной деятельности Корогкова A.A.. изложенные и опубликованные в работах:
I. В.Н Ашанин. Б.В. Чувыкин. A.A. Короткое. И.А. Сидорова. Развитие и тенденции в производстве преобразователей информации с £Д-архитектурой. Сборник материалов IV Международная научно-практическая конференция "Фундаментальные и прикладные исследования в современном мире" 24-25 декабря 2013 г Санкт-Петербург: Информационно-издательский учебно-научный центр «Стратегия будущею». 2013.
2. В.Н Ашанин. Б.В. Чувыкин. A.A. Короткое. И.А. Сидорова. Анализ состояния и тенденций производства интегральных преобразователей информации £Д-архитектуры Известия высших учебных заведений Поволжский регион. Технические науки (ВАК». №1. Информационно-издательский центр П1~У. 2014. С.26-35.
3. В.Н. Ашанин. Б.В. Чувыкин. И.А. Долгова. A.A. Короткое. И.А. Сидорова. Система поддержки принятия решений при выборе преобразователей информации с сигма-дельта архитектурой. Прикаспийский ж^нал: управление и высокие технологии (ВАК) Астраханский ГУ: №4(28). 2014. С.22-33
4. V.N. Ashanin. A.A. Korotkov, B.V. Chuvykin, I.A. Sidorova. Development of engineering application lor a choice of data converters with sigma delta architecture. 2015 5th International Workshop on Computer Science and Engineering: Information Processing and Control Engineering, WCSE 2015-IPCE (SCOPUS). Moscow, 15-17 апреля 2015 г.. C.251-254.
Результаты научных исследований Короткова A.A. внедрены в виде комплекса программ:
1. АС Система поддержки принятия решений «Преобразователи информации с сигма-дельта архитектурой» / В.Н. Ашанин. Б.В. Чувыкин. A.A. Короткое. И.А. Сидорова И Свидетельство о государственной регистрации программы для ЭВМ №2014660777 от 15.10.2014 г.
2. АС База данных «Преобразователи информации с сигма-дельта архитектурой» / В.Н. Ашанин. Б.В. Чувыкин. A.A. Короткое. И.А. Сидорова II Свидетельство о государственной пеги стации базы данных №2014621524 от 31.10.2014 г.
C.I 11-114.
Рыжов A.A.
Волков H.В.
Мирошниченко В В.
Приложение В
Листинг программы «Система поддержки принятия решений при выборе преобразователей информации с сигма-дельта архитектурой» и интегрированной
базы данных
Главная программа
#include "agentwindow.hpp" #include <QApplication>
int main(int argc, char *argv[]) { // вход в программу
QApplication a(argc, argv); // создать объект приложения AgentWindow w; // создать виджет w.show(); // показать его
return a.exec(); // зациклить выполнение программы
}
Структура виджетов окна
#include "agentwindow.hpp" #include "ui_agentwindow.h" #include <QDebug>
QString micTypeStr (int arg); QString accuracyStr (int arg); QString performStr (int arg); QString powerStr (int arg); QString priceStr (int arg); QString bodyTypeStr (int arg); QString ifTypeStr (int arg); QString outTypeStr (int arg); QString bitStr (int arg);
AgentWindow::AgentWindow(QWidget *parent) : QMainWindow(parent), QSqlDatabase(),
ui(new Ui::AgentWindow) { // создание объекта главного окна ui->setupUi(this); // инициализация виджета окна программы QString str = QString();
this->db = QSqlDatabase::addDatabase("QSQLITE"); // инициализация объекта БД (выбор драйвера)
this->db.setDatabaseName("../db_agent.sqlite"); // инициализация объекта БД (выбор БД) this->db.open(); // подключение к БД
this->query = QSqlQuery(this->db); // инициализация объекта запроса к БД this->mode = MODE_UNDEF; // режим по умолчанию не установлен ui->stackedWidget->setCurrentWidget(ui->search); // установка начального виджета
ui->widgetAddMic->hide(); // также начальная установка ui->tableWidget->setColumnHidden(0, true); // скрыть id ui->widgetPass->hide();
this->listPass = QStringList(); // создание списка паролей this->listPass.append("Qwe67Tn"); // внесение пароля в список this->listPass.append("Op00xcV"); // внесение пароля в список this->listPass.append("M7H8op"); // внесение пароля в список this->listPass.append("Lpqwu9"); // внесение пароля в список this->listPass.append("Ub123rT"); // внесение пароля в список this->setWidgets(); // начальная установка виджетов // соединение событий (сигналов) и их обработчиков (слотов) connect(ui->actionInfo, SIGNAL(triggered()), this, SLOT(page())); connect(ui->actionContacts, SIGNAL(triggered()), this, SLOT(page())); connect(ui->actionMicInsert, SIGNAL(triggered()), this, SLOT(page())); connect(ui->actionMicRemove, SIGNAL(triggered()), this, SLOT(delMics())); connect(ui->actionMicUpdate, SIGNAL(triggered()), this, SLOT(updateMics())); connect(ui->actionDocInsert, SIGNAL(triggered()), this, SLOT(docAdd())); connect(ui->actionDocUpdate, SIGNAL(triggered()), this, SLOT(docUpdate())); connect(ui->actionDocDel, SIGNAL(triggered()), this, SLOT(docDel())); connect(ui->actionDocOpen, SIGNAL(triggered()), this, SLOT(docOpen())); connect(ui->radioButtonModeNov, SIGNAL(clicked()), this, SLOT(setMode())); connect(ui->radioButtonModeEx, SIGNAL(clicked()), this, SLOT(setMode())); connect(ui->pushButtonMicSearch, SIGNAL(clicked()), this, SLOT(page())); connect(ui->actionMicSearch, SIGNAL(triggered()), this, SLOT(page())); connect(ui->actionModeNov, SIGNAL(triggered()), this, SLOT(setMode())); connect(ui->actionModeEx, SIGNAL(triggered()), this, SLOT(setMode())); connect(ui->pushButtonSearchClear, SIGNAL(clicked()), this, SLOT(clearWidgets())); connect(this, SIGNAL(modeChanged()), this, SLOT(setWidgets())); connect(ui->pushButtonSearchYes, SIGNAL(clicked()), this, SLOT(page())); connect(ui->pushButtonAddMics, SIGNAL(clicked()), this, SLOT(addMicsWidgets())); connect(ui->pushButtonAddMicsOk, SIGNAL(clicked()), this, SLOT(addMics())); connect(ui->pushButtonAddMicsCancel, SIGNAL(clicked()), this, SLOT(getMics()));
connect(ui->pushButtonUpdateMics, SIGNAL(clicked()), this, SLOT(updateMics())); connect(ui->pushButtonDelMics, SIGNAL(clicked()), this, SLOT(delMics())); connect(ui->comboBoxMicSort, SIGNAL(currentIndexChanged(int)), this, SLOT(sort(int)));
connect(ui->pushButtonDocOpen, SIGNAL(clicked()), this, SLOT(docOpen())); connect(ui->pushButtonDocRemove, SIGNAL(clicked()), this, SLOT(docDel())); connect(ui->pushButtonUpdateDoc, SIGNAL(clicked()), this, SLOT(docUpdate())); connect(ui->pushButtonAddDoc, SIGNAL(clicked()), this, SLOT(docAdd())); connect(ui->pushButtonSearchNo, SIGNAL(clicked()), this, SLOT(page())); connect(ui->pushButtonInfoSearch, SIGNAL(clicked()), this, SLOT(page())); connect(ui->pushButtonContactsSearch, SIGNAL(clicked()), this, SLOT(page())); connect(ui->pushButtonPass, SIGNAL(clicked()), this, SLOT(setMode()));
}
AgentWindow::~AgentWindow() { // удаление объекта главного окна delete ui;
}
void AgentWindow::resizeEvent(QResizeEvent *event) { // изменение размеров дочерних виджетов
ui->stackedWidget->resize(this->size()); // в зависимости от размера главного окна
ui->tableWidget->resize(this->size().width(), ui->tableWidget->size().height());
ui->info->resize(this->size());
ui->contacts->resize(this->size());
}
bool AgentWindow::checkPass() {
for (int i=0;i<this->listPass.count();i++) { // в цикле по паролям
if (QString::compare(this->listPass.at(i), ui->lineEditPass->text()) == 0) { // если введенный пароль есть в списке
return true; // вернуть истину
}
}
return false; // пароль не найден в списке, вернуть ложь
}
void AgentWindow::page() { // в зависимости от источника события (sender'a) выбирается текущая страница (виджет)
if (QObject::sender()->objectName().contains("actionInfoM)) {
ui->stackedWidget->setCurrentWidget(ui->info); } else if (QObject::sender()->objectName().contains("actionContacts")) {
ui->stackedWidget->setCurrentWidget(ui->contacts); } else if (QObject::sender()->objectName().contains("pushButtonMicSearch") || QObject:: sender()->objectName().contains("actionMicSearch") 11 QObject::sender()->objectName().contains("pushButtonInfoSearch") || QObject:: sender()->objectName().contains("pushButtonContactsSearch")) { ui->stackedWidget->setCurrentWidget(ui->search);
} else { // по умолчанию показывается страница результатов поиска (добавления записи)
ui->stackedWidget->setCurrentWidget(ui->results); if (QObject::sender()->objectName().contains("actionMicInsert")) { this->addMicsWidgets(); // в случае запроса на добавление вызвать функцию добавления записи
} else { // иначе подготовить запрос к БД и выполнить его
// настройка параметров поиска
this->ms.micType.val = ui->comboBoxMicType->currentIndex(); this->ms.micType.pr = 1;
this->ms.accuracy.val = ui->comboBoxAccuracy->currentIndex(); this->ms.accuracy.pr = ui->spinBoxAccuracy->value();
this->ms.perform.val = ui->comboBoxPerform->currentIndex(); this->ms.perform.pr = ui->spinBoxPerform->value();
this->ms.power.val = ui->comboBoxPower->currentIndex(); this->ms.power.pr = ui->spinBoxPower->value();
this->ms.price.val = ui->comboBoxPrice->currentIndex(); this->ms.price.pr = ui->spinBoxPrice->value();
this->ms.bodyType.val = ui->comboBoxBodyType->currentIndex(); this->ms.bodyType.pr = ui->spinBoxBodyType->value();
this->ms.ifType.val = ui->comboBoxIfType->currentIndex(); this->ms.ifType.pr = ui->spinBoxIfType->value();
this->ms.outType.val = ui->comboBoxOutType->currentIndex(); this->ms.outType.pr = ui->spinBoxOutType->value();
this->ms.bit.val = ui->comboBoxBit->currentIndex(); this->ms.bit.pr = ui->spinBoxBit->value(); // выполнение запроса и отображение результатов this->getMics();
}
}
}
void AgentWindow::setMode() { // в зависимости от источника события выбирается режим работы программы
if (QObject:: sender()->objectName().contains("radioButtonModeNov") ||
QObject:: sender()->objectName().contains("actionModeNov")) { this->mode = MODE_NOV; // установить режим новичка ui->widgetPass->hide(); // скрыть окно ввода пароля, если оно показано } else if (QObject::sender()->objectName().contains("radioButtonModeEx") || QObject:: sender()->objectName().contains("actionModeEx")) { ui->widgetPass->show(); // показать окно ввода пароля } else if (QObject::sender()->objectName().contains("pushButtonPass")) { if (this->checkPass()) { // если пароль есть в списке this->mode = MODE_EX; // установить режим эксперта ui->lineEditPass->clear(); // очистить поле ввода пароля ui->widgetPass->hide(); // скрыть окно виджета
}
}
emit this->modeChanged(); // генерируется событие изменения режима с целью
оповещения всех обработчиков }
void AgentWindow::setWidgets() { // установка параметров виджетов: скрыть/показать, сделать активным/неактивным switch (this->mode) { case MODE_NOV: ui->actionModeNov->setChecked(true); ui->actionModeEx->setChecked(false); ui->radioButtonModeNov->setChecked(true); ui->radioButtonModeEx->setChecked(false); ui->widgetType->setEnabled(true); ui->widgetParamVal->setEnabled(true); ui->widgetParamPr->setEnabled(false); ui->pushButtonSearchYes->setEnabled(true); ui->pushButtonSearchNo->setEnabled(true); ui->pushButtonSearchClear->setEnabled(true); ui->pushButtonAddMics->setEnabled(false); ui->pushButtonUpdateMics->setEnabled(false); ui->pushButtonDelMics->setEnabled(false); ui->actionMicSearch->setEnabled(true); ui->pushButtonAddDoc->setEnabled(false); ui->pushButtonDocOpen->setEnabled(true); ui->pushButtonDocRemove->setEnabled(false); ui->pushButtonUpdateDoc->setEnabled(false); ui->actionDocInsert->setEnabled(false); ui->actionDocUpdate->setEnabled(false); ui->actionDocDel->setEnabled(false); ui->actionDocOpen->setEnabled(true); break;
case MODE_EX: ui->actionModeNov->setChecked(false); ui->actionModeEx->setChecked(true); ui->radioButtonModeNov->setChecked(false); ui->radioButtonModeEx->setChecked(true); ui->widgetType->setEnabled(true); ui->widgetParamVal->setEnabled(true); ui->widgetParamPr->setEnabled(true); ui->pushButtonSearchYes->setEnabled(true); ui->pushButtonSearchNo->setEnabled(true); ui->pushButtonSearchClear->setEnabled(true); ui->pushButtonAddMics->setEnabled(true); ui->pushButtonUpdateMics->setEnabled(true); ui->pushButtonDelMics->setEnabled(true); ui->actionMicInsert->setEnabled(true); ui->actionMicRemove->setEnabled(true); ui->actionMicSearch->setEnabled(true); ui->actionMicUpdate->setEnabled(true); ui->pushButtonAddDoc->setEnabled(true); ui->pushButtonDocOpen->setEnabled(true); ui->pushButtonDocRemove->setEnabled(true); ui->pushButtonUpdateDoc->setEnabled(true); ui->actionDocInsert->setEnabled(true); ui->actionDocUpdate->setEnabled(true); ui->actionDocDel->setEnabled(true); ui->actionDocOpen->setEnabled(true); break; case MODE_UNDEF: ui->actionModeNov->setChecked(false); ui->actionModeEx->setChecked(false); ui->radioButtonModeNov->setChecked(false); ui->radioButtonModeEx->setChecked(false); ui->widgetType->setEnabled(false); ui->widgetParamVal->setEnabled(false); ui->widgetParamPr->setEnabled(false); ui->pushButtonSearchYes->setEnabled(false); ui->pushButtonSearchNo->setEnabled(false); ui->pushButtonSearchClear->setEnabled(false); ui->actionMicInsert->setEnabled(false); ui->actionMicRemove->setEnabled(false); ui->actionMicSearch->setEnabled(false); ui->actionMicUpdate->setEnabled(false); ui->pushButtonAddDoc->setEnabled(false); ui->pushButtonDocOpen->setEnabled(false);
ui->pushButtonDocRemove->setEnabled(false);
ui->pushButtonUpdateDoc->setEnabled(false);
ui->actionDocInsert->setEnabled(false);
ui->actionDocUpdate->setEnabled(false);
ui->actionDocDel->setEnabled(false);
ui->actionDocOpen->setEnabled(false);
break;
}
}
void AgentWindow::clearWidgets() { // сброс виджетов в исходное состояние ui->comboBoxAccuracy->setCurrentIndex(0); ui->comboBoxBit->setCurrentIndex(0); ui->comboBoxBodyType->setCurrentIndex(0); ui->comboBoxIfType->setCurrentIndex(0); ui->comboBoxMicType->setCurrentIndex(0); ui->comboBoxOutType->setCurrentIndex(0); ui->comboBoxPerform->setCurrentIndex(0); ui->comboBoxPower->setCurrentIndex(0); ui->comboBoxPrice->setCurrentIndex(0); ui->spinBoxAccuracy->setValue( 1); ui->spinBoxBit->setValue( 1); ui->spinBoxBodyType->setValue(1); ui->spinBoxIfType->setValue( 1); ui->spinBoxOutType->setValue( 1); ui->spinBoxPerform->setValue(1); ui->spinBoxPower->setValue( 1); ui->spinBoxPrice->setValue( 1);
}
void AgentWindow::getMics() { // формирование запроса к БД и его выполнение QString queryLast = "SELECT * FROM 'mic WHERE 1 "; QString queryNew = queryLast; QString status = "";
// формирование всех параметров запроса осуществляется через специальные функции
// с целью удобочитаемости кода и его большей переносимости /* micType */
queryNew += micTypeStr(this->ms.micType.val); // установка типа микросхем this->query.exec(queryNew); // выполнение нового запроса if (!this->query.first()) { // в случае, если по последнему запросы результатов нет, status += "Нет микросхем данного типа. ";
this->query.exec(queryLast); // выполняем предпоследний запрос и приступаем к отображению результатов
} else {
for (int p=0;p<PR_COUNT;p++) {
// цикл по приоритетам: если приоритет параметра совпадает с итерацией цикла, этот параметр добавляется к запросу
// в случае, если по последнему запросу результатов нет, выполняется предпоследний /* accuracy */
if (this->ms.accuracy.pr == p) { queryLast = queryNew;
queryNew += accuracyStr(this->ms.accuracy.val); this->query.exec(queryNew); if (!this->query.firstO) {
status += "Нет микросхем с указанной заявленной точностью. ";
this->query.exec(queryLast);
break;
}
}
/* perform */
if (this->ms.perform.pr == p) { queryLast = queryNew;
queryNew += performStr(this->ms.perform.val); this->query.exec(queryNew); if (!this->query.firstO) {
status += "Нет микросхем с указанной производительностью. ";
this->query.exec(queryLast);
break;
}
}
/* power */
if (this->ms.power.pr == p) { queryLast = queryNew; queryNew += powerStr(this->ms.power.val); this->query.exec(queryNew); if (!this->query.firstO) {
status += "Нет микросхем с указанным энергопотреблением. ";
this->query.exec(queryLast);
break;
}
}
/* price */
if (this->ms.price.pr == p) { queryLast = queryNew; queryNew += priceStr(this->ms.price.val); this->query.exec(queryNew);
if (!this->query.firstO) {
status += "Нет микросхем данной ценовой категории. ";
this->query.exec(queryLast);
break;
}
}
/* bodyType */
if (this->ms.bodyType.pr == p) { queryLast = queryNew;
queryNew += bodyTypeStr(this->ms.bodyType.val); this->query.exec(queryNew); if (!this->query.firstO) {
status += "Нет микросхем с данным типом корпуса. ";
this->query.exec(queryLast);
break;
}
}
/* ifType */
if (this->ms.ifType.pr == p) { queryLast = queryNew; queryNew += ifTypeStr(this->ms.ifType.val); this->query.exec(queryNew); if (!this->query.firstO) {
status += "Нет микросхем с указанными типом интерфейса. ";
this->query.exec(queryLast);
break;
}
}
/* outType */
if (this->ms.outType.pr == p) { queryLast = queryNew;
queryNew += outTypeStr(this->ms.outType.val); this->query.exec(queryNew); if (!this->query.firstO) {
status += "Нет микросхем с данным типом выхода. ";
this->query.exec(queryLast);
break;
}
}
/* bit */
if (this->ms.bit.pr == p) { queryLast = queryNew; queryNew += bitStr(this->ms.bit.val); this->query.exec(queryNew);
if (!this->query.first()) {
status += "Нет микросхем с указанной эффективной разрядностью. ";
this->query.exec(queryLast);
break;
}
}
}
}
// добавление результатов последнего запроса в таблицу ui->tableWidget->setRowCount(0); // очищение таблицы от предыдущих результатов
if (this->query.first()) { // переход к первой полученной записи, если она есть for (int r=0;;r++) { // в цикле по полям записи заполняются ячейки соответствующих строк и столбцов
ui->tableWidget->insertRow(r); // добавление строки в таблицу for (int c=0;c<ui->tableWidget->columnCount();c++) { // цикл по столбцам QTableWidgetItem * item = new QTableWidgetItem(); // создание ячейки item->setText(this->query.value(c).toString()); // вставка в ячейку соответствующего текста
ui->tableWidget->setItem(r,c,item); // добавление ячейки в таблицу на пересечении строки и столбца
if (this->mode == MODE_EX) { // блокировка изменения столбцов в зависимости от режима
if (c == 21) { // 21 поле всегда заблокировано: оно служебное ui->tableWidget->item(r, c)->setFlags(Qt::ItemIsEnabled |
Qt::ItemIsSelectable);
}
} else if (this->mode == MODE_NOV) { // новичку ничего менять нельзя ui->tableWidget->item(r, c)->setFlags(Qt::ItemIsEnabled |
Qt::ItemIsSelectable);
}
}
if (!this->query.next()) break; // переход к следующей записи БД
}
}
ui->lineEditResultStatus->setText(status); // отображение ошибок и прочего в строке состояния
ui->widgetAddMic->hide(); // скрыть виджет добавления записи, если он не
скрыт }
void AgentWindow::addMicsWidgets () { // создание виджета добавления записи int r = 0;
ui->tableWidget->setRowCount(0); // сброс предыдущих записей
ui->tableWidget->msertRow(0); // вставка одной строки for (int c=0;c<ui->tableWidget->columnCount();c++) { // создание пустых ячеек QTableWidgetltem * item = new QTableWidgetItem(); item->setText("");
ui->tableWidget->setItem(r,c,item); // добавление ячеек в таблицу
}
ui->widgetAddMic->show(); // показать виджет добавления (кнопки)
}
void AgentWindow::addMics() { // формирование запроса на добавление записи к БД и его овыполнение
QString query = "INSERT INTO 'mic' VALUES (NULL, " "?, ?, ?, ?, ?, ?, ?, ?, ?, ?, "
"?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
int r = 0, c;
this->query.prepare(query); // подготовка запроса for (c=1;c<ui->tableWidget->columnCount();c++) { QTableWidgetItem * item = ui->tableWidget->item(r, c); // считать данные из ячеек
this->query.addBindValue(item->text()); // подготовка параметров запроса
}
if (this->query.exec()) { // выполнение запроса и проверка успешности его выполнения, сигнализация
ui->lineEditResultStatus->setText("Запись добавлена."); ui->widgetAddMic->hide(); } else {
ui->lineEditResultStatus->setText("Запись не добавлена. Проверьте
правильность введенных данных."); }
qDebug() << this->query.lastError();
}
void AgentWindow::updateMics() { // формирование запроса на обновление записи к БД и его овыполнение
QString query = "UPDATE 'mic' SET name=?, micType=?, accuracy=?, " "perform=?, power=?, price=?, bodyType=?, ifType=?, " "outType=?, bit=?, vendor=?, integType=?, fD=?, " "channelCount=?, modul=?, cascadeCount=?, " "quantizerLevel=?, filter=?, year=?, about=?, " "docPage=? " "WHERE id=?"; int r = 0, c = 1;
if ((r = ui->tableWidget->currentRow()) >= 0) { // если выбрана строка this->query.prepare(query); // подготовить запрос
for (c=1;c<ui->tableWidget->columnCount();c++) {
QTableWidgetItem * item = ui->tableWidget->item(r, c); // считать обновленные данные из ячеек
this->query.addBindValue(item->text()); // подготовить параметры запроса
}
this->query.addBindValue(ui->tableWidget->item(r,0)->text()); // то же if (this->query.exec()) { // выполнить и проверить выполение запроса
ui->lineEditResultStatus->setText("Запись отредактирована."); } else {
ui->lineEditResultStatus->setText("Запись не отредактирована. Проверьте
правильность введенных данных."); }
} else {
ui->lineEditResultStatus->setText("Запись для редактирования не выбрана.");
}
}
void AgentWindow::delMics() { // подготовка запроса на удаление записи и его выполнение
QString query = "DELETE FROM 'mic' WHERE id= ? "; int r = 0;
if ((r = ui->tableWidget->currentRow()) >= 0) { // если выбрана строка this->query.prepare(query); // подготовить запрос
this->query.addBindValue(ui->tableWidget->item(r,0)->text()); // считать id записи из ячейки и установить параметр запроса
if (this->query.exec()) { // выполнить запрос и проверить его выполнение ui->lineEditResultStatus->setText("Запись удалена."); ui->tableWidget->removeRow(r); // если запись в БД удалена, удалить и строку в таблице } else {
ui->lineEditResultStatus->setText("Запись не удалена. ");
}
} else {
ui->lineEditResultStatus->setText("Запись для удаления не выбрана.");
}
}
void AgentWindow::sort(int arg) { // вспомогательная сортировка int c = 0;
if ((c = ui->tableWidget->currentColumn()) >= 0) { // если выбран столбец if (arg == 0) { // в зависимости от переданного параметра
ui->tableWidget->sortByColumn(c, Qt::AscendingOrder); // установить параметр сортировки } else {
ui->tableWidget->sortByColumn(c, Qt: :DescendingOrder);
}
} else {
ui->lmeEditResultStatus->setText("Выберите критерий (столбец) для
сортировки. "); }
}
void AgentWindow::docOpen() { // открытие файла int r = 0;
if ((r = ui->tableWidget->currentRow()) >=0) { // если выбрана строка
QTableWidgetItem * item = ui->tableWidget->item(r, 21); // считать путь к файлу
if (QDesktopServices::openUrl(QUrl::fromLocalFile("../doc/"+item->text()))) { // создать URL и открыть файл по URL
ui->lmeEditResultStatus->setText("Файл открыт. "); // сообщить об успехе } else {
ui->lmeEditResultStatus->setText("Файл не может быть открыт. "); //
сообщить об ошибке }
} else {
ui->lmeEditResultStatus->setText("Не выбрана строка. ");
}
}
void AgentWindow::docDel() { int r = 0;
if ((r = ui->tableWidget->currentRow()) >=0 ) { // если выбрана строка QTableWidgetItem * item = ui->tableWidget->item(r, 21); // считать путь к файлу
if (QFile("../doc/"+item->text()).remove()) { // вызвать функцию удаления файла
item->setText(""); // сбросить путь до файла в таблице this->updateMics(); // обновить запись в БД
ui->lineEditResultStatus->setText("Файл удален. "); // дать сообщение } else {
ui->lineEditResultStatus->setText("Файд не удален. ");
}
} else {
ui->lineEditResultStatus->setText("Не выбрана строка. ");
}
}
void AgentWindow::docUpdate() { // удаление записи и создание новой
this->docDel(); this->docAdd();
}
void AgentWindow::docAdd(QString file) { int r = 0;
if (file == 0) { // если это первый вызов
QFileDialog * d = new QFileDialog(this); // создать диалог открытия файла d->setDirectory("../doc"); // назначить ему директорию d->show(); // и показать его
connect(d, SIGNAL(fileSelected(QString)), this, SLOT(docAdd(QString))); // после выбора файла снова вернуться в функцию } else { // если второй вызов if ((r = ui->tableWidget->currentRow()) >= 0) { // если выбран столбец QTableWidgetItem * item = ui->tableWidget->item(r, 21); // выбрать соответствующую ячейку
item->setText(file.right(file.size() - file.lastIndexOf("/doc/") - 5)); // и записать туда имя файла
this->updateMics(); // обновить записи в БД
ui->lineEditResultStatus->setText("Документация добавлена. "); // сообщить } else {
ui->lineEditResultStatus->setText("Не выбрана строка. ");
}
}
}
// функции формирования критериев запроса выбора, к сожалению, нет проверки типов и предлагаемых значений
// вводить все значения и проверять правильность ввода приется пользователю QString micTypeStr (int arg) { switch (arg) { case 0: return "";
case 1: return " AND micType = 'СПЕЦИАЛИЗИРОВАННЫЕ' ";
case 2: return " AND micType = 'ОДНОКАНАЛЬНЫЕ СИГМА-ДЕЛЬТА АЦП' ";
case 3: return " AND micType = 'МНОГОКАНАЛЬНЫЕ СИГМА-ДЕЛЬТА ацп'
!! .
case 4: return " AND micType = 'СИГМА-ДЕЛЬТА МОДУЛЯТОРЫ' ";
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.