新四季網

一種串行外設接口的實現方法

2023-05-28 06:09:51

專利名稱:一種串行外設接口的實現方法
技術領域:
本發明涉及串行通訊技術,更確切地說,涉及一種串行外設接口的實現方法。
背景技術:
串行外設接口主要用來完成並行總線接口到外部串行接口之間的數據轉換。尤其適用於對外設、器件的配置與控制,因為這類應用一般要求的傳輸速率不高、數據量不大。而且由於SPI接口邏輯簡單、接口管腳少、編程應用方便,因此多數外設/器件也都支持SPI串行接口。
一般來說,SPI採用一種主-從式結構的同步串行通訊方式,1個主設備可帶1個或者多個從設備。並行總線接口端總線隨並行總線類型而異,而串行接口端的信號主要有4個信號串行數據信號主設備輸出-從設備輸入;串行數據信號主設備輸入-從設備輸出;位時鐘信號;從設備使能信號。
SPI串行數據傳輸由主設備的位時鐘和從設備使能信號控制。從設備使能信號是一個可選的低電平有效的信號,用於使能從設備的串行數據的輸入/輸出。在只有一個從設備時,從設備上的從設備使能信號可以直接接地,即不要專用的從設備使能信號。此時,位時鐘信號控制主/從設備之間的串行通信,即主設備只在數據收發時產生位時鐘信號。
現有的SPI接口只能以半雙工方式工作,無法實現真正意義上的全雙工。圖1所示的一種嵌入式微計算機的SPI接口是相對比較接近於全雙工的一種類型,其主設備的8位數據寄存器與從設備的8位數據寄存器連在一起組成了一個分布的16位寄存器。當進行數據傳輸時,16位的寄存器通過位時鐘信號移動8比特位置,數據高效的在主設備與從設備之間交換寫進主設備的數據寄存器的數據發送到了從設備,寫進從設備數據寄存器的數據發送到了主設備。
這種傳輸方式雖然表面上為全雙工,即同時收發數據,但實際的數據收發過程完全受主設備控制——因為從選擇信號以及位時鐘的產生決定了從設備發送數據的時序,因此其並非真正意義上的全雙工方式。並且一次只能連接一個從設備,傳輸波特率也只有8種可選。另外在主設備與從設備之間的一次性讀寫傳輸時,不支持命令字與數據字之間的等待,並且從選擇信號在傳輸過程中必須始終保持有效。沒有數據傳輸時也不能有時鐘輸出,否則可能出錯。
另一種同步串行接口(SSP)的實現方式則從現有器件出發,把串行幀格式分作了3類,針對3種不同的幀格式設定不同的支持特性,如下表所示

表1 SSP對3種數據幀的支持特性這種基於器件類型而設計的SSP接口,能實現部分帶SPI接口的外設/器件的幀格式。但同樣不支持全雙工的數據傳輸,而且幀類型的劃分也相對機械。
同時不難看出,無論上述哪一種接口實現方式,其支持的有效數據位寬的範圍都較小,且主設備接收數據過程複雜除了命令字以外,還需要額外的垃圾數據來產生位時鐘信號和從設備使能信號;雖然幀格式3不需要額外的垃圾數據,但是其命令字固定為8比特,極大的限制了其應用範圍。

發明內容
針對現有技術只能適用特定工作範圍的缺點,本發明提供了一種多工作模式的SPI接口實現方法,並使所有與數據傳輸有關的參數可以由CPU配置,擴大SPI串行接口的應用場合,減少片上系統(SOC)設計中同步串行接口的種類,從而降低SOC晶片的設計開發成本。
本發明多工作模式串行外設接口(SPI)實現方法的主要內容是通過SPI配置設定SPI的工作模式,然後根據各種工作模式下同步串行數據幀相關的所有可編程參數進行數據收發,同時實現真正意義上的全雙工同步串行傳輸。
多工作模式串行外設接口(SPI)的實現方法,主要包括以下幾個步驟(1)由CPU配置SPI配置參數,使能本設備SPI;(2)SPI根據其配置參數確定多種工作模式中的一種作為當前模式;(3)在確定的當前工作模式下,根據SPI配置參數進行數據收發。
其中所述的SPI配置參數包括SPI的工作模式、位時鐘狀態、主/從模式、讀寫指示、有效數據寬度、採樣邊沿、比特流順序、時鐘分頻係數、外設選擇、一次性讀寫總數、命令字數、幀連續、等待周期、等待中的時鐘狀態、DMA傳輸。
其中所述SPI的工作模式包括以下4種(P1)第1模式(PATTERN1)主/從模式,片選引腳輸出作為從設備使能信號;(P2)第2模式(PATTERN2)主/從模式,片選引腳輸出作為幀同步信號;(P3)第3模式(PATTERN3)主/主模式,片選引腳輸出作為設備使能信號;
(P4)第4模式(PATTERN4)主/主模式,片選引腳輸出作為幀同步信號。
所述參數中的位時鐘狀態是為了支持不同外設對位時鐘信號的要求,令沒有數據傳輸時的位時鐘狀態完全可編程控制,它包括以下3種(C1)狀態1(SCLK_FREE)沒有數據收發時,位時鐘信號始終存在;(C2)狀態2(SCLK_HIGH)沒有數據收發時,位時鐘信號為高電平;(C3)狀態3(SCLK_LOW)沒有數據收發時,位時鐘信號為低電平。
上面介紹了本發明有關SPI配置的主要內容,下面描述SPI數據收發的過程,由於數據收發主要以數據幀的形式進行,因此下文也稱之為幀收發。
在PATTERN1模式下,SPI的工作方式只能是主/從之一,片選引腳輸出作為從設備使能信號,其實現方法為SPI處於主設備工作方式時的數據收發按以下步驟進行(P1a)當主設備發送緩衝區非空時,使能從設備,對讀/寫指示位進行判斷;(P1b)指示位為「讀」時,向從設備發送命令字,經過指定的等待周期之後接收數據字;指示位為「寫」時,直接發送數據字;(P1c)本次讀/寫完成後去使能從設備使能信號;SPI處於從設備工作方式時,只要從設備使能信號有效,就直接收/發數據。
在PATTERN2模式下,SPI的工作方式只能是主/從之一,片選引腳輸出作為幀同步信號,其實現方法為SPI處於主設備工作方式時只進行數據發送,按以下步驟進行(P2a)判斷主設備發送緩衝區是否非空;(P2b)非空時直接發送數據字,且在每開始發送一個數據字之前發送幀同步信號;SPI處於從設備工作方式時只進行數據接收,只要收到幀同步信號,就開始接收數據。
在PATTERN3模式下,數據傳遞的雙方都是主設備,均可以隨時發起數據發送操作,其實現方法為SPI的數據發送按以下步驟進行(P3a)對發送緩衝區進行判斷,非空時,從其中讀出一個數據字;(P3b)使設備使能輸出信號有效;(P3c)將數據字並串轉換並發送出去;(P3c)使設備使能輸出信號無效,重新開始對緩衝區狀態判斷。
SPI空閒或進行數據發送的同時,只要設備使能輸入信號有效,就開始接收數據。
在PATTERN4模式下,數據傳遞的雙方都是主設備,與PATTERN3不同之處在於設備使能信號改為幀同步信號,其實現方法為SPI的數據發送按以下步驟進行(P4a)對發送緩衝區進行判斷,非空時,從其中讀出一個數據字;(P4b)發送一個幀同步信號;(P4c)將數據字並串轉換並發送出去;(P4d)重新開始對緩衝區狀態判斷。
SPI空閒或進行數據發送的同時,只要收到幀同步信號,就開始接收數據。
本發明的有益效果為使SPI接口的工作方式以及串行數據幀相關的所有參數都可以通過軟體配置,按照本發明所述方法實現的SPI接口能支持目前所有的帶SPI接口的外設;本發明設計的SPI擴展功能(如設備使能信號可配置成為幀同步信號)支持其它常用的同步串行外設接口,降低片上系統的晶片設計投入。


圖1是已有技術兩個嵌入式微計算機之間的SPI接口示意圖。
圖2是本發明SPI的工作流程示意圖。
圖3是本發明PATTERN1模式下的SPI主設備工作方式操作流程。
圖4是本發明PATTERN1模式下的SPI從設備工作方式操作流程。
圖5是本發明串行幀同步時序圖。
圖6是本發明PATTERN3模式下的SPI操作流程。
圖7是本發明4種工作模式下的SPI串行接口引腳信號說明。
具體實施例方式
下面將結合附圖及實施例對本發明作進一步說明。本發明的實現主要是對SPI口的工作模式進行選擇,並對每一種模式的工作方式進行編程實現,整個工作過程如圖2所示。
其中,SPI配置參數包括SPI的工作模式、位時鐘狀態和其它與數據傳輸和幀格式有關的可編程參數,分別如表2、3、4所列。
半雙工模式下,串行數據傳輸活動全部是由主設備發起,從設備只做被動的進行數據收發工作,並根據命令字信息做出響應(如果外設支持相應的話);在全雙工模式下,沒有主/從設備之分,即串行數據的收發雙方都作為主設備,設備雙方的數據發送/接收操作完全獨立。

表2 SPI工作模式劃分

表3 位時鐘信號編程設定表

表4 其它的可編程設定參數表SPI與外設間的一次讀/寫過程首先是由本設備的CPU根據外設的類型與工作要求對SPI參數進行配置(其中最主要的是確定SPI的工作模式參數)和使能本設備的SPI;之後SPI根據其參數確定自身的工作模式並在此模式下根據與數據傳輸有關的參數進行數據收發。
在每個不同的工作模式下,SPI的工作流程也有所不同,下面將結合附圖對其不同模式下的流程加以說明。
圖3是PATTERN1模式下,SPI工作在主設備方式下的示意流程圖。其中步驟307中的指定的周期對應參數表4中的「等待周期」;步驟309中的接收長度L或步驟324中的發送長度T的初值由參數「一次性讀/寫總數」確定;在流程圖中有「幀連續」判斷項(步驟311、325),對應著參數表中「幀連續」的值為「有效」。
具體工作過程為當主設備空閒時(框300),首先判斷是否有數據需要傳遞,即發送緩衝區是否非空(步驟301)。若發送緩衝區有內容,則使能對應的從設備(步驟302),並根據讀寫指示位確定是要「讀」還是「寫」數據(步驟303)。讀數據,即由從設備發送主設備接收的過程是主設備從發送緩衝區讀出一個或多個作為命令的數據字並發送給從設備(步驟304、305、306);發送完後等待指定的周期(步驟307),以給從設備數據準備時間,之後開始串並轉換接收數據字(步驟308);接收時每接收一個數據字之後對L是否為零進行判斷(步驟309),並令接收長度L自減(步驟310),以此來控制接收過程,直至全部數據接收完畢。寫數據,即由主設備發送從設備接收的過程為從發送緩衝區讀出數據字經並串轉換發送出去(步驟321、322),發送時每發送一個數據字發送長度T自減(步驟323),並對T是否為零進行判斷(步驟324),以此來控制發送過程,直至全部數據發送完畢,然後去使能從設備使能信號(步驟326)。這裡要注意的是,框圖300中主設備空閒作為起始狀態,意味著沒有數據傳輸,設備使能信號為無效狀態。而在主設備讀數據過程中,每一個連續的數據幀發送完畢後都將對從設備使能信號重新設置(步驟312、313)則是針對實際設備的需要。
圖4是PATTERN1模式下,SPI工作在從設備方式下的示意流程圖。此例為從設備接收數據,發送的情況流程與此類似。可見,此時只要從設備使能信號有效,就進行串並轉換並接收/發送數據。
此工作模式下,SPI接口只能是主/從模式之一,因此串行數據幀的接收與發送不能同時進行,即半雙工方式。PATTERN2模式也是半雙工方式。其工作方式和流程與PATTERN1基本相同,只是從設備使能信號改為幀同步信號。在每次開始接收/發送一個有效數據字之前都產生一個幀同步信號。相應的幀格式時序如圖5所示。其中數據既可以在幀同步信號的下降沿開始傳輸,也可以在其上升沿開始傳輸,分別如圖5(a)和(b)所示。
圖6是PATTERN3模式下的SPI操作流程示意圖。以此模式下數據發送和接收的流程分別如圖6左側和右側子圖所示。由於此時SPI工作於全雙工模式下,數據收發雙方隨時都可以發起數據發送操作,SPI接口的數據發送/接收相互獨立,互不幹擾。設備空閒時(框600),SPI檢測發送緩衝區是否有數據需要發送(步驟601),有則從中讀出一個數據字(步驟602),置位設備使能輸出信號(步驟603)(此處「置位」是指使設備使能輸出信號為有效),然後並串轉換並發送出去(步驟604),最後使設備使能輸出信號為無效(步驟605),回到起始狀態完成一個發送操作。而接收操作則由設備使能輸入信號控制,設備空閒時(框610),一旦判定該信號為有效(步驟611)就進行串並轉換接收數據字(步驟612)。接收可以與發送同時進行。
PATTERN4模式下的SPI操作流程與PATTERN3類似,只是設備使能信號改為幀同步信號。在每次開始接收/發送一個有效數據字之前都產生一個幀同步信號。相應的幀格式時序如圖5所示。其中數據既可以在幀同步信號的下降沿開始傳輸,也可以在其上升沿開始傳輸,分別如圖5中子圖(a)和(b)所示。
SPI引腳在不同模式下對應的引腳信號有所不同,如圖7所示。其中子圖7.1對應PATTTERN1模式,此時引腳中包含一個位時鐘輸出信號,兩個數據信號和4個從設備使能信號。兩個數據信號分別作為數據輸出和輸入,此時一個主設備可以帶4個從設備。子圖7.2對應PATTERN2模式,引腳信號與7.1類似,只是從設備使能信號改為幀同步信號。子圖7.3對應PATTTERN3模式,引腳信號包括位時鐘輸出、數據輸出和設備使能輸出;以及位時鐘輸入、數據輸入和設備使能輸入,還有一個保留引腳。可見此時數據輸入和輸出的有關引腳是「對稱」的。子圖7.4對應PATTERN4模式,與7.3類似,只是設備使能信號改為幀同步信號。
4種工作模式中,PATTERN1和PATTRERN2屬於半雙工模式,通過相應的參數配置,可以實現以下一些功能支持1~32比特的有效數據寬度;提高主設備的串行數據接收效率,即主設備讀取從設備數據時,只需要命令字數據,不需要CPU額外產生垃圾數據來維持位時鐘信號;主設備讀取從設備時,支持0~3個比特的從設備數據準備周期;支持一次性讀寫1~128個有效數據字,即單幀數據最長可達128×32比特;SPI主設備沒有數據收發時,位時鐘信號完全可控,減小了出錯概率。
PATTERN3和PATTRERN4屬於全雙工模式,除上述半雙工模式下的各種功能以外,串行數據傳輸雙方都作為主設備,都可獨立進行的串行數據發送、接收。
權利要求
1.一種串行外設接口的實現方法,其特徵在於,包括以下步驟(1)CPU配置串行外設接口的配置參數,使能本設備串行外設接口;(2)串行外設接口根據其配置參數確定多種工作模式中的一種為當前模式;(3)在確定的當前工作模式下,根據串行外設接口配置參數進行數據收發。
2.根據權利要求1所述的方法,其特徵在於,串行外設接口配置包括以下參數串行外設接口的工作模式、位時鐘狀態、主/從模式、讀寫指示、有效數據寬度、採樣邊沿、比特流順序、時鐘分頻係數、外設選擇、一次性讀寫總數、命令字數、幀連續、等待周期、等待中的時鐘狀態、DMA傳輸。
3.根據權利要求2所述的方法,其特徵在於,所述參數中的位時鐘狀態指沒有數據收發時的位時鐘信號,包括沒有數據收發時,位時鐘信號始終存在的第一狀態;沒有數據收發時,位時鐘信號為高電平的第二狀態;以及沒有數據收發時,位時鐘信號為低電平的第三狀態。
4.根據權利要求1或2或3所述的方法,其特徵在於,串行外設接口的工作模式包括主/從模式下,片選引腳輸出作為從設備使能信號的第一模式;主/從模式下,片選引腳輸出作為幀同步信號的第二模式;主/主模式下,片選引腳輸出作為設備使能信號的第三模式以及主/主模式下,片選引腳輸出作為幀同步信號的第四模式。
5.根據權利要求4所述的方法,其特徵在於,在所述第一模式下,串行外設接口處於主設備工作方式時的數據收發按以下步驟進行(P1a)當主設備發送緩衝區非空時,使能從設備,對讀/寫指示位進行判斷;(P1b)指示位為「讀」時,向從設備發送命令字,經過指定的等待周期之後接收數據;指示位為「寫」時,直接發送數據;(P1c)本次讀/寫完成後去使能從設備使能信號;串行外設接口處於從設備工作方式時,只要從設備使能信號有效,就直接收/發數據。
6.根據權利要求4所述的方法,其特徵在於,在所述第二模式下,串行外設接口處於主設備工作方式時只進行數據發送,按以下步驟進行(P2a)判斷主設備發送緩衝區是否非空;(P2b)非空時直接發送數據字,且在每開始發送一個數據字之前發送幀同步信號;串行外設接口處於從設備工作方式時只進行數據接收,只要收到幀同步信號,就開始接收數據。
7.根據權利要求4所述的方法,其特徵在於,在所述第三模式下,串行外設接口的數據發送按以下步驟進行(P3a)對發送緩衝區進行判斷,非空時,從其中讀出一個數據字;(P3b)使設備使能輸出信號有效;(P3c)將數據字並串轉換並發送出去;(P3c)使設備使能輸出信號無效,重新開始對緩衝區狀態判斷;串行外設接口空閒或進行數據發送的同時,只要設備使能輸入信號有效,就開始接收數據。
8.根據權利要求4所述的方法,其特徵在於,在所述第四模式下,串行外設接口的數據發送按以下步驟進行(P4a)對發送緩衝區進行判斷,非空時,從其中讀出一個數據字;(P4b)發送一個幀同步信號;(P4c)將數據字並串轉換並發送出去;(P4d)重新開始對緩衝區狀態判斷;串行外設接口空閒或進行數據發送的同時,只要收到幀同步信號,就開始接收數據。
全文摘要
本發明涉及一種多工作模式串行外設接口的實現方法,通過SPI配置參數設定SPI的工作模式,然後根據各種工作模式下同步串行數據幀相關的所有可編程參數進行數據收發,同時實現真正意義上的全雙工同步串行傳輸。由於本發明SPI接口的工作方式以及串行數據幀相關的所有參數都可以通過軟體配置,因此按本發明所述方法實現的SPI接口能支持目前所有的帶SPI接口的外設。且本發明設計的SPI擴展功能,如設備使能信號可配置成為幀同步信號,使之支持其它常用的同步串行外設接口,擴大了SPI接口的應用範圍,降低了片上系統的設計投入。
文檔編號G06F13/42GK1851682SQ200610060079
公開日2006年10月25日 申請日期2006年3月28日 優先權日2006年3月28日
發明者黃衛華, 吳奇祥 申請人:華為技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀