


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、樓主提問: SPI 的通信速率到底可以達到多少?按照手冊上的說明,應該能到 fosc/4 ,然而實際上由于 SPI 通信底層沒有任何握手,不像 I2C 總線那樣帶 ACK,所以 SPI 速率實際上根本不能達到 fosc/4 ,除非發(fā)信端與收信端完全同步,然而事實上接收端往往要對接收到的數(shù)據(jù)進行一些判斷和處理,所以在接收端往往會丟數(shù),解決辦法就是在發(fā)信端發(fā)完一個字節(jié)后人為加上延時等待接收端處理,但是如果這樣的話,高速還有什么意義呢?我做了一個試驗,即使關(guān)掉所有其它中斷,只作SPI 通信處理,在fosc/4的通信速率下,接收端只能接收10 個字節(jié)以內(nèi)的數(shù)據(jù), 10 個字節(jié)以上就會丟數(shù),而在fosc
2、/8的通信速率下,如果關(guān)閉所有其它中斷,收發(fā)256 個字節(jié)是沒什么問題的,但是如果應用程序有 1ms的時鐘中斷事件的話, spi 通信成功率很低。在前面很多帖子里, 看到不少人說 spi 只是硬件底層, 通信的可靠性要靠通信協(xié)議,誠然如此,但是我以為通信協(xié)議只是最后一道保障,如果底層不可靠,通信協(xié)議再完善也是惘然。輪詢和中斷方式有本質(zhì)區(qū)別嗎?輪詢就能保證不被其它中斷干擾嗎? 主機自己掌握 SPI 節(jié)奏,它只知道自己發(fā)送出去了,并不知道從機是否處理完,如果從機還在處理上一個字節(jié),這時候發(fā)下個字節(jié)顯然會丟數(shù)據(jù)啊解答者 1 回答:是同步!不是異步!也就是說 MASTER提供時鐘,所以完全由MASTE
3、R決定速率(當然大家都能達到的)再有就是這個速率僅僅指一個BYTE的通訊速率,不是整個幀速率(2 個 BYTE以上)從機查詢和中斷無關(guān),說白了就是移位寄存器!樓主再問:關(guān)鍵就在于這個速率要大家都能達到啊,如果都能達到就不用講了,實測下來就是slave 端達不到這個速率啊。如果這個速率是一個BYTE的指標那就沒啥說的了,我認了,只能在字節(jié)之間加延時了。解答者 2:我試過用 fosc/2 的時鐘速率進行兩機通訊(系統(tǒng)時鐘 16M),連續(xù)傳了好多字節(jié)都沒有問題。主機用查詢方式發(fā)送;從機用中斷接收,接收到的數(shù)據(jù)用液晶顯示出來。解答者 1:多字節(jié)是不可能達到fosc/2的!除非從機速率更快,有足夠的時間
4、去處理或保存(讀取數(shù)據(jù)),要不然是吹牛的!影響速率達不到fosc/2就是從機提取數(shù)據(jù)!與系統(tǒng)時鐘多少那無關(guān)!再有, ?從機響應中斷都要4 個機器周期,更別說要存儲,中斷出來也要4 個機器周期。對于單字節(jié)來說是可以達到fosc/2 ,因為 AVR可以使用倍率,本來是fosc/4的!所以 , 數(shù)據(jù)手冊里講的可以達到fosc/4那是指單字節(jié)的速率 !樓主:所以說手冊給出來的指標很帶有欺騙性,為了可靠起見(相信很多人的程序中都有個時鐘在運行),建議放在 fosc/16 。SPI 接口原理SPI 接口的全稱是 "Serial Peripheral Interface",意為串行外圍接
5、口 , 是 Motorola 首先在其 MC68HCXX系列處理器上定義的。 SPI 接口主要應用在 EEPROM, FLASH,實時時鐘 ,AD 轉(zhuǎn)換器 , 還有數(shù)字信號處理器和數(shù)字信號解碼器之間。SPI 接口是在 CPU和外圍低速器件之間進行 同步串行數(shù)據(jù)傳輸 , 在主器件的移位脈沖下 , 數(shù)據(jù)按位傳輸 , 高位在前 , 地位在后 , 為全雙工通信 , 數(shù)據(jù)傳輸速度總體來說比 I2C 總線要快 , 速度可達到幾 Mbps。SPI 接口是以主從方式工作 的 , 這種模式 通常有一個主器件和一個或多個從器件, 其接口包括以下四種信號:( 1) MOSI 主器件數(shù)據(jù)輸出 , 從器件數(shù)據(jù)輸入( 2
6、) MISO 主器件數(shù)據(jù)輸入 , 從器件數(shù)據(jù)輸出( 3) SCLK 時鐘信號 , 由主器件產(chǎn)生( 4) /SS 從器件使能信號 , 由主器件控制在點對點的通信中 ,SPI 接口不需要進行尋址操作, 且為全雙工通信 , 顯得簡單高效。在多個從器件的系統(tǒng)中 , 每個從器件需要獨立的使能信號 , 硬件上比 I2C 系統(tǒng)要稍微復雜一些。SPI 接口在內(nèi)部 硬件實際上是兩個簡單的移位寄存器 , 傳輸?shù)臄?shù)據(jù)為 8 位, 在主器件產(chǎn)生的從器件使能信號和移位脈沖下 , 按位傳輸 , 高位在前 , 低位在后 。如下圖所示 , 在 SCLK的下降沿上數(shù)據(jù)改變 , 同時一位數(shù)據(jù)被存入移位寄存器。SPI接口內(nèi)部硬件圖
7、示:最后 ,SPI 接口的一個缺點 :沒有指定的流控制 , 沒有應答機制確認 是否接收到數(shù)據(jù)。/SPI 與 UART的區(qū)別:SPI 是三線或者四線 (CS CLK DI DO)UART是兩線制 (TXD RXD),實際上就是串口;SPI 一般是 CS=0啟動傳輸 , 以 CLK作為同步信號 , 不含啟動位停止位 等UART傳輸信號中 包含了啟動位和停止位等, 本身就可作為同步信號使用SPI 一般沒有標準的通信速率UART一般都是使用標準的通信波特率/SPI 通信 - 單片機最多能帶動多少從機?回答 1:SPI 主要是芯片級或板級通信使用,也有設(shè)備之間使用的。但不可能在實際應用中有太多的 SPI
8、 設(shè)備互連?;卮?2:SPI 是一個環(huán)形總線結(jié)構(gòu),由ss( cs)、sck 、sdi 、sdo 構(gòu)成,其時序其實很簡單,主要是在 sck 的控制下,兩個雙向移位寄存器進行數(shù)據(jù)交換。假設(shè)下面的 8 位寄存器裝的是待發(fā)送的數(shù)據(jù) 10101010,上升沿發(fā)送、下降沿接收、高位先發(fā)送。那么第一個上升沿來的時候數(shù)據(jù)將會是 sdo=1;寄存器 =0101010x。下降沿到來的時候, sdi 上的電平將所存到寄存器中去,那么這時寄存器=0101010sdi ,這樣在 8 個時鐘脈沖以后,兩個寄存器的內(nèi)容互相交換一次。這樣就完成里一個spi 時序。例子:假設(shè)主機和從機初始化就緒:并且主機的sbuff=0xaa
9、 ,從機的 sbuff=0x55 ,下面將分步對 spi 的 8 個時鐘周期的數(shù)據(jù)情況演示一遍: 假設(shè)上升沿發(fā)送數(shù)據(jù)脈沖 主機 sbuff從機 sbuff sdi sdo0 10101010 01010101 0 01 上 0101010x 1010101x 0 11 下 01010100 10101011 0 12 上 1010100x 0101011x 1 02 下 10101001 01010110 1 03 上 0101001x 1010110x 0 13 下 01010010 10101101 0 14 上 1010010x 0101101x 1 04 下 10100101 0101
10、1010 1 05 上 0100101x 1011010x 0 15 下 01001010 10110101 0 16 上 1001010x 0110101x 1 06 下 10010101 01101010 1 07 上 0010101x 1101010x 0 17 下 00101010 11010101 0 18 上 0101010x 1010101x 1 08 下 01010101 10101010 1 0這樣就完成了兩個寄存器8 位的交換,上面的上表示上升沿、下表示下降沿,sdi 、sdo 相對于主機而言的。其中ss 引腳作為主機的時候,從機可以把它拉底被動選為從機,作為從機的是時候,
11、可以作為片選腳用。根據(jù)以上分析,一個完整的傳送周期是16 位,即兩個字節(jié),因為,首先主機要發(fā)送命令過去,然后從機根據(jù)主機的名準備數(shù)據(jù),主機在下一個8位時鐘周期才把數(shù)據(jù)讀回來SPI 總線是 Motorola 公司推出的三線同步接口,同步串行 3 線方式進行通信 : 一條時鐘線SCK,一條數(shù)據(jù)輸入線 MOSI,一條數(shù)據(jù)輸出線 MISO;用于 CPU與各種外圍器件進行全雙工、同步串行通訊。 SPI 主要特點有 : 可以同時發(fā)出和接收串行數(shù)據(jù) ; 可以當作主機或從機工作 ; 提供頻率可編程時鐘 ; 發(fā)送結(jié)束中斷標志 ; 寫沖突保護 ; 總線競爭保護等。 圖 3 示出 SPI 總線工作的四種方式,其中使用的最為廣泛的是 SPI0 和 SPI3 方式 ( 實線表示 ):圖 2SPI總線四種工作方式SPI 模塊為了和外設(shè)進行數(shù)據(jù)交換,根據(jù)外設(shè)工作要求,其輸出串行同步時鐘極性和相位可以進行配置,時鐘極性( CPOL)對傳輸協(xié)議沒有重大的影響。如果 CPOL=0,串行同步時鐘的空閑狀態(tài)為低電平; 如果 CPOL=1,串行同步時鐘的空閑狀態(tài)為高電平。 時鐘相位(CPHA)能夠配置用于選擇兩種不同的傳輸協(xié)議之一進行數(shù)據(jù)傳輸。如果 CPHA=0,在串行同步時鐘的第一個跳變沿(上升或下降)數(shù)據(jù)被采樣;如果 CPHA=1,在串行同步時鐘的第二個跳變沿(上升或下降)數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建榕樹養(yǎng)護管理辦法
- 廣西發(fā)展資金管理辦法
- 常減壓裝置培訓課件
- 股票職業(yè)交易培訓課件教學
- 插裝閥培訓課件
- 肝臟核磁檢查技術(shù)課件
- 高州九年級期末數(shù)學試卷
- 豆丁網(wǎng)小升初數(shù)學試卷
- 高中浦東二模數(shù)學試卷
- 甘肅省中職數(shù)學試卷
- 全國工會財務知識競賽題庫及答案
- 物聯(lián)網(wǎng)平臺介紹
- 《三國的世界》解說詞 第一集 01
- 計算機組成原理考點整理
- 廣東省深圳市龍華區(qū)2022-2023學年五年級下學期期末數(shù)學試卷
- 黃石市陽新縣法院系統(tǒng)書記員招聘考試真題
- 湖北省工傷職工停工留薪期分類目錄
- 教科版六下科學全冊課時練(含答案)
- 2023年主任醫(yī)師(正高)-中醫(yī)內(nèi)科學(正高)考試歷年真題精華集選附答案
- 人教版高中英語必修第二冊《Unit2Wildlifeprotection》教案及教學反思
- 內(nèi)蒙古匯能煤電集團有限公司長灘露天煤礦礦山地質(zhì)環(huán)境保護與土地復墾方案
評論
0/150
提交評論