Последовательная передача прекрасно эмулируется программно. Есть у меня свой фазовый протокол, который даёт скорость более 10 кб в секунду. Но последние 15 лет я использовал другой протокол - короткий нулевой импульс это 0, а втрое более длинный импульс это 1. Это сделано для машин, что не работают в реальном времени из-за прерываний (в частности IBM PC).
Вначале передаем пилотон из длинных импульсов (по ним приёмная строна автоматически настраивается, определяет константу). Далее в линию идёт традиционный синхробайт E6 и далее уже передаваемые байты. На двух мегагерцовой машине (без WAIT и ПДП) достигается скорость передачи 4 кб в секунду, что соответствует 4*1024*8= 32768 бод. Если же у Вас Z80 на 3.75 МГЦ, то скорость передачи вдвое быстрее - 65 Кбод. Ну и скажите, какой смысл тогда в использовании ВВ51, если он рассчитан на скорость передачи лишь в 9600 бод (при оверклоке может и 19200). Только пайки намного больше, расход деталей больше, программирования больше, а выигрыша никакого. К сожалению, такой протокол передачи прекрасно и быстро работает на нормальных машинах без прерываний, а вот с IBM PC проблема.
IBM PC не может программно формировать короткие импульсы нужной длительности (и программно замерять длительность коротких импульсов при приёме). Если лень добавлять аппаратуру, то приходится фатально снижать скорость передачи до жалких 150 байт в секунду (это скорость обмена с магнитофоном). Но добавив два одновибратора на 1533ТМ2 (можно и АГ3, но это хуже), это проблема частично (на передачу) решается. Тогда из параллельного интерфейса принтера IBM PC выводятся два сигнала, по переднему фронту которых стартуют одновибраторы. Тогда прерывания в IBM PC не вредят длительности импульсов (даже если прерывание в IBM PC захватит CPU на час, передача не исказится). Скорость передачи от IBM PC достигает 1 кб в секунду, а вот в обратную сторону скорость приёма 150 байт в секунду. Эти протоколы я использовал для обмена между ОРИОНОМ и IBM PC. Недавно я применил более скоростной протокол (отдельная линия для 0 и для 1 и линия готовности), на котором достигается скорость передачи до 4 кб/сек (32 Кбод), без аппаратуры, весь расход деталей только провода. Однако, если на Вашей PC нет выхода на параллельный принтер, то придётся использовать стандартный RS232.
Параллельный принтер, позволяет расширить возможности IBM PC. В современный PC не поставишь самодельную платку с ППА (слишком мизерный шаг в слоте и слишком быстрая скорость в шине). Тогда ставим на выходе параллельного интерфейса (разъём 25 контактов) простейший контроллер на Z80, который описан выше. Тогда IBM PC по однопроводному интерфейсу (описанному выше) выдает команды этому контроллеру, например, - вывести такой-то байт в конкретный порт ППА. И Z80 это выполняет. В результате УФ-программатор можно подключать к IBM PC, причём без всяких вторжений в IBM PC.
Кстати, вот для этого и нужен простейший контроллер на Z80. И именно на Z80, т.к загружая в него из IBM PC программу мы получаем универсальный контроллер, который может делать всё что угодно в рамках своего быстродействия. Например, когда этот контроллер не используется, он работает как обычные часы (в Z80 контроллер загружается программа часов).
PS. А ВВ51 нужен в системе. Но не для создания линии связи, а для подключения мыши. Тут без этого не обойтись. Хотя для текстовой машины обычно мышь не используют.
[свернуть]