<<
>>

Алгоритм сбора и передачи данных системы гониометрического контроля

Для реализации процесса регистрации сигналов акселерометрических преобразователей, описанного в п. 2.1.1 данной диссертационной работы, был разработан алгоритм сбора и передачи данных, который представляет собой последовательность операций сбора и накопления значений ускорения по каждой из трех компонент акселерометрических датчиков, входящих в измерительную цепь, и передачу пакета данных на TCP-сервер пользовательского компьютера.

Алгоритм сбора и передачи данных представляет собой последовательность операций (рисунок 21):

Шаг 1. Подключение стандартной библиотеки языка C++ (stdint.h), библиотеки для работы с интерфейсом i2c (wire.h), и библиотек работы с модулями акселерометра (lis331dlh.h) и модулем Wi-Fi (ESP8266.h). Данный шаг позволяет использовать стандартные методы приема-передачи данных с модулей по поддерживаемым ими протоколам.

Шаг 2. Определение констант и глобальных переменных. На данном шаге задаются идентификатор сети и пароль точки доступа, к которой необходимо осуществить подключение Wi-Fi модулю, а также задается порт для установки TCP-соединения. Также, на данном шаге объявлены адреса модулей мультиплексора и акселерометров, который, исходя из особенностей микросхемы LIS331dlh, не является динамическим.

Шаг 3. Запуск установочного цикла.

Шаг 4. Настройка портов светодиодной индикации, позволяющих определить тип ошибки работы системы гониометрического контроля.

Шаг 5. Открытие последовательного порта, реализованного на основе последовательного UART-интерфейса для осуществления передачи данных с микропроцессора на Wi-Fi модуль.

Шаг 6. Запуск основного цикла программы.

Шаг 7. Выполнение настройки акселерометров, подключенных по интерфейсу i2c к микропроцессору. Данная настройка подразумевает выбор канала мультиплексора, запуск акселерометра, расположенного по данному каналу, установку чувствительности акселерометра.

При реализации системы гониометрического контроля был выбран 4 канальный мультиплексор. Пока количество каналов меньше 4, выполнять шаг 7, иначе переход на шаг 8.

Шаг 8. Получение версии Wi-Fi модуля. Данная процедура реализует АТ- команду AT+GMR и возвращает версию прошивки. Версия отображается в виде 8 цифр. Первая группа 4 цифры - версия AT, вторая группа 4 - версия SDK.

Шаг 9. Установка режима Wi-Fi модуля в качестве клиента. Процедура реализует АТ-команду AT+CWMODE_CUR=1 (1=Station (WiFi клиент)). Если ответ «Ok» получен, переход к шагу 10, иначе установить счетчик k=1, включить светодиод, выключить светодиод k-раз. Затем переход к шагу 6.

Шаг 10. Подключение Wi-Fi модуля к точке доступа. Данная процедура выполняет АТ- команду AT+CWJAP_CUR =,. Результатом успешного подключения к точке доступа является возврат «Ok» либо ошибки подключения «ERROR». Если ответ «Ok» получен, переход к шагу 11, иначе установить счетчик k=2, включить светодиод, выключить светодиод k- раз. Затем переход к шагу 6.

Шаг 11. Установить подключение TCP или получить информацию о текущем соединении команда АТ+ CIPMUX=1, возвращает "OK", "ERROR"или "ALREADY CONNECT". Если ответ «Ok» получен, переход к шагу 12, иначе установить счетчик k=3, включить светодиод, выключить светодиод k-раз. Затем переход к шагу 6.

r7Γi

Рисунок 21 - Блок-схема алгоритма сбора и передачи данных

Шаг 12. Установить подключение TCP (AT+CIPSTART = , , ). Если ответ «Ok» получен, переход к шагу 13, иначе установить счетчик k=4, включить светодиод, выключить светодиод k-раз. Затем переход к шагу 6.

Шаг 13. Считывание данных с акселерометров в память микропроцессора по интерфейсу i2c. Пока количество каналов меньше 4, выполнять шаг 13, иначе переход к шагу 14.

Шаг 14. Отправить данные с микропроцессора посредством Wi-Fi модуля на TCP-сервер.

Процедура выполняет команду AT+CIPSEND. Длина данных в пакете до 2048 байт. После получения данной команды модуль переходит в режим приема данных через UART, после приема данных необходимой длины передает их в радиоканал. При успешной передаче возвращает «OK». Если ответ «Ok» получен, переход к шагу 15, иначе установить счетчик k=5, включить светодиод, выключить светодиод k-раз. Затем переход к шагу 6.

Шаг 15. Закрыть соединение TCP . Процедура выполняет команду AT+CIPCLOSE. Возвращает «LINK IS NOT» или «UNLINK» если ID соединение уже разорвано, «ERROR» если соединения нет. Переход к шагу 6.

Как было описано ранее, применение фазометрического метода измерения угла подразумевает регистрацию временного интервала, пропорционального углу взаимного поворота акселерометров. Следовательно, необходимо учесть, что погрешность, возникающая в результате обработки данных, существенно зависит от конкретной программной и аппаратной среды. На величину погрешности главным образом оказывает существенное влияние тактовая частота и вычислительная мощность процессора, сложность (время) выполняемых операций, ограничения скорости передачи по линиям интерфейсов [93].

Пока акселерометр 1 в момент времени t1находится в положении 1, а акселерометр 2 в момент времени t1находится в положении 2 угол взаимного отклонения равен φ. Погрешность определения угла φ возникает тогда, когда разница во времени τ считывания сигнала с акселерометра 1 и считывания сигнала с акселерометра 2 увеличивается и угол между осями акселерометров

изменяется φ=φ+τ. Это отражено на диаграмме погрешности программного обеспечения (рисунок 22).

Рисунок 22 - Диаграмма погрешности программного обеспечения

В случае работы системы гониометрического контроля на базе фазометрического метода, погрешность ПО вызывают временные задержки при выполнении процедуры считывания данных с акселерометров по шине i2c в микроконтроллер, процедуры передачи данных из микроконтроллера на Wi-Fi модуль посредством интерфейса UART и процедуры передачи данных на TCP - сервер с применением интерфейса 802.11 b/n/g.

При этом каждая процедура подразумевает последовательное выполнение функций. Данные функции выполняются согласно системному времени конкретного микроконтроллера. Расчет временной задержки передачи данных в рамках диссертационной работы приятно осуществить для аппаратного модуля на базе микроконтроллера ATMega328P-PU (таблица 5).

Таблица 5 - Время выполнения программных функций передачи данных

Функция Назначение Время выполнения
Wire.read() Считывание данных с акселерометра 2 мкс/регистр
Serial.write() Передача данных между

микропроцессором и WiFi модулем по интерфейсу UART

3,69 мкс/регистр
Serial.read() Считывание сигналов WiFi модуля 0,65 мкс/регистр

При считывании данных с акселерометра следует учитывать, что количество регистров равно количеству чувствительных осей датчика, что в случае применения акселерометра LIS331dlh составляет 3. При этом для реализации фазометрического метода, разработанного в диссертационной работе, количество акселерометров в измерительной цепи должно быть не менее 2. Следовательно, время задержки регистрации данных пары акселерометров составит 6 мкс, что не является существенной погрешностью в случае контроля объектов, частота движения которых не превышает 16 кГц. Общее время выполнения функций считывания данных с датчиков составит 12 мкс. Время обмена данными между микропроцессором и WiFi модулем по интерфейсу UART составит 22,14 мкс. Общее время задержки будет равно 34,79 мкс.

3.1.2

<< | >>
Источник: ГРЕЧЕНЕВА АНАСТАСИЯ ВЛАДИМИРОВНА. ФАЗОМЕТРИЧЕСКИЙ МЕТОД ГОНИОМЕТРИЧЕСКОГО КОНТРОЛЯ НА БАЗЕ АКСЕЛЕРОМЕТРИЧЕСКИХ ПРЕОБРАЗОВАТЕЛЕЙ. Диссертация на соискание ученой степени кандидата технических наук. Белгород - 2019. 2019

Еще по теме Алгоритм сбора и передачи данных системы гониометрического контроля: