嵌入式系統
通用非同步收發器(UART)
UART 是兩顆晶片溝通最古老也最簡單的方式:一對導線,一條傳、一條收,把資料一次一個位元地移出去。關鍵就在「非同步(asynchronous)」這個詞——沒有共用的時脈線。取而代之的是雙方事先約好一個速度(鮑率,例如 9600 或 115200 位元/秒),而每一幀資料都用起始位元和停止位元包起來,讓接收端知道一個位元組從哪開始、到哪結束。這就像兩位電報員約好用同一個固定節拍敲鍵:只要雙方都守住那個節奏,就不需要另一條滴答作響的時脈線。
每個位元組這樣傳送:平時為高電位的線先拉低,當作一個起始位元,接著是 8 個資料位元(最低位先傳)、一個可選的同位元,再一個高電位的停止位元。鮑率對不上就會收到亂碼——這正是「為什麼我的序列監控視窗印出一堆怪符號?」的經典 bug。UART 只能點對點連接兩個裝置(TX→RX、RX←TX,再加一條共地),這讓它極為簡單,卻無法擴充。它無所不在:除錯主控台、GPS 模組、藍牙與 Wi-Fi 模組,以及你除錯韌體時盯著看的序列監控視窗。加一顆電位轉換器它就成了 RS-232;加上收發器它就變成工業界耐用的 RS-485。
UART 是非同步的(沒有時脈線,雙方必須事先約好鮑率),這正是它與 SPI、I2C 的差別——後兩者都帶有一條明確的時脈線,告訴接收端該在何時取樣每一個位元。
又称
另见