사전 고려 사항
이 섹션에서는 하드웨어 선정에 앞서 고려해야 할 사항을 알려드리겠습니다. 제품이 각기 다르고 저마다 다른 기준과 요구사항을 가지고 있기 때문에 결정에 앞서 아래의 항목을 생각해 보아야 합니다.
우선 디스플레이의 외관, 시스템의 메모리 요구사항, 원하는 UI 성능, 그리고 제품의 물리적 디자인과 관련하여 다루겠습니다.
디스플레이 해상도
디스플레이는 다양한 해상도와 화면 비율로 출시됩니다. TouchGFX는 이러한 파라미터들에 의존하지 않습니다. 디스플레이 해상도는 적합한 하드웨어를 선정할 때 고려하는 중요 요소 중 하나입니다. 해상도가 높다는 것은 픽셀 수가 많다는 뜻이고, 따라서 더 많은 데이터를 렌더링 및 전송할 수 있다는 의미입니다.
STM32 마이크로컨트롤러는 보통 16/24bpp에서 최대 XGA 해상도(1024*768)를 지원하고, 와이드 디스플레이나 라운드 디스플레이와 같은 비표준 해상도도 지원합니다. 해상도가 XGA보다 높으면 보통은 색 심도나 FPS(Frames Per Second)가 낮아지게 됩니다.
다음은 표준 해상도에 관한 세 가지 예시입니다.
픽셀 밀도가 크면 보통 비용이 높아지지만, 크기가 큰 디스플레이는 해상도가 높아야 선명하게 보이기 때문에 픽셀 밀도도 함께 고려해야 합니다.
애플리케이션에 맞는 해상도를 선택할 때는 다음 사항을 고려해야 합니다.
- 목표로 하는 최종 사용자층은 누구인가? 소비자들은 주로 더 높은 픽셀 밀도를 요구하지만, 일부 산업용 애플리케이션에서는 비용 절감이나 통합 편의성을 위해 픽셀 밀도를 포기할 수 있습니다.
- 애플리케이션에서 작은 텍스트를 많이 사용할 것인가? 작은 텍스트로 이루어진 큰 블록들은 보통 픽셀 밀도가 높기 때문에 해상도가 더 높은 디스플레이에서 더 잘 읽을 수 있습니다.
- 각기 다른 다수의 요소를 한 번에 한 화면에 표시할 것인가? 디스플레이가 더 크면 사용할 수 있는 인치 수가 커지기 때문에 더 많은 요소를 표시하거나 특정 요소를 보다 선명하게 표시할 수 있습니다.
색 심도
두 번째로 중요한 요인은 바로 색 심도(bpp)입니다. 색 심도는 한 이미지에서 픽셀당 저장할 수 있는 정보의 양, 즉 단일 픽셀에 할당할 수 있는 색상의 수를 나타냅니다.
디스플레이는 다양한 색 심도를 지원하고 24bpp 디스플레이에서 16bpp GUI 애플리케이션을 실행하는 것이 가능하지만, 16비트 색상만 표시할 수 있는 디스플레이에서 24bpp 애플리케이션을 실행할 때는 어려움이 있을 수 있습니다.
색상이 미묘하게 다른 복잡한 이미지를 표시하기 위해서는 소스 이미지에 최대한 근접하도록 더 높은 색 심도가 필요합니다. 선택한 색 심도는 필요한 메모리의 양에 영향을 미칩니다.
색 심도를 낮춰서 얻을 수 있는 이점을 과소 평가할 수 없습니다. 오늘날 다수의 UI 설계 철학이 평탄화되고 색상 집약도가 낮은 애플리케이션(예: Google의 Material Design)을 중심으로 전개되고 있기 때문입니다. TouchGFX의 디더링 알고리즘 세트 중 하나를 적용하여 복잡한 이미지를 낮은 색 심도로 더욱 유용하게 사용할 수 있습니다. 아래는 색 심도를 낮춰서 얻을 수 있는 이점에 대한 몇 가지 예시입니다.
애플리케이션에 맞는 색 심도를 선택할 때는 다음과 같은 사항을 자문해봐야 합니다.
- 실제 이미지를 표시해야 하는가? 실제 이미지나 다층 구성 이미지를 사용하는 경우에는 애플리케이션과 디스플레이 모두 24bpp 픽셀을 사용하는 것이 좋습니다. 경우에 따라 16bpp로는 필요한 색상을 모두 표시하기에 충분하지 않을 수도 있기 때문입니다. 하지만 대부분의 경우에는 16bpp로도 충분하기 때문에 아직까지 업계 표준 중 하나로 사용되고 있습니다.
- 그레이 스케일 색상이나 간단한 6/8bpp만 있어도 애플리케이션에 필요한 기능을 전달할 수 있는가? 애플리케이션에서는 기능을 제대로 전달하는 데 무분별하게 많은 색상이 필요하지 않기 때문에 낮은 색 심도를 선택해도 됩니다. 또한 프레임버퍼 크기와 그에 따른 RAM 요구사항도 줄일 수 있습니다.
- RAM과 플래시에 제한이 있는가? 색 심도를 제한하면 필요한 비트맵과 프레임버퍼(RAM)의 크기가 모두 줄어들게 됩니다.
프레임버퍼 크기 계산
프레임버퍼는 프레임의 픽셀 데이터가 저장되어 렌더링되고 디스플레이에 전송되는 장소입니다. 픽셀 수가 많고 색 심도가 높을수록 RAM과 디스플레이 인터페이스에 요구되는 처리량도 높아지기 때문에 프레임버퍼의 크기가 중요합니다.
프레임버퍼의 크기(바이트)는 다음과 같이 계산됩니다.
디스플레이 너비 * 디스플레이 높이 * (픽셀당 비트 수/ 8)
예를 들어 색 심도가 16bpp이고 단일 버퍼프레임을 가진 800x480 애플리케이션에서 할당되는 프레임버퍼의 크기는 다음과 같습니다.
800 * 480 * (16 / 8) = 768.000 바이트(768.000/1024 = 750KB)
해상도와 색 심도를 결정했다면 이를 뒷받침할 수 있는 충분한 양의 RAM이 필요합니다. 어떤 애플리케이션에서는 2개의 프레임버퍼가 필요한데, 위의 예시로 보자면 750 KB * 2 = 1500 KB의 RAM이 필요합니다.
Further reading
디스플레이
인터페이스
디스플레이 인터페이스(예: SPI, LTDC, MIPI-DSI)가 각기 다른 디스플레이를 선택하는 것도 가능합니다. 모든 인터페이스는 필요한 핀의 수, 대역폭, 지원되는 해상도, 그리고 필요한 외부 RAM의 양에 각기 다른 영향을 미칩니다. 이에 대한 자세한 내용과 각각의 장단점은 디스플레이 섹션을 참조하십시오.
크기
디스플레이의 물리적 크기 역시 중요한 고려 사항입니다. 디스플레이가 더 크면 보통 조작하기가 더 쉽고 정밀한 터치 명령을 쉽게 내릴 수 있지만, 눈이 편하기 위해서는 더 높은 해상도가 필요하기 때문에 메모리와 처리량에 대한 요구가 증가하게 됩니다. 디스플레이의 정보가 1 ~ 2미터 거리에서도 보인다면 텍스트, 아이콘 등의 크기가 충분히 커야 합니다.
터치
터치 디스플레이에는 크게 두 가지 유형이 있습니다.
정전식
정전식 터치 디스플레이는 터치 감도가 훨씬 뛰어납니다. 이러한 터치 감도는 드래그나 스와이프와 같은 고급 터치 조작이 필요한 애플리케이션에서 중요하며, 이런 이유로 최신 디바이스에서 가장 많이 사용되고 있습니다.
하지만 값이 비싸며 장갑을 착용한 상태에서는 사용할 수 없다는 단점이 있습니다. 이러한 단점이 문제가 되는 경우에는 감압식이 해결책입니다.
감압식
값이 더 저렴한 대안 솔루션으로, 감도와 햇빛에서의 가시성이 떨어진다는 단점이 있지만 장갑을 착용한 상태에서 사용할 수 있습니다. 의도치 않은 터치에 덜 민감하며 일반적으로 저항이 더 강하기 때문입니다.
단순하게 버튼을 누르는 것으로 모든 터치 조작이 가능한 경우에는 감압식 디스플레이로도 충분합니다. STM32F429-DISCO 보드는 감압식 터치 디스플레이를 사용하고 있습니다.
애니메이션
하드웨어의 처리량과 계산 능력이 충분하지 않은 경우에 전체 화면 전환, 회전 및 크기 변환과 같은 복잡한 애니메이션을 실행하면 성능에 중대한 영향을 미칠 수 있습니다.
애플리케이션에서 애니메이션 수준을 결정할 때는 다음과 같은 사항을 고민해봐야 합니다.
- 고속 전체 화면 전환 기능이 필요한가? 전체 화면을 전환하려면 전체 프레임버퍼를 렌더링해야 하기 때문에 MCU 주기가 충분한지, 픽셀 데이터의 액세스 및 전송 속도가 충분히 빠른지가 매우 중요합니다. 필요한 시스템 성능은 해상도와 색 심도에 따라 결정됩니다. STM32 고성능 제품에서는 대체로 고해상도 전체 화면 전환을 사용하는 것이 좋습니다. 일부 전환에서는 별도의 스토리지가 필요할 수 있기 때문에 필요한 메모리의 양이 늘어날 수 있습니다.
- 회전이나 크기 변환과 같은 복잡한 텍스처 매핑 애니메이션이 필요한가? 텍스처 매핑 애니메이션은 계산 및 비트맵 전송 시 시스템에서 상당히 집약적으로 이루어질 수 있기 때문에 일반적으로 더 높은 MHz와 많은 메모리 처리량을 요구합니다.
기구적 설계 요구사항
제품의 물리적 케이스에 대한 요구사항은 매우 다양하고 이는 하드웨어 선택에 영향을 미칠 수 있습니다. 가전 제품은 위험한 산업용 제품과는 다른 별도의 요구사항들이 있을 것이기 때문에 물리적 제약사항을 밝힐 때 다음의 사항을 검토해야 합니다.
- 제품이 아주 작아야 하는가? 한 예로 스마트워치는 케이스의 크기가 제한되어 있어 PCB 크기에도 제한이 있기 때문에 적합한 부품을 선택하는 것이 중요합니다. STM32는 WLCSP 패키지와 같이 광범위한 MCU 패키지를 제공하고 있습니다.
- 제품이 극한의 온도에 노출되는가? 정전식 디스플레이는 온도가 극심하게 높거나 낮을 때 성능이 떨어질 수 있습니다. 따라서 냉장실에 제품을 설치하는 경우에는 감압식 디스플레이가 더 적합합니다. STM32 제품 포트폴리오는 주변 온도 범위가 최대 85도, 105도 및 125도인 마이크로프로세서를 제공합니다.
- 제품이 물이나 먼지 같은 실외 환경 요인에 잘 견뎌야 하는가? 기술에 따라 품질과 기능이 천차만별이고, 보호 목적으로 커버 렌즈를 추가하는 것도 하나의 방법이 될 수 있습니다.
- 햇빛에 많이 노출된 상태에서 가시성이 중요한가? 디스플레이마다 칸델라(candela)와 루멘(lumen)이 서로 다르며, 디스플레이의 루멘과 칸델라가 높을수록 가독성이 더 높습니다. 이 경우 특수 커버 렌즈를 추가하여 가독성을 개선할 수 있으며 혹은 반사 기능을 제공할 수 있는 또 다른 디스플레이 기술을 사용할 수도 있습니다.
FPS(Frames Per Second)
애플리케이션이 훨씬 매끄럽게 보이도록 해준다는 점에서 더 높고 안정적인 FPS 수치를 선호하는 경우가 많습니다.
FPS가 비교적 덜 중요한 경우도 있는데, 디스플레이 애니메이션 업데이트가 최소한으로 이루어지는 정적인 GUI가 그렇습니다. 이 경우에는 저가의 하드웨어가 더 적합할 수 있습니다.
하지만 화려한 애니메이션이 다수 포함된 멋지고 부드러운 애플리케이션을 구축한다는 것은 대상 사용자층에 따라 엄청난 셀링 포인트가 될 수도 있습니다. 따라서 하드웨어 선택과 관련된 모든 파라미터들에서 그러하듯 최종 사용자의 기대를 충족하고 훌륭한 사용자 경험을 제공하는 것이 가장 중요합니다.
GUI의 전반적인 성능에 따라 시스템 수준의 성능이 결정되며, 이는 MCU, RAM, 플래시, 디스플레이, 인터페이스 처리량 및 하드웨어 기능(예: STM32 Chrom-ART)과 같은 구성요소를 설명합니다.
아래 그림들은 서로 다른 몇 가지 파라미터들이 미치는 영향을 일반화한 것입니다. 적합한 하드웨어를 선택하려면 이러한 파라미터들을 고려해야 합니다. 또한 STM32 Chrom-ART가 MCU의 부담을 덜어주고 이로 인해 어떤 경우에는 높은 MCU 주파수의 중요성을 낮춰준다는 점도 고려해야 합니다.