91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

串行外圍設(shè)備接口應(yīng)用及設(shè)計(jì)詳解

wFVr_Hardware_1 ? 來(lái)源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2017-10-16 08:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、 SPI簡(jiǎn)介

SPI,是英語(yǔ)Serial Peripheral interface的縮寫,顧名思義就是串行外圍設(shè)備接口。是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應(yīng)用在 EEPROM,F(xiàn)LASH,實(shí)時(shí)時(shí)鐘AD轉(zhuǎn)換器,還有數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器之間。SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳,同時(shí)為PCB的布局上節(jié)省空間,提供方便,正是出于這種簡(jiǎn)單易用的特性,現(xiàn)在越來(lái)越多的芯片集成了這種通信協(xié)議。

2、 SPI特點(diǎn)

2.1采用主-從模式(Master-Slave) 的控制方式

SPI 規(guī)定了兩個(gè) SPI 設(shè)備之間通信必須由主設(shè)備 (Master) 來(lái)控制次設(shè)備 (Slave). 一個(gè) Master 設(shè)備可以通過(guò)提供 Clock 以及對(duì) Slave 設(shè)備進(jìn)行片選 (Slave Select) 來(lái)控制多個(gè) Slave 設(shè)備, SPI 協(xié)議還規(guī)定 Slave 設(shè)備的 Clock 由 Master 設(shè)備通過(guò) SCK 管腳提供給 Slave 設(shè)備, Slave 設(shè)備本身不能產(chǎn)生或控制 Clock, 沒(méi)有 Clock 則 Slave 設(shè)備不能正常工作

2.2采用同步方式(Synchronous)傳輸數(shù)據(jù)

Master 設(shè)備會(huì)根據(jù)將要交換的數(shù)據(jù)來(lái)產(chǎn)生相應(yīng)的時(shí)鐘脈沖(Clock Pulse), 時(shí)鐘脈沖組成了時(shí)鐘信號(hào)(Clock Signal) , 時(shí)鐘信號(hào)通過(guò)時(shí)鐘極性 (CPOL) 和 時(shí)鐘相位 (CPHA) 控制著兩個(gè) SPI 設(shè)備間何時(shí)數(shù)據(jù)交換以及何時(shí)對(duì)接收到的數(shù)據(jù)進(jìn)行采樣, 來(lái)保證數(shù)據(jù)在兩個(gè)設(shè)備之間是同步傳輸?shù)?

2.3數(shù)據(jù)交換(Data Exchanges)

SPI 設(shè)備間的數(shù)據(jù)傳輸之所以又被稱為數(shù)據(jù)交換, 是因?yàn)?SPI 協(xié)議規(guī)定一個(gè) SPI 設(shè)備不能在數(shù)據(jù)通信過(guò)程中僅僅只充當(dāng)一個(gè) "發(fā)送者(Transmitter)" 或者 "接收者(Receiver)". 在每個(gè) Clock 周期內(nèi), SPI 設(shè)備都會(huì)發(fā)送并接收一個(gè) bit 大小的數(shù)據(jù), 相當(dāng)于該設(shè)備有一個(gè) bit 大小的數(shù)據(jù)被交換了. 一個(gè) Slave 設(shè)備要想能夠接收到 Master 發(fā)過(guò)來(lái)的控制信號(hào), 必須在此之前能夠被 Master 設(shè)備進(jìn)行訪問(wèn) (Access). 所以, Master 設(shè)備必須首先通過(guò) SS/CS pin 對(duì) Slave 設(shè)備進(jìn)行片選, 把想要訪問(wèn)的 Slave 設(shè)備選上. 在數(shù)據(jù)傳輸?shù)倪^(guò)程中, 每次接收到的數(shù)據(jù)必須在下一次數(shù)據(jù)傳輸之前被采樣. 如果之前接收到的數(shù)據(jù)沒(méi)有被讀取, 那么這些已經(jīng)接收完成的數(shù)據(jù)將有可能會(huì)被丟棄, 導(dǎo)致 SPI 物理模塊最終失效. 因此, 在程序中一般都會(huì)在 SPI 傳輸完數(shù)據(jù)后, 去讀取 SPI 設(shè)備里的數(shù)據(jù), 即使這些數(shù)據(jù)(Dummy Data)在我們的程序里是無(wú)用的。

2.4 SPI有四種傳輸模式

上升沿、下降沿、前沿、后沿觸發(fā)。當(dāng)然也有MSB和LSB傳輸方式.

2.5 SPI只有主模式和從模式之分。

沒(méi)有讀和寫的說(shuō)法,因?yàn)閷?shí)質(zhì)上每次SPI是主從設(shè)備在交換數(shù)據(jù)。也就是說(shuō),你發(fā)一個(gè)數(shù)據(jù)必然會(huì)收到一個(gè)數(shù)據(jù);你要收一個(gè)數(shù)據(jù)必須也要先發(fā)一個(gè)數(shù)據(jù)。

3、 工作機(jī)制

3.1概述

3.2 Timing

3.2.1 SPI相關(guān)的縮寫或說(shuō)法

SPI的極性Polarity和相位Phase,最常見的寫法是CPOL和CPHA,不過(guò)也有一些其他寫法,簡(jiǎn)單總結(jié)如下:(1) CKPOL (Clock Polarity) = CPOL = POL = Polarity = (時(shí)鐘)極性(2) CKPHA (Clock Phase) = CPHA = PHA = Phase = (時(shí)鐘)相位(3) SCK=SCLK=SPI的時(shí)鐘(4) Edge=邊沿,即時(shí)鐘電平變化的時(shí)刻,即上升沿(rising edge)或者下降沿(falling edge)對(duì)于一個(gè)時(shí)鐘周期內(nèi),有兩個(gè)edge,分別稱為:Leading edge=前一個(gè)邊沿=第一個(gè)邊沿,對(duì)于開始電壓是1,那么就是1變成0的時(shí)候,對(duì)于開始電壓是0,那么就是0變成1的時(shí)候;Trailing edge=后一個(gè)邊沿=第二個(gè)邊沿,對(duì)于開始電壓是1,那么就是0變成1的時(shí)候(即在第一次1變成0之后,才可能有后面的0變成1),對(duì)于開始電壓是0,那么就是1變成0的時(shí)候;

3.2.2 SPI的相位和極性

CPOL和CPHA,分別都可以是0或時(shí)1,對(duì)應(yīng)的四種組合就是:Mode 0 CPOL=0, CPHA=0Mode 1 CPOL=0, CPHA=1Mode 2 CPOL=1, CPHA=0Mode 3 CPOL=1, CPHA=1

3.2.3 CPOL極性

先說(shuō)什么是SCLK時(shí)鐘的空閑時(shí)刻,其就是當(dāng)SCLK在數(shù)發(fā)送8個(gè)bit比特?cái)?shù)據(jù)之前和之后的狀態(tài),于此對(duì)應(yīng)的,SCLK在發(fā)送數(shù)據(jù)的時(shí)候,就是正常的工作的時(shí)候,有效active的時(shí)刻了。先說(shuō)英文,其精簡(jiǎn)解釋為:Clock Polarity = IDLE state of SCK。再用中文詳解:SPI的CPOL,表示當(dāng)SCLK空閑idle的時(shí)候,其電平的值是低電平0還是高電平1:CPOL=0,時(shí)鐘空閑idle時(shí)候的電平是低電平,所以當(dāng)SCLK有效的時(shí)候,就是高電平,就是所謂的active-high;CPOL=1,時(shí)鐘空閑idle時(shí)候的電平是高電平,所以當(dāng)SCLK有效的時(shí)候,就是低電平,就是所謂的active-low;

3.2.4 CPHA相位

首先說(shuō)明一點(diǎn),capture strobe = latch = read = sample,都是表示數(shù)據(jù)采樣,數(shù)據(jù)有效的時(shí)刻。相位,對(duì)應(yīng)著數(shù)據(jù)采樣是在第幾個(gè)邊沿(edge),是第一個(gè)邊沿還是第二個(gè)邊沿,0對(duì)應(yīng)著第一個(gè)邊沿,1對(duì)應(yīng)著第二個(gè)邊沿。對(duì)于:CPHA=0,表示第一個(gè)邊沿:對(duì)于CPOL=0,idle時(shí)候的是低電平,第一個(gè)邊沿就是從低變到高,所以是上升沿;對(duì)于CPOL=1,idle時(shí)候的是高電平,第一個(gè)邊沿就是從高變到低,所以是下降沿;CPHA=1,表示第二個(gè)邊沿:對(duì)于CPOL=0,idle時(shí)候的是低電平,第二個(gè)邊沿就是從高變到低,所以是下降沿;對(duì)于CPOL=1,idle時(shí)候的是高電平,第一個(gè)邊沿就是從低變到高,所以是上升沿;還是上圖大家更容易看懂

3.2.5 軟件中如何設(shè)置SPI的極性和相位

SPI分主設(shè)備和從設(shè)備,兩者通過(guò)SPI協(xié)議通訊。而設(shè)置SPI的模式,是從設(shè)備的模式,決定了主設(shè)備的模式。所以要先去搞懂從設(shè)備的SPI是何種模式,然后再將主設(shè)備的SPI的模式,設(shè)置和從設(shè)備相同的模式,即可正常通訊。對(duì)于從設(shè)備的SPI是什么模式,有兩種:

3.2.5.1固定的,有SPI從設(shè)備硬件決定的

SPI從設(shè)備,具體是什么模式,相關(guān)的datasheet中會(huì)有描述,需要自己去datasheet中找到相關(guān)的描述,即:關(guān)于SPI從設(shè)備,在空閑的時(shí)候,是高電平還是低電平,即決定了CPOL是0還是1;然后再找到關(guān)于設(shè)備是在上升沿還是下降沿去采樣數(shù)據(jù),這樣就是,在定了CPOL的值的前提下,對(duì)應(yīng)著可以推算出CPHA是0還是1了。

3.2.5.2 可配置的,由軟件自己設(shè)定

從設(shè)備也是一個(gè)SPI控制器,4種模式都支持,此時(shí)只要自己設(shè)置為某種模式即可。然后知道了從設(shè)備的模式后,再去將SPI主設(shè)備的模式,設(shè)置為和從設(shè)備模式一樣,即可。對(duì)于如何配置SPI的CPOL和CPHA的話,不多細(xì)說(shuō),多數(shù)都是直接去寫對(duì)應(yīng)的SPI控制器中對(duì)應(yīng)寄存器中的CPOL和CPHA那兩位,寫0或?qū)?即可。3.3 SSPSR

3.4 SSPBUF

3.5 Controller

4. SPI舉例

上面說(shuō)了那么多,在這里我來(lái)舉一個(gè)例子幫助大家理解。SPI是一個(gè)環(huán)形總線結(jié)構(gòu),由ss(cs)、sck、sdi、sdo構(gòu)成,其時(shí)序其實(shí)很簡(jiǎn)單,主要是在sck的控制下,兩個(gè)雙向移位寄存器進(jìn)行數(shù)據(jù)交換。假設(shè)下面的8位寄存器裝的是待發(fā)送的數(shù)據(jù)10101010,上升沿發(fā)送、下降沿接收、高位先發(fā)送。那么第一個(gè)上升沿來(lái)的時(shí)候 數(shù)據(jù)將會(huì)是sdo=1;寄存器=0101010x。下降沿到來(lái)的時(shí)候,sdi上的電平將所存到寄存器中去,那么這時(shí)寄存器=0101010sdi,這樣在 8個(gè)時(shí)鐘脈沖以后,兩個(gè)寄存器的內(nèi)容互相交換一次。這樣就完成里一個(gè)spi時(shí)序。舉例:假設(shè)主機(jī)和從機(jī)初始化就緒:并且主機(jī)的sbuff=0xaa,從機(jī)的sbuff=0x55,下面將分步對(duì)spi的8個(gè)時(shí)鐘周期的數(shù)據(jù)情況演示一遍:假設(shè)上升沿發(fā)送數(shù)據(jù)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 實(shí)時(shí)時(shí)鐘

    關(guān)注

    4

    文章

    337

    瀏覽量

    68385
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    3043

    瀏覽量

    91700
  • 時(shí)鐘信號(hào)
    +關(guān)注

    關(guān)注

    4

    文章

    507

    瀏覽量

    30018

原文標(biāo)題:SPI詳解

文章出處:【微信號(hào):Hardware_10W,微信公眾號(hào):硬件十萬(wàn)個(gè)為什么】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    變頻器主電路外圍設(shè)備如何正確去選擇

    變頻器作為現(xiàn)代工業(yè)自動(dòng)化控制系統(tǒng)的核心部件,其主電路外圍設(shè)備的正確選擇直接影響系統(tǒng)穩(wěn)定性、能效比和設(shè)備壽命。本文將圍繞主回路斷路器、接觸器、電抗器、濾波器等關(guān)鍵外圍設(shè)備的選擇要點(diǎn)展開分析,并提供實(shí)際應(yīng)用中的配置建議。
    的頭像 發(fā)表于 03-02 17:29 ?550次閱讀
    變頻器主電路<b class='flag-5'>外圍設(shè)備</b>如何正確去選擇

    中科芯CKS32F107XX系列MCU的串行外設(shè)接口介紹

    SPI協(xié)議是由摩托羅拉公司提出的通訊協(xié)議(Serial Peripheral Interface),即串行外圍設(shè)備接口,是一種高速全雙工的通信總線。它在芯片的管腳上只占用四根線,節(jié)約了芯片的管腳
    的頭像 發(fā)表于 01-27 06:04 ?9284次閱讀
    中科芯CKS32F107XX系列MCU的<b class='flag-5'>串行</b>外設(shè)<b class='flag-5'>接口</b>介紹

    Air8000 BLE外圍模式全解析:數(shù)據(jù)收發(fā)實(shí)戰(zhàn)指南!

    Air8000的BLE外圍設(shè)備模式(peripheral)是實(shí)現(xiàn)低功耗藍(lán)牙通信的關(guān)鍵功能,它既能主動(dòng)向中心設(shè)備發(fā)送通知數(shù)據(jù),也能接收中心設(shè)備傳回的信息。本文將通過(guò)具體示例,詳細(xì)拆解這一模式的操作流程
    的頭像 發(fā)表于 11-24 14:26 ?1993次閱讀
    Air8000 BLE<b class='flag-5'>外圍</b>模式全解析:數(shù)據(jù)收發(fā)實(shí)戰(zhàn)指南!

    可編程多協(xié)議串行接口適配器 串行接口測(cè)試與轉(zhuǎn)換 USB轉(zhuǎn)UARTI2CSPICAN1-Wire

    串行接口
    穩(wěn)控自動(dòng)化
    發(fā)布于 :2025年10月30日 11:14:27

    深入剖析SPI協(xié)議

    SPI,全稱(Serial Peripheral interface)是由摩托羅拉公司首先定義的協(xié)議,中文名為串型外圍設(shè)備接口。SPI是一種高速全雙工的總線協(xié)議。
    的頭像 發(fā)表于 08-21 15:04 ?4106次閱讀
    深入剖析SPI協(xié)議

    ElfBoard嵌入式教育科普|USB接口全面解析

    USB的全稱是Universal Serial Bus,譯為通用串行總線,是一種用于連接計(jì)算機(jī)及其外部設(shè)備的標(biāo)準(zhǔn)接口,它的設(shè)計(jì)旨在標(biāo)準(zhǔn)化連接計(jì)算機(jī)與外部設(shè)備之間的通信,到現(xiàn)在它已經(jīng)是一
    的頭像 發(fā)表于 07-16 11:38 ?5527次閱讀
    ElfBoard嵌入式教育科普|USB<b class='flag-5'>接口</b>全面解析

    【HarmonyOS 5】鴻蒙星閃NearLink詳解

    是 HarmonyOS 提供的短距離通信服務(wù),支持星閃設(shè)備間的連接、數(shù)據(jù)交互。例如,手機(jī)可作為中心設(shè)備外圍設(shè)備(如鼠標(biāo)、手寫筆、智能家電、車鑰匙等)通過(guò)星閃進(jìn)行連接。 二、NearLink Kit 的接入
    的頭像 發(fā)表于 07-11 18:24 ?1929次閱讀
    【HarmonyOS 5】鴻蒙星閃NearLink<b class='flag-5'>詳解</b>

    外圍設(shè)備通過(guò)手機(jī)連接到BLE應(yīng)用程序,為什么不能連接到Infineaon BLE?

    使用 ch06_ex01_periab \" le 項(xiàng)目創(chuàng)建了外圍設(shè)備。\" \" 使用像 LightBlue 這樣的移動(dòng)應(yīng)用程序,我能夠連接到這個(gè)外圍設(shè)備并更改特征值。 我已經(jīng)使用 \"
    發(fā)表于 07-07 08:06

    是否有可能使用CYSPP配置文件連接到外圍設(shè)備?

    我們的現(xiàn)有系統(tǒng)使用中央和外圍設(shè)備,使用基于 Microchip RN4020 的中央和外圍設(shè)備。 由于供應(yīng)限制的原因,我們希望將英飛凌 CYBT-483056 SoC 用于 BLE central。 我們想知道是否有可能使用CYSPP配置文件連接到
    發(fā)表于 07-07 06:17

    求助,關(guān)于PSOC6與4343W藍(lán)牙配對(duì)問(wèn)題求解

    我有一塊帶有 PSOC6(6247)的定制電路板,連接到 CYC4343W。 該開發(fā)板充當(dāng)藍(lán)牙中央設(shè)備。 它正在通過(guò)藍(lán)牙(BT)MAC 地址掃描特定外圍設(shè)備。 成功找到外圍設(shè)備并啟動(dòng)配對(duì)過(guò)程。 初始
    發(fā)表于 06-27 06:43

    HarmonyOS 5 makeObserved接口詳解

    【HarmonyOS 5】makeObserved接口詳解 ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用 (金融理財(cái)# 一、makeObserved接口
    的頭像 發(fā)表于 06-16 17:58 ?698次閱讀

    MAX9249多媒體串行鏈路串行器,帶有LVDS系統(tǒng)接口技術(shù)手冊(cè)

    MAX9249串行器帶有LVDS系統(tǒng)接口,采用Maxim吉比特多媒體串行鏈路(GMSL)技術(shù)。MAX9249串行器與GMSL解串器配合使用,構(gòu)成完整的數(shù)字
    的頭像 發(fā)表于 05-28 16:43 ?1106次閱讀
    MAX9249多媒體<b class='flag-5'>串行</b>鏈路<b class='flag-5'>串行</b>器,帶有LVDS系統(tǒng)<b class='flag-5'>接口</b>技術(shù)手冊(cè)

    MAX6618 PECI至I2C轉(zhuǎn)換器技術(shù)手冊(cè)

    獨(dú)立的串行通信通道,用于在多主系統(tǒng)或多從系統(tǒng)中與外圍設(shè)備同步通信。該接口允許最高400kbps的串行數(shù)據(jù)速率。
    的頭像 發(fā)表于 05-16 10:52 ?772次閱讀
    MAX6618 PECI至I2C轉(zhuǎn)換器技術(shù)手冊(cè)

    串行通信接口SPI與QSPI的區(qū)別

    在嵌入式系統(tǒng)的世界里,選擇正確的通信技術(shù)可以對(duì)項(xiàng)目的性能和可擴(kuò)展性產(chǎn)生重大影響。讓我們比較兩個(gè)流行的串行通信接口:SPI(串行外設(shè)接口)和QSPI(四路SPI)。
    的頭像 發(fā)表于 04-09 15:24 ?3317次閱讀
    <b class='flag-5'>串行</b>通信<b class='flag-5'>接口</b>SPI與QSPI的區(qū)別

    MKW45B41Z客戶端無(wú)法從服務(wù)器獲取服務(wù)是為什么?

    嗨,我正在使用MKW45B41Z定制板。我正在開發(fā)kw45b41zevk_adv_central_bm示例程序。我的設(shè)置是 (NRF Connect) 移動(dòng)應(yīng)用程序充當(dāng)外圍設(shè)備服務(wù)器角色
    發(fā)表于 03-28 07:40