산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial Internet of Things >> 임베디드

NXP의 i.MX RT500 크로스오버 MCU를 사용한 DSP 구현 이해

다중 스레드 프로그램, XOS 실시간 운영 체제를 사용한 애플리케이션 개발, 세마포어를 통한 리소스 공유 및 NXP의 i.MX RT500 제품군에 대해 알아보십시오. 의 마이크로컨트롤러는 엔지니어가 DSP 지원 스마트 장치를 설계하는 데 도움이 됩니다.

오늘날의 스마트 소비자 장치에는 다양한 보안 및 신호 처리 응용 프로그램의 요구 사항을 충족하기 위해 많은 양의 데이터를 처리할 수 있는 구성 요소가 필요합니다. 이러한 구성요소(마이크로컨트롤러 포함)는 해당 데이터를 빠르고 효율적으로 처리할 수 있어야 하므로 고도로 최적화된 디지털 신호 프로세서가 필요합니다.

이 기사에서는 신호 처리 계산을 수행할 때 i.MX RT500 MCU의 메인 CPU를 지원하는 지정된 보조 프로세서인 Cadence® Tensilica® Fusion F1 오디오 프로세서의 몇 가지 기능을 소개합니다.

다중 스레드 프로그램의 핵심 개념

언뜻 보기에 최신 처리 하드웨어는 많은 스레드를 동시에 실행하는 것처럼 보입니다. 실제로 단일 CPU 코어는 한 번에 단일 스레드를 처리합니다. 쓰레드 수가 가용 CPU 코어 수를 초과하면 쓰레드를 스케줄링하기 위한 운영체제가 필요하다.

OS는 시작된 모든 스레드와 해당 상태를 추적해야 하며 각 스레드에 CPU 시간 슬롯을 할당하여 다양한 애플리케이션이 효율적이고 병렬적으로 실행될 수 있도록 합니다.

그림 1. 스레드의 다양한 상태

운영 체제 스케줄러는 실행할 준비가 된 스레드에 대한 큐, 스레드를 차단하는 큐를 유지 관리하며 CPU 시간의 공정한 분배를 달성하기 위해 현재 실행 중인 스레드에 대한 정보를 저장해야 합니다.

<울>
  • 준비 대기열의 스레드는 현재 OS가 CPU에서 스레드를 예약하기를 기다리고 있습니다. 일반적으로 OS 스케줄러는 CPU에서 실행할 스레드를 선택할 때 고려하는 다양한 우선 순위 수준을 알고 있습니다.
  • 블로킹 스레드는 핀 인터럽트 또는 파일 작업과 같은 외부 이벤트가 발생하기를 기다립니다. 이러한 스레드를 예약하면 CPU가 외부 작업이 완료될 때까지 기다리는 처리 능력을 낭비하게 됩니다. 차단 작업이 완료되면 연결된 대기 스레드가 준비 대기열의 끝으로 돌아갑니다.
  • 현재 실행 중인 스레드가 차단 작업을 수행하거나 OS가 스케줄링 전략에 따라 다른 스레드를 스케줄링할 수 있습니다. 이 경우 스케줄러는 현재 실행 중인 스레드를 차단된 스레드 목록 또는 준비 대기열의 끝으로 각각 이동합니다.
  • OS 개발자는 정확한 요구 사항에 따라 하나 이상의 다양한 일정 전략을 구현하도록 선택할 수 있습니다. 스케줄링 외에도 서로 다른 스레드 간의 동기화 및 통신은 다중 스레드 시스템의 다른 필수 요소입니다.

    XOS의 조건 및 이벤트

    XOS RTOS(실시간 운영 체제) 내의 조건을 통해 개발자는 지정된 조건이 참이 될 때까지 스레드가 차단되도록 지시할 수 있습니다. 시스템은 애플리케이션 개발자가 정의한 조건 함수를 사용하여 각 조건을 평가합니다. XOS는 다른 스레드가 조건 개체에 신호를 보낼 때마다 또는 인터럽트 처리기가 개체를 트리거할 때마다 평가를 수행합니다.

    반면에 XOS 내의 이벤트는 개발자가 다른 스레드 또는 스레드 및 인터럽트 처리기를 동기화하는 데 사용할 수 있는 비트 그룹을 나타냅니다. XOS를 사용하면 여러 스레드가 이벤트를 기다리고 동시에 신호를 보낼 수 있습니다.

    XOS의 인터럽트

    XOS는 런타임 중에 발생하는 인터럽트 및 예외를 처리하기 위한 다양한 기능을 제공합니다. XOS 내의 인터럽트 메커니즘은 프로그래머에게 맞춤형 핸들러를 설치할 수 있는 유연성을 제공하는 동시에 시스템 내에서 인터럽트 디스패치가 가능한 한 빨리 작동하도록 합니다. XOS는 또한 중첩된 인터럽트 처리를 지원합니다. 즉, 더 높은 우선 순위의 인터럽트가 발생하면 OS가 현재 인터럽트 핸들러를 일시 중지합니다. 시스템이 우선 순위가 높은 인터럽트 처리를 마치면 우선 순위가 낮은 인터럽트 처리를 자동으로 재개합니다.

    스레드는 XOS에서 시간 지연 및 주기적 타이머 콜백과 같은 시간 관련 서비스를 가질 수도 있습니다. DSP 보조 프로세서는 프로그래머가 필요에 따라 구성할 수 있는 최대 3개의 내부 타이머를 지원합니다.

    세마포어 이해

    다중 스레드 프로그래밍에서 세마포어는 공유 리소스에 대한 액세스를 제어하고 조정하는 수단을 제공합니다. 세마포어는 다른 스레드를 동기화하여 동시 시스템에서 중요한 섹션 문제를 방지하는 데 도움이 됩니다. 세마포어는 프로그래머가 소스 코드에서 자유롭게 설정할 수 있는 미리 결정된 시작 값으로 내부 카운터를 추적하는 간단한 구조입니다. 다양한 구현이 있지만 카운터는 일반적으로 공유 리소스에 여전히 액세스할 수 있는 스레드 수를 나타냅니다.

    스레드가 공유 리소스에 액세스하려고 할 때마다 시스템은 연결된 카운터가 0보다 큰지 확인합니다. 그렇다면 OS는 리소스에 대한 액세스를 허용하고 세마포어의 내부 카운터를 줄입니다. 스레드가 주어진 시간에 리소스에 액세스할 수 없는 경우 스레드는 차단 상태로 전환하고 리소스에 대한 액세스를 수신할 때까지 기다립니다. 스레드가 리소스를 해제할 때마다 OS는 세마포어 카운터를 증가시키고 새 스레드가 임계 영역에 들어갈 수 있습니다.

    그림 2. 세마포어 작동 방식을 보여주는 순서도

    i.MX RT500 MCU 및 DSP 개요

    i.MX RT500은 최대 275MHz의 클록 속도와 최대 5MB의 SRAM을 지원하는 강력한 Arm® Cortex®-M33 코어를 기반으로 하는 듀얼 코어 마이크로컨트롤러 제품군입니다.

    i.MX RT500 MCU는 Arm TrustZone 및 최대 8개 지역을 지원하는 내장형 메모리 보호 장치(MPU)와 같은 보호 기능을 제공합니다. CASPER 암호화 보조 프로세서를 사용하면 하드웨어 가속을 통해 비대칭 암호화 알고리즘에 필요한 다양한 기능을 향상할 수 있습니다. 절전 기능 세트를 통해 설계자는 i.MX RT500의 전력 소비를 애플리케이션 요구 사항에 맞출 수 있습니다.

    다양한 전용 하드웨어 가속기는 메인 CPU가 DSP 계산을 수행하는 데 도움을 줍니다. 추가 Cadence® Tensilica® Fusion F1 오디오 DSP, 벡터 그래픽 가속 기능이 있는 2D GPU 및 다양한 디스플레이 인터페이스를 통해 i.MX RT500은 다양한 보안 및 저전력 임베디드 애플리케이션에 적합합니다. 일반적인 사용 사례에는 HMI 애플리케이션, IoT 장치, 히어러블, 음성 인식 개인 비서 및 기타 유사한 소비자 장치가 포함됩니다.

    오디오 DSP 살펴보기

    i.MX RT500에는 수학적으로 복잡한 계산을 수행하는 동시에 처리 코어가 다른 작업을 수행할 수 있도록 하여 CPU 코어의 부하를 줄이는 데 도움이 되는 다양한 특수 보조 프로세서가 포함되어 있습니다. 이러한 전용 프로세서 중 하나는 Cadence® Tensilica® Fusion F1 오디오 프로세서와 하드웨어 부동 소수점 장치를 포함하는 fusion DSP입니다.

    이 오디오 처리 엔진은 최대 200MHz의 주파수에서 실행되며 가상 비서와 같이 항상 켜져 있는 음성 트리거 장치를 활성화하도록 설계되었습니다. 또한 오디오 DSP는 수많은 오디오 코덱을 사용하여 일반적인 전처리 및 후처리 작업을 위한 다양한 모듈을 결합합니다.

    DSP와 메인 CPU 코어는 다양한 수단을 통해 서로 통신할 수 있습니다. 개발자는 RAM이 보호되고 특정 부분이 보안 전용 액세스로 표시되지 않는 한 Fusion DSP로 작업할 때 전체 SRAM을 사용할 수 있습니다.

    DSP를 염두에 둔 프로그래밍

    Tensilica DSP는 FreeRTOS™, Zephyr™, Linux® 및 XOS를 비롯한 다양한 실시간 운영 체제(RTOS)를 지원합니다. Cadence는 Tensilica 프로세서를 염두에 두고 참조 설계로 XOS 임베디드 커널을 개발했습니다.

    경량 XOS 커널 기능에는 작업 스케줄러, 적응형 컨텍스트 전환, 동기화 메커니즘, 인터럽트 및 예외 관리, 중요한 리소스 관리가 포함됩니다. 커널의 소스 코드는 주로 표준 C로 작성되었으며 Xtensa 프로세서 및 DSP에 국한되지 않습니다.

    스마트 소비자 기기 요구 사항 충족

    i.MX RT500 크로스오버 MCU 제품군에는 미래의 스마트 소비자 장치에 영감을 주기 위해 설계된 다양한 기능이 있습니다. 다양한 보조 프로세서는 보안 및 신호 처리 애플리케이션을 위해 수학적으로 복잡한 계산을 수행하는 MCU의 주요 처리 코어를 지원합니다. 그러한 보조 프로세서 중 하나는 고도로 최적화된 Cadence® Tensilica® Fusion F1 오디오 DSP로, 가상 비서와 같은 음성 트리거 장치를 상시 작동시킬 수 있습니다. 프로그래머는 XOS와 Xplorer IDE를 활용하여 전용 Cadence 프로세서용 애플리케이션을 설계할 수 있습니다.


    애플리케이션 노트 AN13159에는 추가 세부정보, 지원되는 API 기능 목록, XOS의 조건 및 이벤트에 대한 예가 포함되어 있으며 NXP 웹사이트에서는 i.MX RT500 기능 및 애플리케이션에 대한 자세한 정보를 제공합니다. 또한 애플리케이션 노트, 비디오 및 주문형 웨비나와 같은 다양한 교육 자료를 제공합니다.

    업계 기사는 업계 파트너가 편집 콘텐츠에 적합하지 않은 방식으로 All About Circuits 독자와 유용한 뉴스, 메시지 및 기술을 공유할 수 있는 콘텐츠 형식입니다. 모든 산업 기사는 독자에게 유용한 뉴스, 기술 전문 지식 또는 이야기를 제공하기 위해 엄격한 편집 지침을 따릅니다. 업계 기사에 표현된 관점과 의견은 파트너의 것이며 반드시 All About Circuits 또는 해당 작성자의 의견은 아닙니다.


    임베디드

    1. C# 사용
    2. 하이브리드 장치는 DSP와 MCU 아키텍처를 병합합니다.
    3. DSP가 하드웨어 가속기를 능가하는 경우
    4. 결정, 결정:하드웨어 가속기 또는 DSP?
    5. 반사계 칩을 사용한 비접촉 유체 레벨 측정
    6. 가정 보안 모니터링에 RFID 태그 사용
    7. 4D 이미징 레이더 칩셋으로 물체 식별 향상
    8. IoT 보안을 강화하는 Bluetooth MCU
    9. 무선 MCU는 듀얼 코어 아키텍처를 특징으로 합니다.
    10. DSP 핸들 사용 지침