라벨이 Gen2 프로토콜인 게시물 표시

Gen2 명령어 3단계 — Select · Inventory · Access (5/5)

이미지
목차 1단계 Select — 대상 태그 필터링 2단계 Inventory — 태그 하나씩 식별하기 3단계 Access — 개별 태그와 실제 작업하기 단계별 대표 명령 전체 흐름과 문제 해결 팁 핵심 요약 ※ 이 글은 'Gen2 프로토콜' 5부작 시리즈의 마지막 5편입니다. 지금까지 Gen2의 통신 방식, 메모리 구조, 인벤토리, 세션을 살펴봤습니다. 마지막으로 이 모든 동작을 이끄는 명령들을 정리하겠습니다. Gen2의 명령은 역할에 따라 Select · Inventory · Access 세 단계로 나뉩니다. 이 구조를 알고 나면, 리더기 SDK 문서에 나오는 수십 개의 명령어 이름이 사실은 세 가지 목적 중 하나에 속한다는 걸 알 수 있어 훨씬 덜 복잡하게 느껴집니다. 1단계 Select — 대상 태그 필터링 1단계 Select 는 인벤토리에 참여할 태그를 미리 걸러내는 필터링입니다. 예를 들어 특정 EPC 앞자리를 가진 태그만 대상으로 삼으면, 불필요한 태그가 응답하지 않아 인식이 빨라집니다. 이 단계는 필수는 아니며, 현장 전체 태그를 다 읽고 싶다면 생략할 수도 있습니다. 하지만 특정 상품군만 골라 읽어야 하는 상황(예: 오늘 출고 예정 물량만 확인)에서는 Select를 활용하면 처리 속도와 정확도를 동시에 높일 수 있습니다. 2단계 Inventory — 태그 하나씩 식별하기 2단계 Inventory 는 3편에서 다룬 Query 계열 명령으로 태그를 하나씩 골라 식별하는 과정입니다. 실무에서 "리더기가 태그를 읽는다"고 할 때 가장 많이 일어나는 단계가 바로 이 Inventory입니다. 3단계 Access — 개별 태그와 실제 작업하기 3단계 Access 는 식별된 특정 태그와 일대일로 실제 작업을 하는 단계입니다. 메모리를 읽는 Read, 쓰는 Write, 수정을 막는 Lock, 태그를 영구 비활성화하는 Kill 등이 여기에 속합니다. 보안이 걸린 태그는 Access 명령으로 패스워드를 제시해야 작업할 수 ...

Gen2 세션과 플래그 — 다중 리더 환경 이해 (4/5)

목차 인벤토리 플래그(A/B)로 중복 인식 막기 세션(S0~S3): 플래그를 4벌로 나누는 이유 세션별 플래그 유지 시간 실무에서는 이렇게 세션을 고릅니다 핵심 요약 ※ 이 글은 'Gen2 프로토콜' 5부작 시리즈의 4편입니다. (3편: 인벤토리 원리) 3편에서 리더가 태그를 하나씩 골라 읽는 인벤토리를 살펴봤습니다. 그런데 실제 현장에서는 리더가 여러 대이거나, 같은 태그를 반복해서 스쳐 지나가는 상황이 흔합니다. 컨베이어 벨트 위를 지나가는 박스, 여러 개의 게이트를 통과하는 팔레트처럼 같은 태그가 짧은 시간 안에 여러 번 리더의 인식 범위에 들어올 수 있습니다. 이때 태그를 헷갈리지 않고 관리하는 장치가 바로 세션(session) 과 인벤토리 플래그 입니다. 인벤토리 플래그(A/B)로 중복 인식 막기 먼저 플래그부터 봅시다. 각 태그는 인벤토리 상태를 A 또는 B 로 가지고 있습니다. 리더가 "A인 태그만 세라"고 인벤토리하면, 읽힌 태그는 자동으로 B로 뒤집힙니다 . 그래서 같은 라운드에서 이미 읽은 태그가 계속 응답하는 중복 인식을 막을 수 있습니다. 이 원리는 마치 출석부에 체크 표시를 하는 것과 비슷합니다 — 한 번 체크된 사람은 다시 이름을 부르지 않는 것과 같은 이치입니다. 세션(S0~S3)과 인벤토리 플래그 태그 하나가 가진 4개의 세션 S0 A/B S1 A/B S2 A/B S3 A/B 리더 1 세션 S0 사용 입고 게이트 리더 2 세션 S1 사용 출고 게이트 서로 다른 세션을 쓰면 두 리더가 같은 태그를 읽어도 플래그가 섞이지 않습니다 세션(S0~S3): 플래그를 4벌로 나누는 이유 세션은 이 A/B 플래그를 4벌(S0~S3) 독립적으로 유지하는 개념입니다. 리더 A가 S0을 쓰고 리더 B가 S1을 쓰면, 각자의 플래그가 서로 영향을 주지 않아 두 리더가 같은 태그 무리를 동시에 인벤토리해도 간섭이 적습니다. 세션마다 플...

Gen2 인벤토리 원리 — Q 알고리즘으로 태그를 세는 법 (3/5)

이미지
목차 Q값과 슬롯 방식으로 충돌을 해결하는 원리 Q값 조정: 너무 작아도, 너무 커도 문제 인벤토리 명령 흐름 왜 RN16을 먼저 주고받을까 실무 적용 팁 핵심 요약 ※ 이 글은 'Gen2 프로토콜' 5부작 시리즈의 3편입니다. (1편: Gen2란 / 2편: 메모리 구조) 리더 앞에 태그가 수십 개 놓여 있다고 해봅시다. 이 태그들을 하나씩 구분해 읽어내는 과정을 인벤토리(inventory) 라고 합니다. 문제는 여러 태그가 동시에 응답하면 신호가 겹쳐 충돌(collision) 이 나고, 리더가 아무것도 제대로 못 읽는다는 점입니다. 무선 통신에서 흔히 마주치는 "여러 명이 동시에 말하면 아무도 못 알아듣는" 문제와 근본적으로 같습니다. Q값과 슬롯 방식으로 충돌을 해결하는 원리 Gen2는 이 문제를 슬롯(slot) 방식 으로 해결합니다. 리더가 Query 명령으로 Q 값을 정하면 슬롯 개수가 2의 Q제곱으로 결정됩니다(Q=2면 슬롯 4개, Q=4면 슬롯 16개). 각 태그는 0부터 슬롯 개수-1 사이에서 난수를 하나 뽑아 자기 슬롯을 정합니다. 그리고 자기 차례(슬롯 카운터가 0)가 됐을 때만 응답합니다. 이 방식은 통신 분야에서 "슬롯 알로하(Slotted ALOHA)"라고 불리는 다중 접속 기법의 한 종류로, 여러 장치가 하나의 채널을 나눠 쓸 때 널리 쓰이는 접근입니다. Q값 조정: 너무 작아도, 너무 커도 문제 한 슬롯에 태그가 하나면 정상적으로 읽히고, 아무도 없으면 빈 슬롯(시간 낭비), 둘 이상이면 충돌이 납니다. 그래서 Q를 태그 수에 맞게 조정하는 것이 핵심입니다. Q가 너무 작으면 슬롯이 부족해 충돌이 잦고, 너무 크면 빈 슬롯이 많아 시간이 낭비됩니다. 리더는 상황을 보며 QueryAdjust로 Q를 실시간 조정합니다. 구체적으로는 충돌이 관찰되면 Q를 올리고(슬롯을 늘리고), 빈 슬롯이 많이 관찰되면 Q를 내리는(슬롯을 줄이는) 식으로 태그 수 추정치를 계속 갱신합니다. ...

Gen2 태그 메모리 구조 — Reserved·EPC·TID·User 4개 뱅크 (2/5)

목차 Bank 00·Bank 01 — Reserved와 EPC 뱅크 Bank 10·Bank 11 — TID와 User 뱅크 뱅크별 메모리 크기 차이 4개 뱅크 요약 실무에서는 이렇게 활용합니다 핵심 요약 ※ 이 글은 'Gen2 프로토콜' 5부작 시리즈의 2편입니다. (1편: Gen2란 무엇인가) 1편에서 Gen2가 리더와 태그가 주고받는 통신 규격이라고 설명했습니다. 이번 편에서는 태그 안쪽, 즉 메모리 구조 를 살펴봅니다. Gen2 태그는 겉보기엔 단순한 스티커나 하드케이스지만, 내부에는 용도가 서로 다른 4개의 메모리 뱅크(bank)가 들어 있습니다. 이 구조를 알아야 "태그를 읽는다"는 게 정확히 무엇을 읽는 건지, 왜 어떤 값은 고정되어 있고 어떤 값은 바꿀 수 있는지 이해할 수 있습니다. Gen2 태그의 4개 메모리 뱅크 Bank 00 Reserved Kill 패스워드 Access 패스워드 Bank 01 EPC 태그 고유 식별 번호 (쓰기 가능) Bank 10 TID 제조사·칩 고유 ID (읽기 전용) Bank 11 User 사용자 정의 데이터 (옵션, 없을 수도 있음) 태그를 "읽는다"는 것은 이 4개 뱅크 중 원하는 영역을 골라 읽는 것입니다 Bank 00·Bank 01 — Reserved와 EPC 뱅크 Bank 00 (Reserved) 에는 태그를 영구 비활성화하는 Kill 패스워드와, 쓰기·잠금을 보호하는 Access 패스워드가 들어갑니다. 두 패스워드 모두 기본값은 0으로 출고되는 경우가 많아, 보안이 필요한 현장에서는 반드시 별도로 설정해야 합니다. Bank 01 (EPC) 은 우리가 흔히 "태그 번호"라고 부르는 EPC 코드가 저장되는 곳으로, 오류 검출용 CRC-16과 데이터 길이를 나타내는 PC(Protocol Control)가 함께 들어갑니다. 실무에서 리더기로 태그를 스캔했을 때 화면에 뜨는 16자리 안팎...

Gen2 프로토콜이란? UHF RFID 표준의 큰 그림 (1/5)

이미지
목차 Gen2란 무엇인가 — 정식 명칭과 표준 통신 방식: 리더가 먼저 시작하는 백스캐터 통신 인코딩 방식: PIE와 FM0·Miller Gen2 핵심 사양 요약 Gen2가 널리 쓰이는 이유 핵심 요약 ※ 이 글은 'Gen2 프로토콜' 5부작 시리즈의 1편입니다. UHF RFID를 다루다 보면 반드시 만나는 것이 Gen2 프로토콜입니다. 물류·재고관리에서 쓰는 대부분의 UHF 태그와 리더기는 이 규격을 따릅니다. 리더기 스펙 문서를 읽거나 SDK를 다룰 때 나오는 용어(Q값, 세션, 인벤토리, 백스캐터 등)도 결국 전부 이 프로토콜에서 나온 개념입니다. 이 시리즈에서는 Gen2가 실제로 어떻게 동작하는지 개발 관점에서 정리합니다. Gen2란 무엇인가 — 정식 명칭과 표준 Gen2의 정식 명칭은 EPC UHF Class 1 Generation 2 로, EPCglobal(현재 GS1)이 만든 UHF 대역 RFID 통신 규격입니다. 국제표준으로는 ISO/IEC 18000-63 으로 통합되어 있어, 사실상 전 세계 UHF RFID의 공통 언어라고 볼 수 있습니다. "Class 1"은 패시브 태그(자체 배터리 없이 리더 전파로 동작) 등급을 의미하고, "Generation 2"는 2004년경 표준화된 2세대 규격이라는 뜻입니다. 그 이전의 Gen1(1세대)은 벤더마다 호환성이 떨어지는 문제가 있었는데, Gen2는 여러 제조사의 태그와 리더기가 서로 호환되도록 상세한 통신 규칙을 정의하면서 사실상 업계 표준으로 자리잡았습니다. 통신 방식: 리더가 먼저 시작하는 백스캐터 통신 가장 중요한 특징은 통신을 리더가 먼저 시작 한다는 점입니다. 패시브 태그는 자체 전원이 없기 때문에, 리더가 보내는 전파에서 전력을 얻어 깨어난 뒤 백스캐터(backscatter) 방식으로 응답합니다. 즉 태그는 새로운 전파를 만드는 것이 아니라, 리더가 보낸 전파를 반사하며 변조해 정보를 실어 보냅니다. 인코딩 방식: PIE와 FM0·...