Передача данных с использованием нескольких портов

Для работы многих периферийных устройств необходимо несколь^ ко портов. В простейшем случае наличие нескольких портов необходимо, когда слово УВВ длиннее слова ЦП. В такой ситуации процессор должен передавать данные посегментно. Операция вывода 16-разряд-ного слова, выполняемая 8-разрядным процессором, происходит следующим образом {рис. 8.14):

Шаг L Центральный процессор готовит восемь старших разрядов данных.
Шаг 2. Центральный процессор посылает восемь старших разрядов данных в первый порт.

Шаг 3. Центральный процессор готовит восемь младших разрядов данных.

Шаг 4. Центральный процессор посылает восемь младших разрядов данных во второй порт. -

В приведенном примере две передачи данных выполняются не одновременно. Если необходимо обеспечить одновременность передачи данных, то можно управлять выходным буфером с тремя состояниями с помощью третьего порта. Программа закрывает буфер перед передачей данных и открывает его после передачи. Тогда все 16 бит данных выставляются одновременно, когда ЦП открывает буфер.

Передача блоками, состоящими из нескольких слов, требует выполнения внутренних действий, так как ЦП должен выбрать или поместить каждое слово по нужному адресу памяти или в нужный регистр.

Дополнительные порты можно также использовать для сигналов управления и сигналов состояния. На рис. 8.15 для сигнала «данные готовы» предназначен специальный порт ввода, а специальный порт вывода предназначен для сигнала «подтверждение ввода». Специальные коды для передачи данных не требуются, но используемая аппаратура в данном случае сложнее, чем в описанном выше случае одиночного порта. Либо чтение данных, либо посылка сигнала «подтверждение ввода» должны сбросить сигнал «данные готовы» перед следующим циклом. При выводе данных можно аналогичным образом использовать три порта: данных, ввода (для сигнала «УВВ готово») и вывода (для сигнала «вывод готов»).

В некоторых микропроцессорах имеются специальные последовательные линии ввода-вывода для передачи данных или управляющих сигналов. Определенными командами можно передавать данные на эти линии (или считывать с них) или использовать сигналы на этих линиях в качестве условий переходов. Процессоры Intel 8085, РАСЕ фирмы National, CP 1600 фирмы General Instrument и 9900 фирмы Texas Instruments — примеры процессоров с последовательными линиями ввода-вывода.

Совмещение порта для сигналов состояния с портом для управляющих сигналов позволяет сэкономить оборудование. Такие сигналы, как «данные готовы», «подтверждение ввода», «УВВ готово» и «вывод готов» — однобитные, а поэтому один порт с длиной слова, такой ж:*, как у ЦП, может обеспечить работу с сигналами состояния и управления сразу для нескольких периферийных устройств. Чтобы получить значение сигнала «готово», программа должна проверить (а чтобы выдать сигнал «подтверждение» — изменить) соответствующий разряд. Порты управления могут быть частью порта данных. В таком случае порт данных фиксирует сигнал «готово» и обеспечивает сигнал «подтвержден ие».
 



проверить скорость интернета мегалайн