ОБ АВТОРЕ | СТАТЬИ | ПРОГРАММЫ | ФОРУМ | F.A.Q. | КОММЕРЦИЯ | КОНТАКТЫ | |
|
|
||||||
В настоящее время в продаже
появилось большое количество устройств, получивших название JPEG-камер. Данные
устройства позволяют производить снимки различных объектов, сжимать их в формат
JPEG, и моментально передавать данные по каналу UART (микроконтроллерный аналог
RS232), RS485 или RS232.
Перейдем к описанию протокола приема-передачи
данных.
Первоначально установленная скорость
приема-передачи данных для различных вариантов своя. Для некоторых устройств
битрейд значения не имеет, и определяется автоматически при инициализации. Но
мне не повезло, моё устройство инициализируется только на скорости 57600. Эту
скорость имеется возможность впоследствии, при настройке, переустановить, но
начинать следует именно на ней. Для камеры С328 включена функция автоопределения
скорости, поэтому она автоматически определяется во всем диапазоне битрейдов, но
для камеры С328 начальная скорость приема-передачи равна 14400 бод. Эту
особенность следует учитывать при разработке устройств под различные камеры…
После проведения инициализации необходимо установить основные параметры отображения (рис. 5). Для этого используется несколько команд. Необходимо помнить, что для различных камер эти данные могут отличаться, поэтому следует внимательно ознакомиться с даташитом на используемое устройство.
Далее в таблице приведены все возможные команды JPEG-камеры.
Теперь более подробно. Для наглядности приведем
пример. Задача: требуется получить снимок JPEG-качества размером 640х480, размер
пакета данных 512 байт, скорость приема-передачи 115200 бод. 0xAA 0x01 0x00 0x07 0x00 0x07, где, согласно рис. 5: При удачном выполнении устройство выдает ответ: 0xAA 0x0E 0x01 [xx] 0x00 0x00, где [xx] – любое число. Ответы камеры следуют после каждого запроса, при этом третий байт определяет, на какую команду был дан ответ. В случае ошибки будет дан ответ: 0xAA 0x0F 0x01 [xx] [Код ошибки] 0x00 Коды возможных ошибок представлены в таблице:
Настройка выполнена успешно. Следующим этапом выполняется установка битрейда. Для скорости передачи 115200 бод необходимо подать следующую команду: 0xAA 0x07 0x0F 0x01 0x00 0x00 После этого, до получения ответа, требуется
оперативно переключить на эту же скорость управляющее устройство, иначе ответ
будет некорректным. Следует отметить, что установку скорости необходимо
выполнять только один раз после подачи питания. При сбросе питания некоторые
камеры сбрасывают установки на первоначальные, где скорость может быть
установлена фиксированной (например, 57600 бод), или активируют функцию
автоматического определения скорости приема-передачи. 0xAA 0x06 0x08 0x00 0x02 0x00 Здесь четвертый (младший разряд) и пятый (старший) байты и являются размером пакета данных. В нашем случае 0х0200 равно 512 байтам. Если требуется установить формат 64 байта, то следует передать в порт: 0xAA 0x06 0x08 0x04 0x00 0x00 Возможность устанавливать размер пакета данных
очень удобен, особенно если для управления камерой применяются микроконтроллеры
с малым объемом оперативной памяти. 0xAA 0x05 0x00 0x00 0x00 0x00 Получение результатов снимка: 0xAA 0x04 0x01 0x00 0x00 0x00 Третий байт – тип снимка: съемка (полный формат, 0х01), предпросмотр (0х03) или JPEG-предпросмотр (0х05). В ответ камера передаст две посылки: 0xAA 0x0E 0x04 [xx] 0x00 0x00 где [А] [B] [C] – размер полученного файла в байтах, вычисляется по формуле: (([C] * 256) + [B]) * 256 + [A] Всё, все предустановки сделаны, снимок сделан, размер файла известен, осталось только его из камеры «извлечь». Для этого посылаем в порт команду: 0xAA 0x0E 0x00 0x00 0x00 0x00 для получения первой «партии» данных. В ответ придет посылка вида, изображенного на рис. 6.
Остановимся подробнее на формате посылки. Как
видно, кроме байтов данных присутствуют также специальные данные: 2 байта
идентификатора – номера посылки, 2 байта размера посылки, а также 2 байта
верификации (проверка корректности принятых данных, вычисляется обычным
суммированием всех байт, входящих в посылку). Исходя из этого, становится
понятно, что в посылку, состоящую из 512 байт, входит только 506 байт собственно
данных снимка. 0xAA 0x0E 0x00 0x00 [A] [B], где [A] – младший байт идентификатора (номера посылки), [B] – старший байт идентификатора. то есть для получения посылки с номером 1 необходимо передать 0xAA 0x0E 0x00 0x00 0х01 0х00 а для получения посылки с номером 5: 0xAA 0x0E 0x00 0x00 0х05 0х00 После получения всех посылок передается команда: 0xAA 0x0E 0x00 0x00 0xF0 0xF0 передача данных завершена. Можно использовать
полученные данные: сохранять их на диск или иное запоминающее устройство или
выводить на дисплей.
Данное программное обеспечение подключается к камере через преобразователи USB>>UART, USB>>RS232, USB>>RS485, RS232>>UART, в зависимости от того, какой протокол использует камера и какие порты имеются в наличии у компьютера. Примерное подключение представлено на рис 8.
Теперь о том, как работать с программой.
Полученное изображение можно сохранить, нажав
кнопку «Сохранить».
|
|||||||
Комментарии |
|||||||
|
|||||||
Поддержка работы сайта: Z585211219986 (USD) E693987287372 (EUR) R427344352799 (RUR) U793913124801 (UAH) B217286195816 (BYR) |
©®DDN Research CL, Ukraine |
||||||
|