|
RS-485 в USB с помощью UCON-485 |
|
|
|
May 22 2008, 03:14
|
Знающий
   
Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709

|
Цитата(rezident @ May 21 2008, 22:37)  "с этим датчиком" - с каким "этим"? «Этот датчик» это тензо датчик. Вопрос собственно не по датчику, а по 485-му интерфейсу. К компьютеру можно подойти только из вне, ни какие платы во внутрь поставить не получится, гарантия, «политика»… Цитата(VDG @ May 22 2008, 00:46)  Значит просто делаете преобразователь 9-ти битного формата датчика в 8-ми битный пакетный и заводите в комп. Ничего сложного нет. А можно и как это сделать на уже имеющимся оборудовании. К сожалению, на разработку, пайку и отладку чего-то своего времени нет. Так вот живём… Увы.
|
|
|
|
|
May 22 2008, 04:44
|

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

|
Цитата(Oleg_IT @ May 22 2008, 06:14)  К сожалению, на разработку, пайку и отладку чего-то своего времени нет. Так вот живём… Увы. Время = Деньги Покупаете чужое время за деньги либо экономите деньги (? не всегда) и тратите своё время. Смотря что для вас важнее. В вашем случае можно поставить простейший контроллер, который будет преобразовывать формат сообщений. Знающему человеку работы на полдня (вместе с пайкой и отладкой). Кстати о птичках: а вы, когда выбирали этот модуль, не видели чтоли, что он нестандартной ориентации? (в смысле протокола)
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 22 2008, 05:17
|
Знающий
   
Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709

|
Цитата(MrYuran @ May 22 2008, 08:44)  Кстати о птичках: а вы, когда выбирали этот модуль, не видели чтоли, что он нестандартной ориентации? (в смысле протокола) Честно говоря был уверен, что если он, преобразователь из 485, то обязан полностью поддерживать этот протокол. Может он и умеет это делать, только документации для него нет, и у меня и у продавца.
|
|
|
|
|
May 22 2008, 05:45
|

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

|
Цитата(Oleg_IT @ May 22 2008, 08:17)  Честно говоря был уверен, что если он, преобразователь из 485, то обязан полностью поддерживать этот протокол. Может он и умеет это делать, только документации для него нет, и у меня и у продавца. С преобразователем как раз всё в порядке, я имел в виду датчик. 9 бит - это совершенно нестандартный режим как для 232, так и для 485. Ну чё ещё можно сделать... Может, бит чётности использовать как 9-й? Может, выложите протокол обмена с вашим датчиком, глядишь чё и накумекаем...
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 22 2008, 06:50
|
Знающий
   
Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709

|
Цитата(MrYuran @ May 22 2008, 09:45)  9 бит - это совершенно нестандартный режим как для 232, так и для 485. Я всегда считал, что если в 485-ом есть адресация, то это по умолчанию 9 бит. А с протоколом всё просто, в датчик посылаем три байта, адрес, команда 1, конец посылки. Из датчика получаем пять байт, тот же адрес, команда 2, младшая часть данных, старшая часть данных, конец посылки. Кстати по поводу 9 бит я уже не уверен  Сейчас свяжусь с разработчиком датчика, уточню.
|
|
|
|
|
May 22 2008, 08:00
|
Гуру
     
Группа: Свой
Сообщений: 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.
|
|
|
|
|
May 22 2008, 08:04
|

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

|
Цитата(rezident @ May 22 2008, 10:54)  В cтандарт TIA/EIA-485-A описаны только физические и электрические параметры интерфейса, но никаких упоминаний о протоколе нету. Ну да, а стандарт де факто 485 = 232+преобразователь уровней (мы говорим Партия, подразумеваем - Ленин...) Цитата Правильно. А адрес от данных отличается именно этим девятым битом, если он установлен в 1, то это адрес, если 0, то данные. Правильно будет всё-таки уточнить протокол обмена с датчиком (с точностью до бита), поддерживает ли он вообще адресацию, каким образом и т.д. А потом решать проблему (если она есть)
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 22 2008, 11:35
|
Знающий
   
Группа: Свой
Сообщений: 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 лично мне гораздо больше нравится. Хотя там на мой взгляд не полдня, а целый день работы.
|
|
|
|
|
May 22 2008, 12:16
|
Знающий
   
Группа: Свой
Сообщений: 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-й бит. Вы в этом уверены??? У Вас есть документация на этот конвертер?
|
|
|
|
|
May 22 2008, 13:13
|
Знающий
   
Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709

|
Цитата(rezident @ May 22 2008, 16:54)  Точно? А чего же мы тут тогда копья ломаем?  Вам на сайт производителя моста USB-COM за документацией и описанием API функций нужно. http://www.ftdichip.com/Documents/ProgramGuides.htmСайт производителя конвертера http://www.inexglobal.com/. Но там даташина на этот конвертер не нашёл. А микруха USB там именно FTDI. Программа тестирования от них на диске есть с их логотипом.
|
|
|
|
|
May 22 2008, 13:37
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Oleg_IT @ May 22 2008, 19:13)  А микруха USB там именно FTDI. Программа тестирования от них на диске есть с их логотипом. Я не понял, вам шашечки или ехать?  Чего вы к логотипу-то привязались? Вам описание API функций для работы с DLL-кой нужно. Вот и читайте его на сайте производителя м/с - FTDI. Потому, что я очень сильно и не без основания сомневаюсь, что какой-то малоизвестный продавец комплектует конвертор своими собственными драйверами.
|
|
|
|
|
May 22 2008, 18:27
|
Знающий
   
Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709

|
Цитата(rezident @ May 22 2008, 17:37)  Я не понял, вам шашечки или ехать?  Чего вы к логотипу-то привязались? Вам описание API функций для работы с DLL-кой нужно. Вот и читайте его на сайте производителя м/с - FTDI. Потому, что я очень сильно и не без основания сомневаюсь, что какой-то малоизвестный продавец комплектует конвертор своими собственными драйверами. Этот конвертер Windows «видит» как СОМ порт, и работать с ним можно только как со стандартным устройством ввода/вывода, т.е. как с файлом. Может еще есть способ с таким портом работать, но я его не знаю.
|
|
|
|
|
May 23 2008, 09:47
|
Знающий
   
Группа: Свой
Сообщений: 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 работать можно.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|