USART
|
|
AndrF |
Дата: Вт, 05.05.2015, 11:25 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
145
Замечания:
±
На сайте с 03.02.2012
Статус:
Offline
|
Используется USART.bas. Скорость 115200.
Контроллер через FT232RL подключен к компу.
Данные (бинарные) передаются в цикле:
Код For i = 0 To mUartBuffer(2) - 1 USART.WriteByte(mUartBuffer(i)) Next
Но передача идет медленно - создается такое впечатление что они где-то застревают в буфере контроллера. Если после цикла приведенного выше вставить:
Код USART.WriteByte(13) USART.WriteByte(10) То передача идет на порядок быстрей...
Вопрос - как обойтись без последних двух строк и просто сказать контроллеру что надо бы наконец передать?
|
|
|
|
ADMIN |
Дата: Ср, 06.05.2015, 10:42 | Сообщение # 2 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Так можно в конце массива mUartBuffer вставить эти два символа. Это символы окончания строки и типа Enter. Они хоть как нужны
|
|
|
|
AndrF |
Дата: Ср, 06.05.2015, 12:40 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
145
Замечания:
±
На сайте с 03.02.2012
Статус:
Offline
|
Цитата ADMIN ( ) Так можно в конце массива mUartBuffer вставить эти два символа. Это символы окончания строки и типа Enter. Они хоть как нужны Я не строку передаю, а бинарный массив. Пока в конце и поставил эти два символа, но хотелось бы обойтись без них.
Впрочем, на 100% я не уверен что проблема в контроллере - это надо хотя бы осциллографом смотреть. Может дело и в контроле VB6. Хотя бинарный режим у него включен...
|
|
|
|
ADMIN |
Дата: Ср, 06.05.2015, 13:00 | Сообщение # 4 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1086
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Так какая разница, бинарный, не бинарный? Число оно и в африке число. Или я чего -то не понимаю?
|
|
|
|
AndrF |
Дата: Ср, 06.05.2015, 13:54 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
145
Замечания:
±
На сайте с 03.02.2012
Статус:
Offline
|
Цитата ADMIN ( ) Так какая разница, бинарный, не бинарный? Число оно и в африке число. Или я чего -то не понимаю? Ну текстовый массив состоит все же из байтов содержащих коды символов. Для него завершение CrLf логично. А бинарный может содержать что угодно - завершение CrLF для него вроде смысла не имеет...
Сейчас убрал CrLf из конца массива - скорость как вчера не упала... Так что было вчера даже сказать не могу - с тех пор много поменял...
Но! Смущает вообще скорость - запрос и прием 1128 байт происходит примерно за 0.26 секунды. IMHO медленно для 115200 бод. Или я не прав? Данные принимаются все (у контроллера их забираю блоками до 128 байт плюс несколько служебных типа контрольной суммы и длины блока). Ошибок не наблюдаю...
Если к этому времени добавить еще время чтения этих байт из 24C128 по шине 1 Mhz, то выходит примерно 0,3 секунды.
Сообщение отредактировал
AndrF - Ср, 06.05.2015, 14:09
|
|
|
|
ivan_fd |
Дата: Ср, 06.05.2015, 15:58 | Сообщение # 6 |
Группа:
Модераторы
Ранг:
Специалист
Сообщений:
894
Замечания:
±
На сайте с 12.01.2009
Статус:
Offline
|
Цитата AndrF ( ) Но! Смущает вообще скорость - запрос и прием 1128 байт происходит примерно за 0.26 секунды. IMHO медленно для 115200 бод. Или я не прав? Если бы просто передать 1128 байт, то немного медленно. А если с запросами и служебной инфой , то может быть.
|
|
|
|
AndrF |
Дата: Ср, 06.05.2015, 16:12 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Продвинутый
Сообщений:
145
Замечания:
±
На сайте с 03.02.2012
Статус:
Offline
|
Цитата ivan_fd ( ) Если бы просто передать 1128 байт, то немного медленно. А если с запросами и служебной инфой , то может быть. Да мало там служебной инфы-то - 5 байт на пакет. Кроме того, при росте объема данных скорость растет практически линейно.
Задал вопрос на их форуме - посмотрим что ответят...
Как с этим обстоит дело в Протоне - за сколько удавалось передать килобайт данных - никто не замерял?
P.S Оно, конечно, для того что делаю не дюже критично, но хотелось бы понять в чем дело.
Сообщение отредактировал
AndrF - Ср, 06.05.2015, 16:14
|
|
|
|