고성능 IoT 종단점에서 조회 테이블을 사용할 경우 외부 플래시 메모리의 이점 | 반도체네트워크

죄송합니다. 더 이상 지원되지 않는 웹 브라우저입니다.

반도체네트워크의 다양한 최신 기능을 사용하려면 이를 완전히 지원하는 최신 브라우저로 업그레이드 하셔야 합니다.
아래의 링크에서 브라우저를 업그레이드 하시기 바랍니다.

Internet Explorer 다운로드 | Chrome 다운로드

고성능 IoT 종단점에서 조회 테이블을 사용할 경우 외부 플래시 메모리의 이점


PDF 다운로드



글/Bill Giovino, Digi-Key


사물 인터넷(IoT) 네트워크가 점점 복잡해지면서 IoT 종단점은 말단에서 더 복잡한 작업을 수행한다. 따라서 클록 속도가 더 빠르고, 메모리가 더 많고, 프로세서 코어가 더 강력한 마이크로 컨트롤러를 포함하는 시스템으로 기존 종단점을 업그레이드해야 할 수 있다.
또한 높은 수준의 정확도를 갖춘 센서 및 아날로그 디지털 컨버터(ADC)가 필요하며 주기적으로 보정해야 할 수 있다. 공식을 사용하여 선형 오차를 쉽게 보정할 수 있다. 하지만 비선형 오차는 센서 판독값을 기준으로 설정된 편차 패턴을 따르지 않으므로 수학적으로 쉽게 보정할 수 없다. 펌웨어에서 비선형 오차를 보정하는 가장 간단한 방법은 필요한 수정 데이터를 데이터 조회 테이블과 함께 메모리에 저장하는 것이다.
이 기사에서는 센서와 ADC 오류를 간략하게 살펴보고 데이터 조회 테이블을 사용하여 오류를 수정할 때의 이점을 설명한다. 그런 다음 외부?ON Semiconductor?LE25S161PCTXG?직렬 주변 장치 인터페이스(SPI) 플래시 메모리 칩을 사용하여?STMicroelectronics?STM32L496VG마이크로 컨트롤러 기반 시스템에서 실질적이고 비용 효율적인 데이터 플래시 조회 테이블을 구현하는 방법을 설명한다.

센서 오차
온도, 압력, 전압 등 아날로그 조건을 감지하는 센서는 비선형 오차를 발생할 수 있다. 프로젝트 개발 단계 중에 정확한 레퍼런스를 기준으로 센서를 테스트하고 레퍼런스 값을 센서의 디지털 출력과 비교해야 한다. 그러면 개발자가 레퍼런스 값과 센서 편차의 특성을 조기에 파악하고 응용 분야의 요구 사항에 따라 편차가 허용 가능한지 여부를 결정할 수 있다. 그런 다음 편차를 보정해야 할지 여부를 결정하고, 보정이 필요한 경우 하드웨어에서 보정할지 펌웨어에서 보정할지 여부를 결정할 수 있다.
일부 센서 오차는 예측 가능한 선형 오차일 수 있다. 이러한 오차를 보정하는 것은 센서 출력에서 상수 값을 더하거나 빼는 것만큼 간단할 수 있다. 이러한 오차는 센서의 크기에 따라 달라질 수 있다. 예를 들어, 0부터 전체 크기의 1/3까지는 상수를 더해야 하고, 1/3부터 1/2 크기까지는 다른 상수가 필요할 수 있다.
이러한 오차는 예측 가능하고 쉽게 수정할 수 있다. 하지만 누적 판독값 기준 오차는 시간에 따라 변경될 수 있다. 또한 극한 온도, 높은 주위 습도, 센서 노화 등에 노출되어 나중에 새로운 센서 오차가 발생할 수 있다. 이러한 오차를 수정해야 하는지 여부는 항상 응용 제품에 따라 다르다. 센서 동작을 파악하기 위해 극한의 온도, 압력 및 습도에서 시스템을 테스트해야 할 수도 있다. 이러한 환경 테스트는 자동차, 군사, 일부 산업용 시스템 등과 같은 응용 분야에서 필요하다. 하지만 대부분의 새로운 IoT 종단점은 이전의 센서가 경험하지 않은 길을 걷고 있으므로 센서 테스트가 새롭게 요구될 수 있다.
또한 ADC와 같은 일반 마이크로 컨트롤러 아날로그 주변 장치는 아날로그 센서처럼 주기적인 시스템 내부 보정이 필요할 수 있다. ADC 오류가 항상 예측 가능한 것은 아니다. 알고리즘을 통해 초기 오류를 보정할 수 있더라도 시간에 따라 오류가 변경되어 알고리즘으로 쉽게 보정하지 못할 수도 있다. 이 경우 시스템이 더 이상 필요한 정확도로 작동할 수 없으므로 높은 교체 비용이 발생한다.

데이터 조회 테이블을 사용하여 아날로그 센서 오차를 보정할 경우의 이점
데이터 조회 테이블은 삼각 함수처럼 복잡하거나 바이트 비트 반전 또는 그레이 코드로 바이트 변환처럼 간단한 일반 계산을 빠르게 수행할 수 있는 실질적이고 효과적인 방법이다. 바이트 비트 반전에서 256바이트 조회 테이블을 사용하면 펌웨어에서 비트 반전을 수행할 때보다 훨씬 빠르다. 이 조회 테이블은 약간의 공간만 차지하고 변경할 필요가 없으므로 프로그램 또는 데이터 플래시 메모리에 저장하는 것이 좋다.
또한 데이터 조회 테이블은 센서 보정 데이터를 저장하는 매우 실용적인 방법이다. 마이크로 컨트롤러 아날로그 주변 장치(예: 내장된 ADC)는 아날로그 센서와 정확히 동일한 방법을 사용하여 주기적으로 보정해야 할 수 있다. 대부분의 마이크로 컨트롤러에서 발견되는 ADC의 정확도는 ±2 또는 ±3 최하위 비트(LSB)이다. 이 값은 대부분의 응용 제품에 적합할 수 있지만 높은 정확도가 필요한 시스템의 경우 ADC를 주기적으로 보정하는 것이 좋다.
24비트 데이터를 수정하는 부분 보정 조회 테이블은 표 1과 비슷하다.

        센서 판독값              센서 보정값
                  :                                  :
            01 AB 24h                   00 01 AB 21h
            01 AB 25h                   00 01 AB 22h
            01 AB 26h                   00 01 AB 24h
                  :                                  :

[표 1] 24비트 보정 데이터를 위한 데이터 조회 테이블 예의 일부이다. 원시 입력값은 오차를 보정해야 하는 소스 판독값이다. 이 원시값은 24비트 주소로 사용되며 최상위 바이트가 항상 00h인 해당 32비트 보정값을 조회하는 데 사용된다.

이 예에서 원시 입력값은 오차를 보정해야 하는 소스 판독값이다. 이 원시값은 24비트 주소로 사용되며 최상위 바이트가 항상 00h인 해당 32비트 보정값을 조회하는 데 사용된다. 조회 테이블이 주소 0에서 시작되지 않는 경우 원시 입력값에 오프셋을 더할 수 있다.
조회 테이블을 저장할 위치를 결정하기 전에 조회 테이블의 크기와 조회 테이블을 다시 작성해야 하는지 여부를 결정하는 것이 좋다. 둘 다 중요한다. 마이크로 컨트롤러에 사용 가능한 온칩 플래시에 맞는 조회 테이블은 다시 작성할 필요가 없는 경우에 적합하다. 하지만 센서를 주기적으로 다시 보정해야 하는 경우 즉, 내부 플래시를 다시 작성해야 하는 경우 전체 플래시 섹터에서 테이블을 지우고 다시 프로그래밍해야 한다.
플래시 섹터가 프로그램 메모리와 공간을 공유하는 경우 코드를 다시 컴파일해야 할 수 있다. 조회 테이블이 전용 섹터에 있더라도 나중에 메모리 요구 사항이 변경되거나 확장되면 추가 코드를 위해 조회 테이블 섹터 공간의 일부가 용도 변경될 수 있다. 이 경우 현장에서의 센서 보정이 복잡해지며, 네트워크에서 다시 컴파일된 코드를 다운로드하도록 요구하여 IoT 종단점을 독자적으로 자체 보정하는 것을 방지할 수 있다. 센서가 여러 개 사용되는 경우 문제는 더욱 복잡해진다.
온칩 플래시 프로그램 메모리의 경우 대규모 조회 테이블(예: 16,777,216개 항목 테이블)에서 24비트 디지털 데이터를 보정하는 것이 실용적이지 않거나 불가능할 수 있다. 항목을 하나씩 건너뛰며 저장하고 기존 테이블 데이터를 기반으로 하여 누락된 항목에 대한 결과를 보간할 경우 조회 테이블의 크기를 1/2로 줄일 수 있다. 이 경우 약간의 성능 감소와 ±1LSB의 정확도 손실이 발생한다. 하지만 이 8,388,608개 항목 조회 테이블은 내부 플래시에 저장하는 것이 실용적일 수 있다.
마이크로 컨트롤러 기반 시스템의 대규모 데이터 조회 테이블에 가장 적합한 솔루션은 외부 플래시 메모리이다. 그러면 내부 플래시 프로그램 메모리에 영향을 주지 않고 수 MB의 조회 테이블을 쉽게 추가할 수 있다. 또한 마이크로 컨트롤러의 내부 플래시 메모리를 방해하지 않고 시스템에서 조회 테이블을 쉽게 다시 작성할 수 있다.
고성능 시스템의 경우 프로그램 메모리 확장과 데이터 메모리 확장 모두에서 외부 병렬 플래시 메모리를 추가하는 것이 일반적이다. 하지만 외부 데이터 버스가 장착된 마이크로 컨트롤러가 필요하다. 추가 주소와 데이터 버스 및 필요한 제어 신호에서 36개 이상의 마이크로 컨트롤러 핀을 사용할 수 있다. 이 요구 사항은 응용 제품에 사용 가능한 마이크로 컨트롤러를 제한한다. 또한 이러한 외부 버스는 추가 PC 기판 공간을 차지하며 시스템의 전자파 장해(EMI)를 높일 수 있다.
대부분의 시스템에 가장 적합한 솔루션은 데이터 전송에 직렬 주변 장치 인터페이스(SPI)를 사용하는 외부 직렬 데이터 플래시 메모리를 사용하는 것이다. 이 경우 마이크로 컨트롤러에 핀이 4개만 필요하다.
이러한 플래시 메모리 장치의 좋은 예로 ON Semiconductor의 LE25S161PCTXG를 들 수 있다. 이 장치는 70MHz SPI 클록을 지원하는 16Mb 직렬 플래시 메모리 장치이다. 하지만 140Mb/초의 최고 속도로 데이터를 전송할 수 있는 이중 SPI 모드도 지원한다. 장치의 읽기, 쓰기 및 저전력 모드를 구성하는 데 내부 상태 레지스터가 사용된다.
LE25S161PCTXG에서는 클록, 데이터, 칩 선택을 위해 일반 SPI 신호를 사용한다(그림 1). 또한 두 개의 추가 핀이 있다. WP\는 장치의 상태 레지스터에 대한 쓰기를 금지하는 Low 활성 쓰기 금지 신호이다. 이 신호를 사용하여 우선순위가 낮은 펌웨어 작업에서 장치를 무단으로 다시 쓰지 않도록 할 수 있다. HOLD\는 진행 중인 데이터 전송을 일시 중지한다. 이 기능은 데이터를 전송 중인 동안 마이크로 컨트롤러에서 인터럽트를 처리해야 하는 경우에 유용하다. 인터럽트가 처리될 때까지 데이터 전송을 일시 중지했다가 중단된 위치에서 다시 시작할 수 있다.

AR(고성능)-1.jpg

[그림 1] ON Semiconductor의 LE25S161PCTXG 직렬 플래시 메모리는 실장 면적이 3mm x 4mm인 초소형 8핀 UDFN 패키지에서 사용 가능하며 클록, 데이터 및 칩 선택을 위한 일반 SPI 신호를 사용한다.

이 장치에 저장된 간단한 2열 조회 테이블을 읽는 가장 쉬운 방법은 센서 판독값을 가져와서 오프셋에서 메모리를 추가한 다음 해당 주소 위치에서 메모리 콘텐츠를 읽는 것이다. 이 주소의 메모리 콘텐츠는 수정된 센서 판독값을 나타낸다.
고성능 IoT 종단점에는 빠른 클록 속도, 고성능 프로세서 및 유연한 SPI가 필요하다. 이러한 응용 분야를 위해 STMicroelectronics는 고성능?STM32L4?마이크로 컨트롤러 제품군을 제공한다. 예를 들어, STM32L496VG 마이크로 컨트롤러는 80MHz에서 실행되고 부동 소수점 처리 장치(FPU)가 포함된?Arm® Cortex®-M4 코어를 가진 STM32L4 제품군의 구성품이다. 이 장치에는 8Mb 플래시와 320KB SRAM이 있다. 이 장치는 1.71V~3.6V의 작동 전압을 지원하며 ON Semiconductor LE25S161PCTXG의 작동 전압 1.65V~1.95V와 겹친다.
STM32L496VG에는 캘린더 기능이 있는 실시간 클록(RTC) 1개, 초당 5Ms(MSPS) ADC 3개, 2채널 디지털 아날로그 컨버터(DAC) 1개, 계측 제어기 통신망(CAN) 인터페이스 2개, I2C 인터페이스 4개를 비롯하여 고성능 IoT 종단점을 위한 전체 주변 장치가 있다(그림 2). 또한 표준 SPI 인터페이스 3개와 쿼드 SPI 인터페이스 1개가 있다.

AR(고성능)-2.jpg

[그림 2] STM32L496 마이크로 컨트롤러는 FPU가 포함된 80MHz Arm Cortex-M4를 기반으로 하며 40MHz 쿼드 SPI 인터페이스를 비롯한 전체 주변 장치 어레이가 있다.

STM32L496VG 개발은?STM32L496G-DISCO?Discovery 기판에서 지원된다(그림 3). 이는 IoT 종단점을 위한 전체 기능을 갖춘 개발 기판이며 스테레오 미세 전자 기계 시스템(MEMS) 마이크, 8비트 카메라 커넥터, LED 8개, 4방향 조이스틱, 240픽셀 x 240픽셀 컬러 LCD를 포함한다. 커넥터 핀에서 ADC 입력, 쿼드 SPI 핀 및 대부분의 I/O를 사용할 수 있다.

AR(고성능)-3.jpg

[그림 3] STM32L496G-DISCO Discovery 기판은 ST32L496VG용 하드웨어 및 펌웨어 개발을 위한 전체 평가 환경이다.

STM32L496VG의 쿼드 SPI는 40MHz의 최대 SPI 클록과 표준 및 메모리 매핑 SPI 모드를 지원한다. 쿼드 SPI는 이중 SPI 모드를 지원하여 최대 80Mb/초로 데이터를 전송할 수 있다.
STMicroelectronics의 쿼드 SPI는 직렬 데이터 플래시 메모리 장치에 빠른 인터페이스를 제공한다. 표준 SPI 모드에서 모든 작업은 SPI 레지스터를 사용하여 수행된다. SPI 데이터 레지스터를 읽고 써서 데이터를 전송한다. 데이터를 수신할 때 인터럽트가 생성된다. 이는 STM32L496VG의 세 표준 SPI와 동일한 작동 모드이다. 표준 SPI 모드에서는 단일, 이중 및 쿼드 데이터 전송을 지원한다. ON Semiconductor LE25S161은 단일 및 이중 SPI 모드를 지원하며 이중 SPI 모드에서 STM32L496VG와 쉽게 연결될 수 있다(그림 4).

AR(고성능)-4.jpg

[그림 4] STMicroelectronics STM32L496VG의 쿼드 SPI 직렬 포트는 이중 SPI 모드에서 ON Semiconductor LE25S161에 접속하여 80Mb/초의 40MHz SCLK에서 SIO0 및 SIO1을 따라 양방향으로 데이터를 전송할 수 있다.

ON Semiconductor 및 STMicroelectronics의 부품을 선택하여 이 상황에서 데이터 조회 테이블을 간단하고 쉽게 구현할 수 있다. 또한 쿼드 SPI에는 대용량 데이터 전송에 유용한 FIFO가 있다. 하지만 한 번에 하나의 메모리 위치에만 액세스해야 하는 조회 테이블의 경우 FIFO는 필요하지 않고 불필요한 지연 시간을 늘릴 수 있으므로 비활성화하는 것이 좋다.

메모리 매핑 모드를 지원하는 쿼드 SPI

또한 쿼드 SPI는 메모리 매핑 모드를 지원한다. 이 모드에서는 외부 직렬 플래시를 마이크로 컨트롤러의 프로그램 또는 데이터 메모리 공간에 매핑한다. 그러면 마이크로 컨트롤러 펌웨어에서 외부 SPI 플래시를 마이크로 컨트롤러의 자체 메모리인 것처럼 액세스할 수 있다. 따라서 쿼드 SPI가 펌웨어에 투명하게 작동한다.
조회 테이블에 자주 액세스하는 경우 메모리 매핑 모드에서 조회 테이블을 구현하면 표준 SPI 모드에 비해 응용 제품 펌웨어를 간소화하는 것 이외에 큰 이점이 없을 수도 있다. 하지만 응용 제품이 인터럽트가 빈번한 환경인 경우 응용 제품을 처리하기 위해 SPI 전송이 반복적으로 중단될 수 있다. 다른 응용 제품에 대해 쿼드 SPI 조회 작업 하나를 중단할 경우 더욱 복잡해질 수 있다.
조회 테이블에 빈번하게 액세스하고 인터럽트가 잦은 환경에서는 메모리 매핑 모드가 표준 SPI 모드에 비해 더 효과적일 수 있다. 이는 펌웨어를 간소화하고, 우선순위가 다른 쿼드 SPI를 동시에 액세스하므로 문제가 예방되며, 인터럽트 충돌을 줄인다.
하지만 메모리 매핑 조회 테이블을 구현할 경우 데이터 캐시가 무효화될 수 있다는 한 가지 단점이 있다. STM32L496에는 데이터 캐시가 없지만 고성능 실시간 응용 분야를 대상으로 하는 일부 마이크로 컨트롤러에는 데이터 캐시가 있다. 조회 테이블에 액세스할 때 캐시가 누락될 가능성이 있다. 이는 대부분의 응용 분야에서 동일한 스레드 또는 하위 루틴에서 동일한 조회 테이블 위치에 두 번 액세스해야 할 가능성이 매우 낮기 때문이다. 따라서 조회 테이블 데이터는 처음에는 캐시되지 않고, 데이터를 캐시하면 중요한 데이터가 데이터 캐시에서 제거될 수 있다. 이는 초고성능 응용 분야에서만 문제가 되며, 이러한 고성능 응용 분야에서는 처음에 데이터 캐시가 필요하다.
조회 테이블에 의한 데이터 캐시 오염에 대한 솔루션은 제한된다. 하드웨어에서 지원하는 경우 조회 테이블 영역을 캐시 불가능으로 표시할 수 있다. 다른 솔루션은 조회 테이블에 액세스하기 전후에 데이터 캐시를 비활성화했다가 다시 활성화하는 것이다. 이 방법은 캐시를 켜고 끌 때 성능 저하가 허용되는 경우에 사용할 수 있다. 일부 데이터 캐시는 캐시 오염을 방지하기 위해 지원할 수 있는 아키텍처 특정 캐시 제어 명령을 지원한다. 데이터 캐시를 구성할 때 시스템 성능을 벤치마킹하여 특정 응용 분야에 가장 적합한 방법을 찾아야 한다.
트레이스가 120mm를 초과하지 않도록 직렬 플래시를 PC 기판에 배치해야 한다. 전파 방해를 방지하려면 다른 신호와의 SPI 클록 신호 경로가 PC 기판 트레이스 폭의 최소 3배 이상이어야 한다. 스큐를 방지하려면 모든 양방향 데이터 신호가 서로 10mm 이내에 있어야 한다.

결론

외부 SPI 플래시 장치는 IoT 종단점에서 대규모 데이터 조회를 구현하는 데 효과적인 솔루션이다. 시스템 내에서 쉽게 다시 프로그래밍하고, 쉽게 업그레이드 가능하며 최소한의 마이크로 컨트롤러 리소스를 사용한다.

leekh@seminet.co.kr
(끝)
<저작권자(c) 반도체네트워크, 무단 전재-재배포 금지>

X


PDF 다운로드

개인정보보호법 제15조에 의한 수집/이용 동의 규정과 관련하여 아래와 같이 PDF 다운로드를 위한 개인정보 수집 및 이용에 동의하십니까? 동의를 거부할 수 있으며, 동의 거부 시 다운로드 하실 수 없습니다.

이메일을 입력하면,
(1) 신규참여자 : 성명/전화번호/회사명/분야를 입력할 수 있는 입력란이 나타납니다.
(2) 기참여자 : 이메일 입력만으로 다운로드가 가능합니다.

×

회원 정보 수정