NI-XNET의 CAN, LIN, FlexRay 인터페이스 시리즈는 가속 CAN, LIN, FlexRay 인터페이스와 NI-XNET 드라이버 소프트웨어를 결합한 것입니다. NI-XNET 인터페이스는 시리즈 2 PCI/PXI/PCMCIA 인터페이스와 같은 레거시 NI-CAN 제품에 비해 성능, 사용 편의성 및 장기적 지원 면에서의 이점이 있습니다.
NI는 NI-XNET CAN, LIN, FlexRay 인터페이스에서 차세대 성능과 사용 편의성을 제공하기 위해 NI-XNET 제품을 위한 새로운 API를 개발했습니다. NI는 이전 NI-CAN API로 작성된 어플리케이션이 이미 많이 설치되어 있다는 점을 알고 있으며, 이러한 어플리케이션을 장기적으로 유지보수할 필요성이 있다는 점도 인식하고 있습니다.
NI-CAN용으로 작성된 어플리케이션을 NI-XNET으로 전환하고 NI-XNET 인터페이스의 새로운 기능을 이용하도록 돕기 위해, NI-XNET 드라이버에는 드라이버 레벨에서 NI-CAN 함수 호출을 에뮬레이션하는 NI-CAN 호환성 계층이 포함됩니다. 이 기능은 드라이버 레벨에 설치되므로, NI-CAN로 작성된 대부분의 어플리케이션은 최소한의 변경만으로 NI-XNET을 사용할 수 있습니다. 두 드라이버 사이에는 NI-XNET 인터페이스로 작업을 하려면 알아 두어야 할 몇 가지 중요한 차이점이 있습니다.
이 문서는 NI-CAN 호환성 라이브러리를 사용하여 새 NI-XNET 하드웨어로 NI-CAN 어플리케이션을 구현하는 방법에 대해 설명합니다. 또한, 잠재적인 호환성 문제와 익숙한 NI-CAN 개념을 NI-XNET API로 전환하는 방법을 살펴봅니다.
NI-CAN 채널 API의 기본에 대한 더 자세한 정보는 NI-CAN 채널 API를 참조하십시오.
NI-XNET을 사용하여 새 어플리케이션을 작성하는 데는 호환성 레이어가 필요하지 않습니다. 기존 NI-CAN 어플리케이션을 NI-XNET 디바이스와 함께 사용하려는 경우에만 필요합니다.
호환성 라이브러리는 CAN 및 LIN 인터페이스 디바이스 및 모듈을 지원합니다. 트랜시버 케이블이 필요한 PCIe-8510, PXIe-8510, NI 9860과 같은 차량 멀티프로토콜 인터페이스 디바이스 및 모듈을 지원하지 않습니다. NI-CAN 기반 모듈이 없으므로 C 시리즈 LIN 모듈도 지원하지 않습니다.
기존 어플리케이션이 작동하려면 NI-XNET과 NI-CAN 드라이버를 모두 설치해야 합니다. NI-XNET 설치 패키지에는 호환성 라이브러리가 동작하기 위해 필요한 모든 구성요소가 포함되어 있습니다. 자세한 설명은 NI-CAN용 NI-XNET 호환성 라이브러리 설치하기를 참조하십시오.
일반적으로 NI-CAN API는 시리즈 2 CAN 인터페이스를 포함한 레거시 CAN 하드웨어와 연관되어 있습니다. NI-XNET은 차세대 NI-XNET CAN, LIN 및 FlexRay 인터페이스를 위한 주요 드라이버입니다. NI-XNET 인터페이스를 위한 새로운 어플리케이션은 NI-XNET 드라이버와 API를 사용합니다.
NI-CAN을 사용하는 기존 어플리케이션이 있는 경우, NI는 해당 코드를 새로운 NI-XNET CAN C 시리즈, PCI 및 PXI 인터페이스와 함께 재사용할 수 있도록 지원하는 호환성 라이브러리를 제공합니다. 호환성 라이브러리의 기능은 NI-XNET이 아닌 NI-CAN API에 적용됩니다. 호환성 라이브러리 기능에 대한 더 자세한 정보는 NI-CAN 하드웨어 및 소프트웨어 매뉴얼을 참조하십시오.
기존 어플리케이션이 NI-CAN을 사용하고 지금부터 NI-XNET CAN C 시리즈, PCI 및 PXI 하드웨어만 사용하려는 경우, 코드를 NI-XNET로 전환하는 것이 좋습니다. NI-XNET은 이전 NI-CAN API의 여러 개념을 통합하지만, 주요 기능은 비슷합니다. 다음 테이블에서는 NI-CAN 용어와 유사한 NI-XNET 용어를 상호 참조합니다.
참고: 더 자세한 정보는 USB-8472/73/76 CAN 인터페이스의 마이그레이션 옵션을 참조하십시오.
NI-CAN 용어 | NI-XNET 용어 | 주석 |
---|---|---|
CANdb 파일 | 데이터베이스 | NI-XNET은 NI-CAN 채널 API, FIBEX, .DBC, .NCD보다 더 많은 데이터베이스 파일 포맷을 지원합니다. |
메시지 | 프레임 | "프레임"은 버스에서 전송되는 비트를 가리키는 산업 용어입니다. 이 용어는 CAN 및 FlexRay와 같은 표준에서 사용됩니다. |
채널 | 신호 | "신호"는 FIBEX와 같은 표준에서 사용되는 산업 용어입니다. |
채널 API 태스크 | 세션 (신호 I/O) | NI-CAN과는 달리, NI-XNET은 채널 (신호) I/O와 프레임 I/O를 동시에 사용할 수 있도록 지원합니다. |
프레임 API CAN 객체 (큐 길이 0) | 세션 (프레임 I/O 단일 포인트) | NI-CAN CAN 객체는 하나의 객체에서 입력 (읽기)과 출력 (쓰기)을 모두 제공했습니다. 더 나은 제어를 위해 NI-XNET은 각 방향에 대해 다른 객체를 제공합니다. 한 방향의 NI-CAN 큐 길이가 0이면, 이는 NI-XNET 프레임 I/O 단일 포인트와 동일합니다. |
프레임 API CAN 객체 (큐 길이 0 아님) | 세션 (프레임 I/O 큐) | 한 방향에 대한 NI-CAN 큐 길이가 0이 아닌 경우, 이는 NI-XNET 프레임 I/O 큐와 동일합니다. |
프레임 API 네트워크 인터페이스 객체 | 세션 (프레임 I/O 스트림) | NI-CAN 네트워크 인터페이스 객체는 하나의 객체에서 입력 (읽기)과 출력 (쓰기)을 모두 제공했습니다. 더 나은 제어를 위해 NI-XNET은 각 방향에 대해 다른 객체를 제공합니다. |
인터페이스* | 인터페이스 | NI-CAN의 인터페이스 이름은 CAN0부터 시작하지만, NI-XNET은 CAN1 (또는 FlexRay1)부터 시작합니다. |
주기적 | 순환적 | NI-CAN은 "주기적"이라는 용어를 사용하지만, NI-XNET 데이터베이스 편집기와 NI-XNET 프로퍼티 노드는 "순환적"이라는 용어를 사용합니다. |
표 1. NI-CAN 용어와 유사한 NI-XNET 용어
다음 그림은 NI-XNET과 NI-CAN의 번호 매기기 방식의 차이를 보여줍니다. 상단의 "CAN0"은 PCI-8513 보드의 첫 번째 포트를 사용하는 NI-CAN 포트 이름입니다. 같은 포트는 NI-XNET API에서는 CAN1로 사용할 수 있습니다. NI-CAN 포트의 이름을 NI-XNET 포트와 같도록 변경할 수 있습니다. 이렇게 해도 문제가 발생하지는 않습니다.
그림 1. NI-XNET과 NI-CAN의 번호 매기기 방식 차이
참고: NI-CAN 호환성 레이어가 설치된 경우, NI-XNET 인터페이스가 NI Measurement & Automation Explorer (MAX)에서 두 번 나타납니다. 이는 두 드라이버 모두 보드의 존재를 MAX에 보고하기 때문으로, 정상입니다. 하나는 NI-CAN 드라이브용, 다른 하나는 NI-XNET용입니다.
다음 그림은 리얼타임 (RT) 타겟을 사용하는 경우의 유사한 상황을 보여줍니다. NI-XNET 디바이스는 MAX의 RT 타겟 아래에 표시되지만, NI-CAN이 호환성 계층을 통해 사용하는 NI-XNET 디바이스는 NI-CAN RT 하드웨어 설정 도구 아래에만 나타납니다. NI-XNET에서는 CAN1이 NI-CAN의 CAN0과 같은 포트라는 것을 알 수 있습니다.
그림 2. NI-XNET 및 호환성 레이어를 사용하는 CAN 인터페이스는 다르게 표시됩니다.
NI-CAN RT 하드웨어 설정 윈도우를 열려면, MAX를 시작하고 Tools(도구) » NI-CAN » RT Hardware Configuration(RT 하드웨어 설정)을 선택한 후 RT 타겟의 IP 주소를 입력합니다.
NI-CAN용 NI-XNET 호환성 라이브러리는 기본 기능을 보장하기 위해 노력하지만, NI-XNET 플랫폼의 하드웨어 특정 기능이나 핵심적인 차이 때문에 NI-CAN에서 NI-XNET로 라이브러리를 완벽하게 매핑할 수는 없습니다.
다음은 호환되지 않는 주요 함수와 해결 방법을 보여줍니다. 보다 완전한 목록은 2.7 또는 이후 버전을 위한 NI-CAN 하드웨어 및 소프트웨어 매뉴얼을 참조하십시오.
이 기능은 NI-XNET 하드웨어에서 사용할 수 있지만, 새로운 아키텍처에서는 호환성을 유지하는 방법을 제공하지 않습니다. 어플리케이션에 이 기능이 필요한 경우, NI-XNET API를 사용하려면 코드를 업그레이드해야 합니다. NI-XNET API로 원격 프레임을 처리하는 방법에 대한 더 자세한 정보는 NI-XNET 하드웨어 및 소프트웨어 매뉴얼을 참조하십시오.
이 기능은 일부 NI-XNET 하드웨어에서 사용할 수 있습니다. PCI-8513 및 PXI-8513 모델은 외부 트랜시버 옵션이 있는 XNET 하드웨어입니다.
NI-XNET 인터페이스는 클럭 입력 주파수를 자동으로 감지하고 사용자의 파라미터 없이 동기화합니다. 이 프로세스는 자동으로 이루어지므로, 더 이상 마스터 타임베이스 속도를 변경할 수 없습니다. NI-XNET 인터페이스는 마스터 타임베이스를 명시적으로 변경하지 않고도 여러 클럭 속도를 통한 동기화 (1MHz, 10MHz, 20MHz)를 지원합니다. 또한, 1MHz 및 10MHz 속도로 반출할 수도 있습니다.
NI-XNET은 버스 에러를 기록하는 새로운 방법을 제공합니다. 버스 상태 인코딩으로 CAN 프레임을 기록하는 대신, 이제 버스 상태를 읽을 수 있습니다.
그림 3. 이제 버스 상태를 관찰하여 버스 에러를 볼 수 있습니다.
이 기능은 NI-XNET API에 고유하며, NI-CAN과의 호환되지 않습니다.
이제 NI-XNET은 절대 타임스탬프 포맷만을 사용합니다. 그러나 특정 이벤트의 타임스탬프를 얻는 함수를 사용할 수 있습니다. 이러한 타임스탬프를 사용하면 다른 포맷으로 데이터를 다시 수집하지 않고도 여러 참조에서 "상대" 시간을 계산할 수 있습니다.
그림 4. NI-XNET은 절대 타임스탬프를 사용하지만, 여전히 상대 타임스탬프를 얻는 방법이 있습니다.
이 기능이 필요한 경우, NI-XNET API를 사용하려면 코드를 변경해야 합니다.
이 기능은 NI-XNET 1.0에는 없었지만, NI-XNET 1.1에서 도입되었습니다. 이 기능의 이름은 "CAN 재생"입니다.
그림 5. CAN 재생은 프레임 출력 스트림으로 설정할 수 있습니다.
NI-XNET에는 타임베이스와 시작 트리거를 동기화하는 RTSI 기능이 있습니다. 그러나 RTSI 펄스에서 이벤트를 설정 (즉 CAN 프레임을 전송)할 수는 없습니다. 또한, CAN 이벤트를 기반으로 RTSI 이벤트를 설정할 수는 없습니다.
다양한 이유 때문에 NI-XNET API를 사용하도록 어플리케이션을 수정해야 할 수 있습니다. 다음 섹션에서는 NI-XNET API를 사용하도록 NI-CAN 코드를 변경하는 방법에 대해 설명합니다.
다음 정보는 NI-CAN에서 NI-XNET으로 익숙한 개념을 변환하는 데 도움이 되는데, 이 정보로 코드를 전환할 수 있습니다. 가능한 모든 어플리케이션을 다루지는 않습니다. 코드의 일부분을 변환하는 데 도움이 필요한 경우, NI에 문의하십시오.
NI-CAN 인터페이스를 열려면 먼저 설정부터 해야 합니다. NI-XNET에서는 우선 인터페이스에서 세션을 생성한 후, 프로퍼티 노드를 사용하여 세션의 프로퍼티를 변경할 수 있습니다. 이 모델은 NI-DAQmx를 포함한 다른 여러 NI API에서 사용되는 것과 동일한 모델입니다.
그림 6. NI-XNET에서 버스 프로퍼티를 설정하는 방법은 NI-CAN에서 설정하는 방법과 다릅니다.
프레임 읽기는 NI-CAN과 NI-XNET에서 비슷합니다.
그림 7. 두 API에서 프레임을 읽는 데 필요한 코드는 매우 비슷합니다.
향상된 성능과 새로운 NI 디바이스를 활용한 DMA 엔진 아키텍처 덕분에 NI-XNET 디바이스를 쿼리하지 않아도 사용 가능한 프레임의 개수를 확인할 수 있습니다. NI-CAN에서는 이것이 성능상의 이유로 필요했습니다. 이 기능은 NI-XNET에서도 여전히 있지만, 사용 가능한 모든 프레임을 읽는 데 이 기능을 사용할 필요가 없습니다. (nxRead 함수에 -1을 입력하면 사용 가능한 모든 프레임이 반환됩니다.)
그림 8. NI-XNET을 사용하면 몇 개의 프레임을 사용할 수 있는지 더 쉽게 쿼리할 수 있습니다.
프레임 포맷은 NI-CAN과 NI-XNET에서 비슷한 정보를 제공하지만, 약간 다른 방식으로 표시됩니다.
그림 9. NI-CAN 및 NI-XNET의 각 클러스터에는 유사한 프레임 데이터가 포함됩니다.
NI-XNET의 nxWrite (Frame CAN).vi는 프레임의 배열을 입력으로 사용합니다. 그러므로 단일 프레임을 보내려면 한 개의 프레임으로 구성된 배열을 생성해야 합니다.
그림 10. NI-XNET에서 프레임 데이터를 보내려면 데이터 배열을 입력으로 사용해야 합니다.
NI-XNET은 배열 길이를 사용하여 몇 개의 프레임을 쓸지 알 수 있습니다.
그림 11. NI-CAN과 NI-XNET에는 유사한 프레임 전송 함수가 있습니다.
NI-CAN에서 프레임 API로 주기적인 프레임을 작성하려면 각 프레임에 대해 보내거나 수신할 객체를 설정해야 합니다. NI 시리즈 2 CAN 인터페이스의 객체 수 제한은 49개입니다.
그림 12. NI-CAN에서 주기적 프레임을 보내려면 별도의 함수 호출로 각 객체를 설정해야 합니다.
NI-XNET에서 개별 주기적 프레임을 설정하는 것은 약간 다릅니다. NI-XNET을 신호 및 프레임 데이터베이스의 긴밀한 통합 덕분에, NI-XNET에서 주기적 프레임을 활용하는 가장 쉬운 방법은 FIBEX 데이터베이스 파일을 사용하여 네트워크가 사용하는 프레임을 설명하는 것입니다. FIBEX 데이터베이스를 사용할 때, NI-XNET 드라이버는 어플리케이션에서 추가적인 상호 작용 없이 자동으로 주기적 프레임을 설정하고 처리합니다.
예를 들어, 중재 ID, 페이로드 길이, 주기를 사용하여 데이터베이스에서 주기적 (NI-XNET에서는 “순환적") 프레임을 설정해 보십시오. 설정하고 저장한 후, 어플리케이션은 단일 포인트 세션을 사용하여 이 프레임을 전송하거나 수신할 수 있습니다. I/O 컨트롤은 데이터베이스에서 모든 프레임을 동적으로 로드하므로 어플리케이션에서 프레임을 쉽게 선택할 수 있습니다. 이 기능이 작동하려면 NI-XNET에 어떤 데이터베이스를 사용할지 알려주는 별칭을 설정해야 합니다. 이는 다음 섹션에서 설명합니다.
그림 13. NI-XNET에서 주기적 프레임 전송을 크게 단순화할 수 있습니다.
세션을 열 때, NI-XNET 드라이버는 데이터베이스에서 모든 셋팅을 읽습니다. 그런 다음 드라이버와 NI-XNET 펌웨어에서 순환적인 전송 및/또는 수신을 설정합니다. 어플리케이션에서는 단순히 값을 업데이트하고, NI-XNET은 다음 사이클에 자동으로 가장 최신 값을 전송합니다. NI-XNET은 또한 여러 값을 큐에 추가하는 데 사용할 수 있는 큐 세션을 제공합니다.
신호 데이터베이스 사용의 주요 장점은 코드 유지보수성입니다. 데이터베이스를 업데이트하면 자동으로 코드가 업데이트되며, 중재 ID, 전송 속도, 비트 정의 등의 변경을 추적하기 위해 코드를 변경할 필요가 없습니다. 파라미터를 변경하려면 데이터베이스 파일을 변경하면 됩니다. 코드는 변경할 필요가 없습니다.
NI-XNET은 데이터베이스 파일에서 로드된 값을 프로그램적으로 변경하는 함수를 제공합니다. 이렇게 하면 데이터베이스 파일에 기록된 실제 값은 변경되지 않습니다. 런타임에 NI-XNET 드라이버가 로드한 값만 변경됩니다.
그림 14. 하위 레벨 함수를 사용하여 NI-XNET에서 주기적인 프레임 보내기를 설정할 수 있습니다.
데이터베이스 파일은 원하지 않고 런타임에 모든 것을 설정하려는 경우, "메모리 내" 데이터베이스를 만들 수도 있습니다. 이렇게 하면 전체 네트워크 설정을 프로그램적으로 개발하고 어플리케이션에서 사용할 수 있습니다. Hardware Input and Output(하드웨어 입출력)»CAN»NI-XNET»Databases (Editing and Managing)(데이터베이스 (편집 및 관리)) 아래의 Help(도움말)»Find Examples(예제 찾기)에서 CAN Dynamic Database Creation.vi 예제를 살펴보십시오.
많은 NI-CAN 프레임 API 예제에는 유사한 NI-XNET 예제가 있습니다.
데이터베이스 파일을 편집하려면 두 가지 주요 기술 중 하나를 선택할 수 있습니다. 바로 런타임 이전 또는 도중에 편집할 수 있습니다. NI-CAN에서 실행하기 전에 데이터베이스 파일을 편집하려면 MAX에 데이터베이스 편집기가 필요합니다. NI-XNET은 모든 데이터베이스 편집을 독립형 데이터베이스 편집기로 옮깁니다. 데이터베이스 편집기는 Start(시작)»All Programs(모든 프로그램)»National Instruments»NI-XNET Database Editor(NI-XNET 데이터베이스 편집기)에서 시작할 수 있습니다.
그림 15. NI-XNET 데이터베이스 편집기는 CAN 데이터베이스를 편집하는 독립형 도구입니다.
NI-XNET 데이터베이스 편집기에 대한 자세한 정보는 FIBEX 및 NI-XNET 데이터베이스 편집기 소개 기술 백서를 참조하십시오.
NI-XNET에는 FIBEX 데이터베이스 파일을 프로그램적으로 편집하는 함수가 있습니다. 이 함수를 사용하면 어플리케이션에서 사용자 정의 데이터베이스 조작 도구를 빌드할 수 있습니다. Help(도움말)»Find Examples(예제 찾기)로 간 뒤 Hardware Input and Output(하드웨어 입출력)»CAN»NI-XNET»Databases (Editing and Managing)(데이터베이스 (편집과 관리))로 이동해 NI LabVIEW 소프트웨어 배포 예제를 살펴보십시오.
NI-CAN에서는 어플리케이션이 하드 드라이브의 .DBC 또는 .NCL 파일을 사용하도록 해야 합니다. NI-XNET에서는 어플리케이션을 실행하기 전에 우선 데이터베이스 파일 (.DBC, .NCL, 또는 FIBEX .xml)에 대한 별칭을 추가해야 합니다. 그 방법은 여러 가지가 있습니다. Hardware Input and Output(하드웨어 입출력)»CAN»NI-XNET»Intro to Sessions(세션 소개)»Signal Sessions(신호 세션)에 있는 CAN Signal Input Single Point.vi 예제를 열어 보십시오. 신호 목록에서 마우스 오른쪽 버튼을 클릭한 후 Browse for Database File(데이터베이스 파일 탐색)로 이동하여 디스크에서 데이터베이스 파일을 선택합니다. NI-XNET 드라이버가 자동으로 이 데이터베이스의 별칭을 생성하므로 쉽게 다시 선택할 수 있습니다.
그림 16. NI-XNET에서 데이터베이스를 선택하면 어플리케이션에서 데이터베이스를 참조할 수 있습니다.
그런 다음, NI-XNET I/O 컨트롤은 데이터베이스 파일을 자동으로 읽고 모든 신호 이름을 채워 넣습니다. 이렇게 하면 어플리케이션에서 어떤 신호를 사용할지 매우 쉽게 선택할 수 있습니다.
그림 17. 컨트롤은 데이터베이스에서 사용 가능한 신호로 자동으로 업데이트됩니다.
다음 이미지는 NI-CAN과 NI-XNET 단일 포인트 채널/신호 쓰기의 블록다이어그램을 비교합니다. 읽기는 유사하며 두 드라이버 모두 예제를 제공합니다.
그림 18. 단일 포인트 데이터 전송은 NI-CAN과 NI-XNET에서 유사합니다.
웨이브폼 데이터 읽기와 쓰기도 NI-CAN과 NI-XNET에서 비슷하며, 각 드라이버에는 비교를 위한 예제가 있습니다.
그림 19. 웨이브폼 읽기와 쓰기는 두 API에서 모두 유사합니다.
한 가지 차이점은 NI-XNET의 기본 샘플 속도가 1,000이라는 것입니다. 프로퍼티 노드를 사용하면 샘플 속도를 쉽게 변경할 수 있습니다.
그림 20. 웨이브폼의 리샘플링 속도는 프로퍼티를 사용해 설정할 수 있습니다.
NI-CAN 모드 | NI-CAN 샘플 속도 | NI-XNET 모드 | 노트 |
---|---|---|---|
입력 | 0 | 신호 입력, 단일 포인트 | 없음 (추가 프로퍼티 없음) |
입력 | >0 | 신호 입력, 웨이브폼 | NI-CAN 샘플 속도를 사용하여 세션 > 리샘플 속도 프로퍼티를 설정합니다. |
출력 | 0 | 신호 출력, XY | 각 프레임에 대해 NI-XNET 데이터베이스 API를 사용하여 CAN > Timing Type(타이밍 타입)을 Event Data(이벤트 데이터)로 설정하고 CAN > Transmit Time(전송 시간)을 0 (디바운스 없음)으로 설정합니다. |
출력 | >0 | 신호 출력, 웨이브폼 | 각 프레임에 대해, NI-XNET 데이터베이스 API를 사용하여 CAN > Timing Type(타이밍 타입)을 Cyclic Data(순환적 데이터)로 설정하고 CAN > Transmit Time(전송 시간)을 NI-CAN 1/SampleRate(NI-CAN 1/샘플 속도)로 설정합니다. |
출력/최근 | >0 | 신호 출력, 단일 포인트 | 각 프레임에 대해, NI-XNET 데이터베이스 API를 사용하여 CAN > Timing Type(타이밍 타입)을 Cyclic Data(순환적 데이터)로 설정하고 CAN > Transmit Time(전송 시간)을 NI-CAN 1/Sample Rate(NI-CAN 1/샘플 속도)로 설정합니다. |
Timestampedinput | 해당 없음 | 신호 입력, XY | 없음 (추가 프로퍼티 없음) |
테이블 2. 이 테이블은 CAN 통신에서 NI-CAN과 NI-XNET 샘플 속도의 근본적인 차이를 보여줍니다.
NI-CAN에서는 디스크에서 직접 데이터베이스를 사용할 수 있습니다. NI-XNET에서는 어플리케이션에서 NI-XNET I/O 컨트롤을 사용할 수 있도록 일반적으로 해당 파일에 대한 별칭을 직접 생성합니다. 그러나 어플리케이션을 배포하거나 NI-CAN 동작을 에뮬레이션하려는 경우, 디스크에 있는 파일의 데이터베이스 별칭을 프로그램적으로 생성할 수 있습니다. 그렇게 하려면 Hardware Input and Output(하드웨어 입출력)»CAN»NI-XNET»Databases (Editing and Managing)(데이터베이스 (편집 및 관리))에 있는 Managing Local Databases.vi 예제를 살펴보십시오.
NI-CAN용 NI-XNET 호환성 레이어는 NI-CAN 코드의 전환을 대폭 단순화하여 차세대 NI-XNET CAN 및 FlexRay 인터페이스를 활용합니다. 약간의 차이는 있지만, NI-CAN 어플리케이션은 대부분 호환성 레어어와 함께 사용하면 NI-XNET 하드웨어에서 거의 또는 전혀 수정하지 않고 사용할 수 있습니다.