123

Dependencies:   mbed

Fork of LG by igor Apu

Revision:
198:78dd6d14d108
Parent:
197:7a05523bf588
--- 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