EMI is NOT about data rate. It is about EDGE rate. The rise time of your signal edge is the determination of the frequency content of your signal.
I know of a company with very poor board layout for high speed signals. But they were using a 40 kHz clock. However, as chip fab is pushing for smaller and smaller feature size, the rise times have increased. With new versions of the "Same old chip they always used" the circuit was failing. The edge rate was giving them frequencies on the board closer to 100 Mhz.
Look at your edge rate with the chips used. If it is possibly a problem, you can do things to limit the edge rate, such as using series termination resistors. Ferrite beads will help kill common mode currents, but it would be far better to not have them.
Don't route any high speed signals on your board close to and parallel with the serial data lines. This is a common error that allows induced high speed signals to extend onto a good antenna for EMI issues.
Once you get above 100 kHz, return current will exist on the closest conductor available. i.e. It will be on the return path that has the highest capacitive coupling and lowest inductance. Higher frequency current flows in fields. This means that current starting down a trace or wire will immediately capacitively couple to whatever return path it finds and induce an opposite direction current. When this is not properly provided, the capacitive coupling will be done in the air with as far a reach as is needed. This is where massive EMI is created.
This is important in both PCB layout and wiring. When possible, give each signal its own current return path. For example, you could have your serial link cable as:
[GND][TX][GND][RX][GND][3.3V] and with a adhesive shield layer if possible.
Depending on what your volumes are or certification needed, it can make sense to get some equipment to do a quick and dirty check of EMI. The $1,500 Rigol DSA815 with some near field probes can give you a great deal of information about problem areas. Also, a large sheet of metal and a LISN can give you a good idea of conductive EMI. These won't give you certification level results, but you can quickly spot possible issues.
UART stands for Universal Asynchronous Receiver/Transmitter and is a way computers can "talk" to each other over a serial line. It is asynchronous because there is no separate clock line like there is for other serial protocols like SPI and I2C. Each byte is preceded by a start bit and followed by one or two stop bits (usually one).
Typically speeds are 9600, 19200, 57600, or 115200 baud, although some UARTs can go over a million baud. Baud rate is essentially bits per second, so a baud rate of 115,200 means you are sending 11,500 bytes per second since each byte has the overhead of one start bit and one stop bit.
Besides talking directly with another computer chip, UARTs are sometimes used to communicate with other peripherals. For example, it is very common to use a UART to communicate with a wireless modem, be it cell radio or Bluetooth using "AT" commands.
The outputs of a UART (Tx = transmit, Rx = receive) are at the same logic levels (usually 3.3v or 5v) as the rest of the circuit. The idle state of a UART line is a logic high. To connect two microcontrollers together in close proximity, you can tie the Tx lead of one UART to the Rx lead of another and vice versa.
However UARTs are also commonly used to drive RS-232 interfaces, which allow the signals to travel for several hundred feet. For this, you need a level-shifting circuit, since RS-232 uses different voltages than the logic levels on the PCB -- namely logic high becomes a negative voltage (typically -5v to -12v), and logic low becomes a positive voltage (typically +5v to +12v).
Do NOT connect the Tx and Rx leads of a UART directly to a RS-232 cable.
UARTs are usually included inside a microcontroller set of I/O peripherals, and there will be a number of registers associated with the UART. The UART will usually have a dedicated set of library routines provided by the microcontroller's manufacturer to access them. These will include a routine (or routines) to initiate the UART, such as setting its baud rate and other characteristics such as the character size (7 or 8 bits), parity, and stop bits (you can almost always ignore these last three items).
Then there will be routines to write a character, and read a character. At 115,200 baud, there can be a character coming in every 100 µs. So you often need to use an interrupt routine to collect them into a buffer so the base level of your firmware can process them later. UARTs often provide FIFO's (anywhere from four characters to 128 or more), so it is less likely you will miss a character.
There can be several UARTs in the same microcontroller, one PIC32 I have worked with had six of them. (Usually the pins for the UARTs are shared with other peripherals like SPI and I2C, so that meant you can have a few UARTs, a couple SPI and a couple of I2C interfaces, or a lot of UARTs, but none of the others). If one does run out of UARTs on the microcontroller, you can get them in separate ICs, usually interfaced via I2C or SPI interfaces.
Best Answer
You want to use a level converter to go back and forth between the 1.8V level and 3.3V levels. SparkFun has three of them that will work; I have used the one based on the TI TXB0104 chip.
There are four circuits; you only need two of them. You'll want to cross-connect the TX and RX leads; i.e. connect the RX lead of one UART to the TX lead of the other, and vice-versa.
You can also build your own converter using MOSFET's; in fact SparkFun sells one like that also, the schematic is here.