UART

(2016.2.20 Created) 

 UARTとはマイコン間やマイコンーパソコン間での通信でよく使われるシリアル通信です。

UART is a widely used means to communicate between microcontrollers, or between a microcontroller and a computer.

 

 SPII2Cのようにクロック信号を用いた通信方法ではないので、送信・受信側それぞれに同一の通信速度設定をおこなう必要があります。 

It is necessary to apply same settings both to a transmitter and to a receiver, because it does not have a clock line like SPI, I2C.

 

 管理人は電気技術者ではないのでUARTという名前にはあまりなじみがなかったのですが、よくパソコンから装置を動かす際にRS-232Cという規格で通信を行っていました。今ではUSBが標準だと思いますが、少し昔の装置を使用する際には今でもRS-232Cが用いられていると思います。

I am not an electrician, so I was not familiar about UART. However, when I use some equipments by computer, I was sometimes communicating by the RS-232C. Now USB are often used, but some old equipments may require RS-232C communication.

 

 さて、肝心のUARTですが使用するだけであればRS-232Cの電圧違いと思っておけばいいと思います。RS-232Cは±15V, UARTは3~5Vです。

You can regard UART is same as RS-232C except voltage, if you are simple user. RS-232C is +/- 15V, UART is 3 to 5V

接続 / Connection

 接続する2つのデバイスのRX/TXを図のように接続します。この際互いの電圧が異なっている場合は一致するように変換してください。

 CTS, RTSという線をつなぐ場合もありますが、管理人はあまりお目にかかったことはありません。

 Connect RX/TX like the figure. You need level shift if the voltage level is different. There are sometimes another line called CTS, DTS line, but I haven't seen them so far.

通信フォーマット / Format

 一般的なUARTの通信フォーマットは以下のようになっています。

General UART format is shown below.

 最初信号線はHighに設定されてますが、送信側がTXピンをLowに落とすことで通信開始を受信側に通知します。これに引き続いて設定したビット数のデータを送信し、Highに戻して1バイトの通信終了です。終了前にパリティビットというものをつける場合もありますが、あまり使用されていません。

Initially the signal line is set to "high". When the transmitter intend to start communication, the transmitter set the TX pin to "Low". After that, the transmitter send predefined amount bits, and set back to "high". Sometimes the additional bit called parity bit is added before the end of communication, but it is not often.

 

 前述のとおり、事前に通信速度やフォーマットを送受信ともに設定する必要があります。よく使用される項目と値は以下の通りです。

As mentioned  before, you need to set speed and formats before communication started. Items and values are often used are shown below.

Item Value (Usual)
通信速度 / Baud Rate 9600 * N
Parity None
Stop Bit 1 Bit