Пояснительная записка (1230175), страница 6
Текст из файла (страница 6)
Существующий метод проведения технического обслуживания устройств СЦБ носит ремонтно-предупредительный характер, производится в соответствии с графиком технологического процесса и не обеспечивает должный уровень оперативного реагирования при отказах устройств. С 2002 года на сети дорог получил широкое распространение многофункциональный переносной прибор МПИ-СЦБ инженера СЦБ, который предназначен для измерения, отображения и регистрации сигналов напряжения постоянного и переменного токов, рельсовых цепей (РЦ) с непрерывным питанием, кодовых и тональных РЦ, частотного диспетчерского контроля. Сертифицированный комплект поставки прибора состоит модуля преобразования электрических сигналов (МПЭС), ноутбука, соединительных проводов и специализированного программного обеспечения (ПО). Первая версия прибора подключалась к МПЭС через 25-ти контактный МПЭС-разъем и ноутбуку через LPT (25-ти контактный разъем параллельного порта типа Centronics) и COM-порт (9-ти контактный разъем последовательного порта типа RS -232). Ресурс батарей ноутбуков первых и массовых поставок прибора исчерпан, а модель ноутбука и комплектующих к нему сняты с производства. Последняя версия МПИ-СЦБ имеет возможность подключения к компьютеру через интерфейс USB, но имеет большую стоимость – около 418 тыс. рублей. Таким образом, возникает задача разработки устройства для подключения первой версии прибора к ноутбуку через USB интерфейс.
Для решения поставленной задачи необходимо, во-первых, разработать аппаратный контроллер интерфейсов LPT, COM, USB. Во-вторых, реализовать программу подмены адреса портов для ПО прибора на микроконтроллере, либо программными средствами ноутбука. В-третьих, минимизировать устройство до портативных размеров для удобства использования.
Разработка универсального устройства сопряжения интерфейсов позволит сократить затраты на приобретение дорогостоящего оборудования ОАО «РЖД»; позволит увеличивать функциональные возможности прибора.
3 Реализация устройства сопряжения интерфейсов
3.1Схемные решения
В последовательном интерфейсе далеко не всегда используют двуполярные сигналы RS-232C — это неудобно, хотя бы из-за необходимости использования дву-полярного питания приемопередатчиков. Сами микросхемы вышеописанных приемопередатчиков UART работают с сигналами логики ТТЛ или КМОП; такие же сигналы используются, например, и в сервисных портах винчестеров и других устройств. Многие устройства (в том числе карманные ПК и мобильные телефоны) имеют внешний последовательный интерфейс с уровнями низковольтной логики. Конечно, сигналы обычной логики не имеют столь высокой помехоустойчивости, как RS-232C, но не всегда это и требуется. Для взаимного преобразования уровней интерфейса RS-232C и логики специально выпускаются буферные микросхемы приемников (с гистерезисом) и передатчиков двуполярного сигнала. При несоблюдении правил заземления и коммутации они обычно становятся первыми жертвами "пиротехнических" эффектов. Раньше их нередко устанавливали в "кроватки", что облегчало их замену. Цоколевка популярных микросхем формирователей сигналов RS-232C приведена на рисунке 3.1 Часто буферные схемы входят прямо в состав интерфейсных БИС. Это удешевляет изделие, экономит место на плате, но в случае аварии оборачивается крупными финансовыми потерями. Вывести из строя интерфейсные микросхемы замыканием сигнальных цепей маловероятно: ток короткого замыкания передатчиков обычно не превышает 20 мА. В специальных кабелях-адаптерах часто применяют преобразователи уровней фирмы Maxim и Sypex; они удобны тем, что содержат и приемники, и передатчики. Из широкого ассортимента этих преобразователей легко подобрать подходящий по количеству приемников и передатчиков, а также по питанию (однополярному, двуполярному, низковольтному).
Рисунок 3.1 - Формирователи сигналов RS-232C
а - приемник 1489 (А - вход RS-232, С - управление гистерезисом (ТТЛ),Y -выход ТТЛ); б - передатчик 1488(А, В - входы ТТЛ, Y - выход RS-232, VDD = +12 В, VEE = -12 В); в - таблица состояния выходов передатчика (*1 В - логическая единица) [9].
Когда требуется большая помехоустойчивость (дальность и скорость передачи), применяют иные электрические варианты последовательных интерфейсов: RS-422A (V.11, Х.27), RS-423A (V.10, Х.26), RS-485. На рисунке 3.2 приведены схемы соединения приемников и передатчиков, а также показаны ограничения на длину линии (L) и максимальную скорость передачи данных (V). Несимметричные линии интерфейсов RS-232C и RS-423A имеют самую низкую защищенность от синфазной помехи, хотя дифференциальный вход приемника RS-423A позволяет в какой-то мере исправить ситуацию. Лучшие параметры имеют интерфейсы RS-422A и RS-485, работающие на симметричных линиях связи. В них для передачи каждого сигнала используются дифференциальные приемопередатчики с отдельной (витой) парой проводов для каждой сигнальной цепи.
Рисунок 3.2 - Стандарты последовательных интерфейсов
Интерфейсы EIA-RS-422 (ITU-T V.ll, X.27) и EIA-RS-485 (ISO 8482) используют симметричную передачу сигнала и допускают как двухточечную, так и шинную топологию соединений. В них информативной является разность потенциалов между проводниками А и В. Если на входе приемника UA-UB>0,2 В (А положительнее В) — состояние "выключено" (space), UA-UB<-0,2 В (А отрицательнее В) — состояние "включено" (mark). Диапазон |UA-UB|<0,2 В является зоной нечувствительности (гистерезис), защищающей от воздействия помех. На выходах передатчика сигналы UA и UB обычно переключаются между уровнями 0 и +5 В (КМОП) или +1 и +4 В (ТТЛ), дифференциальное выходное напряжение должно лежать в диапазоне 1,5-5 В. Выходное сопротивление передатчиков 100 Ом. Интерфейсы электрически совместимы между собой, хотя и имеют некоторые различия в ограничениях. Принципиальное отличие передатчиков RS-485 — возможность переключения в третье состояние. Передатчики RS-422/485 совместимы с приемниками RS-423. Топологию соединений иллюстрирует рисунок 3.3.
Чтобы увеличить число узлов, можно повысить входное сопротивление приемников, но при этом снижается допустимая скорость или максимально возможная дальность передачи. Максимальная скорость передачи на коротких расстояниях (до 10 м) ограничивается быстродействием передатчиков (достижима частота 25 МГц). На средних расстояниях ограничение определяется емкостью кабеля (1200 бит/с - 25 нФ, 9600 бит/с - 30 нФ, 115 кбит/с -250 пФ). Максимальная дальность (1200 м) ограничена сопротивлением петли постоянному току.
а) б) в)
Рисунок 3.3 - Топология интерфейсов: а — RS-422, б — RS-485 четырёхпроводной, в — RS-485 двухпроводный
Интерфейс RS-485 может быть в двух версиях: двухпроводной и четырехпроводной. Четырехпроводная версия (рисунок 3.3, б) выделяет задающий узел (master), передатчик которого работает на приемники всех остальных. Передатчик задающего узла всегда активен — переход в третье состояние ему не нужен. Передатчики остальных ведомых (slave) узлов должны иметь три стабильных выхода, они объединяются на общей шине с приемником ведущего узла. В двухпроводной версии (рисунок 3.3, в) все узлы равноправны.
В вырожденном случае — при двухточечном соединении — интерфейсы RS-485 и RS-422 эквивалентны, и третье состояние не используется.
Для определенности состояния покоя шины RS-485, когда нет активных передатчиков, на линию устанавливают активные терминаторы, "растягивающие" потенциалы проводов. В покое провод В должен иметь более положительный потенциал, чем А.
При многоточечном соединении необходимо организовать метод доступа к среде передачи. Чаще всего используют полинг (polling) — опрос готовности к передаче, выполняемый ведущим устройством, или передачу права доступа в соответствии с определенным (установленным) регламентом. Иногда используют и методы случайного доступа (аналогично Ethernet).
Дифференциальный вход интерфейсов защищает от действия помех, но при этом должно осуществляться соединение "схемных земель" устройств между собой и с шиной заземления. Для соединения устройств между собой используют третий провод интерфейса (можно и экран). Для того чтобы по третьему проводу не протекал большой ток, выравнивающий "земляные потенциалы", в его цепь включают резисторы (рисунок 3.4).
Интерфейс RS-422 часто используется для подключения периферийных устройств (например, принтеров). Интерфейс RS-485 популярен в качестве шин устройств промышленной автоматики.
Интерфейс "токовая петля" для представления сигнала использует не напряжение, а ток в двухпроводной линии, соединяющей приемник и передатчик.
Логической единице (состоянию "включено") соответствует протекание тока 20 мА, а логическому нулю — отсутствие тока. Такое представление сигналов для вышеописанного формата асинхронной посылки позволяет обнаружить обрыв линии — приемник заметит отсутствие стоп-бита (обрыв линии действует как постоянный логический нуль).
Рисунок 3.4 - Соединение "схемных земель" для интерфейсов RS-422 и RS-485
3.2 Программное обеспечение и прошивка МК
| Специфика программирования аппаратуры и, в частности, устройств сопряжения для компьютера, заключается в повышенных требованиях к быстродействию программного обеспечения и, в ряде случаев, в необходимости получения программы минимального размера. Для этого приходится выбирать подходящие языки программирования, а также использовать специальные методы и алгоритмы. Наиболее очевидный выбор языка программирования - ассемблер. Действительно, на ассемблере можно написать любую программу, и, при условии минимальной грамотности программиста, она получится самой быстрой, а код - самым коротким (причем это относится ко всем областям программирования). Однако трудоемкость программирования на ассемблере и требования к квалификации программиста несравненно выше, чем для языков высокого уровня. Кроме того, редко программа управления устройством нужна сама по себе: как правило, она является частью системы (с интерфейсом пользователя, математикой и другими блоками, писать которые на ассемблере, мягко говоря, нецелесообразно). И хотя вопросы сопряжения написанных на разных языках программ во многих случаях решены, это еще одна возможность потратить массу усилий. В то же время большинство современных реализации языков программирования высокого уровня (Бейсик, Си, Паскаль и другие) имеют более или менее эффективные средства программирования устройств сопряжения. Рассматривая пригодность того или иного языка, следует проанализировать с точки зрения полноты, оптимальности и удобства программирования такие его возможности, как:
Написанные на языках высокого уровня программы, как правило, оказываются ненамного медленнее и длиннее аналогичных программ, написанных на ассемблере. Многие эксперты считают, что наиболее удобен для программирования аппаратуры язык Си. Многие с ними не согласны. Во многом это дело вкуса и привычки программиста. Именно этим, по-видимому, и определен выбор авторами книги языка Си для реализации примеров программ. Есть, тем не менее, достаточно узкие области, в которых ассемблер оказывается действительно самым эффективным, а иногда и единственным средством программирования. Эти области лежат на самых крайних пределах требований к размерам и быстродействию - там, где важен каждый байт (резидентные программы; программы, записываемые в ПЗУ) и каждая микросекунда (драйверы некоторых быстрых устройств реального времени). Наряду с использованием стандартных методов и правил программирования, при программировании аппаратуры приходится учитывать особенности конкретной задачи и применять специфические приемы, часто идущие вразрез с принципами "хорошего стиля". Например, часто неэффективным оказывается принцип модульного программирования, так как сами процедуры могут быть очень короткими и быстрыми, а на вызов функций и передачу параметров может тратиться половина времени. Как правило, собственно взаимодействие с устройством связано с подачей на него и приемом от него определенных сигналов в определенном порядке и представляет собой последовательность операций ввода/вывода, обильно усыпанную битовыми логическими операциями над принимаемыми и передаваемыми данными. Большинство предлагаемых в данной книге примеров программирования устройств сопряжения написано в едином стиле, опирающемся на такие правила, как:
Следует помнить, что приведенные здесь программы служат только для иллюстрации особенностей программирования устройств, поэтому не следует механически переносить куски этих программ в свои системы - работоспособность таких систем авторами не гарантируется. |















