Техническое задание.
Разработать портативную вычислительную систему для мультимедийных применений (аудио-, видео- плееры, игры, эмуляторы игровых приставок/консолей).
Основной упор сделать на эмуляторы.
Конструкция должна быть схемотехнически простой – содержать минимум нужных узлов.
Концепт.
Video – разрешение QVGA 320x240 пикселей, цветовое разрешение не менее 16 бит на точку.
Такого дисплея должно хватить на DOS-игры, идущие под разрешение 320x200 256 цветов и на эмуляцию игровых приставок/консолей:
Дисплей обязательно должен быть со встроенным видеоконтроллером и памятью - для того, чтобы разгрузить CPU по максимуму (не тратить время на развёртку кадра).
Такой подход упрощает конструктив изделия - не нужны внешняя видеопамять и отдельный видеопроцессор.
Для получения максимальной производительности графической системы - шина данных дисплея обязательно 16 битная.
Сам дисплей TFT, так как по сравнению с STN более яркий, контрастный и не мажет при анимации, а по сравнению с OLED не имеет гемора, связанного с выгоранием пикселов.
Размер дисплея 2.2", для того чтобы устройство получилось в итоге малогабаритным.
Audio – кодек с поддержкой WAV PCM, MP3, WMA, MIDI.
WAV PCM – для эмуляции звуковых систем игровых приставок/консолей.
MIDI – для портирования старых DOS-игр или девелопмента своих.
Остальные форматы – для медиа-плееров.
Интерфейс SPI, поток аудио на несколько порядков меньше, чем поток видео, а малое число соединений с процессором упростит создание устройства.
Кодек также разгружает CPU и упрощает конструктив изделия.
Наличие аппаратного буфера обязательно!
Input – геймпад (джойстик) от приставки SEGA MD.
Достаточно распостранён, много кнопок – перекроет другие распространённые геймпады: NES, SNES.
Частота опроса – не более 50/60Hz, поэтому для того чтобы не нагружать параллельную шину, геймпад прикручен на порты ввода/вывода.
CPU – ADSP-BF532 @400MHz.
Есть в QFP корпусе, бешеная производительность 800MMACs (что положительно скажется на эмуляции), наличие GPIO, SPI, EBIU, кэшей кода/данных, более прост и эффективен по сравнению с ARM9.
Все мощи CPU должны быть кинуты исключительно на код эмуляции и управление периферией.
При таком раскладе велики шансы заэмулировать приставки типа SEGA MD и SNES без тормозов, используя кроссплатформенные сорцы эмуляторов!
RAM – 16Mx16 (32MB) SDRAM PC133.
Выбрана SDRAM из-за большого объёма по сравнению с SRAM.
При последовательном доступе SDRAM @133MHz работает быстрее, чем SRAM @100MHz, при одинаковой разрядности шины данных. Так как SDRAM умеет автоматически делать автоинкремент адреса внутри себя, а SRAM каждый раз требует непосредственного выставления адреса и ей пофиг, что следующий адрес на 1/2/4 больше/меньше, чем предыдущий адрес.
Устройство хранения информации – SD карты.
Возможно подключить к SPI, малые габариты, большой объём, простота использования, распространены.
Возможно подключение MMC карт, но они уже умирают :(
Источник питания – 4 пальчиковых батареи/аккумулятора AA или сетевой БП на 5..6V 2.5A MAX.
Первый вариант – походный, второй – полустационарный.
В конечном итоге, должен получиться вычислительный модуль, помещающийся на ладони без учёта: геймпада, колонок (наушников) и источников питания.
Вышеописанный концепт сведён кратко в табличку:
Video | QVGA TFT LCD |
Audio | MP3/WMA/MIDI |
Input | SEGA MD Joystick |
CPU | ADSP-BF532 |
RAM | PC133 SDRAM |
Storage | MMC/SD |
Power | Battery/Accumulator, AC/DC Adapter |
Краткая структурная схема.
Примечания к краткой структурной схеме:
I/O Buffer нужен для развязки QVGA TFT LCD от быстродействующих цепей шины данных EBIU “CPU <=> SDRAM”.
С Boot EEPROM происходит считывание Загрузчика приложений во внутреннюю RAM процессора.
Кроме SEGA MD Joystick дополнительно GPIO используются как: вход прерывания от Audio Codec, управление подсветкой QVGA TFT LCD, проверка наличия MMC/SD в слоте, отладочный светодиод.
Опущены следующие схемные узлы: контроллер сброса, узлы питания (LDO, DC/DC).
Не показаны внешние модульные устройства: AC/DC Adapter, батарейный отсек, колонки (наушники), геймпад.
О названии проекта.
Это отдельная концепция, которая порождается мыслями, чувствами, эмоциями и лаконичностью, наконец!
Digital Thresher – дословно “Цифровая Молотилка” – сверхбыстродействующая цифровая мясорубка, которая перемалывает код/данные с такой охренительной скоростью, которая достаточна для эмуляции аркадного игрового железа 80х-90х годов :)
Альтернативные названия:
Threshing Machine – “Молотящая машина” (попросту молотилка). Используется, чтобы показать принадлежность конструкции к семейству МикроМашин.
Game Console Killer – “Убийца игровых консолей”. Применяется, чтобы подчеркнуть возможность замены одним устройством (с эмуляторами) всех игровых приставок/консолей.
EMU Machine – “ЭМУ Машина”. Употребляется, чтобы подчеркнуть одно из возможных применений устройства – эмуляцию.