홈네트워크 통신연동할 때 쓴 후로 통신 프로토콜 짤 때 기본으로 잡고 가장 많이 썼던 구조입니다.(홈넷 통신 프로토콜과는 약간 다름)
간단하면서도 필요한 부분은 다 있어서 괜찮았습니다.
데이터 무결성차원에서 Check Sum과 Check Xor 자리에 CRC16을 사용하기도 하였고 HMAC을 사용하기도 하였습니다.(HMAC의 경우 앞 바이트만 잘라서 사용)
Byte |
1 |
1 |
1 |
N |
1 |
1 |
1 |
Data |
0x02 |
Var. |
Var. |
Var. |
Var. |
Var. |
0x03 |
Field |
Start |
Cmd |
Length |
Data N |
Sum |
Xor |
End |
Host쪽에서 CMD에서 0x01를 보내면 Slave쪽에서 최상위 비트에 1을 넣어서 0x81로 데이터를 보내는 방식을 사용하였고, CMD 1바이트로 부족한 경우가 많아 Data N 전까지의 데이터를 Header로 잡아 짝수 바이트로 맞추고 데이터 처리를 주로 하였습니다.
간단한 Return에는 Data에 값을 넣기보다 Header에 값을 넣어 처리해주는 게 더 간단해서(프로그램 짜기가 간단해서 ㅎㅎㅎ) 그렇게 자주 사용하였습니다.
구조체로 잡아서 처리하는 경우 packed를 하지 않으면 데이터가 연달아 붙지 않아서 고생하는 경우가 생깁니다.
'초보의 아웅다웅 설계하기 > Back Data 수집하기' 카테고리의 다른 글
음계 주파수표 (0) | 2013.04.25 |
---|---|
모델 변경시 단가 산출하기 (0) | 2010.08.08 |
생산 예상 단가 산출하기 (0) | 2010.08.08 |
타사 모듈 메뉴얼 만들기 (0) | 2010.08.03 |
수리내역 확인하기 (0) | 2010.08.03 |