UART (Universal Asynchronous Receiver / Transmitter) 是通用非同步收發器(非同步串列通信口)的英文縮寫,它包括了RS232、RS449、RS423、RS422和RS485等介面標準規範和匯流排標準規範。
現在PC的COM 接口均為RS232。若配有多個非同步串列通信口,則分別稱為COM1、COM2,COMxxx。
UART的工作就是從 CPU 一次接收8 bits的資料(parallel),然後將這些資料 1次 1bit 的送往周邊設備(serially)。同時,UART還可以接收周邊設備傳送來的資料,當組成 8 bits時,再將資料送往 CPU。
UART Frame
下圖是UART Frame格式,其構成為
- 1 個起始位元(Start bit),TXD或RXD由高電位轉為低電位代表起始位元,此位元會通知receiver 將有資料送出,並且強制同步 receiver 和 transmitter 的時脈。
- 5~9個資料位元(Data bit),以 LSB 的方式排列 (一般都是8個,為了相容較舊的規格才保留這些彈性)
- 0~1個同位位元(Parity bit),若存在同位位元,可以設定為奇同位或偶同位。
- 1, 1.5 或 2個停止位元(stop bit)
資料訊框長度介於7位元到12位元之間,長度則依照資料長度(Data)、是否有同位位元(Parity)和停止位元(Stop bit)的數量決定,這三個參數可以由使用者手動進行設定。