센서 융합 설계를 위한 빠른 경로 Digi-Key′s North American Editors 제공

  • 2017-02-28
  • 김영학 기자, yhk@elec4.co.kr
  • Digi-Key's North American Editors 제공


소비자 가전, 산업, 군사/항공을 비롯한 부문의 다양한 응용 분야에서 신뢰할 수 있는 정확한 위치, 방향, 움직임 감지가 중요한 요구 사항으로 대두됐다. 이러한 복잡한 데이터를 제공하려면 적합한 센서 시스템을 통해 두 개 이상의 기본 자이로스코프 센서 또는 가속도계에서 얻은 결과를 통합해야 한다.

각 센서에서 정확한 판독을 하는 것도 어려운 일이지만 시스템 설계자는 거기서 더 나아가 여러 감지 소자의 출력을 결합하고 센서 융합을 통해 해당 출력을 통합해야 한다. 그러나 센서 융합 구현의 복잡성으로 인해 시스템 개발이 중단되는 경우가 많다.

이 문제를 해결하기 위해, 설계자는 Bosch Sensortec에서 제공하는 2개의 방향 센서 장치를 사용할 수 있다. 이 장치는 맞춤형 센서 융합 설계를 대체할 수 있는 단순한 방법을 제공하므로 기성 솔루션으로 센서 융합 기능을 더 빠르게 개발할 수 있다.

센서 융합의 필요성 

방향과 움직임을 감지하는 기능은 가상 또는 실제 움직임을 기반으로 하는 응용 분야에서 기본적인 역할을 담당한다. 스마트폰의 경우 화면을 세로 표시에서 가로 표시로 전환하는 간단한 작업부터 GPS 지원 없이도 사용할 수 있는 복잡한 관성 항법 애플리케이션까지 이 기능이 사용된다. 스마트폰과 다양한 소비자 가전 및 산업용 사물 인터넷(IoT) 제품에서뿐 아니라 의료 및 자동차 응용 분야에서도 어느 정도의 방향 인식 기능을 필요로 하는 일이 점차 많아지고 있다. 방향 인식 센서 융합 설계를 구현하려면 어느 정도의 학습이 필요하기는 하지만 이는 설계자가 자신의 설계를 차별화할 수 이는 기회를 제공한다.

하드웨어 수준에서, 기본 감지 시스템은 가속도계를 사용하여 동작을 탐지하고, 자이로스코프를 사용하여 회전을 감지하고, 자력계를 사용하여 방향을 식별한다. 이상적으로 이 센서는 방향, 위치, 이동 방향을 확인하는 데 필요한 모든 정보를 제공한다.

그러나 실제로 각 센서 유형은 필요한 데이터를 제공하는 능력이 심각하게 제한된다. 가속도계는 감도가 높아서 잡음이 많다. 자이로스코프는 시간이 지남에 따라 드리프트가 발생하므로 절대적인 회전 데이터를 제공할 수 없다. 자력계는 모든 자기장에 반응하므로 주어진 설정에서 발견되는 자성 물질로 인해 이례적인 결과가 나올 수도 있다.

게다가 이러한 센서로는 요와 같이 더 복잡한 움직임을 명확하게 측정할 수 없으며 지표면을 기준으로 해당 센서의 절대적인 방향을 식별할 수도 없다. 이렇게 더 복잡한 결과를 얻으려면 센서 융합이라는 프로세스를 통해 센서 데이터를 결합해야 한다.

센서 융합 방법 

센서 융합에서는 여러 센서의 데이터를 병합하여 단일 센서로는 얻을 수 없는 결과를 생성한다. 방향 및 관성 항법의 전문가들은 특정한 응용 등급에 맞게 설계된 폭넓은 센서 융합 알고리즘을 사용한다. 이러한 알고리즘의 구체적인 내용은 이 기사에서 다루지 않지만, 각 알고리즘은 센서로 얻은 원시 데이터에 센서 잡음이나 정확도와 같은 다양한 특성에 따라 정적 또는 동적인 가중치를 적용하여 병합을 최적화한다. 그 결과 오일러 각이나 쿼터니언 등의 추상화를 사용하여 방향과 움직임을 수학적으로 예상할 수 있다.

다행스럽게도, 개발자는 센서 융합 알고리즘에 대한 전문적 지식 없이도 그러한 기능을 활용할 수 있다. 센서 융합 애플리케이션을 빌드할 때 개발자는 NXP Semiconductors 센서 융합 라이브러리와 같은 기존 소프트웨어 솔루션을 사용할 수 있다. NXP Kinetis K20과 같은 MCU에서 실행하도록 설계된 NXP 소프트웨어는 프로그래밍 가능 이득 증폭기(PGA), 비교기, 아날로그 디지털 컨버터(ADC)로 구성된 MCU의 통합 아날로그 신호 체인을 사용하여 얻은 센서 데이터를 결합할 수 있다.

이 MCU 기반 접근 방식을 이용하면 특정 응용 분야의 요구 사항을 유연하게 충족할 수 있다. 센서 융합 이론에 경험이 없는 개발자도 사용 가능한 라이브러리를 활용해 최적화된 시스템을 개발할 수 있다. 특수 알고리즘을 구현하려는 전문가는 대상 애플리케이션에서 자신의 코드를 대체할 수 있다. 그럼에도 불구하고 모든 개발자는 프런트 엔드 센서 시스템 자체를 설계할 때 심각한 난관에 직면한다.

어떤 알고리즘을 사용하더라도 센서 융합 결과의 정확도는 기본 센서 설계에 크게 의존한다. 센서 융합의 기본 요구 사항으로서 센서 측정값은 응용 제품의 시간해상도 요구 사항을 충족할 수 있을 정도로 세밀하게 동기화되어야 한다. 대상 센서의 물리적인 레이아웃과 같은 문제는 동기화에 영향을 줄 수 있으며, 특히 센서가 센서 처리 장치와 멀리 떨어져 있는 응용 제품인 경우 문제가 심해질 수 있다. 이런 경우 센서와 해당 신호 처리 체인의 타이밍 경로 차이 때문에 시스템에서 동기화 타이밍 오류가 발생할 수 있다. 개발자가 이러한 차이를 고려할 수도 있지만 통합 센서 기반의 접근 방식을 사용하면 이 문제가 해결된다.

통합 센서 모듈을 통한 융합 간소화 

통합 센서 장치는 각 대상 센서를 동일한 모듈에 배치하여 타이밍 경로 차이와 관련된 모든 실질적인 문제를 해결한다. 또한 개발자는 그러한 장치를 사용하여 센서 모듈 설계자가 이미 센서 정확도를 저해할 수 있는 잡음 소스나 그 밖의 설계 요인을 최소화한 상태에서 개발을 수행할 수 있다.

실제로 Bosch Sensortec은 BMF055 9축 방향 센서로 이러한 접근 방식을 한 단계 더 발전시켰다. 이 시스템 인 패키지(SiP) 장치는 Atmel ATSAMD20J18A 32비트 MCU를 BMA280 가속도계, BMG160 자이로스코프, BMM150 지자기 센서와 거의 동일한 센서와 통합한다(그림 1). BMF055의 센서는 동급의 독립형 센서와 일부 성능 값이 다르다는 점에 주의하라. 


그림 1: Bosch Sensortec BMF055는 센서를 Atmel Cortex-M0+ 기반 MCU와 결합하여 센서의 원시 데이터를 수집하고 센서 융합을 수행하는 방식으로 방향 및 관성 측정 응용 분야의 센서 시스템 설계를 간소화한다(이미지: Bosch Sensortec).

ARM® Cortex®-M0+ 코어를 기반으로 한 내장형 Atmel ATSAMD20J18A MCU는 32Kbyte의 SRAM과 256Kbyte의 플래시 메모리를 통합한다. 이 장치는 로컬 호스트로서 SPI 버스를 통해 원시 센서 데이터를 얻고 모듈 내에서 센서 융합 소프트웨어 알고리즘을 실행한다. 그 후 Atmel MCU가 USART 인터페이스를 통해 외부 호스트와 통신하여 최종 센서 융합 결과를 전송한다.

하드웨어 설계는 직관적이다. BMF055는 센서 융합 설계를 완성하는 데 외부 32KHz 수정과 커패시터만 있으면 된다(그림 2). 실제로 Bosch Sensortec BMF055 평가 키트는 BMF055와 모든 필수 부품이 포함된 작은 기판을 브레이크아웃 기판과 결합하여 바로 사용할 수 있는 단순한 개발 플랫폼을 제공한다. 


그림 2: Bosch Sensortec BMF055는 방향 센서 시스템을 구현하는 데 추가 부품이 거의 필요하지 않으며 센서 융합 결과를 개발하여 호스트 시스템에 전달하는 데 필요한 직렬 인터페이스도 제공한다(이미지: Bosch Sensortec).

BMF055 SiP는 센서 융합 설계의 하드웨어 구현을 가로막는 커다란 장벽을 제거한다. 자체적 센서 융합 알고리즘을 작성해야 하는 개발자는 자체적 MCU 기반 센서 융합 설계를 만드는 대신 BMF055를 통합 대체품으로 사용할 수 있다. 실제로 Bosch Sensortec은 Atmel 소프트웨어 프레임워크(ASF)를 기반으로 한 다층 아키텍처 내부에 BSX-Lite 센서 융합 라이브러리를 제공한다.

소프트웨어 패키지는 BSX-Lite 라이브러리, 센서 드라이버, 기본 ASF 드라이버에 액세스할 수 있도록 각 층에서 일련의 API를 노출한다(그림 3). 실제 런타임 코드는 배포와 함께 제공되는 패키지 라이브러리에 들어 있다. 개발자는 제공된 스택에서 애플리케이션을 빠르게 구축하고, 필요에 따라 특정 응용 분야의 요구 사항에 맞게 전용 센서 융합 라이브러리를 대체할 수 있다.  


그림 3: Bosch Sensortec은 BSX-Lite 센서 융합 라이브러리, 센서, Atmel 소프트웨어 프레임워크(ASF)에 대한 API 액세스를 제공하는 센서 융합 소프트웨어 패키지를 제공한다(이미지: Bosch Sensortec).

Bosch Sensortec 소프트웨어 패키지에는 다양한 장치 작업을 실행하기 위한 높은 수준의 호출을 보여 주는 샘플 코드도 포함되어 있다(코드 목록). 소프트웨어에서 각 센서의 등급을 제공하므로 해당 등급의 인스턴스에 적합한 메서드를 호출하기만 하면 특정 센서에서 데이터를 읽을 수 있다. 센서 지원 라이브러리에 있는 낮은 수준의 루틴은 SiP 모듈의 내부 SPI 버스를 통해 센서 장치 레지스터에 액세스하기 위해 내장형 MCU에서 실행하는 필수 버스 판독을 수행한다.

void bmf055_sensors_initialize (void)
 {
       /* Initialize BMA280 */
       bma_init();
      
       /*BMA settings for running BSXLite: Range = 2G, BW = 62.5Hz*/
       bma2x2_set_range(BMA2x2_RANGE_2G);
       bma2x2_set_bw(BMA2x2_BW_62_50HZ);
      
       /* Initialize BMG160 */
       bmg_init();
      
       /* BMG settings for running BSXLite: Range = 500dps, BW = 64Hz*/
       bmg160_set_range_reg(0x02);
       bmg160_set_bw(0x06);
      
       /* Initialize BMM150 */
       bmm_init();
      
       /*BMM settings for running BSXLite: Preset mode = Regular, Functional state = Forced mode*/
       bmm050_set_presetmode(BMM050_PRESETMODE_REGULAR);     
       bmm050_set_functional_state(BMM050_FORCED_MODE);
 }
코드 목록. BMF055 소프트웨어 패키지에는 장치의 세 가지 통합 센서 초기화와 같은 작업에서 높은 수준의 루틴 사용법을 보여 주는 샘플 루틴이 포함되어 있다(코드 출처: Atmel/Bosch Sensortec).

드롭인 솔루션 

프로그래밍 기능을 완벽히 갖춘 BMF055는 맞춤형 기능이 필요한 응용 분야에 효과적인 솔루션을 제공하며 특수 센서 융합 계산 기능도 제공한다. 신속한 드롭인 솔루션을 찾는 개발자에게 적합한 Bosch Sensortec BNO055는 센서 융합 펌웨어를 센서 및 MCU와 통합하여 펌웨어에서 생성된 높은 수준의 정보를 직접 출력한다. BNO055는 호스트에서 가속도, 선형 가속도, 중력 벡터, 자기장 강도, 각 속도, 온도, 오일러 각의 방향이나 쿼터니언을 포함한 최종 결과를 얻을 수 있게 해 주는 레지스터 기반 접근 방식을 사용한다.

하드웨어 통합을 위해 모듈은 호스트에 연결하는 데 사용할 I2C 및 UART 포트를 제공하며, BMF055와 같은 기본 수정 및 커패시터 보완 부품을 필요로 한다. BMF055와 마찬가지로 Bosch Sensortec은 장치와 필요한 부품 모두가 포함된 BNO055 개발 기판도 제공한다.

BNO055에서 센서 융합 계산을 수행하고 최종 결과를 제공하므로 소프트웨어 인터페이스는 비교적 단순하다. 외부 호스트에서 I2C 또는 UART 하드웨어 인터페이스를 통해 장치에 액세스하는 데 필요한 버스 읽기 및 쓰기를 기본 장치 드라이버에서 처리한다.

낮은 수준의 소프트웨어 루틴에서 BNO055의 전용 레지스터에 액세스하여 특정 센서 융합 결과를 검색한다. 예를 들어, 드라이버 루틴 bno055_read_accel_xyz()는 원시 선형 가속도 데이터를 읽고 bno055_convert_float_accel_xyz_msq() 함수는 데이터를 m/s2 단위의 부동소수점 값으로 변환한다.

결론 

증강현실, 드론, 스마트폰과 같은 응용 제품에서는 방향과 움직임을 결정하는 능력이 매우 중요하다. 센서 융합은 여러 센서를 기반으로 하여 가장 분명하고 빠르게 정보를 제공할 수 있다. 이러한 정보는 개별 센서로는 생성이 불가능하다. 설계자는 적합한 센서 솔루션을 작성할 때 하드웨어 설계와 소프트웨어 개발 모두에서 심각한 어려움을 겪게 된다.

BMF055 및 BNO055 장치는 센서 융합 설계를 위한 맞춤형 드롭인 솔루션을 빠르게 개발하기 위한 요구 사항을 충족한다.

<저작권자(c)스마트앤컴퍼니. 무단전재-재배포금지>


  •  홈페이지 보기
  •  트위터 보기
  •  페이스북 보기
  •  유투브 보기
  • 100자평 쓰기
  • 로그인


태그 검색
본문 검색
TOP