美章網(wǎng) 資料文庫 SPI接口設(shè)計(jì)與實(shí)現(xiàn)范文

SPI接口設(shè)計(jì)與實(shí)現(xiàn)范文

本站小編為你精心準(zhǔn)備了SPI接口設(shè)計(jì)與實(shí)現(xiàn)參考范文,愿這些范文能點(diǎn)燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。

SPI接口設(shè)計(jì)與實(shí)現(xiàn)

spi(SerialPeripheralInterface)總線是一種同步串行外設(shè)接口,它可以使MCU與各種外圍設(shè)備以串行方式進(jìn)行通信以交換信息。SPI總線應(yīng)用廣泛,已經(jīng)成為很多器件的標(biāo)準(zhǔn)配置,可以直接和各個(gè)廠家生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件直接接口。其它常用的串行接口還有I2C、UART這兩種接口,這三種接口互有優(yōu)缺點(diǎn)。與I2C接口相比,SPI接口速度更快、協(xié)議更簡單、并且是全雙工的,但連線也相對(duì)多一些。與UART接口相比,SPI更靈活,因?yàn)槠涫褂弥髟O(shè)備的時(shí)鐘進(jìn)行同步,所以兩個(gè)比特之間的時(shí)間間隔可以是任意的。在點(diǎn)對(duì)點(diǎn)的通信中,SPI接口不需要進(jìn)行尋址操作,且為全雙工通信,顯得簡單高效。

1SPI總線工作原理

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

根據(jù)串行同步時(shí)鐘極性和相位不同,SPI有四種工作方式。時(shí)鐘極性(CPOL)為0時(shí),同步時(shí)鐘的空閑狀態(tài)為低電平,為1時(shí),同步時(shí)鐘的空閑狀態(tài)為高電平。時(shí)鐘相位(CPHA)為0時(shí),在同步時(shí)鐘的第一個(gè)跳變沿采樣數(shù)據(jù),為1時(shí),在同步時(shí)鐘的第二個(gè)跳變沿采樣數(shù)據(jù)。因?yàn)橹髟O(shè)備時(shí)鐘極性和相位都是以從設(shè)備為基準(zhǔn)的,所以主設(shè)備時(shí)鐘極性的配置和從設(shè)備時(shí)鐘極性的配置是相反的。

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

2SPI總線硬件設(shè)計(jì)和軟件實(shí)現(xiàn)

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

2.1sclk下降沿檢測(cè)因?yàn)锳RM在sclk的上升沿讀取CPLD輸出的數(shù)據(jù),所以CPLD必須在sclk的下降沿發(fā)數(shù),上升沿時(shí)數(shù)據(jù)穩(wěn)定。同時(shí)為了在一個(gè)sclk時(shí)鐘周期只接收或發(fā)送一個(gè)比特的數(shù)據(jù),需要使該信號(hào)僅保持一個(gè)clk周期,該信號(hào)的產(chǎn)生方式如圖3所示。在clk信號(hào)驅(qū)動(dòng)下,當(dāng)該下降沿檢測(cè)信號(hào)有效時(shí)(定為高電平有效),CPLD采集miso線上的數(shù)據(jù),并將需要發(fā)送的數(shù)據(jù)輸出至mosi。

2.2SPI控制模塊如圖4為從機(jī)軟件設(shè)計(jì)流程圖。CPLD在系統(tǒng)上電后進(jìn)入idle狀態(tài),idle表示空閑狀態(tài),當(dāng)CPLD有數(shù)據(jù)需要傳輸時(shí),通過int向ARM發(fā)送中斷信號(hào);當(dāng)檢測(cè)到cs信號(hào)有效時(shí),進(jìn)入spi數(shù)據(jù)傳輸狀態(tài);同步sclk信號(hào),在下降沿,首先發(fā)送數(shù)據(jù)信息字節(jié),通過數(shù)據(jù)信息字節(jié)通知ARM這次總共需要發(fā)送幾個(gè)字節(jié)的數(shù)據(jù),然后依次發(fā)送后續(xù)數(shù)據(jù),直到數(shù)據(jù)傳輸完成。在上升沿,接收ARM發(fā)送的數(shù)據(jù),并按字節(jié)存入RAM。

3SPI接口軟件的設(shè)計(jì)仿真

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

4結(jié)語

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

作者:黃勇 單位:西安現(xiàn)代控制技術(shù)研究所

主站蜘蛛池模板: 中文字幕无码免费久久9一区9 | 亚洲av无码一区二区三区性色 | 中文字幕天天躁日日躁狠狠躁免费| 欧美yw精品日本国产精品| 国产寡妇树林野战在线播放| 中文字幕在线观看网址| 日韩高清中文字幕| 免费鲁丝片一级在线观看| 在线日本妇人成熟| 日本一二三区视频| 亚洲av无码专区在线观看下载 | 午夜伦理在线观看免费高清在线电影 | 国产又粗又猛又黄又爽无遮挡| 一级做性色a爰片久久毛片| 欧美综合区自拍亚洲综合图区| 制服丝袜一区在线| 国产你懂的在线| 嫩BBB槡BBBB槡BBBB| 亚洲人成网亚洲欧洲无码| 美女AV一区二区三区| 国产精品无码V在线观看| 中文字幕免费在线观看动作大片 | 暖暖日本在线视频| 亚洲国产欧美一区二区欧美 | 好男人好资源在线影视官网| 亚洲不卡1卡2卡三卡2021麻豆 | 在线观看亚洲免费视频| www.天天操.com| 日韩精品福利视频一区二区三区| 免费的一级片网站| 美女被免费视频网站| 国产精品制服丝袜一区| 97视频免费在线| 多女多p多杂交视频| www.日本在线视频| 年轻帅主玩奴30min视频| 中国高清xvideossex| 欧美丰满熟妇XXXX性| 免费网站看av片| 精品国产青草久久久久福利| 国产日韩欧美视频二区|