在线观看国产区-在线观看国产欧美-在线观看国产免费高清不卡-在线观看国产久青草-久久国产精品久久久久久-久久国产精品久久久

美章網 資料文庫 SPI接口設計與實現范文

SPI接口設計與實現范文

本站小編為你精心準備了SPI接口設計與實現參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。

SPI接口設計與實現

spi(SerialPeripheralInterface)總線是一種同步串行外設接口,它可以使MCU與各種外圍設備以串行方式進行通信以交換信息。SPI總線應用廣泛,已經成為很多器件的標準配置,可以直接和各個廠家生產的多種標準外圍器件直接接口。其它常用的串行接口還有I2C、UART這兩種接口,這三種接口互有優缺點。與I2C接口相比,SPI接口速度更快、協議更簡單、并且是全雙工的,但連線也相對多一些。與UART接口相比,SPI更靈活,因為其使用主設備的時鐘進行同步,所以兩個比特之間的時間間隔可以是任意的。在點對點的通信中,SPI接口不需要進行尋址操作,且為全雙工通信,顯得簡單高效。

1SPI總線工作原理

SPI總線一般以主/從模式工作,通常有一個主設備和一個或多個從設備,數據傳輸由主機控制,典型SPI結構框圖如圖1所示。SPI總線包含四條信號線,分別是sclk、miso、mosi和cs,其中,sclk為數據傳輸時鐘,由主機產生;miso是從機輸出,主機輸入數據線;mosi是主機輸出,從機輸入數據線;cs是從設備片選信號,由主機控制,當連接多個從設備時,通過該信號選擇不同的從設備。SPI總線是按字節發送數據的,主機和從機內部都包含一個8位串行移位寄存器,在時鐘信號控制下,寄存器內的數據由高到低輸出至各自的數據線,8個時鐘后,兩個寄存器內的數據就被交換了。如果只進行寫操作,主機只需忽略接收到的字節;反之,若主機要讀取從機的一個字節,就必須發送一個空字節來引發從機的傳輸。當主機發送一個連續的數據流時,可以進行多字節傳輸,在這種傳輸方式下,從機的片選端必須在整個傳輸過程中保持低電平。

根據串行同步時鐘極性和相位不同,SPI有四種工作方式。時鐘極性(CPOL)為0時,同步時鐘的空閑狀態為低電平,為1時,同步時鐘的空閑狀態為高電平。時鐘相位(CPHA)為0時,在同步時鐘的第一個跳變沿采樣數據,為1時,在同步時鐘的第二個跳變沿采樣數據。因為主設備時鐘極性和相位都是以從設備為基準的,所以主設備時鐘極性的配置和從設備時鐘極性的配置是相反的。

SPI工作原理:以寄存器CPOL=1、CPHA=0為例,當要傳輸數據時,主機控制cs信號有效,sclk管腳輸出時鐘信號,在時鐘上升沿,主機將需要發送的數據鎖存在mosi線上,同時從miso線上讀取從機發送的數據;在時鐘下降沿,從機將需要發送的數據鎖存在miso線上,同時從mosi線上讀取主機發送的數據,完成一次數據交換后,SPI總線重新回到空閑狀態,等待下一次通信的發起。

2SPI總線硬件設計和軟件實現

某項目的控制器硬件采用ARM+CPLD的技術方案,其中ARM為主控器,主要實現流程控制等,CPLD為從控制器。ARM與CPLD之間主要通過SPI接口進行通信,CPLD根據ARM發送的命令產生各模塊的控制邏輯,完成一百多路IO控制,并且實現從一路UART接口到20路半雙工RS485接口的收發切換。ARM與CPLD之間的硬件接口如圖2所示。特別的,在ARM和CPLD之間設計了一個中斷信號,用來提示SPI主機ARM,SPI從機CPLD有數據需要讀取,請求發起SPI通信。當CPLD作為SPI接口從機使用時,需要在CPLD中實現sclk下降沿檢測、SPI控制模塊。

2.1sclk下降沿檢測因為ARM在sclk的上升沿讀取CPLD輸出的數據,所以CPLD必須在sclk的下降沿發數,上升沿時數據穩定。同時為了在一個sclk時鐘周期只接收或發送一個比特的數據,需要使該信號僅保持一個clk周期,該信號的產生方式如圖3所示。在clk信號驅動下,當該下降沿檢測信號有效時(定為高電平有效),CPLD采集miso線上的數據,并將需要發送的數據輸出至mosi。

2.2SPI控制模塊如圖4為從機軟件設計流程圖。CPLD在系統上電后進入idle狀態,idle表示空閑狀態,當CPLD有數據需要傳輸時,通過int向ARM發送中斷信號;當檢測到cs信號有效時,進入spi數據傳輸狀態;同步sclk信號,在下降沿,首先發送數據信息字節,通過數據信息字節通知ARM這次總共需要發送幾個字節的數據,然后依次發送后續數據,直到數據傳輸完成。在上升沿,接收ARM發送的數據,并按字節存入RAM。

3SPI接口軟件的設計仿真

對該項目SPI控制程序進行了仿真,其仿真波形如圖5所示。這個SPI接口每次只有8bit,8bit代表地址還是數據由用戶自己的協議來定,每啟動一次接口模塊,無論是主設備還是從設備都會寫出一個數據和接收一個數據。接收數據流程是:當cs下降沿到來時啟動SPI接收控制模塊,每個sclk下降沿讀取1bit數據,ovalid有效時(高)讀取odata數據(8bit)。發送流程是:先確定從設備要寫出的數據,再給主設備中斷信號,主設備響應中斷,啟動一個讀取流程,就可以讀取從設備的一個8bit數據。

4結語

本文基于Altera公司的CPLD平臺,用VerilogHdl語言以有限狀態機的形式設計了一種符合SPI總線規范的從機模塊,并進行了仿真,得到的仿真波形符合設計要求。該模塊已經下載到芯片中實現了SPI接口功能,驗證了設計的正確性,具有一定的實用價值。

作者:黃勇 單位:西安現代控制技術研究所

主站蜘蛛池模板: 蜜桃网视频在线蜜桃8477 | 亚洲欧洲国产成人综合一本 | 亚洲综合色丁香婷婷六月图片 | 亚洲精品视 | 国产小视频精品 | 国产伊人自拍 | 亚洲国产最新 | 婷婷激情丁香 | 欧美曰韩一区二区三区 | 亚洲蜜臀 | 激情综合网婷婷 | 亚洲欧美色一区二区三区 | 亚洲国产精品免费在线观看 | 日本精品久久久久久久 | 午夜亚洲视频 | 一级片在线观看视频 | 一级国产片| 一级视频免费观看 | 国产欧美精品区一区二区三区 | 国产视频入口 | 一本综合久久 | 午夜视频免费国产在线 | av2014天堂网| 欧美激情性色生活片免费观看 | 亚洲欧美日韩高清 | 国内自拍偷拍视频 | 九九久久久 | 夜精品a一区二区三区 | 色94色欧美一区 | 麻豆精品传媒 | 伊人五月在线 | 亚洲蜜臀 | 亚洲精品视频免费 | www.激情| www.99com| 亚洲永久中文字幕在线 | 国内精品综合九九久久精品 | 激情五月婷婷色 | 亚洲五月花丁香花社区 | 欧美黄色免费 | 偷拍电影网站 |