Квадратор изображения для систем видеонаблюдения.


Довелось мне как-то поизучать устройство так называемого квадратора видеоизображения. Все наверняка видели как отображают на одном экране изображение с 4/8/16 камер, каждое в своём маленьком квадратике. Вот это оно и есть. Далее рассказ на каких микросхемах это построено и что с этим можно сделать.
На просторах китайских интернетов был приобретён «8CH Color Video Quad Processor» за достаточно символическую цену в 42$. Удовольствия это принесло намного больше.
Традиционный месяц ожидания и на почте забираем долгожданную посылку.
Внутри находим вот такое устройство:

Внутри небольшая плата 9х12см и куча свободного места.
На плате установлены
1. простенький микроконтроллер W78LE516 (сейчас на его месте мной впаян другой процессор на переходнике)
2. здоровенная многоногая TW2823
3. SDRAM K4S643232H-TC60
4. регистр-защёлка 74HC573
5. I2C EEPROM 24C08
6. I2C часы с календарём DS1307

Очевидно что «изюминкой» является TW2823.
Долгие розыски в интернете выдали документацию только на TW2835.
Выяснилось, что это четырёхканальный видеочип.
Имеет четыре 10-ти битных АЦП для оцифровки NTSC/PAL, два 10-ти битных ЦАП для выхода видеосигнала.
Плюс какие-то фильтры и детекторы движения по входным каналам.
Плюс OSD (on-screen display) graphic overlay — для наложения рисунков и текста на видео.
В итоге получается можем оцифровать 4 видеовхода с качеством D1(704x480), запихать это во внешнюю SDRAM, замиксовать как захотим, наложить текст и выдать на видеовыход.
Есть ещё канал аудио, но я его не касался, ничего про него сказать не могу.
Да, входных видео каналов 8, и быстрыми переключениями можем получить как-бы 8-каналов одновременно, хотя АЦП всего 4.
Для задания режимов TW2823 используется внешняя 8-ми битная шина + управляющие сигналы RD, WR, CS.
Изучение платы выявило, что к PORT0 контроллера W78LE516 подключены TW2823, одна 74HC573 для чтения 8 кнопок на лицевой панели и одна 74HC573 для зажигания 8 светодиодов на лицевой панели. Различными CS с W78LE516 выбираем с кем будем работать, и соответственно или писать или читать PORT0.
Также к контроллеру W78LE516 подключены внешняя EEPROM, часы с батарейкой, пищалка.
EEPROM и часы работают по I2C но подключены к разным ногам контроллера, т.е. сидят не на одной шине. Уверен что реализация I2C со стороны контроллера — программная.

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

Долго промучившись со снятием логов обмена стало понятно что терпения чтобы это перелопатить у меня не хватит. В итоге проект был заброшен на неопределённое время.
Затем был найден готовый проект-исходник для TW2835 и тогда всё стало намного легче.
Перепрограммировать W78LE516 не представилось возможным, поэтому он был нещадным образом выпаян и
на его место через переходную платку был установлен контроллер C8051F582.
Выбор C8051F582 обусловлен тем, что он маленький, работает от 5В, без внешнего кварца, и я знаю как с ним работать.
Да, и в нём есть CAN интерфейс, который и предполагалось использовать для общения с платой.
Была изготовлена переходная плата внешними размерами и контактными площадками соответствующая PLCC чипу.
Не все используемые ножки W78LE516 удалось повторить, например пищалка так и осталась не использованной.



Программа для C8051F582 написана на Keil C51, умеет:
устанавливает размеры окон для 4 видеовходов,
включать/выключать каналы,
формировать OSD информацию на экране,
общаться по UART с компьютерной управляющей программой,
запоминать настройки во внутреннюю Flash, и применять их при включении.
Для сглаживания движущихся OSD используются чётные и нечётные поля, пока в одном формируется картинка, другое выводится на экран.
В перспективе было добавить работу с часами, CAN сетью, установить в дистанционно управляемый робот, но мечтам не суждено было сбыться.
Вот пример видео как это может работать.
Всё это делалось больше года назад, поэтому многое забылось и получилось такое немного сумбурное описание.
В приложении
w78le516.zip — даташит на процессор который был установлен
newprj0808.zip — проект под Keil, написаный не мной, который мне очень помог.
C8051F582 TW2823.zip — мой проект под Keil для C8051F582
comPC.zip — проект на Delphi — управляющая программа для СОМ порта
Даташит на TW2835 не смог прикрепить из-за объёма 3,9Мб, вот ссылка для скачивания
docs.google.com/open?id=0B-Ai5Lk7f3p7c1RRTlI5cS1zdFE
и вдогонку несколько ссылок по микросхемам TechWell:
www.secnews.ru/foreign/6148.htm
kit-e.ru/articles/memory/2009_12_98.php
- +11
- 04 ноября 2012, 02:16
- r_o_m_k_a
- 4
Уверен что реализация I2C со стороны контроллера — программная.Ну а какая еще-то, если из интерфейсов там только GPIO и USART?
Перепрограммировать W78LE516 не представилось возможнымПочему? Вроде стандартный MCS51 с EPROM, фьюзы сбрасываемые. Плюс есть раздел для бутлоадера. Возможно можно было нагуглить софтину для обновления прошивки девайса и подсунуть ей свою прошивку.
Комментарии (14)
RSS свернуть / развернуть