Для удалённого управления объектами или контроля параметров датчиков с диспетчерского пункта в настоящее время широко используют персональные компьютеры. В промышленности для этих целей используется интерфейс RS485 позволяющий подсоединять по витой паре до 32 приемопередатчиков на расстояние до 1200 метров со скоростью до 10 Мбит/с. Подробнее про данный интерфейс можно прочитать в [1.] Всё бы хорошо, но компьютеры не комплектуются подобными интерфейсами. Интерфейс RS232 и тот на современных компьютерах можно встретить достаточно редко. А вот USB порт имеется практически на любом.
Автор приводит практическую схему адаптера виртуального USB порта в RS485. А так же RS485 в последовательный порт USART, который имеется в PIC18F8720 и многих других микроконтроллерах. Рис1. Прелесть виртуального USB порта заключается в том, что программное обеспечение на компьютере можно писать как для порта RS232. А это значит, что управлять портом можно будет при помощи такого элемента управления как MSComm. В данной статье управляющая программа компьютера не рассматривается, поэтому посылать данные с компьютера мы будем при помощи терминалки COMPump. [2] Подробное описание работы с данной терминалкой рассматривалось в статье [3] Виртуальный USB/ RS-232 порт, установка драйверов также рассматривались в статье [4]. С программной точки зрения она ни чем не отличается от USB/RS485, хотя RS232 это полнодуплексный приёмопередатчик, а RS485 полудуплексный.
Итак драйвер USB/RS485 отличается от USB/RS232 заменой микросхемы DD2 рис1 в статье [4] ADM213EARS на микросхему D103 типа SN75176 рис1 данной статьи. Данная микросхема является законченным полудуплексным приёмопередатчиком RS485, выходной драйвер рассчитан на ток +-60ма. Микросхема имеет встроенное устройство защиты от перегрева на уровне 150гр.С. Минимальное входное сопротивление 12ком, чувствительность по входу 200мв. и входной гистерезис 50мв. Алгоритм работы приёмника и передатчика приведены в таблицах 1,2. Микросхема виртуального драйвера D101, (FT232BM) позволяет без переделки программного интерфейса подключить микросхему SN75176 и работать с портом RS485 в полудуплексном режиме. Единственный нюанс который следует учитывать при разработке программы на компьютере, это то что во время передачи байта по интерфейсу вы получите в приёмнике передаваемый байт, так называемое эхо. Интерфейс RS485 рассчитан на соединение приёмопередатчиков при помощи витой пары на расстояние до 1200метров, однако в условиях сильных помех следует провод поместить в экран [1].
Табл1. передатчик
D | DE | A | B |
1 | 1 | 1 | 0 |
0 | 1 | 0 | 1 |
Z | 0 | Z | Z |
Табл2. приёмник
A-B | Инв.RE | R |
Vid>=0,2в | 0 | 1 |
-0,2в<Vid<0,2в | 0 | ? |
Vid<=-0,2в | 0 | 0 |
X | 1 | Z |
Открытый | 0 | ? |
РИС 1
На месте управляющего устройства так же необходимо установить микросхему приёмопередатчика D3(SN75176). Так как для микроконтроллера драйвер мы пишем сами, поэтому переключение с приёма на передачу мы осуществляем по ножке 39 порта PORTJ4. На схеме рис1 микросхема D2 выполняет роль 10 разрядного аналого-цифрового преобразователя. Программа приведенная в HEX формате приведена в табл3.
Алгоритм её работы следующий. Программа каждые 21 мкс. считывает данные со входа АЦП и записывает во внутренний буфер состоящий из 79байт. Примерно через 1,7мс. Буфер заполняется полностью и процесс повторяется. При этом чтобы прочитать данный буфер с компьютера, необходимо послать адрес данного устройства. В нашем случае это 0x0A. После получения адреса микроконтроллер передаст 79 байт на компьютер. Адресация необходима в том случае если к линии RS485 будет подключено более одного объекта управления.
Всё устройство было выполнено на макетной плате, кроме микроконтроллера. Для него необходимо изготовить печатную плату, для того чтобы можно было к нему припаять выводы. Так как данный микроконтроллер имеет корпус TQFP80 размером 12х12мм и имеет 80 выводов. Печатная плата приведена на рис 2 изготовлена из одностороннего стеклотекстолита толщиной 0,5мм и размерами 35х35мм. Паять данную микросхему желательно воздушной паяльной станцией.
Литература: