ZX Hard
#01
06 мая 1999 |
|
C-bus - шина основаная на Centronics interface.
┌────────────────────────────────────────┐ │ C-bus (based on Centronics interface). │ └────────────────────────────────────────┘ (c)VTS'99 Идея проста: устройства, собирающиеся надолго обосноваться на внешней шине, должны иметь вход и выход, и включаться каскадно. Принтер - последний. Итак, имеется 8 буферированных выхо- дов, для принтера это данные. Для двунап- равленного обмена они не подойдут, значит пускай это будут линии управления. Эти ли- нии транслируются напрямую на выход, без буферов. Еще имеется 8 двунаправленных линий. Это, естественно, шина данных. Вообще-то они тоже нехилые (идут с музыкалки), но если их хорошенько нагрузить, или если по- зарез нужен длинный шлейф, прийдется буфе- рировать. Вот здесь уже нужен флаг RD/WR. Возьмем на его роль ОК-выход Q2/ (SLCTIN, 17pin_DB25). Активный (нулевой) уровень соответствует чтению. Конечно, тогда можно программно получить конфликт, но от при- дурков все равно не спастись, а микрухи таких вещей в основном не боятся. Если девайс очень простой, с коротким входным шлейфом и единственной нагрузкой (1533,555) на этой шине, буфер не обязате- лен. Иначе лучше протранслировать данные на выход через АП6, подав на 1'ую ногу флаг RD/WR. Ну а теперь осталось разобраться, как выбирать нужный девайс. Из оставшихся пяти ОК-выходов один занят принтером, и один определяет направление передачи данных. Однако строб принтера можно тоже использо- вать, но такой девайс будет включаться вместо принтера, и тоже последним в цепоч- ке. Итак, есть 3 ОК, т.е. можно подключить до 3'ех устройств единовременно, не считая принтера. Чтобы не драться за адресное пространство, можно сделать так. Все де- вайсы выбираются по линии Q6, но каждый из них транслирует эти линии так: Q5──Q5 Q5──Q5 Q5──Q5 <---p -─────────────────────── r Q2──Q2 Q2──Q2 Q2──Q2 i ──────────────────────── n Z <-Q6 /Q6<-<Q6 /Q6<-<Q6 /Q6 t X <-Q7//Q7<-<Q7//Q7<-<Q7//Q7 e Q8/ Q8 Q8/ Q8 Q8/ Q8 r └──────┘ └──────┘ └──────┘ 1 2 3 Тогда остается сообщить проге, каким по-порядку включен ее девайс (если она не сможет сделать сама аутоконфиг). T.e. 1'ый девайс выбирается по линии Q6, 2'ой по Q7, 3'ий по Q8. DB-25 Centronics ──────────────── Разъем "мама" с лицевой стороны. pin25 pin13 │ │ Q8/ _ - I7 (c2) gnd _ - I6 (c1) Q6/ _ - I2 (busy) gnd _ - I5 (c0) gnd _ - D7 (error) I4 _ - D6 (pe) I3 _ - D5 data (acknlg) I1 _ - D4 for (slctin) Q2/ _ - D3 printer (auto) Q7/ _ - D2 (selout) I0 _ - D1 +5v _ - D0 - Q5/ (strobe) │ │ pin14 pin1 D0...D7 - восемь буферированных выхо- дов (данные принтерa). I0...I7 - восемь небуферированных дву- направленных линий (данные C-bus). Q2/,Q5/,Q6/,Q7/,Q8/ - пять ОК-выходов. Линии BUSY и STROBE подтянуты резисто- рами к шине +5v. За подробностями советую обратиться к схеме КАЯ. Centronics, установленный на другие клоны (на основе той же AY или ВВ55), мо- жет иметь ДРУГИЕ ПОРТЫ ! Т.е. обмен должен осуществляться через драйвер. Ну и под конец хочу сказать, что Centronics - по сути кульная весчь. Большая часть девайсов может удовлетво- риться обменом порт-порт невысокой скорос- ти, что фактически на блюдечке приподносит Centronics. Жаль, нет еще пары входов (ти- па запросов на прерывания). Однако получаем: не надо вскрывать комп, не надо занимать слот (а для других клонов - не нужно паяться к Z80), меньшие требования к временным параметрам обмена по шине (задержкам, например) [кто там сказал 155'ая серия ? ;) ], выше "вероят- ность успешного подключения девайса" (за 90% для всех клонов с Centronics'ом). Ладно, надо закругляться. исдос, 23-04-99, 20:42msk
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября