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

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

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

全硬件TCP/IP協(xié)議棧學(xué)習(xí)筆記(第六天:SPI通信協(xié)議學(xué)習(xí)一)

學(xué)FPGA,慢慢來 ? 2017-12-18 10:27 ? 次閱讀

今天我們學(xué)習(xí)一下W5500使用的通訊接口,SPI協(xié)議。SPI,中文串行外圍設(shè)備接口,SPI總線是在物理上是通過接在外圍設(shè)備微控制單元上的同步串行端口的模塊來實現(xiàn)。他允許MCU以全雙工的同步串行方式,與各種外圍設(shè)備進(jìn)行高速數(shù)據(jù)通信。

SPI實為高速同步串行口。收發(fā)同步,可同步進(jìn)行。

SPI在芯片的管腳上只占用四根線,節(jié)約芯片的管腳。

“SPI的通信原理很簡單,它以主從方式工作,這種模式通常有一個主設(shè)備和一個或多個從設(shè)備,需要至少4根線,事實上3根也可以(單向傳輸時)。也是所有基于SPI的設(shè)備共有的,它們是SDI(數(shù)據(jù)輸入),SDO(數(shù)據(jù)輸出),SCK(時鐘),CS(片選)。

(1)SDO – 主設(shè)備數(shù)據(jù)輸出,從設(shè)備數(shù)據(jù)輸入

(2)SDI – 主設(shè)備數(shù)據(jù)輸入,從設(shè)備數(shù)據(jù)輸出

(3)SCLK – 時鐘信號,由主設(shè)備產(chǎn)生

(4)CS – 從設(shè)備使能信號,由主設(shè)備控制

其中CS是控制芯片是否被選中的,也就是說只有片選信號為預(yù)先規(guī)定的使能信號時(高電位或低電位),對此芯片的操作才有效。這就允許在同一總線上連接多個SPI設(shè)備成為可能?!?/p>

SPI是串行傳輸協(xié)議,數(shù)據(jù)是一位一位的傳輸?shù)?,而確定傳輸位的就是SCK信號,有他來產(chǎn)生脈沖信號,SDI和SDO則是基于這個脈沖完成數(shù)據(jù)傳輸,數(shù)據(jù)的輸出通過SDO線,數(shù)據(jù)在時鐘上升沿或下降沿改變,在緊接著的下降沿或上升沿被讀取。完成一位數(shù)據(jù)傳輸,所以要完成8位數(shù)據(jù)的傳輸,至少8次的時鐘信號改變。但SCK時鐘線只受主設(shè)備控制,從設(shè)備不能控制信號線。與普通的串行通信不同的是,普通的串行通信通訊一次至少8位,而SPI允許一位一位的傳輸,甚至允許暫停。主設(shè)備通過SCK時鐘的控制可以完成對通信的控制。SPI還有一個數(shù)據(jù)交換協(xié)議:因為SPI的數(shù)據(jù)輸入和輸出線獨立,所以允許同時完成數(shù)據(jù)的輸入輸出。在點對點的通信中,SPI接口不需要進(jìn)行尋址操作,且為全雙工通信,所以簡單高效。但是SPI接口沒有指定的流控制,沒有應(yīng)答機(jī)制確認(rèn)是否接收到數(shù)據(jù)。

在對應(yīng)的接口上,

MOSI:主出/從入

MISO:注入/從出

SCK:串行時鐘

SS:叢屬選擇

而SS的引腳數(shù)決定了可連到總線上的器件數(shù)量。

SPI傳輸串行數(shù)據(jù)是首先傳輸最高位,波特率可達(dá)到5Mbps

總線包括一根串行同步時鐘信號線以及兩根數(shù)據(jù)線

“SPI模塊為了和外設(shè)進(jìn)行數(shù)據(jù)交換,根據(jù)外設(shè)工作要求,其輸出串行同步時鐘極性和相位可以進(jìn)行配置,時鐘極性(CPOL)對傳輸協(xié)議沒有重大的影響。如果 CPOL="0",串行同步時鐘的空閑狀態(tài)為低電平;如果CPOL=1,串行同步時鐘的空閑狀態(tài)為高電平。時鐘相位(CPHA)能夠配置用于選擇兩種不同的傳輸協(xié)議之一進(jìn)行數(shù)據(jù)傳輸。如果CPHA=0,在串行同步時鐘的第一個跳變沿(上升或下降)數(shù)據(jù)被采樣;如果CPHA=1,在串行同步時鐘的第二個跳變沿(上升或下降)數(shù)據(jù)被采樣。SPI主模塊和與之通信的外設(shè)音時鐘相位和極性應(yīng)該一致”

CPHA = 1,就表示數(shù)據(jù)的輸出是在一個時鐘周期的第一個沿上,至于這個沿是上升沿還是下降沿,這要看CPOL的值而定,CPOL=1那就是下降沿,反之就是上升沿,數(shù)據(jù)的采樣就是在第二個沿上

CPHA = 0,就表示數(shù)據(jù)的采樣是在一個時鐘周期的第一個沿上,那么數(shù)據(jù)的輸出就在第二個沿上了

實際就是時鐘的高有效與低有效。

代碼實現(xiàn)又要待到明日

P.S.做了一周了,中間間斷了一天,但也不是遠(yuǎn)離了學(xué)習(xí)。雖然這個可能不用去從軟件協(xié)議棧入手,但是還是覺得去了解之后會有更大的幫助。之前51單片機(jī)學(xué)的真的蠻差的,以至于現(xiàn)在在面前的代碼并不能了解他的意思,或者做一些東西很迷。大三了,身邊的人已經(jīng)有大量的代碼經(jīng)驗,自己卻做的太少,哪怕現(xiàn)在轉(zhuǎn)一個工程都要這么費勁。想法很多,實現(xiàn)的能力達(dá)不到。眼高手低真的累,希望這兩天能讓我走出迷茫吧...

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

    關(guān)注

    9

    文章

    428

    瀏覽量

    26465
收藏 人收藏

    評論

    相關(guān)推薦

    什么是socket編程 socket與tcp/ip協(xié)議的關(guān)系

    基于TCP/IP協(xié)議族,這是組用于網(wǎng)絡(luò)通信協(xié)議,包括傳輸控制
    的頭像 發(fā)表于 11-01 16:01 ?111次閱讀

    Linux網(wǎng)絡(luò)協(xié)議的實現(xiàn)

    網(wǎng)絡(luò)協(xié)議是操作系統(tǒng)核心的個重要組成部分,負(fù)責(zé)管理網(wǎng)絡(luò)通信中的數(shù)據(jù)包處理。在 Linux 操作系統(tǒng)中,網(wǎng)絡(luò)協(xié)議
    的頭像 發(fā)表于 09-10 09:51 ?235次閱讀
    Linux網(wǎng)絡(luò)<b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b>的實現(xiàn)

    SPI通信協(xié)議的基本概念和工作模式

    SPI(Serial Peripheral Interface)通信協(xié)議,即串行外圍設(shè)備接口,是種高速、全雙工、同步通信總線,由摩托羅拉公司提出并廣泛應(yīng)用。
    的頭像 發(fā)表于 09-09 17:04 ?787次閱讀

    串口服務(wù)器和TCP/IP協(xié)議是什么關(guān)系

    串口服務(wù)器與TCP/IP協(xié)議之間存在著緊密而復(fù)雜的關(guān)系。這種關(guān)系主要體現(xiàn)在串口服務(wù)器如何利用TCP/I
    的頭像 發(fā)表于 08-25 17:35 ?1360次閱讀

    文了解TCP/IP協(xié)議

    TCP/IP協(xié)議是現(xiàn)代計算機(jī)網(wǎng)絡(luò)通信的基礎(chǔ),是互聯(lián)網(wǎng)及局域網(wǎng)廣泛使用的協(xié)議。
    的頭像 發(fā)表于 08-07 15:38 ?979次閱讀
    <b class='flag-5'>一</b>文了解<b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b><b class='flag-5'>協(xié)議</b>

    華納云:TCP IP協(xié)議的發(fā)展和優(yōu)勢

    如何被組織、傳輸和路由。TCP/IP協(xié)議集包含了許多協(xié)議,每個協(xié)議負(fù)責(zé)網(wǎng)絡(luò)通信過程中的不同方面。
    的頭像 發(fā)表于 07-25 16:49 ?409次閱讀

    TCP IP協(xié)議屬性設(shè)置中的IP配置

    的分配、子網(wǎng)掩碼的設(shè)置、網(wǎng)關(guān)和DNS的配置等方面,旨在為網(wǎng)絡(luò)工程師和IT專業(yè)人士提供科學(xué)、學(xué)術(shù)且專業(yè)的指導(dǎo)。 1. TCP/IP協(xié)議概述 TCP/I
    的頭像 發(fā)表于 07-23 10:10 ?425次閱讀

    TCP/IP協(xié)議的設(shè)計與實現(xiàn)_中文

    電子發(fā)燒友網(wǎng)站提供《TCP/IP協(xié)議的設(shè)計與實現(xiàn)_中文.pdf》資料免費下載
    發(fā)表于 07-03 11:28 ?4次下載

    LwIP協(xié)議源碼詳解—TCP/IP協(xié)議的實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《LwIP協(xié)議源碼詳解—TCP/IP協(xié)議的實現(xiàn).pdf》資料免費下載
    發(fā)表于 07-03 11:22 ?3次下載

    Microchip TCP/IP 協(xié)議應(yīng)用筆記

    電子發(fā)燒友網(wǎng)站提供《Microchip TCP/IP 協(xié)議應(yīng)用筆記.pdf》資料免費下載
    發(fā)表于 04-17 14:16 ?1次下載

    PROFINET協(xié)議通信技術(shù)介紹

    PROFINET協(xié)議是PROFINET通信協(xié)議的實現(xiàn)基礎(chǔ),它由多個層次組成,每個層次都有特定的功能和作用。
    的頭像 發(fā)表于 02-03 16:22 ?2370次閱讀

    通信網(wǎng)絡(luò)協(xié)議之UDP協(xié)議技術(shù)解析

    在通常的網(wǎng)絡(luò)協(xié)議中,TCP/IP協(xié)議個常見的
    發(fā)表于 02-01 11:00 ?854次閱讀
    <b class='flag-5'>通信</b>網(wǎng)絡(luò)<b class='flag-5'>協(xié)議</b><b class='flag-5'>棧</b>之UDP<b class='flag-5'>協(xié)議</b>技術(shù)解析

    有關(guān)通信協(xié)議些問題?

    抗干擾就加強(qiáng)濾波,要求輸入信號隔離就加隔離芯片或其他方式,總之這段電路不應(yīng)該太夏雜吧,遠(yuǎn)不如芯片內(nèi)部的信號處理電路?最后請推薦幾本有關(guān)串行通信協(xié)議方面硬件方面的書,還有個問題,這些
    發(fā)表于 01-14 00:58

    tcp/ip協(xié)議包含哪幾層?tcp和udp有什么區(qū)別?

    tcp/ip協(xié)議包含哪幾層?tcp和udp有什么區(qū)別? TCP/IP
    的頭像 發(fā)表于 11-29 17:40 ?1035次閱讀

    SPI通信協(xié)議原理是什么

    Peripheral Interface,也就是串行外設(shè)接口,同樣是通信協(xié)議,在很多芯片中都有集成。 相比之前學(xué)習(xí)的UART串口通信,他多了兩根線,其中
    的頭像 發(fā)表于 11-24 17:37 ?979次閱讀
    <b class='flag-5'>SPI</b><b class='flag-5'>通信協(xié)議</b>原理是什么