Всем привет! Собственно, задачка с прежними условиями (ком-порт 8N1, без контроля четности, 115200 бод). Железка обменивается данными с ПК. Смотрим картинку обмена на логическом анализаторе. Данные выдаю кодограммами из 12 байт ( write (fd, buf,12) ). Иногда возникает ситуация, что при выдаче от ПК кодограмма из нескольких байт разрывается на части, интервалы между частями кодограммы варьируются от 100 мкс до 1,5 мс (на картинке эти разрывы показаны красными стрелками). Сигнал RTS при этом живет своей жизнью и сбрасывается значительно раньше (сброс RTS показан синей стрелкой). C чем такое может быть связано? Или такие разрывы правомерны в работе порта? [IMG]http://s019.radikal.ru/i640/1403/b4/801bfa6d497ct.jpg[/IMG]
Код записи в порт:
ioctl ( fd, TIOCMGET, &status );
status = TIOCM_RTS;
ioctl ( fd, TIOCMBIS, &status );
ioctl ( fd, TIOCMGET, &status );
while ( !(status&TIOCM_CTS) && (cntWr < 10) )
{
cntWr++;
status = TIOCM_RTS;
ioctl ( fd, TIOCMBIS, &status );
ioctl ( fd, TIOCMGET, &status );
}
if ( !(status&TIOCM_CTS) ) return 1;
write ( fd, buf, len );
do
{
ioctl ( fd, TIOCSERGETLSR, &status );
} while ( !(status & TIOCSER_TEMT) );
status |= TIOCM_RTS;
ioctl ( fd, TIOCMBIC, &status );