티스토리 뷰

NI-CAN 드라이버를 사용하는 Legacy CAN 보드를 이용할 때 하나의 보드에 있는 2개의 포트를 동시에 이용하게 되면 송수신 Rate가 Drop되는 경우를 보게 됩니다. 


PCI-CAN/XS Series 2를 통해서 하나의 Port를 통해서 메시지를 송수신 하면 아래와 같은 결과를 얻을 수 있습니다. 544, 688과 같은 메시지는 10초에 Periodical 하게 전송이 되고 있습니다. 이를 통해서 메시지 송수신이 문제가 없다고 파악할 수 있죠.



하지만 두개의 Port를 동시에 써서 측정을 하게 되면 아래와 같은 결과를 가집니다. 속도가 1/2로 줄어버리는 현상입니다. 



과연 무엇이 잘못된것 일까요? 보드의 잘못일까요? 프로그램이 잘못된 것일까요? 이는 정상적인 현상입니다. 그 이유는 NI-CAN 보드의 특성 때문입니다. 


NI-CAN의 경우 2개의 Port를 같이 쓰면 Port간의 분리가 되어 있지 않기 때문에 Resource를 공유하게 되고, 이로 인해 Rate Drop이 발생할 수 있다고 합니다. 하지만 NI-XNET은 2개의 Port가 분리되어 있어 이러한 현상이 발생하지 않는다고 합니다. 


기술적으로 설명을 드리면 NI-CAN 하드웨어는 Intel 386EX 임베디드 프로세서를 사용하고 있는데, 이 프로세서가 2개의 포트에서 공통적으로 공유하여 사용하고 있게 때문에 두개의 Port를 동시에 사용하게 되면 Timing 부분에 대한 제한이 발생할 수 있다고 합니다. 하지만 NI-XNET의 경우 FPGA를 이용하기 때문에 디바이스 내부에 완벽히 구분된 2개의 프로세서로 구현되어 있고, 이로 인해 Resource 공유의 문제 없이 Timing에 대한 제한없이 사용할 수 있다고 합니다. 


타이밍에 대한 문제가 발생한다면, Legacy 보드는 NI-CAN 보드가 아닌 NI-XNET 기반의 최신 보드를 사용하시기 바랍니다.


이 글이 도움이 되셨나요?

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



댓글