在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

一文講透SPI總線和IIC總線通信2

jf_78858299 ? 來源:金沙灘工作室 ? 作者:宋雪松 ? 2023-02-13 10:40 ? 次閱讀

66.6 邏輯分析儀測試UART和IIC

在實際開發過程中,大多數情況下程序代碼并不是一寫出來就可以正常運行,通常需要查找問題,調試功能。在單片機內部運行的變量和寄存器等參數可以通過在線仿真的方法查看,而單片機外部引腳的運行就要使用示波器或邏輯分析儀來查看了。在分析數字信號以及標準協議信號方面,邏輯分析儀的分析功能比示波器更優一些,下面就采用Kingst LA5016邏輯分析儀,針對6.5節的程序,將UART和I2C信號進行抓取分析。

UART數據抓取和解析解碼的界面如圖6-6所示,從圖上可以看出,單個脈沖T1到T2之間的時間差是104us,時間差的倒數就是波特率,也就是9600。當沒有信號的時候,通道處于高電平,產生第1個低電平就是起始位,而后是8位數據位,最后是停止位,其中數據位的位置軟件都加了白點。最終,軟件根據協議設置選項將數據解析出來是0x31,0x32......。

圖片

圖6-6 Kingst LA5016邏輯分析儀解析UART數據

當串口助手發送讀數據指令,讀到的數據不正確的時候,首先我們要判斷一下是單片機發送錯了,還是電腦接收錯了,這個時候可以通過分析儀測量一下UART串口通信波形以及解析的數據來判斷。如果分析儀抓到的都正確,那就說明發送正確,接收方出現問題。

如果分析儀抓取分析的數據,不是單片機想發送的數據,那說明發送錯了。既然發送錯了,要么是程序問題,要么是從EEPROM讀取的數據錯了。這個時候需要抓一下從EEPROM讀到的數據。采集分析完從EEPROM讀到的數據,如果數據正確,那問題可能就出在了讀數據后轉成UART發送給電腦的程序過程中;如果數據是錯誤的,那要么是存入EEPROM本來就是錯誤的,要么是存入正確,讀取EEPROM的程序是錯誤的,如圖6-7所示。

圖片

圖6-7 Kingst LA5016邏輯分析儀解析IIC數據

在圖6-7當中,其中通道0是SCL,通道1是SDA。圖中可以看出讀寫時序圖,并且可以將讀寫的數據解析出來,用來判斷出從EEPROM讀取的數據是否有錯。

76.7 初識SPI總線協議

SPI(Serial Peripheral Interface)是一種高速的、全雙工、同步通信總線,常用于單片機和EEPROM、FLASH、實時時鐘、數字信號處理器等器件的通信。由于其簡單實用,數據傳輸速率較高,被廣泛應用于外設控制領域。標準的SPI接口一般使用4條線:串行時鐘線(SCK)、主機輸入/從機輸出數據線(MISO)、主機輸出/從機輸入數據線(MOSI)和從機選擇線(CS,也被稱作SSEL或NSS)。SPI總線允許一對一或一對多通信,無論哪種方式,通信線路中只允許有一個主機。一對多通信要求從機共用SCK、MISO、MOSI,通過片選CS(NSS)選擇使能從機設備。從微觀角度上看主機一次只能與一個從機通信,比如主機先與從機1通信,然后再與從機2通信,如此循環,在宏觀角度上看就相當于一個主機與兩個從機實現通信,如圖6-8所示。

圖片

圖6-8 SPI接口連接示意圖

6.7.1 SPI通信原理

SPI總線與前面講的IIC總線類似,都屬于同步通信,即通信雙方時必須使用相同的時鐘信號;都屬于一主多從結構,即總線上只有一個主機,可以掛載多個從機。不同之處在于,IIC屬于單工通信,同一時刻只能收或者發,而SPI可以全雙工通信,同一時刻既能收又能發,因此SPI的通信速率遠遠超過IIC,可以達到幾十Mbps。此外IIC通信可以由主從設備的任意一方發起,而SPI通信只能由主機發起,從機不能主動與主機通信,因為從機不產生同步時鐘信號。

SPI通信本質上是一個串行移位過程。SPI主從設備構成一個環形總線結構,SPI通信的主機一般是單片機,首先主機拉低CS(NSS)信號使能片選,告訴從機開始通信,然后主機開始輸出同步時鐘信號SCK,主機的移位寄存器通過MOSI移出1位數據,從機的移位寄存器通過該線移入這1位數據;同時從機的移位寄存器又通過MISO線移出1位數據,主機的移位寄存器通過該線移入這1位數據,因此在1個時鐘周期內,主從設備的雙向移位寄存器通過MOSI和MISO數據線實現了1 bit數據的交換,即雙方都發出并接收到1 bit數據。

6.7.2 SPI通信模式

I^2^C總線只有一種通信模式,即當SCL在低電平的時候,向SDA輸出數據,當SCL在高電平的時候,對SDA上的數據進行采樣。與I^2^C不同的是,SPI總線有四種通信模式,要了解這四種模式,首先我們得學習以下兩個名詞。

CPOL: Clock Polarity,就是時鐘的極性。時鐘的極性是什么概念呢?通信的整個過程分為空閑時刻和通信時刻,如果CPOL=1,那么SCLK在數據發送之前和之后的空閑狀態是高電平,如果CPOL=0,那么SCK煩人空閑狀態就是低電平。

CPHA: Clock Phase,意思是時鐘的相位,就是指數據采樣發生在第幾個時鐘邊沿, CPHA =0對應著第一個時鐘邊沿,CPHA =1對應著第二個時鐘邊沿。

主機和從機要交換數據,就牽涉到一個問題,即主機在什么時刻輸出數據到MOSI上而從機在什么時刻采樣這個數據,或者從機在什么時刻輸出數據到MISO上而主機什么時刻采樣這個數據。同步通信的一個特點就是所有數據的變化和采樣都是伴隨著時鐘沿進行的,也就是說數據總是在時鐘的邊沿附近輸出或被采樣。而一個時鐘周期必定包含了一個上升沿和一個下降沿,這是周期的定義所決定的,只是這兩個沿的先后并無規定。又因為數據從產生的時刻到其穩定是需要一定時間的,那么,如果主機在上升沿輸出數據到MOSI上,從機就只能在下降沿去采樣這個數據了。反之如果一方在下降沿輸出數據,那么另一方就必須在上升沿采樣這個數據。

CPHA=0,就表示數據的采樣是在一個時鐘周期的第一個沿上,至于這個沿是上升沿還是下降沿,這要視CPOL的值而定,CPOL=1那就是下降沿,反之就是上升沿。那么數據的采樣自然就是在第二個沿上了。

CPHA=1,就表示數據的采樣是在一個時鐘周期的第二個沿上,同樣它是什么沿由CPOL決定。CPOL=1那就是上升沿,反之就是下降沿。

以CPOL=1/CPHA=1,高位在前為例,把時序圖畫出來給大家看一下,如圖6-9所示。

圖片

圖6-9 SPI通信時序圖(一)

如圖6-10所示,當數據未發送時以及發送完畢后,由于CPOL=1,因此SCK都是高電平。可以看出,在SCK第一個沿的時候,MOSI和MISO會發生變化,同時SCK第二個沿的時候,數據是穩定的,此刻采樣數據是合適的,即一個時鐘周期的后沿鎖存并讀取數據,即CPHA=1。

注意最后最隱蔽的SSEL片選,這個引腳通常用來決定主機是和哪個從機進行通信。剩余的三種模式,直接把圖畫出來,簡化起見把MOSI和MISO合在一起了,可以通過仔細對比加深對SPI通信的理解,SPI剩余三種模式時序如圖6-8所示。

需要解釋一下CPHA=0時的兩種模式時序圖,圖中數據采樣發生在數據輸出之前,可能會存在疑問,主機和從機還未輸出數據就進行采樣?圖中所示的數據輸出指的是輸出第二位數據,即圖中所示bit 6 位的數據。那么被采樣的數據位是什么時候輸出的?其實早在SCK信號由空閑狀態轉變為有效狀態之前,即在SCK的第一個時鐘邊沿還要早半個時鐘周期時,SPI主機就已經開始輸出數據了,但是SPI從機卻是在片選SSEL置低后開始輸出數據,總之SPI設備輸出數據要早于SCK,這也是為什么SPI通信時要先使能片選。

圖片

圖6-10 SPI通信時序圖(二)

86.8 配置STM32的SPI外設

STM32單片機的SPI接口允許芯片與外部設備以半/全雙工、同步、串行方式通信。此接口可以被配置成主模式或從模式,當被配置為主模式時,可以為外部從設備提供通信時鐘信號(SCK)。SPI接口擁有8個主模式波特率預分頻系數(最大為f PCLK /2,fPCL~~K為掛載SPI外設的APBx的時鐘頻率)。需要說明的一點,由于APB1的最高頻率是36Mhz,APB2的最高頻率是72Mhz,SPI波特率預分頻系數為2時,位于APB2上的SPI外設理論上最大速率是36MHz,但是實際上由于STM32F103的硬件限制,SPI的最大速率只能達到18Mhz(選型手冊也有介紹)。此外,SPI接口還支持硬件的CRC校驗,保證通信的可靠性。

6.8.1 SPI引腳

在配置STM32的SPI模塊為主機模式時,MOSI引腳是數據輸出,而MISO引腳是數據輸入。當被配置為從機模式時 MOSI引腳則是數據輸入,MISO引腳是數據輸出。因此通信時主從設備的MOSI兩兩相連,MISO兩兩相連,此外還需要連接SCK和CS(NSS)引腳。

圖片

注意:SPI3模塊部分引腳與 JTAG引腳共用,這些引腳不受IO控制器控制,它們(復位后)被默認保留為JTAG用途。如果想把引腳配置給SPI3,必須在初始化引腳時關閉JTAG并切換SWD接口,代碼為:

GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);

// JTAG-DP 失能 + SW-DP 使能指令。

NSS:從設備選擇。作為“片選引腳”,這是一個可選的引腳,使得主設備可以單獨地與特定從設備通訊,避免數據線上的沖突。從設備的NSS引腳可以由主設備的一個標準I/O引腳來驅動,不一定非要SPI外設的NSS引腳,采用普通IO口作為NSS引腳時需要設置NSS引腳模式為軟件NSS模式。Kingst-32F1開發板SPI2接口與多路設備通信,其從機的NSS引腳就是STM32的幾個普通I/O口,后續用到再詳細介紹。

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

    關注

    6064

    文章

    44931

    瀏覽量

    647399
  • SPI
    SPI
    +關注

    關注

    17

    文章

    1785

    瀏覽量

    94857
  • EEPROM
    +關注

    關注

    9

    文章

    1083

    瀏覽量

    83320
  • IIC
    IIC
    +關注

    關注

    11

    文章

    306

    瀏覽量

    39211
  • uart
    +關注

    關注

    22

    文章

    1269

    瀏覽量

    103332
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    詳解IIC總線

    IIC(Inter-Integrated Circuit)集成電路總線,它是種兩線式串行通信總線,又叫I
    發表于 06-07 15:38 ?1.1w次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>詳解<b class='flag-5'>IIC</b><b class='flag-5'>總線</b>

    詳解IIC總線

    IIC(Inter-Integrated Circuit)是個多主從的串行總線,又叫I2C,是由飛利浦公司發明的通訊總線,屬于半雙工同步傳
    發表于 09-12 11:15 ?3046次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>詳解<b class='flag-5'>IIC</b><b class='flag-5'>總線</b>

    SPI總線學習筆記

    SPI種全雙工的串行通信總線,最早由Motorola提出,雖然應用廣泛,但沒有個統
    發表于 09-20 15:17 ?1456次閱讀
    <b class='flag-5'>SPI</b><b class='flag-5'>總線</b>學習筆記

    IIC總線SPI總線的比較

    現今,在低端數字通信應用領域,我們隨處可見IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是這兩種
    發表于 09-26 09:30 ?3136次閱讀
    <b class='flag-5'>IIC</b><b class='flag-5'>總線</b>和<b class='flag-5'>SPI</b><b class='flag-5'>總線</b>的比較

    IIC總線SPI總線通信詳解

    IIC總線SPI總線通信介紹
    發表于 12-23 07:02

    串行通信中的IIC總線工作原理是什么

    串行通信中的IIC總線工作原理51本身不帶IIC總線 ,使用程序模擬IIC
    發表于 12-08 07:52

    iic總線通信程序

    iic總線通信,要的人速度下載看看哦。
    發表于 03-21 13:50 ?30次下載

    解讀IIC總線的FPGA實現原理及過程

    本文首先介紹了IIC總線概念和IIC總線硬件結構,其次介紹了IIC總線典型應用,最后詳細介紹了
    發表于 05-31 10:56 ?6953次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>解讀<b class='flag-5'>IIC</b><b class='flag-5'>總線</b>的FPGA實現原理及過程

    STC89C52的IIC總線寫EEPROM

    串行通信中的IIC總線工作原理51本身不帶IIC總線 ,使用程序模擬IIC
    發表于 11-25 15:51 ?11次下載
    STC89C52的<b class='flag-5'>IIC</b><b class='flag-5'>總線</b>寫EEPROM

    IIC通信總線尋址

    IIC的使用IIC總線簡介IIC通信時序IIC總線
    發表于 12-04 16:06 ?14次下載
    <b class='flag-5'>IIC</b><b class='flag-5'>通信</b><b class='flag-5'>總線</b>尋址

    IIC總線學習筆記

    3.3、字節傳送與應答3.3、讀寫操作四、應用實例、I2C總線背景? IIC(Inter-Integrated Circuit) 是IICBus簡稱,中文叫集成電路
    發表于 01-17 13:33 ?6次下載
    <b class='flag-5'>IIC</b><b class='flag-5'>總線</b>學習筆記

    SPI總線IIC總線通信1

    從應用上來講,UART通信多用于板間通信,比如單片機和計算機,這個設備和另外個設備之間的通信。而IIC
    的頭像 發表于 02-13 10:39 ?3057次閱讀
    <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><b class='flag-5'>總線</b>和<b class='flag-5'>IIC</b><b class='flag-5'>總線</b><b class='flag-5'>通信</b>1

    SPI總線IIC總線通信3

    從應用上來講,UART通信多用于板間通信,比如單片機和計算機,這個設備和另外個設備之間的通信。而IIC
    的頭像 發表于 02-13 10:41 ?1862次閱讀
    <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><b class='flag-5'>總線</b>和<b class='flag-5'>IIC</b><b class='flag-5'>總線</b><b class='flag-5'>通信</b>3

    SPI總線IIC總線通信4

    從應用上來講,UART通信多用于板間通信,比如單片機和計算機,這個設備和另外個設備之間的通信。而IIC
    的頭像 發表于 02-13 10:41 ?2066次閱讀
    <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><b class='flag-5'>總線</b>和<b class='flag-5'>IIC</b><b class='flag-5'>總線</b><b class='flag-5'>通信</b>4

    淺談SPI總線通信接口及其協議

    上篇內容我們介紹了IIC總線通信接口及其協議,這篇文章我們介紹另種項目開發中非常常見的通信
    的頭像 發表于 03-22 16:11 ?2142次閱讀
    淺談<b class='flag-5'>SPI</b><b class='flag-5'>總線</b><b class='flag-5'>通信</b>接口及其協議
    主站蜘蛛池模板: 91网视频在线观看 | 日本黄色大片在线播放视频免费观看 | 天天看天天摸色天天综合网 | 操美女免费网站 | аⅴ资源中文在线天堂 | 国产吧在线 | 1024手机看片国产 | 色综合天天综合给合国产 | 成人午夜啪啪免费网站 | 中文字幕欧美日韩 | 女性一级全黄生活片在线播放 | 色日本视频 | 亚洲一区二区影院 | 4hu影院在线观看 | 在线观看视频你懂得 | 一级做a爰片久久毛片毛片 一级做a爰片久久毛片美女图片 | 午夜精品在线观看 | 色香蕉在线观看 | 亚洲第一福利网站 | 狠狠操精品视频 | 四虎新网站 | 国产一区二区三区在线影院 | 色yeye在线观看 | 日韩怡红院 | 欧美人与动性xxxxbbbb | 一区二区视屏 | 你懂的在线免费观看 | 久久久一本波多野结衣 | 欧美三级欧美一级 | 国产精品久久婷婷六月丁香 | 色综合天天色 | 综合天天色 | 在线免费视频一区二区 | 午夜影院三级 | 欧美成人eee在线 | 亚洲人成电影在线观看网 | 人人插人人费 | 2021国产精品自在拍在线播放 | 亚洲黄色高清视频 | 人人草人人澡 | 亚洲成人免费在线观看 |