Why can't you just go SPI? A UART is needed for hooking up to a computer, which won't handle anything like 4 Mhz. Don't forget a lot of micros have a clock division, eg: a 16 Mhz PIC is actually executing instrucitions at 4 MHz, no way it can sample 4MHz bitrate 3 times per bit. Plus, the error rates will be through the roof. USB and other high speed protocols use differential signallling for a reason. And if you wan't RS232 line levels. forget it, there is no MAX232 type chip out there that will handle that speed, not the last time I looked anyway.