В настоящее время у меня встроенное устройство, подключенное к ПК через последовательный порт. У меня возникают проблемы с получением данных на ПК. Когда я использую свою карту последовательного порта PCI, я могу сразу получить данные (без задержек). Когда я использую свой USB-To-Serial разъем или материнские платы, встроенные в последовательный порт, мне приходится задерживать чтение данных (40 мс для 32-байтных пакетов).Последовательный перенос задержки UART
Единственное различие, которое я могу найти между оборудованием, - это UART. Плата PCI использует 16650, а плагин/материнская плата использует стандартный 16550A. Плата PCI установлена на прерывание с 28 байтами, а штепсельная вилка установлена на прерывание с 14 байтами.
Я подключен к 56700 бод (если это помогает).
Задержка становится большей частью рабочего цикла и действительно увеличивает время передачи. (10 минут передачи через 1 час передачи).
У кого-нибудь есть объяснение, почему я должен использовать задержку со штекером/материнской платой? Может ли кто-нибудь предложить возможное решение для минимизации или устранения этой задержки?
У вас есть аппаратное управление потоком? Является ли ваше встроенное устройство использующим 16650? – nmichaels
Нет, аппаратное управление потоком не включено. В настоящее время я использую только RX/TX и наземную линию. Встраиваемое устройство использует atmega atmega 128L и кристалл 7,3728 МГц. Я предполагаю, что это считается «совместимым с 16650». Peter: Да, я могу настроить точку прерывания материнской платы. Однако его диапазон также составляет 1-14 байтов из-за него с использованием 16550 UART (16-байтовый FIFO-буфер). Задержка фактически помогла минимизировать ошибки несоответствия в подключении материнской платы от сотен до менее 10 во время передачи в течение часа. –