|
|
  |
хочу по витой паре передавать до 100 метров данные, подскажите идею протокола |
|
|
|
Mar 18 2016, 20:00
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(adnega @ Mar 18 2016, 15:50)  На скорости 9600 это чуть больше 1 мс can может почти в тысячу раз больше проблема 485 - отсутствие аппаратной поддержки uart`ом так что если can так жмёт, то я бы выбрал 422, но не 485 Цитата(adnega @ Mar 18 2016, 20:58)  Но не по простоте настройки. и по простоте ещё есть ?
|
|
|
|
|
Mar 18 2016, 20:08
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(Огурцов @ Mar 18 2016, 23:00)  can может почти в тысячу раз больше А в УД больше не надо. Цитата(Огурцов @ Mar 18 2016, 23:00)  проблема 485 - отсутствие аппаратной поддержки uart`ом Модуль UART можно настроить на автоматическое управление сигналом TX_ENABLE. Или какая-то друга поддержка нужна? Цитата(Огурцов @ Mar 18 2016, 23:00)  и по простоте ещё есть ? у меня в квартире 10 контроллеров в стене. Между ними проброшен один кабель "паравозиком". На Ethernete вы предлагаете ставить 10 портовый хаб и тянуть от каждого контроллера к хабу кабель звездой? Мне не кажется это простым решением.
|
|
|
|
|
Mar 18 2016, 20:17
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(adnega @ Mar 18 2016, 21:08)  А в УД больше не надо. а как же звук, который выше хотели ? Цитата(adnega @ Mar 18 2016, 21:08)  Модуль UART можно настроить на автоматическое управление сигналом TX_ENABLE. в stm32 ? Цитата(adnega @ Mar 18 2016, 21:08)  у меня в квартире 10 контроллеров в стене. Между ними проброшен один кабель "паравозиком". На Ethernete вы предлагаете ставить 10 портовый хаб и тянуть от каждого контроллера к хабу кабель звездой? в ethercat эти вопросы таки решены - и шина, и без хаба
|
|
|
|
|
Mar 18 2016, 20:25
|
Местный
  
Группа: Свой
Сообщений: 220
Регистрация: 15-05-09
Пользователь №: 49 132

|
Цитата(adnega @ Mar 18 2016, 23:08)  А в УД больше не надо.
Модуль UART можно настроить на автоматическое управление сигналом TX_ENABLE. Или какая-то друга поддержка нужна?
у меня в квартире 10 контроллеров в стене. Между ними проброшен один кабель "паравозиком". На Ethernete вы предлагаете ставить 10 портовый хаб и тянуть от каждого контроллера к хабу кабель звездой? Мне не кажется это простым решением. Гы, ну можно извратиться и на каждый девайс ставить микросхемку свича минимум 3 портового, типа один пришел, один ушел, и еще один это собственно физика девайса. Тогда звезду можно не городить, а подключать все так же свич в свич в свич и тд. Только это опять велосипед, хоть и с гальваникой и, возможно, с повер овер енет, если так сказать длина позволяет. Так то 10 мбит енета на коаксиале с Т коннекторами байонетными было бы как раз в пору. Езеркэт это кольцо, не всегда может быть удобным, но таки да, вполне себе промышленное решение и далеко не в лабораторных условиях работающее. И таки да стм32 может аппаратно тх рх разруливать. Да и свет на нем клином не сошелся же, есть и другие камни по сравнимым ценам.
Сообщение отредактировал bloody-wolf - Mar 18 2016, 20:29
|
|
|
|
|
Mar 18 2016, 20:30
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(bloody-wolf @ Mar 18 2016, 23:25)  Гы, ну можно извратиться Можно. А нужно ли? Цитата всех порву Кста, что там с длинами более 100 метров?
|
|
|
|
|
Mar 18 2016, 20:40
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(bloody-wolf @ Mar 18 2016, 21:25)  Гы, ну можно извратиться и на каждый девайс ставить микросхемку свича минимум 3 портового так и делают а ещё - фаи back to back Цитата(bloody-wolf @ Mar 18 2016, 21:25)  Так то 10 мбит енета на коаксиале с Т коннекторами байонетными было бы как раз в пору. а что мешает витухе ? Цитата(bloody-wolf @ Mar 18 2016, 21:25)  Езеркэт это кольцо кольцо в одну сторону, а там шина, замкнутая в кольцо, для увеличения надёжности Цитата(bloody-wolf @ Mar 18 2016, 21:25)  И таки да стм32 может аппаратно тх рх разруливать а не трудно define из spl сюда кинуть ? Цитата(adnega @ Mar 18 2016, 21:30)  Кста, что там с длинами более 100 метров? да подсказали же - ару а оптика сколько, 10км ? а у 485 на 10км какая скорость останется ?
|
|
|
|
|
Mar 18 2016, 20:50
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (adnega @ Mar 18 2016, 22:08)  Модуль UART можно настроить на автоматическое управление сигналом TX_ENABLE. Или какая-то друга поддержка нужна? Довольно бесполезная опция на самом деле. Передачик ДО начала передачи не включает  . Если только управление выборки приемника и передатчика не запаралелить намертво, то передатчик то он выключит, но приемник-то тоже включать надо. И до кучи уже конкретные проблемы. Уж совсем было собрался из принципа, хоть один раз воспользоваться, так у LPC15xx баг оказался - глитч между байтами на выборке проскакивает. А поскольку интервальный таймер на длительность байта по любому нужен для аварийного таймаута приема, то без надобности такие опции  .
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Mar 18 2016, 20:54
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(Огурцов @ Mar 18 2016, 23:40)  а не трудно define из spl сюда кинуть ? SPL не читаю. Читаю RM (на примере простеньких STM32F0x1/STM32F0x2/STM32F0x8): CODE USARTx_CR1:
Bits 25:21 DEAT[4:0]: Driver Enable assertion time This 5-bit value defines the time between the activation of the DE (Driver Enable) signal and the beginning of the start bit. It is expressed in sample time units (1/8 or 1/16 bit duration, depending on the oversampling rate).
Bits 20:16 DEDT[4:0]: Driver Enable de-assertion time This 5-bit value defines the time between the end of the last stop bit, in a transmitted message, and the de-activation of the DE (Driver Enable) signal. It is expressed in sample time units (1/8 or 1/16 bit duration, depending on the oversampling rate). If the USARTx_TDR register is written during the DEDT time, the new data is transmitted only when the DEDT and DEAT times have both elapsed.
USARTx_CR3:
Bit 15 DEP: Driver enable polarity selection 0: DE signal is active high. 1: DE signal is active low.
Bit 14 DEM: Driver enable mode This bit allows the user to activate the external transceiver control, through the DE signal. 0: DE function is disabled. 1: DE function is enabled. The DE signal is output on the RTS pin. Это сойдет за аппаратную поддержку? Цитата(Огурцов @ Mar 18 2016, 23:40)  да подсказали же - ару а оптика сколько, 10км ? а у 485 на 10км какая скорость останется ? Я еще и не ту кашу из топора сварить могу. А надо ли? Цитата(zltigo @ Mar 18 2016, 23:50)  Довольно бесполезная опция на самом деле. Передачик ДО начала передачи не включает  . Да ну? Выдержка из RM выше. Он еще и перед отпусканием подождать может.
|
|
|
|
|
Mar 18 2016, 21:09
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (adnega @ Mar 18 2016, 22:54)  Да ну? Точно! Для этого надо было Вам увидеть "у LPC15xx", а так-же то, мой ответ был на пост, в котром не было упоминаня никаких конкретных реализациях этой функции. QUOTE Он еще и перед отпусканием подождать может. Это уже многе могут, но опция при нынешних шустрых процесорах скользкая - надо принимать меры по гарантированной задержке ответа, хотя если побитно можно, то это уже неплохо - на один битик.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Mar 18 2016, 21:18
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(zltigo @ Mar 19 2016, 00:09)  Точно! Для этого надо было Вам увидеть "у LPC15xx", это про ДО начала. Если у LPC что-то сделано плохо, это же не означает, что аппаратное управление передатчиком фича бесполезная. Насчет таймаута приема вам бы понравилось: CODE Modbus/RTU In this mode, the end of one block is recognized by a “silence” (idle line) for more than 2 character times. This function is implemented through the programmable timeout function. The timeout function and interrupt must be activated, through the RTOEN bit in the USARTx_CR2 register and the RTOIE in the USARTx_CR1 register. The value corresponding to a timeout of 2 character times (for example 22 x bit duration) must be programmed in the RTO register. When the receive line is idle for this duration, after the last stop bit is received, an interrupt is generated, informing the software that the current block reception is completed.
Modbus/ASCII In this mode, the end of a block is recognized by a specific (CR/LF) character sequence. The USART manages this mechanism using the character match function. By programming the LF ASCII code in the ADD[7:0] field and by activating the character match interrupt (CMIE=1), the software is informed when a LF has been received and can check the CR/LF in the DMA buffer.
Bit 23 RTOEN: Receiver timeout enable This bit is set and cleared by software. 0: Receiver timeout feature disabled. 1: Receiver timeout feature enabled. When this feature is enabled, the RTOF flag in the USARTx_ISR register is set if the RX line is idle (no reception) for the duration programmed in the RTOR (receiver timeout register).
Bits 23:0 RTO[23:0]: Receiver timeout value This bit-field gives the Receiver timeout value in terms of number of bit duration. In standard mode, the RTOF flag is set if, after the last received character, no new start bit is detected for more than the RTO value.
|
|
|
|
|
Mar 18 2016, 21:27
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (adnega @ Mar 18 2016, 23:18)  Если у LPC что-то сделано плохо, это же не означает, что аппаратное управление передатчиком фича бесполезная. мой ответ был на пост, в котром не было упоминания никаких конкретных реализациях этой функции. QUOTE Насчет таймаута приема вам бы понравилось: Неплохо, но два байта многовато. Навороты неплохи, но делается и руками и минимально зависимо от контроллера.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Mar 18 2016, 21:36
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(zltigo @ Mar 19 2016, 00:27)  мой ответ был на пост, в котром не было упоминания никаких конкретных реализациях этой функции. Ок. Т.е. существуют реализации с не бесполезным аппаратным управлением передатчиком. Цитата(zltigo @ Mar 19 2016, 00:27)  Неплохо, но два байта многовато. Там не в байтах таймаут задается. Цитата(zltigo @ Mar 19 2016, 00:27)  Навороты неплохи, но делается и руками и минимально зависимо от контроллера. Так и знал, что вы так ответите  Я тоже все делаю ручками, и про фичи эти узнал сегодня. Но при таком раскладе RS485 становится все проще и проще.
|
|
|
|
|
Mar 18 2016, 21:42
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(adnega @ Mar 18 2016, 21:54)  Это сойдет за аппаратную поддержку? это один из последних камней, я их ещё не курил, поэтому не видел как раз сейчас с 485 биться, а это может существенно облегчить спасибо Цитата(adnega @ Mar 18 2016, 21:54)  Я еще и не ту кашу из топора сварить могу. А надо ли? лучше: я знаю, как сварить, будет надо - сварю, пальчики оближешь
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|