Микросхема динамической памяти DRAM - в качестве видеокамеры

Микросхема динамической памяти DRAM - в качестве видеокамеры

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

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

Выходом из сложившегося положения явилось нетрадиционное применение кристалла динамической памяти. Оказывается, что DRAM может использоваться как чувствительный оптический датчик. Несколько лет назад фирма Micron Technology (американский производитель интегральной схемы на монокристалле) выпустила специальную версию 64k-DRAMS с контрольным окошком, которая продается как сенсор изображения. Так как геометрия кристалла в микросхеме известна, то приложив некоторые усилия можно было сделать видеокамеру. К сожалению эти чипы перестали продавать, что явилось преградой к созданию компьютерной камеры.

Тем не менее, я разобрал компьютерную плату с микросхемами памяти DRAMS, которые имели керамический корпус с металлической крышечкой. Металлическую крышку я убрал довольно быстро, под ней оказалось защитное стекло. Что же делать дальше? Чтобы успешно продолжить эксперимент, было решено использовать параллельный порт персонального компьютера, который как нельзя лучше подходил для ввода/вывода информации. Для управления были написаны две небольшие программы на Ассемблере. И - о, чудо! - после нескольких испытаний на дисплее компьютера можно было увидеть какое-то изображение.

Как же это работает?

64k-DRAM содержит 65536 ячеек памяти, которые расположены в форме матрицы, имеющей обычный доступ. В данном случае здесь использовалась микросхема D4164 фирмы NEC, представляющая собой четыре матрицы по 64x256 ячейки памяти.

Каждая ячейка памяти состоит из конденсатора и комплементарных транзисторов. В конденсаторе аккумулируется информация в форме электрического заряда. Комплементарные транзисторы осуществляют доступ (производят коммутацию) к этому конденсатору.


Рис.1. Схема ячейки памяти

Если выбрана строка матрицы, то переключая поочередно все 256 комплементарных транзисторов этой строки соединяют нужный конденсатор (ячейку) с одним из 256 усилителей. Если напряжение в усилителе выше определенного уровня, то принимается, что это логическая 1, в противном случае на выходе усилителя будет логический 0. Отсчитывая один из 256 усилителей в данной строке (т.е. выбирая адрес столбца), мы выбираем необходимый сигнал на выходе DRAM.

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

Засветкой (экспонированием) конденсатора этот эффект будет усилен, конденсатор разрядится значительно быстрее, результатом будет опрокидывание бита информации. Время разряда конденсатора будет является главной величиной интенсивности света в этой ячейке памяти.

Для использования этого эффекта необходимы следующие шаги:

- Сначала все конденсаторы памяти заряжаются.

- Потом в течение некоторого времени идет облучение ячеек памяти.

- Все ячейки памяти опрашиваются и анализируются. Каждая ячейка (фотоэлемент), просматривается на предмет инвертирования первоначального состояния, что будет расцениваться как засветка.

DRAM является микросхемой памяти, поэтому распределение логического адреса должно соответствует физическому месту на кристалле. Чтобы узнавать это распределение необходимо провести несколько испытаний.

В микросхеме DRAM, адреса ячеек которой состоя из двух составляющих - адреса строк и адреса столбцов, можно предположить, что и в физической структуре кристалла они расположены точно также. Как обнаружилось, это фактически так и есть, т.е. логические адреса строк соответствуют физическим строкам и логические адреса столбцов соответствуют физическим столбцам.

Логические адреса в пределах строки соответствуют разумеется не физическому месту ячейке памяти на интегральной схеме на монокристалле. В обработанном изображение видно это ошибочное распределение перестановленными строками и столбцами. Перестановка разрядов адреса позволяет этот дефект устранить, но, тем не менее, здесь все-таки нужен экспериментальный подход. Геометрия интегральных схем на монокристалле различных изготовителей может быть другой. Поэтому программа управления функционирует правильно так только с микросхемами типа 4164 фирмы NEC. Для других микросхем памяти возможно будут возникать ошибки, но зная принцип управления можно корректировать результат.

Теперь будет ясно, что наша интегральная схема на монокристалле состоит из четырех матриц, которые лежат рядом. Две крайних матрицы разделены от двух средних относительно большими зазорами; это вносит некоторые ошибки в изображение. В этих зазорах находится наверное декодирующая логика. Две средних матрицы разделены гораздо более малым зазором, так что они могут рассматриваются как матрица размером 128x256 ячеек. На этом основании в качестве датчиков используются только две средние матрицы. Взгляд через лупу на на микросхему отчетливо определяет матричную структуру кристалла.


Рис.2. Топология кристалла

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

Установить правильное распределения не всегда просто, так как тут необходима солидная интегральная оптика, и очень точная фокусировка изображения. Рисунок отчетливо виден лишь тогда, когда распределение правильное!

Лучше всего начинать испытания с белой поверхностью, на которую помещаются и перемещаются темные объекты. Тщательное наблюдение, точная фокусировка объектива и некоторое терпение помогут распознать грубые неисправности (несовпадения) и тогда выявят особенности интегральной схемы на монокристалле. Грубые неточности распознаются с помощью черных линий, локализуются на кристалле и берутся под контроль.

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


Рис.3. Схема включения ИМС в параллельный порт

В обычной плате с высокой интеграцией отдельные модули связаны непосредственно CMOS-выходами с портами принтера по шине с низкой нагрузочной способностью, поэтому здесь должен быть буферный двунаправленный драйвер.

Теперь при помощи кабеля соединяют параллельный порт с панелькой на которой будет установлена микросхема DRAM. Гнезда этой панели должны иметь хорошие контакты (желательно позолоченные) и выдерживать многократные замены, так как придется подбирать необходимую микросхему. Необходимо также вывести отдельное гнездо питания для микросхемы, так как напряжение на выходе LPT-порта здесь использовать нельзя. Принтер, однако, не может быть теперь присоединен там!

Очень важен также разделительный конденсатор между штырьком 8 и штырьком 16 DRAM, так как при включении там протекает достаточно высокий электрический ток (около 100 mA). Этот конденсатор припаивается непосредственно к корпусу кристаллодержателя (панельки) ИС (обратите внимание на полярность! Штырек 8 является +5 вольтами, штырек 16 является массой). Без этого конденсатора вообще ничто не функционирует!

Механическая конструкция интегральной оптики

Полезная поверхность кристалла микросхемы NEC 4164 составляет примерно 1,2х6 кв.мм, если отказываемся от обеих крайних матриц. Интегральная оптика должна выполнятся и выбираться исходя из этого факта.

Объективу с 8 мм фокусными расстояниями соответствует примерно 50 мм стандартный объектив в малоформатном фотоаппарате. В расчет принимаются также объективы с фокусными расстояниями от 5 до 35 мм.

Это оптика окупает себя в дальнейшем использовании. Нами был применен упомянутый объектив от камеры Super-8 (фокусное расстояние f = 25mm). Лучше использовать короткофокусные объективы, например от старых тонких пленочных фотоаппаратов, дефектной бытовой телекамеры и т.д. В комиссионных фотомагазинах и фотоателье, надеюсь, Вам предложат подходящий объектив.

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

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

Световая чувствительность

Интегральная схема на монокристалле не обеспечивает высокую чувствительность света, так что времена облучения кристалла более длительное, чем у настоящей CCD-видеокамеры.

Скорость перемещения фиксируемых объектов зависит от освещенности и составляет от сотен до 20 секунд. Более длительные времена не возможны, так как иначе изображение сильно "зашумлено" (размыто). В течение этого довольно длительного периода облучения желательно иметь штатив для вашей конструкции. Также Ваши руки должны быть свободными, чтобы производить коррекцию времени облучения, работая на клавиатуре компьютера и записывая удавшиеся изображения.

Отмечено, что кристалл микросхемы DRAM более восприимчив к красному спектру оптического диапазона, чем к голубому, возможно он имеет хорошую спектральную чувствительность в инфракрасном (невидимом) спектре излучения.

Программное обеспечение

Инициализация и чтение кристалла памяти выполняется программами на Ассемблере, которые вставлены в программы на Turbo-Pascal.

Инициализациия

Процедура INITRAM инициализирует интегральную микросхему. Так как наличию заряда в ячейках памяти микросхемы NEC 4164 соответствует логическая "1", то во все ячейки предварительно записываются "1". Для управления микросхемой DRAM необходимо некоторое количество сложных тактирующих сигналов.


Рис.4. Тактирование при чтения ИМС

Сначала устанавливается счетчик адреса строки на адресном входе микросхемы. Вход RAS при этом будет установлен в "0" - разрешается установка адреса строки. Далее выдается адрес столбца, вход Din устанавливается в желаемое значение (в нашем случае все ячейки устанавливаются в "1"), затем вход CAS переводится в "0". DRAM принял теперь адрес столбцов и бит данных. Этот процесс повторяется для всеч 32768 ячеек памяти; теперь микросхема DRAM инициализирована, все конденсаторы заряжены (записаны "1").

Далее проходит некоторый период времени в течение которого происходит облучение кристалла памяти микросхемы. Когда это время истекает происходит считывание информации из ячеек памяти, при этом подсвеченные ячейки изменят свое состояние (засвеченные конденсаторы разрядятся быстрее).

Считывание информации

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

Программа корректирования выравниваете различную чувствительность отдельных пикселей. (Ячейки памяти на краях матрицы более чувствительны, чем центральная зона.)

Так как между обеими средними матрицами (для NEC 4164!) есть небольшой зазор, имеется ещe вторая программа коррекции. Она растаскивает обе половинки изображения на 5 пикселов и возникший интервал рационально заполняет. В некоторых случаях рациональнее отказаться от этой коррекции или улучшить алгоритм обработки.

Три программы INITRAM (инициализация), LESERAM (чтение) и коррекция содержатся в процедуре "Экспонирование" и необходимы для создания интервала времени облучения матрицы и записи информации изображения.

Процедура "ANZEIGE" (ИНДИКАЦИЯ) служит для быстрого вывода изображения из VGA-карты. При этом информация о изображении вводится непосредственно в видеопамять, что существенно ускоряет результат. К сожалению, вертикальные расстояния отдельных ячеек памяти двоятся, что объясняется процедурой компенсации в программе индикации. При использовании других адаптеров дисплея возможно потребуется подстройка этой подпрограммы.

Процедуры "SPEICHERN" (Запись) и "LESEN" (Чтение) записывают и соответственно сохраняют изображение в BMP формат и скидывают на жесткий диск.

Другие программы

Рассмотренные выше программы используются другими прикладными программами. Программа "KUCKUCK" (Кукушка) является самой важной изо всех; с ее помощью записываются отдельные изображения, а также серии изображений с 2, 4 или 10 уровнями яркости. Текущее изображение всегда на мониторе и может записываться с помощью клавиши "пробел".

Принципиально камера, конечно, может принимать изображения только с 2 уровнями (черное и белое), тем не менее можно производить неоднократные облучения изображения с полутонами (оттенками серого).


Рис.5. Диаграмма разряда конденсатора ячейки памяти

Однократные экспонирования полутоновых изображений записываются последовательно в файлы (".3" и соответственно ".9") и далее преобразовываются для дальнейшей обработки программами "Grau3", "Grau4" и "Dither": "Grau3" производит 3 однократных экспонирования точечного рисунка с 4 уровнями яркости. (4 бита на пиксель информации, при этом используются только цвета 0, 7, 8 и 15 и, соответственно - черный, светло-серый, темно-серый и белый уровни. Для быстрой экранной обработки полутоновых изображений необходимо другое преобразование: программа "Grau4" преобразовывает одинаковые входные данные как каким же образом как и "Grau3", но в другом формате.

Девять однократных экспонирований для файла ".9" преобразовываются программой "Dither" в черно-белое изображение (соответственно 3 раза по ширине и высоте оригинал). В результате экспонирований каждый пиксель в девяти изображениях для каждой точки создаст матрицу случайных распределений размером 3х3 пикселя.

Программа "FilmAb" (Видеоклип) служит для просмотра созданных последовательностей изображений, которые в свою очередь были созданы программой "KUCKUCK". Таким образом, могут создаваться короткие "видеоклипы" с 2 или 4 уровнями яркости и порядок просмотра может выбираться при этом любой.

Так как формат 128х256 точек получается достаточно большим, особенно длина строк в два раза выше, чем столбцов, то можно воспользоваться "половинным форматом" с разрешение 128х128 точек. Прежде всего при выполнении программы "FilmAb" (Видеоклип) нужно рационально нагружать эту опцию, чтобы экономить место на диске.

Полученные отдельные изображения могут обрабатываться программами Windows, например, Paintbrush.

Список отдельных процедур и программ:

- VIDEO.INC содержит высокоуровневые процедуры:

- INITRAM, INITRAM2: Инициализация микросхемы D4164 в полный и соответственно половинный формат.

- LESERAM, LESERAM2: чтение информации изображения.

- ANZEIGE: быстрый ввод в VGA-карту.

- LESEN: файл точечного рисунка с 2 цветами, размером 128х256 и 128х128 пикселей.

- SPEICHERN: данные точечного рисунка, формат как при чтении

- KUCKUCK: Запись в двух форматах - в 2, 4 или 10 уровней яркости.

- GRAU3: Генерирует 4-х цветный BMP файл из 3 однократных экспонирований (".3" -> ".BMP").

- GRAU4: Генерируются данные с информацией для 4 бита VGA-карты (".3" -> ".4").

- DITHER: Из 9 однократных экспонирований создается 2 цветных изображение (".9" -> ".BMP").

- FILMAB: 2-х или 4-х цветные точечные рисунки объединяются в фильм (присваивается имя: "имя. BMP").

Литература:

- Datenblatt IS 32 Optic Ram, Micron Technology
- Datenblatt 4164 DRAM, NEC
- c't 6/88 PC-Bausteine, Details ьber die Centronics-parallele-Schnittstelle
- Byte September / Oktober 1983. Steve Ciarcia: "Build the Micro D-Cam Solid-State Video Camera"
- Electronics Wireless World April / Mai / Juni 1987. G.J. Avcock, F.W. Stone, R. Thomas: "Image aquisition system"
- Programming Windows: Charles Petzold, Microsoft Press

Комплект оригинальной документации в файле kuckuck.zip (283 kB)

Примечание переводчика
Данная работа, судя по дате создания файлов, была написана в 1992 году, когда еще даже 486 компьютеры были очень крутой штукой. Возможно под современные РС придется корректировать программное обеспечение. Может оказаться, что параллельный порт компьютера не придется дорабатывать (не хочется лишаться принтера :-). Насчет применяемых микросхем: - видимо не просто будет найти DRAM именно фирмы NEC (я у себя в хламе такой не нашел пока), а МС другой фирмы может не содержать металлической крышечки. Как тогда добраться до кристалла?

Вообще, мое мнение, что данная статья является лишь отправной точкой для экспериментирования над этой интересной проблемой.

В исходном файле есть еще несколько текстовых файлов. Постараюсь их тоже перевести.

Автор: Martin Kurz, перевод Николая Большакова, rf.atnn.ru






Рекомендуемый контент




Copyright © 2010-2017 housea.ru. Контакты: info@housea.ru При использовании материалов веб-сайта Домашнее Радио, гиперссылка на источник обязательна.