Тонкости работы с COM портом

Разрабатываю систему, в которой компьютер общается с периферийными устройствами по шине RS485 на скорости 115200 бод.
Ведущим в шине является компьютер, соответственно общение происходит циклически:
запрос устройству 1 - ответ устройства 1
запрос устройству 2 - ответ устройства 2
...
запрос устройству N - ответ устройства N
Работа ведется через компонент Synaser.
Наконец то добрался до вопроса - между ответом устройства n и запросом устройству n+1, внедряется пауза длительностью примерно 3,5 миллисекунды.
Вот отрывок осцилограммы:
ЗУ1_ОУ1________________ 3,5мс ________________ЗУ2_ОУ2___________
где ЗУ-запрос устройству
ОУ-ответ устройства
и код который выполняется в отдельном потоке
Откуда берется пауза в 3,5 миллисекунды?
И как от нее избавиться? (Если это конечно возможно...)
Ведущим в шине является компьютер, соответственно общение происходит циклически:
запрос устройству 1 - ответ устройства 1
запрос устройству 2 - ответ устройства 2
...
запрос устройству N - ответ устройства N
Работа ведется через компонент Synaser.
Наконец то добрался до вопроса - между ответом устройства n и запросом устройству n+1, внедряется пауза длительностью примерно 3,5 миллисекунды.
Вот отрывок осцилограммы:
ЗУ1_ОУ1________________ 3,5мс ________________ЗУ2_ОУ2___________
где ЗУ-запрос устройству
ОУ-ответ устройства
и код который выполняется в отдельном потоке
- Код: Выделить всё
...
ser:=TBlockserial.Create; //создаем устройство
ser.RaiseExcept:=false; //не обрабатываем исключения ошибок связи
ser.Connect('com2'); //соединяемся с портом
ser.Config(115200,8,'N',0,false,false);//настраиваем скорость, стоп биты, паритет
repeat
ser.SendInteger((_data[1] shl 0)or(_data[2] shl 8)or(_data[3] shl 16)or(_data[4] shl 24));
ser.RecvInteger(1);//очистка приемного буфера
a:=ser.RecvByte(1);//читаем ответ
until Terminated;
ser.Free;
end;
Откуда берется пауза в 3,5 миллисекунды?
И как от нее избавиться? (Если это конечно возможно...)