КОМПЬЮТЕРНОЕ ЖЕЛЕЗО
HARDWARE FOR PC

Шины и карты расширения

Здесь широко применяются микросхемы 74ALS245 (1533АП6) — 8-разрядные двунаправленные приемопередатчики. Буфер должен открываться сигналом ОЕ# (Output Enable — разрешение выхода), когда на шине адреса присутствует адрес, относящийся к ди¬апазону адресов подключаемого устройства. «Дежурным» является направле¬ние передачи «от шины — к устройству»; переключение в обратную сторону про-изводится по сигналу IOR#, если устройство представляет порты ввода-вывода, или MEMRD*, если устройство приписано к пространству памяти. Таким образом, буферы имеют право передавать данные на шину (управлять шиной данных) толь¬ко во время действия сигнала чтения, относящегося к зоне адресов данного устрой¬ства. Карта расширения может являться комбинацией 8- и 16-битных устройств; например, некогда популярные мультикарты содержали 16-битный адаптер AT A и набор 8-битных контроллеров портов COM, LPT, GAME и контроллера НГМД. В таких картах логика управления буферами и сигналами IOCS16* и MSC16* управляется сигналами от дешифратора адреса. Если устройство по данному адре¬су является 8-разрядным (не формирует сигналы IOCS16* или MSC16*), то оно имеет право разрешать чтение только через буфер линий SD[7:0], а буфер старших линий SD[15:8] (если он имеется на карте) должен быть переведен в третье состо¬яние. Если устройство по данному адресу является 16-разрядным, то оно форми¬рует сигнал IOCS16* или MSC16*, а разрешением буферов управляют сигналы SBHE* и SAO. В этом случае буфер линий SD[7:0] разрешается только при SAO=0, а буфер линий SD[15:8] разрешается только при SBHE#=L. Некорректное раз¬решение буферов может приводить к их конфликту с перестановщиком байтов системной платы и искажениям данных.
Восьмиразрядные устройства (например, микросхемы 8255, 8250, 8253 и т. п.) следует подключать только к линиям SD[7:0] и при обращении к ним не формиро¬вать сигналы IOCS16* или MSC16*. Никакие «косые» буферы (перестановщики байтов) на интерфейсных картах не нужны.
В одном из источников описывается эффект перестановки байтов при обращении к порту ввода-вывода: «Если прочитать слово из порта по четному адресу, значе¬ние одно, а если по нечетному — старшие 8 бит предыдущего значения становятся

6.1. Шины ISA, EISA и PC/104
157
младшими, а старшие нового = FFh». Первые подозрения падают на ошибку в логи¬ке управления буферами. На самом деле все объясняется гораздо проще. Пусть имеется устройство с двухбайтным регистром, младший байт которого имеет ад¬рес RO (четный), старший — RO+1, а по адресу R+2 устройство (и никакие другие) не откликается.

Hosted by uCoz