포트 확장기를 사용하여 IIoT 종단점에 비용 효율적인 하위 노드를 간편하고 효율적으로 추가
DigiKey 북미 편집자 제공
2020-06-10
산업용 사물 인터넷(IIoT) 응용 분야의 경우 IIoT 종단점의 특징과 유연성이 기능성 면에서 확장될 뿐 아니라 물리적 제어 영역도 종단점의 호스트 마이크로 컨트롤러에서 여러 피트 간격으로 확장됩니다. IIoT 종단점 호스트 마이크로 컨트롤러의 I/O 핀 몇 개를 사용하여 확장된 위치에 연결할 수 있지만, I/O 회선이 늘어난 거리로 인해 전자파 장해(EMI)에 더 취약해져 신뢰성이 떨어집니다. 또 하나의 마이크로 컨트롤러를 IIoT 종단점 호스트 마이크로 컨트롤러의 하위 노드로 사용할 수 있지만, 이렇게 되면 데이터가 단순한 디지털 I/O 신호에만 사용되는 경우에 불필요하게 복잡성이 증가할 수 있습니다.
광범위한 제어를 위해 I/O 회선을 확장하는 대신 개발자는 포트 확장기를 IIoT 종단점의 비용 효율적인 하위 노드로 사용할 수 있습니다.
이 기사에서는 Maxim Integrated의 2포트 확장기를 소개하기 전에 포트 확장기의 역할을 설명합니다. 확장기는 직렬 인터페이스를 통해 호스트 마이크로 컨트롤러에 쉽게 연결하여 IIoT 노드의 디지털 I/O 기능을 크게 확장합니다. 동시에 펄스 폭 변조(PWM) 생성 및 인터럽트 감지와 같은 기존 범용 I/O(GPIO) 기능을 유지합니다.
IIoT 네트워크에 포트 확장기가 필요한 이유
IIoT 네트워크를 계획할 때 첫 번째 단계에서 해야할 일 중 하나는 종단점 수를 결정하는 것입니다. 각 장비는 나머지 시설에 맞춰 동작을 동기화해야 하며, 장비마다 적어도 하나의 종단점이 필요합니다. 좋은 예로는 공장 조립 라인이 있습니다. 적절한 조립 절차를 적시에 수행하기 위해서는 각 스테이션을 전체 조립 라인의 진행 상황과 동기화해야 합니다.
하지만 공장 조립 라인의 IIoT 종단점을 하나의 물리적 영역에 한정할 수도 있지만 대신 배선이나 케이블을 사용해 IIoT 종단점의 호스트 마이크로 컨트롤러 GPIO 포트를 여러 피트 간격으로 떨어지도록 확장할 수 있습니다. 이는 호스트 마이크로 컨트롤러를 허브로 사용하는 스타 구성과 비슷합니다. 이 스타에서 각 점의 종단은 주 IIoT 종단점의 하위 노드로 사용될 만한 복잡성은 갖추었을 수 있지만 자체 네트워크 연결을 사용하는 자체 IIoT 종단점으로 구성될 만큼 정교하지 않을 수 있습니다. 하위 노드를 자체 마이크로 컨트롤러에서 제어하도록 설계할 수 있지만, 단순한 GPIO에서 이렇게 구성하면 복잡성과 비용이 불필요하게 높아질 수 있습니다.
실제 예로 PWM 신호를 사용하여 모터를 제어하는 IIoT 종단점이 있습니다. 모터가 여러 피트 떨어진 경우 여러 PWM 신호를 모터에 보내야 하므로 주변 영역의 EMI가 커질 수 있습니다. 차폐 케이블을 사용하여 PWM 신호를 전송할 수 있지만, 이 경우 시스템 비용이 증가하고 거리 또는 누화에 따른 위상 지연으로 인한 오류가 제거되지 않습니다. 대신 I2C 또는 SPI와 같은 직렬 버스를 사용하여 모터 근처에 있는 프로그래밍 가능 시스템에 명령을 보내 PWM 신호를 생성하게 할 수 있습니다. 이러한 전자 장치는 필요한 PWM 신호를 생성하도록 프로그래밍된 하위 노드입니다.
하위 노드를 위한 실용적인 솔루션은 호스트 마이크로 컨트롤러에 대한 직렬 인터페이스에서 포트 확장기를 사용하는 것일 수 있습니다. 포트 확장기는 마이크로 컨트롤러보다 구성하기 간단하고 호스트 마이크로 컨트롤러 GPIO의 범위를 확장합니다. 하위 노드로 가는 8개 이상의 GPIO 라인을 실행하는 대신 호스트 마이크로 컨트롤러에서 단순한 I2C 또는 SPI 인터페이스를 통해 하위 노드의 포트 확장기에 쉽게 액세스할 수 있습니다. 포트 확장기의 레지스터에 기록하면 GPIO가 설정되거나 지워지며 판독 값에 GPIO 상태가 반환됩니다. 즉, 호스트 마이크로 컨트롤러의 GPIO를 제어하는 것과 같습니다. 또한 포트 확장기는 PWM 생성 및 인터럽트 입력을 비롯한 마이크로 컨트롤러 GPIO의 기능을 대부분 제공합니다.
사용이 간편한 포트 확장기의 예로 8개의 GPIO와 하나의 I2C 인터페이스를 갖춘 Maxim Integrated MAX7315AUE+T가 있습니다(그림 1).
그림 1: Maxim Integrated MAX7315A 포트 확장기는 최대 8개의 GPIO를 제공하며 GPIO 상태 변경 시 호스트 마이크로 컨트롤러로의 인터럽트를 생성할 수 있습니다. 2선식 I2C 인터페이스를 통해 액세스합니다. (이미지 출처: Maxim Integrated)
MAX7315A는 8개의 GPIO를 지원하며, 각 GPIO를 입력 또는 개방 트레인 출력으로 개별적으로 구성할 수 있습니다. 호스트 마이크로 컨트롤러와 MAX7315A의 통신은 최대 400kHz로 작동하는 2전선 I2C 인터페이스를 통해 이루어집니다. I2C 버스에서 장치의 주소는 그림 1과 같이 3개의 주소 핀 AD [0:2]로 구성됩니다. 이 장치는 호스트 마이크로 컨트롤러로의 인터럽트도 생성할 수 있습니다.
MAX7315A에서는 I2C 핀 2개와 인터럽트 핀의 3개 핀만으로 8개의 GPIO를 쉽게 관리할 수 있습니다. 안정적인 I2C 통신이 이루어진다는 조건에서 호스트 마이크로 컨트롤러와 원하는 간격으로 장치를 배치할 수 있습니다. 기판 레이아웃과 주변 EMI에 따라 400kHz로 실행되는 직렬 클록(SCL)에서는 일반적으로 안정적인 거리는 3피트이고 100kHz SCL에서는 9피트 이상을 실현할 수 있습니다.
하지만 가동 중인 환경에서 테스트하여 주변 조건이나 EMI가 거리에 큰 영향을 주지 않는지 확인하는 것이 중요합니다.
하위 노드에서 인터럽트 감지
이 장치는 핀 13에서 낮은 활성 인터럽트 출력을 지원하지만 인터럽트 기능이 필요하지 않은 경우 핀 13을 9번째 GPIO로 구성할 수 있습니다. 임의의 입력 핀 전이 시 인터럽트를 낮게 구성할 수 있습니다. 이렇게 하면 호스트 마이크로 컨트롤러에서 MAX7315A를 폴링하지 않고도 하위 노드에서의 활동을 인식할 수 있습니다. 인터럽트 기능을 활성화한 경우 입력으로 구성되고 인터럽트를 활성화한 GPIO가 인터럽트 입력으로 작동합니다. 인터럽트로 구성된 GPIO의 상태가 변경되면 핀 13이 낮아지며 변화가 일어날 때 호스트 마이크로 컨트롤러에 신호를 전달합니다. 그러면 호스트 마이크로 컨트롤러는 MAX7315A의 상태를 읽어 어떤 GPIO의 상태가 달라졌는지 결정합니다.
이 프로세스는 포트 확장기 사용으로 인한 GPIO의 인터럽트 기능 손실을 방지하며, 이는 IIoT에서뿐 아니라 효율적인 펌웨어 작동을 위해 인터럽트가 필요한 마이크로 컨트롤러 시스템에서도 중요합니다.
잘못된 인터럽트가 생성되지 않도록 MAX7315A 구성을 변경하기 전에 인터럽트 기능을 비활성화해야 합니다.
MAX7315A는 2V ~ 3.6V 전원 공급 장치에서 작동하지만, GPIO는 5.5V를 허용합니다. 따라서 GPIO는 2.0V, 3.6V 및 5.0V 디지털 시스템을 비롯한 표준 논리 레벨과 호환됩니다. 개방 드레인 출력으로 구성된 각 GPIO는 높은 논리 레벨에서 최대 50mA를 소싱할 수 있습니다. 출력을 결합하여 출력 전류를 늘릴 수 있습니다. 따라서 MAX7315A는 고전류 LED 표시등 및 키보드 백라이트에 적용할 수 있습니다.
하위 노드에서 PWM 생성
또한 MAX7315A는 호스트 마이크로 컨트롤러 개입 없이 프로그래밍 가능 PWM 출력도 생성할 수 있습니다. 내부 32kHz 발진기를 PWM 파형의 시간축으로 사용합니다. 4비트 마스터 강도 설정을 통해 모든 출력에 사용 가능한 32kHz PWM 강도를 전치 분주기와 유사하게 0에서 15 사이로 구성합니다. 각 GPIO의 각 PWM 출력 파형은 15개의 시간 슬롯으로 분할됩니다. 마스터 강도 설정에 따라 PWM 생성에 사용 가능한 슬롯 수가 결정됩니다. 개별 GPIO에는 자체의 개별 강도 레지스터가 있어서 활성 슬롯에서 파형의 듀티 사이클을 설정하는 데 사용됩니다. 개별 GPIO 핀의 출력 파형을 사용하는 예에서 이 점을 자세히 확인할 수 있습니다(그림 2).
그림 2: MAX7315A에는 내부적으로 생성되는 32kHz 클록으로 작동하는 프로그래밍 가능 PWM 생성기가 있습니다. 이 PWM의 마스터 강도는 2이고 개별 GPIO 듀티 사이클 강도는 2입니다. (이미지 출처: Maxim Integrated)
마스터 강도가 2로 설정되므로, 15개 슬롯 중 슬롯 1과 2만 PWM 생성에 사용할 수 있고 슬롯 3 ~ 15는 논리 레벨이 0입니다. 이 GPIO의 개별 듀티 사이클 강도는 2로 설정되므로, 슬롯 1 및 2에서 파형의 듀티 사이클은 2/16(12.5%)입니다.
PWM 마스터 강도는 0에서 15 사이로 설정할 수 있으며, 15이면 15개 슬롯을 모두 사용할 수 있습니다. 마스터 강도가 0이면 모든 GPIO의 PWM 생성이 비활성화되므로 전력 절감을 위해 32kHz 클록이 꺼집니다.
개별 GPIO에서 PWM 듀티 사이클 강도를 1에서 16 사이로 구성할 수 있으며, 16이면 듀티 사이클이 100%여서 슬롯이 논리가 높게 설정됩니다.
유연성을 향상하기 위해 각 GPIO에는 PWM 파형을 반전시킬 수 있는 극성 비트가 있습니다. 그림 2는 해당 GPIO의 극성을 1로 설정한 파형을 보여줍니다. 그림 3의 PWM 파형은 동일한 GPIO에서 마스터 강도 및 듀티 사이클 강도는 그림2와 같지만 극성 비트를 지워 0으로 설정한 경우를 보여줍니다.
그림 3: Maxim Integrated MAX7215A의 각 PWM GPIO에는 파형을 반전시키는 극성 비트가 있습니다. 이 PWM의 마스터 강도는 2이고 개별 듀티 사이클 강도는 2이며 파형을 반전시키는 극성 비트는 0입니다. (이미지 출처: Maxim Integrated)
PWM 파형 생성에서 이와 같은 유연성을 제공하는 MAX7315A는 IIoT 종단점에서 떨어진 하위 노드에서 사용하여 LED 표시등의 조광을 제어하고, DC 모터의 전력 트랜지스터를 구동하고, 솔레노이드 및 액추에이터를 제어할 수 있습니다. 이제 잡음이 심한 산업 환경에서 PWM 파형을 전달하는 8개의 디지털 라인을 실행하는 대신 호스트 마이크로 컨트롤러에서 MAX7315A만 구성하고 독립적으로 실행되도록 할 수 있습니다.
하위 노드에서 기능 확장
더 복잡한 하위 노드를 위해 Maxim Integrated에서는 최대 28개의 GPIO가 포함된 MAX7301AAX+T 포트 확장기를 제공합니다. MAX7301AAX는 표준 4핀 SPI 인터페이스를 사용하여 IIoT 종단점의 호스트 마이크로 컨트롤러에 연결됩니다(그림 4). 또한 P31의 대체 기능으로 높은 활성 인터럽트 기능도 지원합니다. MAX7315AAX는 하나 이상의 GPIO 상태가 변경될 때 호스트 마이크로 컨트롤러로 되돌아가는 인터럽트를 생성하도록 구성할 수 있습니다. 따라서 하위 노드의 27개 GPIO를 인터럽트 기반 시스템에서 5개의 제어 라인(SPI 제어 라인 4개와 인터럽트 라인 1개)만 사용하여 제어할 수 있습니다.
그림 4: Maxim Integrated MAX7301 포트 확장기는 SPI 인터페이스를 제공하며 입력 또는 출력으로 사용할 수 있는 최대 28개의 GPIO 핀을 지원합니다. 핀 31은 High 활성 인터럽트의 대체 기능을 지원하므로, 27개 GPIO 라인을 5개의 제어 신호를 사용하여 제어할 수 있습니다. (이미지 출처: Maxim Integrated)
MAX7301AAX는 폭넓은 2.25V ~ 5.5V 공급 범위에서 작동하므로 대부분의 디지털 논리 시스템과 호환됩니다. GPIO는 내부 풀업 저항기를 포함하거나 포함하지 않고 슈미트 트리거 입력으로 구성할 수 있습니다. 또한 최대 10mA를 싱크할 수 있는 푸시풀 출력으로 GPIO를 구성할 수도 있습니다. 따라서 MAX7301AAX는 산업용 컨트롤러뿐 아니라 시스템 모니터링 및 경보 회로를 비롯한 기타 장비를 제어하는 데 사용되는 논리 레벨 회로에 연결하기 위한 용도로도 적합합니다.
결론
설계자가 IIoT 종단점의 물리적 범위를 확장하는 경우 여러 제어 라인이 여러 피트의 거리로 확장되어 EMI, 레이아웃, 회로 복잡도 관련 문제가 발생하므로 하위 노드를 제어하기 어려울 수 있습니다. 포트 확장기를 사용하여 인터럽트 기반 시스템에서 하위 노드를 제어하면 개발자가 PC 기판 레이아웃을 간소화하고 신뢰성을 향상할 수 있을 뿐 아니라 IIoT 종단점에 중요한 기능도 추가할 수 있습니다.
면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.