Решил, что следующей моей розработкой после вот этого
viewtopic.php?t=9066
станет устройство для вывода изображения на экран, которое легко можно будет применить в любой микропроцесорной системе.
Мои познания о видеосигнале базируются на этом
http://mediatory.ru/article22_article_14_1.phtml
и
http://www.rickard.gunee.com/projects/v ... /howto.php
Поскольку я толком не вник в способы формирования цветного сигнала, то буду генерировоть черно-белый.
И вот уже на этапе продумывания характеристик "видеокарты"
стали возникать вопросы:
- 1) Устройство формирует изображение из тремя оттенками серого
(Экономия памяти, 4 пикселя хранятся в 1 байте, ну и повышение производительности)
2)Разрешение 256x256 или более (желательно чтобы управлялось программно)
3)Для системы устройство может являться:
а)Микросхемой памяти, 3 байта которой отведены для команд
В этом случае адреса этих трех байт дешифруются картой и данные попадают не в память а в специальные регистры ИЛИ же прямо в память, но поскольку она общая, то к карте нельзя обращаться пока она производит операции с этой памятью (копирует оттуда в свою RAM, наприемер, спрайты или таблицы знакогенератора)
б)Некоторой области памяти (как и в первом случае для отправки на карту больших обемов данных), 3 портов вывода (для команд отдаваемых карте) и одного ввода (для обратной связи). Этот вариант проще в реализации но ухудшает универсальность применяемости.
- 1) Процессор (Z80A, 4Mhz max) просто потому, что их у меня 8 шт.
2) Видеопамять.
3) Устройство для вывода содержимого видеопамяти на экран.
4) "Внешняя" память для обмена данными с системой в которой устанеовлена карта. (Тут же могут быть регистры защелки и буферы с 3-мя состояниями)
5) Собственные RAM и ROM.
6) Туча логики.
7) Регистр засчелка с мультиплексором или сдвигновым регистром и счетчиком или еще чемто, что выдает байт на выход по 2 бита (от части входит в состав "Устройства для вывода содержимого видеопамяти на экран"
генерирует прерывания, заставляя процессор выдавать вертикальные синхроимпульсы, создает строчные синхроимпульсы, меняя адрес выводит в порт вывода содержимое видеопамяти байт за байтом.
После обработки прерывания процессор волен делать, что хочет, а хотеть он будет рисовать в видеопамяти.
Главные проблемы:
-Конфликт УВС и процессора при доступе к видеопамяти.
Никак не придумаю ничего дельного, нужно очень много дополнительных микросхем, процессору часто приходится ждать и падает его производительность.
-Неизвестно как влияют на картинку задержки в выводе вертикальной синхронизации (прерывание-то обрабатывается не сразу)...
Вот... Скажите пожалуйста, что думаете по этому поводу?