티스토리 뷰

[LabVIEW] CompactRIO, FGPA에서 9205, 9206 모듈 최대 속도로 측정하기


이 글에서는 9205, 9206을 Compact RIO의 FPGA 기반에서 입력을 받을 때 발생할 수 있는 샘플링 속도에 대한 문제점 해결 방안을 살펴보도록 하겠습니다.


9205의 스펙을 먼저 살펴보겠습니다. 아래의 그림에서 확인을 할 수 있듯이, 9205는 최대 250Ks/s 속도를 가지고 있습니다. 32채널을 사용할 수 있구요. (차동으로 돌리면 16채널이겠지요)



9205의 내부 입력 회로를 살펴보면 Mux를 사용하고 있습니다. 이는 채널의 갯수가 많아 지면 많아 질 수록 채널당 받을 수 있는 최대 속도는 사용하는 채널의 갯수로 나눈 값이 됨을 의미합니다 



예를 들어 9205 10개 채널을 사용하게 된다면, 9205의 한개 채널에서 받을 수 있는 최대의 속도는 25Ks/s Per 1 Channel 입니다. 


하지만 1채널을 사용한다고 해도 RIO 장비에서 9205를 이용할 때 C시리즈 입력 속도가 100K이상 나오지 않는 경우가 있습니다.  실질적으로 프로그래밍을 해봐도 200k를 지정을 해도 Actual Sample Rate가 110K정도 밖에 나오지 않습니다.


이런 경우에는 2가지의 해결 방안을 생각해 볼 수 있습니다.


  • 모듈의 Conversion Time을 줄인다.
  • FPGA 최적화 방안중에 하나인 Pipeline을 적용한다.


9201과 같은 경우는 최대 속도를 내기 위해서는 Pipeline을 이용해야 합니다. 하지만 9205는 이런경우가 잘 없기 때문에 이 글에서는 Conversion Time에 대한 내용을 중점적으로 설명드릴까 합니다. 차후 기회가 되면 pipeline에 대해서도 설명을 드리겠습니다.


9205의 모듈 프로퍼티에는 Minimum Conversion Time이라는 항목이 있습니다. 이 항목은 FPGA 코드에서 더 빠른 시간으로 샘플링을 하게끔 구현을 하여도 Minimum Conversion Time 이하로 수집이 되지 않습니다. 실행시 자신이 구현한 코드보다 Minimum Conversion Time의 우선순위가 더 높습니다.


따라서 위의 문제인 110k 정도의 샘플 속도가 나오지 않는 것은 Minimum Conversion Time이 자신이 원하는 샘플링 속도보다 더 느리게 설정이 되어 있기 때문입니다. 예를 하나 들어 보겠습니다.


자신이 32개 채널을 사용하고, Minimum Conversion Time을 20us로 설정을 한 경우, 32개 채널에 대한 데이터 수집이 완료되는 시간은 20us * 32 = 640us가 나옵니다. 이를 샘플링 속도로 변환을 하면 1000000u (1초) / 640 = 1562Hz가 나옵니다. 즉 속성에 설정된 값으로 샘플링을 하게 되면 최대 1562Hz로 데이터를 수집할 수 있는겁니다. 


하지만 코드의 타이머 VI를 이용하여  200u로 프로그래밍을 했다고 하면, 이는 샘플링 속도가 5000Hz가 나와야 합니다. 사용자는 5000의 속도를 원하지만 실질적으로 수집되는 최고 속도는 1562가 되는것입니다. 


이를 변경하기 위해서는 프로퍼티로 들어가서 Minimum Conversion Time을 더 낮은 속도로 변경해 줘야합니다. 20us일 때 1562Hz이므로 5000이상으로 Conversion 하기 위해서는 4us 정도로 설정을 하시면 될것 같습니다. 4us시 7810의 속도를 가지니깐 사용자가 원하는 속도로 데이터를 수집(5000Hz 속도로 수집)할 수 있습니다. 



Minimum Conversion Time을 변경하려면 어떻게 해야 할까요. LabVIEW 프로젝트 내의 FPGA 코드쪽을 보시면 9205가 잡혀있는것을 확인할 수 있습니다. 여기에서 오른쪽 마우스를 눌러 Property(속성)에 들어가시면 아래 그림과 같은 창을 볼수가 있습니다.


이 창에서 속도를 변경할 수 있습니다. 



Conversion Time(9205)에 대한 내용을 좀 더 알고 싶다면 아래의 링크를 참조해주시기 바랍니다.

http://zone.ni.com/reference/en-XX/help/370984R-01/criodevicehelp/conversion_timing/#examples


이 글이 도움이 되셨나요?

그렇다면 아래의 그림을 클릭해주세요.



댓글