Описание программного обеспечения блока фоторегистрации МКА

Опубликовано в сборнике материалов II Международной научно-технической конференции «Информационно-измерительные диагностические и управляющие системы ДИАГНОСТИКА — 2011», Юго-Западный государственный университет, Курск — 2011, С. 25-30.

Внешний вид отладочного образца блока фоторегистрации (БФ) студенческого МКА «Радиоскаф-3» по схеме[1] , показан на рис. 1.

Рис. 1 Отладочный образец блока фоторегистрации.

Основные функции блока, выполняемые по запросу центрального устройства:

Получение фотоизображений с модулей фотокамер, сохранение их в энергонезависимую память;
Формирование SSTV картинки;
Выдача списка сохраненных изображений:
Выдача JPG изображений.

В таблице 1 показан протокол информационного обмена между БФ и центральным блоком управления.

Таблица 1. Протокол информационного обмена между БФ и центральным блоком управления

Всего 8 основных команд:

0_Reset – перезагрузка БФ

После получения команды сброса, БФ отсылает ответный байт ACK/STATUS центральному устройству. Затем происходит программный сброс и выполнение программы начинается с отметки старт (рис.2)

Структура байта ACK/STATUS: 0-2 биты: Статусы 3х фотомодулей: 0-ok; 1-Error; 3 бит: Статус карты памяти: 0-ok; 1-Error; 4 бит: Статус блока в целом: 0-Idle; 1- Busy; 5-6 биты: ACK/END/ NOT / reserve; 7бит: всегда 1.

1_Get Status – Получение статуса БФ

БФ отсылает только байт ACK/STATUS центральному устройству.

2, 3_Make JPG foto/ Make SSTV foto – Сделай фотоснимок

Команда содержит данные о моменте времени в следующем формате: yymmddhhmmss, где yy 2 последние цифры года; mm- месяц; dd-день; hh-час; mm-минута; ss-секунда. Это необходимо, т.к. в блоке БФ нет независимых часов реального времени. БФ использует эту информацию для создание имен фотографий, а также для генерирования даты и времени на SSTV фотоснимках.

После получения этой команды БФ выдает ACK/STATUS, подтверждающее принятие команды. В котором уже бит «Статус блока в целом» уже принимает значение 1- Busy. Т.к. операция фотографирование может затянуться ввиду вероятной необходимости прогревания фотомодулей, записи файла на SD карту памяти, центральное устройство не дожидается завершения операции. Спустя время он опрашивает статус БФ (которое отдается по прерыванию), как только фотографирование будет завершено бит «Статус блока вцелом» вернет свое значение на 0-Idle и фотографию можно будет забрать.

4, 5, 8_Get JPG foto/ Get SSTV foto/ Get random SSTV child pics – Забрать снимок

Команда содержит данные моменте времени когда был сделан снимок, иными словами это имя файла на SD карте. Если файл есть на SD карте, то байт ACK/STATUS содержит значение ACK, иначе NOT. Дальше отсылается значение длины файла в байтах, и отсылаются данные непрерывным потоком. После передачи изображения, отсылается ACK/STATUS байт со значением END.

6,7_Get list of JPG files/ Get list of SSTV files – Запрос списка сохраненных файлов. После получения этой команды, БФ отсылает ACK/STATUS байт со значением ACK, затем количество сохраненных изображений. Далее следует перечисление имен, разделенных специальным непечатным байтом \n. После завершения передачи отправляется ACK/STATUS со значением END Формат посылок, наличие сигнатуры (для идентификации устройств), а также длина уточняется на этапе проектирования.

Программа для микроконтроллера ATmega32A4 написана на языке Си в среде AVR Studio с установленным GCC компилятором.

Рис.2. Структура программного обеспечения БФ.

На рис. 2 показана структурная схема программного обеспечения БФ. После подачи питания происходит операция инициализации, конфигурирования микроконтроллера. Устанавливается режим работы портов ввода-вывода. Включается и конфигурируется цифро-аналоговый преобразователь (DAC), используемый для генерирования SSTV сигнала. Конфигурируется аппаратный приемо-передатчик интерфейса SPI (необходимый для работы с SD картой памяти, а также для информационного обмена с центральным устройством). Для работы с картой SD памяти в микроконтроллере используется аппаратный SPI в режиме “mode 0” (Positive Pulse Latch, then Shift). Выбирается источник тактового сигнала: кварцевый генератор на частоте резонатора. Включаются и конфигурируются таймеры, и прерывания по таймеру (для задания частоты сигнала SSTV). Происходит инициализация SD карты памяти в режиме работы SPI mode, данный режим коммуникации является вторичным для работы с картами памяти SD (первичный «SD mode»). Режим выбирается после подачи питания командой начального сброса (CMD0). Выбран протокол обмена SDC V1. Дале происходит тестирование файловой системы карты памяти (на признаки наличия FAT32). Конфигурируются интерфейсы UART, на в режиме 115200,8,N,1. Инициализируется модули фотокамер: микроконтроллер последовательно подключается к каждой камере и переводит ее в режим пониженного энергопотребления (Sleep Mode).

Программа функционирует в трех потоках. Главный поток Main Loop содержит модуль самотестирования, и обработчик команд полученных от центрального устройства. При получении данных на линию SPI срабатывает прерывание, определяет тип команды и выставляет флаг «команда получена» для главного потока. Третий поток Timer Loop. Здесь задается частоты для генерирования синусоидального сигнала для SSTV.

________

1. Долженков, А.П. Устройство удаленной автоматизированной фотосъемки [Текст] / Долженков А.П., Рыбочкин А.Ф. , Атакищев О.И. // Применение инновационных технологий в научных исследованиях. Юго-Зап. Гос. ун-т. Курск, С. 268 – 272.