이더넷과 RS232 어댑터의 대기 시간

이더넷과 RS232 어댑터의 대기 시간

요구 사항: RS232 포트를 사용하여 외부 장치와 통신하는 소프트웨어가 Windows에서 실행되고 있습니다. 하드웨어는 PC에서 전송된 명령을 수신하고 PC에 다시 응답합니다. 어댑터 없이 컴퓨터와 하드웨어 사이에 일반 케이블을 사용하면 전송 및 수신이 완료됩니다(예: 50ms). 이더넷-RS232 어댑터를 사용하는 경우 총 통신 시간은 (50 + x)ms이고 대기 시간은 xms입니다.

온라인에는 많은 제품이 있습니다. 일부 제품 데이터 시트를 살펴보았습니다. 데이터 비트, 전송 속도, 속도와 같은 이더넷 및 직렬 통신 매개 변수에 대한 정보가 있었지만 대기 시간 정보는 어디서도 찾을 수 없었습니다.

지금까지 내 소프트웨어를 테스트하기 위해 어댑터(최대 전송 속도 230.4kbps)를 사용했지만 직렬 포트 시간 초과 예외가 발생했습니다.

질문

이 대기 시간은 어떤 기준에 따라 달라지나요?

대기 시간은 전송 속도에 따라 달라지나요?

(대략적인) 대기 시간을 결정하려면 데이터시트에서 무엇을 확인해야 합니까?

제조업체에서 대기 시간 정보를 제공합니까?

답변1

이 대기 시간은 어떤 기준에 따라 달라지나요?

버퍼링, 데이터 프레이밍, 전송, 프로토콜 및 시간 초과가 주요한 것으로 생각됩니다.

다른 논평가들이 언급했듯이 최소한 프로토콜 번역이 지연됩니다. 엔드포인트 및 브리지 데이터 버퍼링, 레코딩, 프로토콜 오버헤드 및 전송 시간을 고려해야 합니다. 대기 시간은 전송 전에 데이터의 전체 프레임이 버퍼링되는지 여부와 내부 시간 초과에 따라 영향을 받습니다. 이는 일부 장치에서 구성될 수 있습니다.

또한 이더넷 프로토콜이 UDP, TCP 또는 사용자 정의 프로토콜을 사용하는지에 따라 달라집니다. 이는 프로토콜이 재전송을 지원하는지 여부와 추가 무결성 또는 신호 정보를 추가하는지 여부에 따라 달라집니다. 이번에도 일부 장치에서는 구성할 수 있습니다. 살펴보지 않고도 저가형 장치는 무결성이나 재전송 없이 UDP를 사용하는 경향이 있으며 데이터 흐름이 중지되면 부분 프레임을 보내기 위해 내부 시간 제한을 사용하여 전체 UDP 프레임의 데이터를 버퍼링하는 경향이 있다고 추측할 수 있습니다.

대기 시간은 전송 속도에 따라 달라지나요?

실제로 측정하는 대기 시간에 따라 다릅니다. 직렬 데이터 속도의 차이는 아마도 귀하의 컴퓨터에 영향을 미칠 것입니다.처리량당신보다 훨씬 더지연 시간. 예, 대기 시간에 영향을 미치지만 9600bps에서 바이트당 전송하는 데 약 1ms가 걸린다는 점을 명심하세요.

(대략적인) 대기 시간을 결정하려면 데이터시트에서 무엇을 확인해야 합니까?

제조업체에서 대기 시간 정보를 제공합니까?

산업용 애플리케이션용 브리지는 대기 시간 및/또는 처리량에 대한 정보를 제공하는 경우도 있습니다. 예를 들어그러한 제품 페이지 중 하나대기 시간은 2ms라고 합니다. 이와 같은 회사 후원 테스트 보고서도 있습니다.2003년 경쟁 비교또는이 2002년 보고서여러 장치의 지연 시간을 비교합니다. 테스트의 지연 시간 범위는 몇 밀리초에서 평균 861ms까지입니다.

어쨌든 근본적인 문제는 대기 시간 문제가 아닌 직렬 포트 시간 초과인 것 같습니다. 귀하가 말씀하신 내용으로 볼 때 소프트웨어나 구성 오류가 잠정적으로 의심됩니다. 일반적으로 직렬 인터페이스 라이브러리에는 바이트 간 타이밍, 멀티바이트 읽기 시간 및 쓰기 시간과 같은 여러 가지 시간 제한이 지정되어 있습니다. 또한 버퍼링된 데이터가 충분히 빨리 비워지지 않으면 버퍼 오버플로 오류가 발생합니다. 아시다시피 일반적으로 직렬 클라이언트에서 각 시간 초과를 조정하거나 비활성화할 수 있습니다.

오류가 발생한 위치를 식별하는 것부터 시작하겠습니다. 값싼 어댑터가 정격 최대값에서 항상 좋은 성능을 발휘하는 것은 아니기 때문에 속도를 9600으로 낮출 수도 있습니다.

관련 정보