마이크로 컨트롤러와 C# Windows 응용 프로그램 간의 직렬 통신을 구현하려고합니다.시리얼 메시지 분리
저는 컴퓨터에서 마이크로 컨트롤러 방향으로 올바르게 작동하고 있습니다. 그러나 다른 방향으로 통신을 구현하는 방법을 정확히 파악하는 데 문제가 있습니다. 주소/
내 메시지는 4 바이트
- B0로 구성되어 있습니다 바이트 0-2
완전한 메시지가 수신되는지 확인하기 위해 마이크로 컨트롤러가 현재 메시지를 다시 보내야합니다. 바이트 간 간격이 20ms보다 길면 잘 작동하는 것처럼 보이며 동기화시 손실을 초래할 수있는 통신 오류를 허용 할 수 있습니다.
C# 응용 프로그램 내에서이 지연을 구현할 수있는 방법에 대해 잘 모르겠습니다. 타이밍에 대한 제어 기능이 훨씬 적다는 것을 알고 있습니다.
시작 및 정지 문자를 보내는 다른 ASCII 프로토콜을 보았지만이 값을 바이트로 변환 할 수있는 이진 데이터를 전송할 때이를 구현하는 방법을 모르거나 시작 또는 종료 문자를 사용할 수 있습니다. 정지 문자입니다.
제한된 리소스를 가지고 있으므로 마이크로 컨트롤러 측면을 기본으로 유지해야하며 컨트롤러 기본 작업에는 ascii에서 십진수로 변환하는 매우 정밀한 (하위 범위)이 필요합니다.
아무에게도 마이크로 프로세서 또는 컴퓨터 쪽에서 구현해야하는 방법에 대한 권장 사항이 없습니다.
편집
여기에 다른 몇 가지 질문에 보았다 그러나 그들 모두는 훨씬 더 큰 ASCII 기반의 메시지를 참조 할 것.
내가 작업 한 프로토콜은 일반적으로 시작/종료 메시지 표식, 바이트 값 2와 3을 지정하고 일반적으로 이스케이프 알고리즘을 사용하여 실제 데이터 값 3 (끝 마커) 데이터 (때때로 DLE 인코딩이라고도 함. –