홈
지원
DMA FIFO를 이용할 때 유실된 데이터 처리 방법
DMA FIFO를 이용할 때 유실된 데이터 처리 방법
업데이트 됨 Jul 29, 2019
해당 제품
이 문서의 해결책을 실행할 수 있는 제품을 보여줍니다. 이 해결책은 다른 유사한 제품 또는 어플리케이션에도 적용될 수 있습니다.
소프트웨어
LabVIEW FPGA Module
문의사항
DMA FIFO에서 데이터를 제거할 때 데이터가 유실 되었다는 것을 알았습니다. 어떻게 해결할 수 있습니까?
해결책
DMA FIFO에서 데이터가 누락된 것은 대개 잘못된 DMA 아키텍처 때문입니다.(참고 링크:
Best Practices for DMA Applications (FPGA Module)
) 아래 항목들은 개발자가 DMA FIFO를 사용할 때 발생하는 데이터 누락과 관련된 몇 가지 일반적인 문제들입니다.
FPGA의 데이터 수집 코드에는 정의되지 않은 시간이 걸리는 코드 섹션이 있습니다. 지정된 루프 속도로 데이터를 수집해야 하고 FPGA가 호스트에서 값 변경 또는 인터럽트를 기다리는 경우 FPGA는 수집을 중지하게 되며 데이터가 손실됩니다.
FIFO에서 데이터가 잘못 읽히고 있는 경우입니다. 이 문제는 FIFO에 데이터를 인터리빙 할 때나 채널 수의 정수 배수를 읽도록 지정하지 않았을 때 발생할 수 있습니다.
DMA FIFO가 오버플로우 되는 경우입니다. 이 문제는
Missing Data When Using DMA FIFO With High Sample Rates on FPGA
를 참고하십시오. 추가적으로 오버플로우를 피하기 위한 몇 가지 방법들이 있습니다.
Write (FIFO Method)
가 타임아웃을 발생시키는지 확인하십시오. Write 함수에서 타임아웃이 참이 되면 버퍼가 적절하게 설정되지 않았다는 표시입니다. (참고 링크:
Avoiding Buffer Errors in DMA Applications (FPGA Module)
)
호스트에서 다량의 데이터를 읽으십시오. 이는 호스트에 대한 데이터 통신의 연산 오버헤드를 제한하는 데 도움이 됩니다.
표준 아키텍처를 사용하여 FIFO의 데이터를 읽으십시오. 이 방법은
Designing a Host VI to Read Data in DMA Applications (FPGA Module)
를 참조하십시오.
관련 링크
High CPU Usage When Reading Data from Target-to-Host DMA FIFOs
How DMA FIFO Transfers Work (FPGA Module)
Improving Efficiency When Accessing DMA FIFOs (FPGA Module)
기타 지원 옵션
NI 커뮤니티에 문의
토론 포럼에서 다른 사용자와 공동 작업
솔루션 찾기 NI 커뮤니티 검색
엔지니어의 지원 요청
유효한 서비스 계약이 필요할 수 있으며 지원 옵션은 국가마다 다릅니다.
서비스 요청 열기
지원 서비스 구매 또는 갱신
Was this information helpful?
Helpful
Not Helpful