MODBUS протокол через 232 порт
-
CyberMerlin
- Встал на лапы
- Сообщения: 138
- Зарегистрирован: Пн сен 18, 2006 13:39:03
- Откуда: Попуа Новой Гвинеи (Зимбабва)
- Контактная информация:
MODBUS протокол через 232 порт
кто-н поделитесь плз исходником на асме реализации этого протокола.
или ссылку хорошую на хороший док
я читал МОДБАС РТУ рус, но не помогло, надо много каких-то вещей уяснить, не могу связать работу USART и протокол.
может по конфигурированию USART мне кто подскажет?
мой мк ATMega162. (жду с нетерпением)
или ссылку хорошую на хороший док
я читал МОДБАС РТУ рус, но не помогло, надо много каких-то вещей уяснить, не могу связать работу USART и протокол.
может по конфигурированию USART мне кто подскажет?
мой мк ATMega162. (жду с нетерпением)
- xelos
- Потрогал лапой паяльник
- Сообщения: 336
- Зарегистрирован: Пн мар 20, 2006 13:05:08
- Контактная информация:
MODBUS - это самый высокий логический уровень протокола.
USART - реализует низкий логический уровень. Передача 1 байта в MODBUS происходит так же как и в RS232 с логической точки зрения (физика там RS485 или 422, не помню - если по стандарту).
вобщем MODBUS определяет формат пакетов. а чтобы передать байт пакета - используется обычная последовательная передача (USART то бишь).
С физической точки зрения - MODBUS дифференциальная шина. Т.е. на выходе USART (Rx,Tx) надо ставить буфера, конвертирующие однолинейный сигнал в дифференциальный.
USART - реализует низкий логический уровень. Передача 1 байта в MODBUS происходит так же как и в RS232 с логической точки зрения (физика там RS485 или 422, не помню - если по стандарту).
вобщем MODBUS определяет формат пакетов. а чтобы передать байт пакета - используется обычная последовательная передача (USART то бишь).
С физической точки зрения - MODBUS дифференциальная шина. Т.е. на выходе USART (Rx,Tx) надо ставить буфера, конвертирующие однолинейный сигнал в дифференциальный.
Я просто верю в то, что рушить догмы - лучший способ не стареть.
-
CyberMerlin
- Встал на лапы
- Сообщения: 138
- Зарегистрирован: Пн сен 18, 2006 13:39:03
- Откуда: Попуа Новой Гвинеи (Зимбабва)
- Контактная информация:
- xelos
- Потрогал лапой паяльник
- Сообщения: 336
- Зарегистрирован: Пн мар 20, 2006 13:05:08
- Контактная информация:
MODBUS - дифференциальная шина. для каждого типа полезного сигнала нужно 2 провода.
в однолинейной шине - 1 провод.
в однолинейной шине логический 0 и логическая 1 определяются уровнем напряжения относительно земли.
в дифференциальной шине для линии Rx, например, нужно 2 провода R+ и R-. Логическая 1 или логический 0 определяются по потенциалу R+ относительно R-, а не относительно земли. что повышает помехоусточивость шины, т.к. подразумевается, что пришедший на линию паразит будет присутствовать как на R+, так и R- и не влияет на разность потенциалов одного провода относительно другого.
т.е. тебе, с твоим мк - на линию Rx и Tx нужно поставить шинный формирователь, который состоит в параллельно включенных инверторе и инверторе с инверсным входом (
то бишь просто повторителем сигнала) - у которых время распространения сигнала одинаково.
в однолинейной шине - 1 провод.
в однолинейной шине логический 0 и логическая 1 определяются уровнем напряжения относительно земли.
в дифференциальной шине для линии Rx, например, нужно 2 провода R+ и R-. Логическая 1 или логический 0 определяются по потенциалу R+ относительно R-, а не относительно земли. что повышает помехоусточивость шины, т.к. подразумевается, что пришедший на линию паразит будет присутствовать как на R+, так и R- и не влияет на разность потенциалов одного провода относительно другого.
т.е. тебе, с твоим мк - на линию Rx и Tx нужно поставить шинный формирователь, который состоит в параллельно включенных инверторе и инверторе с инверсным входом (
Я просто верю в то, что рушить догмы - лучший способ не стареть.
-
CyberMerlin
- Встал на лапы
- Сообщения: 138
- Зарегистрирован: Пн сен 18, 2006 13:39:03
- Откуда: Попуа Новой Гвинеи (Зимбабва)
- Контактная информация:
- xelos
- Потрогал лапой паяльник
- Сообщения: 336
- Зарегистрирован: Пн мар 20, 2006 13:05:08
- Контактная информация:
шинный формирователь - это просто страшное слово
поскольку физичекий протокол коммуникаций разных шин вглядит по-разному (на примере MODBUS видно, что 0 и 1 определяется по-разному на шине и у контроллера). шинный формирователь - просто адаптер уровней, преобразователь физического протокола, согласователь уровней.
принцип для меги простой. У меги 0 и 1 определяется как 0В и 3,3-5В. на шину же нужно подавать дифференциальный сигнал (например для R+ и R- для "0" нужно выдать 0В на R+ и 3,3-5В на R-, для "1" - сигналы обратных уровней).
Вобщем, получается, что R+ работает как Rx, а на R- сигнал нужно инвертировать.
откуда решение (см. файл). на линию R+ ставим просто повторитель, у которого задержка распространения сигнала как на инверторе (чтобы избежать рассогласования во времени смены сигнала на R+ и R-).
на практике посмотри MAX3471, например.
P.S. рисунок не вложился, говорит квоту исчерпал....
поскольку физичекий протокол коммуникаций разных шин вглядит по-разному (на примере MODBUS видно, что 0 и 1 определяется по-разному на шине и у контроллера). шинный формирователь - просто адаптер уровней, преобразователь физического протокола, согласователь уровней.
принцип для меги простой. У меги 0 и 1 определяется как 0В и 3,3-5В. на шину же нужно подавать дифференциальный сигнал (например для R+ и R- для "0" нужно выдать 0В на R+ и 3,3-5В на R-, для "1" - сигналы обратных уровней).
Вобщем, получается, что R+ работает как Rx, а на R- сигнал нужно инвертировать.
откуда решение (см. файл). на линию R+ ставим просто повторитель, у которого задержка распространения сигнала как на инверторе (чтобы избежать рассогласования во времени смены сигнала на R+ и R-).
на практике посмотри MAX3471, например.
P.S. рисунок не вложился, говорит квоту исчерпал....
Я просто верю в то, что рушить догмы - лучший способ не стареть.
-
CyberMerlin
- Встал на лапы
- Сообщения: 138
- Зарегистрирован: Пн сен 18, 2006 13:39:03
- Откуда: Попуа Новой Гвинеи (Зимбабва)
- Контактная информация:
- xelos
- Потрогал лапой паяльник
- Сообщения: 336
- Зарегистрирован: Пн мар 20, 2006 13:05:08
- Контактная информация:
http://datasheets.maxim-ic.com/en/ds/MAX3471.pdf
почитай - прямо эту микруху можно пользовать с мегой.
почитай - прямо эту микруху можно пользовать с мегой.
Я просто верю в то, что рушить догмы - лучший способ не стареть.
- xelos
- Потрогал лапой паяльник
- Сообщения: 336
- Зарегистрирован: Пн мар 20, 2006 13:05:08
- Контактная информация:
Рисунок:
- Вложения
-
- modbus.GIF
- (2.67 КБ) 960 скачиваний
Я просто верю в то, что рушить догмы - лучший способ не стареть.
- avr123.nm.ru
- Вечно гонимый
- Сообщения: 331
- Зарегистрирован: Пн сен 04, 2006 20:25:28
- Откуда: самоучитель по микроконтроллерам
- Контактная информация:
- avr123.nm.ru
- Вечно гонимый
- Сообщения: 331
- Зарегистрирован: Пн сен 04, 2006 20:25:28
- Откуда: самоучитель по микроконтроллерам
- Контактная информация:
-
CyberMerlin
- Встал на лапы
- Сообщения: 138
- Зарегистрирован: Пн сен 18, 2006 13:39:03
- Откуда: Попуа Новой Гвинеи (Зимбабва)
- Контактная информация:
- xelos
- Потрогал лапой паяльник
- Сообщения: 336
- Зарегистрирован: Пн мар 20, 2006 13:05:08
- Контактная информация:
это шинный формирователь
Re - вход, подключает Ro к шине
Ro - выход, при подключении к шине, если A-B> - 50 mV, то высокий выход, если А-В <- 450mV, то низкий выход.
De - вход, подключает Di к шине.
Di - вход, при подключении к шине на неинверсном выходе сигнал повторяется, на инверсном - инвертируется.
A,B - неинверсный и инверсный выходы на шину.
Re - вход, подключает Ro к шине
Ro - выход, при подключении к шине, если A-B> - 50 mV, то высокий выход, если А-В <- 450mV, то низкий выход.
De - вход, подключает Di к шине.
Di - вход, при подключении к шине на неинверсном выходе сигнал повторяется, на инверсном - инвертируется.
A,B - неинверсный и инверсный выходы на шину.
Я просто верю в то, что рушить догмы - лучший способ не стареть.
-
CyberMerlin
- Встал на лапы
- Сообщения: 138
- Зарегистрирован: Пн сен 18, 2006 13:39:03
- Откуда: Попуа Новой Гвинеи (Зимбабва)
- Контактная информация:
извини, но на этот раз сооовсеем ничего не понял..
скажем
далее
яж эттто схемотехнику незнаю еще пока.
скажем
- выделенное слово - как понимать? как выглядит, где искать должен?Ro - выход, при подключении к шине
далее
- как понимать?высокий выход
- выделенное не понятно.на неинверсном выходе сигнал повторяется, на инверсном - инвертируется
- опять таки, куда, куда?A,B - неинверсный и инверсный выходы на шину
яж эттто схемотехнику незнаю еще пока.
- xelos
- Потрогал лапой паяльник
- Сообщения: 336
- Зарегистрирован: Пн мар 20, 2006 13:05:08
- Контактная информация:
CyberMerlin писал(а):извини, но на этот раз сооовсеем ничего не понял..
скажем- выделенное слово - как понимать? как выглядит, где искать должен?Ro - выход, при подключении к шине
далее- как понимать?высокий выход- выделенное не понятно.на неинверсном выходе сигнал повторяется, на инверсном - инвертируется- опять таки, куда, куда?A,B - неинверсный и инверсный выходы на шину
яж эттто схемотехнику незнаю еще пока.
шина в данном случае - RS485, провода связи, у тебя их всего 4.
Выходы микрухи могут иметь три состояния: логический 0 (низкий уровень эл. сигнала), логический 1 (высокий уровень эл. сигнала), высокий импеданс (отключен).
к шине подключены Ro, Di.
Re, De позволяют перевести входы/выходы в высокий импеданс (отключить от шины Ro,Di), либо подключить у шине (передавать/получать сигналы с шины).
инверсный/неинверсный - сигналы противоположной полярности. на R+ и R- сигналы меняются одновременно и они всегда в противофазе. Если на R+ "0", то на R- обязательно будет "1" и наоборот.
Я просто верю в то, что рушить догмы - лучший способ не стареть.
-
CyberMerlin
- Встал на лапы
- Сообщения: 138
- Зарегистрирован: Пн сен 18, 2006 13:39:03
- Откуда: Попуа Новой Гвинеи (Зимбабва)
- Контактная информация:
- avr123.nm.ru
- Вечно гонимый
- Сообщения: 331
- Зарегистрирован: Пн сен 04, 2006 20:25:28
- Откуда: самоучитель по микроконтроллерам
- Контактная информация:
-
CyberMerlin
- Встал на лапы
- Сообщения: 138
- Зарегистрирован: Пн сен 18, 2006 13:39:03
- Откуда: Попуа Новой Гвинеи (Зимбабва)
- Контактная информация: