[태그:] Keyboard Matrix

  • 키보드 매트릭스 구조 완벽 이해|행과 열 스캔부터 NKRO까지

    키보드 매트릭스 구조 완벽 이해|행과 열 스캔부터 NKRO까지

    LINK&TEM GUIDE

    키보드 매트릭스 구조

    수백 개의 키를 적은 핀으로 읽어내는 원리부터 고스팅·N키 롤오버까지

    📌 핵심 요약
    • 키보드는 모든 키를 개별 배선하지 않고 행(Row)과 열(Column) 구조의 매트릭스로 구성됩니다.
    • 마이크로컨트롤러는 행과 열을 매우 빠르게 스캔하여 어떤 키가 눌렸는지 판단합니다.
    • 매트릭스 구조 덕분에 배선 수와 MCU 핀 수를 크게 줄일 수 있습니다.
    • 고스팅과 키 충돌은 매트릭스 구조 때문에 발생하며 다이오드가 이를 해결합니다.
    • USB HID와 Bluetooth HID로 전달되는 키 데이터도 결국 매트릭스 스캔 결과입니다.

    키보드를 분해해 보면 키는 80개가 넘는데 메인 칩으로 연결되는 배선은 생각보다 훨씬 적습니다. 처음 보는 사람이라면 “모든 키가 각각 연결되어 있지 않은데 어떻게 어떤 키를 눌렀는지 알 수 있을까?”라는 의문이 생깁니다.

    그 비밀이 바로 키보드 매트릭스(Keyboard Matrix) 구조입니다. 현대의 거의 모든 멤브레인 키보드와 기계식 키보드는 이 방식을 사용하며, MCU는 초당 수백~수천 번 행(Row)과 열(Column)을 스캔하여 입력을 감지합니다.

    이번 글에서는 키보드 매트릭스가 왜 필요한지부터 실제 스캔 과정, 고스팅(Ghosting), 키 충돌(Key Blocking), N-Key Rollover(NKRO)까지 순서대로 살펴보겠습니다.


    1. 키보드 매트릭스란?

    키보드 매트릭스는 여러 개의 키를 행(Row)과 열(Column)으로 구성하여 적은 수의 배선으로 많은 키를 연결하는 구조입니다.

    예를 들어 키가 100개 있다고 해서 배선도 100개가 필요한 것은 아닙니다. 10개의 행과 10개의 열만 있으면 100개의 교차 지점을 만들 수 있으며, 각 교차점마다 하나의 키를 배치할 수 있습니다.

    방식 100개 키 연결
    개별 배선 100개 이상의 MCU 핀 필요
    10×10 매트릭스 20개의 신호선만 사용

    즉 매트릭스 구조는 하드웨어 비용을 줄이고 PCB 설계를 단순하게 만들며 MCU의 입출력 핀을 효율적으로 사용하는 가장 중요한 기술입니다.

    💡 Link&Tem Insight

    매트릭스는 키보드에서만 사용하는 구조가 아닙니다. 계산기, 리모컨, 산업용 키패드, ATM, POS 단말기 등 수많은 입력 장치가 같은 원리를 사용합니다.

    2. 왜 모든 키를 따로 연결하지 않을까?

    만약 키마다 MCU 핀 하나씩 연결한다면 100키 키보드는 최소 100개의 GPIO가 필요합니다. 하지만 대부분의 키보드 MCU는 그렇게 많은 입출력 핀을 제공하지 않습니다.

    또한 PCB 배선은 훨씬 복잡해지고 제조 비용도 크게 증가합니다. 매트릭스 구조는 이런 문제를 매우 효율적으로 해결합니다.

    예를 들어 18개의 행과 6개의 열만 사용해도 108개의 키를 연결할 수 있습니다. 실제 풀배열 키보드가 이와 비슷한 구조를 사용하는 경우가 많습니다.

    매트릭스 구조의 장점
    • MCU 핀 수 감소
    • PCB 설계 단순화
    • 제조 비용 절감
    • 전력 소비 감소
    • 작은 컨트롤러 사용 가능

    3. 실제로 키를 어떻게 찾을까?

    MCU는 모든 키를 동시에 읽지 않습니다. 대신 행(Row)을 하나씩 활성화하면서 모든 열(Column)의 상태를 검사합니다. 이를 매트릭스 스캔(Matrix Scan)이라고 합니다.

    예를 들어 Row1에 전압을 인가하면 해당 행의 모든 키가 활성화됩니다. 이후 Column을 읽어 어느 위치가 연결되었는지를 확인합니다.

    만약 Row3과 Column5가 연결되었다면 MCU는 “Row3-Column5 위치의 스위치가 눌렸다.”고 판단합니다.

    TIP

    이 스캔 과정은 사람이 느끼지 못할 정도로 빠르게 반복됩니다. 일반적으로 초당 수백~수천 번 이상 스캔하기 때문에 동시에 여러 키를 눌러도 자연스럽게 입력됩니다.
    💡 Link&Tem Insight

    QMK Firmware에서도 키 입력은 Matrix Scan Task가 반복 실행되며, 이 과정에서 스위치 상태를 읽고 디바운스를 수행한 뒤 최종 키 이벤트를 생성합니다.

    4. 스캔 이후에는 어떤 일이 일어날까?

    매트릭스 스캔으로 키 입력이 감지되었다고 해서 바로 PC로 전송되는 것은 아닙니다.

    먼저 디바운스 과정을 거쳐 노이즈를 제거하고, 실제 눌림으로 판단되면 펌웨어가 해당 키코드로 변환합니다.

    이후 USB HID 또는 Bluetooth HID 보고서(Report)를 생성하여 운영체제로 전송합니다. 운영체제는 이 HID Report를 받아 문자 입력이나 단축키 실행을 처리합니다.

    입력 처리 순서
    1. 스위치 눌림
    2. 매트릭스 스캔
    3. 디바운스
    4. 키코드 생성
    5. USB HID / Bluetooth HID Report 생성
    6. 운영체제 전달
    Part 1 정리

    키보드 매트릭스는 수많은 키를 적은 수의 배선으로 연결하기 위한 핵심 구조입니다. MCU는 행과 열을 매우 빠르게 스캔하여 입력을 감지하며, 이후 디바운스와 HID 변환 과정을 거쳐 PC로 키 정보를 전달합니다. 다음에서는 고스팅, 키 충돌, 다이오드, N-Key Rollover의 원리를 자세히 알아보겠습니다.

    5. 고스팅(Ghosting)은 왜 발생할까?

    매트릭스 구조는 매우 효율적이지만 구조적인 한계도 있습니다. 대표적인 문제가 바로 고스팅(Ghosting)입니다.

    고스팅은 여러 개의 키를 동시에 눌렀을 때 실제로 누르지 않은 키까지 눌린 것처럼 인식되는 현상을 말합니다. 이는 행과 열이 서로 공유되는 구조에서 전류가 예상하지 않은 경로로 흐르면서 발생합니다.

    예를 들어 하나의 사각형 형태를 이루는 네 개의 키 중 세 개를 동시에 누르면 MCU는 마지막 한 개도 눌린 것으로 오인할 수 있습니다. 이러한 현상은 과거 멤브레인 키보드에서 자주 발생했으며, 게임을 할 때 특정 키 조합이 제대로 입력되지 않는 원인이 되기도 했습니다.

    고스팅이 발생하는 대표 상황
    • 여러 키가 같은 행과 열을 공유하는 경우
    • 다이오드가 없는 매트릭스
    • 저가형 멤브레인 키보드
    • 동시에 많은 키를 입력하는 게임 환경

    일반적인 문서 작업에서는 크게 문제가 되지 않지만 FPS 게임이나 리듬 게임처럼 여러 키를 동시에 누르는 상황에서는 입력 오류가 체감될 수 있습니다.

    💡 Link&Tem Insight

    고스팅은 소프트웨어 버그가 아닙니다. 대부분 하드웨어 회로 구조에서 발생하는 현상이며 펌웨어만으로 완전히 해결하기는 어렵습니다.

    6. 다이오드는 왜 필요할까?

    고스팅을 해결하기 위해 대부분의 기계식 키보드는 각 스위치마다 다이오드를 하나씩 추가합니다.

    다이오드는 전류가 한 방향으로만 흐르도록 만드는 부품입니다. 이를 통해 전류가 다른 경로로 우회하는 것을 막아 잘못된 키 인식을 방지합니다.

    구조 동시 입력
    다이오드 없음 고스팅 가능
    다이오드 있음 정확한 입력 유지

    QMK 공식 문서에서도 NKRO 구현을 위해서는 스위치마다 다이오드를 사용하는 구성이 일반적이라고 설명합니다.

    7. N-Key Rollover(NKRO)란?

    N-Key Rollover는 사용자가 동시에 누른 모든 키를 정확하게 인식하는 기능입니다.

    예를 들어 10개의 키를 동시에 누르면 10개 모두 정확하게 전달되고, 20개를 누르면 20개 모두 전달됩니다. 여기서 N은 제한이 없는 임의의 개수를 의미합니다.

    롤오버 종류
    • 2KRO : 두 개 정도만 안정적으로 입력
    • 6KRO : USB 기본 HID에서 많이 사용
    • NKRO : 거의 모든 키 동시 입력 가능

    대부분의 고급 기계식 키보드는 NKRO를 지원하며 게임용 키보드의 주요 특징으로 소개됩니다.

    💡 Link&Tem Insight

    USB HID의 기본 Boot Protocol은 6개의 일반 키 입력만 전송할 수 있습니다. 하지만 Report Protocol에서는 확장된 HID Report를 사용하여 NKRO를 구현할 수 있습니다.

    8. 디바운스와 매트릭스는 어떤 관계일까?

    매트릭스 스캔만으로는 정확한 입력을 보장할 수 없습니다. 기계식 스위치는 눌리는 순간 금속 접점이 여러 번 튀기 때문에 매우 짧은 시간 동안 여러 번 눌린 것처럼 보일 수 있습니다.

    이를 제거하는 과정이 바로 디바운스(Debounce)입니다.

    즉 입력 순서는 다음과 같습니다.

    입력 처리 과정
    1. 행·열 스캔
    2. 스위치 감지
    3. 디바운스 수행
    4. 키코드 생성
    5. USB HID 또는 Bluetooth HID 전송

    즉 매트릭스는 위치를 찾는 기술이고, 디바운스는 입력을 안정화하는 기술입니다. 두 과정이 모두 완료되어야 하나의 정상적인 키 입력이 완성됩니다.

    9. 자주 묻는 질문

    Q. 기계식 키보드는 모두 NKRO를 지원하나요?

    대부분 지원하지만 제품마다 차이가 있습니다. 일부 저가형 제품은 6KRO만 지원하기도 합니다.

    Q. 멤브레인 키보드도 매트릭스를 사용하나요?

    네. 대부분의 멤브레인 키보드 역시 같은 행과 열 구조를 사용합니다.

    Q. 고스팅은 소프트웨어 문제인가요?

    아닙니다. 대부분 회로 구조와 다이오드 구성 여부에 의해 결정됩니다.

    Q. USB와 Bluetooth에서도 같은 매트릭스를 사용하나요?

    네. 입력을 감지하는 과정은 동일하며 이후 전송 방식만 USB HID 또는 Bluetooth HID로 달라집니다.

    Q. MCU 성능이 좋아지면 매트릭스가 필요 없나요?

    아닙니다. 핀 수와 PCB 설계 효율 때문에 현재도 거의 모든 키보드가 매트릭스 구조를 사용합니다.

    📚 함께 보면 좋은 글

    키보드가 입력을 감지한 이후 PC까지 전달되는 전체 과정을 이해하면 키보드 내부 구조를 더욱 쉽게 이해할 수 있습니다. 아래 글을 함께 읽으면 입력 처리 흐름을 처음부터 끝까지 연결해서 볼 수 있습니다.

    🔗 공식 자료

    📖 출처

    • QMK Documentation
    • QMK Matrix Scanning Documentation
    • QMK NKRO Documentation
    • USB Implementers Forum – HID Class
    • Bluetooth SIG – HID over GATT Profile
    Link&Tem 한 줄 정리

    키보드 매트릭스는 수많은 키를 적은 수의 배선으로 읽기 위한 핵심 기술이며, 여기에 다이오드·디바운스·HID 프로토콜이 결합되어 우리가 누른 키가 정확하게 PC까지 전달됩니다.