SirJon 0 4 апреля, 2006 Опубликовано 4 апреля, 2006 · Жалоба Возникла такая задача: на ходу определять скорость приемо-передачи rs232....ну скажем до 115200 бод. Может кто сталкивался с такой задачей и знает как ее решить наиболее просто и красиво? Хочу отметить, что вариант использования простенького MC, видимо отпадает из-за требуемых внутренних высоких частот и как следствие высокой стоимости. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ipc 0 4 апреля, 2006 Опубликовано 4 апреля, 2006 · Жалоба Задача очень странная потому как rs232 не шинный интерфейс и в общем случае в такой сети может быть только два устройства один мастер и один слейв. Неужели нельзя заранее определится со скоростями. В любом случае если скорость одна из стандартных(1200,2400,4800,9600 итд) и известно количество стоповых и стартовых битов то можно обойтись перебором скоростей снизу вверх. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 4 апреля, 2006 Опубликовано 4 апреля, 2006 · Жалоба Скорость передачи обычно определяют путем измерения длительности стартового бита при передаче символа 0xFF. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SirJon 0 4 апреля, 2006 Опубликовано 4 апреля, 2006 · Жалоба Наверное я не очень полно описал задачу. Прошу прощения. Такая задача возникает при разработке преобразователя rs232 -> любой полудуплексный интерфейс (rs485 например), когда необходимо управлять переключением прием/передача...с установленными тайм-аутами (как правило в знаках, 1.5-3.5 знака). Поэтому и возникает задача определять скорость автоматом....ну и щелкать приемопередатчиком соответственно. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 4 апреля, 2006 Опубликовано 4 апреля, 2006 · Жалоба В нашем конверторе RS232-RS485, например, с помощью SMD-switch скорость выбирается. В сети RS485 обычно один мастер и на одной скорости общение идет. Обоснуйте необходимость автоматического определения скорости передачи. ИМХО это конечно удобно, но не совсем целесообразно. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SirJon 0 5 апреля, 2006 Опубликовано 5 апреля, 2006 · Жалоба Сделать обычный rs232 -> rs485 задача тривиальная. С ручным переключением скоростей - интересная. С автоматическим определением - достойная подражания ИМХО это уже реализовано не у одного производителя. Разобрав дешевый ICP-DAS I-7xxx, я не увиделел ничего интересного, кроме одной микрухи...которая и служит тюнером rs323, т.е. вычисляет (замеряет) скорость приемо/передачи и соотв. щелкает приемо-передатчиком. Отсюда и интерес КАК? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ipc 0 5 апреля, 2006 Опубликовано 5 апреля, 2006 · Жалоба Сделать обычный rs232 -> rs485 задача тривиальная. С ручным переключением скоростей - интересная. С автоматическим определением - достойная подражания ИМХО это уже реализовано не у одного производителя. Разобрав дешевый ICP-DAS I-7xxx, я не увиделел ничего интересного, кроме одной микрухи...которая и служит тюнером rs323, т.е. вычисляет (замеряет) скорость приемо/передачи и соотв. щелкает приемо-передатчиком. Отсюда и интерес КАК? Я тоже разбирал айсипиконы (помоему i7520),действительно там стоит заказной чипак который решает проблему. Если подумать то конструкция такого устройства выглядит примерно так Драйвер RS232<->Процессор<->Драйвер RS-485 Скорее всего Процессор это просто ретранслятор которому побарабану какая частота,какие данные.Появился перепад с одной стороны и он его ретранслирует на другую(а там уже драйвер сам разбираецца что с ним делать).Скорее всего параллельно мерица частота сигнала и высчитываеца таймаут по истечении которого он выключает передатчик на стороне RS-485 чтобы быть готовым к приему. Главное понять как посчитать этот таймаут. В нашем конверторе RS232-RS485, например, с помощью SMD-switch скорость выбирается. В сети RS485 обычно один мастер и на одной скорости общение идет. Обоснуйте необходимость автоматического определения скорости передачи. ИМХО это конечно удобно, но не совсем целесообразно. Да чего там обосновывать,действительно очень удобно когда конвертер незадает глупых вопросов и нетребует дополнительной настройки и самое главное не заставляет щелкать RTS. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Веталь+5v 0 5 апреля, 2006 Опубликовано 5 апреля, 2006 · Жалоба А может имеет смысл сделать преобразователь usb-rs485 (использовать ft232bm и adm483).FTDI имеет вывод для переключения направления передачи.В компе эта система будет видеться как обычный ком порт и направлением передачи не надо управлять - всё работает в автомате. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ipc 0 5 апреля, 2006 Опубликовано 5 апреля, 2006 · Жалоба А может имеет смысл сделать преобразователь usb-rs485 (использовать ft232bm и adm483).FTDI имеет вывод для переключения направления передачи.В компе эта система будет видеться как обычный ком порт и направлением передачи не надо управлять - всё работает в автомате. Если дело только в спортивном интересе и повышении экспириенса то можно сделать все и даже более целесообразно использовать USB потому как RS-232 уходит в прошлое но если планируется коммерческая состовляющая то проще купить потому как все это уже придумано и очень широко представлено на рынке и врятли можно будет сделать дешевле и быстрее. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Веталь+5v 0 5 апреля, 2006 Опубликовано 5 апреля, 2006 · Жалоба Если дело только в спортивном интересе и повышении экспириенса то можно сделать все и даже более целесообразно использовать USB потому как RS-232 уходит в прошлое но если планируется коммерческая состовляющая то проще купить потому как все это уже придумано и очень широко представлено на рынке и врятли можно будет сделать дешевле и быстрее. По поводу коммерческой составляющей- FTDI(3$)+ST485N(1$)+2$ рассыпуха и никакого гемороя с поиском чипа который будет определять скорость.На практике сделал порядка 20 экземпляров-всё работает окей.Если покупать на фирме то rs232-rs485 и usb-rs485 будут стоить примерно одинаково-100$. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ipc 0 5 апреля, 2006 Опубликовано 5 апреля, 2006 · Жалоба Если дело только в спортивном интересе и повышении экспириенса то можно сделать все и даже более целесообразно использовать USB потому как RS-232 уходит в прошлое но если планируется коммерческая состовляющая то проще купить потому как все это уже придумано и очень широко представлено на рынке и врятли можно будет сделать дешевле и быстрее. По поводу коммерческой составляющей- FTDI(3$)+ST485N(1$)+2$ рассыпуха и никакого гемороя с поиском чипа который будет определять скорость.На практике сделал порядка 20 экземпляров-всё работает окей.Если покупать на фирме то rs232-rs485 и usb-rs485 будут стоить примерно одинаково-100$. Если делать дома на коленках то может быть.Но обычно считают так 1.Стоимость комплектации 2.Стоимость платы 3.Стоимость корпуса и разьемов 4.Стоимость упаковки и документации 5.Зарплата разработчику 6.Зарплата менеджера по закупкам 7.Зарплата бухгалтерии за оформление бумаг и безналичных расчетов 8.Амортизация оборудования 9.Стоимость средств связи и интернета 10.Стоимость производства 11.Какой никакой но нужен навар Намеренно опускаю лицензионные и сертификационные затраты.Хотя они стоят недохло. Может что забыл но в нашей лавке все так грустно и печально Кроме того насколько я помню конвертеры уже подешевели до 50$(само собой с учетом скидок тех фирм где мы постоянно закупаемся) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SirJon 0 5 апреля, 2006 Опубликовано 5 апреля, 2006 · Жалоба А может имеет смысл сделать преобразователь usb-rs485 (использовать ft232bm и adm483). Лечить больную голову путем ее отсечения - не есть гуманный выход :) Извините за шутку. Rs232 имеет кучу своих достоинств, продолжает широко использоваться и встраивается не только в PC. FTDI имеет вывод для переключения направления передачи.В компе эта система будет видеться как обычный ком порт и направлением передачи не надо управлять - всё работает в автомате. Если Вы внимательно посмотрите на настройки того же самого виртуального ком-порта, то увидите, что имеют место быть таймауты приемо-передачи. А это как раз не "автомат". Мои соображения по поводу того, что микруха в I-7xxx является микроконтроллером: 1. Если она и микроконтроллер, то без кварца, и тогда с внутренним RC. Выше 4MHz я внутренние точные кварцы не видал. Отсюда получается, что на высоких скоростях (115200 бод) прога для этой микрухи весьма критична к циклу замера и ретрансляции. Поэтому думаю, что задача решена не в лоб - замером длительности. 2. Скорее имеет место быть логическая цепочка....например на заранее определенные скорости, возможно задействован как-то АЦП. Но логика эта пока для меня не прозрачна. Подумаем вместе? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Веталь+5v 0 5 апреля, 2006 Опубликовано 5 апреля, 2006 · Жалоба Если Вы внимательно посмотрите на настройки того же самого виртуального ком-порта, то увидите, что имеют место быть таймауты приемо-передачи. А это как раз не "автомат". Я имел ввиду,что пока передаваемый байт не вылезеть весь наружу из приёмопередатчика чип будет удерживать вывод направления передачи в 1. После этого система переводится в состояние приёма. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rezident 0 5 апреля, 2006 Опубликовано 5 апреля, 2006 · Жалоба Определить условие для переключения драйвера RS485 на передачу не хитро (отловил перепад 1->0 на входе и переключай), а вот как узнать сколько времени удерживать драйвер RS485 в состоянии вывода? Для посимвольной передачи - чем быстрее тем лучше. А для RTU-ной пакетной передачи желательно не менее 3,5 символов удерживать. Чтобы помехи при переключении линии не попали в пакет. Потому я и просил обосновать необходимость автоматическоого переключения передачи при том, что неизвестен заранее алгоритм переключения и тип протокола связи. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Abo 0 5 апреля, 2006 Опубликовано 5 апреля, 2006 · Жалоба А у нас сделали просто - поставили перезапускаемый одновибратор на 555АГ3 или АГ4(уже не помню) с коммутатором времязадающих RC цепей, подобрали длительность импульса равным длительности передачи байта для необходимых скоростей. Текущая скорость выбиралась состоянием ног DTR и RTS. Выход одновибратора - на вход управления драйвером RS485. И все. Но это было лет 7 назад. На сегодня конечно лучше FTDI и в USB (IMHO). Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться