ПОДКЛЮЧЕНИЕ
МИКРОКОНТРОЛЛЕРА К УДАЛЁННОМУ КОМПЬЮТЕРУ ЧЕРЕЗ RS485 К
USB ПОРТУ.
Абрамов Сергей
г. Оренбург
Для
удалённого управления объектами или контроля параметров датчиков с диспетчерского
пункта в настоящее время широко используют персональные компьютеры. В
промышленности для этих целей используется интерфейс RS485 позволяющий подсоединять по витой паре до 32 приемопередатчиков на
расстояние до
Автор приводит практическую схему адаптера
виртуального 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мм. Паять
данную микросхему желательно воздушной паяльной станцией.
Табл3
:0600000000F014EF00F017
:10001800D8CF55F0E8CF56F0E0CF57F0C9EF00F051
:1000280000EE5AF0620EF66E000EF76E10EE02F059
:1000380028EC00F000EE02F0500EEE6AE80602E04E
:1000480021EF00F032EF00F00900F5CFEEFFE550A8
:10005800E150FAE1E250F8E11200014F2FD86BD8D5
:10006800F28E010E5A6E0400F29EC280010E6DD807
:100078005B50020FE16EE26A7CD8E76E5B065B6656
:10008800F7D74F0E5B6EF28E5A66EDD7F29E010ED1
:100098005CD89188C80E59D85B50020FE96EEA6A9D
:1000A800EF506ED85B065B66F7D74F0E5B6E919884
:1000B800C80E4BD8010E5A6EF28ED5D7D16AD36AC4
:1000C800D06A400EF26E800EF16EF06A9D6AA06AE8
:1000D800A36AD56ACD6ACA6AB16A766ABD6ABA6A1B
:1000E800B76A736A706AC26A3A0EC16E020EC06E4F
:1000F800070EB46EB56AD26A806A816A826A836AB8
:10010800846A856A866A876A886A896A8A6A8B6A5B
:100118008C6A8D6A8E6A8F6A200E906E916A2F0E95
:10012800926E936AC00E946E956A966A976A986AF8
:10013800996A9A6A12009198AC84400EAF6EAB8EA1
:10014800AB88AC8A9E9A9D8A1200E8CFE9FF04002A
:100158000DD02A0EF36E020EF46EF450F31005E083
:1001680000F0F306D8A0F406F8D7E906E966F1D757
:100178001200C282C2B2FED7C4CFE9FFE950120012
:10018800ACA2FED7E8CFADFF1200E9CF58F0EACF16
:1001980059F09DBA9EAA15D09E9A5B50020FE96E3F
:1001A800EA6AAECFEFFF5B504F0A09E15B50020FDE
:1001B800E96EEA6A0A0EEF6202D05A6A02D0010EAC
:1001C8005A6E59C0EAFF58C0E9FF57C0E0FF56C051
:0801D800E8FF55C0D8FF10003C
:020000040030CA
:0E000000FFFAF6FEFFFFFBFFFFFFFFFFFFFF13
:0200000400F00A
:10000000000102030405060708090A0B0C0D0E0F78
:00000001FF
Рис2.
Литература: