成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SPI 子系統之SPI spec

網絡 網絡設備
外設的寫操作和讀操作是同步完成的。如果只進行寫操作,主機只需忽略接收到的字節;反之,若主機要讀取從機的一個字節,就必須發送一個空字節來引發從機的傳輸。

1.SPI hardware

SPI:Serial Perripheral Interface,串行外圍設備接口,由 Motorola 公司提出,是一種高速、全雙工、同步通信總線。SPI 以主從方式工作,通常是有一個主設備和一個或多個從設備,無應答機制。

本文我們講解標準的 4 線 SPI,四根線如下:

①CS/SS,Slave Select/Chip Select,片選信號線,用于選擇需要進行通信的從設備。

②SCK,Serial Clock,串行時鐘,和 I2C 的 SCL 一樣,為 SPI 通信提供時鐘。

③MOSI/SDO,Master Out Slave In/Serial Data Output,主輸出從輸入。

④MISO/SDI,Master In Slave Out/Serial Data Input,主輸入從輸出。

2.SPI 四種工作模式

SPI 有四種工作模式,通過時鐘極性(CPOL)和時鐘相位(CPHA)的搭配來得到四種工作模式:

①、CPOL=0,串行時鐘空閑狀態為低電平。
②、CPOL=1,串行時鐘空閑狀態為高電平。
③、CPHA=0,串行時鐘的第一個跳變沿(上升沿或下降沿)采集數據。
④、CPHA=1,串行時鐘的第二個跳變沿(上升沿或下降沿)采集數據。

示例波形圖如下:

SPI 是全雙工的,所以讀寫時序可以一起完成。

3.SPI 傳輸機制

從圖可以看出,主機和從機都有一個串行移位寄存器,主機通過向它的 SPI 串行寄存器寫入一個字節來發起一次傳輸。寄存器通過 MOSI 信號線將字節傳送給從機,從機也將自己的移位寄存器中的內容通過 MISO 信號線返回給主機。這樣,兩個移位寄存器中的內容就被交換。

外設的寫操作和讀操作是同步完成的。如果只進行寫操作,主機只需忽略接收到的字節;反之,若主機要讀取從機的一個字節,就必須發送一個空字節來引發從機的傳輸。

雖然 SPI 四線制支持讀寫同時進行,但實際上我們很多時候并不需要又讀又寫,見以下兩種情況(參考 BMA223 數據手冊):

注意:如下三幅圖示均為 CPOL=1,CPHA=1

(1)主機向從機寫數據

主機發送先發送 8 bits,第一個 bit 為 0 代表這次主機是想寫數據到從機,AD6~AD0 表示要寫的寄存器地址。然后,主機就會一直寫下去。在這期間 SDO 一直沒用,一直是高阻態,算是一直讀到1。

(2)主機從從機讀數據

這種情況下,主機先發送 8 bits,第一位為 1 代表這次是讀,然后 AD6 ~ AD0 是想要讀的寄存器地址,然后 SDO 開始返回數據。

4.SPI timing diagram

Tcsb_setup:建立時間
Tcsb_hold:保持時間
tsckl:低電平時間
tsckh:高電平時間
SCK period :Tsckl + tsckh
一般情況下 Tsckl = tsckh

注意:真實的波形圖如上,高低電平并不是到達最高點才算,0.3Vdd 以下為低電平,0.7Vdd 以上為高電平,計算信號時間長度的時候需要注意這個微小的時間,硬件設計必須注意信號質量風險,軟件開發人員也要會看波形圖。

這里的參數,一般 spi 驅動不需要設置,但是半導體廠商提供的 spi 控制器驅動中,可以修改這些參數。我們寫 SPI 驅動時候,可以根據從設備的要求來修改這些參數。

5.DMA 與 FIFO

不同平臺對于 SPI FIFO 和 DMA 的 buffer size 設置不同:

傳輸 32bytes 以下使用 FIFO,傳輸 32bytes 以上使用 DMA。

DMA 可以自動發起多次傳輸,一次最大 256K 。

6.I2C 與 SPI 對比

功能

I2C

SPI

線數

2(SDA,SCL)

4(MOSI,MISO,SCLK,CS)

主機數量

>=1

==1

類型

半雙工

全雙工

回應機制

yes

no

速度

<=3.4Mbps

high

應用

重要數據

大量數據

流控

yes

no

設備地址

yes

no

常規用途

命令

數據

I2C 和 SPI 的速率如下:

I2C模式

速度

標準

100KHz

快速

400KHz

快速+

1MHz

高速

3.4MHz

SPI 速率:幾十 MHz 甚至上百 MHz,速度取決于 CPU 的 SPI 控制器和時鐘 clock

STM32F103 的 SPI 最高支持 18MHz,imx6ull 的 SPI 最高支持 52MHz,其他芯片一般用不到更高的,因為速度越快波形質量越不好,越容易出問題。

具體采用多大速率還和外設有關,比如 EEPROM 的 W25Q128 的 SPI 最高支持 80MHz,ICM20608 傳感器的 SPI 最高支持8MHz。一般用在 flash 上的速度會較快。

7.擴展

SPI 協議其實是包括:Standard SPI、Dual SPI 和 Queued SPI 三種協議接口。

Dual SPI 還是四線制,只是傳輸線可以變為同方向,速度是 Standard SPI 的兩倍。

Queued SPI 是六線制,多了兩根數據線,傳輸速度是 Standard SPI 的四倍。

責任編輯:武曉燕 來源: 嵌入式Linux系統開發
相關推薦

2022-05-15 22:34:32

SPI 控制器SPI 子系統

2024-10-29 08:34:55

SPI機制接口

2025-05-08 03:25:00

DubboSPI機制

2023-12-11 07:21:12

SPI機制插件

2011-11-30 14:35:19

JavaSPI

2025-03-04 09:02:25

JavaSPI機制

2010-06-09 11:05:28

SPI總線協議

2023-06-05 08:07:33

JavaJava SPI

2021-03-05 11:52:50

LinuxSPI驅動詳解

2022-11-02 21:45:54

SPIJava

2022-06-28 08:02:44

SPISpringJava

2022-05-05 13:54:37

SPI機制APISPI

2022-08-17 08:17:01

SPI機制接口

2020-12-14 11:35:22

SPI Java機制

2022-05-06 08:26:32

JavaSPI機制

2023-08-28 10:42:25

DubboSPIJava

2021-09-10 08:31:19

DubboSPI框架

2025-03-27 02:00:00

SPIJava接口

2021-05-30 07:54:24

SPI機制場景

2023-04-28 08:42:08

Linux內核SPI驅動
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 色吧色综合 | 精品久久久久久亚洲综合网站 | 欧美成年网站 | 精品国模一区二区三区欧美 | 9999精品视频 | 粉嫩国产精品一区二区在线观看 | 亚洲一区毛片 | 女同av亚洲女人天堂 | 久久综合伊人 | 爱爱免费视频 | 天天天天天天天干 | 日韩一级免费电影 | 亚洲视频三| 欧美极品在线观看 | 久久99视频 | 亚洲性综合网 | sese视频在线观看 | 欧美日韩在线成人 | 国产片侵犯亲女视频播放 | 国产精品一区二区福利视频 | 欧美成人一级 | 黄片毛片免费观看 | 成人在线观看免费 | 久久久久久看片 | 久久精品中文 | 日韩在线观看中文字幕 | 狠狠综合久久av一区二区小说 | 亚洲成人精 | 久久久久久国产精品免费 | 日本精品一区二区三区视频 | 成年人网站在线观看视频 | a久久| 日韩久久久久久 | 91看片网 | 国产99久久久国产精品 | 久久精彩视频 | 国产成人精品综合 | 国产91精品久久久久久久网曝门 | 91精品国产99| 久久黄网| 久久在线视频 |