이 문서는 장치 메뉴의 동작모드 탭에서 설정할 수 있는 카드 ID 포맷에 대해 설명합니다.


BioStar 1의 Byte Order와 Bit Order

MSB와 LSB는 비트를 읽는 순서를 의미합니다. (최상위 비트 (MSB), 최하위 비트 (LSB))
MSB는 2진수 데이터에서 가장 높은 자리(가장 왼쪽)의 비트를 먼저 읽으며, LSB는 가장 낮은 자리(가장 오른쪽)의 비트를 먼저 읽습니다.


카드 ID가 3,829,098,359인 MIFARE Classic를 가지고 있다고 가정해봅시다. 이 카드 ID를 2진수로 변환하면 아래와 같이 됩니다.

11100100001110110110011101110111 


Bit Order가 MSB일 때 카드 ID를 읽으면 11100100 00111011 01100111 01110111이 되며, LSB일 때 카드 ID를 읽으면 11101110 11100110 11011100이 됩니다.


BioStar 1에서는 Byte Order의 개념도 함께 사용합니다. 1바이트는 8개의 비트로 이루어져 있으며, 위 MIFARE Classic 카드는 아래와 같이 표현됩니다.

11100100 00111011 01100111 01110111 


Byte Order와 Bit Order를 이용하여 카드 ID를 다르게 읽을 수 있습니다.



Byte Order와 Bit Order를 모두 MSB로 설정한 경우

대부분의 경우 Byte OrderBit OrderMSB로 설정하여 사용합니다.

카드를 읽은 결과는 아래와 같습니다.

  • 10진수: 3,829,098,359
  • 2진수: 11100100 00111011 01100111 01110111


Byte Order를 MSB로 설정하고 Bit Order를 LSB로 설정한 경우

BioStar 1는 카드 ID를 Bit Order에 따라 먼저 정렬한 뒤 Byte Order에 따라 분류합니다.

즉. Bit Order가 LSB로 설정되어 있으므로 11101110 11100110 11011100 00100111으로 읽은 뒤 Byte Order에 따라 11101110 11100110 11011100 00100111로 정렬합니다.

카드를 읽은 결과는 아래와 같습니다.

  • 10진수: 4,008,107,047
  • 2진수: 11101110 11100110 11011100 00100111


Byte Order를 LSB로 설정하고 Bit Order를 MSB로 설정한 경우

이 경우 Bit Order에 따라 11100100 00111011 01100111 01110111로 읽은 뒤 Byte Order에 따라 01110111 01100111 00111011 11100100으로 정렬합니다.

카드를 읽은 결과는 아래와 같습니다.

  • 카드 ID: 2,003,254,244
  • 2진수 값: 01110111 01100111 00111011 11100100


Byte Order를 LSB로 설정하고 Bit Order를 LSB로 설정한 경우

이 경우 Bit Order에 따라 11101110 11100110 11011100 00100111로 읽은 뒤 Byte Order에 따라 00100111 11011100 11100110 11101110으로 정렬합니다.

카드를 읽은 결과는 아래와 같습니다.

  • 카드 ID: 668,788,462
  • 2진수 값: 00100111 11011100 11100110 11101110