I think you are crazy to not use the HARDWARE serial port. That would make things almost trivial. Is there some reason why you aren't using it?