原裝暢銷·品牌齊全·海量型號·庫存充足
新聞中心
News Center聯(lián)系我們
Contact us深圳京柏微科技有限公司
電話:0755-86520852
傳真:0755-86520852
手機(jī):18124163678
地址:深圳市南山區(qū)桃源街道平山社區(qū)平山一路2號南山云谷創(chuàng)業(yè)園二期6棟308
麥歌恩小課堂|SPI、UART、I2C通信的區(qū)別與應(yīng)用!
電子設(shè)備之間的通信就像人類之間的交流,雙方都需要說相同的語言。在電子產(chǎn)品中,這些語言稱為通信協(xié)議。
串行 VS 并行
電子設(shè)備通過發(fā)送數(shù)據(jù)位從而實現(xiàn)相互交談。位是二進(jìn)制的,只能是1或0。通過電壓的快速變化,位從一個設(shè)備傳輸?shù)搅硪粋€設(shè)備。在以5V工作的系統(tǒng)中,“0”通過0V的短脈沖進(jìn)行通信,而“1”通過5V的短脈沖進(jìn)行通信。 數(shù)據(jù)位可以通過并行或串行的形式進(jìn)行傳輸。 在并行通信中,數(shù)據(jù)位在導(dǎo)線上同時傳輸。下圖顯示了二進(jìn)制(01000011)中字母“C”的并行傳輸:
在串行通信中,位通過單根線一一發(fā)送。下圖顯示了二進(jìn)制(01000011)中字母“C”的串行傳輸:
SPI通信
SPI是一種常見的設(shè)備通用通信協(xié)議。它有一個獨(dú)特優(yōu)勢就是可以無中斷傳輸數(shù)據(jù),可以連續(xù)地發(fā)送或接收任意數(shù)量的位。而在I2C和UART中,數(shù)據(jù)以數(shù)據(jù)包的形式發(fā)送,有著限定位數(shù)。 在SPI設(shè)備中,設(shè)備分為主機(jī)與從機(jī)系統(tǒng)。主機(jī)是控制設(shè)備(通常是微控制器),而從機(jī)(通常是傳感器,顯示器或存儲芯片)從主機(jī)那獲取指令。 一套SPI通訊共包含四種信號線:MOSI (Master Output/Slave Input) – 信號線,主機(jī)輸出,從機(jī)輸入。MISO (Master Input/Slave Output) – 信號線,主機(jī)輸入,從機(jī)輸出。SCLK (Clock) – 時鐘信號。SS/CS (Slave Select/Chip Select) – 片選信號。
SPI協(xié)議特點(diǎn)
實際上,從機(jī)的數(shù)量受系統(tǒng)負(fù)載電容的限制,它會降低主機(jī)在電壓電平之間準(zhǔn)確切換的能力。
工作原理
時鐘信號
每個時鐘周期傳輸一位數(shù)據(jù),因此數(shù)據(jù)傳輸?shù)乃俣热Q于時鐘信號的頻率。 時鐘信號由于是主機(jī)配置生成的,因此SPI通信始終由主機(jī)啟動。 設(shè)備共享時鐘信號的任何通信協(xié)議都稱為同步。SPI是一種同步通信協(xié)議,還有一些異步通信不使用時鐘信號。 例如在UART通信中,雙方都設(shè)置為預(yù)先配置的波特率,該波特率決定了數(shù)據(jù)傳輸?shù)乃俣群蜁r序。 片選信號 主機(jī)通過拉低從機(jī)的CS/SS來使能通信。 在空閑/非傳輸狀態(tài)下,片選線保持高電平。在主機(jī)上可以存在多個CS/SS引腳,允許主機(jī)與多個不同的從機(jī)進(jìn)行通訊。
如果主機(jī)只有一個片選引腳可用,則可以通過以下方式連接這些從器件:
MOSI和MISO
主機(jī)通過MOSI以串行方式將數(shù)據(jù)發(fā)送給從機(jī),從機(jī)也可以通過MISO將數(shù)據(jù)發(fā)送給主機(jī),兩者可以同時進(jìn)行。所以理論上,SPI是一種全雙工的通訊協(xié)議。 傳輸步驟 1. 主機(jī)輸出時鐘信號
2. 主機(jī)拉低SS / CS引腳,激活從機(jī)
3. 主機(jī)通過MOSI將數(shù)據(jù)發(fā)送給從機(jī)
4. 如果需要響應(yīng),則從機(jī)通過MISO將數(shù)據(jù)返回給主機(jī)
使用SPI有一些優(yōu)點(diǎn)和缺點(diǎn),如果在不同的通信協(xié)議之間進(jìn)行選擇,則應(yīng)根據(jù)項目要求進(jìn)行充分考量。
優(yōu)劣
優(yōu)點(diǎn) SPI通訊無起始位和停止位,因此數(shù)據(jù)可以連續(xù)流傳輸而不會中斷;沒有像I2C這樣的復(fù)雜的從站尋址系統(tǒng),數(shù)據(jù)傳輸速率比I2C更高(幾乎快兩倍)。獨(dú)立的MISO和MOSI線路,可以同時發(fā)送和接收數(shù)據(jù)。 缺點(diǎn) SPI使用四根線(I2C和UART使用兩根線),沒有信號接收成功的確認(rèn)(I2C擁有此功能),沒有任何形式的錯誤檢查(如UART中的奇偶校驗位等)。
UART代表通用異步接收器/發(fā)送器也稱為串口通訊,它不像SPI和I2C這樣的通信協(xié)議,而是微控制器中的物理電路或獨(dú)立的IC。
UART的主要目的是發(fā)送和接收串行數(shù)據(jù),其最好的優(yōu)點(diǎn)是它僅使用兩條線在設(shè)備之間傳輸數(shù)據(jù)。UART的原理很容易理解,但是如果您還沒有閱讀SPI 通訊協(xié)議,那可能是一個不錯的起點(diǎn)。
UART通信
工作原理
UART數(shù)據(jù)包含有1個起始位,5至9個數(shù)據(jù)位(取決于UART),一個可選的奇偶校驗位以及1個或2個停止位:
起始位:
UART數(shù)據(jù)傳輸線通常在不傳輸數(shù)據(jù)時保持在高電壓電平。開始傳輸時發(fā)送UART在一個時鐘周期內(nèi)將傳輸線從高電平拉低到低電平,當(dāng)接收UART檢測到高電壓到低電壓轉(zhuǎn)換時,它開始以波特率的頻率讀取數(shù)據(jù)幀中的位。 數(shù)據(jù)幀: 數(shù)據(jù)幀內(nèi)包含正在傳輸?shù)膶嶋H數(shù)據(jù)。如果使用奇偶校驗位,則可以是5位,最多8位。如果不使用奇偶校驗位,則數(shù)據(jù)幀的長度可以為9位。 校驗位: 奇偶校驗位是接收UART判斷傳輸期間是否有任何數(shù)據(jù)更改的方式。接收UART讀取數(shù)據(jù)幀后,它將對值為1的位數(shù)進(jìn)行計數(shù),并檢查總數(shù)是偶數(shù)還是奇數(shù),是否與數(shù)據(jù)相匹配。
-
電話咨詢
18124163678
服務(wù)熱線(早8:00-凌晨1:00)
-
關(guān)注我們