문제

기존 하드웨어 제품에 대한 소프트웨어를 디자인하고 있습니다. 통신 프로토콜을 완전히 제어 할 수 있지만 장치 감지를 용이하게하는 방법을 잘 모르겠습니다.

장치는 런타임에 감지 해야하는 다양한 구성 (예 : 보드 속도, 데이터 비트, 패리티 비트, 정지 비트)을 가질 수 있습니다. 소프트웨어가 어떤 구성을 사용하고 있는지 알아내는 가장 쉽고 신뢰할 수있는 방법은 무엇입니까? 다시 말하지만, 나는 통신 프로토콜을 완전히 제어하여 원하는 메커니즘을 정의 할 수 있습니다.

도움이 되었습니까?

해결책

이것은 전이중 또는 반이중 장치입니까? 직렬 라인의 양쪽 끝에서 센드 요청을 제어하고 모니터링 할 수 있습니까? 일련의 선 (RS-232와 같은) 또는 멀티 드롭 (RS-485)입니까? 새로 연결된 다른 장치와 협상하면서 이미 연결된 다른 장치를 방해하려는 경우 (작은) 차이를 만들 것입니다.

링크 계층 프로토콜을 협상하는 모뎀과 같은 핸드 셰이크 프로세스를 생각하면 표준 메시지 세트를 사용하여 다른 통신 유형을 설명하고 다른 쪽에서 "ACK"를 기다립니다. 귀하의 경우에는 헤드 엔드가 비트 속도 범위로 생성하고 장치에서 ACK를 기다리는 "Salk"표준 메시지를 사용하는 것이 좋습니다.

또한 장치의 구성 옵션 수를 줄이는 것이 좋습니다. 가변 데이터 비트, 패리티 비트 및 스톱 비트를 잊어 버리십시오. 일련의 통신 세계는 70 년대에 돌아온 것만 큼 더 이상 불안정하지 않습니다. 8 개의 데이터 비트, 패리티 없음, 1 개의 정지 비트를 사용하고 비트 속도를 변경하십시오. 메시지 끝에있는 CRC는 많은 오류 확인을 제공합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top