NI 재구성 가능한 I/O (RIO) 제품은 유연한 개발 플랫폼에서 고정밀 측정과 고속 폐루프 컨트롤이 필요한 시스템 레벨의 어플리케이션에 사용됩니다. 이같은 어플리케이션의 경우, 핵심 시스템이 제공하는 이상의 채널 수 또는 보다 분산된 아키텍처가 필요한 경우가 있습니다. 확장 I/O 시스템은 하나의 컨트롤러와 “N”개의 Field-Programmable Gate Array (FPGA) 및 I/O 노드로 1-to-N 시스템 토폴로지를 완성함으로써 분산 컨트롤과 현지화된 처리를 수행하는 유연한 다채널 시스템을 구현합니다.
다채널 시스템에 대한 요구는 다양하며, NI의 확장 I/O 플랫폼은 이같은 다양한 시스템 요구를 만족하는 다양한 제품을 제공합니다. 확장 I/O 옵션의 주요 차이점은 그림 1과 같이 프로세서에서 I/O를 분리하는 버스입니다. 각 버스는 확장 I/O 어플리케이션의 서브셋에 이상적인 고유한 이점과 장점을 제공합니다.
그림 1: 확장 I/O는 I/O로부터 프로세서를 분리합니다. 각 확장 옵션은 둘 사이에 각기 다른 통신 버스를 구현하며 여러 다양한 어플리케이션 영역에 적합합니다.
각 확장 I/O 옵션은 시스템 고유의 특징을 나타내는 고유한 통신 버스 (이더넷, EtherCAT 또는 MXI)에 기반합니다. 표 1은 각 확장 I/O 옵션간 주요 차이를 설명합니다.
견고한 4 또는 8슬롯 이더넷 RIO 섀시를 사용하여 분산된 FPGA 활성화된 I/O를 모든 이더넷 네트워크에 추가할 수 있습니다. 표준 CAT-5 케이블링의 유연성을 통해, 이더넷 RIO 시스템을 이더넷을 지원하는 거의 모든 호스트 (NI CompactRIO, 리얼타임 PXI 컨트롤러, NI 산업용 컨트롤러 등)에 연결할 수 있습니다. 또한 이더넷 RIO 확장 시스템을 Windows 기반 PC에 연결하여 FPGA 활성화된 혼합 신호 컨디셔닝 I/O의 고도로 분산된 유연한 네트워크를 생성할 수 있습니다. 온보드 FPGA로, 사용자 정의 신호 분석, 컨트롤 및 안전용 인터록을 실행하여 완벽한 모듈형 시스템을 구축할 수 있습니다. 이더넷 RIO 기반 시스템은 사용 용이성, 비용 및 유연성이 주로 필요한 어플리케이션에 이상적입니다. 이같은 어플리케이션으로는 온도 및 흐름과 같은 단일 포인트 측정을 위한 분산 모니터링이 있습니다.
EtherCAT (Ethernet Control Automation Technology) RIO는 결정성있는 EtherCAT 프로토콜로 이더넷에서 통신을 실행하는 8슬롯 슬레이브 섀시입니다. EtherCAT RIO를 사용하면 FPGA 활성화된 I/O를 다채널 또는 분산 I/O 시스템에 추가할 수 있으며, 이때 정의된 수준의 결정성과 동기화도 유지됩니다. EtherCAT RIO를 사용하면 단일 마스터에서 여러 슬레이브 디바이스를 데이지 체인에 연결할 수 있으며, 단일 마스터 클럭에 대해 I/O를 동기화할 수 있습니다. EtherCAT RIO는 동기화된 여러 섀시에서 강한 결정성이 요구되는 분산형 단일 포인트 컨트롤 및 모션 어플리케이션에 적합합니다. EtherCAT RIO 고객들은 풍력 터빈 구조 모니터링, 동기화된 테스트 굴착 장치, 장거리 컨트롤 어플리케이션에 EtherCAT RIO를 사용합니다.
NI는 MXI-Express RIO 확장 섀시를 더 이상 제공하지 않습니다. 대신 EtherCAT 또는 이더넷 RIO 확장 섀시를 사용하는 것이 좋습니다. 표 1을 사용하여 비교해 어떤 마이그레이션 경로가 가장 적합한지 결정하십시오.
Ethernet RIO, EtherCAT RIO 및 MXI-Express RIO 시스템은 C 시리즈 I/O 모듈을 통해 모든 버스에서 모든 센서로 연결됩니다. 인라인 신호 처리, 사용자 정의 타이밍, 특수 트리거링, 폐루프 컨트롤을 구현할 수 있는 FPGA에서 I/O를 직접 사용할 수 있습니다. 각 C 시리즈 I/O 모듈에는 내장된 신호 컨디셔닝 및 나사 터미널, BNC 또는 D-SUB 커넥터가 있습니다. 현재, 열전쌍, 전압, RTD, 전류, 저항, 스트레인, 디지털(TTL 및 기타), 가속도계, 마이크 등과 같은 다양한 측정을 위한 100개 이상의 NI 및 타사 C 시리즈 모듈이 있습니다. 개별 모듈의 채널 수는 다양한 시스템 요구조건을 만족하기 위해 3~32개 채널까지 다양합니다.
FPGA 칩이 전 산업 분야에 걸쳐 채택되고 있는 이유는 FPGA가 ASIC (어플리케이션 고유 통합 회로) 및 프로세서 기반 시스템의 우수한 부분을 통합하기 때문입니다. FPGA는 하드웨어 타이밍에 의한 속도와 안정성을 제공하며, 맞춤 ASIC 디자인의 막대한 선행 비용에 필적한 만큼의 많이 양이 필요하지 않습니다.
또한 재프로그램가능한 실리콘은 프로세서 기반 시스템에서 실행하는 소프트웨어의 유연성을 갖추며, 사용 가능한 프로세싱 코어 개수에 의해 제한받지 않습니다. FPGA는 프로세서와 달리 본질적으로 병렬의 특성을 지니므로, 다른 프로세싱 작업이 동일한 리소스를 두고 쟁탈할 필요가 없습니다. 각 독립 프로세싱 태스크는 칩의 전용 부분에 배정되며, 다른 로직 블록의 영향 없이 독자적으로 기능을 수행합니다. 결과적으로, 어플리케이션의 한 부분의 성능이 더 많은 프로세싱을 추가할 때 영향받지 않습니다.
EtherCAT 네트워크의 이론상의 디바이스 제한은 65,535개의 슬레이브이며, Fast Ethernet (100 Mbit/s) 한계 또한 유사한 수준으로 높습니다. 본 시스템의 디바이스 최대 개수에 대한 실질적인 제한 요소로는 배포하는 I/O 채널 개수, 컨트롤러 속도, 실행하는 어플리케이션이 있습니다.
참고로, 데이지 체인의 모든 섀시는 시스템을 설정하거나 총 처리량 조건을 계산할 때 호스트 컨트롤러에 대해 동일한 "파이프" 또는 대역폭을 공유합니다. 또한, 각 섀시 및 케이블에 의해 시스템에 지연이 추가되기 때문에 루프 속도는 디바이스 개수와 버스 데이터에 의해 영향을 받습니다.
MXI-Express RIO에서 스타 또는 데이지 체인 구성을 사용할 수 있습니다. 사용할 수 있는 섀시 개수는 시스템에 따라 다르지만, 일반적으로 데이지 체인 당 최대 6개 섀시까지 가능합니다. 스타 구성에서 전체 섀시는 호스트 컨트롤러에서 사용 가능한 PCI 버스 세그먼트에 따라 달라지며, 단일 컨트롤러에서 40개 이상의 섀시를 사용할 수 있습니다.
MXI-Express RIO는 버스에서 섀시 간 거리가 7 m로 제한됩니다. 이더넷 RIO 및 EtherCAT 슬레이브 섀시는 최고 100 m까지 디바이스간 허브, 스위치 또는 리피터가 필요하지 않습니다.
참고: EtherCAT 네트워크의 범위를 확대하기 위해, 반드시 EtherCAT 호환 디바이스를 사용해야 합니다. 일반 이더넷 스위치는 EtherCAT 네트워크와 호환하지 않습니다.
타이밍 및 동기화를 통해 시간 내에 이벤트가 상호연계되거나 조정됩니다. 이는 특히 어플리케이션이 더욱 많은 채널 수로 확장됨에 따라 여러 컨트롤 및 측정 어플리케이션에 있어 매우 중요합니다.
EtherCAT 버스 통신 표준이 네트워크의 모든 디바이스가 참조하는 마스터 시스템 클럭을 정의하므로, EtherCAT RIO는 시스템의 다른 부분과 자동 동기화됩니다. 이같은 이유로 EtherCAT 버스는 긴밀한 동기화 (1마이크로초 이하)와 강한 결정성이 요구되는 시스템에 가장 적합한 선택입니다.
MXI-Express RIO 및 이더넷 RIO 섀시는 통신 버스(MXI-Express 및 고속 이더넷 각각)에서 원시 동기화를 지원하지 않습니다. 클럭 공유는 버스 아키텍처에 내장되어 있지 않고, 누락된 패킷이나 네트워크 토폴로지로 인한 충돌에 의해 발생되는 지연은 설명되지 않습니다(시스템의 노드간 통신은 비동기식). 그러나, 단일 섀시의 모든 모듈은 섀시 백플레인을 공유하므로 동기화되고, 여러 MXI-Express RIO 또는 이더넷 RIO 섀시는 C 시리즈 디지털 I/O 모듈을 사용하여 동기화되어 섀시간 참조 클럭 신호를 제공합니다.
이 스펙은 통신 버스에 의해서만 발생하는 지터를 의미합니다. 보통, 시스템에서 지터의 주요 원천은 통신 버스가 아닌 컨트롤러와 관련됩니다(특히 Windows 컨트롤러의 경우). 또한, 시스템의 지터는 시스템 아키텍처 및 호스트에 다다르기 위해 데이지 체인에서 데이터가 반드시 거쳐야 하는 섀시의 개수에 따라서도 달라집니다.
분산된 리얼타임 연산 노드간의 데이터 통신이 컨트롤 루프의 중대한 부분을 차지하는 어플리케이션에 결정성있는 통신은 중요합니다. 다시 말해, 네트워크에 의해 발생한 모든 지터는 컨트롤 루프의 지터를 유발합니다. 허용되는 컨트롤 루프 지터는 사용하는 시스템에 따라 다르지만, 표준 범위는 컨트롤 루프 시간의 ± 10%입니다. 1 kHz 컨트롤 루프의 경우, 각 반복이 900~1,100 μs에서 실행될 수 있으며 시스템은 여전히 적절히 응답할 것이라는 뜻입니다.
EtherCAT RIO와 MXI-Express RIO의 통신 지터는 각각 10마이크로초 이하 및 1마이크로초 이하입니다. 이더넷 RIO 디바이스는 지터에 대한 스펙이 없습니다. 그 이유는 고속 이더넷과 무선 전송은 데이터를 전달하는 결정적인 방식이 아니기 때문입니다.
MXI-Express RIO는 250 MB/s 최고 이론 대역폭으로 컨트롤러에 최대 파이프를 제공합니다. 이더넷 RIO는 25 MB/s, EtherCAT은 12.5 MB/s입니다. 버스 성능은 버스의 최대 이론 대역폭뿐 아니라 여러 요소에 영향을 받습니다. 대역폭뿐만 아니라 지연, 실행, 전력 요구사항, 어플리케이션과 같은 요소도 고려하십시오. 처리량이 많은 어플리케이션의 경우 MXI-Express RIO가 가장 이상적입니다. 이더넷 RIO 및 EtherCAT RIO의 처리 역량은 대부분의 제어 및 모니터링 어플리케이션에 사용하기 충분합니다.
API (Application Program Interface)는 소프트웨어 어플리케이션을 위한 빌딩 블록으로 사용되는 루틴의 모음입니다. 확장 I/O 타겟을 프로그래밍하는 방법에는 두 가지가 있습니다. NI CompactRIO 스캔 모드 또는 NI LabVIEW FPGA 호스트 인터페이스 API입니다.
EtherCAT과 이더넷 섀시에서 NI CompactRIO 스캔 모드 (RIO 스캔 인터페이스 또는 RSI라고도 불림)를 사용할 수 있습니다. CompactRIO 스캔 모드는 I/O 모듈을 자동 감지하여 이를 LabVIEW 프로젝트에 추가합니다. 그 후, 사용자는 I/O 변수를 LabVIEW Real-Time 및 호스트 VI 블록 다이어그램으로 끌어가서 놓고, FPGA 프로그래밍 또는 컴파일 없이 스케일되고 교정된 I/O 데이터를 즉시 읽거나 쓸 수 있습니다.
그림 2: CompactRIO 스캔 모드 사용
FPGA를 직접 프로그래밍할 때 LabVIEW FPGA Module을 사용하십시오. FPGA VI를 직접 작성하면 그 후 VI가 비트 스트림으로 컴파일되고 FPGA로 배포됩니다. 사용자의 호스트 어플리케이션에서 FPGA와 통신하기 위해 LabVIEW FPGA Host Interface API를 사용하십시오. 이를 통해 레지스터 읽기/쓰기 및 DMA 전송과 같은 함수를 수행할 수 있습니다.
EtherCAT 섀시의 경우, 컨트롤러의 리얼타임 VI와 확장 섀시의 FPGA VI간 통신하기 위해 사용자 정의된 I/O 변수만을 사용할 수 있습니다. (사용자 정의된 I/O 변수는 FPGA 데이터를 NI 스캔 엔진과 동기화하기 위해 사용됩니다.) 다시 말해, 확장 섀시의 FPGA VI의 경우, FPGA 호스트 인터페이스, DMA 전송 함수, 또는 프런트패널 디버깅이 없습니다.
MXI-Express RIO와 인터페이스하기 위해 LabVIEW FPGA Host Interface API만 사용할 수 있습니다.
또한 NI 스캔 모드를 지원하는 모듈의 기능에 기반하여 각 섀시와 호환하는 C 시리즈 모듈 유형에는 몇 가지 제한이 있습니다. MXI-Express RIO는 LabVIEW FPGA만을 지원하므로 NI 스캔 모드에 의존하는 모듈 (예: NI 986x CAN 모듈)은 MXI-Express RIO와 호환하지 않습니다. C 시리즈 호환 항목 전체 목록은 NI C 시리즈 호환 차트를 참조하십시오.
모든 4개 확장 옵션은 각기 다른 버스를 사용하므로 컨트롤러 측에서의 다른 연결이 필요합니다.
이더넷 RIO는 이더넷 포트가 있는 모든 시스템에 꼽을 수 있고 대부분의 표준 네트워크 토폴로지와 함께 사용될 수 있습니다. 이더넷 RIO를 리얼타임 컨트롤러의 2차 이더넷 포트에 직접 연결하는 방법에 대한 내용은 이더넷 RIO 확장 섀시를 리얼타임 컨트롤러의 2차 이더넷 포트에 연결하기를 참조하십시오. NI-9149 및 NI-9147 이더넷 RIO 섀시에는 디바이스를 간편하게 설정할 수 있는 USB 포트도 포함되어 있습니다. 그러나 이 포트는 이더넷 포트 대신 사용할 수 없습니다.
EtherCAT RIO 섀시는 CompactRIO, PXI, 산업용 컨트롤러 플랫폼과 같은 두 개의 이더넷 포트가 있는 모든 리얼타임 컨트롤러와 호환합니다. 참고로, EtherCAT의 경우 리얼타임 PXI 컨트롤러에 이더넷 포트가 두 개가 없다면, 리얼타임 컨트롤러에서만 지원되는 NI PXI-8231/8232 이더넷 인터페이스를 반드시 포함해야 합니다 (단, NI-8234 이더넷 인터페이스는 호환되지 않음). 또한 NI-Industrial Communications for EtherCAT 드라이버 소프트웨어가 필요하며, 두 번째 이더넷 포트는 반드시 EtherCAT 모드여야 합니다.
MXI-Express RIO의 경우, 호스트 시스템에 대한 MXI-Express 인터페이스가 필요합니다. 옵션으로는 멀티코어 CompactRIO, PXI, 또는 산업용 컨트롤러뿐만 아니라 MXI-Express PCI 카드 인터페이스가 있는 Windows 또는 Real-Time OS를 실행하는 PC 등이 있습니다. MXI-Express ExpressCard 어댑터를 사용하여 NI PXIe-8115와 같은 MXI-Express 인터페이스가 없고 내장된 ExpressCard 슬롯이 있는 컨트롤러에 MXI-Express RIO 섀시를 연결할 수 있습니다. NI PXIe-8364 MXI-Express 인터페이스를 사용하여 MXI-Express RIO를 PXI 시스템에 연결할 수도 있습니다. MXI-Express-PCI 또는 PCI Express 어댑터를 사용하여 MXI-Express RIO를 PC에 연결할 수 있습니다.
이더넷 | EtherCAT | MXI (EOL) | |
---|---|---|---|
FPGA 활성화된 I/O를 이더넷 네트워크에 추가 | 분산 어플리케이션에서 EtherCAT과 함께 결정성있는 I/O 사용 | 다채널 어플리케이션에 고성능 확장 섀시 사용 | |
I/O 개수 | 4개 또는 8개 C 시리즈 슬롯 | 8개 C 시리즈 슬롯 | 8개 또는 14개 C 시리즈 슬롯 |
FPGA | Artix-7 | Artix-7 | Virtex-5 (LX50/LX85/LX110) |
네트워크 토폴로지 | 이더넷과 동일 | 데이지 체인/스타 | 데이지 체인/스타 |
거리 | 허브 이전 100 m | 리피터 이전 100 m | 섀시 간 7 m |
다중 디바이스 동기화 | FPGA 기반 DIO | 버스에 내재 | FPGA 기반 DIO |
통신 지터 | 스펙 없음 | < 1 μs | < 10 μs |
버스 처리량 | 25 MB/s | 12.5 MB/s | 250 MB/s |
API 지원 | FPGA 호스트 인터페이스/RSI | RSI | FPGA 호스트 인터페이스 |
호스트 | Windows/리얼타임 | 리얼타임만 | Windows/리얼타임 |
표 1: 주요 확장 I/O 기능 비교
섀시 | FPGA | 게이트 | 플립 플롭 | LUT | 곱셈기 | 블록 RAM (kbit) |
---|---|---|---|---|---|---|
이더넷 | ||||||
NI-9149 | Artix-7 | – | 106,400 | 53,200 | 220 | 4,480 |
NI-9147 | Artix-7 | – | 106,400 | 53,200 | 220 | 4,480 |
NI-9148 (EOL) | Spartan-3 2000 | 2백만 | 40,960 | 40,960 | 40 | 720 |
NI-9146 (EOL) | Spartan-6 LX 45 | – | 54,576 | 54,576 | 58 | 2,088 |
EtherCAT | ||||||
NI-9145 | Artix-7 | – | 106,400 | 53,200 | 220 | 4,480 |
NI-9144 (EOL) | Spartan-3 2000 | 2백만 | 40,960 | 40,960 | 40 | 720 |
MXI-Express | ||||||
NI-9159 (EOL) | Virtex-5 LX110 | – | 69,120 | 69,120 | 64 | 4,608 |
NI-9157 (EOL) | Virtex-5 LX85 | – | 51,840 | 51,840 | 48 | 3,456 |
NI-9155 (EOL) | Virtex-5 LX85 | – | 51,840 | 51,840 | 48 | 3,456 |
NI-9154 (EOL) | Virtex-5 LX50 | – | 28,800 | 28,800 | 48 | 1,728 |
표 2: 확장 RIO 제품에 사용되는 FPGA를 참조하십시오.