카테고리 : 어떻게 해야하나요?/how to
시리얼장비 또는 MCU로부터 데이터를 네트워크로 보낼 때, 일정한 바이트씩 모아서 한 패킷으로 보내려면 어떻게 해야 할까요?
사실 TCP는 접속 후 데이터를 스트림 형태로 보내고 받기 때문에 한패킷에 전송되는 데이터의 바이트 수는 의미가 없습니다. 그러나 ezTCP를 적용하고자 하는 고객 중 이미 개발이 완료 된 시리얼 통신 응용프로그램 변경이 어려울 때 앞서 말한 기능이 필요할 수 있습니다.
ezTCP의 [데이터 프레임 간격] 옵션을 설정하면 TCP에서도 데이터를 일정한 바이트씩 모아서 한 패킷으로 전송할 수 있습니다.
이 옵션은 데이터를 받아서 바로 보내지 않고 버퍼에 저장해 두었다가, 지정 된 시간 동안 시리얼 데이터가 들어오지 않으면 저장된 데이터를 한 패킷으로 네트워크에 전송하기 위한 옵션입니다.
여기서 중요한 것은 반드시 패킷을 나눌 시리얼 데이터 사이에는 어느 정도 지연시간(딜레이)이 필요하다는 것 입니다.
이 옵션의 설정 단위는 10ms 이며 100으로 설정 할 경우 1초가 됩니다.
예를 들어 시리얼 데이터가 10초동안 한 패킷으로 들어오고 1초의 지연시간 이후에 다시 그 다음 데이터가 10초동안 들어오는 시스템의 경우 데이터 프레임 간격을 80으로 설정하면 그 데이터를 한 패킷으로 보낼 수 있습니다.
물론 10초동안 데이터를 보내는 도중에 800ms 이상의 지연이 발생한다면 당연히 데이터가 한 패킷으로 전송되지 않습니다.
UDP에서는 어떨까요?
UDP는 데이터를 블록 단위로 송/수신하는 아주 간단한 프로토콜 입니다. 따라서 데이터 블록 크기를 정해주면 됩니다.
ezTCP의 [접속 전 데이터 크기] 옵션이 바로 UDP 블록의 크기(Bytes)를 지정하는 옵션입니다.
이 [데이터 프레임 간격 옵션]은 현재 ezManager를 사용하는 제품에서만 설정이 가능합니다.
해당 옵션을 EZL-200F, EZL-220, EZL-400S 등에서 사용하시기 위해서는
장비의 텔넷에 접속하여 SEND DELAY 옵션 값을 설정하시기 바랍니다.
- See also
- Related Products
[ Ethernet-Module ] CSE-M53, CSE-M32
[ Ethernet-Module with RJ45 ] CSE-M73
[ Ethernet-External ] CSE-H55, CSE-H53, CSE-H25, CSE-H20, CSE-H21
[ Wireless-External ] CSW-H85K, CSW-H80
[ Wireless-Module ] CSW-M83, CSW-M85
[ I/O ] CIE-H10, CIE-M10