123
Fork of LG by
Diff: develop.txt
- Revision:
- 198:78dd6d14d108
- Parent:
- 197:7a05523bf588
diff -r 7a05523bf588 -r 78dd6d14d108 develop.txt --- a/develop.txt Wed Oct 19 10:55:05 2016 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,112 +0,0 @@ -01.07.2016 Dile Tant -Основные циклы: - Измерительный плавающий цикл/Measurment floating cycle - Цикл задается измерительным таймером с переменной частотой следования прерываний - таймер 1 контроллера - Регулярный внутренний цикл/Regular internal cycle - Цикл задается управляющим таймером с постоянной частотой следования прерываний - таймер 2 контроллера - Основной последовательный плавающий цикл/Main sequential floating cycle - Цикл выполняется с переменной частотой, определяемой загрузкой процессора. - Регулярный внешний цикл/Regular external cycle - Цикл задается внешним периодическим сигналом - защелкой - -Замечание: - Измерение частоты расщепления производится в плавающем цикле, результат измерения - количество импульсов за период вибропривода, - для получения частоты нужно поделить импульсы на текущий период измерения. - Остальные измеряемые параметры от периода измерений не зависят. - -Параметры: - Представление параметров алгоритма в виде единого последовательного блока параметров с фиксированным положением и размером - параметров нецелесообразно. Для удобства, независимости модулей и упрощения их модификации следует определять параметры в модулях подсистем. - При этом удобно представить параметры в виде дерева, каждая ветвь которого относится к соответствующей подсистеме. - Следует разделять неизменяемые в процессе работы параметры настройки (settings) и изменяемые (текущие) параметры состояния (state). - Параметры настройки определяются при настройке и калибровке устройства и записываются во флэш-память. - Параметры состояния вычисляются в процессе работы на основе параметров настройки. Параметры настройки могут задавать начальное значение - параметров состояния, значения параметров состояния при определенных событиях (например при обнулении СРП) или функцию зависимости - параметров состояния (например от температуры). - Параметры настройки делятся на настройки по умолчанию (default), которые инициализируются в коде программы, - и настройки, загружаемые из флэш-памяти. - В частности, в протоколе есть команды установки состояния из настроек по умолчанию и из флэш-памяти, что означает необходимость - раздельного хранения параметров настройки и параметров состояния состояния. - -Идентификация параметров: - Всем параметрам присваивается хэш/hash. В качестве хэш-функции можно использовать - hash(name, type) = crc32(name) ^ crc32(type), - где name - имя переменной в RAM или константы в ROM, type - тип. - Например: crc32("uint16_t") ^ crc32("device.settings.address") = 0x4d8e4523 - -Хранение констант и переменных в RAM: - Все параметры хранятся в переменной device в виде иерархической структуры. - При загрузке инициализируется таблица адресов переменных hashParamTable[HASH_PARAM_COUNT] в формате hash32 : address32 : size32, - где hash32 - хэш параметра, address32 - ссылка на параметр, size32 - размер в байтах. - -Хранение констант и переменных в ROM: - Сектор 22 - таблица адресов в формате hash32 : address32 - Сектор 23 - данные по адресам из таблицы адресов - Чтение из ROM: - FlashReadAll() - Запись в ROM: - FlashWriteAll() - -Использование портов: - UART0 - порт обслуживания / Service port - UART1 - порт команд/данных / User port - -Доступ к параметрам через User port - Формат команды: - cc address8 code16 hash32 crc16 - code16: - H_PARAM8_R : чтение 1-байтного параметра - H_PARAM16_R: чтение 2-байтного параметра - H_PARAM32_R: чтение 4-байтного параметра - H_PARAM8_W : запись 1-байтного параметра - H_PARAM16_W: запись 2-байтного параметра - H_PARAM32_W: запись 4-байтного параметра - -Последовательность старта системы: - 1. Инициализация настроек по умолчанию - InitDefaultSettings(). В идеале - инициализация абсолютно всех настроек - на случай отсутствия настроек во флэш-памяти или отказа флэш-памяти. - 2. Загрузка настроек подсистем из флэш-памяти с перезаписью настроек по умолчанию - FlashReadAll(). - 3. Инициализация начального состояния подсистем из сформированных на этапах 1 и 2 настроек - InitState(). - 4. Старт модулей после установки начального состояния всех подсистем - DeviceStart(). - -Работа управляющего алгоритма в вольтах: - Вычисления в алгоритме можно проводить в виде напряжения на исполнительном элементе (ГВЧ, нагреватель, пъезоэлемент и т.д.). - Для этого требуется в настройках задать параметры преобразования в виде линейной интерполяции: код на ЦАП - напряжение на элементе. - Плюсы: - - настройки для конкретного датчика сохраняются на разных основаниях, в том числе с разной электрической схемой - - настройки для конкретного основания (параметры преобразования) сохраняются для разных датчиков - - калибровка оснований может производиться отдельно от датчиков и отражаться в паспорте основания - - учет нелинейностей (16 контрольных точек) - - передача потребителю истинных напряжений (без необходимости учета знаков, падений напряжений на транзисторе и т.п.) - Минусы: - - требуется постоянный пересчет вольты - коды при работе алгоритма - - требуется калибровка оснований - -Передаточные функции: - 1. При вычислениях с фиксированной точкой есть 2 существенные проблемы: - - переполнение - - округление - 2. С целью обеспечения независимости собственно алгоритма от диапазона входных данных, определяемого "железом" и - полного использования битности процессора требуется преобразование входных данных в нормализованный диапазон (-1 ... +1 - например). Такое преобразование может быть выполнено с помощью передаточной функции (например, в виде линейной - интерполяции: код АЦП - нормализованная величина). - 3. Для управления исполнительным элементом также требуется преобразование нормализованных данных с - помощью передаточной функции (например в виде линейной интерполяции: нормализованная величина - код ЦАП). - -Работа СРП: - Режимы работы: - - по опорному генератору - - с запоминанием - Детектор: - Опорный сигнал: - - выходное напряжение опорного генератора - - выходное напряжение СРП - Обратная связь: - - выходное напряжение амплитудного детектора - - выходное напряжение стабилизатора амплитуды - Функции передачи: - - опорный сигнал (В) - опорный сигнал (у.е. -1...+1) - - обратная связь (В) - обратная связь (у.е. -1...+1). Требуется отфильтровать постоянную составляющую, чтобы попасть в диапазон -1...+1? - - рассогласование (у.е. -1...+1) - рассогласование (-0.5 ... +0.5) - - ошибка регулятора (-1...+1) - коррекция выходного напряжения СРП (В) - - выходное напряжение СРП (В) - код ЦАП (у.е.) \ No newline at end of file