基于FPGA的SPI總線傳輸技術提供更好的選擇和可行方案_第1頁
基于FPGA的SPI總線傳輸技術提供更好的選擇和可行方案_第2頁
基于FPGA的SPI總線傳輸技術提供更好的選擇和可行方案_第3頁
基于FPGA的SPI總線傳輸技術提供更好的選擇和可行方案_第4頁
基于FPGA的SPI總線傳輸技術提供更好的選擇和可行方案_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

基于FPGA的SPI總線傳輸技術提供更好的選擇和可行方案引言SPI(Serialperipheralinterface——串行設備接口)是摩托羅拉公司推出的一種同步串行通信接口。用于MCU和外圍擴展芯片之間的串行連接,現(xiàn)已發(fā)展成為一種工業(yè)標準。一路SPI數據總線只占用3或4個I/O(MasterOutputSlaveInput,MOSI;MasterInputSlaveOutput,MISO;SerialClock,SCK;ChipSelect,CS)端口,可以簡化電路設計,節(jié)省端口資源,提高設計可靠性。SPI總線主要特點:全雙工;可以當作主機或者從機工作;提供頻率可編程時鐘;發(fā)送結束中斷標志;寫沖突保護;總線競爭保護等?;谝陨咸攸c結合FPGA的特性,通過將SPI總線與FPGA相結合,可使SPI總線的應用更加靈活多變,為解決通信技術問題提供更好的選擇和可行方案。結合已交付的項目的經驗(項目中主設備采用ARM芯片,從設備采用FPGA),探討基于FPGA的SPI總線傳輸方案在實際中的應用,拓展SPI技術的應用范圍,同時對設計中遇到的具體問題提出了有效的解決方案。1、系統(tǒng)分析和設計系統(tǒng)的SPI總線連接如圖1所示。系統(tǒng)中的各從設備可以按照實際需要,實時采集不同的狀態(tài)數據信息,并按SPI總線通信方式上報給主設備,主設備將最終的處理結果上報PC端,從而實現(xiàn)對系統(tǒng)的實時監(jiān)控。從設備需要采集的數據種類繁多,相對于使用單片機的單線程串行的工作方式來進行多種數據采集處理的工作方案,使用FPGA的工作方式顯然是更優(yōu)的選擇(并行處理能力、運行速度快、管腳多、體積小,同時具有處理復雜問題的邏輯功能),從集成性、可靠性、兼容性等方面綜合考慮,很明顯最佳的設計方案就是從設備使用FPGA進行數據采集、處理。主設備主要向從設備發(fā)送查詢指令,同時將采集到的數據進行有效性判斷并上傳電腦。相對于從設備來說,主設備處理過程比較簡單,選擇較靈活、功耗低的ARM嵌入式最為合適。并且ARM具有現(xiàn)成的SPI接口驅動供開發(fā)者使用,大大降低了開發(fā)成本。2、系統(tǒng)時序時序是通信系統(tǒng)中首要考慮的因素之一,時序無誤才能保證數據在傳輸、處理過程中的有效性,使系統(tǒng)保持正常的工作狀態(tài)。根據時序的不同,SPI總線有4種工作模式(SPI0,SPI1,SPI2,SPI3),見圖2,其中SPI0和SPI3兩種工作模式使用的最廣泛。通過配置系統(tǒng)的SPI總線的時鐘極性(CPOL)和時鐘相位(CPHA)可得到滿足傳輸要求的工作模式。當CPOL=0,串行同步時鐘的空閑狀態(tài)為低電平;當CPOL=1,串行同步時鐘的空閑狀態(tài)為高電平??梢?,CPOL對于SPI總線傳輸協(xié)議沒有較大的影響。傳輸協(xié)議的模式選擇主要通過配置時鐘相位(CPHA)實現(xiàn)。當CPHA=0,在串行同步時鐘的第一個跳變沿(上升或下降)數據被采樣;當CPHA=1,在串行同步時鐘的第二個跳變沿(上升或下降)數據被采樣。確保SPI主、從設備之間的正常通信,就必須滿足二者的時鐘相位和時鐘極性一致[4]?,F(xiàn)以某項目(采用SPI0模式)為例,選擇其中1路SPI總線并對其時序進行詳細闡述。時序圖如圖3。片選信號cs在主設備發(fā)送數據前跳變?yōu)榈碗娖?,使被選中的從設備SPI通信端口開啟;從設備完成數據發(fā)送的一段時間后,片選信號cs跳變回高電平,從設備SPI通信端口關閉。主設備發(fā)送查詢/控制命令的數據幀長度為a個字節(jié),每個字節(jié)包含8位有效數據,每位數據占用一個時鐘脈沖信號;當有數據發(fā)送時,sck伴有對應的同步時鐘信號,無數據發(fā)送則無時鐘脈沖信號。同時,相鄰字節(jié)間存在時間間隔t,在t時間內sck無時鐘脈沖,即同步時鐘信號是一份一份的,每份包含8個時鐘脈沖。因此,一幀完整的查詢/控制指令,其數據中的每個字節(jié)占用8個時鐘信號,主設備發(fā)送一條幀長度為a字節(jié)的數據需要8×a個時鐘脈沖信號;假設從設備的緩存模塊fifo和發(fā)送模塊datatx完成對應的數據反饋過程所需最少時鐘脈沖信號個數為8×n。為保證系統(tǒng)的通信功能正常,sck傳輸的時鐘脈沖數應不少于該SPI總線完成一次查詢/控制所需時鐘信號個數(8×(a+n))。3、技術難點及解決方案3.1數據同步從圖3的SPI時序圖可看出,有數據才有時鐘脈沖,總線的時鐘不是連續(xù)而是一份一份的(每份為8個連續(xù)時鐘信號),為了保證系統(tǒng)能正常通訊,必須確保數據在主、從設備中同步傳輸,這就增加了系統(tǒng)在數據傳輸過程中的難度。就從設備而言,必須滿足從設備在接收/發(fā)送狀態(tài)下,經過每一份時鐘信號中接收/發(fā)送的都是的一個完整且有效的字節(jié)。即主設備發(fā)送數據的每個有效字節(jié)的第1位都是在第(8×x-7)個時鐘信號(x為整數,0《x《a)被從設備的接收模塊采樣(上升沿采樣,下同),然后依次采樣直至該字節(jié)的最后一位在第(8×x)個時鐘信號被采樣。同時,要求主設備接收數據的每個字節(jié)的第1位都是在第(8×y-7)個時鐘信號輸出(y為整數,n》y》a),然后依次采樣直至該字節(jié)的最后一位在第(8×y)個時鐘信號輸出完畢,如圖5所示。為了實現(xiàn)數據同步,可以采用如下方式:(1)從設備利用片選信號cs復位清零。通過片選信號cs的下降沿,觸發(fā)從設備中的數據采集模塊datarx、數據緩存模塊fifo及數據發(fā)送模塊datatx的計數清零,確保系統(tǒng)在片選有效后的第一個時鐘脈沖開始計數,避免因計數錯誤造成數據采樣失效。若采用第一個時鐘脈沖進行計數清零,會使數據的采集滯后1位,以致采集到無效數據,造成通訊失效。(2)利用時鐘信號sck計數。本文SPI總線采用SPI0工作模式,利用時鐘信號sck的上升沿觸發(fā)采集模塊內部計數器計數,確保模塊的數據采樣同步,獲得有效數據。(3)從設備中的數據發(fā)送模塊datatx提前發(fā)送數據。假設數據發(fā)送模塊datatx在數據發(fā)送過程中,某字節(jié)的第1位在第(8×y-7)個時鐘信號輸出(y為整數,n》y》a,時鐘信號的上升沿輸出數據,下同),第八位在第(8×y)個時鐘信號輸出,那么將會出現(xiàn)如圖6所示的情況。由于總線采用SPI0工作模式,那么主設備將通過同步時鐘信號的上升沿觸發(fā)數據采集,此時采集到的數據正處于電平跳變中,以致主設備采集到不確定的無效數據。結合圖6可以發(fā)現(xiàn),datatx模塊通過提前發(fā)送數據,能有效的解決該問題,數據傳輸示意圖如下。當datatx模塊在發(fā)送某個字節(jié)時,利用上一字節(jié)的最后一個時鐘脈沖(第(8×y-8)個時鐘脈沖)的下降沿觸發(fā)該字節(jié)第1位的發(fā)送,第(8×y-7)個時鐘脈沖的下降沿觸發(fā)該字節(jié)第2位的發(fā)送,直至該字節(jié)第8位在第(8×y-1)個時鐘脈沖的下降沿發(fā)送完畢。使用這種方法,主設備在每個sck時鐘信號的上升沿都能同步采集到正確的數據,確??偩€通信正常。3.2多個從設備并聯(lián)的問題筆者在調試過程中,系統(tǒng)連接板上只接入1臺主設備和1臺從設備,系統(tǒng)能正常運行。但在接入多個從設備后(從設備的接口類型一致),會出現(xiàn)一個或者幾個從設備工作失效。具體表現(xiàn)為從設備沒有任何信息反饋,且故障無規(guī)律可循:a)與從設備插入插槽的位置沒有特定規(guī)律。例如,有A、B兩臺從設備,連接板有5個插槽(編號1-5)。A插入1,B插入2,此時B失效。將B依次換至剩余插槽,可能會出現(xiàn)B失效、A失效,甚至兩者失效的情況。然而,在A、B都能正常運行的情況下,互調A、B位置,也可能出現(xiàn)上述三種失效現(xiàn)象。或者將從設備B換成完全相同的從設備C,這種新的組合相較于之前A+B的組合,在接入方式完全相同的情況下又可能產生不同的結果。b)與從設備的插入數量沒有特定規(guī)律。連接板上從設備數量的增加或者減少,對整個系統(tǒng)的好壞并沒有特定方向的影響。加上插槽位置對系統(tǒng)工作的影響也很復雜。為了解決這個問題,筆者做過如下依次嘗試,但情況并沒有發(fā)生好轉,從設備依舊沒有任何信號輸出:a)將待機狀態(tài)的從設備輸出置高阻;b)I/O設置上/下拉電阻;最終筆者通過對設備內部的信號輸入至信號處理部份采用SIGNALTAP進行實時分析、觀察,發(fā)現(xiàn)數據處理模塊fifo在固定位置丟失一個同步時鐘脈沖(fifo的所有觸發(fā)只與同步時鐘sck有關)。經過

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論