NI-CAN 사용시 채널 API 및 프레임 API 선택

업데이트 됨 Apr 24, 2023

해당 제품

드라이버

  • NI-CAN

다른

CAN 장치

문의사항

CAN 통신에 사용할 두 가지 다른 API가 있음을 알았습니다. 응용 프로그램 개발에 어느 것을 사용해야합니까?

해결책

채널 API 사용 여부 또는 프레임 API 사용 여부는 응용 프로그램의 요구와 개인 취향에 따라 다릅니다. 채널 API는 사용하기 쉬운 간단한 물리적 단위로 CAN 네트워크에 대한 액세스를 제공하기 때문에 많은 사람들이 선호합니다. 이 API를 사용하는 경우 NI-CAN 소프트웨어는 CAN 메시지의 원시 데이터를 채널 설정에서 정의된 물리적 단위로 변환 합니다.(또는 그 반대로 원시데이터로 변환 합니다.) 그러나 프레임 API는 CAN 네트워크에 대한 Low-Level 액세스를 제공하기 때문에 채널 API 사용이 권장되는 특정 시나리오가 있습니다. 다음은 프레임 API를 사용하는 것이 더 좋은 몇 가지 예입니다.
  • NI-CAN 버전 1.6 또는 이전 버전으로 개발 된 어플리케이션을 사용하고 있습니다.
  • 장치에 명령 / 응답 프로토콜을 구현해야합니다. 여기서 장치에 명령을 쓰고 장치가 응답을 보냅니다.
  • 장치와 함께 원격 프레임을 사용해야합니다. 채널 API는이 기능을 지원하지 않습니다.
  • CAN 통신을 DAQ 카드의 데이터 수집과 동기화 중입니다. 프레임 API는 채널 API와 함께 제공되는 것보다 Low-Level의 RTSI 기능을 제공하므로 고급 동기화에 더 좋습니다.
  • NI USB-847x CAN 인터페이스 중 하나를 사용하고 있습니다. USB-CAN 제품은 채널 API 또는 CAN 객체를 지원하지 않습니다. 여전히 프레임 API를 사용할 수 있지만 USB-CAN에 사용 가능한 기능에는 일부 제한이 있습니다. 이러한 기능 목록은 아래 관련 링크 섹션을 참조하십시오.
프레임 API를 사용하여 메시지를 수신하면 부호없는 8 비트 문자 배열로 데이터를 수신합니다. 메시지 당 최대 8 바이트의 정보가 있으므로 많은 메시지에 여러 채널의 정보가 있습니다. 이를 통해 단일 CAN 프레임에 정보가 여러 조각이 있을 수 있습니다. 채널 API를 사용하면 메시지에서 각 채널을 자동으로 구문 분석하고 필요에 따라 해당 채널을 확장 할 수 있습니다.



이 프레임 API 이미지는 8 바이트의 정보를 보여줍니다. 어떤 바이트가 쌍을 이루 었는지, 어떤 순서로 바이트가 들어가야하는지 또는 스케일링 정보가 표시되지 않습니다. MAX에서 CAN 채널을 구성 할 때이 모든 정보를 입력하여 사용자가 원하는 형식으로 데이터를 자동으로 포맷 할 수 있습니다.

LabVIEW에서 채널 API를 사용하는 경우, Data3 의 값을 읽도록 지정해야하며 읽기는 스케일 된 마지막 12 비트의 값을 자동으로 반환합니다.

추가 정보

동일한 CAN 인터페이스에서 채널 API와 프레임 API를 동시에 사용할 수 없습니다. 한 응용 프로그램이 CAN0에서 프레임 API를 사용하여 실행중인 경우 CAN0에서도 채널 API를 사용하여 다른 응용 프로그램을 실행할 수 없습니다. 2 포트 CAN 카드가있는 경우 다른 인터페이스에서 별도의 응용 프로그램을 사용하거나 다른 시간에 응용 프로그램을 실행 할 수 있습니다.