Простой «железный» терминал
Данная статья является продолжением описания микроконтроллера на процессоре 6502 «Аюша». В ней мы рассмотрим, как превратить контроллер в полноценный компьютерный комплект, причём в качестве основы не обязательно делать «Аюшу», сойдёт любой иной девайс. Ну или применим собранный терминал для чего-нибудь ещё. И опять же, для сборки будет применён «подножный корм»…Для начала немного вспомним историю компьютеростроения в «до-микро-РКшную» эпоху. По сути говоря, большинство первокомпьютеров были обычными контроллерами, к которым необходимо было подсоединить клавиатуру, телевизор и устройство записи/считывания программ (в те времена перфосчитыватель или кассетный магнитофон). Собранное до кучи железо назвалось терминалом и делилось на два типа — «dumb» и интеллектуальный терминалы. Второй из них был по сути отдельным полноценным компьютером, имел собственный процессор и мог подсоединяться к более мощным собратьям. А вот первый вариант не имел процессора, собирался на «жёсткой» логике и умел только общаться с внешними устройствами по последовательному порту, поэтому и назвался «тупым». Ну, тупой — не тупой, а свою задачу такой терминал выполнял, тем более что и особых требований к нему не предъявлялось.
Вот такой терминал и было решено собрать для «Аюши». Он должен был позволять выводить на обычный телевизор получаемую с контроллера алфавитно-цифровую информацию, вводить текст программы со встроенной клавиатуры, а также позволять общаться контроллеру с обычным магнитофоном. Да, по сути поставленные задачи пахли махровым даунгрейдерством, но кроме них готовое устройство могло бы общаться не только с существующим контроллером, но и быть вполне самостоятельным сетевым (!, но об этом ниже) устройством. И да, никаких вентиляторов, никаких шумящих вещей — тишина при работе! Со схемой терминала можно познакомиться по ссылке в конце статьи. Здесь я опишу внутренности конструкции и причину их выбора.
Вывод на телевизор был сделан с нарушением канонов 70-х, используя однокристальный микроконтроллер ATMEGA8, на котором, в принципе, можно было бы собрать весь терминал (такие конструкции существуют). Но, поскольку однокристальные терминалы не позволяют особо расширить их по «железу», используют «неканонiческие» PS/2-клавиатуры и не позволяют работать со скоростями ниже 1200 бит/сек, от них решено было отказаться и оставить чип работать только на телевизионный вывод. Почему на телевизор, а не на VGA-совместимые устройства — в наличии был небольшой автомобильный ТВ-монитор, которого для работы с «Аюшей» вполне хватало.
Для клавиатурного ввода было решено использовать ASCII-клавиатуру. Как известно, все современные клавиатуры как в самодельной технике, так и в промышленной, строятся на основе матрицы с последующей обработкой нажатий встроенным (или дополнительным) процессором. Матричные клавиатуры применялись и в «Спектруме», и в «РК-86», да и нынешние АТ-клавиатуры тоже матричные. Однако первокомпьютеры, тот же Apple-I/II, использовали ASCII-клавиатуры, не занимавшие вычислительного времени процессора и выдававшие «на-гора«сразу готовый ASCII-код нажатого символа, что по моему мнению гораздо удобнее, нежели трата времени на бестолковое сканирование матрицы в режиме ожидания нажатия. Для навороченных клавиатур ранее выпускались специализированные чипы (по сути ПЗУ с таблицей ASCII-кодов), в остальных же случаях, когда было достаточно использовать первые 128 символов таблицы, использовались простые диодные кодеры. За основу была взята известная за рубежом клавиатура Дона Ланкастера, а отсутствующие ныне в продаже микросхемы были заменены простыми транзисторными каскадами. Вот теперь у меня появилась ASCII-клавиатура, которую не стыдно подключить и к первоЭпплу.
На просторах страны был найден нетронутый с советских времён набор клавиш (спасибо Сергею, R7GW):
Клавиши были собраны в кучу и размещены совместно с диодными дешифраторами на одной плате:
Разумеется, что конструкция должна работать не в принципе, а в корпусе, поэтому из кусков 10-мм фанеры началось ваяние корпуса:
После сборки корпуса и установки в него клавиатуры, корпус был покрашен так называемой «резиновой краской» (rubber paint, по сути растворённая резина в баллончике), установлены необходимые коннекторы и индикаторы. Сверху корпуса установлены индикаторы включения и чтения с магнитной ленты, а также переключатель источника ввода (об этом ниже):
Задняя стенка имеет разъём питания с выключателем и предохранителем, СОМ-порт, выход на ТВ и магнитофон, и разъём питания телевизора или внешних устройств:
Вообще признаюсь, что несколько торопился с изготовлением корпуса, поэтому видны головки шурупов и некоторые шероховатости, не влияющие в целом на работу терминала.Поскольку у нас нет процессора, то в схеме терминала появился узел преобразования полученного с клавиатуры параллельного кода в последовательный. Испробовав несколько вариантов, было решено использовать в качестве основы схему на мультиплексоре 155КП2, а не на сдвиговых регистрах. Оно получилось и проще, и меньше потребляло питания. Результат вы можете увидеть на схеме, ссылка в конце статьи.Скорость работы терминала — 300 бит/сек.…Надеюсь, все просмеялись и вытерли слёзы, продолжаем.…Почему выбрана такая низкая скорость? Во-первых, исходя из того, что самая медленная часть компьютера обычно сидит перед ним и не способна набирать текст со скоростью выше 33 знаков в секунду. Во-вторых, для вывода алфавитно-цифровой информации на монитор не требуется высокая скорость (в сравнении с графикой). В третьих, нам надо как-то общаться с магнитофоном, не используя дополнительных программных довесков. Ну и в четвёртых, неспешный вывод текста на монитор успокаивает и несколько напоминает кадры из «Матрицы».
Разумеется, что не используя схемные блоки сопряжения с магнитофоном, можно поднять скорость общения терминала по СОМ-порту до более высоких скоростей (19,2 кБит/сек — программное ограничение используемой прошивки АТМЕГИ) не изменяя основную схему. Таким образом терминал можно будет подключать для настройки любых устройств по СОМ-порту — модемов, цисок, роутеров и т.п., конечно в тех случаях, когда не требуется обновление прошивки устройства.
Общение с магнитофоном использует Канзасский стандарт записи на магнитную ленту. В этом случае »0» кодируется частотой 2400 Герц, а »1» — 1200 Герц. Эти частоты прекрасно записываются как на магнитную ленту, так и на твердотельные накопители, и гораздо меньше подвержены сбоям, нежели используемый в том же Микро-80/РК-86 код NRZ. Для чтения с ленты используется частотный компаратор, на выходе которого получаем последовательный поток данных. Как было видно на предыдущем фото, переключателем источника ввода мы можем выбрать, откуда контроллер будет получать информацию — с клавиатуры или с ленты, это будет ему абсолютно безразлично. Получаем этакий driver-free блок общения контроллера с магнитной лентой, также не использующий ресурсы процессора.
Вид платы терминала прилагается. На обратной стороне — снова вязка МГТФ, но это уже неинтересно, потому и не показываю. Транзисторные ключи, относящиеся к клавиатуре, расположены с правой стороны платы.
Внутренний вид терминала — все составляющие в деревянном корпусе.
Как проходит процедура загрузки программы с магнитной ленты можно посмотреть на прилагаемом видео. Загружается демонстрационная программа-конвертер из децимальной системы счисления в шестнадцатеричную и наоборот. Следует отметить, что сама загрузка программы содержит в себе некоторый игровой момент, попутно позволяя оценить корректность работы.[embedded content]
Суммарно оценить вид комплекса контроллер — терминал можно по следующим фото, как с обычным телевизором (фото в начале статьи), так и с автомобильным (тут уже используется микрокассетный магнитофон, в отличие от предыдущего видео).
Терминал был испробован для работы в сети с использованием конвертера COM→ETH, купленного на Алиэкспрессе.
Используя второй конвертер и пробросив в роутере порты удалось управлять «Аюшей» через Интернет. Хотя ничто не мешает нам точно так же управлять любыми иными устройствами через виртуальный или реальный СОМ-порт.Ну и для окончания разговора. На «Аюше уже можно и поиграть, на фото экран запущенной программы «Реверси». А поскольку контроллер уже обзавёлся микросхемой часов реального времени, то уже можно не только играть на время, но и использовать его в сложных устройствах управления.
Благодарю за понимание.
Ссылки.Статья Дона Ланкастера в апрельском номере журнала Popular Electronics за 1974 год о сборке ASCII-клавиатурыСхема ASCII-клавиатуры терминалаСхема терминалаОсновная страница проектаГруппа ВКонтакте