현재 시리얼 포트를 통해 PC에 연결된 임베디드 디바이스가 있습니다. PC에서 데이터를받는 데 문제가 있습니다. PCI 직렬 포트 카드를 사용할 때 데이터를 즉시 수신 할 수 있습니다 (지연 없음). 직렬 포트에 내장 된 USB-to-Serial 플러그 또는 마더 보드를 사용할 때 데이터 읽기 (32 바이트 패킷의 경우 40ms)를 지연해야합니다.시리얼 전송 UART 지연
하드웨어간에 유일한 차이점은 UART입니다. PCI 카드는 16650을 사용하고 플러그/마더 보드는 표준 16550A를 사용합니다. PCI 카드는 28 바이트에서 인터럽트하도록 설정되고 플러그는 14 바이트에서 인터럽트로 설정됩니다.
나는 56700 Baud (이 도움이되는 경우)에 연결되어 있습니다.
지연이 듀티 사이클의 대부분이되어 실제로 전송 시간이 길어집니다. (10 분 이동 대 1 시간 이동).
왜 플러그/마더 보드와 지연을 사용해야하는 이유에 대한 설명이 있습니까? 누구든지이 지연 최소화 또는 제거에 대한 가능한 해결책을 제안 할 수 있습니까?
하드웨어 흐름 제어 기능을 사용하도록 설정 했습니까? 내장 된 장치가 16650을 사용합니까? – nmichaels
아니요, 하드웨어 흐름 제어가 켜져 있지 않습니다. 현재 RX/TX와 지상선 만 사용하고 있습니다. 임베디드 장치는 atmel atmega 128L 및 7.3728 MHz 크리스털을 사용합니다. 나는 이것을 "16650 호환"이라고 생각합니다. Peter : 예 마더 보드의 인터럽트 지점을 조정할 수 있습니다. 그러나 그 범위는 16550 UART (16 바이트 FIFO 버퍼)를 사용하기 때문에 1-14 바이트이기도합니다. 지연은 실제로 마더 보드 연결의 불일치 오류를 1 시간의 긴 전송 동안 수백에서 10 미만으로 최소화하는 데 도움이되었습니다. –