Методические указания для практических занятий по дисциплине мдк. 02. 01
Скачать 7.37 Mb.
|
Структура и типы интерфейсов контрольно-измерительной системы на базе микроконтроллера и ПЭВМ Структура контрольно-измерительной системы в общем случае приведена на рис.3. Она состоит из измерительного датчика, микроконтроллера, осуществляющего управление всей системой, персональной ЭВМ, осуществляющей обработку полученной информации. Рис. 3. Структура контрольно-измерительной системы. В частном случае, когда микроконтроллер в состоянии сам осуществить обработку получаемой от датчика информации и отобразить результаты, структурная схема несколько видоизменяется (рис. 4). Рис. 4. Структура автономной контрольно-измерительной системы. Система индикации может представлять собой жидкокристаллический индикатор либо любой другой, предназначенный для использования в микропроцессорной системе. Цифрой 1 обозначен интерфейс, посредством которого происходит обмен информацией между датчиками и микроконтроллером. Требования к этому интерфейсу следующие: скорость передачи информации должна соответствовать скорости работы датчиков. Цифрой 2 обозначен интерфейс, позволяющий связать микроконтроллер с персональным компьютером. Требования к этому интерфейсу: скорость передачи информации, достаточная для связи компьютера с выбранным микроконтроллером, а также простота реализации процесса передачи информации. Параллельный и последовательный порты ПЭВМ (интерфейсы Centronics и RS-232). Параллельный, последовательный – это наиболее распространенные порты ввода/вывода. Изначально каждый из этих портов разрабатывался для определенного применения. Параллельные предназначались для соединения компьютеров с принтерами, последовательные – для подключения принтеров, модемов и мыши. Однако они могут использоваться и для других приложений, связанных с сопряжением компьютера с внешними устройствами. Периферийные устройства, созданные для этих портов, легко подключаются к IBM РС-совместимому компьютеру. Принципиальные схемы отличаются мобильностью и могут применяться для решения проблем сопряжения с любым оборудованием, которое оснащено указанными портами. Таким образом, полезно узнать, как они работают и как обеспечивается наиболее эффективное их использование. Параллельный интерфейс Centronics Порт “Centronic”, или параллельный, – это промышленный стандарт для подсоединения принтеров к компьютеру. Компьютер имеет по крайней мере один такой порт, встроенный в материнскую плату или представляющий собой отдельную интерфейсную карту ввода/вывода. Увеличить количество параллельных портов просто и недорого, можно установить параллельных 86 порта с логическими именами от LPT1 до LPT3. Разъемы порта для компьютера и принтера отличаются друг от друга. Первый – это 25-контактная розетка D-типа, а второй – 36-контактная розетка параллельного типа. Для соединения компьютера с принтером используется принтерный кабель длиной не более 5 м. Персональный компьютер работает максимум с тремя параллельными портами, которые в MS-DOS имеют логические имена: LPT1, LPT2, LPT3. В адресном пространстве компьютера резервируются базовые адреса этих портов: 3BCh, 378h, 278h. Первый адрес обычно используется, если принтерный порт находится на плате графического адаптера Hercules или EGA. На материнской плате (motherboad) адрес LPT1 – 378h, а LPT2 – 278h. Для принтерного порта LPT1 предусмотрено аппаратное прерывание IRQ7, а для LPT2 – IRQ5, хотя на практике они используются очень редко. Начиная с базового адреса, каждый адаптер принтера имеет в адресном пространстве три адреса. При этом первый адрес соответствует регистру данных, посылаемых от компьютера к принтеру. В случае использования TTL-микросхем этот регистр бывает реализован на микросхеме 74LS374. Чтение установленных битов данных можно осуществить по тому же адресу. Физически чтение данных происходит через буфер данных, выполненный, например, на микросхеме 74LS244. Следующий адрес (базовый адрес плюс единица) позволяет читать регистр статуса адаптера (расположенный, конечно, в принтере) через буферную микросхему (часто 74LS240 или 367–368). В регистре статуса биты с 3 по 7 позволяют определить состояние некоторых сигналов Centronics: bit 3 = 0:Error, bit 4 = 1:Select, bit 5 = 1:Paper Out, bit 6 = 0:Acknoweledge, bit 7 = 0:Busy. Чтение регистра статуса имеет смысл при передаче данных на принтер для определения состояния принтера и процесса передачи данных. Адрес третьего порта (базовый адрес+2) соответствует регистру управления интерфейса. Этот регистр (read only – только для чтения), для которого может использоваться микросхема 74LS174, позволяет определить следующие состояния принтера: bit 0 = 0: сигнал Data Strobe активен, bit 1 = 0: сигнал Auto Line Feed включен, bit 2 = 0: INIT инициализация принтера, bit 3 = 1: Select Input принтер выбран, bit 4 = 1: IRQEN прерывание разрешено. Таким образом, порт состоит из двух регистров на запись и трех на чтение (регистр данных, статуса и управления). Некоторые из линий регистров аппаратно инвертируются, так что логический сигнал на разъеме противоположен программно-установленному. На рис.10 места инверсии обозначены кружками. Таким образом, на разъем порта выведены 8 выходных линий данных, 5 входных регистра статуса и 4 выходных линии регистра управления. Сигнал IRQEN, не выведенный на разъем, разрешает выработку прерываний при поступлении сигнала /ACK. 87 Общая схема параллельного порта внутри ПК представлена на рис. 11. Восьмибитовые данные заносятся в DD1 во время записи в регистр с адресом “базовый адрес” + 0. Операция осуществляется командой WRITE_DATA. Эти данные образуют группу. Они считываются компьютером из того же регистра, через DD2 с помощью команды READ_DATA. Во время чтения выход DD1 должен иметь высокий уровень сопротивления, что достигается подачей на контакт 1 (выход разрешен) DD1 высокого уровня напряжения. Шестибитовое управляющее слово записывается в DD3 через регистр с адресом “базовый адрес” + 2 при помощи команды WRITE_CONTROL. Биты с 0 по 3 подаются на выход разъема и образуют группу управления. Некоторые биты инвертируются микросхемами с открытыми коллекторами на выходе (DD6 и DD7). Все выходные линии подключены к питанию +5В через резисторы 4,7 кОм. Состояние этих линий считывается через регистр с адресом, “базовый адрес” + 2 через DD4 посредством команды READ_CONTROL. Четвертый бит управляющего байта разрешает прерывание, а пятый бит открывает или закрывает выход DD1. Состояние пяти контактов разъема порта (группа состояния) компьютер считывает через DD4 с помощью команды READ_STATUS через регистр с адресом “базовый адрес” + 1. Входы линии подключены к питанию +5В через резисторы 4,7 кОм, два входа инвертируются. В первых конструкциях IBM PC контакт “выход” разрешен DD1 соединялся с “землей” для постоянного открывания выходов. Это была однонаправленная версия параллельного порта. Начиная с IBM PS/2, указанный контакт соединили с пятым битом регистра управления DD3, и порт стал двунаправленным. Следует отметить, что параллельные порты, поставляемые со встроенными картами ввода/вывода, двунаправленные. Для любого контакта следует избегать короткого замыкания и/или соединения с шиной питания. 88 Скорость передачи данных через параллельный порт превышает 1 Мб/с. На рис. 12 представлена логическая структура параллельного порта. Рассмотрим кратко расширенные режимы работы параллельного порта (табл. 1). 89 Совместимый протокол моделирует простейший принтерный порт. Компьютер защелкивает данные на выходах PD0...PD7 сигналом /STROBE. Принтер выдает сигнал /ASK в подтверждение приема данных и готовности к приему новых данных. Принтер выдает сигнал BUSY, если он не готов к приему данных, а также сигналы PERROR (Paper Error) и /FAULT при возникновении ошибок. Компьютер выдает сигнал /INIT для аппаратного сброса периферийного устройства. Для выбора внешнего устройства компьютер выдает сигнал /SELECTIN. Принтер выдает сигнал SELECT для указания, что он включен. Сигнал AUTOFD (Auto Feed Extension) выдается компьютером для автоматического перевода строки в принтере на каждый символ возврата каретки. Ниббловый протокол служит для ввода в компьютер битов 0...3 и 4...7 по очереди. Внешнее устройство сопровождает каждую порцию данных сигналом PtrClk. Этот сигнал вызывает прерывание в компьютере, если это разрешено. В ответ компьютер сбрасывает сигнал HostBusy, который затем устанавливается в подтверждение приема данных. Биты 0 и 4 передаются по линии DataAvail, 1 и 5 – по Xflag, 2 и 6 – по AckDataReq, 3 и 7 – по PtrBusy. Байтовый протокол описывает двунаправленную передачу по линиям данных. Внешнее устройство выдает сигнал DataAvail, указывающий на наличие данных к передаче, и сигнал PtrClk вместе с каждым байтом данных. Сигнал HostClk сбрасывается компьютером в подтверждение приема данных. Заметьте, что периферийное устройство не должно интерпретировать этот сигнал как строб данных, передаваемых от компьютера. Xflag выдается внешним устройством и указывает, что оно включено (on-line). Сигналы HostBusy и PtrBusy указывают на занятость компьютера и принтера соответственно при приеме данных. Сигнал AckDataReq сбрасывается внешним устройством в подтверждение HostBusy. Протокол ЕРР(Enhanced Parallel Port) описывает двунаправленную передачу через порт адресов и данных. Сигнал /Write выдается компьютером и устанавливает направление передачи. Сигнал /Wait выдается внешним устройством, когда оно не готово. Когда этот сигнал сброшен в “0”, порт снимает сигнал IOCHRDY на шине ISA, чтобы удлинить цикл чтения-записи. По окончании передачи адреса или данных сигнал /Wait устанавливается в “1”. Передача данных стробируется сигналом /DStrb, а адреса – /Astrb. Сигнал Intr выдается внешним устройством для выработки прерывания в компьютере. Назначение остальных сигналов аналогично совместимому протоколу. 90 Протокол ЕСР (Extended Capabilities Port) обеспечивает двунаправленную передачу адресов, данных или RLE (Run Length Encoded) информации. Направление передачи задается компьютером с помощью сигнала /ReverseRequest (если неактивен – от компьютера к внешнему устройству, т.е. в прямом направлении). Внешнее устройство выдает /PeriphRequest для запроса на передачу в обратном направлении. В ответ на /ReverseRequest оно выдает сигнал /AckReverse. При передаче в прямом направлении сигнал HostClk стробирует данные. Этот сигнал снимается при обнаружении сигнала PeriphAck от внешнего устройства и не может быть выдан вновь, пока PeriphAck не будет снят. При передаче в обратном направлении сигнал HostClk не используется, а сигнал PeriphAck обычно сброшен в“0” (“1” указывает на передачу RLE данных). Передача в обратном направлении стробируется сигналом PeriphClk и подтверждается сигналом HostAck аналогичным образом. При передаче в прямом направлении сигнал HostAck указывает на передачу адреса или RLE (“1”) либо данных (“0”). При работе в режиме ЕСР сигнал ЕСР Mode установлен в “1”. Отметим, что конкретная плата портов в вашем компьютере может поддерживать далеко не все из указанных режимов. Тем не менее зачастую их удается реализовать программным способом хотя бы частично. Интерфейс RS-232С Широко используемый последовательный интерфейс синхронной и асинхронной передачи данных определяется стандартом EIA RS-232-C и рекомендациями V.24 CCITT. Он изначально создавался для связи компьютера с терминалом и в настоящее время используется в самых различных применениях. Параметры интерфейса приведены в табл. 2. Интерфейс RS-232-C соединяет два устройства. Линия передачи первого устройства соединяется с линией приема второго, и наоборот (полный дуплекс). Для управления соединенными устройствами используется программное подтверждение (введение в поток передаваемых данных соответствующих управляющих символов). Возможна организация аппаратного подтверждения путем организации дополнительных RS-232 линий для обеспечения функций определения статуса и управления. Описание выводов интерфейса Сentronics приведено в табл. 3. Сигналы интерфейса RS-232C подразделяются на следующие классы: Последовательные данные: – например, TXD, RXD. Интерфейс RS-232C обеспечивает два независимых последовательных канала данных: первичный (главный) и вторичный (вспомогательный). Оба канала могут работать в дуплексном режиме. Управляющие сигналы квитирования: – например, RTS, CTS. Сигналы квитирования – это средство, с помощью которого обмен сигналами позволяет DTE начать диалог с DCE до фактических передачи или приема данных по последовательной линии связи. Сигналы синхронизации: – например, TC, RC. В синхронном режиме (в отличие от более распространенного асинхронного) между устройствами необходимо передавать сигналы синхронизации, которые упрощают контроль целостности сигнала в целях его декодирования. 91 Интерфейс RS-232C предназначен для подключения к компьютеру внешних устройств (принтера, сканера, модема, мыши и др.), а также для связи компьютеров между собой. Основными преимуществами использования RS-232C по сравнению с Centronics являются возможность передачи на значительно большие расстояния и гораздо более простой соединительный кабель. В то же время работать с ним несколько сложнее. Данные в RS-232C передаются в последовательном коде побайтно. Каждый байт обрамляется стартовым и стоповыми битами. Данные могут передаваться как в одну, так и в другую сторону (дуплексный режим). Компьютер имеет 25-контактный (DB25P) или 9-контактный (DB9P) разъем для подключения RS-232C. Назначение контактов приведено в табл. 3. Наиболее часто используется трех- или четырехпроводная связь (для двунаправленной передачи). Схема соединения для четырехпроводной линии связи показана на рис. 13. Для двухпроводной линии связи в случае только передачи из компьютера во внешнее устройство используются сигналы SG и TxD. Все 10 сигналов интерфейса задействуются только при соединении компьютера с модемом. Формат передаваемых данных показан на рис. 14. Собственно данные (5, 6, 7 или 8 бит) сопровождаются стартовым битом, битом четности и одним или двумя стоповыми битами. Получив стартовый бит, приемник выбирает из линии биты 92 данных через определенные интервалы времени. Очень важно, чтобы тактовые частоты приемника и передатчика были одинаковыми (допустимое расхождение – не более 10 %). Скорость передачи по RS-232C может выбираться из ряда: 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 бит/с. Все сигналы RS-232C передаются специально выбранными уровнями, обеспечивающими высокую помехоустойчивость связи (рис. 15.). Отметим, что данные передаются в инверсном коде (логической единице соответствует низкий уровень, логическому нулю – высокий уровень). Для подключения произвольного УС к компьютеру через RS-232C обычно используют трех- или четырехпроводную линию связи (см. рис. 1.1), но можно задействовать и другие сигналы интерфейса. Обмен по RS-232C осуществляется с помощью обращений по специально выделенным для этого портам COM1 (адреса 3F8h...3FFh, прерывание IRQ4), COM2 (адреса 2F8h...2FFh, прерывание IRQ3), COM3 (адреса 3F8h...3EFh, прерывание IRQ10), COM4 (адреса 2E8h...2EFh, прерывание IRQ11). Интерфейс RS-232C/CCITT V24, определенный стандартом Ассоциации электронной промышленности (EIA), подразумевает наличие оборудования двух видов: терминального DTE и связного DCE. Терминальное оборудование, например компьютеры, может посылать и (или) принимать данные по последовательному интерфейсу. Оно как бы оканчивает (terminate) последовательную линию. Связное же оборудование понимается как устройства, которые могут упростить последовательную передачу данных совместно с терминальным оборудованием (например, модем). Различие между терминальным и связным оборудованием довольно расплывчато. Произведя незначительные изменения в линиях интерфейса RS-232, можно заставить связное оборудование функционировать как терминальное. DTE – Data Terminal Equipment (СОМ-порт, принтер, плоттер) – разъем “папа” (male). DCE - Data Communication Equipment (модемы) – разъем “мама” (female). Общее правило соединения (бывают исключения): Кабель DTE-DCE: “мама” – “папа”, соединяются одноименные цепи. Переходники 9-25 и 25-9 – аналогично. Кабель DTE_DTE (Zero-Modem Cable) – “нуль-модем”: соединяются земли, RD и TD перекрестно, остальные сигналы соединяются по одной из вышеприведенных схем (рис. 2.5). Наборы передаваемых сигналов могут сокращаться в зависимости от протокола квитирования (Flow Control). Входы портов буферизованы триггерами Шмитта 1489 (2 шт.) с порогами переключения – 3В и +3В, выходы – передатчиками 1488 с выходными уровнями –12...- 5В и +5...+12В, током короткого замыкания до 20 мА. На современных системных платах порт СОМ2 может конфигурироваться на использование IR (Infra Red) – беспроводной инфракрасной связи на скорости 115 Кбит/с в стандарте Hewlett Packard IR или Amplitude Shifted Keyed IR. IR-интерфейс имеют блокнотные 93 ПК, некоторые принтеры. Внешний приемопередатчик – “красный глаз” – устанавливается на лицевой панели компьютера и подключается к разъему IR-Connector системной платы. Программирование последовательного порта компьютера Контроллер последовательного интерфейса обеспечивает асинхронный обмен по стандарту RS-232C. Порты СОМ1 - СОМ4 поддерживаются BIOS INT 14h. Функции прерывания INT 14h: 00h – инициализация (110-9600 бит/с, 5, 7 или 8 бит данных, 1-2 стоп-бита, паритет); 01h – вывод символа (без прерываний); 02h – ввод символа (без прерываний); 03h – опрос состояния модема и линии. Используемые ячейки BIOS DATA AREA: 0:0400, 0402, 0404, 0406 – адреса портовСОМ1-СОМ4; 0:047С, 047D, 047E, 047F – тайм-аут СОМ1-СОМ4. Стандартные базовые адреса и прерывания: СОМ1: 3F8h-IRQ4; СОМ2: 2F8h-IRQ3; COM3: AT-3E8h, 3E0h, 338h-IRQ4; PS/2-3220h-IRQ3; COM4: AT-2E8h, 2E0h, 238h-IRQ3; PS/2-3228h-IRQ3; COM5-COM8: PS/2-4220h, 4228h, 5220h, 5228h -IRQ3; 8250/16450/16550 UART COM-порты ХТ/АТ базируются на микросхеме UART (Universal Asynchronous Receiver- Transmitter – универсальный асинхронный приемопередатчик), совместимой с i8250- 8250А/16450/16550. Основные отличительные особенности членов семейства8250: •8250 имеет ошибки, учтенные в XT BIOS; •8250А – ошибки исправлены, потеряна совместимость с BIOS. Работает в некоторых моделях АТ, но не на скорости 9600 бит/с. •8250В – исправлены ошибки 8250 и 8250А; восстановлена ошибка в прерываниях – совместима с XT BIOS. В АТ работает под DOS, кроме скорости 9600 бит/с. •16450 – высокоскоростная версия 8250 для АТ. Ошибок 8250 и полной совместимости с XT BIOS не имеет. Минимум, требуемый для OS/2. •16550А – имеет работающие 16-байтные FIFO-буферы приема и передачи и возможность использования DMA. Должен применяться в АТ при интенсивных обменах на скоростях 9600 бит/с и выше без потери данных. Назначение регистров 8250: 0R/W - DATA – регистр данных (DLAB=0). 0W – DLL – младший байт делителя (DLAB=0). 1W – DL Н – старший байт делителя (DLAB=1), делитель 115200/V, где V – скорость бит/с. 1W – IER – регистр разрешения прерываний (1 = разрешить прерывание): Биты 7..4 0. Бит 3 – Mod IE – по изменению состояния модема (любой из линий CTS, DSR, RI, DCD). Бит 2 – RxL IE – по обрыву/ошибке линии. Бит 1 – ТxD IE – по завершению передачи. Бит 0 – RxD IE – по приему символа. 2R – IIR – регистр идентификации прерывания: Биты 2..1 – причина прерывания: 11 = ошибка/обрыв линии; сброс – чтением регистра состояния линии. 10 = принят символ; сброс чтением данных. 01 = передан символ; сброс записью данных. 00 = изменение состояния модема; сброс – чтением регистра состояния модема. Бит 0 – Interrupt Pending – 1 = нет запроса прерывания. 94 3 R/W – LCR – регистр управления линией: Бит 7 – DLAB – доступ к делителю (регистрам #0,1). Бит 6: 1= обрыв линии (посылка нулей). Бит 5=0 – отмена постоянной четности. Бит 4: 0 = нечетность, 1 = четность. Бит 3: 1= контроль паритета разрешен. Бит 2: 0=1, 1=2 (1.5 для 5-битного кода) стоп-бит. Биты 1-0: 00=5, 01=6, 10=7, 11=8 бит/симв. 4W – MCR – регистр управления модемом: Биты 7..5 = 8. Бит 4 –Loopback – диагностика. Бит 3 – OUT2 – выходной сигнал (используется для разрешения IRQ). Бит 2 – OUT1 – выходной сигнал (свободен). Бит 1 –RTS: 1=активен (-). Бит 0 –DTR: 1=активен (-). 5R – LSR – регистр состояния линии: Бит 7 = 0. Бит 6 – ТЕМРТ – регистр передатчика пуст, нет передаваемых данных. Бит 5 – THRE – регистр передатчика пуст, готов принять байт для передачи. Бит 4 – В1 – индикатор обрыва линии. Бит 3 – FE – ошибка кадра (стоп-бит). Бит 2 – PE – ошибка четности. Бит 1 – OE – переполнение (потеря символа) Бит 0 – RxRdy – данные приняты; сброс – чтением приемника. 6R – MSR – регистр состояния модема: Бит 7 – состояние линии DCD. Бит6 – состояние линииR1. Бит 5 – состояние линии DSR. Бит 4 – состояние линии CTS. Бит 3 – DDCD – изменение состояния линии DCD. Бит 2 – TER1 – изменение огибающей R1. Бит 1 – DDSR – изменение состояния линии DSR. Бит 0 – DCTS – изменение состояния линии CTS. 7 W – Scratch-Pad Register – в 8250 отсутствует. Для программирования приемопередатчика компьютера необходимо знать его базовый адрес в адресном пространстве портов ввода-вывода компьютера. Для его определения следует обратиться к таблице базовых адресов COM-портов (COM – логическое имя последовательного интерфейса). Эта таблица находится по адресу[$40:0] в памяти компьютера. Таблица состоит из слов – адресов портов ввода-вывода. В компьютере может быть до четырех COM-портов, соответственно таблица состоит из восьми байт. Если порт отсутствует, в таблице стоит вместо адреса нуль. Для адресации регистров управления COM-портов используются три адресные линии, но нужно адресовать десять регистров, поэтому бит D7 порта 3 (3D7) используется для переключения функций портов 0 и 1. В табл. 4 приведен список регистров управления. 95 Для передачи байт-данных записывается в буфер передачи, прием обеспечивается чтением буфера приема. Также возможен вызов прерывания по приему или передаче данных, ошибке при обмене данными или изменению состояния модема (изменению состояния линий DCD,DSR,CTS,RI). Регистр 1 (при 3D7=0) служит для разрешения/запрещения прерываний. Причину прерывания можно узнать, прочитав регистр 2 – идентификатор прерывания. Регистр 3 служит для управления форматом передачи (кроме бита7). Регистры 4 и 6 – регистры линий управления модемом (DCD,DTR,DSR,RTS,CTS). Регистры 0 и 1 (при 3D7=1) управляют скоростью передачи данных. Теперь рассмотрим последовательность этапов инициализации COM-порта на примере программы DEMO68HC.PAS (см. приложение 1): 1. Запись в регистр 3 управляющего байта с единицей в 7 разряде: {p-базовый адрес порта}; Port [P+3]:=$83. 2. Программирование делителя частоты: {BR–Baud Rate – скорость передачи данных в бод, обычное значение – 9600 }; BT:=Round(115200.0/BR); {BT – коэффициент деления}; Port[P+0]:=Lo(BT); Port[P+1]:=Hi(BT). 3. Запись в регистр 3 управляющего байта с нулем в 7 разряде: Port[P+3]:=$03;{$03-8 бит данных ,1 стоповый бит, без бита четности}. 4. Запрещение прерываний: 96 Port[P+1]:=$00. Для того чтобы данные передавались (принимались) правильно, при чтении или записи буфера данных (регистра 0) необходимо ждать приема данных или полной передачи предыдущего байта. Для этого используются биты 5 и 0 регистра 5 – регистра состояния линии: 1. Передача байта. repeat until Port[P+5] and $20=$20; { бит 5 регистра 5 равен 1 – буфер передачи пуст} Port[P+0]:=a; {передача байта данных в a} 2. Прием байта. {Ticks:Longint absolute $40:$6C – системный таймер с приращением на единицу каждую 1/18,9 с. Используется для выхода из цикла ожидания через 5 с (при отсутствии получаемых данных). ST := Ticks; Repeat Until (Port[P+5] a nd 1=1) or (Ticks-ST>94); If Port[P+5] and 1=1 then a:=port[P]; {бит 1 регистра 5 равен 1 – получен байт данных a}. Последовательный интерфейс и его стандарты RS (в сокращениях типа RS-232, RS-485, RS-422) – это всего-навсего Recommended Standard (рекомендованный стандарт). Слово “рекомендованный” означает, что эти стандарты никогда никем не были приняты (в противоположность таким стандартам, как IEEE-1284 или IEEE-1394), они были просто “рекомендованы”. Естественно, это позволяет производителям допускать часто определенные вольности (например, питание по 9-му пину в RS-232 вовсе не оговорено стандартом, однако широко используется). Далее все RS-протоколы можно приблизительно разделить на полудуплексные (half- duplex) и дуплексные (full-duplex). Правда, деление такое не совсем точно, так как тот же RS-485 может быть и полудуплексным (два провода), и дуплексным (четыре провода), они так и называются: 2-wire (2-проводный) RS-485 и 4-wire (4-проводный) RS-485. Есть еще такой вид протоколов, как симплексный (simplex), но ввиду ряда причин в компьютерной технике не применяется. Чем эти виды протоколов различаются? Симплексные протоколы позволяют передавать данные только в одну сторону, т.е. только с передатчика на приемник, но не обратно. Хороший пример симплексного протокола– FM радио или телевидение. Применяется он в тех случаях, когда надо просто передать информацию какому-либо устройству без необходимости подтверждения и обратной связи. Полудуплексные протоколы снимают главное ограничение симплексных протоколов – одностороннюю связь. Они позволяют двум устройствам обмениваться информацией, причем оба устройства могут быть и приемниками, и передатчиками, но не одновременно, т.е. каждое устройство может либо передавать, либо принимать (классический / рекомендованный/ RS-485 именно полудуплексный). Дуплексные протоколы наиболее совершенные. Применение дуплексного протокола позволяет вести и прием, и передачу информации одновременно, т.е. оба устройства могут быть и приемником, и передатчиком одновременно. Вот сравнительная таблица для рекомендованных протоколов (надо сказать, что нынешние интерпретации протоколов, особенно RS-232, весьма далеки от рекомендованных): 97 На рис.16 приведены схемы соединения приемников и передатчиков и показаны их ограничения на длину линии (L) и максимальную скорость передачи данных (V). Наибольшее распространение в PC получил простейший из этих – стандарт RS-232C. В промышленной автоматике широко применяется RS-485, а также RS-422A, встречающийся в некоторых принтерах. Интерфейс RS-232C предназначен для подключения аппаратуры, передающей или принимающей данные (ООД – оконечное оборудование данных, или АПД – аппаратура передачи данных), к оконечной аппаратуре каналов данных (АКД). Интерфейс позволяет исключать канал удаленной связи вместе с парой устройств DCE (модемов), соединив устройства с помощью нуль-модемного кабеля (рис. 17). 98 RS-485/RS-422 используют экранированную витую пару, экран в качестве сигнальной земли. Хотя сигнальная земля обязательна, она не используется для определения логического состояния линии. Устройство, управляющее сбалансированной линией (balanced line driver), может (для RS-485 – обязательно, для RS-422 – нет) также иметь входной сигнал “Enable” (Разрешен), который используется для управления выходными терминалами устройства. Если сигнал “Enable” выключен, то это значит, что устройство отключено от линии, причем отключенное состояние устройства обычно называется “tristate” (т.е. третье состояние, вдобавок к двоичным 1 и 0). Стандарт на RS-485 предусматривает только 32 пары передатчик/приемник, но производители расширили возможности RS-485 протокола, так что теперь он поддерживает от 128 до 255 устройств на одной линии, а используя репитеры, можно продлевать RS-485/RS-422 практически до бесконечности. Также стандарт на RS-485 предусматривает использование двухжильной экранированной витой пары, так называемой 2-wire RS-485, но возможно использование и четырехпроводной витой пары (4-wire RS-485); тогда получается полный дуплекс. Стандарт на RS-422 изначально предусматривает использование четырехжильной экранированной витой пары, но допускает соединения только от одного устройства к другим (до пяти драйверов и до десяти ресиверов на каждый драйвер). RS-422 был придуман для замены RS-232 в тех случаях, когда RS-232 не удовлетворяет по скорости и дальности передачи. RS-422 использует строго разделенные две (или больше) пары проводов: одну пару для приема, одну для передачи (и еще по одной на каждый сигнал контроля/подтверждения (control/handshake)). RS-485, благодаря наличию третьего состояния (“tristate”), позволяет обойтись одной парой проводов, что снижает общую стоимость системы при обеспечении связи на большие расстояния. |