C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[47303] CheckSum 규칙을 알고 싶습니다..
김효남 [] 2032 읽음    2006-12-05 09:35
안녕하세요..

이번에 통신프로토콜을 분석하던 중에 문제가 생겨 이렇게 도움을 요청합니다..

통신을 읽어 보면 0x16, 0x13, 0x17, 0xff, 0xff, 0xb4  이렇게 나옵니다.. 0xb4가 checksum이 되는거 같습니다..

checksum이라고 확신하는 이유는 같은 명령에서 데이터가 다를 경우 마지막 값이 변하는 것으로 checksum 이라고 생각이 드는데요..

위의 데이터는 I2C 통신을 분석한 것입니다..

I2C 통신 형식은 다들 아시겠지만 컨트롤하고자 하는 어드레스(WRITE), 컨트롤 명령, 데이터 이런 형식과 어드레스(WRITE), 컨트롤 명령, 어드레스(READ), 데이터 이런형식으로 구성됩니다.

따라서 0x16은 WRITE 어드레스 이구요, 0x13은 Command 입니다. 0x17은 그럼 READ 어드레스가 되겠죠.. 나머지 0xff, 0xff 이건 하위 데이터와 상위 데이터로 16비트 데이터 입니다.

위에 값하나만 가지고는 규칙을 찾기가 힘들겠죠.. 그래서 아래 데이터를 참고하셔서 도움좀 부탁드리겠습니다..

Address_w      Command     Address_R    Low_Data    High_Data    CheckSum
    0x16                0x13             0x17             0xFF           0xFF            0xB4
    0x16                0x12             0x17             0xFF           0xFF            0xA2
    0x16                0x11             0x17             0xFF           0xFF            0x98

    0x16                0x08             0x17             0x8D           0x0B            0x13
    0x16                0x08             0x17             0x97           0x0B            0xC6
    0x16                0x08             0x17             0x8F           0x0B            0x39


아무리 생각해도 CheckSum 규칙이 나오지 않아 도움을 요청드립니다..

CheckSum의 데이터는 Address_W ~ High_Data 까지의 합일 수도 있구요..

Command, Low_Data, High_Data 만 계산되었을 수도 있습니다..

확실한건 Command가 바뀌면 CheckSum의 값도 바뀌는 것으로 보아 Command의 값은 확실하게 포함이 된다고 생각듭니다..

많은 도움 부탁드리겠습니다..

좋은 하루 되세요..

+ -

관련 글 리스트
47303 CheckSum 규칙을 알고 싶습니다.. 김효남 2032 2006/12/05
47311     Re:CheckSum 규칙을 알고 싶습니다.. 라스코니 2241 2006/12/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.