disculpas por la tardanza.. es que recién leo este mensaje.
Creo que lo mejor es utilizando un timer que se activa al enviar y el tiempo dependerá del tiempo de respuesta del equip esclavo.
Pero no creo que sea muy exacto ya que los tiempos son muy pequeños y cuando se dispara el evento de que se recivió un byte en el puerto en realidad ya hay un monton de bytes por lo que será muy difícil diferenciar entre una trama y otra.
En mi proyecto yo no tengo ese problema porque los esclavos sólo envían datos cuando la computadora les pide los datos, por lo que al enviar un pedido sólo tengo que esperar la trama y ya está. Y para asegurarme de que llegó la trama correctamente utilizo CRC. Y de acuerdo al tiempo que tardan los esclavos en responder el pedido configuro un timer con el tiempo de espera de trama para pasar al proximo pedido en caso de que no llegue la respuesta.
Mis saludos