Hola, disculpa por la tardanza de la respuesta. El micro en cuestión ( MCF51JE256 ) no posee control de flujo por hardware asi que lo deberás simular por hardware. Hay varias maneras de hacerlo y la web seguramente muchos ejemplos. La que uso yo con módulos GPRS es esta. La linea que maneja el RTS es un simple GPIO, esa linea, depende del módulo, siempre la coloco en estado ON que es normalmente falso indicandole al modulo que siempre me puede enviar datos. La otra linea involucrada en el protocolo es CTS, esa linea es conveniente conectarla a una linea GPIO que tenga la posibilidad de generar interrupciones por flancos, en los FreeScale se logra eso usando las lineas del KeyBoard. Para el punto de vista del micro es una linea de entrada, que genera interrupción cuando se produce un flanco decreciente, es decir pasa de 1 a 0. Es necesario monitorear esa linea en el caso de que tengas que subir muchos datos al GPRS ya que es la única mamera de que el módulo te avise que este listo cuando estas conectado, siempre hablando del modo llamado transaparente, que el cual lo que escribís por el serie del módulo sale directamente al TCP. Suponiendo que tengas las trasniciones por interrupción, cosa que es lo recomendable, antes de transmitir checkeas el valor de esa entrada que este en 0, eso te indica que el módulo puede recibir el dato, y lo colocas en el buffer de transmición. Si el valor de la entrada es 1 ( módulo ocupado ) colocas en valor en un buffer temporario y salis de la interrupción. Cuando el módulo vuelva a estar desocupado, la linea pasara de 1 a 0 produciendose el disparo de la interrupción por flanco de bajada, entonces tomas el valor del buffer temporario y lo transmitis, obvio que hay que colocar flags para controlar la sincronicidad de todo esto pero esta es la idea.
Saludos !