реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> RS-485 в USB с помощью UCON-485
Oleg_IT
сообщение May 21 2008, 17:09
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Нужно датчик с RS-485 интерфейсом подключить к компьютеру. Выбрали UCON-485 (http://www.terraelectronica.ru/catalog.php?ID=817&Search=1&Text=ucon%20485&Gde=2&PageS=1), преобразователь RS-485 в USB. Но это устройство Windows «видит» как COM порт с 8-ми битным протоколом (можно ещё 7 бит установить). А как в таком случае передать адрес? И вообще как работать с 9-и битном протоколом?
Не могу найти даташит на эту штуковину. Помогите разобраться.
Go to the top of the page
 
+Quote Post
rezident
сообщение May 21 2008, 18:13
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Oleg_IT @ May 21 2008, 23:09) *
А как в таком случае передать адрес? И вообще как работать с 9-и битном протоколом?
А никак. Нужно использовать другие протоколы с адресацией, которые не привязаны жестко к формату символа. Вон большинство современных модемов тоже имеют всего 10-битный регистр и не позволяют работать в "прозрачном" режиме ни с четностью, ни с 9-и битной посылкой. Так что используйте Wake, SLIP, Modbus и пр. подобные протоколы связи.
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение May 21 2008, 18:22
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Ни какой другой интерфейс использовать не могу, он определяется датчиком, а другого датчика нет. Может все-таки есть возможность работать по USB с этим датчиком?
Go to the top of the page
 
+Quote Post
rezident
сообщение May 21 2008, 18:37
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



"с этим датчиком" - с каким "этим"?
Go to the top of the page
 
+Quote Post
VDG
сообщение May 21 2008, 20:46
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 845
Регистрация: 10-02-06
Пользователь №: 14 193



Цитата(Oleg_IT @ May 21 2008, 22:22) *
Ни какой другой интерфейс использовать не могу, он определяется датчиком, а другого датчика нет.

Значит просто делаете преобразователь 9-ти битного формата датчика в 8-ми битный пакетный и заводите в комп. Ничего сложного нет.


--------------------
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение May 22 2008, 03:14
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Цитата(rezident @ May 21 2008, 22:37) *
"с этим датчиком" - с каким "этим"?

«Этот датчик» это тензо датчик. Вопрос собственно не по датчику, а по 485-му интерфейсу. К компьютеру можно подойти только из вне, ни какие платы во внутрь поставить не получится, гарантия, «политика»…

Цитата(VDG @ May 22 2008, 00:46) *
Значит просто делаете преобразователь 9-ти битного формата датчика в 8-ми битный пакетный и заводите в комп. Ничего сложного нет.

А можно и как это сделать на уже имеющимся оборудовании. К сожалению, на разработку, пайку и отладку чего-то своего времени нет. Так вот живём… Увы.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 22 2008, 04:44
Сообщение #7


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Oleg_IT @ May 22 2008, 06:14) *
К сожалению, на разработку, пайку и отладку чего-то своего времени нет. Так вот живём… Увы.

Время = Деньги
Покупаете чужое время за деньги либо экономите деньги (? не всегда) и тратите своё время.
Смотря что для вас важнее.

В вашем случае можно поставить простейший контроллер, который будет преобразовывать формат сообщений. Знающему человеку работы на полдня (вместе с пайкой и отладкой).

Кстати о птичках: а вы, когда выбирали этот модуль, не видели чтоли, что он нестандартной ориентации? (в смысле протокола)


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение May 22 2008, 05:17
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Цитата(MrYuran @ May 22 2008, 08:44) *
Кстати о птичках: а вы, когда выбирали этот модуль, не видели чтоли, что он нестандартной ориентации? (в смысле протокола)

Честно говоря был уверен, что если он, преобразователь из 485, то обязан полностью поддерживать этот протокол. Может он и умеет это делать, только документации для него нет, и у меня и у продавца.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 22 2008, 05:45
Сообщение #9


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Oleg_IT @ May 22 2008, 08:17) *
Честно говоря был уверен, что если он, преобразователь из 485, то обязан полностью поддерживать этот протокол. Может он и умеет это делать, только документации для него нет, и у меня и у продавца.

С преобразователем как раз всё в порядке, я имел в виду датчик.
9 бит - это совершенно нестандартный режим как для 232, так и для 485.
Ну чё ещё можно сделать...
Может, бит чётности использовать как 9-й?
Может, выложите протокол обмена с вашим датчиком, глядишь чё и накумекаем...


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение May 22 2008, 06:50
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Цитата(MrYuran @ May 22 2008, 09:45) *
9 бит - это совершенно нестандартный режим как для 232, так и для 485.


Я всегда считал, что если в 485-ом есть адресация, то это по умолчанию 9 бит.
А с протоколом всё просто, в датчик посылаем три байта, адрес, команда 1, конец посылки. Из датчика получаем пять байт, тот же адрес, команда 2, младшая часть данных, старшая часть данных, конец посылки.
Кстати по поводу 9 бит я уже не уверенsmile.gif Сейчас свяжусь с разработчиком датчика, уточню.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 22 2008, 07:29
Сообщение #11


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



RS-485 не подразумевает вообще никакой адресации.
Это протокол физического уровня
Адрес - это уже канальный уровень(если склероз не подводит)
логическая организация кадра - один-в-один как в 232.
То есть старт(1), инф.байт(5-7-8), чётность(1), стоп(1-1,5-2).
Несколько кадров (байт) образуют пакет, и вот уже в пакете вы определяете, где адрес, где данные, КС и т.д.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение May 22 2008, 07:42
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Правильно. А адрес от данных отличается именно этим девятым битом, если он установлен в 1, то это адрес, если 0, то данные.
Go to the top of the page
 
+Quote Post
rezident
сообщение May 22 2008, 08:00
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(MrYuran @ May 22 2008, 13:29) *
RS-485 не подразумевает вообще никакой адресации.
Это протокол физического уровня
Не нужно вносить еще большей путаницы. RS485 это никакой не протокол, а стандартный интерфейс. В стандарте TIA/EIA-485-A описаны только физические и электрические параметры интерфейса, но никаких упоминаний о протоколе нету.
Цитата(Oleg_IT @ May 22 2008, 13:42) *
Правильно. А адрес от данных отличается именно этим девятым битом, если он установлен в 1, то это адрес, если 0, то данные.
Это так называемый Address-Bit Format в отличие от Idle-Line Format. Такой формат использовался, например, в протоколе PiNET. Реализация адрес-битного формата передачи в Windows "слегка" затруднена. Т.к. во-первых, "мешается" FIFO UARTа, а во-вторых, нужно обрабатывать ошибки приема на уровне регистров UART, а не функций Windows работы с COM-портом. Потому что в Windows поток из COM-порта принимается, несмотря на ошибки паритета, которые нужно отслеживать и обрабатывать при адрес-битном протоколе. Могу при случае уточнить у коллеги, как это лучше делать. Он когда-то занимался реализацией протокола PiNET на PC.
И я согласен с MrYuran, что для вашего случая проще всего сделать конвертор протоколов на любом подходящем микроконтроллере. Причем, если вы совместите его с мостом USB-UART и драйвером RS485, то заодно замените этот дурацкий конвертор UCON-485.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 22 2008, 08:04
Сообщение #14


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(rezident @ May 22 2008, 10:54) *
В cтандарт TIA/EIA-485-A описаны только физические и электрические параметры интерфейса, но никаких упоминаний о протоколе нету.

Ну да, а стандарт де факто 485 = 232+преобразователь уровней
(мы говорим Партия, подразумеваем - Ленин...)
Цитата
Правильно. А адрес от данных отличается именно этим девятым битом, если он установлен в 1, то это адрес, если 0, то данные.

Правильно будет всё-таки уточнить протокол обмена с датчиком (с точностью до бита), поддерживает ли он вообще адресацию, каким образом и т.д.
А потом решать проблему (если она есть)


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение May 22 2008, 09:17
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Цитата(rezident @ May 22 2008, 12:00) *
Причем, если вы совместите его с мостом USB-UART и драйвером RS485, то заодно замените этот дурацкий конвертор UCON-485.

А почему он дурацкий?smile.gif

А протокол, конечно уточню.
Go to the top of the page
 
+Quote Post
rezident
сообщение May 22 2008, 10:24
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(MrYuran @ May 22 2008, 14:04) *
Ну да, а стандарт де факто 485 = 232+преобразователь уровней
(мы говорим Партия, подразумеваем - Ленин...)
Это ваще бред какой-то cranky.gif Вот ознакомьтесь с общим обзором стандартов. http://www.national.com/an/AN/AN-216.pdf
Цитата(Oleg_IT @ May 22 2008, 15:17) *
А почему он дурацкий?smile.gif
Потому что все широкораспространенные м/с мостов USB-COM поддерживают адрес-битные форматы и у них реализованы режимы odd, even, mark, space, no parity для 9 бита. Под широкораспространенными я имею в виду мосты типа FT232/FT232R от FTDIChips и CP2102/CP2103 от Silicon Lab.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 22 2008, 11:09
Сообщение #17


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(rezident @ May 22 2008, 13:24) *

спасибо, узнал кое-что интересное. Например, что 422 можно шиной включать. Я почему-то думал, что только точка-точка...
А ещё по-моему есть советские ГОСТы на интерфейсы. Вот бы их глянуть... RS-232 по-моему назывался "стык С2"


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
galjoen
сообщение May 22 2008, 11:35
Сообщение #18


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(rezident @ May 22 2008, 14:24) *
Потому что все широкораспространенные м/с мостов USB-COM поддерживают адрес-битные форматы и у них реализованы режимы odd, even, mark, space, no parity для 9 бита. Под широкораспространенными я имею в виду мосты типа FT232/FT232R от FTDIChips и CP2102/CP2103 от Silicon Lab.

Да реализованы. Но КАК реализованы. Если менять 9й бит в процессе передачи, то будет БОЛЬШАЯ задержка между передачей байтов с разными 9ми битами. Не все протоколы такое вытерпят.
Поэтому вариант с контроллером за $1 лично мне гораздо больше нравится. Хотя там на мой взгляд не полдня, а целый день работы.
Go to the top of the page
 
+Quote Post
rezident
сообщение May 22 2008, 12:03
Сообщение #19


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(galjoen @ May 22 2008, 17:35) *
Да реализованы. Но КАК реализованы. Если менять 9й бит в процессе передачи, то будет БОЛЬШАЯ задержка между передачей байтов с разными 9ми битами. Не все протоколы такое вытерпят.

А в случае FIFO-ного UARTа на материнке задержка меньшая будет что ли? И вообще я не понял к чему это замечание? Корневое сообщение топка прочитайте. Конвертор автора топика вообще не поддерживает 9-й бит.
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение May 22 2008, 12:16
Сообщение #20


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Цитата(rezident @ May 22 2008, 14:24) *
Потому что все широкораспространенные м/с мостов USB-COM поддерживают адрес-битные форматы и у них реализованы режимы odd, even, mark, space, no parity для 9 бита. Под широкораспространенными я имею в виду мосты типа FT232/FT232R от FTDIChips и CP2102/CP2103 от Silicon Lab.

Так этот конвертер именно на FTDI и построен. Мне кажется, что я не всё по нему знаю, документации нет.
Цитата(rezident @ May 22 2008, 16:03) *
Конвертор автора топика вообще не поддерживает 9-й бит.

Вы в этом уверены??? У Вас есть документация на этот конвертер?
Go to the top of the page
 
+Quote Post
rezident
сообщение May 22 2008, 12:54
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Oleg_IT @ May 22 2008, 18:16) *
Так этот конвертер именно на FTDI и построен. Мне кажется, что я не всё по нему знаю, документации нет.
Точно? А чего же мы тут тогда копья ломаем? twak.gif Вам на сайт производителя моста USB-COM за документацией и описанием API функций нужно.
http://www.ftdichip.com/Documents/ProgramGuides.htm
Go to the top of the page
 
+Quote Post
VDG
сообщение May 22 2008, 13:00
Сообщение #22


Знающий
****

Группа: Участник
Сообщений: 845
Регистрация: 10-02-06
Пользователь №: 14 193



Цитата(Oleg_IT @ May 22 2008, 07:14) *
А можно и как это сделать на уже имеющимся оборудовании.

Вряд ли..
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение May 22 2008, 13:13
Сообщение #23


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Цитата(rezident @ May 22 2008, 16:54) *
Точно? А чего же мы тут тогда копья ломаем? twak.gif Вам на сайт производителя моста USB-COM за документацией и описанием API функций нужно.
http://www.ftdichip.com/Documents/ProgramGuides.htm

Сайт производителя конвертера http://www.inexglobal.com/. Но там даташина на этот конвертер не нашёл. А микруха USB там именно FTDI. Программа тестирования от них на диске есть с их логотипом.
Go to the top of the page
 
+Quote Post
rezident
сообщение May 22 2008, 13:37
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Oleg_IT @ May 22 2008, 19:13) *
А микруха USB там именно FTDI. Программа тестирования от них на диске есть с их логотипом.
Я не понял, вам шашечки или ехать? smile.gif Чего вы к логотипу-то привязались? Вам описание API функций для работы с DLL-кой нужно. Вот и читайте его на сайте производителя м/с - FTDI. Потому, что я очень сильно и не без основания сомневаюсь, что какой-то малоизвестный продавец комплектует конвертор своими собственными драйверами.
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение May 22 2008, 18:27
Сообщение #25


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Цитата(rezident @ May 22 2008, 17:37) *
Я не понял, вам шашечки или ехать? smile.gif Чего вы к логотипу-то привязались? Вам описание API функций для работы с DLL-кой нужно. Вот и читайте его на сайте производителя м/с - FTDI. Потому, что я очень сильно и не без основания сомневаюсь, что какой-то малоизвестный продавец комплектует конвертор своими собственными драйверами.

Этот конвертер Windows «видит» как СОМ порт, и работать с ним можно только как со стандартным устройством ввода/вывода, т.е. как с файлом. Может еще есть способ с таким портом работать, но я его не знаю.
Go to the top of the page
 
+Quote Post
rezident
сообщение May 22 2008, 20:14
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Oleg_IT @ May 23 2008, 00:27) *
Может еще есть способ с таким портом работать, но я его не знаю.
Не боясь прослыть занудой, я вам в третий раз даю ссылку на сайт производителя, где лежит документация для работы с этой м/с.
http://www.ftdichip.com/Documents/ProgramGuides.htm
Но раз вы сами не в состоянии найти необходимый документ laughing.gif , даю на всякий случай прямую ссылку на руководство по использованию библиотечных API-функций драйвера.
http://www.ftdichip.com/Documents/ProgramGuides/D2XXPG34.pdf
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение May 23 2008, 03:01
Сообщение #27


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Спасибоsmile.gif
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение May 23 2008, 09:47
Сообщение #28


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Взял файлы ftd2xx.dll, ftd2xx.lib, ftd2xx.h из архива <CDM 2.04.06 WHQL Certified> с сайта http://www.ftdichip.com/Documents/ProgramGuides.htm.
Вставил в проект Visual Studio. Всё собралось.
Но ftStatus = FT_ListDevices(&numDevs,NULL,FT_LIST_NUMBER_ONLY); говорит, что количество подключённых устройств 0 (ftStatus = 0, numDevs = 0). Но конвертер подключён и работает, по осциллографу вижу правильный выходной сигнал, когда работаю с ним как с файлом через СОМ порт. Может не то взял, подключил?

Уточнил протокол, всё проще и сложнее чем я думал. Битов там 8, а скорость 345 600 бит/сек. Если я работаю через СОМ порт то такую скорость поставить не удаётся, максимум 256 000. Получается, что только через API работать можно.
Go to the top of the page
 
+Quote Post
rezident
сообщение May 23 2008, 12:13
Сообщение #29


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Ну тут уже не интерфейсные, а программные заморочки начались. А с программированием в Windows у меня тяжело. laughing.gif Сорри.
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение May 23 2008, 12:24
Сообщение #30


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Понимаюsmile.gif И за то что рассказали большое спасибо.
Ну, хотя бы я в правильном направлении двигаюсь? Ту библиотеку взял?
Go to the top of the page
 
+Quote Post
rezident
сообщение May 23 2008, 13:12
Сообщение #31


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Oleg_IT @ May 23 2008, 18:24) *
Ту библиотеку взял?
Ну насколько я понимаю, там драйвера VCP (виртуального COM-порта) и D2xx (прямого доступа к FT2xx) все в одном архиве.
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 06:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01661 секунд с 7
ELECTRONIX ©2004-2016