單片機經常使用的幾種通訊接口,I2C、SPI、UART等

文章直接來源:嵌入式大雜燴c#

在嵌入式系統中,板上通訊接口是指用於將各類集成電路與其餘外圍設備交互鏈接的通訊通路或總線。如下內容爲經常使用板上通訊接口:包括I2C、SPI、UART、1-Wire:
架構

I2C總線

I2C總線是一種同步、雙向、半雙工的兩線式串行接口總線。這裏,半雙工的含義是指在任意給定的時刻,只有一個方向上是能夠通訊的。異步

I2C總線最先由Philips半導體公司於20世紀80年代研發面市。I2C最初的設計目標是爲微處理器/微控制器系統與電視機外圍芯片之間的鏈接提供簡單的方法。大數據

I2C總線由兩條總線組成:串行時鐘線SCL和串行數據線SDA。spa

SCL線——負責產生同步時鐘脈衝。設計

SDA線——負責在設備間傳輸串行數據。3d

I2C總線是共享的總線系統,所以能夠將多個I2C設備鏈接到該系統上。鏈接到I2C總線上的設備既能夠用做主設備,也能夠用做從設備。code

主設備負責控制通訊,經過對數據傳輸進行初始化/終止化,來發送數據併產生所需的同步時鐘脈衝。blog

從設備則是等待來自主設備的命令,並響應命令接收。主設備和從設備均可以做爲發送設備或接收設備。不管主設備是做爲發送設備仍是接收設備,同步時鐘信號都只能由主設備產生。接口

在相同的總線上,I2C支持多個主設備的同時存在。圖1-1顯示了I2C總線上主設備和從設備的鏈接關係。

當總線空閒時,SDA 和SCL 都處於高電平狀態,當主機要和某個從機通信時,會先發送一個開始條件,而後發送從機地址和讀寫控制位,接下來傳輸數據(主機發送或者接收數據),數據傳輸結束時主機會發送中止條件。傳輸的每一個字節爲8 位,高位在前,低位在後。

  • 開始條件:SCL 爲高電平時,主機將SDA 拉低,表示數據傳輸即將開始。

  • 從機地址:主機發送的第一個字節爲從機地址,高7 位爲地址,最低位爲R/W 讀寫控制位,1 表示讀操做,0 表示寫操做。

通常從機地址有7 位地址模式和10 位地址模式兩種,若是是10 位地址模式,第一個字節的頭7 位是11110XX 的組合,其中最後兩位(XX)是10 位地址的兩個最高位,第二個字節爲10 位從機地址的剩下8 位,以下圖所示:

  • 應答信號:每傳輸完成一個字節的數據,接收方就須要回覆一個ACK(acknowledge)。寫數據時由從機發送ACK,讀數據時由主機發送ACK。當主機讀到最後一個字節數據時,可發送NACK(Notacknowledge)而後跟中止條件。

  • 數據:從機地址發送完後可能會發送一些指令,依從機而定,而後開始傳輸數據,由主機或者從機發送,每一個數據爲8 位,數據的字節數沒有限制。

  • 重複開始條件:在一次通訊過程當中,主機可能須要和不一樣的從機傳輸數據或者須要切換讀寫操做時,主機能夠再發送一個開始條件。

  • 中止條件:在SDA 爲低電平時,主機將SCL 拉高並保持高電平,而後在將SDA 拉高,表示傳輸結束。

SPI總線

SPI總線是同步、雙向、全雙工的4線式串行接口總線,最先由Motorola公司提出。SPI是由「單個主設備+多個從設備」構成的系統。須要說明的是:在系統中,只要任意時刻只有一個主設備是處於激活狀態的,就能夠存在多個SPI主設備。常運用於EEPROM、FLASH、實時時鐘、AD轉換器、數字信號處理器和數字信號解碼器之間實現通訊。

爲了實現通訊,SPI共有4條信號線,分別是:

(1)主設備出、從設備入(Master Out Slave In,MOSI):由主設備向從設備傳輸數據的信號線,也稱爲從設備輸入(Slave Input/Slave Data In,SI/SDI)。

(2)主設備入、從設備出(Master In Slave Out,MISO):由從設備向主設備傳輸數據的信號線,也稱爲從設備輸出(Slave Output/Slave Data Out,SO/SDO)。

(3)串行時鐘(Serial Clock,SCLK):傳輸時鐘信號的信號線。

(4)從設備選擇(Slave Select,SS):用於選擇從設備的信號線,低電平有效。

SPI使用方法:

上圖所示芯片有2 個SPI 控制器,SPI 控制器對應SPI 主設備,每一個SPI 控制器能夠鏈接多個SPI從設備。掛載在同一個SPI 控制器上的從設備共享3 個信號引腳:SCK、MISO、MOSI,但每一個從設備的CS 引腳是獨立的.

主設備經過控制CS 引腳對從設備進行片選,通常爲低電平有效。任什麼時候刻,一個SPI 主設備上只有一個CS 引腳處於有效狀態,與該有效CS 引腳鏈接的從設備此時能夠與主設備通訊。

因此,SPI通訊方式可使用「一主多從」的結構進行通訊。每一個鏈接到總線上的器件都有惟一的地址,主設備啓動數據傳輸併產生時鐘信號,從設備被主設備尋址,同一時刻只容許有一個主設備。

從設備的時鐘由主設備經過SCLK 提供,MOSI、MISO 則基於此脈衝完成數據傳輸。SPI 的工做時序模式由CPOL(Clock Polarity,時鐘極性)和CPHA(Clock Phase,時鐘相位)之間的相位關係決定,CPOL 表示時鐘信號的初始電平的狀態,CPOL 爲0 表示時鐘信號初始狀態爲低電平,爲1 表示時鐘信號的初始電平是高電平。CPHA 表示在哪一個時鐘沿採樣數據,CPHA 爲0 表示在首個時鐘變化沿採樣數據,而CPHA 爲1 則表示在第二個時鐘變化沿採樣數據。

根據CPOL 和CPHA 的不一樣組合共有4 種工做時序模式:CPOL=0,CPHA=0、CPOL=0,CPHA=一、CPOL=1,CPHA=0、CPOL=1,CPHA=1

UART

UART——通用異步收發傳輸器,UART 做爲異步串口通訊協議的一種,工做原理是將傳輸數據的每一個字符一位接一位地傳輸。在應用程序開發過程當中使用頻率較高的數據總線。

基於UART的數據傳輸是異步形式的串行數據傳輸。基於UART的串行數據傳輸不須要使用時鐘信號來同步傳輸的發送端和接收端,而是依賴於發送設備和接收設備之間預約義的配置。

對於發送設備和接收設備來講,二者的串行通訊配置(波特率、單位字的位數、奇偶校驗、起始位數與結束位、流量控制)應該設置爲徹底相同。經過在數據流中插入特定的比特序列,能夠指示通訊的開始與結束。當發送一個字節數據的時候,須要在比特流的開頭加上起始位,並在比特流的末尾加上結束位。數據字節的最低位緊接在起始位以後。

UART 串口的特色是將數據一位一位地順序傳送,只要2 根傳輸線就能夠實現雙向通訊,一根線發送數據的同時用另外一根線接收數據。

UART 串口通訊有幾個重要的參數,分別是波特率、起始位、數據位、中止位和奇偶檢驗位,對於兩個使用UART 串口通訊的端口,這些參數必須匹配,不然通

  • 起始位:表示數據傳輸的開始,電平邏輯爲「0」 。

  • 數據位:可能值有五、六、七、八、9,表示傳輸這幾個bit 位數據。通常取值爲8,由於一個ASCII 字符值爲8 位。

  • 奇偶校驗位:用於接收方對接收到的數據進行校驗,校驗「1」 的位數爲偶數(偶校驗) 或奇數(奇校驗),以此來校驗數據傳送的正確性,使用時不須要此位也能夠。

  • 中止位:表示一幀數據的結束。電平邏輯爲「1」。

  • 波特率:串口通訊時的速率,它用單位時間內傳輸的二進制代碼的有效位(bit) 數來表示,其單位爲每秒比特數bit/s(bps)。常見的波特率值有4800、9600、14400、38400、115200 等,數值越大數據傳輸的越快,波特率爲115200 表示每秒鐘傳輸115200 位數據。

1-Wire接口

1-Wire接口是由Maxim Dallas半導體公司(首頁爲http://www.maxim-ic.com)開發的異步半雙工通訊協議,也稱爲Dallas 1-Wire®協議。其中,按照主-從通訊模型,只使用單條信號線DQ實現通訊。

1-Wire總線的一個重要特徵在於,該總線容許在信號線上傳輸能量。1-Wire接口支持在總線上鏈接單個主設備以及一個或多個從設備。

並行接口

板上並行接口(parallel interface)一般用於系統與外圍設備之間的通訊,其中,外圍設備經過存儲器映射到系統的主控端。只要嵌入式系統的主控處理器/控制器含有並行總線,支持並行總線的設備就能夠直接鏈接到該總線系統上。外圍設備與主控端之間具備控制信號接口,能夠控制並行總線上的數據通訊。這裏,通訊的控制信號包括讀/寫信號和設備選擇信號。通常說來,外圍設備具備設備選擇線;只有當主控處理器選通該線的時候,該設備纔是有效的。

數據傳輸的方向能夠是從主控端到外圍設備,也能夠是從外圍設備到主控端;這是經過讀和寫控制信號線進行控制的。只有主控處理器可以控制讀控制信號和寫控制信號。通常說來,外圍設備經過存儲器映射到主控處理器,從而能夠訪問分配的地址範圍。此時,設備須要使用地址譯碼電路來產生芯片選擇信號。

當處理器選擇的地址位於設備指定範圍內的時候,譯碼電路對芯片選擇線進行觸發,從而激活設備。而後,處理器可使能相應的控制線(分別是RD\與WD\),從而由設備讀出數據,或者是向設備寫入數據。

爲了實現並行通訊,系統須要嚴格遵循時序規範。前面已經提到過,並行通訊是由主控處理器啓動的。若是某外圍設備想要對通訊進行初始化,那麼能夠向處理器發出中斷,告知相關信息。爲了實現上述功能,設備的中斷線須要鏈接處處理器的中斷線上,而且主控處理器須要觸發相應的中斷。須要說明的是,主控處理器的數據總線寬度決定了並行接口的寬度,能夠是4位、8位、16位、32位、64位等。設備支持的總線寬度應該與主控處理器徹底相同。


1.楊福宇專欄 | 新車用CAN FD,你可能還會被忽悠!

2.中芯國際深夜大瓜:蔣尚義回來梁孟鬆要走?

3.美國再發實體清單,北理、南航、南理工上榜,「國防七子」終於齊了!

4.分析:全球性芯片缺貨超乎想象

5.Windows 擁抱 Android,微軟在下怎樣的一步棋?

6.散裝vs批發誰效率高?變量訪問被ARM架構安排的明明白白

相關文章
相關標籤/搜索