
- •Введение
- •Основная часть Анализ путей повышения надежности
- •Описание системы
- •Сбор данных телеметрии
- •Варианты состояния телеметрии:
- •Связь между модулями
- •Работа с датчиками
- •Связь с исполнителем
- •Расчет показателей надежности
- •Надежность 2 уровня (датчиков)
- •Надежность 1 уровня (вычислительной части)
- •Заключение Общая оценка работы
- •Дальнейшие пути совершенствования
Варианты состояния телеметрии:
На порте приема - 1 |
На порте приема 0 – |
||
Связь с модулем есть и он работает при этом мы считаем кол-во скачков (low).
|
Вычислительный модуль, скорее всего, неработоспособен. |
||
Кол-во не изменилось => модуль «завис».*
|
Кол-во меняется, модуль работает в нормальном режиме
|
|
* Чтобы работающий модуль не был посчитан зациклившимся, необходимо осуществлять проверку реже, чем происходит исполнение функции.
Связь между модулями
Связь между модулями осуществляется по интерфейсу I2C. Для создания библиотеки передачи данных была использована, встроенная в среду программирования, библиотека “Wire”, а так же собран макет из двух микроконтроллеров.
Arduino Pro Mini
I2C шина
Программатор
FT232RL
Рис.4 Макет из двух микроконтроллеров
Для разрабатываемой системы понадобилось создать 2 функции:
1)Прием передачи:
А) Подключаемся к шине, обозначив себя подчиненным с адресом (I2C адрес записан в ПЗУ)
Б) Теперь шина все время прослушивается, модуль ждет запроса передачи
В) Поступил запрос от мастера, теперь входящие данные записываются.
2) Отправка данных:
А) Подключаемся к шине, обозначив себя мастером
Б) Инициализируем передачу с подчиненным (обращаемся по адресам, записанным в ПЗУ)
В) Оправляем данные
Г) Закрываем передачу
Работа с датчиками
В работе использован 3х осевой датчик ускорения MMA7455. Передача осуществляется по интерфейсу SPI. SPI имеет 4 цифровых канала: MISO (Master In Slave Out) MOSI (Master Out Slave In) SCK (Serial Clock) + CS (Chip Select).
Считывание данных с датчика осуществляется следующим образом: 1)Переводим линию CS на низкий уровень (цифровой 0) 2) Используя библиотеку Wire, запрашиваем данные с регистра, содержащего значение (8бит). 3) Переводим пин CS обратно – создаем высокий уровень
(цифровая 1). Этот процесс происходит поочередно с каждым датчиком (Приложение 4). Имеется по три значения с каждого датчика. Данные сохраняются в базе данных (истории), после чего начинается обработка (Приложение 5):
1) Сверяем со значениями, хранящимися в памяти (предыдущие значения показаний датчиков). И подводим итог о работоспособности датчиков.
2) Сверяем между собой показания датчиков (разница во времени снятия показаний не сильно различна, поэтому данные так же не сильно различны), на основании чего можем делать вывод о работоспособности одного из MMA7455.
3) Используя показания работающих датчиков, рассчитываем усредненное значение.
Связь с исполнителем
Исполнителем в данной системе является еще один микроконтроллер, задача которого отображать полученные данные. Данные приходят по Serial интерфейсу (UART). Если на линии с основного модуля нет данных, то смотрим 2 линию (нагруженный резерв), если же на нем нет данных, то смотрит 3ю линию (пассивный резерв). Дальше, используя полученную информацию от датчиков, зажигаем светодиоды, в соответствии с углом наклона микро спутника. Сообщение о состоянии датчиков и вычислительных модулей передается в канал телеметрии.