Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЭВМ II семестр

.pdf
Скачиваний:
23
Добавлен:
08.05.2015
Размер:
972.22 Кб
Скачать

отсутствие контрольного разряда), длительности передачи стоповой посылки (1 бит, 1,5 бит или 2 бит).

Спецификация RS-232C для электрических характеристик сигналов определяет, что высокий уровень напряжения от +3В до +12В (при передаче до +15В) считается логическим «0», а низкий уровень напряжения от –3В до –12В (при передаче – до –15В) считается логической «1». Диапазон сигналов –3В…+3В обеспечивает защиту от помех и стабильность передаваемых данных.

Рассмотрим пример: передать по интерфейсу RS-232 символ ‘M’ в кодировке ASCII. При этом использовать 8 значащих разрядов, контроль по четности и длительность стоповой посылки 1 бит.

Символ ‘М’ в кодировке ASCII имеет код 77=4Dh=01001101b.

Бит контроля по четности представляет собой исключающее ИЛИ всех значащих битов посылки: 1Å0Å0Å1Å1Å0Å1=0.

ожидание посылки

стартовый бит

бит четности

стоповый бит

ожидание посылки

Рис. 38. Передача символа ‘М’ по интерфейсу RS-232C

В 1975 г. были приняты стандарты RS-422 (электрические характеристики симметричных цепей цифрового интерфейса) и RS-423 (электрические характеристики несимметричных цепей цифрового интерфейса), позволяющие увеличить скорость передачи данных по последовательному интерфейсу. Интерфейсы RS-422 и RS-423 являются дуплексными и обладают повышенной надежностью по сравнению с интерфейсом RS-232. Однако они требуют увеличенного числа линий связи для своей реализации.

RS-485 (RS485 — англ. Recommended Standard 485, EIA-485 — англ. Electronic Industries Alliance-485) — стандарт передачи данных по двухпроводному полудуплексному многоточечному последовательному каналу связи.

Интерфейс RS-485

Интерфейс RS-485 является полудуплексным аналогом интерфейса RS-422. В нем одни и те же линии связи используются для приема и передачи сообщений и часто представляют собой единственную витую пару проводов. Передача данных осуществляется с помощью дифференциальных сигналов: по одному проводу (условно А) идет оригинальный сигнал, а по другому (условно В) – его инверсная копия: если на одном проводе «1», то на другом «0» и наоборот. Таким образом, между проводниками витой пары всегда есть разность потенциалов: при «1» она положительна, при «0» – отрицательна.

61

Электрические и временные характеристики интерфейса RS-485:

32 приёмопередатчика при многоточечной конфигурации сети, максимальная длина линии в пределах одного сегмента сети – 1200 метров;

только один передатчик активный в каждый момент времени;

максимальное количество узлов в сети – 250;

отношение скорости обмена к длине линии связи имеет вид:

o 62,5 кбит/с – 1200 м (одна витая пара); o 375 кбит/с – 300 м (одна витая пара);

o 500 кбит/с, 1000 кбит/с, 2400 кбит/с – 100 м (две витых пары);

o10000 кбит/с – 10 м (две экранированные витые пары);

тип приёмопередатчиков – дифференциальный, потенциальный;

изменение входных и выходных напряжений на линиях A и B – от −7В до

+12В (+7В);

разность состояний логической «1» и логического «0» больше 200 мВ.

Интерфейс IEEE 1284 (параллельный интерфейс Centronix)

Стандартный интерфейс параллельного порта получил свое первоначальное название по имени американской фирмы Centronics – производителя принтеров. Первые версии этого стандарта были ориентированы исключительно на принтеры, подразумевали передачу данных лишь в одну сторону (от компьютера к принтеру) и имели невысокую скорость передачи (150-300 Кбайт/с). Такие скорости неприемлемы для современных печатающих устройств. Кроме того, для работы с некоторыми устройствами необходима двусторонняя передача данных.

Поэтому некоторые фирмы (Xircom, Intel, Hewlett Packard, Microsoft) предложили несколько модификаций скоростных параллельных интерфейсов: EPP (Enhanced Parallel Port) – до 2 Мбайт/с, ECP (Extended Capabilities Port) – до 4 Мбайт/с и др.

На основе этих разработок в 1994 г. Институтом инженеров по электронике и электротехнике был принят стандарт IEEE 1284, используемый в персональных компьютерах в качестве стандартного параллельного интерфейса.

Стандарт IEEE 1284 определяет работу параллельного интерфейса в трех режимах: Standard Parallel Port (SPP), Enhanced Parallel Port (EPP) и Extended Capabilities Port (ECP). Каждый из этих режимов предусматривает двустороннюю передачу данных между компьютером и периферийным устройством.

Втаблице 2 представлено назначение контактов разъема параллельного интерфейса.

Режим SPP (Стандартный параллельный порт) используется для совместимости со старыми принтерами, не поддерживающими IEEE 1284.

Вэтом режиме линии DATA[0:7] используются для прямой передачи данных от компьютера к периферийному устройству. Сигналы STROBE#, ACK# и BUSY используются для квитирования . Сигналом STROBE# компьютер информирует о готовности данных на линиях DATA[0:7]. Если устройство приняло выставленные компьютером данные, то оно выставляет сигнал ACK#. Во время приема данных, во время инициализации, а также при наличии ошибки устройство выставляет сигнал BUSY. О возникновении ошибочной ситуации

62

сигнализирует линия ERROR#, а также PE (кончилась бумага). О том, что принтер включен и готов к работе, сообщается при помощи сигнала SELECT. Для подтверждения выбора принтера компьютер выставляет сигнал SLCTIN#. При необходимости очистить буфер принтера и перевести его в исходное состояние выставляется INIT#. Сигнал AUTOFD# используется при работе с матричными принтерами в текстовом режиме для продвижения бумаги на одну строку.

Таблица 3. Сигналы интерфейса IEEE 1284

Разъем DB25

Направление

SPP

EPP

ECP

1

O

STROBE#

WRITE#

HostClk

2

O (I)

DATA0

AD0

D0

3

O (I)

DATA1

AD1

D1

4

O (I)

DATA2

AD2

D2

5

O (I)

DATA3

AD3

D3

6

O (I)

DATA4

AD4

D4

7

O (I)

DATA5

AD5

D5

8

O (I)

DATA6

AD6

D6

9

O (I)

DATA7

AD7

D7

10

I

ACK#

Intr#

PeriphClk

11

I

BUSY

Wait#

PeriphAck

12

I

PE

AckDataReq

AckReverse#

13

I

SELECT

XFlag

XFlag

14

O

AUTOFD#

DataStb#

HostAck

15

I

ERROR#

DataAvail#

PeriphReq#

16

O

INIT#

Reset#

ReverseReq#

17

O

SLCTIN#

AddrStb#

1284Active

18-25

-

GND

GND

GND

Для организации обратного канала (передача данных от принтера в компьютер) в режиме SPP возможны два механизма: механизм двунаправленного порта (впервые представленный в IBM PS/2 в 1987 г.) и механизм передачи полубайтами (Nibble Mode). При использовании механизма двунаправленного порта способ квитирования не декларируется.

В режиме EPP (Улучшенный параллельный порт) используется аппаратная реализация сигналов квитирования, благодаря чему возможно увеличение скорости передачи до 2 Мбайт/с. Этот режим поддерживает адресацию устройств, благодаря чему возможно подключение нескольких (до 64) устройств к одному порту. Адаптер IEEE 1284 устанавливает сигнал Write# в зависимости от направления передачи (низкий уровень – прямая передача, высокий уровень – обратная передача). Для периферийного устройства информацией о том, являются ли биты на линиях AD[0:7] данными или адресом, является сигналы DataStb# (строб данных) или AddrStb# (строб адреса). Периферийное устройство информирует компьютер о своей готовности принять очередной байт при помощи сигнала Wait#. Сигнал Reset#, так же как и в режиме SPP используется для инициализации устройства. Установка периферийным устройством сигнала Intr# вызывает генерацию прерывания. Сигналы AckDataReq и DataAvail# используются по усмотрению разработчика, например, для квитирования в обратном канале.

63

Режим ECP (Порт расширенных возможностей) также использует аппаратное квитирование и адресацию устройств (до 128). Дополнительно ECP поддерживает распознавание ошибок, согласование скорости и режима передачи, буферизацию данных в очереди FIFO (с использованием каналов прямого доступа к памяти (DMA)) и их компрессию по алгоритму RLE (Run Length Encoding), что позволяет достигать скорость до 4 Мбайт/с.

Признаком активности режима ECP является высокий уровень сигнала 1284Active. При прямой передаче для квитирования используются сигналы HostClk и PeriphAck, а сигнал HostAck указывает на тип передаваемых данных: высокий уровень – обычные данные, низкий уровень – команда или адрес. Для запроса обратного канала компьютер выставляет сигнал ReverseReq#, который устройство подтверждает сигналом AckReverse#. В обратном канале для квитирования применяются сигналы PeriphClk и HostAck, а сигнал PeriphAck используется устройством для указания типа передаваемых данных. Устройство может запросить обслуживание при помощи сигнала PeriphReq#.

В режиме ECP параллельный порт может эмулировать работу любого другого режима IEEE 1284.

Интерфейс USB

Спецификация периферийной шины USB была разработана лидерами компьютерной и телекоммуникационной промышленности (Compaq, DEC, IBM, Intel, Microsoft, NEC и Northern Telecom) для подключения компьютерной периферии вне корпуса вычислительной машины с автоконфигурированием (Plug & Play). Первая версия стандарта появилась в 1996 г.

Интерфейс USB представляет собой последовательную, полудуплексную, двунаправленную шину со скоростью обмена:

USB 1.1 – 1,5 Мбит/с или 12 Мбит/с; USB 2.0 – 480 Мбит/с.

Шина позволяет подключить к вычислительной машине до 127 физических устройств. Каждое физическое устройство может, в свою очередь, состоять из нескольких логических (например, клавиатура со встроенным манипулятором – трекболом).

Кабельная разводка USB начинается с узла (host). Хост обладает интегрированным корневым концентратором (root hub), который предоставляет несколько разъемов USB для подключения внешних устройств. Затем кабели идут к другим устройствам USB, которые также могут быть концентраторами, и функциональным компонентам (например, модем или акустическая система). Концентраторы часто встраиваются в мониторы и клавиатуры (которые являются типичными составными устройствами). Концентраторы могут содержать до семи «исходящих» портов (рис. 39).

64

Рис. 39. Топология подключения устройств к USB

Для подключения периферийных устройств к шине USB используется четырёхпроводный кабель, при этом два провода (витая пара) в дифференциальном включении используются для приёма и передачи данных, а два провода – для питания периферийного устройства (таблица 4). Благодаря встроенным линиям питания, USB позволяет подключать периферийные устройства без собственного источника питания (максимальная сила тока, потребляемого устройством по линиям питания шины USB, не должна превышать

500 мА).

Спецификация USB-интерфейса регламентирует два типа разъёмов: A – на стороне контроллера или концентратора USB, B – на стороне периферийного устройства. Впоследствии были разработаны миниатюрные разъёмы для применения USB в переносных и мобильных устройствах, получившие название Mini-B. Новая версия миниатюрных разъёмов, называемых Micro-USB, была представлена USB Implementers Forum 4 января 2007 года (рис. 40).

а)

б)

в)

Рис. 40. Разъемы: а)USB Тип A – 4x12 мм, б)USB Тип B – 7x8 мм, в) USB mini B – 2x7 мм Таблица 4. Размещение проводников разъема USB

Номер контакта

Обозначение

Цвет провода

1

VBus

красный

2

D−

белый

3

D+

зелёный

4

GND

чёрный

 

65

 

В отличие от многих других стандартных типов разъёмов, для USB характерны долговечность и механическая прочность.

Здесь GND – цепь «корпуса» для питания периферийных устройств, VBus – напряжение питания +5 В. Данные передаются по проводам D+ и D− дифференциально (состояния «0» и «1» (в терминологии официальной документации diff0 и diff1 соответственно) определяются по разности потенциалов межу линиями более 0,2 В и при условии, что на одной из линий (D− в случае diff0 и D+ при diff1) потенциал относительно GND выше 2,8 В. Дифференциальный способ передачи является основным, но не единственным. Также иногда вокруг провода присутствует волокнистая обмотка для защиты от физических повреждений

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

Хост узнает о подключении или отключении устройства из сообщения от концентратора (эта процедура называется опросом шины – bus enumeration). Затем хост присваивает устройству уникальный адрес USB (1:127). После отключения устройства от шины USB его адрес становится доступным для других устройств.

Для индивидуального обращения к конкретным функциональным возможностям составного устройства применяется 4-битное поле конечной точки. В низкоскоростных устройствах за каждой функцией закрепляется не более двух адресов конечных точек: нулевая конечная точка используется для конфигурации и определения состояния USB, а также управления функциональным компонентом; а другая точка – в соответствии с функциональными возможностями компонента. Устройства с максимальной производительностью могут поддерживать до 16 конечных точек, резервируя нулевую точку для задач конфигурации и управления USB.

Хост опрашивает все устройства и выдает им разрешения на передачу данных (рассылая для этого пакет-маркер – Token Packet). Таким образом, устройства лишены возможности непосредственного обмена данными – все данные проходят через хост. Это условие сильно мешало внедрению интерфейса USB на рынок портативных устройств. В результате в конце 2001 года было принято дополнение к стандарту USB 2.0 – спецификация USB OTG (On-The-Go), предназначенная для соединения периферийных USB-устройств друг с другом без необходимости подключения к хосту (например, цифровая камера и фотопринтер). Устройство, поддерживающее USB OTG, способно частично выполнять функции хоста и

66

распознавать, когда оно подключено к полноценному хосту (на основе ПК), а когда – к другому периферийному устройству. Спецификация описывает также протокол согласования выбора роли хоста при соединении двух USB OTG – устройств.

Данные на шине передаются транзакциями (посылками), интервал между которыми составляет 1 мс. Предусмотрено четыре типа транзакций:

управляющие передачи используются для конфигурации вновь подключенных устройств (например, присвоения им адреса USB) и их компонентов; устройства с максимальной производительностью могут быть настроены на работу с конфигурационными сообщениями длиной 8, 16, 32 или 64 байта (по умолчанию – 8 байт), устройства с низкой производительностью в состоянии распознавать управляющие сообщения длиной не более 8 байт;

групповая передача (bulk) используется для адресной пересылки данных большого объема (до 1023 байт), например, посылка данных на принтер, устройства с низкой производительностью не поддерживают этот режим;

передача данных прерывания, например, введенных с клавиатуры данных или сведений о перемещении мыши, данные должны быть переданы достаточно быстро (в течение нескольких миллисекунд) для того чтобы пользователь не заметил никакой задержки;

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

Протоколы передачи данных Протокол передачи данных – набор соглашений логического уровня

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

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

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

Modbus – коммуникационный протокол, основанный на клиент-серверной архитектуре. Разработан фирмой Modicon для использования в контроллерах с программируемой логикой. Использует для передачи данных последовательные линии связи RS-485, RS-422, RS-232 и другие, а также сети TCP/IP.

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

67

вывода до частотных преобразователей. Все универсальные SCADA/HMI системы поддерживают данный протокол.

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

Рис. 41. Устройства Modbus в последовательной линии связи

Протокол Modbus предусматривает для передачи данных по последовательным линиям связи два режима передачи: RTU и ASCII.

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

Использование режима RTU позволяет приблизительно в 2 раза увеличить количество передаваемых данных по последовательной линии связи. Данные пакета передаются по сети в двоичном виде без изменений. В режиме RTU перед передачей пакета в линии выдерживается небольшой интервал тишины. Пакет передается непрерывным потоком данных.

Структура сообщения протокола Modbus (рис. 42) содержит код функции, данные и дополнительные поля (в зависимости от реализации, некоторые из полей могут отсутствовать).

Рис. 42. Структура сообщения протокола Modbus.

Допустимые символы для передачи информационной части сообщения в RTUрежиме – это шестнадцатиричные цифры 0…F, в ASCII-режиме – коды символов

‘0’…’F’.

68

ВASCII-режиме, сообщение начинается со старт-символа (чаще всего – «двоеточие» (‘:’, ASCII – 3Ah)), и заканчивается парой стоп-символов (обычно «возврат каретки», «перевод строки» (CRLF, ASCII – 0Dh 0Ah)).

ВRTU режиме сообщение начинается с интервала тишины равного времени передачи 3,5 символов при данной скорости передачи. Вслед за последним передаваемым символом также следует интервал тишины продолжительностью не менее 3,5 символов. Новое сообщение может начинаться после этого интервала. Фрейм сообщения передается непрерывно. Если интервал тишины продолжительностью более 1,5 символов возник во время передачи фрейма, принимающее устройство заканчивает прием сообщения, и следующий байт будет воспринят как начало следующего сообщения. Если новое сообщение начнется раньше интервала в 3,5 символа, принимающее устройство воспримет его как продолжение предыдущего сообщения. В этом случае устанавливается ошибка, так как будет несовпадение контрольных сумм.

Когда принят старт-символ, каждое устройство декодирует следующие поле сообщения (поле адреса).

Адресное поле сообщения содержит два ASCII-символа или 8 бит RTU. Допустимый адрес передачи находится в диапазоне 0…247. Каждому подчиненному устройству присваивается адрес в пределах от 1 до 247. Адрес 0 используется для широковещательной передачи, его распознает каждое устройство.

Поле функции сообщения содержит два ASCII-символа или 8 бит RTU. Диапазон числа – 1…127.

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

Протокол Modbus может использовать два метода контроля ошибок передачи. Содержание поля контрольной суммы зависит от выбранного способа передачи. В ASCII-режиме поле контрольной суммы содержит два ASCII-символа. Контрольная сумма является результатом вычисления Longitudinal Redundancy Check (LRC) сделанного над содержанием сообщения.

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

n

LRC = (FFh − åbytei ) +1,

i=1

где n – количество байт в сообщении, исключая старт-символ и стоп-символы.

В ASCII-режиме результат вычисления LRC кодируется двумя соответствующими ASCII-символами.

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

69

В RTU-режиме поле контрольной суммы содержит 16-ти битовую величину, которая является результатом вычисления Cyclical Redundancy Check (CRC), сделанного над содержанием сообщения. Генерация CRC осуществляется по следующему алгоритму.

Шаг 1. Загрузить 16-битную константу FFFFh в регистр CRC.

Шаг 2. Исключающее ИЛИ первого байта сообщения с младшим байтом регистра CRC с сохранением результата в регистр CRC.

Шаг 3. Сдвиг регистра CRC на 1 бит вправо с заполнением старшего бита нулем.

Шаг 4. Проверка младшего бита регистра CRC. Если этот бит равен 0, повторяем шаг 3 (следующий сдвиг). Если младший бит равен 1, производим операцию исключающее-ИЛИ регистра CRC и константы A001h (1010 0000 0000 0001).

Шаг 5. Повторяем шаги 3 и 4 до 8 сдвигов.

Шаг 6. Повторяем шаги 2…5 для всех следующих байтов сообщения.

Шаг 7. Помещаем результат вычисления CRC в конец сообщения младшим байтом вперед.

Во время обмена данными могут возникать ошибки двух типов:

ошибки, связанные с искажениями при передаче данных;

логические ошибки.

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

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

Например, сообщение от главного подчиненному имеет код функции: 0000 0011 (03h).

Если подчиненный выполнил затребованное действие без ошибки, он возвращает такой же код. Если имеет место ошибка, то он возвращает:

1000 0011 (83h).

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

Если ведомый не принимает какого-либо значения или обнаруживает ошибку контрольной суммы, никакого ответа не отправляется. Ведущий диагностирует ошибку по тайм-ауту (времени ожидания ответа), после чего может повторить запрос.

70

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]