본문 바로가기

Daily Report

111031 Protocols for Reader Control

Protoclols 에서 Reader를 콘트롤 할경우 사용하는 명령어대해여 공부하였습니다

첫번째는 응답속도입니다

공통적인 사항을 집고 넘어가자면
1번비트는 사이즈를 나타냅니다
2번비트는 COM_ADR 공통적으로 0으로 고정되어 있습니다
3번에 주로 명령어가 들어갑니다
4번은 상태가 저장되거나 예약되어 사용하지 않는 경우가 있습니다

0x52로 반응을 측정하는 명령입니다 메세지를 보내면 응답이 올때까지 대기하게됩니다

0x63은 CPU RESET 말그대로 장치의  cpu를 리셋합니다
돌아올때 4번바이트에 에러유무를 체거 하는 status를 싫어 보냅니다



0x65은 software 버전을 나타내는 명령입니다
SW - REV : 소프트웨어 버전을 뜻합니다
D : 개발버전을 뜻합니다
기타 하드웨어 트리거 소프트웨어 타입의 정보를 보냅니다

0x66 리더의 정보를 읽어오는 명령입니다
여기서는 mode가 있는데 00으로 세팅합니다 02를 세팅할 경우 USB로 세팅이 됩니다

소스보기>>

#include <stdio.h>

#define CRC_POLYNOM  0x8408
#define CRC_PRESET  0xFFFF

unsigned short CRC16(void *p,unsigned int cnt)
{
  int i;
  int j;

  unsigned short crc = CRC_PRESET;
  unsigned char *DATA = p;

  for (i = 0; i < cnt; i++) /* cnt = number of protocol bytes without CRC */
  {
    crc ^= DATA[i];
    for (j = 0; j < 8; j++)
    {
      if (crc & 0x0001)
      crc = (crc >> 1) ^ CRC_POLYNOM;
      
      else
      crc = (crc >> 1);
    }
  }  
  return crc;
}

int main()
{
  int iCnt;
  /*Baud Rate Detect*/  
  unsigned char cBRF[6= {6,0,0x52,0};
  
  /* CPU RESET */
  unsigned char cCR[5= {6,0,0x63,0};
  
  /* Get Software Version*/
  unsigned char cGSV[6= {6,0,0x65,0};
  
  /*Get Reader Info */
  unsigned char cGRI[6= {6,0,0x66,0};
  

  *((unsigned short*)cBRF+2= CRC16(cBRF,sizeof(cBRF)-2);
  for(iCnt = 0 ;iCnt < sizeof(cBRF);iCnt++)
  {
    printf(" %02X ", cBRF[iCnt]);
  }
  printf(":Baud Rate Detect\n    ");

  *((unsigned short*)(cCR+3)) = CRC16(cCR,sizeof(cCR)-2);
  for(iCnt = 0 ;iCnt < sizeof(cCR);iCnt++)
  {
    printf(" %02X ", cCR[iCnt]);
  }
  printf(":CPU RESET\n");
  
  *((unsigned short*)cGSV+2= CRC16(cGSV,sizeof(cGSV)-2);
  for(iCnt = 0 ;iCnt < sizeof(cGSV);iCnt++)
  {
    printf(" %02X ", cGSV[iCnt]);
  }
  printf(":Get Software Version\n");
  
  *((unsigned short*)cGRI+2= CRC16(cGRI,sizeof(cGRI)-2);
  for(iCnt = 0 ;iCnt < sizeof(cGRI);iCnt++)
  {
    printf(" %02X ", cGRI[iCnt]);
  }
  printf(":Get Reader Info\n");
  return 0;
}



결과보기>> 위의 4가지의 값을 모두 출력 하였습니다

'Daily Report' 카테고리의 다른 글

111102 RF Test UID 테그값 받아오기  (0) 2011.11.02
111101 RF reader TEST  (0) 2011.11.01
111028 RF Serial 서론 / 선택정렬법  (0) 2011.10.28
111024 Socket 03  (0) 2011.10.24
111021 Game sokoban04  (0) 2011.10.21