两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種串行外設(shè)接口的實(shí)現(xiàn)方法

文檔序號(hào):6556976閱讀:222來(lái)源:國(guó)知局
專利名稱:一種串行外設(shè)接口的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域
本發(fā)明涉及串行通訊技術(shù),更確切地說(shuō),涉及一種串行外設(shè)接口的實(shí)現(xiàn)方法。
背景技術(shù)
串行外設(shè)接口主要用來(lái)完成并行總線接口到外部串行接口之間的數(shù)據(jù)轉(zhuǎn)換。尤其適用于對(duì)外設(shè)、器件的配置與控制,因?yàn)檫@類應(yīng)用一般要求的傳輸速率不高、數(shù)據(jù)量不大。而且由于SPI接口邏輯簡(jiǎn)單、接口管腳少、編程應(yīng)用方便,因此多數(shù)外設(shè)/器件也都支持SPI串行接口。
一般來(lái)說(shuō),SPI采用一種主-從式結(jié)構(gòu)的同步串行通訊方式,1個(gè)主設(shè)備可帶1個(gè)或者多個(gè)從設(shè)備。并行總線接口端總線隨并行總線類型而異,而串行接口端的信號(hào)主要有4個(gè)信號(hào)串行數(shù)據(jù)信號(hào)主設(shè)備輸出-從設(shè)備輸入;串行數(shù)據(jù)信號(hào)主設(shè)備輸入-從設(shè)備輸出;位時(shí)鐘信號(hào);從設(shè)備使能信號(hào)。
SPI串行數(shù)據(jù)傳輸由主設(shè)備的位時(shí)鐘和從設(shè)備使能信號(hào)控制。從設(shè)備使能信號(hào)是一個(gè)可選的低電平有效的信號(hào),用于使能從設(shè)備的串行數(shù)據(jù)的輸入/輸出。在只有一個(gè)從設(shè)備時(shí),從設(shè)備上的從設(shè)備使能信號(hào)可以直接接地,即不要專用的從設(shè)備使能信號(hào)。此時(shí),位時(shí)鐘信號(hào)控制主/從設(shè)備之間的串行通信,即主設(shè)備只在數(shù)據(jù)收發(fā)時(shí)產(chǎn)生位時(shí)鐘信號(hào)。
現(xiàn)有的SPI接口只能以半雙工方式工作,無(wú)法實(shí)現(xiàn)真正意義上的全雙工。圖1所示的一種嵌入式微計(jì)算機(jī)的SPI接口是相對(duì)比較接近于全雙工的一種類型,其主設(shè)備的8位數(shù)據(jù)寄存器與從設(shè)備的8位數(shù)據(jù)寄存器連在一起組成了一個(gè)分布的16位寄存器。當(dāng)進(jìn)行數(shù)據(jù)傳輸時(shí),16位的寄存器通過(guò)位時(shí)鐘信號(hào)移動(dòng)8比特位置,數(shù)據(jù)高效的在主設(shè)備與從設(shè)備之間交換寫進(jìn)主設(shè)備的數(shù)據(jù)寄存器的數(shù)據(jù)發(fā)送到了從設(shè)備,寫進(jìn)從設(shè)備數(shù)據(jù)寄存器的數(shù)據(jù)發(fā)送到了主設(shè)備。
這種傳輸方式雖然表面上為全雙工,即同時(shí)收發(fā)數(shù)據(jù),但實(shí)際的數(shù)據(jù)收發(fā)過(guò)程完全受主設(shè)備控制——因?yàn)閺倪x擇信號(hào)以及位時(shí)鐘的產(chǎn)生決定了從設(shè)備發(fā)送數(shù)據(jù)的時(shí)序,因此其并非真正意義上的全雙工方式。并且一次只能連接一個(gè)從設(shè)備,傳輸波特率也只有8種可選。另外在主設(shè)備與從設(shè)備之間的一次性讀寫傳輸時(shí),不支持命令字與數(shù)據(jù)字之間的等待,并且從選擇信號(hào)在傳輸過(guò)程中必須始終保持有效。沒(méi)有數(shù)據(jù)傳輸時(shí)也不能有時(shí)鐘輸出,否則可能出錯(cuò)。
另一種同步串行接口(SSP)的實(shí)現(xiàn)方式則從現(xiàn)有器件出發(fā),把串行幀格式分作了3類,針對(duì)3種不同的幀格式設(shè)定不同的支持特性,如下表所示

表1 SSP對(duì)3種數(shù)據(jù)幀的支持特性這種基于器件類型而設(shè)計(jì)的SSP接口,能實(shí)現(xiàn)部分帶SPI接口的外設(shè)/器件的幀格式。但同樣不支持全雙工的數(shù)據(jù)傳輸,而且?guī)愋偷膭澐忠蚕鄬?duì)機(jī)械。
同時(shí)不難看出,無(wú)論上述哪一種接口實(shí)現(xiàn)方式,其支持的有效數(shù)據(jù)位寬的范圍都較小,且主設(shè)備接收數(shù)據(jù)過(guò)程復(fù)雜除了命令字以外,還需要額外的垃圾數(shù)據(jù)來(lái)產(chǎn)生位時(shí)鐘信號(hào)和從設(shè)備使能信號(hào);雖然幀格式3不需要額外的垃圾數(shù)據(jù),但是其命令字固定為8比特,極大的限制了其應(yīng)用范圍。

發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)只能適用特定工作范圍的缺點(diǎn),本發(fā)明提供了一種多工作模式的SPI接口實(shí)現(xiàn)方法,并使所有與數(shù)據(jù)傳輸有關(guān)的參數(shù)可以由CPU配置,擴(kuò)大SPI串行接口的應(yīng)用場(chǎng)合,減少片上系統(tǒng)(SOC)設(shè)計(jì)中同步串行接口的種類,從而降低SOC芯片的設(shè)計(jì)開發(fā)成本。
本發(fā)明多工作模式串行外設(shè)接口(SPI)實(shí)現(xiàn)方法的主要內(nèi)容是通過(guò)SPI配置設(shè)定SPI的工作模式,然后根據(jù)各種工作模式下同步串行數(shù)據(jù)幀相關(guān)的所有可編程參數(shù)進(jìn)行數(shù)據(jù)收發(fā),同時(shí)實(shí)現(xiàn)真正意義上的全雙工同步串行傳輸。
多工作模式串行外設(shè)接口(SPI)的實(shí)現(xiàn)方法,主要包括以下幾個(gè)步驟(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的工作模式、位時(shí)鐘狀態(tài)、主/從模式、讀寫指示、有效數(shù)據(jù)寬度、采樣邊沿、比特流順序、時(shí)鐘分頻系數(shù)、外設(shè)選擇、一次性讀寫總數(shù)、命令字?jǐn)?shù)、幀連續(xù)、等待周期、等待中的時(shí)鐘狀態(tài)、DMA傳輸。
其中所述SPI的工作模式包括以下4種(P1)第1模式(PATTERN1)主/從模式,片選引腳輸出作為從設(shè)備使能信號(hào);(P2)第2模式(PATTERN2)主/從模式,片選引腳輸出作為幀同步信號(hào);(P3)第3模式(PATTERN3)主/主模式,片選引腳輸出作為設(shè)備使能信號(hào);
(P4)第4模式(PATTERN4)主/主模式,片選引腳輸出作為幀同步信號(hào)。
所述參數(shù)中的位時(shí)鐘狀態(tài)是為了支持不同外設(shè)對(duì)位時(shí)鐘信號(hào)的要求,令沒(méi)有數(shù)據(jù)傳輸時(shí)的位時(shí)鐘狀態(tài)完全可編程控制,它包括以下3種(C1)狀態(tài)1(SCLK_FREE)沒(méi)有數(shù)據(jù)收發(fā)時(shí),位時(shí)鐘信號(hào)始終存在;(C2)狀態(tài)2(SCLK_HIGH)沒(méi)有數(shù)據(jù)收發(fā)時(shí),位時(shí)鐘信號(hào)為高電平;(C3)狀態(tài)3(SCLK_LOW)沒(méi)有數(shù)據(jù)收發(fā)時(shí),位時(shí)鐘信號(hào)為低電平。
上面介紹了本發(fā)明有關(guān)SPI配置的主要內(nèi)容,下面描述SPI數(shù)據(jù)收發(fā)的過(guò)程,由于數(shù)據(jù)收發(fā)主要以數(shù)據(jù)幀的形式進(jìn)行,因此下文也稱之為幀收發(fā)。
在PATTERN1模式下,SPI的工作方式只能是主/從之一,片選引腳輸出作為從設(shè)備使能信號(hào),其實(shí)現(xiàn)方法為SPI處于主設(shè)備工作方式時(shí)的數(shù)據(jù)收發(fā)按以下步驟進(jìn)行(P1a)當(dāng)主設(shè)備發(fā)送緩沖區(qū)非空時(shí),使能從設(shè)備,對(duì)讀/寫指示位進(jìn)行判斷;(P1b)指示位為“讀”時(shí),向從設(shè)備發(fā)送命令字,經(jīng)過(guò)指定的等待周期之后接收數(shù)據(jù)字;指示位為“寫”時(shí),直接發(fā)送數(shù)據(jù)字;(P1c)本次讀/寫完成后去使能從設(shè)備使能信號(hào);SPI處于從設(shè)備工作方式時(shí),只要從設(shè)備使能信號(hào)有效,就直接收/發(fā)數(shù)據(jù)。
在PATTERN2模式下,SPI的工作方式只能是主/從之一,片選引腳輸出作為幀同步信號(hào),其實(shí)現(xiàn)方法為SPI處于主設(shè)備工作方式時(shí)只進(jìn)行數(shù)據(jù)發(fā)送,按以下步驟進(jìn)行(P2a)判斷主設(shè)備發(fā)送緩沖區(qū)是否非空;(P2b)非空時(shí)直接發(fā)送數(shù)據(jù)字,且在每開始發(fā)送一個(gè)數(shù)據(jù)字之前發(fā)送幀同步信號(hào);SPI處于從設(shè)備工作方式時(shí)只進(jìn)行數(shù)據(jù)接收,只要收到幀同步信號(hào),就開始接收數(shù)據(jù)。
在PATTERN3模式下,數(shù)據(jù)傳遞的雙方都是主設(shè)備,均可以隨時(shí)發(fā)起數(shù)據(jù)發(fā)送操作,其實(shí)現(xiàn)方法為SPI的數(shù)據(jù)發(fā)送按以下步驟進(jìn)行(P3a)對(duì)發(fā)送緩沖區(qū)進(jìn)行判斷,非空時(shí),從其中讀出一個(gè)數(shù)據(jù)字;(P3b)使設(shè)備使能輸出信號(hào)有效;(P3c)將數(shù)據(jù)字并串轉(zhuǎn)換并發(fā)送出去;(P3c)使設(shè)備使能輸出信號(hào)無(wú)效,重新開始對(duì)緩沖區(qū)狀態(tài)判斷。
SPI空閑或進(jìn)行數(shù)據(jù)發(fā)送的同時(shí),只要設(shè)備使能輸入信號(hào)有效,就開始接收數(shù)據(jù)。
在PATTERN4模式下,數(shù)據(jù)傳遞的雙方都是主設(shè)備,與PATTERN3不同之處在于設(shè)備使能信號(hào)改為幀同步信號(hào),其實(shí)現(xiàn)方法為SPI的數(shù)據(jù)發(fā)送按以下步驟進(jìn)行(P4a)對(duì)發(fā)送緩沖區(qū)進(jìn)行判斷,非空時(shí),從其中讀出一個(gè)數(shù)據(jù)字;(P4b)發(fā)送一個(gè)幀同步信號(hào);(P4c)將數(shù)據(jù)字并串轉(zhuǎn)換并發(fā)送出去;(P4d)重新開始對(duì)緩沖區(qū)狀態(tài)判斷。
SPI空閑或進(jìn)行數(shù)據(jù)發(fā)送的同時(shí),只要收到幀同步信號(hào),就開始接收數(shù)據(jù)。
本發(fā)明的有益效果為使SPI接口的工作方式以及串行數(shù)據(jù)幀相關(guān)的所有參數(shù)都可以通過(guò)軟件配置,按照本發(fā)明所述方法實(shí)現(xiàn)的SPI接口能支持目前所有的帶SPI接口的外設(shè);本發(fā)明設(shè)計(jì)的SPI擴(kuò)展功能(如設(shè)備使能信號(hào)可配置成為幀同步信號(hào))支持其它常用的同步串行外設(shè)接口,降低片上系統(tǒng)的芯片設(shè)計(jì)投入。


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

表2 SPI工作模式劃分

表3 位時(shí)鐘信號(hào)編程設(shè)定表

表4 其它的可編程設(shè)定參數(shù)表SPI與外設(shè)間的一次讀/寫過(guò)程首先是由本設(shè)備的CPU根據(jù)外設(shè)的類型與工作要求對(duì)SPI參數(shù)進(jìn)行配置(其中最主要的是確定SPI的工作模式參數(shù))和使能本設(shè)備的SPI;之后SPI根據(jù)其參數(shù)確定自身的工作模式并在此模式下根據(jù)與數(shù)據(jù)傳輸有關(guān)的參數(shù)進(jìn)行數(shù)據(jù)收發(fā)。
在每個(gè)不同的工作模式下,SPI的工作流程也有所不同,下面將結(jié)合附圖對(duì)其不同模式下的流程加以說(shuō)明。
圖3是PATTERN1模式下,SPI工作在主設(shè)備方式下的示意流程圖。其中步驟307中的指定的周期對(duì)應(yīng)參數(shù)表4中的“等待周期”;步驟309中的接收長(zhǎng)度L或步驟324中的發(fā)送長(zhǎng)度T的初值由參數(shù)“一次性讀/寫總數(shù)”確定;在流程圖中有“幀連續(xù)”判斷項(xiàng)(步驟311、325),對(duì)應(yīng)著參數(shù)表中“幀連續(xù)”的值為“有效”。
具體工作過(guò)程為當(dāng)主設(shè)備空閑時(shí)(框300),首先判斷是否有數(shù)據(jù)需要傳遞,即發(fā)送緩沖區(qū)是否非空(步驟301)。若發(fā)送緩沖區(qū)有內(nèi)容,則使能對(duì)應(yīng)的從設(shè)備(步驟302),并根據(jù)讀寫指示位確定是要“讀”還是“寫”數(shù)據(jù)(步驟303)。讀數(shù)據(jù),即由從設(shè)備發(fā)送主設(shè)備接收的過(guò)程是主設(shè)備從發(fā)送緩沖區(qū)讀出一個(gè)或多個(gè)作為命令的數(shù)據(jù)字并發(fā)送給從設(shè)備(步驟304、305、306);發(fā)送完后等待指定的周期(步驟307),以給從設(shè)備數(shù)據(jù)準(zhǔn)備時(shí)間,之后開始串并轉(zhuǎn)換接收數(shù)據(jù)字(步驟308);接收時(shí)每接收一個(gè)數(shù)據(jù)字之后對(duì)L是否為零進(jìn)行判斷(步驟309),并令接收長(zhǎng)度L自減(步驟310),以此來(lái)控制接收過(guò)程,直至全部數(shù)據(jù)接收完畢。寫數(shù)據(jù),即由主設(shè)備發(fā)送從設(shè)備接收的過(guò)程為從發(fā)送緩沖區(qū)讀出數(shù)據(jù)字經(jīng)并串轉(zhuǎn)換發(fā)送出去(步驟321、322),發(fā)送時(shí)每發(fā)送一個(gè)數(shù)據(jù)字發(fā)送長(zhǎng)度T自減(步驟323),并對(duì)T是否為零進(jìn)行判斷(步驟324),以此來(lái)控制發(fā)送過(guò)程,直至全部數(shù)據(jù)發(fā)送完畢,然后去使能從設(shè)備使能信號(hào)(步驟326)。這里要注意的是,框圖300中主設(shè)備空閑作為起始狀態(tài),意味著沒(méi)有數(shù)據(jù)傳輸,設(shè)備使能信號(hào)為無(wú)效狀態(tài)。而在主設(shè)備讀數(shù)據(jù)過(guò)程中,每一個(gè)連續(xù)的數(shù)據(jù)幀發(fā)送完畢后都將對(duì)從設(shè)備使能信號(hào)重新設(shè)置(步驟312、313)則是針對(duì)實(shí)際設(shè)備的需要。
圖4是PATTERN1模式下,SPI工作在從設(shè)備方式下的示意流程圖。此例為從設(shè)備接收數(shù)據(jù),發(fā)送的情況流程與此類似??梢姡藭r(shí)只要從設(shè)備使能信號(hào)有效,就進(jìn)行串并轉(zhuǎn)換并接收/發(fā)送數(shù)據(jù)。
此工作模式下,SPI接口只能是主/從模式之一,因此串行數(shù)據(jù)幀的接收與發(fā)送不能同時(shí)進(jìn)行,即半雙工方式。PATTERN2模式也是半雙工方式。其工作方式和流程與PATTERN1基本相同,只是從設(shè)備使能信號(hào)改為幀同步信號(hào)。在每次開始接收/發(fā)送一個(gè)有效數(shù)據(jù)字之前都產(chǎn)生一個(gè)幀同步信號(hào)。相應(yīng)的幀格式時(shí)序如圖5所示。其中數(shù)據(jù)既可以在幀同步信號(hào)的下降沿開始傳輸,也可以在其上升沿開始傳輸,分別如圖5(a)和(b)所示。
圖6是PATTERN3模式下的SPI操作流程示意圖。以此模式下數(shù)據(jù)發(fā)送和接收的流程分別如圖6左側(cè)和右側(cè)子圖所示。由于此時(shí)SPI工作于全雙工模式下,數(shù)據(jù)收發(fā)雙方隨時(shí)都可以發(fā)起數(shù)據(jù)發(fā)送操作,SPI接口的數(shù)據(jù)發(fā)送/接收相互獨(dú)立,互不干擾。設(shè)備空閑時(shí)(框600),SPI檢測(cè)發(fā)送緩沖區(qū)是否有數(shù)據(jù)需要發(fā)送(步驟601),有則從中讀出一個(gè)數(shù)據(jù)字(步驟602),置位設(shè)備使能輸出信號(hào)(步驟603)(此處“置位”是指使設(shè)備使能輸出信號(hào)為有效),然后并串轉(zhuǎn)換并發(fā)送出去(步驟604),最后使設(shè)備使能輸出信號(hào)為無(wú)效(步驟605),回到起始狀態(tài)完成一個(gè)發(fā)送操作。而接收操作則由設(shè)備使能輸入信號(hào)控制,設(shè)備空閑時(shí)(框610),一旦判定該信號(hào)為有效(步驟611)就進(jìn)行串并轉(zhuǎn)換接收數(shù)據(jù)字(步驟612)。接收可以與發(fā)送同時(shí)進(jìn)行。
PATTERN4模式下的SPI操作流程與PATTERN3類似,只是設(shè)備使能信號(hào)改為幀同步信號(hào)。在每次開始接收/發(fā)送一個(gè)有效數(shù)據(jù)字之前都產(chǎn)生一個(gè)幀同步信號(hào)。相應(yīng)的幀格式時(shí)序如圖5所示。其中數(shù)據(jù)既可以在幀同步信號(hào)的下降沿開始傳輸,也可以在其上升沿開始傳輸,分別如圖5中子圖(a)和(b)所示。
SPI引腳在不同模式下對(duì)應(yīng)的引腳信號(hào)有所不同,如圖7所示。其中子圖7.1對(duì)應(yīng)PATTTERN1模式,此時(shí)引腳中包含一個(gè)位時(shí)鐘輸出信號(hào),兩個(gè)數(shù)據(jù)信號(hào)和4個(gè)從設(shè)備使能信號(hào)。兩個(gè)數(shù)據(jù)信號(hào)分別作為數(shù)據(jù)輸出和輸入,此時(shí)一個(gè)主設(shè)備可以帶4個(gè)從設(shè)備。子圖7.2對(duì)應(yīng)PATTERN2模式,引腳信號(hào)與7.1類似,只是從設(shè)備使能信號(hào)改為幀同步信號(hào)。子圖7.3對(duì)應(yīng)PATTTERN3模式,引腳信號(hào)包括位時(shí)鐘輸出、數(shù)據(jù)輸出和設(shè)備使能輸出;以及位時(shí)鐘輸入、數(shù)據(jù)輸入和設(shè)備使能輸入,還有一個(gè)保留引腳??梢姶藭r(shí)數(shù)據(jù)輸入和輸出的有關(guān)引腳是“對(duì)稱”的。子圖7.4對(duì)應(yīng)PATTERN4模式,與7.3類似,只是設(shè)備使能信號(hào)改為幀同步信號(hào)。
4種工作模式中,PATTERN1和PATTRERN2屬于半雙工模式,通過(guò)相應(yīng)的參數(shù)配置,可以實(shí)現(xiàn)以下一些功能支持1~32比特的有效數(shù)據(jù)寬度;提高主設(shè)備的串行數(shù)據(jù)接收效率,即主設(shè)備讀取從設(shè)備數(shù)據(jù)時(shí),只需要命令字?jǐn)?shù)據(jù),不需要CPU額外產(chǎn)生垃圾數(shù)據(jù)來(lái)維持位時(shí)鐘信號(hào);主設(shè)備讀取從設(shè)備時(shí),支持0~3個(gè)比特的從設(shè)備數(shù)據(jù)準(zhǔn)備周期;支持一次性讀寫1~128個(gè)有效數(shù)據(jù)字,即單幀數(shù)據(jù)最長(zhǎng)可達(dá)128×32比特;SPI主設(shè)備沒(méi)有數(shù)據(jù)收發(fā)時(shí),位時(shí)鐘信號(hào)完全可控,減小了出錯(cuò)概率。
PATTERN3和PATTRERN4屬于全雙工模式,除上述半雙工模式下的各種功能以外,串行數(shù)據(jù)傳輸雙方都作為主設(shè)備,都可獨(dú)立進(jìn)行的串行數(shù)據(jù)發(fā)送、接收。
權(quán)利要求
1.一種串行外設(shè)接口的實(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è)接口的工作模式、位時(shí)鐘狀態(tài)、主/從模式、讀寫指示、有效數(shù)據(jù)寬度、采樣邊沿、比特流順序、時(shí)鐘分頻系數(shù)、外設(shè)選擇、一次性讀寫總數(shù)、命令字?jǐn)?shù)、幀連續(xù)、等待周期、等待中的時(shí)鐘狀態(tài)、DMA傳輸。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述參數(shù)中的位時(shí)鐘狀態(tài)指沒(méi)有數(shù)據(jù)收發(fā)時(shí)的位時(shí)鐘信號(hào),包括沒(méi)有數(shù)據(jù)收發(fā)時(shí),位時(shí)鐘信號(hào)始終存在的第一狀態(tài);沒(méi)有數(shù)據(jù)收發(fā)時(shí),位時(shí)鐘信號(hào)為高電平的第二狀態(tài);以及沒(méi)有數(shù)據(jù)收發(fā)時(shí),位時(shí)鐘信號(hào)為低電平的第三狀態(tài)。
4.根據(jù)權(quán)利要求1或2或3所述的方法,其特征在于,串行外設(shè)接口的工作模式包括主/從模式下,片選引腳輸出作為從設(shè)備使能信號(hào)的第一模式;主/從模式下,片選引腳輸出作為幀同步信號(hào)的第二模式;主/主模式下,片選引腳輸出作為設(shè)備使能信號(hào)的第三模式以及主/主模式下,片選引腳輸出作為幀同步信號(hào)的第四模式。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述第一模式下,串行外設(shè)接口處于主設(shè)備工作方式時(shí)的數(shù)據(jù)收發(fā)按以下步驟進(jìn)行(P1a)當(dāng)主設(shè)備發(fā)送緩沖區(qū)非空時(shí),使能從設(shè)備,對(duì)讀/寫指示位進(jìn)行判斷;(P1b)指示位為“讀”時(shí),向從設(shè)備發(fā)送命令字,經(jīng)過(guò)指定的等待周期之后接收數(shù)據(jù);指示位為“寫”時(shí),直接發(fā)送數(shù)據(jù);(P1c)本次讀/寫完成后去使能從設(shè)備使能信號(hào);串行外設(shè)接口處于從設(shè)備工作方式時(shí),只要從設(shè)備使能信號(hào)有效,就直接收/發(fā)數(shù)據(jù)。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述第二模式下,串行外設(shè)接口處于主設(shè)備工作方式時(shí)只進(jìn)行數(shù)據(jù)發(fā)送,按以下步驟進(jìn)行(P2a)判斷主設(shè)備發(fā)送緩沖區(qū)是否非空;(P2b)非空時(shí)直接發(fā)送數(shù)據(jù)字,且在每開始發(fā)送一個(gè)數(shù)據(jù)字之前發(fā)送幀同步信號(hào);串行外設(shè)接口處于從設(shè)備工作方式時(shí)只進(jìn)行數(shù)據(jù)接收,只要收到幀同步信號(hào),就開始接收數(shù)據(jù)。
7.根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述第三模式下,串行外設(shè)接口的數(shù)據(jù)發(fā)送按以下步驟進(jìn)行(P3a)對(duì)發(fā)送緩沖區(qū)進(jìn)行判斷,非空時(shí),從其中讀出一個(gè)數(shù)據(jù)字;(P3b)使設(shè)備使能輸出信號(hào)有效;(P3c)將數(shù)據(jù)字并串轉(zhuǎn)換并發(fā)送出去;(P3c)使設(shè)備使能輸出信號(hào)無(wú)效,重新開始對(duì)緩沖區(qū)狀態(tài)判斷;串行外設(shè)接口空閑或進(jìn)行數(shù)據(jù)發(fā)送的同時(shí),只要設(shè)備使能輸入信號(hào)有效,就開始接收數(shù)據(jù)。
8.根據(jù)權(quán)利要求4所述的方法,其特征在于,在所述第四模式下,串行外設(shè)接口的數(shù)據(jù)發(fā)送按以下步驟進(jìn)行(P4a)對(duì)發(fā)送緩沖區(qū)進(jìn)行判斷,非空時(shí),從其中讀出一個(gè)數(shù)據(jù)字;(P4b)發(fā)送一個(gè)幀同步信號(hào);(P4c)將數(shù)據(jù)字并串轉(zhuǎn)換并發(fā)送出去;(P4d)重新開始對(duì)緩沖區(qū)狀態(tài)判斷;串行外設(shè)接口空閑或進(jìn)行數(shù)據(jù)發(fā)送的同時(shí),只要收到幀同步信號(hào),就開始接收數(shù)據(jù)。
全文摘要
本發(fā)明涉及一種多工作模式串行外設(shè)接口的實(shí)現(xiàn)方法,通過(guò)SPI配置參數(shù)設(shè)定SPI的工作模式,然后根據(jù)各種工作模式下同步串行數(shù)據(jù)幀相關(guān)的所有可編程參數(shù)進(jìn)行數(shù)據(jù)收發(fā),同時(shí)實(shí)現(xiàn)真正意義上的全雙工同步串行傳輸。由于本發(fā)明SPI接口的工作方式以及串行數(shù)據(jù)幀相關(guān)的所有參數(shù)都可以通過(guò)軟件配置,因此按本發(fā)明所述方法實(shí)現(xiàn)的SPI接口能支持目前所有的帶SPI接口的外設(shè)。且本發(fā)明設(shè)計(jì)的SPI擴(kuò)展功能,如設(shè)備使能信號(hào)可配置成為幀同步信號(hào),使之支持其它常用的同步串行外設(shè)接口,擴(kuò)大了SPI接口的應(yīng)用范圍,降低了片上系統(tǒng)的設(shè)計(jì)投入。
文檔編號(hào)G06F13/42GK1851682SQ200610060079
公開日2006年10月25日 申請(qǐng)日期2006年3月28日 優(yōu)先權(quán)日2006年3月28日
發(fā)明者黃衛(wèi)華, 吳奇祥 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
沙河市| 株洲市| 嘉定区| 青浦区| 平罗县| 哈密市| 旌德县| 静宁县| 右玉县| 澄迈县| 三台县| 潮安县| 山阳县| 靖江市| 开阳县| 平陆县| 卢龙县| 河津市| 突泉县| 海门市| 富锦市| 黔南| 萨迦县| 砀山县| 托克托县| 固原市| 惠水县| 平南县| 阳原县| 家居| 乌鲁木齐县| 九台市| 和田市| 菏泽市| 蒙城县| 厦门市| 和顺县| 庆云县| 河津市| 许昌县| 吴桥县|