가장 간단한 수준에서 간단한 통신 프로토콜에는 물리적, 전송 및 응용 프로그램의 세 가지 계층이 있다고 말할 수 있습니다. ( OSI 7 또는 TCP / IP 와 같은 모델이 더 있습니다 4의 와 있습니다.이 질문의 맥락에서 레이어 수는별로 중요하지 않습니다.)
응용 프로그램 계층은 코드에서 직접 처리하는 계층이며 질문의 초점입니다. 전송 계층과 관련하여 send_data에 전달한 바이트는 이진 패턴이지만 응용 프로그램 코드에서는 문자 'A'로 해석 할 수 있습니다. 바이트를 'A', 0x41 또는 0b01000001로 간주하는지 여부에 관계없이 CRC 또는 체크섬 계산은 동일합니다.
전송 계층은 CRC이든 기본 체크섬이든 메시지 헤더와 오류 검사가있는 패킷 수준입니다. 펌웨어와 관련하여 send_data와 같은 함수가있을 수 있습니다. 이 함수 안에 "이것은 정상적인 메시지이고, 확인이 필요하고, 체크섬은 0x47이고, 현재 시간은 X입니다." 이 패킷은 물리 계층을 통해 수신 노드로 전송됩니다.
물리적 계층은 커넥터, 전압 레벨, 타이밍 등 전자 장치 및 인터페이스가 정의되는 곳입니다.이 계층은 PCB의 기본 UART에 대한 TTL 신호를 실행하는 몇 가지 트레이스부터 일부 절연 회로와 같이 완전히 분리 된 차동 쌍에 이르기까지 다양합니다. 양철통 구현.
수신 노드에서 패킷은 물리 계층으로 들어오고 전송 계층에서 압축이 풀린 다음 응용 프로그램 계층에서 이진 패턴을 사용할 수 있습니다. 해당 패턴을 'A', 0x41 또는 0b01000001로 해석해야하는지 여부와 해당 처리 방법을 아는 것은 수신 노드 애플리케이션 계층에 달려 있습니다.
결론적으로 응용 프로그램에 필요한 ASCII 문자를 보내는 것이 항상 허용됩니다. 중요한 것은 통신 체계를 이해하고 오류 검사 메커니즘을 포함시키는 것입니다.