|
|
 |
Ответов
(30 - 44)
|
Nov 18 2017, 12:05
|
Знающий
   
Группа: Участник
Сообщений: 688
Регистрация: 13-05-16
Пользователь №: 91 710

|
Цитата(jcxz @ Nov 18 2017, 13:55)  2 МБод на 144МГц тактовой? Может как-то и получится, но думаю процессор только этим и будет заниматься. От загрузки канала зависит. Сколько времени идет прием/передача, столько и будет отвлекаться на это процессор. Плюс небольшие накладные расходы. Если по RS485 идет сплошной поток в ту или другую сторону, то на остальное времени почти не останется...
Сообщение отредактировал @Ark - Nov 18 2017, 12:06
|
|
|
|
|
Nov 20 2017, 09:19
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(@Ark @ Nov 18 2017, 14:05)  От загрузки канала зависит. Сколько времени идет прием/передача, столько и будет отвлекаться на это процессор. А если канал сильно недогружен, то может имеет смысл во столько же раз уменьшить скорость? А если не уменьшили, то видимо нельзя - не успевают передавать. Так что мимо кассы - процессор должен уметь принять и непрерывный поток.
|
|
|
|
|
Nov 20 2017, 09:20
|
Местный
  
Группа: Участник
Сообщений: 356
Регистрация: 9-06-07
Пользователь №: 28 315

|
Цитата Мы используем Миландровский 1986ВЕ1Т с тактовой 144 МГц. На такой частоте по Вашей оценке можно реализовать программный контроллер RS-485 со скоростью 2 Мбит/с? Спасибо за ответы, только у Миландра - это приемопередатчики, а нужен бы специализированный контроллер. Почему не можем использовать UART - потому что скорости не хватает - 921600 бод, а нам надо около 2 Мбит (RS-485 с такими скоростями позволяет работать) У вас наверняка устаревшие данные. В описании сказано UART до 9 Мбит/сек, IrDA 460800 Мбит/сек. (Описание от 31.01.2014 г. стр 323)
Сообщение отредактировал редактор - Nov 20 2017, 09:21
--------------------
Хорошую систему делают из стандартных блоков нестандартно мыслящие инженеры.
|
|
|
|
|
Nov 20 2017, 09:57
|
Знающий
   
Группа: Участник
Сообщений: 688
Регистрация: 13-05-16
Пользователь №: 91 710

|
Цитата(jcxz @ Nov 20 2017, 12:19)  А если канал сильно недогружен, то может имеет смысл во столько же раз уменьшить скорость? Не всегда. Например, для внешнего устройства, работающего в связке с ПК, зачастую предпочтительнее быстро передать пакет данных на высокой скорости. Чтобы освободить линию связи и собственные ресурсы МК до передачи следующего пакета. А не растягивать этот процесс на низкой скорости. А когда устройств на линии предполагается много, то их максимальное количество будет напрямую зависеть от выбранной скорости обмена. "Сильно недогруженный канал" с точки зрения МК, "догружается" другими устройствами на линии, вплоть до непрерывного потока.
|
|
|
|
|
Nov 20 2017, 10:31
|
Частый гость
 
Группа: Свой
Сообщений: 147
Регистрация: 5-07-04
Из: Обнинск
Пользователь №: 261

|
Цитата(AlexeyT @ Nov 17 2017, 21:47)  ... Почему не можем использовать UART - потому что скорости не хватает - 921600 бод, ... а нам надо около 2 Мбит ... (RS-485 с такими скоростями позволяет работать) Контроллеру среда передачи пофигу должна быть, хоть RS-232, хоть RS-485, хоть RS-422. Зависит от устройства и способов его использования. Уровень приложения знать не должен, какая среда используется. Только максимум в драйвере протокола может быть управление направлением передачи. P.S. С каких пор полудуплекс стал быстрее полного дуплекса?
|
|
|
|
|
Nov 20 2017, 10:36
|
Знающий
   
Группа: Участник
Сообщений: 688
Регистрация: 13-05-16
Пользователь №: 91 710

|
Цитата(jcxz @ Nov 20 2017, 13:23)  И что? Эти данные, передаваемые "другими устройствами" будут также поступать на вход RX микроконтроллера и загружать его процедурой приёма байт. В чём разница-то?  Разница в том, что линия связи освобождается для работы других устройств. МК, конечно, придется анализировать поток на линии. Чем он, в основном, и будет заниматься. Когда придет запрос, адресованный именно данному устройству, он обрабатывается, передается ответ. А дальше устройство снова "курит бамбук", анализируя линию и ожидая следующего запроса. Это достаточно часто встречающаяся ситуация...
|
|
|
|
|
Nov 20 2017, 11:00
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(@Ark @ Nov 20 2017, 12:36)  А дальше устройство снова "курит бамбук", анализируя линию и ожидая следующего запроса. Это достаточно часто встречающаяся ситуация... Я Вам говорю о том, что это "курит бамбук" при программном UART-е на 2МБод-а выльется в очень большую загрузку CPU. Что уже как-то не похоже на "курит бамбук". И как раз часто встречающаяся ситуация, когда устройство занимается ещё чем-то, кроме того, что ждёт запроса от ПК. Оно же для чего-то создавалось, чтобы выполнять какую-то работу, а не просто "курить бамбук". И при программном UART-е 2МБод оно будет в основном заниматься анализом потока на линии, как Вы правильно заметили. И на другие (полезные) дела ресурсов уже не останется. Цитата(richie @ Nov 20 2017, 12:31)  P.S. С каких пор полудуплекс стал быстрее полного дуплекса? Как Вы себе представляете полный дуплекс на 2х-проводном RS-485 (автор вроде его имел в виду) ?
|
|
|
|
|
Nov 20 2017, 11:05
|
Знающий
   
Группа: Участник
Сообщений: 688
Регистрация: 13-05-16
Пользователь №: 91 710

|
Цитата(jcxz @ Nov 20 2017, 13:55)  И при программном UART-е 2МБод оно как раз будет в основном заниматься анализом потока на линии, как Вы правильно заметили. И на другие (полезные) дела ресурсов уже не останется. .. За исключением случаев, когда "полезные дела" выполняются устройством только "по команде" (по запросу). Что, поверьте, не редкость... Устройства разные бывают, в том числе совсем простые, с очень ограниченными ресурсами. И их может быть много на одной линии. Ставить в каждое процессор с аппаратной поддержкой 2Мбит по UART не всегда рационально. Вот тогда программный UART рулит...
|
|
|
|
|
Nov 20 2017, 12:42
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(@Ark @ Nov 20 2017, 13:36)  Разница в том, что линия связи освобождается для работы других устройств. МК, конечно, придется анализировать поток на линии. Чем он, в основном, и будет заниматься. Когда придет запрос, адресованный именно данному устройству, он обрабатывается, передается ответ. А дальше устройство снова "курит бамбук", анализируя линию и ожидая следующего запроса. Это достаточно часто встречающаяся ситуация... Часто, но на более медленных скоростях, когда "долбежка" проца не отнимает много времени. Для скоростной связи с компом лучше выбрать другой интерфейс, например еще один уарт(485), усб или эзернет, как уже говорил. Цитата(@Ark @ Nov 20 2017, 14:05)  Вот тогда программный UART рулит... Только тогда, когда нет никакой возможности использовать аппаратный порт.
Сообщение отредактировал mantech - Nov 20 2017, 12:43
|
|
|
|
|
Nov 20 2017, 12:52
|
Знающий
   
Группа: Участник
Сообщений: 688
Регистрация: 13-05-16
Пользователь №: 91 710

|
Цитата(mantech @ Nov 20 2017, 15:42)  ... Для скоростной связи с компом лучше выбрать другой интерфейс, например еще один уарт(485), усб или эзернет, как уже говорил. ... Только тогда, когда нет никакой возможности использовать аппаратный порт. Еще один RS485 - это еще одна линия... USB - это только для "настольных игр"... Эзернет... - про цену вопроса не забывайте. И умножьте ее, скажем, на 100 (устройств в линии)...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|