"ЖУРНАЛ РАДИОЭЛЕКТРОНИКИ"  N 6, 2007

оглавление

дискуссия


УДК 681.382.473, 53.08:004

Система регистрации изображений на основе однокристальной цифровой камеры KAC-9630

 

А.В. Калачев

Алтайский государственный университет


Получена 5 июня 2007 г.

В данной работе приводится описание цифровой фотокамеры, созданной на основе монохромной КМОП фотодиодной матрицы фирмы Kodak KAC-9630. Представлены структурная схема камеры, приводится описание программного обеспечения управляющего контроллера и персональной ЭВМ. Описаны основные режимы работы и приведены параметры прибора. 

 

Введение

При исследовании многих технологических и природных процессов, большой объем полезной информации может быть получен путем регистрации собственного или рассеянного оптического излучения объекта. Применение фотографии в подобных исследованиях существенно расширяет возможности последующего аналитического описания процессов. Необходимость записи нескольких последовательных кадров возникает при исследованиях распространения искровых и грозовых разрядов, динамики ударных волн в различных средах, нестационарных процессов горения. При этом от камеры требуется хорошая чувствительность, высокое быстродействие и пространственное разрешение. Многими этими качествами обладают серийные цифровые фото- и видеокамеры известных фирм: Canon, Nikon, Kodak и некоторых других. Их использование позволяет создавать системы измерения температуры, скорости процессов [1-3].  Современной базой для создания скоростных регистраторов изображений являются однокристальные камеры на основе КМОП фотодиодных матриц [4-10], содержащие кроме фотоматрицы еще и схемы выделения и цифровой обработки сигнала [4]. В различных режимах фотодиодные камеры могут обеспечивать скорости съемки порядка 800 кадров в секунду при размерах кадра порядка 1 миллиона точек [5-8]. Однокристальные камеры представлены на рынке достаточно широко. Можно выделитьVGA камеры фирмы MicronMT9V403, со скоростью съемки до 200 кадров в секунду, камеру MT9V413 с разрешением 1280х1024 и скоростью 500 кадров в секунду при полном формате кадра [7].

Основной задачей данной работы была разработка сравнительно недорогой фото-видеокамеры для исследования процессов твердопламенного горения и атмосферных грозовых разрядов. Временные характеристики, в частности процессов твердопламенного горения, позволяют использовать скорости съемки в районе 200-1000 кадров в секунду. При исследовании нестационарных режимов интерес представляют области размерами 200-1000 мкм, что даже при незначительном оптическом увеличении (2-10 раз) применять камеры малого формата. Для реализации видеокамеры была использована однокристальная КМОП фотодиодная камера фирмы Kodak KAC-9630 [9]. При меньшем размере кадра – 128х101, данная камера обладает на порядок лучшей чувствительностью – 22 V/lux.s, при обычном значении 2-5 V/lux.s у основной массы сенсоров.

 

Структура фотокамеры

Однокристальная цифровая камера KAC-9630 кроме фоточувствительных ячеек с декодерами выборок, камера имеет управляемый усилитель видеосигнала, встроенный 8-ми разрядный АЦП, блок регистров конфигурации и управления, последовательный интерфейс, совместимый с протоколом I2C (рис.1). Схема синхронизации камеры обеспечивает совместную работу узлов микросхемы и формирование выходного цифрового видеосигнала. Банк регистров позволяет задавать время интегрирования оптического сигнала, время паузы между кадрами, изменять коэффициент предварительного усиления аналогового видео сигнала, управление питанием и состоянием выходов, форматом выходных цифровых  данных [9].
 

Рисунок 1. Внутренняя структура однокристальной камеры КАС-9630.

 

Наибольшая скорость кадров и стабильные параметры обеспечиваются при параллельном формате выходных данных. При этом с БИС камеры идет непрерывный поток данных, объемом от 8 до 10 Мбайт/с с перерывами на время интегрирования и межкадровую паузу.

При разработке регистратора изображений был избран модульный подход, обеспечивающим наибольшую гибкость при возможных дальнейших модификациях. Прибор состоит из трех основных блоков: сигнального блока, блока управления и интерфейсного блока (рис.2) . Каждый из блоков также может быть использован независимо от других. В аналогичной разработке [11-13] авторы использовали FIFO буфер и схему управления, выполненные на микросхеме FPGA.  Сама фирма Kodak предлагает вариант отладочной платы [14] с промежуточным буфером и подключением к LPT порту в  EPP режиме [15].

Сигнальный блок содержит однокристальную камеру, генератор тактовой последовательности, логику синхронизации, буферный регистр с третьим состоянием выводов. Микросхема камеры тактируется кварцевым генератором, работающим на частоте 10 МГц. Синхронизация по внешнему импульсу осуществляется с помощью RS-триггера.

Блок содержит также преобразователь напряжения питания для однокристальной камеры (стандартное напряжение питания KAC-9630 – 3.3В). Управление потоком видео данных осуществляется буферным усилителем DD3 имеющим третье состояние выходов. При операциях передачи данных из буферной памяти на USB поток данных камеры отключается. Следующим блоком используются сигналы кадровой и строчной синхронизации микросхемы КАС-9630.
 

Рисунок 2. Внутренняя структура камеры. 1- сигнальный блок; 2 – блок управления; 3 – интерфейсный блок.

 

Блок управления содержит управляющего контроллера ATmega8 [16], логику синхронизации, буфер данных.

Буфер выполнен на двух микросхемах статической асинхронной памяти AS7C4096, имеющих организацию 8х512К. Общий объем буфера таким образом составляет 1 Мбайт. Младшие 12 бит буферной памяти адресуется реверсивным счетчиком, старшие 8 бит микроконтроллером. Для упрощения схемы, программного обеспечения и увеличения скорости работы буфер имеет организацию LIFO (Last In First Out). Дополнительная синхронизация и управление чтением/записью осуществляется при помощи логической схемы, реализованной на элементах стандартной логики.

Блок  USB интерфейса выполнен на основе микросхемы FT245BM фирмы Future Technology Devices Intl Ltd, обеспечивающей преобразование USB протокола в обычный параллельный при скорости до 1 Мбайт/с по типовой схеме включения [17].  Управление передачей данных и формирование требуемых уровней обеспечивается контроллером.

Работа устройства в целом происходит по следующему принципу. При включении контроллер блока управления проводит инициализацию однокристальной камеры и ее запуск в режиме непрерывной видеосъемки. Далее выставляет начальный адрес на своих линиях, сигналы разрешения работы счетчиков и разрешения записи в память. При этом видеоданные непрерывно записываются в буфер по принципу "кольца" иногда называемого "кольцом времени" или "машиной времени". При поступлении внешнего сигнала проверяется обновление параметров видеосъемки, записывается требуемое количество кадров, после чего необходимое количество кадров передается по USB шине на компьютер для последующей обработки.

 

Структура программного обеспечения

Контроллер выполняет функции адресации памяти при операциях чтения/записи данных, генератора последовательностей при операциях с USB шиной. Программное обеспечение контроллера выполнено на языке Форт, как одном из наиболее удобных при разработке программ для управления аппаратурой [18,19]. Использовался компилятор AVR ByteForth v2.08 [20].

Блок схема управляющей программы контроллера представлена на рис.3. При запуске производится установка Форт-машины для данного контроллера – выделяется память под стеки данных и возвратов, устанавливаются регистровые переменные. Далее устанавливаются направления и режимы работы выводов, необходимые уровни на выходных линиях, инициализируется последовательная шина I2C. После этого контроллер инициализирует камеру в режиме видео.
 

Рисунок 3. Блок-схема управляющей программы контроллера.

 

После конца первого кадра разрешается запись видеоданных в буферную память. Камера выдает видео данные строками по 128 точек промежуточной паузой на синхронизацию. Это позволяет уменьшить количество аппаратных счетчиков, переложив функции управления старшими 8 битами адреса на контроллер. Младшие четыре килобайта адресуются при помощи реверсивных счетчиков. В этой связи после каждых 32 записанных строк проводится изменение старшей части адреса буферной памяти. По окончании кадра, контроллер проверяет наличие стартового сигнала, выставляемого по приходу внешнего импульса, начинается подсчет количества записанных кадров.  После записи установленного ранее числа кадров, проводится чтение буфера интерфейсной микросхемы FT245.  Если стартовый сигнал вызван необходимостью изменения конфигурации камеры (время интегрирования, межкадровая задержка, усиление) из буфера микросхемы считываются номера регистров камеры, подлежащие изменению и их новые значения, иначе начинается передача необходимого числа записанных кадров. При установках число записанных после стартового импульса кадров и число переданных кадров могут быть различными. Вариацией этих параметров можно получить режимы с предварительной записью (данные содержат информацию о произошедшем до стартового импульса) или с паузой до начала записи. После завершения операций выдается сигнал разрешения для следующего стартового импульса, по окончании кадра разрешается новая запись в буферную память.

Процесс, обеспечивающий прием и первичную обработку данных на персональном компьютере разбит на три относительно независимые нити, имеющие общие области памяти и связанные между собой посредством флагов/семафоров. В функции основного процесса входит выделение памяти под видеоданные, буфер окна визуализации, инициализация общих флагов и переменных, создание и запуск дочерних процессов. Все созданные потоки (нити) имеют одинаковый приоритет, совпадающий с приоритетом основного процесса. Структура управляющей программы приведена на рис.4.

Основная нить процесса – нить приема данных с камеры через программный интерфейс преобразователя USB/параллельный код [17]. Нить создается активной. После запуска открывается FTDI устройство, в его буфер заносятся начальные параметры. Нить входит в замкнутый рабочий цикл, состоящий из следующих операций. Проверяется флаг обновления параметров камеры. Если флаг установлен, содержимое общей для всех нитей структуры Camera, содержащей номера регистров и их новые значения, передается в FIFO буфер FT245BM, флаг сбрасывается. При сброшенном флаге производится попытка чтения данных камеры в массив данных. Если при этом активен флаг записи данных, то они копируются во временный файловый буфер, пробуждается нить записи данных файлового буфера на жесткий диск, цикл повторяется.
 

Рисунок 4. Структура процесса управления камерой.

 

Нить записи данных в файл организована в виде бесконечного цикла, создается изначально спящей (неактивной). При пробуждении нить создает дисковый файл, на основе текущих установок процесса формирует заголовок файла, записывает содержимое файлового буфер. В конце файла дополнительно дописываются параметры камеры (содержимое регистров, количество кадров). Файл закрывается, нить переходит в спящее состояние. После пробуждения нити цикл повторится. Третья нить отвечает за отображение данных и визуальный интерфейс с пользователем. По пользовательским командам обновляется структура Camera, выставляются или сбрасываются флаги установки новых параметров и записи данных на жесткий диск. Отображение видеоряда проводится по событию таймера после чтения требуемой области видеобуфера.

Управляющая программа запускается с консоли Форт-системы, тем самым сохраняя полный контроль над ходом выполнения программы и работой аппаратной части и сохраняя гибкость в плане реализации любых режимов съемки (рис.5). При необходимости создается отдельный исполнимый файл.

При создании программного обеспечения использовалась система SP-Forth Андрея Черезова [22,23], набор библиотек объектно-ориентированного программирования Joop Дмитрия Якимова и библиотека для работы с Windows графикой Андрея Филаткина.

 

Рисунок 5. Внешний вид главной консоли Форт-системы и визуального интерфейса  c камерой.

 

Внешний вид фотокамеры и некоторые примеры работы представлены на рис.6 и рис.7.

 

           

Рисунок 6. Внешний вид фотокамеры.

 

Видно  движение отдельных капель на снимках с несколькими последовательными кадрами (рис 7а), и в режиме одиночных снимков (рис.7б). На одном из снимков зафиксирована вспышка молнии.

В режиме одиночных снимков (при постоянной передаче данных с камеры на компьютер) достигается средняя скорость съемки 6-8 кадров в секунду.

 

а)                                                                                           б)

Рисунок 7. Примеры фотосъемки в различных режимах. а) регистрация дождевых капель; б)  пучок излучения лазерного диода.

 

Параметры прибора

Видеоданные сохраняются в файлах формата BMP (Bit Map Picture) без сжатия. Файл содержит картинку из последовательности принятых кадров. Непосредственно за данными следует содержимое структуры, содержащей настройки камеры в момент съемки, не влияющее на отображение информации программами просмотра изображений. Прибор обладает следующими основными параметрами:

- разрешение 128х100 точек;

- скорость записи  до 580 кадров в секунду;

- время интегрирования оптического сигнала 10 мкс – 20 мс;

- встроенный буфер на 81 кадр;

- синхронизация по событию.

Управление прибором и чтение видео данных организованы при помощи интерфейса USB.  Организован режим «колеса времени», возможна запись видео данных, как до события, так и после него. Программное обеспечение позволяет полностью контролировать работу камеры, имеется возможность для организации практически любого режима съемки. Цифровая фотокамера может быть использована при исследовании быстропротекающих нестационарных процессов, детекторов движения, систем технического зрения.

 

Литература

  1. Цыба Г.А., Саламатов В.Г., Поляков В.Л. Видеопирометр. // Приборы и техника эксперимента. 2003. №4. – С. 54.

  2. Евстигнеев В.В., Гуляев П.Ю., Калачев А.В. Разработка системы оптического инфракрасного мониторинга на основе серийной цифровой фотокамеры. // Оптические, радиоволновые и тепловые методы и средства контроля качества материалов, промышленных изделий и окружающей среды. Труды IX международной научно-практической конференции.- Ульяновск: Изд. УлГТУ, 2004.-212с., с.25-30.

  3. Гарколь Д.А., Гуляев П.Ю., Евстигнеев В.В., Мухачев А.Б. Новая методика высокоскоростной аркостной пирометрии для исследования процессов СВС. // Физика горения и взрыва. 1994. №1. – С.72 -77.

  4. Стемпковский А., Шилин В. КМОП фотодиодные СБИС перспективная элементная база однокристальных систем приема и обработки информации // Электроника: Наука, Технология, Бизнес 2/2003.c.14-20.

  5. Mansoorian B., Yee H–Y., Huang S., Fossum E. A 250mW frames/s 1280x720 pixel 9b CMOS digital image sensor. – IEEE, 60 Int. Solid–State Circuit Conference, 1999.

  6. Mansoorian B., Yee H–Y., Huang S., Fossum E. A 250mW frames/s 1280x720 pixel 9b CMOS digital image sensor. – IEEE, 60 Int. Solid–State Circuit Conference, 1999.

  7. High Speed Applications – CMOS Image Sensors. http://www.micron.com/imaging/applications/high.htm.

  8. 1 Mpixel CMOS High Dynamic Range Photosensor Array. http://www.ims.fhg.de/1mpx_cmos_higth_dynamic_range_en.pdf

  9. Kodak KAC-9630 CMOS image Sensor. http://www.kodak.com/ezpres/business/ccd/global/plugins/acrobat/en/datasheet/cmos/KAC-9630LongSpec.pdf

  10. Kris Kwiatkowski, Nicolas Kind, Vincent M. Douence A New “Camera on a Chip” for pRad Movies.// Los Alamos Science. 2006. № 30. – С. 46-51.

  11. S. Yoshimura, T. Sugiyama, K. Yonemoto and K. Ueda. “A 48k frame/s CMOS Image Sensor for Real-time 3-D Sensing and Motion Detection,” IEEE Int. Solid-State Circuits Conf.(ISSCC) Dig. of Tech. Papers, pp. 94 – 95, Feb. 2001.

  12. Y. Oike, M. Ikeda and K. Asada, “640 × 480 Real-Time Range Finder Using High-Speed Readout Scheme and Column-Parallel Position Detector,” IEEE Symp. VLSI Circuits Dig. of Tech. Papers, pp. 153 – 156, Jun. 2003.

  13. R.Beuchat, C.Gaudin Interface caméra sur RokEPXA1. EPFL Lausanne Laboratoire d’Architecture des Processeurs.

  14. Evaluation Kit for Kodak KAC-9630 CMOS image Sensor. http://www.kodak.com/go/imagers/kac-9630evalkit.pdf.

  15. Гук М. Интерфейсы ПК : Справочник. СПб.: ПитерКом. 1999. – 403с.

  16. 8-bit AVR Microcontroller with 8K Bytes In-system Programmable Flash http://www.atmel.com

  17. DS245B Version 1.0. Future Technology Devices Intl. Ltd. 2002.  http://www.ftdichip.com

  18. Баранов С.Н., Норздунов Н.Р. Язык Форт и его реализации. Ленинград. Машиностроение Ленинградское отделение. 1988.

  19. Leo Brodie  Thinking FORTH  A Language and Philosophy for Solving Problems        Englewood Cliffs, N.J., Prentice-Hall, Inc., 1984

  20. Willem Ouwerkerk AVR ByteForth version 2.07. http://www.forth.hccnet.nl

  21. D2XX Programmer’s Guide 2.01. http://www.ftdichip.com/D2XXPG21.pdf

  22. SP-Forth. http://spf.sf.net

  23. Russian Forth Interest Group. http://www.forth.org.ru

xxx