Puede funcionar incluso en ambientes ruidosos si sigues unas medidas básicas:
Utiliza la velocidad de transmisión más baja posible, mientras más abajo mejor. Si por ejemplo puedes enlazar ambos dispositivos a 1200bauds no los enlaces 9600. A la gente le gusta correr por gusto sin saber que a más altas velocidades aumentan las posibilidades de fallos y muchas veces para transmitir un flujo de datos de unos pocos bytes a intervalos regulares no hace falta correr.
Es buena idea también conectar compuertas shmitt trigger compatibles TTL en los extremos del canal de transmisión si el mismo dispositivo no las tuvies. Creo que los PICs en la mayoría de las implementaciones UART ya tienen entradas de este tipo en la parte de la recepción, pero siempre hay que revisar en el datasheet. Este es otro elemento que contribuye a evitar problemas con señales un poco ruidosas.
Y si es posible es muy bueno hacer chequeo de errores. Si tu sensor incluye la opción de enviar un CRC, Checksum o lo que sea para verificar errores entonces debes utilizar esa potencialidad para comprobar que no has reibido ninguna trama ruidosa. Si no es posible, entonces puedes pedir la misma trama dos veces y comparar ambas. Por ejemplo con el primer mensaje elaboras un checksum o CRC y con el segundo mensaje haces lo mismo, si al final ambos códigos de chequeo son iguales tienes un mensaje válido. Este método te permite guardar el mensaje una vez, pero tiene el inconveniente de que tienes que pedir la misma trama dos veces, la ventaja está en la seguridad.
Dado que tu dispositivo es un lector RFID no creo que utilices masivas transferencias de datos, ni a muy altas velocidades o a una frecuencia muy alta. Así que considero puedes implementar todas estas técnicas. Con eso seguro no tendrás problemas incluso en ambientes con ciertos niveles de ruido (ambientes de oficina, hogar, tiendas y demás no tendrás problemas).
Un saludo
Reinier