Делаем модем v.21,v.23

| |

Давайте сделаем модем!

В 1990 году обратился к знакомым. Дмитрий, программист и элетроник, и Виктор, предприниматель и финансис, поддерживали мои “горячие, фанатические” глаза.

  • Сейчас много домашних компьютеров. Можно сделать модем и начать продавать. Предлагаю сделать настоящий Hayes-modem.
  • Точно есть спрос на модемы?

Будущие партнёры сомневались в выгодности затеи.

В этот момент накопил хороший опыт программиста на языке ассемблера микроконтроллеров i8035, i8048. Именно на этои семействе и решили воплотить идею и совместимый Hayes-modem с частотной модкляцией стандарта V.21/v.23.

Теория и практика

Пришлось искать крохи информации по модемам. Старался найти все доступные книги по коммуникации телефонной, модемам, стандартам, аппаратниых решениям.

Дмитрий стал создавать цифровую плату, которая должна поддерживать Hayes-команды модем V.21/v.23 и телефонный интерфейс.

Мне досталась задача создать плату и алгоритмы частотной модуляции и демодуляции; использовать аналоговые фильтры на операционных усилителях высокого порядка.

Процессор i8035 был очень слабый. В этот исторический момент самый доступный и по цене и доставаемости.

Реализация

Через полтора года нас удалочь выпустить первую опытную партию Hayes-модем V.21/v.23. Мы опоздали! На советский рынок стали появляться зарубежные фирмы и поток компьютерной техники, в том числе современных модемов.

Ссылка на описание проекта и пример программы демодулятора микроконтроллера i8035

https://github.com/askfind/retro_modem_i8035


         ╔═════════════════════════════════════════════════════╗
         ║   Реализация HAYES-системы команд для модема  V.23  ║
         ╚═════════════════════════════════════════════════════╝


        Ниже приведены реализованные команды. Команды должны состоять
        из заглавных букв латинского алфавита. Все команды (кроме A/)
        должны содержать в начале префикс AT который служит для обозна-
        чения начала новой командной строки. Командная строка должна
        заканчиваться кодом <CR>. В командной строке может подаваться
        как одна, так и несколько комманд. Все пробелы в командной строке
        игнорируются. Если в командной строке встречается символ <BS>, то
        предыдущий символ считается недействительным и игнорируется.
        Длина командной строки не должна превышать 90 символов.

  A/    Команда модему повторить предыдущую командную строку.
        Подается как есть без префикса AT и окончания строки <CR>.

  En    Управление эхом модема. После команды E1 модем возвращает каждый
        символ передаваемый ему по интерфейсу RS-232c в виде локального
        эха. E0 - блокировка локального эха.
        n=0             эхо выключено
        n=1             эхо включено
        n<>0 or 1       любой другой символ вызывает ошибку.

  Qn    Управление ответом модема. После получения команды Q0 модем дает
        ответ на полученную командную строку OK, в случае успешного выпол-
        нения, и ERROR в случае ошибки. После команды Q1 модем никаких
        ответов по завершении команды не дает.
        n=0             ответ включен
        n=1             ответ выключен
        n<>0 or 1       любой другой символ вызывает ошибку.

  Vn    Выбор вида ответа модема.
        n=0             ответ цифровым кодом
        n=1             ответ в символьном виде на английском языке
        n<>0 or 1       любой другой символ вызывает ошибку.

  Z     Восстановление начальных значений S-регистров из ППЗУ и установка
        тех режимов, которые были после включения питания модема.

  Srrr?
        Считывание содержимого S-регистра номер rrr. Номер задается деся-
        тичным числом и не должен превышать 255. Номер может задаваться
        без нулей слева либо с нулями, при этом общее число символов не
        должно превышать трех. В ответ на эту команду выдается три ASCII
        символа, которые представляют собой содержимое S-регистра в десяти-
        чном виде.