專利名稱:一種串行外設(shè)接口的實現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及串行通訊技術(shù),更確切地說,涉及一種串行外設(shè)接口的實現(xiàn)方法。
背景技術(shù):
串行外設(shè)接口主要用來完成并行總線接口到外部串行接口之間的數(shù)據(jù)轉(zhuǎn)換。尤其適用于對外設(shè)、器件的配置與控制,因為這類應(yīng)用一般要求的傳輸速率不高、數(shù)據(jù)量不大。而且由于SPI接口邏輯簡單、接口管腳少、編程應(yīng)用方便,因此多數(shù)外設(shè)/器件也都支持SPI串行接口。
一般來說,SPI采用一種主-從式結(jié)構(gòu)的同步串行通訊方式,1個主設(shè)備可帶1個或者多個從設(shè)備。并行總線接口端總線隨并行總線類型而異,而串行接口端的信號主要有4個信號串行數(shù)據(jù)信號主設(shè)備輸出-從設(shè)備輸入;串行數(shù)據(jù)信號主設(shè)備輸入-從設(shè)備輸出;位時鐘信號;從設(shè)備使能信號。
SPI串行數(shù)據(jù)傳輸由主設(shè)備的位時鐘和從設(shè)備使能信號控制。從設(shè)備使能信號是一個可選的低電平有效的信號,用于使能從設(shè)備的串行數(shù)據(jù)的輸入/輸出。在只有一個從設(shè)備時,從設(shè)備上的從設(shè)備使能信號可以直接接地,即不要專用的從設(shè)備使能信號。此時,位時鐘信號控制主/從設(shè)備之間的串行通信,即主設(shè)備只在數(shù)據(jù)收發(fā)時產(chǎn)生位時鐘信號。
現(xiàn)有的SPI接口只能以半雙工方式工作,無法實現(xiàn)真正意義上的全雙工。圖1所示的一種嵌入式微計算機的SPI接口是相對比較接近于全雙工的一種類型,其主設(shè)備的8位數(shù)據(jù)寄存器與從設(shè)備的8位數(shù)據(jù)寄存器連在一起組成了一個分布的16位寄存器。當(dāng)進(jìn)行數(shù)據(jù)傳輸時,16位的寄存器通過位時鐘信號移動8比特位置,數(shù)據(jù)高效的在主設(shè)備與從設(shè)備之間交換寫進(jìn)主設(shè)備的數(shù)據(jù)寄存器的數(shù)據(jù)發(fā)送到了從設(shè)備,寫進(jìn)從設(shè)備數(shù)據(jù)寄存器的數(shù)據(jù)發(fā)送到了主設(shè)備。
這種傳輸方式雖然表面上為全雙工,即同時收發(fā)數(shù)據(jù),但實際的數(shù)據(jù)收發(fā)過程完全受主設(shè)備控制——因為從選擇信號以及位時鐘的產(chǎn)生決定了從設(shè)備發(fā)送數(shù)據(jù)的時序,因此其并非真正意義上的全雙工方式。并且一次只能連接一個從設(shè)備,傳輸波特率也只有8種可選。另外在主設(shè)備與從設(shè)備之間的一次性讀寫傳輸時,不支持命令字與數(shù)據(jù)字之間的等待,并且從選擇信號在傳輸過程中必須始終保持有效。沒有數(shù)據(jù)傳輸時也不能有時鐘輸出,否則可能出錯。
另一種同步串行接口(SSP)的實現(xiàn)方式則從現(xiàn)有器件出發(fā),把串行幀格式分作了3類,針對3種不同的幀格式設(shè)定不同的支持特性,如下表所示
表1 SSP對3種數(shù)據(jù)幀的支持特性這種基于器件類型而設(shè)計的SSP接口,能實現(xiàn)部分帶SPI接口的外設(shè)/器件的幀格式。但同樣不支持全雙工的數(shù)據(jù)傳輸,而且?guī)愋偷膭澐忠蚕鄬C械。
同時不難看出,無論上述哪一種接口實現(xiàn)方式,其支持的有效數(shù)據(jù)位寬的范圍都較小,且主設(shè)備接收數(shù)據(jù)過程復(fù)雜除了命令字以外,還需要額外的垃圾數(shù)據(jù)來產(chǎn)生位時鐘信號和從設(shè)備使能信號;雖然幀格式3不需要額外的垃圾數(shù)據(jù),但是其命令字固定為8比特,極大的限制了其應(yīng)用范圍。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)只能適用特定工作范圍的缺點,本發(fā)明提供了一種多工作模式的SPI接口實現(xiàn)方法,并使所有與數(shù)據(jù)傳輸有關(guān)的參數(shù)可以由CPU配置,擴(kuò)大SPI串行接口的應(yīng)用場合,減少片上系統(tǒng)(SOC)設(shè)計中同步串行接口的種類,從而降低SOC芯片的設(shè)計開發(fā)成本。
本發(fā)明多工作模式串行外設(shè)接口(SPI)實現(xiàn)方法的主要內(nèi)容是通過SPI配置設(shè)定SPI的工作模式,然后根據(jù)各種工作模式下同步串行數(shù)據(jù)幀相關(guān)的所有可編程參數(shù)進(jìn)行數(shù)據(jù)收發(fā),同時實現(xiàn)真正意義上的全雙工同步串行傳輸。
多工作模式串行外設(shè)接口(SPI)的實現(xiàn)方法,主要包括以下幾個步驟(1)由CPU配置SPI配置參數(shù),使能本設(shè)備SPI;(2)SPI根據(jù)其配置參數(shù)確定多種工作模式中的一種作為當(dāng)前模式;(3)在確定的當(dāng)前工作模式下,根據(jù)SPI配置參數(shù)進(jìn)行數(shù)據(jù)收發(fā)。
其中所述的SPI配置參數(shù)包括SPI的工作模式、位時鐘狀態(tài)、主/從模式、讀寫指示、有效數(shù)據(jù)寬度、采樣邊沿、比特流順序、時鐘分頻系數(shù)、外設(shè)選擇、一次性讀寫總數(shù)、命令字?jǐn)?shù)、幀連續(xù)、等待周期、等待中的時鐘狀態(tài)、DMA傳輸。
其中所述SPI的工作模式包括以下4種(P1)第1模式(PATTERN1)主/從模式,片選引腳輸出作為從設(shè)備使能信號;(P2)第2模式(PATTERN2)主/從模式,片選引腳輸出作為幀同步信號;(P3)第3模式(PATTERN3)主/主模式,片選引腳輸出作為設(shè)備使能信號;
(P4)第4模式(PATTERN4)主/主模式,片選引腳輸出作為幀同步信號。
所述參數(shù)中的位時鐘狀態(tài)是為了支持不同外設(shè)對位時鐘信號的要求,令沒有數(shù)據(jù)傳輸時的位時鐘狀態(tài)完全可編程控制,它包括以下3種(C1)狀態(tài)1(SCLK_FREE)沒有數(shù)據(jù)收發(fā)時,位時鐘信號始終存在;(C2)狀態(tài)2(SCLK_HIGH)沒有數(shù)據(jù)收發(fā)時,位時鐘信號為高電平;(C3)狀態(tài)3(SCLK_LOW)沒有數(shù)據(jù)收發(fā)時,位時鐘信號為低電平。
上面介紹了本發(fā)明有關(guān)SPI配置的主要內(nèi)容,下面描述SPI數(shù)據(jù)收發(fā)的過程,由于數(shù)據(jù)收發(fā)主要以數(shù)據(jù)幀的形式進(jìn)行,因此下文也稱之為幀收發(fā)。
在PATTERN1模式下,SPI的工作方式只能是主/從之一,片選引腳輸出作為從設(shè)備使能信號,其實現(xiàn)方法為SPI處于主設(shè)備工作方式時的數(shù)據(jù)收發(fā)按以下步驟進(jìn)行(P1a)當(dāng)主設(shè)備發(fā)送緩沖區(qū)非空時,使能從設(shè)備,對讀/寫指示位進(jìn)行判斷;(P1b)指示位為“讀”時,向從設(shè)備發(fā)送命令字,經(jīng)過指定的等待周期之后接收數(shù)據(jù)字;指示位為“寫”時,直接發(fā)送數(shù)據(jù)字;(P1c)本次讀/寫完成后去使能從設(shè)備使能信號;SPI處于從設(shè)備工作方式時,只要從設(shè)備使能信號有效,就直接收/發(fā)數(shù)據(jù)。
在PATTERN2模式下,SPI的工作方式只能是主/從之一,片選引腳輸出作為幀同步信號,其實現(xiàn)方法為SPI處于主設(shè)備工作方式時只進(jìn)行數(shù)據(jù)發(fā)送,按以下步驟進(jìn)行(P2a)判斷主設(shè)備發(fā)送緩沖區(qū)是否非空;(P2b)非空時直接發(fā)送數(shù)據(jù)字,且在每開始發(fā)送一個數(shù)據(jù)字之前發(fā)送幀同步信號;SPI處于從設(shè)備工作方式時只進(jìn)行數(shù)據(jù)接收,只要收到幀同步信號,就開始接收數(shù)據(jù)。
在PATTERN3模式下,數(shù)據(jù)傳遞的雙方都是主設(shè)備,均可以隨時發(fā)起數(shù)據(jù)發(fā)送操作,其實現(xiàn)方法為SPI的數(shù)據(jù)發(fā)送按以下步驟進(jìn)行(P3a)對發(fā)送緩沖區(qū)進(jìn)行判斷,非空時,從其中讀出一個數(shù)據(jù)字;(P3b)使設(shè)備使能輸出信號有效;(P3c)將數(shù)據(jù)字并串轉(zhuǎn)換并發(fā)送出去;(P3c)使設(shè)備使能輸出信號無效,重新開始對緩沖區(qū)狀態(tài)判斷。
SPI空閑或進(jìn)行數(shù)據(jù)發(fā)送的同時,只要設(shè)備使能輸入信號有效,就開始接收數(shù)據(jù)。
在PATTERN4模式下,數(shù)據(jù)傳遞的雙方都是主設(shè)備,與PATTERN3不同之處在于設(shè)備使能信號改為幀同步信號,其實現(xiàn)方法為SPI的數(shù)據(jù)發(fā)送按以下步驟進(jìn)行(P4a)對發(fā)送緩沖區(qū)進(jìn)行判斷,非空時,從其中讀出一個數(shù)據(jù)字;(P4b)發(fā)送一個幀同步信號;(P4c)將數(shù)據(jù)字并串轉(zhuǎn)換并發(fā)送出去;(P4d)重新開始對緩沖區(qū)狀態(tài)判斷。
SPI空閑或進(jìn)行數(shù)據(jù)發(fā)送的同時,只要收到幀同步信號,就開始接收數(shù)據(jù)。
本發(fā)明的有益效果為使SPI接口的工作方式以及串行數(shù)據(jù)幀相關(guān)的所有參數(shù)都可以通過軟件配置,按照本發(fā)明所述方法實現(xiàn)的SPI接口能支持目前所有的帶SPI接口的外設(shè);本發(fā)明設(shè)計的SPI擴(kuò)展功能(如設(shè)備使能信號可配置成為幀同步信號)支持其它常用的同步串行外設(shè)接口,降低片上系統(tǒng)的芯片設(shè)計投入。
圖1是已有技術(shù)兩個嵌入式微計算機之間的SPI接口示意圖。
圖2是本發(fā)明SPI的工作流程示意圖。
圖3是本發(fā)明PATTERN1模式下的SPI主設(shè)備工作方式操作流程。
圖4是本發(fā)明PATTERN1模式下的SPI從設(shè)備工作方式操作流程。
圖5是本發(fā)明串行幀同步時序圖。
圖6是本發(fā)明PATTERN3模式下的SPI操作流程。
圖7是本發(fā)明4種工作模式下的SPI串行接口引腳信號說明。
具體實施例方式
下面將結(jié)合附圖及實施例對本發(fā)明作進(jìn)一步說明。本發(fā)明的實現(xiàn)主要是對SPI口的工作模式進(jìn)行選擇,并對每一種模式的工作方式進(jìn)行編程實現(xiàn),整個工作過程如圖2所示。
其中,SPI配置參數(shù)包括SPI的工作模式、位時鐘狀態(tài)和其它與數(shù)據(jù)傳輸和幀格式有關(guān)的可編程參數(shù),分別如表2、3、4所列。
半雙工模式下,串行數(shù)據(jù)傳輸活動全部是由主設(shè)備發(fā)起,從設(shè)備只做被動的進(jìn)行數(shù)據(jù)收發(fā)工作,并根據(jù)命令字信息做出響應(yīng)(如果外設(shè)支持相應(yīng)的話);在全雙工模式下,沒有主/從設(shè)備之分,即串行數(shù)據(jù)的收發(fā)雙方都作為主設(shè)備,設(shè)備雙方的數(shù)據(jù)發(fā)送/接收操作完全獨立。
表2 SPI工作模式劃分
表3 位時鐘信號編程設(shè)定表
表4 其它的可編程設(shè)定參數(shù)表SPI與外設(shè)間的一次讀/寫過程首先是由本設(shè)備的CPU根據(jù)外設(shè)的類型與工作要求對SPI參數(shù)進(jìn)行配置(其中最主要的是確定SPI的工作模式參數(shù))和使能本設(shè)備的SPI;之后SPI根據(jù)其參數(shù)確定自身的工作模式并在此模式下根據(jù)與數(shù)據(jù)傳輸有關(guān)的參數(shù)進(jìn)行數(shù)據(jù)收發(fā)。
在每個不同的工作模式下,SPI的工作流程也有所不同,下面將結(jié)合附圖對其不同模式下的流程加以說明。
圖3是PATTERN1模式下,SPI工作在主設(shè)備方式下的示意流程圖。其中步驟307中的指定的周期對應(yīng)參數(shù)表4中的“等待周期”;步驟309中的接收長度L或步驟324中的發(fā)送長度T的初值由參數(shù)“一次性讀/寫總數(shù)”確定;在流程圖中有“幀連續(xù)”判斷項(步驟311、325),對應(yīng)著參數(shù)表中“幀連續(xù)”的值為“有效”。
具體工作過程為當(dāng)主設(shè)備空閑時(框300),首先判斷是否有數(shù)據(jù)需要傳遞,即發(fā)送緩沖區(qū)是否非空(步驟301)。若發(fā)送緩沖區(qū)有內(nèi)容,則使能對應(yīng)的從設(shè)備(步驟302),并根據(jù)讀寫指示位確定是要“讀”還是“寫”數(shù)據(jù)(步驟303)。讀數(shù)據(jù),即由從設(shè)備發(fā)送主設(shè)備接收的過程是主設(shè)備從發(fā)送緩沖區(qū)讀出一個或多個作為命令的數(shù)據(jù)字并發(fā)送給從設(shè)備(步驟304、305、306);發(fā)送完后等待指定的周期(步驟307),以給從設(shè)備數(shù)據(jù)準(zhǔn)備時間,之后開始串并轉(zhuǎn)換接收數(shù)據(jù)字(步驟308);接收時每接收一個數(shù)據(jù)字之后對L是否為零進(jìn)行判斷(步驟309),并令接收長度L自減(步驟310),以此來控制接收過程,直至全部數(shù)據(jù)接收完畢。寫數(shù)據(jù),即由主設(shè)備發(fā)送從設(shè)備接收的過程為從發(fā)送緩沖區(qū)讀出數(shù)據(jù)字經(jīng)并串轉(zhuǎn)換發(fā)送出去(步驟321、322),發(fā)送時每發(fā)送一個數(shù)據(jù)字發(fā)送長度T自減(步驟323),并對T是否為零進(jìn)行判斷(步驟324),以此來控制發(fā)送過程,直至全部數(shù)據(jù)發(fā)送完畢,然后去使能從設(shè)備使能信號(步驟326)。這里要注意的是,框圖300中主設(shè)備空閑作為起始狀態(tài),意味著沒有數(shù)據(jù)傳輸,設(shè)備使能信號為無效狀態(tài)。而在主設(shè)備讀數(shù)據(jù)過程中,每一個連續(xù)的數(shù)據(jù)幀發(fā)送完畢后都將對從設(shè)備使能信號重新設(shè)置(步驟312、313)則是針對實際設(shè)備的需要。
圖4是PATTERN1模式下,SPI工作在從設(shè)備方式下的示意流程圖。此例為從設(shè)備接收數(shù)據(jù),發(fā)送的情況流程與此類似。可見,此時只要從設(shè)備使能信號有效,就進(jìn)行串并轉(zhuǎn)換并接收/發(fā)送數(shù)據(jù)。
此工作模式下,SPI接口只能是主/從模式之一,因此串行數(shù)據(jù)幀的接收與發(fā)送不能同時進(jìn)行,即半雙工方式。PATTERN2模式也是半雙工方式。其工作方式和流程與PATTERN1基本相同,只是從設(shè)備使能信號改為幀同步信號。在每次開始接收/發(fā)送一個有效數(shù)據(jù)字之前都產(chǎn)生一個幀同步信號。相應(yīng)的幀格式時序如圖5所示。其中數(shù)據(jù)既可以在幀同步信號的下降沿開始傳輸,也可以在其上升沿開始傳輸,分別如圖5(a)和(b)所示。
圖6是PATTERN3模式下的SPI操作流程示意圖。以此模式下數(shù)據(jù)發(fā)送和接收的流程分別如圖6左側(cè)和右側(cè)子圖所示。由于此時SPI工作于全雙工模式下,數(shù)據(jù)收發(fā)雙方隨時都可以發(fā)起數(shù)據(jù)發(fā)送操作,SPI接口的數(shù)據(jù)發(fā)送/接收相互獨立,互不干擾。設(shè)備空閑時(框600),SPI檢測發(fā)送緩沖區(qū)是否有數(shù)據(jù)需要發(fā)送(步驟601),有則從中讀出一個數(shù)據(jù)字(步驟602),置位設(shè)備使能輸出信號(步驟603)(此處“置位”是指使設(shè)備使能輸出信號為有效),然后并串轉(zhuǎn)換并發(fā)送出去(步驟604),最后使設(shè)備使能輸出信號為無效(步驟605),回到起始狀態(tài)完成一個發(fā)送操作。而接收操作則由設(shè)備使能輸入信號控制,設(shè)備空閑時(框610),一旦判定該信號為有效(步驟611)就進(jìn)行串并轉(zhuǎn)換接收數(shù)據(jù)字(步驟612)。接收可以與發(fā)送同時進(jìn)行。
PATTERN4模式下的SPI操作流程與PATTERN3類似,只是設(shè)備使能信號改為幀同步信號。在每次開始接收/發(fā)送一個有效數(shù)據(jù)字之前都產(chǎn)生一個幀同步信號。相應(yīng)的幀格式時序如圖5所示。其中數(shù)據(jù)既可以在幀同步信號的下降沿開始傳輸,也可以在其上升沿開始傳輸,分別如圖5中子圖(a)和(b)所示。
SPI引腳在不同模式下對應(yīng)的引腳信號有所不同,如圖7所示。其中子圖7.1對應(yīng)PATTTERN1模式,此時引腳中包含一個位時鐘輸出信號,兩個數(shù)據(jù)信號和4個從設(shè)備使能信號。兩個數(shù)據(jù)信號分別作為數(shù)據(jù)輸出和輸入,此時一個主設(shè)備可以帶4個從設(shè)備。子圖7.2對應(yīng)PATTERN2模式,引腳信號與7.1類似,只是從設(shè)備使能信號改為幀同步信號。子圖7.3對應(yīng)PATTTERN3模式,引腳信號包括位時鐘輸出、數(shù)據(jù)輸出和設(shè)備使能輸出;以及位時鐘輸入、數(shù)據(jù)輸入和設(shè)備使能輸入,還有一個保留引腳??梢姶藭r數(shù)據(jù)輸入和輸出的有關(guān)引腳是“對稱”的。子圖7.4對應(yīng)PATTERN4模式,與7.3類似,只是設(shè)備使能信號改為幀同步信號。
4種工作模式中,PATTERN1和PATTRERN2屬于半雙工模式,通過相應(yīng)的參數(shù)配置,可以實現(xiàn)以下一些功能支持1~32比特的有效數(shù)據(jù)寬度;提高主設(shè)備的串行數(shù)據(jù)接收效率,即主設(shè)備讀取從設(shè)備數(shù)據(jù)時,只需要命令字?jǐn)?shù)據(jù),不需要CPU額外產(chǎn)生垃圾數(shù)據(jù)來維持位時鐘信號;主設(shè)備讀取從設(shè)備時,支持0~3個比特的從設(shè)備數(shù)據(jù)準(zhǔn)備周期;支持一次性讀寫1~128個有效數(shù)據(jù)字,即單幀數(shù)據(jù)最長可達(dá)128×32比特;SPI主設(shè)備沒有數(shù)據(jù)收發(fā)時,位時鐘信號完全可控,減小了出錯概率。
PATTERN3和PATTRERN4屬于全雙工模式,除上述半雙工模式下的各種功能以外,串行數(shù)據(jù)傳輸雙方都作為主設(shè)備,都可獨立進(jìn)行的串行數(shù)據(jù)發(fā)送、接收。
權(quán)利要求
1.一種串行外設(shè)接口的實現(xiàn)方法,其特征在于,包括以下步驟(1)CPU配置串行外設(shè)接口的配置參數(shù),使能本設(shè)備串行外設(shè)接口;(2)串行外設(shè)接口根據(jù)其配置參數(shù)確定多種工作模式中的一種為當(dāng)前模式;(3)在確定的當(dāng)前工作模式下,根據(jù)串行外設(shè)接口配置參數(shù)進(jìn)行數(shù)據(jù)收發(fā)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,串行外設(shè)接口配置包括以下參數(shù)串行外設(shè)接口的工作模式、位時鐘狀態(tài)、主/從模式、讀寫指示、有效數(shù)據(jù)寬度、采樣邊沿、比特流順序、時鐘分頻系數(shù)、外設(shè)選擇、一次性讀寫總數(shù)、命令字?jǐn)?shù)、幀連續(xù)、等待周期、等待中的時鐘狀態(tài)、DMA傳輸。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述參數(shù)中的位時鐘狀態(tài)指沒有數(shù)據(jù)收發(fā)時的位時鐘信號,包括沒有數(shù)據(jù)收發(fā)時,位時鐘信號始終存在的第一狀態(tài);沒有數(shù)據(jù)收發(fā)時,位時鐘信號為高電平的第二狀態(tài);以及沒有數(shù)據(jù)收發(fā)時,位時鐘信號為低電平的第三狀態(tài)。
4.根據(jù)權(quán)利要求1或2或3所述的方法,其特征在于,串行外設(shè)接口的工作模式包括主/從模式下,片選引腳輸出作為從設(shè)備使能信號的第一模式;主/從模式下,片選引腳輸出作為幀同步信號的第二模式;主/主模式下,片選引腳輸出作為設(shè)備使能信號的第三模式以及主/主模式下,片選引腳輸出作為幀同步信號的第四模式。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述第一模式下,串行外設(shè)接口處于主設(shè)備工作方式時的數(shù)據(jù)收發(fā)按以下步驟進(jìn)行(P1a)當(dāng)主設(shè)備發(fā)送緩沖區(qū)非空時,使能從設(shè)備,對讀/寫指示位進(jìn)行判斷;(P1b)指示位為“讀”時,向從設(shè)備發(fā)送命令字,經(jīng)過指定的等待周期之后接收數(shù)據(jù);指示位為“寫”時,直接發(fā)送數(shù)據(jù);(P1c)本次讀/寫完成后去使能從設(shè)備使能信號;串行外設(shè)接口處于從設(shè)備工作方式時,只要從設(shè)備使能信號有效,就直接收/發(fā)數(shù)據(jù)。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述第二模式下,串行外設(shè)接口處于主設(shè)備工作方式時只進(jìn)行數(shù)據(jù)發(fā)送,按以下步驟進(jìn)行(P2a)判斷主設(shè)備發(fā)送緩沖區(qū)是否非空;(P2b)非空時直接發(fā)送數(shù)據(jù)字,且在每開始發(fā)送一個數(shù)據(jù)字之前發(fā)送幀同步信號;串行外設(shè)接口處于從設(shè)備工作方式時只進(jìn)行數(shù)據(jù)接收,只要收到幀同步信號,就開始接收數(shù)據(jù)。
7.根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述第三模式下,串行外設(shè)接口的數(shù)據(jù)發(fā)送按以下步驟進(jìn)行(P3a)對發(fā)送緩沖區(qū)進(jìn)行判斷,非空時,從其中讀出一個數(shù)據(jù)字;(P3b)使設(shè)備使能輸出信號有效;(P3c)將數(shù)據(jù)字并串轉(zhuǎn)換并發(fā)送出去;(P3c)使設(shè)備使能輸出信號無效,重新開始對緩沖區(qū)狀態(tài)判斷;串行外設(shè)接口空閑或進(jìn)行數(shù)據(jù)發(fā)送的同時,只要設(shè)備使能輸入信號有效,就開始接收數(shù)據(jù)。
8.根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述第四模式下,串行外設(shè)接口的數(shù)據(jù)發(fā)送按以下步驟進(jìn)行(P4a)對發(fā)送緩沖區(qū)進(jìn)行判斷,非空時,從其中讀出一個數(shù)據(jù)字;(P4b)發(fā)送一個幀同步信號;(P4c)將數(shù)據(jù)字并串轉(zhuǎn)換并發(fā)送出去;(P4d)重新開始對緩沖區(qū)狀態(tài)判斷;串行外設(shè)接口空閑或進(jìn)行數(shù)據(jù)發(fā)送的同時,只要收到幀同步信號,就開始接收數(shù)據(jù)。
全文摘要
本發(fā)明涉及一種多工作模式串行外設(shè)接口的實現(xiàn)方法,通過SPI配置參數(shù)設(shè)定SPI的工作模式,然后根據(jù)各種工作模式下同步串行數(shù)據(jù)幀相關(guān)的所有可編程參數(shù)進(jìn)行數(shù)據(jù)收發(fā),同時實現(xiàn)真正意義上的全雙工同步串行傳輸。由于本發(fā)明SPI接口的工作方式以及串行數(shù)據(jù)幀相關(guān)的所有參數(shù)都可以通過軟件配置,因此按本發(fā)明所述方法實現(xiàn)的SPI接口能支持目前所有的帶SPI接口的外設(shè)。且本發(fā)明設(shè)計的SPI擴(kuò)展功能,如設(shè)備使能信號可配置成為幀同步信號,使之支持其它常用的同步串行外設(shè)接口,擴(kuò)大了SPI接口的應(yīng)用范圍,降低了片上系統(tǒng)的設(shè)計投入。
文檔編號G06F13/42GK1851682SQ200610060079
公開日2006年10月25日 申請日期2006年3月28日 優(yōu)先權(quán)日2006年3月28日
發(fā)明者黃衛(wèi)華, 吳奇祥 申請人:華為技術(shù)有限公司