Тема лекции 6: Режимы работы систем ввода / вывода

Содержание темы: Программное обеспечение ввода / вывода Системы прерывания и прямой доступ к памяти. Контроллеры прерываний и драйверы прямого доступа к памяти.

Самое главное, что должен знать разработчик микропроцессорных систем — это принципы организации обмена информацией по шинам таких систем. Без этого невозможно разработать аппаратную часть системы, а без аппаратной части не будет работать никакое программное обеспечение.

За более чем 30 лет, прошедших с момента появления первых микропроцессоров, были выработаны определенные правила обмена, которым следуют и разработчики новых микропроцессорных систем. Правила эти не слишком сложны, но твердо знать и неукоснительно соблюдать их для успешной работы необходимо. Как показала практика, принципы организации обмена по шинам гораздо важнее, чем особенности конкретных микропроцессоров. Стандартные системные магистрали живут гораздо дольше, чем тот или иной процессор. Разработчики новых процессоров ориентируются на уже существующие стандарты магистрали. Более того, некоторые системы на основе совершенно разных процессоров используют одну и ту же системную магистраль. То есть магистраль оказывается самым главным системообразующим фактором в микропроцессорных системах.

Обмен информацией в микропроцессорных системах происходит в циклах обмена информацией. Под циклом обмена информацией понимается временной интервал, в течение которого происходит выполнение одной элементарной операции обмена по шине. Например, пересылка кода данных из процессора в память или же пересылка кода данных из устройства ввода/вывода в процессор. В пределах одного цикла также может передаваться и несколько кодов данных, даже целый массив данных, но это встречается реже.

Циклы обмена информацией делятся на два основных типа:

• Цикл записи (вывода), в котором процессор записывает (выводит) информацию;

• Цикл чтения (ввода), в котором процессор читает (вводит) информацию.

В некоторых микропроцессорных системах существует также цикл «чтение-модификация-запись» или же «ввод-пауза-вывод». В этих циклах процессор сначала читает информацию из памяти или устройства ввода/вывода, затем как-то преобразует ее и снова записывает по тому же адресу. Например, процессор может прочитать код из ячейки памяти, увеличить его на единицу и снова записать в эту же ячейку памяти. Наличие или отсутствие данного типа цикла связано с особенностями используемого процессора.

Особое место занимают циклы прямого доступа к памяти (если режим ПДП в системе предусмотрен) и циклы запроса и предоставления прерывания (если прерывания в системе есть). Когда в дальнейшем речь пойдет о таких циклах, это будет специально оговорено.

Во время каждого цикла устройства, участвующие в обмене информацией, передают друг другу информационные и управляющие сигналы в строго установленном порядке или, как еще говорят, в соответствии с принятым протоколом обмена информацией.

Длительность цикла обмена может быть постоянной или переменной, но она всегда включает в себя несколько периодов сигнала тактовой частоты системы. То есть даже в идеальном случае частота чтения информации процессором и частота записи информации оказываются в несколько раз меньше тактовой частоты системы.

Чтение кодов команд из памяти системы также производится с помощью циклов чтения. Поэтому в случае одношинной архитектуры на системной магистрали чередуются циклы чтения команд и циклы пересылки (чтения и записи) данных, но протоколы обмена остаются неизменными независимо от того, что передается — данные или команды. В случае двухшинной архитектуры циклы чтения команд и записи или чтения данных разделяются по разным шинам и могут выполняться одновременно.

Каждое внешнее устройство должно быть связано с помощью интерфейса с шиной данных микропроцессорной системы так, чтобы данные могли быть переданы командами программы между этим уст­ройством и микропроцессором. Каждый интерфейс устройства ввода/вывода должен быть адресуемым и отвечать на сигналы шины управления микропроцессора. Наиболее общий подход состоит в том, чтобы использовать один или большее количество регистров в интерфейсе устройства как буферы между устройством и процессором. Мы знаем эти буферные регистры как порты. Данные, посланные внешнему устройству, записываются сначала в регистр в интерфейсе устройства, откуда они уже передаются внешнему устройству. Аналогично процессор обращается к данным, пересылаемым от внешнего устройства, читая регистр в интерфейсе устройства.

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

Чтобы облегчить и ускорить процесс обмена данными между микропроцессорной системой и внешними устройствами, часто используются специальные режимы обмена данными. Это режимы прерывания и прямого доступа к памяти.

Устройство, которое дополнительно подключено к микропро­цес­сор­ной системе для поддержки ввода/вывода данных, а также времен­ного и архивного хранения данных, называется периферийным (или внешним) устройством. Микропроцессорные системы без внешних устройств (клавиатура, дисплей, накопители информации на магнитных носителях, принтер) оказываются бесполезными. Поэтому разработчики вычислительных систем уделяют большое внимание организации взаимодействия системы с внешними устройствами. Основное требование при этом – надежная, без потерь передача информации.

Интерфейсы принято делить на магистральные и радиальные. Магистральным называется такой интерфейс, к которому подключаются одновременно несколько устройств. Такой интерфейс обычно исполь­зуе­тся для связи блоков самой вычислительной системы. Для связи микропроцессорной системы и внешнего устройства используется обычно радиальный интерфейс (для каждого внешнего устройства используется свой канал связи). По протоколу обмена интерфейсы делят на параллельные и последовательные. Стандартные интерфейсы общего применения обычно ориентированы на байтовый (восьми­бито­вый) обмен информацией. В параллельном интерфейсе байт данных передается по восьми линиям одновременно, а в последовательном по одной линии бит за битом последовательно. Естественно, под линией здесь понимается два провода (информационный и общий).

Интерфейс ввода-вывода данных должен иметь специальные ре­гис­тры для промежуточного хранения данных. Данные сначала записы­ва­ются процессором в этот регистр, а затем периферийное устройство получает их. Микропроцессорная система может иметь много таких регистров, и процессор должен иметь возможность их адресовать. Имеются два способа отображения этих регистров в адрес­ном прост­ранстве микропроцессорной системы. Во-первых, регистры могут составлять часть пространства адресов памяти сис­темы. В этом случае регистры доступны как обычные ячейки оперативного запо­ми­нающего устройства. Все микропроцессорные команды, которые работают с памятью, могут работать и с регистрами ввода/вывода. Чте­ние и запись в регистры стробируются сигналами управления микропро­цессора, предназначенными для управления памятью. Недостаток этого пути – уменьшение объема памяти, доступ­но­го для хранения данных. Второй способ адресации регистров состоит в использовании отдельно­го адресного пространства для отображения регистров ввода/вывода. В этом случае регистры называются портами ввода/вывода. Для записи и чтения информации из портов ввода/вывода используются специаль­ные команды микропроцессора. Для микро­про­цес­сора 8086, напри­мер, имеются команды IN и OUT. Кроме того, микропроцессор исполь­зует для управления портами ввода/вывода иные сигналы, чем для управления ячейками памяти.

Пример схемы пользовательского интерфейса показан на рис.5.1. На рисунке показано подключение светодиода (VD1) к шинам ми­кропроцессорной системы. Светодиод в данной схеме рассматривается как периферийное устройство. В качестве порта вывода используется
D-триггер. Логическая схема определяет адрес этого порта. Информация, которая записывается в порт, стробируется сигналом IOWC. В данном примере использован второй способ адресации портов ввода/вывода.

Рис. 5.1. Пример схемы пользовательского интерфейса

 

Часто для внешнего устройства данные необходимы в аналоговом виде, в то время как микропроцессорная система работает с двоичными числами. В этом случае для преобразования сигналов необходимы цифро-аналоговые преобразователи (ЦАП). Данные от различных датчиков (температуры, давления и других) часто передаются как непрерывные аналоговые напряжения или токи. Чтобы микропро­цес­сор­ная система могла их обработать, аналоговые сигналы должны быть преобразованы в цифровые двоичные сигналы, которые могут читаться микропроцес­со­ром. Подобные функции выполняют аналого-цифро­вые преобразо­ва­те­ли (АЦП). Интерфейсные схемы при ис­поль­зовании АЦП и ЦАП строятся так же, как и в обычном случае. В составе интерфейса должен быть регистр, куда помещаются данные. Этот регистр может быть частью ЦАП или АЦП, но чаще это допол­нительный регистр. Кроме него в интерфейсе должен быть преду­смотрен еще один регистр, который используется для управления АЦП или ЦАП. Процессор просто передает параллельные цифровые данные в регистры в интерфейсе устройства. Преобразование и передача данных между этими регистрами и внешними устройствами осуществляются автоматически электронными схемами интерфейса.

Интерфейсы дисководов, графических дисплеев, и других слож­ных устройств ввода/вывода работают подобным же образом. Несмотря на существенные различия между характеристиками различных типов пери­фе­рийных устройств, большинство из них рассматривается микропроцессором как набор адресуемых регистров. Эти интерфейсы включают в себя специальные регистры управления и состояния, в которые микропроцессор передает команды интерфейсу или считывает его текущее состояние.

Ниже приведен фрагмент программы передачи одного байта дан­ных на принтер. Интерфейс принтера представлен для микропроцессора двумя портами: регистром данных (Dat_Reg) и регистром состояния (Stat_Reg). Программа читает и проверяет младший бит регистра состояния устройства. Если этот бит – 1, устройство не готово принять данные от процессора, и программа ожидает в цикле, когда бит поменя­ет значение. Если бит – 0, устройство готово принимать данные и микропроцессор посылает информацию в регистр данных интерфейса устройства.

 

Check: IN AL,Stat_Reg ; чтение регистра состояния

AND AL, 00000001B ; проверка младшего бита

JNE Check ; регистра состояния

MOV AL,Data ;пересылка в регистр данных

OUT Dat_reg,AL ; интерфейса

 

Для того чтобы облегчить создание электронных схем интерфей­сов разработано большое число различных специализи­рован­ных больших интегральных схем. Одна из них – БИС 8255 (российский аналог 580ВВ55) – программируемое периферийное параллельное уст­рой­ство ввода/вы­во­да, предназначенное для использования в микро­процессорных системах. Микросхема используется как универсальный компонент параллельных интерфейсов. Конфигурация и режим работы БИС 8255 могут быть запрограммированы разработчиком интерфейса таким образом, что для связи периферийного устройства и микро­процессора обычно не требуется никаких дополнительных логи­ческих схем. Блок-схема программируемого периферийного адаптера парал­лельного интерфейса показана на рис. 5.2.

Буфер шины данных - двунаправленный 8-разрядный буфер с выходами с тремя состояниями, который используется для связи адап­тера 8255 с шиной данных микропроцессорной системы. Данные переда­ются или принимаются БИС с шины системы при выполнении команд от микропроцессора. Команды и информация о состоянии адаптера также передаются через буфер шины данных.

В функции устройства управления входит управление всеми внут­ренними и внешними передачами данных и слов управления и сос­то­яния. Оно принимает информацию с шин данных и адреса микропро­цессорной системы и, в свою очередь, вырабатывает управляющие сигналы для портов.

 

Рис.5.2. Блок-схема БИС 8255

 

Каждый порт может быть программно настроен на выполнение определенных функций, и микропроцессор должен передать в адаптер специальные управляющие слова, которые содержат информацию о ре­жи­мах, в которых должны работать порты, установке или очистке опре­деленных битов. Для этого в БИС 8255 есть специальный регистр управ­ляющих слов. Этот регистр может быть записан микропроцес­со­ром.

Микросхема 8255 содержит 3 восьмиразрядных порта (А.В и С). Все они могут быть сконфигурированы программно и каждый имеет свои особенности, что расширяет функциональные возможности микросхемы.

Порт С может быть разделен на 2 четырехразрядных полупорта. Каждый полупорт можно использовать самостоятельно или совместно с портами А и В для передачи служебной информации.

Адаптер параллельного интерфейса может работать в трех режимах, которые устанавливаются программно:

1. Режим 0 – простой ввод/вывод

2. Режим 1 – стробируемый ввод/вывод

3. Режим 2 – двунаправленный ввод/вывод

Когда на микросхему подается сигнал сброса, все порты устанавливаются в режим ввода данных и все 24 выхода портов переходят в состояние 1. После сигнала сброса все порты остаются в режиме простого ввода. Если микросхема должна использоваться именно в этих режимах, то дополнительного программирования не требуется. Если требуются другие режимы, то необходимо записать в регистр управляющих слов соответствующее слово инициализации. Причем перепрограммирование режимов работы микросхемы может быть сделано в любой момент работы программы.

Режимы для порта А и порта B могут быть определены отдельно, в то время как для порта C каждая из двух частей может быть запрограммирована отдельно для режима 0 или использоваться как вспомогательная часть портов А и В для режимов 1 и 2. Все выходные регистры, включая триггеры состояния, будут сброшены всякий раз, когда режим изменяется. Режимы могут быть скомбинированы так, что адаптер может быть приспособлен почти к любой структуре интерфейса ввода/вывода.

Интерфейсы последовательных каналов ввода/вывода в микропро­цессорных системах реализуются с использованием БИС 8251 (российский аналог – 580ВВ51). Микросхема представляет собой уни­вер­сальный синхронно-асинхронный приемопередатчик последова­тель­ной связи, выполняющий функции приема и преобразования параллельных форматов слов в последовательные для их передачи по каналам связи и последовательных форматов, принимаемых из каналов связи в параллельный формат для ввода в процессор. Микросхема может быть запрограммирована для работы в пяти режимах: асинхронная передача, асинхронный прием, синхронная передача, синхронный прием с внут­рен­ней синхронизацией, синхронный прием с внешней синхронизацией.

На рис. 5.3 приведена структурная схема БИС 8251. Передатчик принимает данные с шины данных, преобразует их в последовательный код, добавляет служебные разряды и выдает их на выход передатчика ТхD под управлением сигналов синхронизации со входа ТхС. Приемник принимает данные со входа RxD, преобразует их в параллельный код, исключает служебные символы и посылает на шину данных. Прием синхронизируется сигналами на входе RxC. В режиме асинхронной передачи/приема скорость передачи или приема кратна частоте сигналов на входе TxC/RxC. Коэффициент кратности устанавливается программно и равен 1; 16 или 64.

Сигналы TxRDY и RxRDY используются для связи с процессором. Сигнал TxRDY указывает, что передатчик готов принять новое слово данных от процессора. В единичное состояние сигнал устанавливается после программного запуска передачи и после завершения передачи очередного слова данных, а сбрасывается в нулевое состояние после записи байта данных в регистр данных передатчика. Сигнал RxRDY показывает, что данные в приемнике готовы для ввода в процессор. Он устанавливается в единичное состояние после приема слова данных и сбрасывается после считывания данных процессором. Оба сигнала могут быть использованы как сигналы требования прерываний, в случае программной организации ввода/вывода сигналы не используются.

Схема управления содержит регистры управляющих слов, ре­гистр состояния, схему управления модемом. Синхронизируется БИС сигналами, подаваемыми на вход CLK (обычно используют вторую фазу сигналов синхронизации микропроцессора). Сигнал SR длительностью не менее 6 периодов синхронизации используется для установки БИС в исходное состояние. Выход сигнала запроса приемнику терминала RTS устанавливается в 0 программно и используется как требование передачи данных от внешнего устройства. Сигнал на входе готовности приемника терминала CTS указывает (при CTS=0), что передача данных внешним устройством разрешена. Выход сигнала запроса готовности передатчику терминала DTR можно использовать для синхронизации работы передатчика и управления скоростью выборки. Он устанавливается в 0 программно. Вход сигнала готовности передатчика терминала DSR указывает на готовность внешнего устройства к передаче, фиксируется в слове состояния и может быть проанализирован программой.

Рис. 5.3. Структурная схема контроллера

 

С процессором БИС сопрягается посредством шины данных DO...D7 и управляющих сигналов CS, C/D, RD и WR. На вход выбора кристалла CS подается сигнал лог.0 с селектора адреса, определяющего адрес, по которому обращаются к БИС при программировании. Вход C/D (управление/данные) обычно управляется разрядом АО шины адреса. Входы управляющие чтением и записью информации RD и WR соединяются с линиями IORC и IOWR процессора (линии управляющие чтением/записью во внешние устройства).

Микросхема содержит 7 программно-доступных 8-разрядных регистров: данных (РД), состояния (РС), режима (РР), команд (РК), первого синхросимвола (РСС1), второго синхросимвола (РСС2) и регистр передатчика. В асинхронном режиме работы регистры РСС1 и РСС2 не используются.

Перед использованием контроллер должен быть запрограм­миро­ван. Программирование осуществляется записью нужной информации в регистры БИС. Порядок записи управляющих слов и данных следующий. После сигнала сброса по линии SR производится запись управляющего слова режима в РР. Следующие управляющие слова в зависимости от содержимого РР интерпретируется либо как первый синхросимвол и записывается в РСС1 (для синхронного режима), либо как команда (в асинхронном режиме). В синхронном режиме третье управляющее слово воспринимается как второй синхросимвол и записывается в РСС2, а четвертое слово как команда.

В дальнейшем на микросхему могут поступать данные и команды в произвольном порядке (команды от данных микросхема отличает по сопровождающему их сигналу C/D, логическая 1 – команды, логический 0 – данные). Если необходимо сменить режим, нужно подать команду программного сброса или сигнал SR после чего повторить процедуру начального программирования. Программный контроль за состоянием приемопе­ре­дат­чика возможен посредством слова состояния.

Все микропроцессорные системы должны связываться с внешним миром. Типичная вычислительная система обычно имеет клавиатуру, дисковод и коммуникационный порт. Все они требуют внимания процессора в разное время. Имеются два различных способа обработки запросов ввода/вывода от периферийных устройств: опрос и прерывания.

Опрос требует, чтобы процессор проверял каждое периферийное устройство в системе периодически, чтобы определить, требует ли оно обслуживания. Чаще всего процессору нужно многократно обратиться к внешнему устройству прежде чем оно потребует какого-либо внимания. В большинстве случаев использование опроса снижает производи­тель­ность системы. Время, использованное на проверку состояния внешнего устройства, это время, потраченное без пользы для решаемой задачи.

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

В вычислительной системе часто происходят события, которые требуют прерывания нормального хода выполнения программы и выполнения некоторых специальных действий. Такие исключительные ситуации, или просто исключения, могут быть инициированы сигналом от внешнего устройства, или условиями, обнаруженными в процессоре.

Например, персональные компьютеры часто используют таймер, чтобы прервать процессор раз в секунду, чтобы заставить его модифици­ровать изображение часов, отображаемых на экране. Компьютеры, используемые в управлении производственным процессом, обычно прерываются датчиками, которые обнаруживают различные состояния оборудования, требующие немедленного внима­ния. Пример внутрен­него состояния, требующего прерывания – попытка деления на 0, которая не может дать никакого результата. Этот тип исключительного состояния должен приостановить работу програм­мы, чтобы прервать операцию и послать предупреждающее сообщение пользователю.

Основное преимущество внешнего прерывания состоит в том, что микропроцессор может работать параллельно с несколькими внеш­ними процессами, каждый из которых обслуживается только тогда, когда процесс требует внимания. Когда обнаружена исключительная ситуация, процессор обычно отвечает следующим образом.

1. Заканчивает текущую команду программы, чтобы достигнуть удобной точки остановки.

2. Сохраняет текущее состояние счетчика команд в стеке системы или в определенном регистре, сохраняя указатель на следующую команду, которая была бы выполнена, если бы программа не была прервана.

3. Определяет устройство, которое вызвало прерывание. Многие микропроцессоры выполняют специальную операцию подтверждения прерывания, чтобы позволить внешнему устройству, вызвавшему прерывание, идентифицировать себя с помощью уникального числа, называемого вектором прерывания.

4. Загружает счетчик команд начальным адресом программы, которая выполняет необходимые действия по обслуживанию внешнего устройства. Эта программа называется программой обработки преры­ва­ния. Если используется вектор прерывания, то он указывает на ячейки памяти, содержащие начальный адрес программы обработки прерывания.

5. Выбирает и выполняет команды программы обработки прерывания.

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

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

Микропроцессор 8086 имеет два источника внешних прерываний; вход немаскируемого прерывания (NMI) и вход маскируемого прерывания (INTR). Для большинства микропроцессорных систем единственный вход маскируемого прерывания недостаточен. Боль­шинство процессоров использует специальный контроллер прерыва­ний, чтобы увеличить число доступных маскируемых прерываний.

Микропроцессор 8086 использует специальную микросхему контроллера прерываний 8259 (580ВН59). Блок-схема микросхемы контроллера приведена на рис. 5.4. Этот контроллер является стандартным для многих микропроцессорных систем и персональных компьютеров. Контроллер 8259 имеет восемь входов прерываний. Используя дополнительные контроллеры, число входов прерывания может быть доведено до 64. Дополнительные контроллеры называются вспомогательными; первый контроллер является основным. Основной контроллер располагает по приоритетам запросы на прерывание от вспомогательных контроллеров и своих входов IRn и передает запросы по одному на вход маскируемого прерывания процессора.

 

Рис.5.4. Блок-схема контроллера прерываний

 

Микропроцессор 8086 может использовать до 256 различных прерываний. Каждое прерывание определяется его номером в пределах от 0 до 255. Каждому прерыванию соответствует вектор прерывания, который является номером прерывания умноженным на 4. Вектор пре­ры­вания – указатель, который указывает на связанную с прерыванием подпрограмму обработки прерывания. Таблица векторов прерываний расположена в начальной области памяти микропроцессора. Таблица векторов прерываний имеет размер 1 Кбайт (4 байта, умноженные на 256).

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

Во многих случаях большие блоки данных должны быть переданы между устройством ввода/вывода и памятью. Дисковод, например, обычно читает и записывает данные блоками, которые могут быть объемом в тысячи байт. Если использовать для управлением передачей данных процессор, то значительная часть времени его работы будет потрачена на эту операцию. Даже если при передаче данных используется режим прерываний, все равно производительность системы в целом будет сильно падать. Это происходит потому, что микропроцессор не имеет команд прямой передачи данных от внешнего устройства в память и наоборот, и ему приходится использовать регистры общего назначения для временного хранения данных. То есть передача осуществляется в два этапа: сначала из внешнего устройства в процессор, а затем из процессора в память. Выгоднее было бы использование передачи напрямую, не используя процессор.

Прямой доступ к памяти (ПДП) позволяет передавать данные между памятью и периферийными устройствами без вмешательства процессора. Системы, которые используют прямой доступ к памяти, имеют специальное устройство, называемое контроллер прямого доступа к памяти. Контроллер берет в этом режиме под свой контроль шины системы и выполняет управление передачей данных между памятью и периферийным устройством. Когда контроллер ПДП принимает запрос от периферийного устройства, он посылает в процессор сигнал требования прямого доступа. Процессор тогда вырабатывает сигнал подтверждения ПДП и переходит в пассивный режим, переводя внешние шины адреса и данных в высокоомное состояние и не вырабатывая сигналы управления. В случаях, если процессору не требуется обращение к внешним шинам системы, он может продолжать выполнение команд из очереди команд. Контроллер ПДП выполняет передачу данных самостоятельно. Если передачи данных в режиме прямого доступа происходят относительно нечасто, то это не приводит к снижению производительности системы в целом, так как передача данных при прямом доступе прозрачна для процессора.

Передача данных в режиме ПДП начинается с запроса. Устройство, требующее прямой доступ, может иметь данные для передачи или может требовать данные от другого устройства. Кроме того, передачи данных в режиме ПДП могут быть инициализированы системным программным обеспечением без внешнего запроса.

Когда режим ПДП разрешается процессором, контроллер прямого доступа к памяти обеспечивает все необходимые сигналы шины для передачи данных. Источник и приемник данных для передачи программируемы и могут быть или в пространстве адресов ввода/вывода или в пространстве адресов памяти.

Микропроцессорные системы на основе микропроцессора 8086 используют в качестве контроллера прямого доступа к памяти микросхему 8257. Интегральная схема 8257 – программируемый 4 канальный контроллер ПДП. Каждый канал контроллера оборудован 16 разрядным регистром адреса ПДП и 16 разрядным регистром-счетчиком числа переданных байтов. Младшие 14 битов регистра-счетчика определяют количество циклов ПДП, таким образом, их максимальное количество равно 16384. Старшие 2 бита регистра-счетчика определяют тип операции ПДП для данного канала.

Логика арбитража в контроллере решает, какой канал имеет приоритет, если два канала одновременно запрашивают передачу данных. Каждый канал может получить или низкий, или высокий приоритет.

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

Во многих случаях необходимо подключить к микропроцессорной системе какое-либо стандартное периферийное устройство. Такие устройства обычно имеют встроенные средства для подключения к вычислительной системе. Эти средства принято называть интерфейсом, но по принятой нами классификации их точнее будет называть стандартными интерфейсами. Стандартные интерфейсы RS232C и Centronics – одни из са­мых распространенных. RS232C это последовательный, а Centronics – параллельный интерфейс.

Интерфейс RS-232C определен стандартом Ассоциации электрон­ной промышленности и подразумевает наличие оборудования двух типов: терминального – DTE (оконечное оборудование данных – ООД в русском варианте) и связного – DCE (аппаратура передачи данных –АПД). Терминальная аппаратура, например компьютер, может посылать и (или) принимать данные по последовательному интерфейсу. Оно как бы оканчивает последовательную линию. Связная аппаратура – это устрой­ства, которые могут упростить последовательную передачу сов­мес­тно с терминальной аппаратурой. Наглядный пример связного оборудования – модем, устройство которое кодирует информацию при передаче по телефонной линии и декодирует при приеме. Схема обмена информации между двумя ЭВМ по телефонной линии приведена на рис.5.5.

В качестве ООД могут выступать также дисплей, принтер и т.д.

В большинстве систем, содержащих интерфейс RS232C, данные передаются асинхронно, то есть в виде последовательности, пакетов данных. Каждый пакет содержит 1 байт данных, причем информация в пакете достаточна для его декодирования без отдельного сигнала синхронизации.

 

Рис. 5.5. Схема обмена по последовательному каналу

 

Чтобы передать байт данных по интерфейсу RS-232C, необходимо ввести дополнительные биты, обозначающие начало и конец пакета. Кроме того желательно добавить лишний бит для простого контроля ошибок по паритету (четности). Наиболее широко распространен формат, включающий в себя один стартовый бит, один бит паритета и два стоповых бита. Начало пакета данных всегда отмечает низкий уровень стартового бита. После него следует восемь бит данных. Бит паритета содержит 1 или 0 так, чтобы общее число единиц в восьмибитной группе было нечетным (нечетный паритет) или четным (четный паритет). Последними передаются два стоповых бита, представленных высоким уровнем напряжения. Таким образом, полное асинхронно передаваемое слово данных состоит из 12 бит (фактические данные содержат только 8 бит).

К сожалению, используемые в интерфейсе RS-232C уровни сигналов отличаются от уровней сигналов, действующих в компьютере. Логический 0 (SPACE) представляется положительным напряжением в диапазоне от +3 до +25В, а логическая 1 (MARK) - отрицательным напряжение в диапазоне от -3 до - 25В. На рис.6.6 показан сигнал пакета данных для кода буквы А в том виде, в котором он существует на линиях интерфейса RS232C.

Сдвиг уровня, то есть преобразование ТТЛ-уровней в уровни интерфейса RS232C, и наоборот, производится специальными схемами.

Сигналы интерфейса RS-232C подразделяются на следующие классы.

Последовательные данные (например, TXD, RXD). Интерфейс RS232C обеспечивает два независимых последовательных канала данных: первичный (главный) и вторичный (вспомогательный). Оба канала могут работать в дуплексном режиме, т.е. одновременно осуществляют передачу и прием информации.

Управляющие сигналы квитирования (например, RTS, CTS). Сигналы квитирования – это средство, с помощью которого обмен сигналами позволяет АПД начать диалог с ООД до фактических передачи или приема данных по последовательной линии связи.

Сигналы синхронизации (например, TC, RC). В синхронном режиме (в отличие от более распространенного асинхронного) между устройствами необходимо передавать сигналы синхронизации, которые упрощают синхронизм принимаемого сигнала в цепях его декодирования.

Рис. 5.6. Пакет посылки

 

Интерфейс Centronics обеспечивает радиальное подключение устройств с параллельной передачей информации к компьютеру. Передача данных осуществляется между одним источником (И) и одним приемником (П). Основным назначением интерфейса Centronics являет­ся подключение к компьютеру принтеров различных типов. Поэтому распределение контактов разъема, назначение сигналов, программные средства управления интерфейсом ориентированы именно на это использование. В то же время с помощью данного интерфейса можно подключать к компьютеру и другие внешние устройства.

Сигналы Centronics имеют следующее назначение (тип выходных каскадов для всех сигналов – ТТЛ):

DO...D7 – 8-разрядная шина данных для передачи из компьютера в принтер. Логика сигналов положительная.

STROBE – сигнал стробирования данных. Данные действительны как по переднему, так и по заднему фронту этого сигнала. Сигнал говорит приемнику, что можно принимать данные.

ACK – сигнал подтверждения принятия данных и готовности приемника принять следующие данные.

BUSY – сигнал занятости приемника обработкой полученных данных и неготовности принять следующие данные. Активен также при ошибке.

Остальные сигналы не являются обязательными.

Временная диаграмма цикла передачи данных представлена на рис. 5.7.

 

Рис. 5.7. Временные диаграммы цикла передачи данных в Centronics (все временные интервалы в наносекундах)

 

Перед началом цикла передачи данных источник должен убедиться, что сняты сигналы BUSY и АСК. После этого выставляются данные, формируется строб, снимается строб и снимаются данные. При получении строба приемник формирует сигнал BUSY, а после окончания обработки данных выставляет сигнал АСК, снимает BUSY и снимает АСК. Затем может начинаться новый цикл.

Все сигналы интерфейса Centronics передаются в уровнях ТТЛ и рассчитаны на подключение одного стандартного входа ТТЛ. Максимальная длина соединительного кабеля по стандарту – 1,8 м.

 

Литература:1 осн.[236-241]; 2 осн.[151-155].

Контрольные вопросы:

1. Какое оборудование применяется для связи персонального компьютера и технологического оборудования.

2. Какие существуют протоколы передачи информации.

3. На каких скоростях производится обмен информации. От чего зависит скорость передачи?

4. Опишите основные характеристики AS – интерфейса.

5. Какие принципы построения AS сетей существуют.

6. Какой диапазон тока при передачи информации.

Тема лекции 7: Процессор.

Содержание темы: Строительство, регистры, блок управления, АЛУ, концепция программы, цикл команды. Работа простого процессора. Микрокод.

 

Практически любое инженерное устройство имеет целью своего функционирования то или иное преобразование энергии или преобразование информации. Задачей любой системы управления в самом общем смысле является обработка информации о текущем режиме работы управляемого объекта и выработка на основе этого управляющих сигналов с целью приближения текущего режима работы объекта к заданному. Под обработкой информации в данном случае подразумевается решение тем или иным способом уравнений состояния системы.

В электронных устройствах существуют два основных способа обработки информации: аналоговый и цифровой.

При аналоговом способе обработки информации каждой переменной величине в системе ставится в соответствие один из плавно меняющихся параметров определенного участка электрической цепи (ток, напряжение, частота и т.д.). Функциональные зависимости между различными переменными в системе реализуются путем построения соответствующих электрических цепей. Простейшие функциональные зависимости можно реализовать на основе законов функционирования элементарных пассивных элементах электрической цепи:

- для резистора ;

- для конденсатора ;

- для индуктивности .

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

При цифровом способе обработки информации каждой переменной величине в системе ставится в соответствие ее цифровой код. Функциональные зависимости в системе реализуются путем непосредственного решения уравнений системы теми или иными численными методами по заранее заложенной программе. Устройство, реализующее это решение называется процессором.

Первый процессор, как программно функционирующее устройство, способное выполнять арифметические и логические операции, а так же осуществлять ветвление алгоритма своего функционирования в зависимости от результата предыдущих вычислений, был создан в 40-е годы нашего столетия в США специалистами фирмы IBM. Он представлял собой устройство на электо-механических реле, занимал несколько этажей здания, имел крайне низкое быстродействие и надежность, и был пригоден лишь для очнь узкого класса специфических вычислений. По мере прогресса электронной техники усовершенствовалась и элементная база для построения процессоров. Появлялись процессоры на электронных лампах, транзисторах, дискретных логических микросхемах малой степени интеграции. По мере совершенствования процессоры имели все меньшие габаритные размеры, потребляли все меньше энергии, обладали все большей производительностью и надежностью. Однако они все еще были мало пригодны для выполнения операций управления в реальном масштабе времени, а по тому использовались в основном только для определенного класса вычислительных задач.

Настоящая революция в вычислительной технике произошла после появления первого т.н. “микропроцессора”, т.е. процессора, выполненного в виде одной микросхемы большой степени интеграции. Это был 4-разрядный микропроцессор 4004 фирмы INTEL (1971 г.). В 1973 г. фирма INTEL выпускает 8-разрядный микропроцессор 8080, а в 1978 г. - 16-разрядный микропроцессор 8086, имеющий 29 тысяч транзисторов на кристалле и начальную стоимость 360$.

В 1965 году один из основателей фирмы Intel Гордон Мур (Gordon Earle Moore) сформулировал т.н. «закон Мура», согласно которому число транзисторов на кристалле будет удваиваться каждые два года. Дальнейшая эволюция микропроцессоров подтвердила его правоту. В 1993 г. микропроцессор INTEL PENTIUM имел уже 3.2. млн. транзисторов на кристалле и начальную стоимость 878$, а появившиеся на рынке в 2011 г. Микропроцессоры семейства Intel Core I имеют на кристалле порядка 1 млрд. транзисторов. Основными направлениями эволюции микропроцессоров являлись (и являются) увеличение разрядности одновременно производимых вычислений и уменьшение времени выполнения вычислений.

Микропроцессор - программно-управляемое устройство, предназначенное для обработки цифровой информации и управления процессом этой обработки, выполненное в виде одной (или нескольких) интегральной схемы с высокой степенью интеграции электронных элементов.

Уменьшение стоимости, потребляемой мощности и габаритных размеров, повышение надежности и производительности микропроцессоров способствовали значительному расширению сферы их использования. Наряду с традиционными вычислительными системами они все чаще стали использоваться в задачах управления. При этом перед микропроцессором ставились задачи программного управления различными периферийными объектами в реальном масштабе времени.

Упрощенная структурная схема микропроцессорной системы управления имеет вид.

 

 

На процессор возлагается задача выполнения всех программных действий, необходимых в соответствии с алгоритмом работы устройства. В блоке памяти хранятся команды программы функционирования процессора, а также значения констант и переменных величин, участвующих в вычислениях. Блок ввода-вывода выполняет функцию сопряжения микропроцессорной системы с объектом управления.

Широкое использование микропроцессорной техники именно для задач управления привело к появлению на рынке специализированных микропроцессорных устройств, ориентированных на подобного рода применения. Особенностью этих микросхем является то, что помимо собственно процессора, на этом же кристалле расположен блок памяти и блок ввода-вывода, что позволяет снизить функциональную сложность и габаритные размеры микропроцессорной системы управления. Подобные устройства называются микроконтроллерами.

Микроконтроллер - вычислительно-управляющее устройство, предназначенное для выполнения функций логического контроля и управления периферийным оборудованием, выполненное в виде одной БИС и сочетающее в себе микропроцессорное ядро, блок электронной памяти и набор встроенных устройств ввода-вывода.

Первыми микроконтроллерами явились микросхемы семейства MCS-48 фирмы INTEL, выпущенные в 1976 году. В 1981 году фирма INTEL выпустило новое семейство 8-разрядных микроконтроллеров MCS-51, которые получили огромное распространение во всем мире и дали толчек бурному развитию микроконтроллеров. вслед за фирмой INTEL микроконтроллеры начинают выпускать и другие ведущие производители микропроцессорной техники. Фирма MOTOROLA выпустила самый популярный в мире 8-разрядный микроконтроллер M68HC05. Эволюция микроконтроллеров соответствовала общему прогрессу микропроцессорной техники. Увеличивалась разрядность микроконтроллеров, их быстродействие, усовершенствовалась встроенная система ввода-вывода. Появились 16-разрядные (MCS-96 фирмы INTEL, M68HC12, M68HC16 фирмы MOTOROLA и др.), а затем и 32-разрядные (M68HC32 фирмы MOTOROLA) микроконтроллеры. С 1984 года начало развиваться направление т.н. RISC ( Reduced Instruction Set Computer) микроконтроллеров, обладающих пониженным энергопотреблением. Представителями подобных устройств являются семейства SAB 80C166 фирмы Infineon, MPC500 (на базе PowerPC ядра) фирмы MOTOROLA и др.

Дальнейшая интеграция позволила объединить на одном кристалле несколько процессорных ядер, оснащенных совместными и индивидуальными устройствами ввода-вывода и пространствами памяти. Такие устройства стали называться «система на кристалле»(SoC (System on Chip)). Примером таких устройств может служить 32-разрядное семейство F28M35 фирмы Texas Instruments, сочетающее в себе RISC-ядро ARM Cortex M3 с соответствующей периферией для решения коммуникационных задач и специализированное DSP-ядро C2000 для решения задач управления в реальном времени.

Отличительной особенностью цифровых систем управления является дискретизация сигнала по уровню, величина которой определяется разрядностью производимых вычислений. Так, в случае 8-разрядной системы, весь диапазон изменения значения сигнала делится на 256 участков и цифровой код, соответствующий этому сигналу может принимать лишь одно из 256 значений. Это, очевидно, накладывает ограничение на точность цифровой системы управления. Вследствие этого, долгое время в прецизионных системах продолжали (и в ряде случаев продолжают) использовать аналоговые методы обработки информации. Проведем сравнительный анализ. Пусть в аналоговой системе некоторый сигнал, в амплитуде которого заложена информация, может изменяться в пределах от 0 до 10 В. Уровень шума при этом не превышает 1 мВ. Для достоверной передачи информации, исключающей влияние шумов, минимальное приращение сигнала должно составлять как минимум 1 мВ. Т.о., с помощью подобного сигнала можно передать единиц информации.

 

 

Для передачи такого же количества информации в цифровом коде необходимо иметь разрядность как минимум 14 двоичных разрядов. Следовательно, цифровые системы с меньшей разрядностью будут уступать по точности описанной аналоговой системе. Однако, при наличии разрядности, большей чем 14 бит цифровая система может не только не уступать, но и превосходить по точности аналоговую поскольку ее параметры не изменяются с течением времени и не таких внешних факторов как температура, влажность и т.п., что в большой степени присуще практически всем аналоговым системам.

Второй отличительной особенностью микропроцессорных систем является последовательное во времени выполнение команд процессором. Все команды, каждая из которых имеет конечное время выполнения, исполняются последовательно, одна за другой. Следовательно, от момента начала выполнения алгоритма до получения конечного результата проходит некоторый интервал времени. Это отрицательно сказывается на быстродействии цифровых систем, и , в частности, на области устойчивости и полосе пропускания цифровых систем управления. Однако, процесс повышения быстродействия микропроцессорных устройств идет неуклонно вперед и в настоящее время существуют микропроцессоры, минимальное время выполнения команды у которых меньше 1 нс. С помощью современных микропроцессоров уже сегодня возможно создавать системы управления с полосой пропускания в десятки и даже сотни КГц. В свою очередь, аналоговые системы, несмотря на практически мгновенное протекание сигналов, также обладают конечным быстродействием из-за неидеальности компонентов и наличия паразитных реактивных связей в системе. Временные параметры цифровых систем, в отличие от аналоговых, не изменяются с течением времени и не зависят от внешних факторов.

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

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

В последнее время появился ряд микроконтроллеров, специализированных для задач управления полупроводниковыми преобразователями. Их вычислительное ядро, построенное, как правило, на базе т.н. «процессоров цифровой обработки сигналов» (DSP – Digital Signal Processor), адаптировано на выполнение рекуррентных полиномиальных алгоритмов цифрового регулирования. Встроенные периферийные устройства включают в себя многоканальные генераторы ШИМ-сигналов, аналого-цифровые преобразователи, блоки векторных преобразований координат, таймеры-счетчики, Watcdog-таймеры и т.д. Примерами таких устройств могут служить микроконтроллеры TMS320C2000 фирмы Texas Instruments, 56800 фирмы Motorola, . SAB 80C166 фирмы Infineon.

 

Литература:1 осн.[236-241]; 2 осн.[151-155].

Контрольные вопросы:

1. Основные понятия, характеризующие локальные вычислительные сети (ЛВС).

2. Компоненты ЛВС.

3. Топология ЛВС.

4. Основные протоколы, используемые в ЛВС.

5. Базовые характеристики глобальных вычислительных сетей.








Дата добавления: 2015-10-13; просмотров: 1113;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.07 сек.