1. 程式人生 > >SCI,SPI,UART三種序列匯流排協議的區別

SCI,SPI,UART三種序列匯流排協議的區別

前前後後分別接觸到了這幾種序列通訊。剛開始自己的理解有多麼的狹隘。。。做過才知道呵呵~

SCI (序列通訊介面)模組對其進行控制。(注:“SCI”首先由Motorola微串列埠微控制器而得名,SCI另一種說法是“UART控制器”)常用的許多晶片中都包含了SCI ,例如ARM的S3C2410X晶片內嵌了3個序列介面控制器,而Nios等軟核晶片則可以用選用UART(RS232) 的IP對UART進行控制。PC機則常用 16650 UART,16750 UART等控制串列埠。--這樣說來SCI只不過屬於UART裡面比較特殊的一種序列通訊方式了。確實也只是在飛思卡爾晶片上遇見過。

第一個區別當然是名字:

SCI(Serial Communicate Interface:序列通訊介面)
    SPI(Serial Peripheral Interface:序列外設介面)另外曾在一官方datasheet裡面看見這種說法:Serial Parallel Interface:串並行介面
    UART(Universal Asynchronous Receiver Transmitter:通用非同步收發器)

第二,區別在電氣訊號線上:
    SPI匯流排由三條訊號線組成:序列時鐘(SCLK)、序列資料輸出(SDO)、序列資料輸入(SDI)。SPI匯流排可以實現多個SPI裝置互相連線。提供SPI序列時鐘的SPI裝置為SPI主機或主裝置(Master),其他裝置為SPI從機或從裝置(Slave)。主從裝置間可以實現全雙工通訊,當有多個從裝置時,還可以增加一條從裝置選擇線。
    如果用通用IO口模擬SPI匯流排,必須要有一個輸出口(SDO),一個輸入口(SDI),另一個口則視實現的裝置型別而定,如果要實現主從裝置,則需輸入輸出口,若只實現主裝置,則需輸出口即可,若只實現從裝置,則只需輸入口即可。

UART匯流排是非同步串列埠,因此一般比前兩種同步串列埠的結構要複雜很多,一般由波特率產生器(產生的波特率等於傳輸波特率的16倍)、UART接收器、UART傳送器組成,硬體上由兩根線,一根用於傳送,一根用於接收。
    顯然,如果用通用IO口模擬UART匯流排,則需一個輸入口,一個輸出口。

第三,顯然都是全雙工的。