Авторизация


...

Кто на сайте?

Сейчас 128 гостей и 2 зарегистрированных пользователей на сайте

  • inmiernikwesto

Статистика

-Посетители : 23739
-Материалы : 209

Пользователь сайта продает...

   AV-S2G4B

Пользователь сайта покупает...

Об особенностях работы по интерфейсу RS485

Автор: Бутывский Игорь Просмотров: 7150

 

 

 

Я зашёл в «ЧИП и ДИП», там сказали, что одна оптопара была в наличии 3 года назад, а другой, вообще никогда не было.

Поэтому пришёл к выводу, что надо придумать, что-то своё.

Немного теории, и информации о применяемых микросхемах.

рисунок MAX232 взят с сайта prog-leon.narod.ru,

описание интерфейса RS485 взято с сайта mayak-bit.narod.ru

 

Микросхема MAX232, представляет собой четырёх канальный преобразователь уровня RS232 TTЛ.

Два канала, преобразуют ТТЛ-уровни в RS232-уровни, и два канала, преобразуют RS232 в ТТЛ.  

 

alt

 

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

В основе интерфейса RS-485 лежит принцип дифференциальной (балансной) передачи данных.

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

Причем по одному проводу (условно A) идет оригинальный сигнал, а по другому (условно B) - его инверсная копия.

Другими словами, если на одном проводе "1", то на другом "0" и наоборот.

Таким образом, между двумя проводами витой пары всегда есть разность потенциалов: при "1" она положительна, при "0" - отрицательна.

alt

 

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

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

Если сигнал передается потенциалом в одном проводе относительно общего, как в RS-232, то наводка на этот провод может исказить сигнал относительно хорошо поглощающего наводки общего ("земли").

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

А при дифференциальной передаче искажения не происходит.

В самом деле, если два провода пролегают близко друг к другу, да еще перевиты, то наводка на оба провода одинакова.

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

RS-485 - полудуплексный интерфейс.

Прием и передача идут по одной паре проводов с разделением по времени.

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

 

Микросхема MAX485

 

Номера и обозначения выводов

alt

(1) - RO (receiver output) - цифровой выход приемника;

(2) - RE (receiver enable) - разрешение работы приемника;

(3) - DE (driver enable) - разрешение работы передатчика;

(4) - DI (driver input) - цифровой вход передатчика;

(5) – GND

(6) - A - прямой дифференциальный вход/выход;

(7) - B - инверсный дифференциальный вход/выход;

(8) - + питания

D (driver) – передатчик,  R (receiver) – приемник.

 

Переключение микросхемы на приём и передачу, осуществляется подачей на выводы

RE и DE уровней 0 и 1, следующим образом:

RE = 1 – приём запрещён

RE = 0 – приём разрешён

 

DE = 1 – передача разрешена

DE = 0 – передача запрещена.

 

Если соединить выводы RE и DE между собой, то управление состоянием "приём/передача”, осуществляется следующим образом:

 

alt

               

Компьютер передаёт данные микроконтроллёру во много раз медленнее чем, микроконтроллёр компьютеру.

В моём случае, длительность передаваемых байтов данных и пауз между ними, при передаче КОМП -- > PIC ,была в четыре раза больше, чем при передаче PIC -- > КОМП.

 

Суть в следующем.

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

В ответ, PIC должен выдать программе пять байт информации.

Смотрю осциллографом – PIC данные принимает и передаёт.

А программа на компьютере пишет – НЕТ СВЯЗИ.

Для отлаживания процедуры  приёма-передачи установил на компьютер  программу COM Port Toolkit.

С её помощью я передавал с компьютера PIC–у те же самые пять байт запроса. Но в ответ от PIC-a компьютеру приходило только три байта.

Два байта, где-то терялись.

Поэтому и НЕТ СВЯЗИ.

Переключение с приёма на передачу и обратно, со стороны PIC-a, производится отдельно выделенным для этого портом  RC4.

После передачи всех байтов информации PIC, на своей стороне меняет уровень на RC4, тем самым, переводя микросхему МАX485 на приём.

Оказалось, что два байта терялись из-за преждевременного переключения МАX485 на приём.

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

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

Если, сразу  после записи очередного байта в регистр TXREG, перевести MAX485 на приём то ни этот байт, ни предшествующий ему (находящийся в это время в сдвиговом регистре TSR  не будут переданы.  Модулем USART они естественно выпихнутся  на передачу, но приёмо-передатчик то ведь уже переключен на приём.

 

После ввода программной задержки, между записью  последнего байта в TXREG , и  сменой уровня на RC4, всё пришло в норму.

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

Данные есть – сигнал на передачу. Данных нет – сигнал на приём.

Так как компьютер затягивает длительность посылок и пауз, то МАХ485 успевает, во время переключится.

Конденсатор С1, сглаживает импульсы на базе транзистора, тем  самым надёжно открывая его. Без него, связь неустойчивая.

Схема, работает и без рекомендуемого, третьего общего провода.

Но на большие расстояния, всё же нужно его использовать, и установить на концах витой пары защитные стабилитроны.

В случае, необходимости согласования сопротивления витой пары с входом/выходом МАХ485, предусмотрены перемычки.

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

Ссылка для скачивания доступна только авторизованным пользователям сайта !

Случайные статьи....

Prev Next

Интерфейсная плата для станка ЧПУ

01-05-2011 Sergey Roslik

Интерфейсная плата для станка ЧПУ

За основу интерфейсной платы (ИП) была взята информация с сайта robozone. Как и оригинальная версия интерфейсная плата имеет опторазвязку порта LPT, имеет установленные реле для управления различными силовыми нагрузками.ИП позволяет управлять тремя любыми контроллерами двигателей для станков ЧПУ с поддержкой...

Программирование c нуля в AVRStudio 5 (ч.7)

07-04-2012 Радик

Программирование c нуля в AVRStudio 5 (ч.7)

Продолжим разбор теоретических основ, без которых невозможно полноценное создание программ.Основной синтаксис AVRASM совместим с AVRASM2 с исключениями, отмеченными ниже:- Ключевые слова.- Директивы препроцессора.- Комментарии.- Продолжения строк.- Строки и символьные константы.

ПП обработки символьной информации.

25-06-2011 Николай Викторов

ПП обработки символьной информации.

  Данная подпрограмма была применена в видеоадаптере (http://www.chipmk.ru/index.php/features/44-2011-02-17-08-07-05/125--pic18f46k20) на основе этой программы и рассмотрим пример вывода символа. В этой конструкции применен шрифт 8х8 , значит, для вывода одного символа необходимо задействовать восемь байт. К примеру ,  необходимо вывести символ «Я» .      

Детектор напряжения в МК 18 серии.

09-08-2012 Super User

В микроконтроллерах 18 серии есть встроенные модули детектора напряжений.  У  одних , (к примеру тот же PIC18FXX2) встроенный модуль детектора ПОНИЖЕННОГО напряжения, у других (PIC18F25K20) модуль LVD улучшен и представлен как модуль  HLVD, позволяющий  обнаруживать еще и отклонения в сторону...


Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2017 © ChipMK.ru

ChipMk.ru Яндекс.Метрика
PRCY.ru