Цветной видеосигнал и почему PIC16F84 не может его создать.
В этой части поговорим о том, как работает цветной видеосигнал. Эта тема достаточно сложна и требует некоторых базовых знаний в радиоэлектроники. Я только прикоснусь к этому вопросу, так как слишком сложно вдаваться в детали, да и все равно, невозможно программным путем с помощью PIC16F84 получить цветной видеосигнал. Если Вы хотите получить больше информации, прочтите книгу по этой теме.
Информация о цвете в видеосигнале.
Когда разрабатывалось цветное телевидение, требовалась его совместимость со старым черно-белым телевидением. Поэтому в цветном телевидении много от черно-белого. Если цветной телевизионный сигнал принимается черно-белым телевизором, должно быть возможным смотреть его так, чтобы он не отличался черно-белого видеосигнала. Для этого в видеосигнал был добавлен амплитудно-модулированный сигнал цвета с несущей частотой 4,43 МГц. Несущая цвета фактически добавляет некоторый шум в изображение, но он незначителен. В черно-белых телевизорах, созданных после выпуска цветных, был добавлен специальный фильтр для удаления несущей цвета.
Комбинируя красным, зеленым и синим цветами, можно получить любой оттенок цвета, который Вы желаете. Таким образом, видеосигнал должен содержать три компоненты цвета. По сравнению с черно-белым сигналом это требует передачи значительно большей информации. Сумма всех компонент фактически уже является информацией об интенсивности черно-белого сигнала. Так же при передаче двух цветоразностных сигналов (R-G) и (B-G) можно выделить все три цвета. Но передавать две цветовые компоненты, используя одну несущую частоту, разве это возможно? Да это можно сделать, если генерировать два варианта несущей, с фазовым сдвигом 90 градусов. Сигнал (R-G) передается на оригинальной несущей, а (B-G) на несущей с измененной фазой. Упрощенно видеосигнал можно представить так:
signal_level = (R+G+B) + (R–G)*sin(w*t) + (B-G)*cos(w*t)
Для того чтобы выделить две компоненты цвета, генератор телевизора должен работать синхронно с генератором передатчика. В течении 8 мкс задержки, когда электронный луч движется к началу следующей строки, в черно-белом сигнале ничего не передается.
В цветном сигнале в этот промежуток времени передается около 10 периодов несущей цвета. Эту цветовую вспышку телевизор использует для обеспечения требуемой синхронизации. Если этого не будет сделано, то невозможно будет корректно получить цвет. В ранние годы цветного телевидения цветовой вспышки не всегда было достаточно, генератор был нестабилен, поэтому фаза менялась, и лица людей становились зелеными. Это проблема NTSC стандарта. При создании стандарта PAL, в каждой линии был добавлен сдвиг фазы на 180 градусов. После этого фазовые ошибки исчезли.
Осциллограмма строки цветного сигнала. Сначала передается синхроимпульс длительностью 4мкс, затем в течении 8мкс задержки передается несущая цвета. В оставшиеся 52 мкс передается информация об изображении. |
Генерация цвета программным способом.
На первый взгляд кажется, что невозможно создать цветной видеосигнал программным способом, ведь это должен быть аналоговый сигнал с несущей частотой 4,43 МГц. В действительности же на видеовходе телевизора стоит фильтр, который не пропускает частоты выше спектра видеосигнала (4 – 5 МГц ). Если вместо синусоидального сигнала будут передаваться прямоугольные импульсы, они все равно будут восприняты телеприемником как синусоидальный сигнал, так как верхние гармоники будут срезаны фильтром. Поэтому нет необходимости создавать реальный аналоговый сигнал ( хотя вероятно при полностью аналоговом сигнале качество изображения будит лучше ). Для создания одного сигнала частотой 4,43 МГц PIC16F84 должен выполнять не менее 2х4,43 MIPS (миллион операций в секунду ). Но этого не достаточно, так как в видеосигнал необходимо добавить две несущих, сдвинутых друг относительно друга на 90 градусов. Для этого требуется разбить период несущей частоты еще на 4 части, то есть требуется производительность 4х4,43=17,72 MIPS. Таким образом PIC должен работать на частоте не менее 70,88 МГц, а это много. Приведенный расчет соответствует случаю, когда цвет не изменяется. Невозможно одновременно изменить больше одного бита информации о цвете.
Для того, чтобы изменить целый байт цвета требуется два цикла. Таким образом, PIC должен работать на частоте 141,76 МГц, что для него очень много. Однако такую производительность можно достичь с помощью SX-чипа, он похож на PIC, но выполняет 50 или 100 MIPS. Я действительно делал несколько экспериментов с этим микроконтроллером в начале 1999 года, но безуспешно. У меня были проблемы с программированием этого чипа. Сначала я думал, что причина в SX-key программаторе, но оказалось, что дело в ранней версией SX-чипа. Проблема была решена с помощью Scenix, и в ближайшее время я собираюсь продолжить работу с этим проектом. Думаю, что с помощью SX-чипа все-таки возможно генерировать цветной видеосигнал. Правда это будит несложная графика, например как в Tetris и в других подобных играх. Если Вы хотите генерировать цветной сигнал с помощью PIC, тогда вам потребуется несколько дополнительных микросхем для поддержки цветовой части. Это было сделано Marcelo Maggi, который сделал colortest pattern generator используя дополнительную микросхему цвета. Сегодняшние PIC микроконтроллеры не позволяют программным способом создать цветной видеосигнал.
Rickard Gunee
" How to generate video signals in real-time using a PIC16F84 "
Перевод с английского.
Перевод выполнен с небольшими сокращениями.
Примеры практического применения:
- Генератор видеосигнала на микроконтроллере PIC16F84.
- Игра Pong.
- Игра Tetris.
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ |