alloy Posted February 4, 2016 Share Posted February 4, 2016 Имеется плата CP-132EL, для обмена по rs485 с внешним устройством необходимо в начале передачи сформировать сигнал BREAK длительностью 120-150 микросекунд. Функция sio_break_ex() принимает длительность в миллисекундах. Не подскажите ли как можно "победить"? Возможно есть другие пути решения задачи. Спб. Link to comment
boris_r_v Posted February 5, 2016 Share Posted February 5, 2016 Комрад, если я верно помню то ВREAK это 0 в течении 10-12 периодов опроса, - поэтому может и послать 12 нулей логических в буфер. Link to comment
alloy Posted February 5, 2016 Author Share Posted February 5, 2016 Комрад, если я верно помню то ВREAK это 0 в течении 10-12 периодов опроса, - поэтому может и послать 12 нулей логических в буфер. BREAK - "низкий уровень", если послать 12 нулей - то в конце каждого будут СТОП-БИТЫ (( Link to comment
boris_r_v Posted February 8, 2016 Share Posted February 8, 2016 тогда просвети, т.е. если я так сделаю int fd = open("/dev/ttyS0", .... ); ... uint8_t buff [12]; bzero( buff, sizeof(buff) ); write( fd, buff, sizeofg(buff) ) То на уровне физики у меня будет сформировано 12 посылок, и каждая из них будет обернуты в старт-стоп биты? ( и биты ли) И кто в этом случае будет выступать в качестве признака пустого канала? Ну или если много буков - то ткните в первоисточник. Заранее благодарен. Link to comment
alloy Posted February 8, 2016 Author Share Posted February 8, 2016 тогда просвети, т.е. если я так сделаю int fd = open("/dev/ttyS0", .... ); ... uint8_t buff [12]; bzero( buff, sizeof(buff) ); write( fd, buff, sizeofg(buff) ) То на уровне физики у меня будет сформировано 12 посылок, и каждая из них будет обернуты в старт-стоп биты? ( и биты ли) И кто в этом случае будет выступать в качестве признака пустого канала? Ну или если много буков - то ткните в первоисточник. Заранее благодарен. именно так все и будет )) еще может добавиться бит четности, все как и в 232 - стартовый бит + биты данных (5, 6 или 8) + бит паритета (0 или 1) + стоповый бит (1 ,1.5 или 2) "первоисточник" в гугле )) Link to comment
Незнайка Posted February 10, 2016 Share Posted February 10, 2016 Есть предложение всё таки попробовать передавать требуемое кол-во 0, только делать это на другой (проще - на пониженной) скорости, дабы со стороны 485 это выглядело как бы "ошибкой"... Link to comment
alloy Posted February 11, 2016 Author Share Posted February 11, 2016 Есть предложение всё таки попробовать передавать требуемое кол-во 0, только делать это на другой (проще - на пониженной) скорости, дабы со стороны 485 это выглядело как бы "ошибкой"... тоже вариант, только "переключение скоростей" у меня почему-то довольно медленно срабатывало (( п.с. может кто научит - как посмотреть все это дело осцилографом, есть под рукой GDS-820 ) Link to comment
Незнайка Posted February 11, 2016 Share Posted February 11, 2016 Переключать скорость передачи - однозначно не получится (по скорости переключения). Подразумевалось, что эту посылку мы будем высылать в шлейф из второго порта, с заранее преднастроенными параметрами. По столь крутой модели - вот не подскажу.. Link to comment
alloy Posted February 11, 2016 Author Share Posted February 11, 2016 Переключать скорость передачи - однозначно не получится (по скорости переключения). Подразумевалось, что эту посылку мы будем высылать в шлейф из второго порта, с заранее преднастроенными параметрами. По столь крутой модели - вот не подскажу.. как то все сложно (( а вообще можно как-то программно управлять уровнями на выходе порта? Link to comment
Незнайка Posted February 11, 2016 Share Posted February 11, 2016 Нет конечно. Это же всё-таки интерфейсный порт, а не аналоговый выход... Link to comment
alloy Posted February 11, 2016 Author Share Posted February 11, 2016 Нет конечно. Это же всё-таки интерфейсный порт, а не аналоговый выход... почему ж? уровнями rs 232 порта на компе можно управлять, можете даже диод повесить )) Link to comment
Незнайка Posted February 11, 2016 Share Posted February 11, 2016 Нет конечно. Это же всё-таки интерфейсный порт, а не аналоговый выход... почему ж? уровнями rs 232 порта на компе можно управлять, можете даже диод повесить )) Мда? То есть можно сформировать скажем +11В, а можно и +12? Если не секрет - и какой драйвер позволяет так делать (я про микросхему)? Link to comment
alloy Posted February 11, 2016 Author Share Posted February 11, 2016 Мда? То есть можно сформировать скажем +11В, а можно и +12? Если не секрет - и какой драйвер позволяет так делать (я про микросхему)? почти так, если не ошибаюсь по напряжениям - для ком-порта 12 В, соответственно можно получить +12В или 0В на конкретном выводе, например DTS все подробности в гугле ))) очень много букв ) под ДОС раньше совсем все прост было, пишешь в порт значение, каждый бит которого соответствует регистру порта Link to comment
Незнайка Posted February 12, 2016 Share Posted February 12, 2016 Ну да, только это называется управлением логическим уровнем, и используя разные пины (не обязательно предназначенные для управления потоком) можно получать +12, 0, -12 (условно говоря, в зависимости от драйвера), но уж никак не управлять собственно самим уровнем. И, помимо наличия пинов для управления потоком - в 232 есть собственно break в явном виде, которого нет в 485. А 485 с break - это уже dmx какой-то получается по физике. Link to comment
alloy Posted February 12, 2016 Author Share Posted February 12, 2016 Ну да, только это называется управлением логическим уровнем, и используя разные пины (не обязательно предназначенные для управления потоком) можно получать +12, 0, -12 (условно говоря, в зависимости от драйвера), но уж никак не управлять собственно самим уровнем. И, помимо наличия пинов для управления потоком - в 232 есть собственно break в явном виде, которого нет в 485. А 485 с break - это уже dmx какой-то получается по физике. под "управлять уровнем" я имел ввиду - задавать значение "1" или "0" в нужный момент, а не только посылать в буфер последовательности байт ))) но не сложилось DMX - именно это я и пытался сделать с помощью СР-132 ))) но не сложилось видимо, а получилось на китайском конвертере USB-RS485 с FTDI + MAX внутри Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now