色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式系統低速接口SPI講解

云深之無跡 ? 來源:云深之無跡 ? 2023-08-14 09:59 ? 次閱讀

我一直以為SPI比IIC難的,因為可能是因為使用了比較“重型”的傳感器才會搭配這個接口

但是今天用FPGA寫了一個簡單的移位寄存器,感覺不一樣,甚至是不對勁。

65d370e2-3904-11ee-9e74-dac502259ad0.png

移位寄存器按照移位方向可分為左移位寄存器、右移位寄存器、雙向移位寄存器。

65fa6076-3904-11ee-9e74-dac502259ad0.png

這個圖記住,菊花鏈也跑不了

660cb41a-3904-11ee-9e74-dac502259ad0.png

這個是STM32F103的主從設備的示意

MOSI腳相互連接,MISO腳相互連接。這樣,數據在主和從之間串行地傳輸(MSB位在前)。通信總是由主設備發起。主設備通過MOSI腳把數據發送給從設備,從設備通過MISO引腳回傳數據。這意味全雙工通信的數據輸出和數據輸入是用同一個時鐘信號同步的;時鐘信號由主設備通過SCK腳提供。

其實最近一段時間我頻繁在機器人系統里面,比如FPGA和ARM的控制核之間,發現它們之間的交互都是使用SPI。也就是說設計人員需要具有簡單的設備到設備數字接口的微控制器、外設和傳感器,以便可以高速處理任意長度的數據,并且省去與協議相關的復雜編程任務。

6625da9e-3904-11ee-9e74-dac502259ad0.png

基本SPI全雙工連接使用兩條數據線(MOSI、MISO)、一條時鐘線 (SCK) 和一條片選線 (CS)。從設備上的MOSI有時標記為從設備數據輸入 (SDI)。MISO可標記為從設備數據輸出 (SDO)。

6641936a-3904-11ee-9e74-dac502259ad0.png

兩種處理多個從設備連接的配置。直接連接方式下每個從設備需要一個片選信號。菊花鏈連接方式僅使用一個片選信號,并將所有數據集中在一條線上。

6671c8e6-3904-11ee-9e74-dac502259ad0.png

主要看箭頭,多個從機

66912164-3904-11ee-9e74-dac502259ad0.png

菊花鏈

在菊花鏈模式下,所有從機的片選信號連接在一起,數據從一個 從機傳播到下一個從機。在此配置中,所有從機同時接收同一SPI 時鐘。

來自主機的數據直接送到第一個從機,該從機將數據提供 給下一個從機,依此類推。使用該方法時,由于數據是從一個從機傳播到下一個從機,所以 傳輸數據所需的時鐘周期數與菊花鏈中的從機位置成比例。

66cea4f8-3904-11ee-9e74-dac502259ad0.png

在圖所示的8位系統中,為使第3個從機能夠獲得數據,需要24個 時鐘脈沖,而常規SPI模式下只需8個時鐘脈沖。

一般Master設備就是我們的MCU,Master 設備會根據將要交換的數據來產生相應的時鐘脈沖(Clock Pulse),時鐘脈沖組成了時鐘信號(Clock Signal) ,時鐘信號通過時鐘極性 (CPOL) 和 時鐘相位 (CPHA) 控制著兩個 SPI 設備間何時數據交換以及何時對接收到的數據進行采樣,來保證數據在兩個設備之間是同步傳輸的。

SPI 設備間的數據傳輸之所以又被稱為數據交換,是因為 SPI 協議規定一個 SPI 設備不能在數據通信過程中僅僅只充當一個 "發送者(Transmitter)" 或者 "接收者(Receiver)"。

在每個 Clock 周期內,SPI 設備都會發送并接收一個 bit 大小的數據(不管主設備好還是從設備),相當于該設備有一個 bit 大小的數據被交換了。一個 Slave 設備要想能夠接收到 Master 發過來的控制信號,必須在此之前能夠被 Master 設備進行訪問 (Access)。所以,Master 設備必須首先通過 SS/CS pin 對 Slave 設備進行片選, 把想要訪問的 Slave 設備選上。

在數據傳輸的過程中,每次接收到的數據必須在下一次數據傳輸之前被采樣。如果之前接收到的數據沒有被讀取,那么這些已經接收完成的數據將有可能會被丟棄,導致 SPI 物理模塊最終失效。

因此,在程序中一般都會在 SPI 傳輸完數據后,去讀取 SPI 設備里的數據, 即使這些數據(Dummy Data)在我們的程序里是無用的(雖然發送后緊接著的讀取是無意義的,但仍然需要從寄存器中讀出來)。

在SPI通信期間,數據的發送(串行移出到MOSI/SDO總線上)和接收(采樣或讀入總線(MISO/ SDI)上的數據)同時進行。

所以捏SPI沒有讀和寫的說法,因為實質上每次SPI是主從設備在交換數據。也就是說,你發一個數據必然會收到一個數據;你要收一個數據必須也要先發一個數據。

就像IIC一樣,SPI也是需要找到誰在通訊的,比較費引腳,必須有一個片選的腳。來自主機的片選信號用于選擇從機。這通常是一個低電平有效信號,拉高時從機與SPI總線斷開連接。當使用多個從機時,主機需要為每個從機提供單獨的片選信號。

要開始SPI通信,主機必須發送時鐘信號,并通過使能CS信號選擇從機。片選通常是低電平有效信號。

因此,主機必須在該信號上發送邏輯0以選擇從機。SPI是全雙工接口,主機和從機可以分別 通過MOSI和MISO線路同時發送數據。

在SPI中,主機可以選擇時鐘極性和時鐘相位。

在空閑狀態期間,CPOL位設置時鐘信號的極性。空閑狀態是指傳輸開始時CS為 高電平且在向低電平轉變的期間,以及傳輸結束時CS為低電平且 在向高電平轉變的期間。

CPHA位選擇時鐘相位。根據CPHA位的狀態,使用時鐘上升沿或下降沿來采樣和/或移位數據。主機必須根據從機的要求選擇時鐘極性和時鐘相位。根據CPOL和CPHA位的選擇,有四種SPI模式可用。

66ecdff4-3904-11ee-9e74-dac502259ad0.png

數據顯示在MOSI和MISO線上。傳輸的開始和結束用綠色虛線表示,采樣邊沿用橙色虛線表示,移位邊沿用藍色虛線表示。

671a3ae4-3904-11ee-9e74-dac502259ad0.png

SPI模式0,CPOL = 0,CPHA = 0:CLK空閑狀態 = 低電平,數據在上升沿采樣,并在下降沿移出。

一采樣,一移位。

由主設備控制并生成時鐘。時鐘的兩個屬性分別是時鐘極性 (CPOL) 和時鐘相位 (CPHA)。這些屬性控制從設備相對數據進行計時的有效時鐘邊沿。CPOL = 0時,將時鐘設為在邏輯0位置空閑。CPOL = 1時,時鐘在邏輯1位置空閑。CPHA = 0時,數據在上升沿計時,CPHA = 1時,數據在下降沿計時(圖3)。

67409dba-3904-11ee-9e74-dac502259ad0.png

SPI時鐘模式選擇確定了進行數據采樣的有效時鐘邊沿。

主設備中的CPOL和CPHA線路設置決定了時鐘極性以及進行數據計時的有效邊沿。模式1是最常用的模式,但設計人員同樣可以使用其他三種模式。

677d83ce-3904-11ee-9e74-dac502259ad0.png

上面的軌跡是數據線,中間的軌跡是時鐘,底部的軌跡是片選信號。數據軌跡上的藍色覆蓋區顯示的是十六進制解碼內容。

讓我來帶你看個MC的芯片手冊,看看不一樣的SPI。

681eeb60-3904-11ee-9e74-dac502259ad0.png

一個SPI的溫度計

68458d4c-3904-11ee-9e74-dac502259ad0.png

別問咋搞,直接街上

6855144c-3904-11ee-9e74-dac502259ad0.png

很多的時候,我們是使用傳感器直接寫,但是在機器人里面我們需要自己寫一個傳輸的協議,這個是后話。

我們先看一個電氣層的參數

6888000a-3904-11ee-9e74-dac502259ad0.png

首先建立這些的時間都是ns級別,怎么說呢,俺說不明白。

說說這些東西的意思,我覺得是滿足不同人的需求,比如我現在就拿出一塊51,我就能輸出個高低電平,你能咋。

68a04264-3904-11ee-9e74-dac502259ad0.png

所以這些寫模擬協議的時候就有用,因為對于器件來說,我才不管什么東西插了我,反正說的通就行。

片選 (Chip Enable, CE) 、串行時鐘 (Serial Clock, SCK) 、串行數據輸入 (Serial Data Input,SDI)以及串行數據輸出(Serial Data Output, SDO )信號線。

CE 輸入用于在有多個器件連接到串行時鐘和數據線時選擇器件。CE 為高電平有效,當 CE 等于邏輯高電平時,數據可以寫入器件或從器件讀出。CE 為低電平 時, SCK 輸入被禁止。

68fbc4ae-3904-11ee-9e74-dac502259ad0.png

抬高的時候,就是到我啦!

CE 線的上升沿啟動讀或寫操作,而 CE 的下降沿結束讀或寫操作。

69109f5a-3904-11ee-9e74-dac502259ad0.png

SCK 輸入由外部單片機提供,用于同步 SDI 和 SDO 線 的數據。

692631c6-3904-11ee-9e74-dac502259ad0.png

SDI 輸入向傳感器的控制寄存器寫入數據,而 SDO從溫度寄存器中輸出溫度數據和控制寄存器關斷位的狀態。

傳感器具有能在 SCK輸入信號為有效高電平或低電平時工作的能力。當 CE 信號變成高電平時,檢測到 SCK 的 無效狀態,而時鐘輸入 (CP)的極性決定數據是在系統時鐘的上升沿或下降沿移入或移出。

694bf640-3904-11ee-9e74-dac502259ad0.png

給出了用于傳送數據到寄存器和從寄存器移出數 據的相應時鐘邊沿。每個時鐘脈沖傳送一位數據,數據位以 8 位為一組傳送。

696b8ac8-3904-11ee-9e74-dac502259ad0.png

A就是地址

先發送地址字節,隨后為數據。地址的最高位 A7 決定 要進行讀操作還是寫操作。

如果 A7 =“0”,將進行一個或多個讀操作;否則 A7 = “1”,進行一個或多個寫操作。

69953c2e-3904-11ee-9e74-dac502259ad0.png

地址+L+M

數據可以采用單字節或多字節包的方式進行傳送,如圖所示。在 3 字節包中,數據序列包括溫度數據的 MSb、溫度數據的 LSb 和緊接著的控制寄存器數據。通 過向寄存器寫入所需數據包的最高地址來啟動多字節讀功能。

這段有問題,我明天改正。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2551

    文章

    51134

    瀏覽量

    753840
  • FPGA
    +關注

    關注

    1629

    文章

    21744

    瀏覽量

    603607
  • 寄存器
    +關注

    關注

    31

    文章

    5343

    瀏覽量

    120426
  • 接口
    +關注

    關注

    33

    文章

    8611

    瀏覽量

    151236
  • SPI
    SPI
    +關注

    關注

    17

    文章

    1707

    瀏覽量

    91627

原文標題:嵌入式系統低速接口-SPI

文章出處:【微信號:TT1827652464,微信公眾號:云深之無跡】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    調試嵌入式系統設計中的低速串行總線

    調試嵌入式系統設計中的低速串行總線今天,嵌入式系統幾乎遍布在人類社會的每個角落。嵌入式
    發表于 11-26 09:33

    嵌入式硬件通信接口協議SPI講解

    嵌入式硬件通信接口協議-SPI(一)協議基礎
    發表于 07-19 09:03

    嵌入式系統接口應用

    嵌入式系統原理與接口技術》——嵌入式系統接口應用基礎本文為我負責編寫的電子工業出版社出版的《
    發表于 08-09 06:56

    嵌入式系統接口測試

    嵌入式系統接口測試策略嵌入式系統接口測試策略摘要:在日益廣泛應用的
    發表于 10-27 08:41

    調試嵌入式系統設計中的低速串行總線(二)

    調試嵌入式系統設計中的低速串行總線(二)SPI背景知識串行外設接口總線(SPI)最初是摩托羅拉在
    發表于 11-26 21:39 ?1202次閱讀
    調試<b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>設計中的<b class='flag-5'>低速</b>串行總線(二)

    DSP嵌入式系統人機接口設計

    DSP嵌入式系統人機接口設計  1 引言   人機接口嵌入式控制系統的重要組成部分,用于
    發表于 12-24 16:34 ?975次閱讀
    DSP<b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>人機<b class='flag-5'>接口</b>設計

    基于嵌入式系統的Internet接口開發

    基于嵌入式系統的Internet接口開發
    發表于 02-07 17:25 ?11次下載

    低速數據采集系統設計,DSP嵌入式系統開發典型案例

    低速數據采集系統設計,DSP嵌入式系統開發典型案例
    發表于 10-19 10:28 ?17次下載
    中<b class='flag-5'>低速</b>數據采集<b class='flag-5'>系統</b>設計,DSP<b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>開發典型案例

    嵌入式硬件通信接口協議中的串行通信接口-SPI

    本節繼續講嵌入式硬件通信接口協議中的另外一個串行通信接口-SPI。相比于UART串口協議,SPI又有著其獨特之處。
    發表于 02-05 11:35 ?1645次閱讀
    <b class='flag-5'>嵌入式</b>硬件通信<b class='flag-5'>接口</b>協議中的串行通信<b class='flag-5'>接口</b>-<b class='flag-5'>SPI</b>

    嵌入式系統嵌入式PLC

    嵌入式系統嵌入式PLC基礎知識講解
    發表于 04-20 16:30 ?27次下載

    基于RTOS的嵌入式系統軟件的設計講解

    基于RTOS的嵌入式系統軟件的設計講解(樹莓派嵌入式開發板)-該文檔為基于RTOS的嵌入式系統
    發表于 07-30 10:03 ?8次下載
    基于RTOS的<b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>軟件的設計<b class='flag-5'>講解</b>

    嵌入式系統基礎知識講解

    嵌入式系統基礎知識講解(嵌入式開發知識)-該文檔為嵌入式系統基礎知識
    發表于 07-30 10:32 ?13次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>基礎知識<b class='flag-5'>講解</b>

    嵌入式軟件接口怎么測試,嵌入式系統接口測試策略.doc

    嵌入式系統接口測試策略嵌入式系統接口測試策略摘要:在日益廣泛應用的
    發表于 10-20 19:06 ?16次下載
    <b class='flag-5'>嵌入式</b>軟件<b class='flag-5'>接口</b>怎么測試,<b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b><b class='flag-5'>接口</b>測試策略.doc

    嵌入式硬件通信接口協議-SPI(二)分層架構設計模擬接口

    嵌入式硬件通信接口協議-SPI(二)分層架構設計模擬接口
    發表于 12-09 12:36 ?19次下載
    <b class='flag-5'>嵌入式</b>硬件通信<b class='flag-5'>接口</b>協議-<b class='flag-5'>SPI</b>(二)分層架構設計模擬<b class='flag-5'>接口</b>

    嵌入式系統低速接口SPI和UART的區別

    繼續說SPISPI來說就是沒有IIC那么固定。它就是設計了一種二進制流的交互方式,所以這也是為什么它那么靈活的原因。它可以在任何兩個嵌入式的設備之間交換消息。
    的頭像 發表于 08-14 11:44 ?1550次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b><b class='flag-5'>低速</b><b class='flag-5'>接口</b><b class='flag-5'>SPI</b>和UART的區別
    主站蜘蛛池模板: 最近中文字幕2019免费版| 亚洲国产中文字幕在线视频| 最近中文字幕完整版高清| 暖暖视频免费观看社区| 国产成人精品综合久久久| 越南美女内射BBWXZ| 色欲AV精品人妻一二三区| 久久国产乱子伦精品免费M| 春药按摩人妻中文字幕| 浴室里强摁做开腿呻吟的漫画| 人妻 中文无码 中出| 开心成人社区| 久久国产免费一区二区三区| 国产成人8x视频一区二区| freevideoshd| qvod电影网站| www.97干| 变形金刚7免费观看完整| jealousvue成熟40岁| HEYZO精品无码一区二区三区| 中文字幕永久在线| 97色伦图区97色伦综合图区 | 乡村教师电影版| 亚洲 欧美 国产 综合 在线| 天美传媒在线完整免费观看网站 | 男污女XO猛烈的动态图| 奇米色偷偷| 欧美亚洲日韩国码在线观看| 欧美日韩精品| 久久久精品免费视频| 久久精品国产只有精品| 麻豆国产自制在线观看| 免费国产成人高清在线看软件| 妈妈的朋友6未删减版完整在线| 蜜桃传媒视频| 天天综合亚洲综合网站| 一个人免费视频在线观看| 99er4久久视频精品首页| 丰满女友bd高清在线观看| 好大好硬好爽好深好硬视频| 九九热免费在线观看|