Архитектура компьтера КРИСС CP/M
Общая посылка разработки: сделать простой компьютер с классической архитектурой, лёгкий для повторения даже в домашних условиях, но при этом обладающий всеми свойствами компьютера. Да и реальных возможностей у такого устройства, на самом деле, не так уж и мало.
В качестве вычислительной базы выбрана линейка микроконтроллеров семейства AVR (Atmel/Microchip), как надёжная и честная 8-разрядная платформа, интерфейсы реализованы на базе стандартных специализированных микросхем.
Компьютер построен по стандартной схеме: центральный процессор реализован на базе МК ATMEGA1284P, контроллер периферии на МК ATMEGA328, контроллер VGA на двух МК ATMEGA328 и ATTINY13, контроллер Ethernet на специализированной микросхеме ENC28J60 (Microchip), часы реального времени на DS1305. ОЗУ внешнее 64Кх8 типа W24512 (Winbond). Внутренняя шина типа SPI.
Питается компьютер напрямую от бытовой сети 230 В 50 Гц от модульного преобразователя, установленного на плате. Благодаря этому никакие дополнительные источники питания не нужны.
Системное ОЗУ выполнено в виде отдельной микросхемы статического ОЗУ объёмом 64 К по 8 бит. Кажется мало, но расширение ОЗУ для "не игровых" задач большого смысла не имеет: для работы ПО CP/M 64 Кб вполне достаточно, нет сложностей с выбором страниц, а кроме того в данном компьютере реально в распоряжении разработчика гораздо больше памяти, чем на стандартном CP/M устройстве.
Для хранения данных использован накопитель на стандартной SD-карте. Контроллер SD-накопителя поддерживает все виды карт, данные записываются в виде образов дискет через специальную программу.
Для удобства на плате установлены часы реального времени с резервной батареей.
Контроллер внешних устройств обеспечивает решение следующих задач:
- работа в внешним COM-портом RS-232 (через преобразователь уровней);
- формирование сигнала ЗЧ однотонального синтезатора мелодий;
- работа со стандартной клавиатурой PS/2;
- работы с опционными внешними устройствами блока GPIO;
Внешний COM-порт RS-232 может быть использован для подключения принтера с последовательным интерфейсом.
Клавиатура используется стандартная с интерфейсом PS/2, поддерживаются все стандартные функции и две альтернативные раскладки (РУС. и ЛАТ. в базовом варианте).
Поддержка GPIO (блок входов/выходов общего назначения) обеспечивается через внешний блок расширителей, всего может быть реализовано до 128 каналов ввода/вывода без каскадирования и в 8 раз больше при использовании специализированного мультиплексора.
Для вывода на экран в устройстве реализован видеоконтроллер (ВК), который работает в полном соответствии со стандартами "Industrial VGA", формирует монохромное (зелёное на чёрном фоне) изображение постоянной яркости, поддерживает вывод алфавитно-цифровой информации до 25 строк по 80 символов, псевдографики 160*96 точек, аппаратное отображение курсора. ВК поддерживает несколько таблиц знакогенератора.
Все внешние устройства удобно подключаются через внешние разъёмы.
Центральный процессорный модуль (ЦП) выполнен на базе МК ATmega1284P (Microchip) с программным эмулятором системы команд микропроцессора Z80 (Zilog) и объединяет в себе функции микропроцессора, контроллера накопителя на SD-картах с DMA, программную часть контроллера Ethernet с DMA, и др. задачи.
Эмулятор микропроцессора Z80 исполняет инструкции в объёме официально документированных команд с небольшими дополнениями. Задача точного воспроизведения поведения процессора Z80 не ставилась, ставилась задача обеспечения работоспособности стандартных программ для ОС CP/M.
Скорость выполнения операций типа "запись регистр - регистр" составляет 1 мкс, что эквивалентно скорости работы процессора Z80 на частоте 4 МГц, что является для него стандартной частотой. А многие компьютеры даже работали на частоте 2.8 МГц. Поэтому компьютер обеспечивает быстродействие вполне достаточное для комфортной работы для соответствующего программного обеспечения.
Эмулятор корректно отрабатывает все тесты Z80 Instruction Exerciser в объёме zexdoc.
Для обеспечения комфортной работы предусмотрен слой обеспечения "аппаратной" совместимости на уровне портов ввода/вывода и кодов символов и клавиатуры, благодаря чему на компьютере работает большинство программ для Robotron 1715 и Kaypro II. Поддержка других платформ может быть легко добавлена. В настоящее время поддерживается ОС CP/M версии 2.2.
Подробное описание читайте в журналах Радио №№ 1-4 за 2021 год, ищите статьи с зелёным заголовком!