2009-04-03 6 views
3

기존 하드웨어 제품을 중심으로 소프트웨어를 설계하고 있습니다. 통신 프로토콜을 완벽하게 제어 할 수 있지만 장치 검색을 용이하게하는 방법을 잘 모릅니다.직렬 포트의 구성을 자동으로 감지합니까?

장치는 런타임에 감지되어야하는 가능한 구성 범위 (즉, 전송 속도, 데이터 비트, 패리티 비트, 정지 비트)를 가질 수 있습니다. 소프트웨어가 사용하고있는 구성을 파악하는 가장 쉽고 안정적인 방법은 무엇입니까? 다시 말하지만, 통신 프로토콜을 완전히 제어 할 수 있기 때문에 원하는 모든 메커니즘을 정의 할 수 있습니다.

답변

3

전이중 또는 반이중 장치입니까? 시리얼 라인의 양쪽 끝에서 보내기 요청을 제어하고 보내기 클리어를 모니터 할 수 있습니까? RS-232와 같은 점대 점 또는 RS-485와 같은 멀티 드롭입니까? 새로 연결된 장치와 협상을하면서 이미 연결된 다른 장치를 간섭하려고한다면 (비록 작지만) 차이가납니다.

링크 계층 프로토콜을 협상하는 모뎀과 같은 핸드 쉐이크 프로세스를 생각하면 표준 메시지 세트를 사용하여 원하는 유형의 통신을 설명하고 다른 쪽에서 "ack"를 기다립니다. 귀하의 경우 헤드 엔드에서 비트 전송률의 범위로 생성하고 장치로부터 수신 확인을 기다리는 "let 's talk"표준 메시지를 사용하는 것이 좋습니다.

또한 장치의 구성 옵션 수를 줄이는 것이 좋습니다. 가변 데이터 비트, 패리티 비트 및 정지 비트는 잊어 버리십시오. 시리얼 통신 세계는 70 년대와 마찬가지로 더 이상 불안정하지 않습니다. 단지 8 데이터 비트, 패리티 없음, 정지 비트 하나를 사용하고 비트 전송률을 변경하십시오. 메시지 끝의 CRC는 많은 오류 검사를 제공합니다.

+0

지금 전 전이중 RS-232를 찾고 있지만 RS-485는 재미있을 것 같습니다. 듀플렉스 및 제어 요청/양쪽에서 보내는 clear-to-send는 어떤 차이가 있습니까? 필요한 구성을 사용하여 통신을 시작하고 연결을 끊지 않고도 기본 구성을 즉시 변경할 수 있습니까? – Gili

+0

전이중은 거의 동시에 프로토콜 데이터 단위 (메시지)를 보내고받는 것입니다. RTS/CTS는 1 비트 메시지와 같이 메시지 교환 시작/계속 신호를 알리는 간단한 방법입니다. 오류율이 너무 높아지기 전에 링크가 처리 할 수있는 속도까지 느리게 시작하고 상승 할 수 있습니다. – Joel