No es tan trivial, el principal y único problema de echo son los tiempos. El estándar rs232 envía 8 bits más uno de paridad y uno de stop.
La idea es que tengas un punto de inicio de transmisión, cuando este empieza genera una interrupción, lo que tener que hacer es tomar uno a uno los bits que llegan a tu puerto y luego (como ya comenzaste la transmisión), vas a tener que reiniciar tu contador y sincronizarte con el flanco descendente de la señal de stop. De esta manera estas siempre sincrónico y te mantenés aislado del time del micro. Si la transmisión genera un error, lo que se hace usualmente es tener un time out, esperas un tiempo y luego de este tiempo el micro tiene que saber por time out que la transmisión termino. Probablemente todo esto ya lo sepas, esta es la estructura general de un programa para comunicación serial. La idea es ser sincrónico con respecto al comienzo de la trama y asincrónico en la transmisión de la trama. No tengo ningun codigo para hacer lo que te cuento escrito en
http://www.electronic-engineering.ch/microchip/projects/rs232/commtest2/commtest2.asm podes encontrar un codigo para trasnsmitir serialmente. En particular mira donde se describen las atenciones de interrucpciones. Recordá que el micro sobre el que esta es un pic, y tiene un solo vector de atención de interrupciones. En donde dice RS232 DATA ACQUISITION esta la rutina que atienede el puerto rs232. Fíjate bien que el código que necesitas es igual, cambia un poco el uso de los puertos y como te dije al principio la rutina que mide los tiempos. La misma tiene que ser exacta, si encontrás alguna sentencia donde este el tiempo que necesitas por ciclo de reloj te va a ser muy útil. Esto es indudablemente intrinceco al micro, así que conese código con te vas a poder arreglar para solucionar el problema de los tiempos de espera.
Suerte con tu proyecto.
David.