User Tag List

Показано с 1 по 10 из 26

Тема: Аппаратный терминал VT52/15ИЭ-00-013 на FPGA

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    17.04.2011
    Адрес
    Санкт-Петербург
    Сообщений
    328
    Спасибо Благодарностей отдано 
    32
    Спасибо Благодарностей получено 
    209
    Поблагодарили
    50 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Аппаратный терминал VT52/15ИЭ-00-013 на FPGA

    Решил поделиться с общественностью одной своей полезной наработкой.

    Поскольку благодаря трудам уважаемого Vslav у нас появилось HDL-описание 1801ВМ2, я некоторое время назад сделал FPGA-реплику платы МС1201.02 для замены контроллера, управляющего оборудованием в нашей лаборатории. И возникла одна проблема. Раньше вместе с контроллером у нас стоял терминал СМ7209. Терминал этот необратимо сдох и отправился в помойку, и встала задача найти ему замену. Связка комп+терминалка мне как-то совсем не нравится, тем более что терминалки под Linux, полноценно совместимой с VT52, я не нашел (windows у нас нигде принципиально не используется). Поэтому я сделал терминал на FPGA, и решил им поделиться - возможно, найдутся люди, которым, как и мне, нужен именно аппаратный терминал.
    Терминал создан на основе все того же 1801ВМ2 - это вообще очень удобная платформа для всяких разных самоделок. FPGA - любая из серии Altera Cyclone 4. Кроме двух мегафункций altsyncram никаких аппаратных особенностей cyclone 4 не используется, поэтому, при желании, проект легко портировать куда угодно - он занимает всего около 2000 логических ячеек и 21КБайт внутренней памяти. Для вывода информации используется любой монитор с VGA-входом (используется разрешение 640*480), для ввода - PS/2 клавиатура. С ЭВМ терминал обменивается через обычный UART, скорость обмена можно настраивать в процессе работы.

    Терминал поддерживает систему команд VT52, а также системы команд 1 и 2 терминала 15ИЭ-00-013 (система команд 2 совпадает с VT52).
    Протокол VT52 реализован полностью - в том числе режим Hold Screen и набор псевдографических знаков, как в оригинальном VT52 и СМ7209.
    Протокол 15ИЭ также реализован полностью, кроме режима блочного обмена (передать строку и передать страницу) - не вижу ни одного применения для этого режима.
    Клавиатура VT52 реализована полностью, а вот часть клавиш клавиатуры 15ввв-97-006 не реализована - уж слишком много на ней кнопок, не под все из них получилось найти эквиваленты на стандартной PS/2 клавиатуре. Переключение между режимами VT52/15ИЭ можно делать вручную клавишей F4, а также автоматически управляющими кодами.
    Вверху экрана находится строка состояния, как и в 15ИЭ. Но вместо неинформативных битовых полей туда выводятся текстовые описатели включенных режимов. Кроме того, как и в 15ИЭ, в строку состояния выводится текущая скорость последовательного интерфейса и время, прошедшее с момента включения терминала. Выглядит это примерно так:

    Пример экрана терминала

    [свернуть]

    Терминал поддерживает все используемые в таких терминалах кодировки:
    - ASCII, как оригинальный VT52 - большие и малые латинские буквы. Она же - КОИ7 Н0
    - КОИ7 Н1, большие и малые русские буквы
    - КОИ7 Н2, только большие латинские и русские буквы. Эта кодировка обычно использовалась при работе с СМ ЭВМ, она поддерживается и СМ7209, и 15ИЭ.

    Переключение между кодировками Н0/Н1 производится управляющими кодами, а кодировка Н2 включается клавишей F11. На экран, естественно, можно выводить смесь символов разных кодировок. Кроме этого, поддерживается режим отображения служебных кодов мигающими буквами, как в СМ7209 и 15ИЭ. Пример работы с русскоязычной программой в кодировке КОИ7 Н2:

    Скрытый текст

    [свернуть]

    вот еще примеры разных режимов работы терминала:

    Прямая адресация курсора

    [свернуть]

    Режим Hold Screen

    [свернуть]

    Псевдографические символы

    [свернуть]

    Альтернативный режим клавиатуры

    [свернуть]


    Имеется автономный режим работы (локальная петля), который можно использовать для тестирования терминала и клавиатуры, включается клавишей F10. Терминал поддерживает скорости обмена от 1200 до 115200, которые можно менять с клавиатуры (клавиши F5/F6). Курсор может иметь 2 формы на выбор - подчеркивание и блок, может быть мигающим и немигающим.

    Для отображения знаков используется знакоместо 8*12 (а не 8*8, как в древних терминалах). Шрифт я в основном выдрал из какого-то досовского русификатора - там линии двойной толщины, смотрится достаточно разборчиво на любом мониторе. Для сравнения я добавил в дерево проекта шрифт, вынутый из платы КСМ - насколько я помню, он такой же, как и в терминале 15ИЭ. Можно собрать прошивку с этим шрифтом и получить точный вид экрана 15ИЭ:

    Отображение шрифтом 15ИЭ

    [свернуть]


    Основа проекта - модуль vt52 (лежит в файле vt52.v) - собственно, это и есть сам терминал. К его портам подключается монитор, клавиатура, линии Tx/Rx последовательного порта и тактовая частота 50Мгц. Этот модуль можно использовать не только как законченный аппаратный терминал, но и встраивать в другие проекты, требующие терминального ввода-вывода. Например, я его встроил в FPGA-реплику платы МС1201.02 и получил в результате практически одноплатную ДВК. Все это, кстати, спокойно влезло в самую младшую EP4CE6. Для облегчения встраивания из модуля наружу выходит шина vtspeed, несущая информацию о текущей скорости терминального UART. Эту информацию можно использовать для автоматической настройки скорости сопряженного с терминалом уарта.
    В проект также входит модуль terminal - это оболочка, облегчающая адаптацию модуля vt52 к конкретной плате. Он предоставляет схему генерации начального сброса, а также преобразователь цветовых сигналов для плат, имеющих видео-DAC для управления яркостью цвета.

    Для сборки терминала можно использовать любую, самую простейшую отладочную плату на EP4CE6, коих продается навалом на алиэкспрессе. К плате нужно будет подключить разъем VGA, разъем PS/2 и преобразователь уровней сигнала последовательного порта. Еще проще купить плату, уже имеющую на себе VGA, PS/2, RS-232 - таких плат тоже продается более чем достаточно. В этом случае ничего паять не потребуется - достаточно описать правильное соответствие номеров ножек FPGA с портами проекта, собрать прошивку и залить ее в конфигурационную память платы.

    Проект живет в этом репозитории на гитхабе.
    В каталоге DOC лежит файл terminal.pdf, содержащий подробную информацию, в том числе о назначении управляющих клавиш и формате строки состояния. Рекомендую ознакомиться - изучать терминал методом тыка не так-то просто.

    Для тех, кому лень связываться с гитом, вот здесь лежит текущий срез репозитория. Обновляться он не будет, поэтому все же советую пользоваться репозиторием.

    Эти 19 пользователя(ей) поблагодарили forth32 за это полезное сообщение:

    andykarpov(18.12.2020), dim33(18.01.2021), Elias(07.11.2020), hobot(07.11.2020), Hunta(07.11.2020), mx(09.11.2020), nzeemin(18.12.2020), Radon17(10.01.2021), shattered(08.11.2020), SoftLight(07.11.2020), SuperMax(07.11.2020), svofski(08.11.2020), TheGWBV(08.11.2020), tnt23(07.11.2020), troosh(18.12.2020), Vslav(07.11.2020), xolod(07.11.2020), yu.zxpk(08.11.2020), Копейкин(07.12.2022)

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Эмуляция фрязинского дисплея 15ИЭ-00-013
    от shattered в разделе Эмуляторы отечественных компьютеров
    Ответов: 272
    Последнее: 01.11.2025, 18:13
  2. МС1201.02 и 15ИЭ-00-013
    от SKcorp. в разделе ДВК, УКНЦ
    Ответов: 5
    Последнее: 06.04.2023, 18:19
  3. Ответов: 30
    Последнее: 24.07.2015, 19:44
  4. У продавца украли терминалы 15ИЭ-00-013
    от Sergei Frolov в разделе ДВК, УКНЦ
    Ответов: 20
    Последнее: 05.08.2011, 12:03
  5. Кабель блок-монитор от 15ИЭ-00-013
    от SKcorp. в разделе ДВК, УКНЦ
    Ответов: 0
    Последнее: 04.05.2010, 00:48

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •