원격 마이크로 컨트롤러 디버거를 사용하여 산업 자동화 시설 구성 가속화
DigiKey 북미 편집자 제공
2021-03-03
산업 자동화 시설은 효율성을 높이고 생산성을 향상하기 위해 시설 운영을 제어하는 데 마이크로 컨트롤러 기반 단일 기판 컴퓨터(SBC)의 사용을 늘리고 있습니다. 주로 사용되는 SBC는 구성 가능한 펌웨어를 지원하는 규격품 SBC와 사용자 지정 펌웨어를 지원하는 맞춤형 SBC의 조합입니다. 그러나 새로운 산업 시설 또는 최근에 재구성된 기존 시설의 경우, SBC 펌웨어를 수정하여 작업을 개선하거나 코드 버그를 수정해야 할 수도 있습니다.
이 기사에서는 SBC의 역할과 원격 디버깅이 산업 환경에서 점점 더 중요해지고 있는 이유에 대해 설명합니다. 그런 다음 MikroElektronika의 원격 디버거 및 관련 소프트웨어를 소개하고 Wi-Fi 네트워크에 연결하여 대부분의 SBC에서 Arm® 마이크로 컨트롤러를 원격으로 디버깅하는 방법을 설명합니다.
산업용 컴퓨터 SBC
현대 산업 자동화 시설은 더 높은 정밀도를 통한 보다 나은 공정 관리로 생산성을 개선해야 하는 압력을 받고 있습니다. 제어 펌웨어에 보다 정확한 데이터를 제공하기 위해 고해상도 센서를 사용하는 것이 그 예입니다. 또한 모터 및 솔레노이드와 같은 액추에이터를 훨씬 더 미세하게 이동할 수 있는 액추에이터로 업그레이드할 수 있습니다.
이와 같이 정확도와 해상도가 더 높은 센서 및 액추에이터가 설치되면, 이러한 장치를 관리하는 SBC의 제어 펌웨어를 수정하여 향상된 해상도를 활용하도록 해야 합니다. 현재 SBC에서 펌웨어 업그레이드를 처리할 수 없는 경우 새 SBC를 설치해야 합니다. 두 경우 모두 새 펌웨어는 일반적으로 산업 시설에 설치하기 전에 벤치에서 테스트되고 디버깅됩니다. 초기 테스트 후 새 시스템이 작동합니다.
그러나 더 복잡한 프로세스의 경우 디버깅 및 프로그래밍이 여기에서 끝나지 않을 수도 있습니다. 시스템 내 작동은 이러한 사전 생산 테스트 중에 발견되지 않은 문제를 드러낼 수 있으며, 대부분의 경우 펌웨어를 최적화하는 유일한 방법은 SBC가 사용되는 동안 디버깅을 수행하는 것입니다.
새로운 산업 자동화 시설은 동일한 문제에 직면할 수 있습니다. 효율성 요구 사항을 충족하기 위해 펌웨어 제어 루프를 미세 조정해야 하는 고성능 시스템의 경우 특히 그렇습니다. 산업 시설이 신축이든 업그레이드이든 관계없이 다운타임은 비용이 많이 들며 최소화되어야 합니다. 즉, SBC를 시스템 내에서 디버깅하고 프로그래밍해야 합니다.
산업용 내장형 시스템을 원격으로 디버깅
산업 시스템에 사용되는 SBC를 디버깅하는 것은 마이크로 컨트롤러 기반 시스템을 디버깅하는 것과 다르지 않습니다. 디버거는 마이크로 컨트롤러의 디버그 포트에서 디버그 소프트웨어 프로그램을 실행하는 PC로 케이블을 통해 물리적으로 연결되어야 합니다. 그런 다음 펌웨어가 실행되는 동안 PC에서 기술자가 펌웨어를 검사하고 디버그합니다. 기술자가 각 SBC의 물리적 위치로 이동해야 하므로 많은 SBC를 현장에서 디버깅해야 하는 경우 시간이 많이 걸릴 수 있습니다. 일부 SBC가 열악한 환경에 있거나 물리적으로 멀리 떨어져 있거나 접근할 수 없는 위치에 있는 경우 이는 더 어려울 수 있습니다. 또한 맞춤형 펌웨어에 익숙한 기술자는 그리 많지 않으므로, 이들이 짧은 시간에 많은 시스템을 디버깅해야 하기 때문에 절차가 복잡해지고 프로세스가 지연됩니다.
해결 방법은 SBC에 물리적으로 연결되어 있지만 다른 곳에 있는 네트워크로 연결된 PC에서 제공하는 디버깅 기능이 있는 원격 디버거를 사용하는 것입니다. 원격 디버거는 Wi-Fi를 통해 시설의 네트워크에 연결되어 있는 동안 SBC의 마이크로 컨트롤러 디버그 포트에 연결할 수 있습니다. 편리한 위치에 있는 동일한 네트워크 상의 PC를 사용하여 원격 디버거에 액세스할 수 있습니다. 그러면 기술자는 원격 PC에서 완전한 디버그 기능을 갖게 됩니다.
이 원격 디버그를 수행하기 위해 엔지니어는 Wi-Fi를 통해 원격 PC에 연결할 수 있는 원격 디버거 제품군인 Mikroe의 CodeGrip을 사용하여 여러 컨트롤러의 프로그래밍 및 디버깅을 지원할 수 있습니다. MIKROE-3460 CodeGrip Wi-Fi 디버거는 JTAG 포트가 있는 대부분의 Arm 마이크로 컨트롤러에서 사용할 수 있습니다(그림 1). 또한 대부분의 Arm Cortex-M3, Cortex-M4, Cortex-M7 마이크로 컨트롤러에 있는 Arm 직렬 전선 출력(SWO) 단일 전선 디버그 포트를 지원합니다.
그림 1: MIKROE-3460 CodeGrip 원격 디버거는 물리적으로 SBC의 디버그 JTAG 또는 SWO 포트에 연결됩니다. Arm 마이크로 컨트롤러 펌웨어를 프로그래밍하거나 디버깅하기 위해 Wi-Fi를 통해 원격으로 액세스할 수 있습니다. (이미지 출처: Mikroe)
Mikroe MIKROE-3460 CodeGrip은 Arm 기반 SBC의 물리적 위치에 배치되며 기판 커넥터에서 사용할 수 있는 JTAG 또는 SWO 포트에 연결하기 위한 포트를 갖추고 있습니다. 그런 다음 디버깅 중인 마이크로 컨트롤러에 대해 CodeGrip 장치가 처음에 구성되도록 USB를 통해 랩톱에 임시로 연결됩니다. 고성능 시스템의 경우 CodeGrip 장치에는 USB-C 커넥터가 있습니다. 이 기능은 특히 비좁은 장소에서 유용하며 이전 USB 커넥터와 달리 USB-C 커넥터는 위쪽 또는 아래쪽 방향이 없으므로 시간을 절약하고 혼선을 줄여줍니다.
CodeGrip 장치를 처음 구성하려면 CodeGrip 장치에 연결된 랩톱에서 Mikroe의 CodeGrip Suite를 실행해야 합니다. CodeGrip 장치는 5개의 LED로 상태를 표시합니다(그림 2). 이는 랩톱을 연결하지 않고도 장치가 제대로 작동하고 있다는 중요한 상태 정보를 현장 기술자에게 제공합니다. 전원이 제대로 공급되면 녹색 전원 LED가 켜집니다. 정상적인 CodeGrip 장치 작동 중에 빨간색 능동 LED도 켜집니다. 녹색 LED가 켜져 있고 빨간색 LED가 꺼져 있으면, JTAG/SWO 포트에 대한 연결 상태가 좋지 않거나 연결되지 않았음을 나타낼 수 있습니다. 디버그 케이블을 재장착하거나 교체할 필요가 있다는 중요한 정보를 현지 기술자에게 제공합니다.
그림 2: CodeGrip 장치는 랩톱을 연결할 필요 없이 현장에서 빠른 시각적 피드백을 제공하는 5개의 LED를 사용하여 중요한 상태 정보를 제공합니다. (이미지 출처: Mikroe)
CodeGrip 장치는 USB로 랩톱에 연결되면 장치에서 노란색 USB-LINK LED를 켜서 성공적으로 연결되었음을 표시합니다. 그런 다음 사용자는 CodeGrip Suite를 실행하여 USB 연결을 통해 CodeGrip 장치를 구성합니다.
CodeGrip 구성
CodeGrip Suite는 종종 SBC에서 Arm 마이크로 컨트롤러를 자동 감지할 수 있지만 코어 유형, 플래시 메모리 크기 및 RAM 구성을 수동으로 구성할 수도 있습니다. 그러나 동일한 디버거를 사용하여 모든 Arm 제품군을 쉽게 구성할 수 있는 것은 아닙니다. STMicroelectronics의 STM32 Arm 제품군의 경우 Mikroe는 MIKROE-3461 CodeGrip 장치를 제공합니다. NXP Semiconductors의 Kinetis 제품군은 MIKROE-3462 CodeGrip에서 지원됩니다. 이 모두에 대해 CodeGrip 장치와 CodeGrip Suite의 작동은 동일합니다.
연결 및 구성이 완료되면 CodeGrip Suite는 현장에서 프로그래밍 및 디버깅 작업을 수행할 수 있습니다. CodeGrip 장치로 데이터를 전송하는 동안 파란색 데이터 LED가 깜박여 CodeGrip 장치와 CodeGrip Suite 간에 데이터가 전송되고 있음을 표시합니다. 이것은 CodeGrip 장치가 올바르게 작동하고 SBC를 프로그래밍 또는 디버깅하고 있음을 나타냅니다.
원격 디버깅의 경우 Wi-Fi를 통해 CodeGrip Suite를 실행중인 원격 PC에 연결하도록 CodeGrip 장치를 구성할 수 있습니다. CodeGrip 장치에 연결하는 데 사용되는 Wi-Fi 네트워크는 보안 및 성능을 위해 산업 시설에서 사용되는 다른 Wi-Fi 네트워크와 달라야 합니다. Wi-Fi를 통해 CodeGrip 장치로 대용량 .bin 또는 .hex 파일을 전송하는 것은 대용량 파일을 PC로 다운로드하는 것과 동일하므로 전체 네트워크 속도가 느려질 수 있습니다. 원격 PC가 CodeGrip 장치에 성공적으로 연결되면 CodeGrip 장치의 주황색 NET-LINK LED가 켜져 성공적으로 연결되었음을 표시합니다. CodeGrip 장치가 구성되면 USB를 통해 연결된 랩톱을 분리할 수 있습니다.
CodeGrip Suite는 대상 마이크로 컨트롤러의 전체 플래시 메모리를 읽고 프로그래밍하며 삭제할 수 있습니다. 또한 마이크로 컨트롤러의 플래시 메모리 내용을 소스 파일과 비교하여, 펌웨어가 인증되고 변조되지 않았는지 확인할 수 있습니다. 이는 보안 감사 중에 각 SBC의 물리적 위치로 이동하지 않고도 펌웨어의 보안을 확인하는 데 유용할 수도 있습니다.
CodeGrip Suite는 대상 마이크로 컨트롤러의 하드웨어 재설정을 수행할 수도 있습니다. 이는 SBC가 오작동하거나 보안 위반이 의심되는 경우에 유용할 수 있습니다. 일반적으로 재설정 SBC는 부팅 시 보안 검사를 포함하는 내장된 자체 시험(BIST)을 실행하여 장치가 제대로 작동하고 변조되지 않았는지 확인합니다.
Mikroe CodeGrip 장치의 강력한 기능은 Arm SWO 실시간 디버그 포트를 지원하는 것입니다. SWO 핀은 Arm 마이크로 컨트롤러의 상태에 대한 디버그 정보를 스트리밍하며, 펌웨어 작업에 대한 실시간 상태 및 추적 정보를 제공하는 데 사용할 수 있습니다. Mikroe는 CodeGrip Suite의 디버깅 기능을 향상시킬 수 있는 기능을 갖춘 SWO 라이브러리를 제공합니다(그림 3). 이를 통해 마이크로 컨트롤러 펌웨어를 원격으로 쉽게 모니터링하고 디버깅할 수 있습니다.
그림 3: CodeGrip Suite는 SWO 포트에서 데이터를 스트리밍하여 Arm 마이크로 컨트롤러에 대한 실시간 디버그 및 추적 정보를 제공할 수 있습니다. 디버그 정보는 쉽게 참조할 수 있도록 색상으로 코딩됩니다. (이미지 출처: Mikroe)
SWO 메시지에는 정보, 경고, 오류 등 세 가지 메시지 범주가 있습니다. CodeGrip은 이러한 메시지 범주 중 하나 또는 전부를 표시할 수 있습니다. 표시되는 메시지는 쉽게 참조할 수 있도록 정보는 파란색, 경고는 노란색, 오류는 빨간색으로 구분됩니다. 이를 통해 사용자는 검토할 대상을 신속하게 결정하고, 또한 경고 및 정보 메시지보다 오류 메시지를 우선적으로 다룰 수 있습니다.
결론
산업 시설에서 시스템 내의 SBC를 디버깅하는 데는 많은 시간이 소요될 수 있으며, 특히 많은 SBC를 프로그래밍하고 디버깅해야 하는 경우 더욱 그렇습니다. 또한 각 SBC를 방문하는 것이 항상 실용적이지는 않습니다. 위에서 살펴보았듯이, CodeGrip 및 관련 소프트웨어와 같은 장치를 사용하여 Wi-Fi를 통한 원격 디버깅을 활용하면 생산성을 향상시키면서 시간을 절약할 수 있습니다.
면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 DigiKey의 의견, 생각 및 견해 또는 DigiKey의 공식 정책과 관련이 없습니다.


