新四季網

Spi控制器及通信方法

2023-10-09 17:35:49

專利名稱:Spi控制器及通信方法
SPI控制器及通信方法
技術領域:
本發明涉及串行通信技術,尤其涉及一種改進型的SPI控制器及基於該SPI控制器的通信方法。
背景技術:
SPI (Serial Peripheral Interface,串行外圍設備接口)最早由 Motorola 公司提出的一種全雙工、同步串行傳輸總線,主要用於微控制器和外圍設備之間的通信,以及用於微處理器和微處理器之間的通信。具有電路結構簡單、傳輸速度快、通信可靠等優點。SPI 總線包括 4 根信號線SS(Slave Select,從機選擇),SCLK(SPI Clock,SPI 傳輸時鐘),M0SI (Master Output Slave Input,主機輸出從機輸入)和 MISO (Master InputSlave Output,主機輸入從機輸出)。其中,SS由SPI主機輸出,用於SPI主機選擇SPI從機,低電平有效,即當SS輸入為低時,SPI從機與SPI主機進行通信;SCLK是SPI主機輸出的用於同步MOSI和MISO的時鐘;M0SI是主機輸出給從機的數據線;MIS0是從機輸出給主機的數據線。SPI總線的連接關係如圖1所示。SPI控制器控制SS的方法,如圖2所示,具體為(I)、當被配置為從機時SS管腳配置為SPI專用SS功能,作為輸入連接到外面的SPI主機的SS輸出,只用當SS輸入為低時,SPI控制器才能和外面的SPI主機進行通信;(2)、當被配置為主機時(2a)、如果為單SPI主機系統,不需檢測MODF (Mode Fault,模式錯誤)即多個SPI主機同時操作SPI總 線,CPlXCentral Processing Unit,中央處理單元)配置SPI控制器不使能M0DF,SS作為輸出連接到外部的SPI從機,此時SS輸出通過CPU控制GPIO (GenericPurpose Input Output,通用輸入輸出)來實現,即SS管腳配置為GPIO功能,GPIO配置為輸出狀態,輸出電平由CPU控制;此種情況下需軟體控制以模擬SS輸出;(2b)、如果為多SPI主機系統,需檢測M0DF,CPU配置SPI控制器使能M0DF,SS管腳配置為SPI專用SS功能作為輸入,SPI控制器檢測SS輸入當SS輸入為低,說明有其他的SPI主機正在操作SPI總線,SPI控制器需硬體自動配置為從機,並向CPU報告MODF ;相反,當SS輸入為高,說明沒有其他的SPI主機在操作SPI總線,SPI控制器工作在主機模式,CPU配置SPI控制器不使能M0DF,SS作為輸出連接到外部的SPI從機,SS輸出控制通過CPU控制GPIO來實現,並需軟體控制以模擬SS輸出。如圖3所示,SPI控制器接收數據緩存器工作原理初始接收數據緩存器未存儲數據,為空狀態,將寫入的數據依次存儲到相應的位置,當存儲N個數據後,假設接收數據緩存器最大容量為N,接收數據緩存器中存滿數據,為滿狀態,此時沒有空間存儲新的數據。如果SPI控制器接收新的數據並寫入接收數據緩存器,由於接收數據緩存器中的數據不會改變,新的數據將不會成功寫入到接收數據緩存器中;只有將接收數據緩存器裡面的數據讀走,接收數據緩存器才有空間存儲新的數據,新的數據才能成功寫入到接收數據緩存器。從上述分析中可以看到,SPI控制器存在如下兩個不足
1、當SPI控制器配置為主機時,SS輸出不由SPI控制器直接控制,通過CPU(Central Processing Unit,中央處理單兀)控制 GPIO (Generic Purpose Input Output,通用輸入輸出)來實現,需要軟體控制來模擬SS輸出。該方法通過CPU來控制GPIO來模擬SS輸出,需要軟體設計人員通過軟體來控制,雖提供了一定的設計靈活性,但軟體設計人員需要準確地用軟體控制來模擬SS輸出以滿足SPI傳輸時序要求,增加了軟體人員的負擔;同時,軟體控制需要額外佔用CPU資源,增加了 CPU的工作負荷。2、SPI控制器中的接收數據緩存器存滿數據後,裡面的數據須要及時被讀走,否則接收數據緩存器將不能接收新的數據。即,當SPI控制器被配置為主機SPI控制器對外圍器件內部的控制寄存器進行寫操作,SPI控制器輸出有用的寫數據到SPI從機,而此時SPI從機輸出給SPI控制器的數據沒有實際用途,SPI控制器也不關心這些數據,但當SPI控制器對SPI從機進行讀操作時,SPI從機輸出的有用數據需要寫入接收數據緩存器,接收數據緩存器裡面的數據必須要及時被讀走;同理,當SPI控制器被配置為從機時外部的SPI主機對SPI控制器進行讀操作時,SPI控制器輸出有用的數據到SPI主機,而此時SPI主機輸出給SPI控制器的數據也沒有實際用途,SPI控制器也不關心這些數據,但當外部SPI主機對SPI控制器進行寫操作時,SPI主機輸出的有用數據需要寫入接收數據緩存器,接收數據緩存器裡面的數據也必須及時被讀走。目前SPI控制器配置為主機時進行SPI傳輸的軟體操作流程如下I)、CPU配置SPI控制器為主機,如果需要檢測MODF (多SPI主機系統),CPU配置SPI控制器使能MODF,SPI控制器將SS管腳配置為SPI專用SS功能作為輸入,並檢測SS輸入當SS為低,此時有其他的SPI主機正在操作SPI總線,SPI控制器需要硬體自動配置為SPI從機,並向CPU報告MODF ;當SS為高,此時沒有其他的SPI主機在操作SPI總線,則SPI控制器可以工作在主機模式,之後CPU配置SPI控制器不使能MODF ;如果是單SPI主機系統,則跳過前述的MODF檢測過程,CPU配置SPI控制器為主機並且不使能MODF ;2)、CPU寫操作波特率寄存器配置SCLK波特率參數;3)、CPU寫操作控制寄存器配置SPI傳輸參數;4)、CPU配置SS管腳為GPIO功能,將GPIO配置為輸出狀態(軟體操作控制);5)、CPU控制GPIO輸出低電平選擇從機準備開始SPI傳輸(軟體操作控制);6)、CPU將需要發送的數據寫入SPI控制器中的發送數據緩存器,該寫操作將啟動SPI傳輸;7)、如果CPHA=O則執行步驟8),否則,如果CPHA=I則執行步驟10);8)、每傳輸完一個數據後,將模擬SS輸出的GPIO拉高(高電平),如果SPI控制器中的發送數據緩存器中還有數據要傳輸,則延時一段時間後(SS高電平保持時間)將模擬SS輸出的GPIO拉低(低電平),開始下一個數據傳輸,以此類推,直到傳輸完發送數據緩存器裡面的數據;等待傳輸完成後,CPU讀取接收數據緩存器中的數據,如果需要繼續傳輸則執行步驟5),開始下一次傳輸,否則傳輸完成;其中模擬SS輸出的GPIO拉高時間、延時時間和拉低時間需軟體人員控制以滿足SPI傳輸時序要求(軟體操作控制);9)、等待發送數據緩存器裡面的所有數據傳輸完成後,CPU讀取接收數據緩存器中的數據,如果需要繼續傳輸則執行步驟5),開始下一次傳輸,否則將模擬SS輸出的GPIO拉高,完成傳輸(軟體操作控制)。
因此,不管SPI控制器被配置為主機還是從機,接收數據緩存器存滿數據後,不管接收到的數據有無實際用途,接收數據緩存器中的數據都必須及時被讀走,否則接下來的數據就不能寫進接收數據緩存器,大大增加了軟體開銷、以及對CPU資源的佔用,同時,增加了軟體設計人員的負擔。

發明內容本發明要解決的技術問題在於減少CPU操作SPI控制器時所需的軟體控制,從而提高CPU的使用率。為此,本發明一方面提供一種SPI控制器,包括內部總線接口模塊,用於經內部總線實現CPU操作SPI控制器、寄存器模塊,接收通過內部總線接口模塊傳輸的CPU對SPI控制器的配置、數據轉換模塊,用於輸出數據並串轉換和輸入數據串並轉換、狀態與中斷控制模塊,用於報告SPI控制器的狀態和產生中斷,還包括有限狀態機,用於根據寄存器模塊中控制寄存器寄存的SPI傳輸參數和波特率寄存器寄存的SCLK波特率參數產生SS和SCLK輸出;發送和接收數據緩存器,分別用於緩存待傳輸和接收到的數據;所述有限狀態機包括空閒、開始、傳輸和結束四個狀態。進一步地,所述SPI控制器還包括發送數據緩存器和接收數據緩存器,所述接收數據緩存器用於緩存SPI控制器接收到的數據;所述接收數據緩存器,進行如下控制接收數據緩存器中數據存滿後,當有新數據寫入接收數據緩存器時,最先寫入的數據被最先寫入的數據之後的數據覆蓋,依次類推,最後寫入的數據之前的數據被最後寫入的數據覆蓋,進而形成一數據空間存儲寫入的新數據。進一步地,所述數據轉換模塊包括輸出數據並串轉換單元和輸入數據串並轉換單元,所述輸出數據並串轉換單元用於讀取發送數據緩存器中的並行數據後進行並串轉換後輸出,其中,當SPI控制器被配置為主機時,輸出至MOSI信號線;反之,當SPI控制器被配置為從機時,輸出至MISO信號線;所述輸入數據串並轉換單元用於將輸入串行數據進行串並轉換後寫入接收數據緩存器,其中,當SPI控制器被配置為主機時,輸入為MISO信號線;反之,當SPI控制器被配置為從機時`,輸入為MOSI信號線。進一步地,所述寄存器模塊包括控制寄存器和波特率寄存器,所述控制寄存器用於接收並寄存CPU配置SPI傳輸參數;所述波特率寄存器用於接收並寄存CPU配置SCLK時鐘波特率參數。進一步地,所述傳輸參數包括SPIE (SPI Enable, SPI 使能)、MSS (Master SlaveSelect,主從選擇,其中 『I』 為主、『O,為從)、CPHA、CPOL、MODFEN 和 DataSize。進一步地,所述CPHA和CPOL傳輸參數,支持8位、16位或32位的數據傳輸、最高位先傳輸或者最低位先傳輸。本發明另一方面還提供一種SPI控制器的通信方法,包括,S1、系統復位,有限狀態機處於空閒狀態,SS輸出高電平,SCLK輸出即CPOL ;S2、CPU配置SPI控制器為主機,不使能M0DF,使能SPI控制器,SPI控制器為主機並等待SPI傳輸;S3、CPU將待傳輸的數據寫入發送數據緩存器,寫操作將啟動SPI傳輸;S4、有限狀態機保持空閒狀態,當檢測到遞增計數器計數為ClockNumber/2-l,有限狀態機進入開始狀態,並將SS輸出低電平開始SPI傳輸;S5、有限狀態機保持開始狀態,當遞增計數器計數到ClockNumber/2-l時SCLK輸出翻轉,同時SS輸出低電平;S6、有限狀態機處於傳輸狀態直至數據傳輸結束,進入結束狀態;進一步地,還包括,S7、有限狀態機保持在結束狀態到遞增計數器計數到ClockNumber/2-l,之後有限狀態機進行狀態轉換S8、當CPHA=O,有限狀態機進入空閒狀態,同時SS輸出高電平並結束當前SPI傳輸、等待下次SPI傳輸;S9、當CPHA=O,如果發送數據緩存器中仍存有數據,有限狀態機進入傳輸狀態,同時保持SS輸出低電平開始下次SPI傳輸;反之,如果發送數據緩存器中無數據,有限狀態機進入空閒狀態,同時SS輸出高電平並結束當前SPI傳輸、等待下次SPI傳輸。其中,步驟S1-S9為有限狀態機的工作流程。進一步地,所述SPI傳輸為S10, CPU配置SPI控制器為主機,並判斷SPI主機系統類型;S11、當為多SPI 主機系統,檢測MODF,CPU配置SPI控制器使能MODF,SPI控制器配置SS為輸入並檢測SS輸入電平SS為低,有其他的SPI主機操作SPI總線,此時SPI控制器硬體自動配置為從機,並向CPU報告MODF ;SS為高,沒有其他的SPI主機操作SPI總線,SPI控制器可以配置為主機並開始SPI傳輸,CPU配置SPI控制器不使能MODF,SPI控制器配置SS為輸出,準備SPI傳輸;當為單SPI主機系統,CPU配置不使能MODF,SPI控制器配置SS為輸出,準備SPI傳輸;S12、CPU寫操作波特率寄存器配置SCLK波特率參數;S13、CPU寫操作控制寄存器配置SPI傳輸參數;S14、CPU將待傳輸的數據寫入發送數據緩存器;數據轉換模塊將發送數據緩存器中的數據讀出進行並串轉換後輸出至MOSI,同時將輸入MISO進行串並轉換後寫入到接收數據緩存器;S15、持續SPI控制器數據傳輸;S16、當發送數據緩存器中還有數據,需繼續傳輸執行步驟S14,並開始下次傳輸,否則傳輸結束。進一步地,S17、CPU讀取接收數據緩存器裡面接收到的數據。本發明提供的改進型SPI控制器,I)當被配置為主機時,SS輸出完全由SPI控制器硬體自動控制,無需軟體控制模擬SS輸出,2)接收數據緩存器中數據的讀取是可選的,減少了不必要的CPU讀取接收數據緩存器操作,這兩點大大減少CPU操作SPI控制器時所需的軟體控制,從而提高CPU的使用率。

圖1示出現有技術的SPI總線的連接示意圖。圖2示出現有技術的SPI控制器控制SS的示意圖。
圖3示出現有技術的SPI控制器接收緩存控制器的工作原理圖。圖4示出本發明的SPI控制器的結構框架圖。圖5示出本發明的SPI控制器控制SS的示意圖。圖6示出本發明的SPI控制器的有限狀態機的轉換圖。圖7示出本發明的SPI控制器接收緩存控制器的工作原理圖。圖8示出本發明的CPHA=O時的SPI傳輸時序圖。圖9示出本發明的CPHA=I時的SPI傳輸時序圖。
具體實施方式下面結合附圖和具體實施例對本發明作進一步詳細說明。本發明提供一種SPI控制器,如圖4所示,包括內部總線接口模塊,用於經內部總線實現CPU操作SPI控制器、寄存器模塊,接收通過內部總線接口模塊傳輸的CPU對SPI控制器的配置、數據轉換模塊,用於輸出數據並串轉換和輸入數據串並轉換、狀態與中斷控制模塊,用於報告SPI控制器的狀態和產生中斷,其特徵在於,還包括有限狀態機,用於根據寄存器模塊中控制寄存器寄存的SPI傳輸參數和波特率寄存器寄存的SCLK波特率參數產生SS和SCLK輸出;發送和接收數據緩存器,分別用於緩存待傳輸和接收到的數據;上述有限狀態機包括空閒、開始、傳輸和結束四個狀態。如圖5所示,為SPI控制器的SS端連接示意圖,CPUl通過內部總線2與SPI控制器3連接,SPI控制器控制SS工作原理如下I)、當CPU配置SPI控制器為從機時SPI控制器硬體自動配置SS管腳為輸入,並連接到外部的SPI主機的SS輸出,此狀態下只有當SS輸入為低時,SPI控制器才與外部的SPI主機進行通信;2)、當CPU配置SPI控制器為主機時a)、當為單SPI主機系統,不需檢測MODF (Mode Fault,模式錯誤即多個SPI主機同時操作SPI總線),CPU配置SPI控制器不使能M0DF,即MODFEN=O), SPI控制器硬體自動配置SS管腳為輸出,SS輸出電平由SPI控制器根據SPI傳輸參數硬體控制,上述傳輸參數如 CPHA (Clock Phase,時鐘相位)和 CPOL (Clock Polarity,時鐘極性);b)、當為多SPI主機系統,需檢測MODF,CPU配置SPI控制器使能MODF即MODFEN=I,SPI控制器硬體自動配置SS管腳為輸入,SPI控制器檢測SS輸入如果SS輸入為低電平,則有其他的SPI主機正在操作SPI總線,SPI控制器硬體自動配置為從機,並向CPU報告MODF ;相反,如果SS輸入為高,則沒有其他的SPI主機在操作SPI總線,SPI控制器可以工作在主機模式,之後CPU配置SPI控制器不使能M0DF,即MODFEN=O, SPI控制器硬體自動配置SS管腳為輸出,SS輸出電平由SPI控制器根據SPI傳輸參數硬體控制,上述傳輸參數如CPHA 和 CPOL。如圖6所示,為有限狀態機的轉換圖,上述有限狀態機包括空閒、開始、傳輸和結束四個狀態。本發明提供的改進型SPI 控制器,I)當被配置為主機時,SS輸出完全由SPI控制器硬體自動控制,無需軟體控制模擬SS輸出,2)接收數據緩存器中數據的讀取是可選的,減少了不必要的CPU讀取接收數據緩存器操作,減少CPU操作SPI控制器時所需的軟體控制,從而提高CPU的使用率。進一步地,上述SPI控制器還包括發送數據緩存器和接收數據緩存器,上述接收數據緩存器用於緩存SPI控制器接收到的數據;上述接收數據緩存器,進行如下控制接收數據緩存器中數據存滿後,當有新數據寫入接收數據緩存器時,最先寫入的數據被最先寫入的數據之後的數據覆蓋,依次類推,最後寫入的數據之前的數據被最後寫入的數據覆蓋,進而形成一數據空間存儲寫入的新數據。如圖7所示,本發明SPI控制器接收數據緩存器工作原理為,初始接收數據緩存器中沒有數據,為空狀態,之後將寫入的數據依次存儲到相應的位置,假設接收數據緩存器最大容量為N,則當存儲N個數據後,接收數據緩存器中即存滿了數據,為滿狀態。若SPI控制器接收新的數據並寫入接收數據緩存器,此時,數據I會覆蓋最先寫入的數據0,同理,數據2覆蓋數據1,依次類推,數據N覆蓋數據N-1,這樣將在地址N上產生一空間可用於存儲寫入的新數據。因此,即保證先進先出,又在存滿數據後,將新的數據寫入並覆蓋之前寫入的數據。本發明提供的改進型SPI控制器,接收數據緩存器中數據的讀取是可選的如果有實際用途,則讀走,否則可以不進行讀操作,這樣後續接收到的數據會自動覆蓋掉接收數據緩存器中已經寫入的數據,減少了不必要的CPU讀取接收數據緩存器操作,同時減少CPU操作SPI控制器時所需的軟體控制,從而提高CPU的使用率。進一步地,上述數據轉換模塊包括輸出數據並串轉換單元和輸入數據串並轉換單元,上述輸出數據並串轉換單元用於讀取發送數據緩存器中的並行數據後進行並串轉換後輸出,其中,當SPI控制器被配置為主機時,輸出至MOSI信號線;反之,當SPI控制器被配置為從機時,輸出至MISO信號線;上述輸入數據串並轉換單元用於將輸入串行數據進行串並轉換後寫入接收數據緩存器,其中,當SPI控制器被配置為主機時,輸入為MISO信號線;反之,當SPI控制器被配置為從機時,輸入為MOSI信號線。進一步地,上述寄存器模塊包括控制寄存器和波特率寄存器,上述控制寄存器用於接收並寄存CPU配置SPI傳輸參數;上述波特率寄存器用於接收並寄存CPU配置SCLK時鐘波特率參數。其中,上述傳輸參數包括SPIE (SPI Enable,SPI 使能)、MSS (Master SlaveSelect,主從選擇:『I,為主、『O,為從)、CPHA, CPOL, MODFEN (模式錯誤使能)和DataSize(數據位寬選擇『00,表示8-bit,『01,表示16-bit, 『10,表示32-bit)。上述狀態與中斷控制模塊,用於報告SPI控制器的工作狀態和產生中斷,包括TxFIFOEmpty (發送數據緩存器空標誌)、TxFIF0Ful I (發送數據緩存器滿標誌)、RxFIFOEmpty(接收數據緩存器空標誌)、RxFIFOFull (接收數據緩存器滿標誌)和M0DF。SPI控制器可支持不同組合的CPHA和CPOL傳輸參數,支持8位、16位和32位的數據傳輸,以及支持最高位先傳輸MLFS=I或者最低位先傳輸MLFS=O。其中,MLFS(MSB LSBFirst Select,高低位選擇『I』為MSB First最高位先傳輸,『0』為LSB First最低位先傳輸)。本發明另一方面針對SPI控制器還提供一種SPI控制器的通信方法,包括,S1、系統復位,有限狀態機處於空閒狀態,SS輸出高電平,SCLK輸出即CPOL ;S2、CPU配置SPI控制器為主機MSS=I,不使能MODF (M0DFFEN=0),使能SPI控制器(SPIEN=I),SPI控制器為主機並等待SPI傳輸;S3、CPU將要傳輸的數據寫入發送數據緩存器,該寫操作將啟動SPI傳輸SPI控制器檢測到發送數據緩存器中有數據(TxFIFOEmpty=O)就讀出發送數據緩存器中的數據並啟動SPI傳輸;S4、有限狀態機保持空閒狀態,當檢測到遞增計數器計數為ClockNumber/2-l,有限狀態機處於開始狀態,並將SS輸出低電平開始SPI傳輸;S5、有限狀態機保持開始狀態,當遞增計數器計數到ClockNumber/2-l時SCLK輸出翻轉,以產生SCLK時鐘輸出,同時SS輸出低電平,ClockNumber (波特率數值);S6、有限狀態機處於傳輸狀態直至數據傳輸結束,進入結束狀態;進一步地,還包括,S7、有限狀態機保持在結束狀態到遞增計數器計數到ClockNumber/2-l,之後有限狀態機進行狀態轉換S8、如圖8所示,當CPHA=O,有限狀態機進入空閒狀態,同時SS輸出高電平並結束當前SPI傳輸、等待下次SPI傳輸;S9、如圖9所示,當CPHA=I,如果發送數據緩存器中仍存有數據,有限狀態機進入傳輸狀態,同時保持SS輸出低電平開始下次SPI傳輸;反之,如果發送數據緩存器中無數據,有限狀態機進入空閒狀態,同時SS輸出高電平並結束當前SPI傳輸、等待下次SPI傳輸。其中,上述SPI傳輸為S10, CPU配置SPI控制器為主機,並判斷SPI主機系統類型;S11、當為多SPI主機系統,需檢測MODF,CPU配置SPI控制器使能MODF,SPI控制器配置SS為輸入並檢測SS輸入電平SS為低電平,有其他的SPI主機操作SPI總線,此時SPI控制器硬體自動配置為從機,並向CPU報告MODF ;SS為高電平,沒有其他的SPI主機操作SPI總線,SPI控制器可以配置為主機並開始SPI傳輸,CPU配置SPI控制器不使能MODF,SPI控制器配置SS為輸出,準備SPI傳輸;當為單SPI主機系統,CPU配置不使能MODF,SPI控制器配置SS為輸出,準備SPI傳輸;S12、CPU寫操作波特率寄存器配置SCLK波特率參數;SCLK時鐘頻率=系統時鐘頻率/波特率寄存器的值,其中,最低位永遠為0,即波特率寄存器的值為偶數,系統時鐘頻率為SPI控制器所掛的內部總線接口時鐘工作頻率。S13、CPU寫操作控制寄存器配置SPI傳輸參數,如CPHA、CPOL ;S14、CPU將待傳輸的數據寫入發送數據緩存器;數據轉換模塊將發送數據緩存器中的數據讀出進行並串轉換後輸出至M0SI,同時將輸入MISO進行串並轉換後寫入到接收數據緩存器;S15、持續SPI控制器數據傳輸;S16、當發送數據緩存器中還有數據,需繼續傳輸執行步驟S14,並開始下次傳輸,否則傳輸結束。S17、CPU讀取接收數據緩存器裡面接收到的數據。其中,步驟S17可選擇性的應用;步驟S10-S17是CPU操作SPI控制器實現SPI傳輸的流程。以上所述本發明的具體實施方式
,並不構成對本發明保護範圍的限定。任何根據本發明的技術構思所作出的各種其他相應的改變與變形,均應包含在本發明權利要求的保護範圍內。
權利要求
1.一種SPI控制器,包括內部總線接口模塊,用於經內部總線實現CPU操作SPI控制器、寄存器模塊,接收通過內部總線接口模塊傳輸的CPU對SPI控制器的配置、數據轉換模塊,用於輸出數據並串轉換和輸入數據串並轉換、狀態與中斷控制模塊,用於報告SPI控制器的狀態和產生中斷,其特徵在於,還包括有限狀態機,用於根據寄存器模塊中控制寄存器寄存的SPI傳輸參數和波特率寄存器寄存的SCLK波特率參數產生SS和SCLK輸出;發送和接收數據緩存器,分別用於緩存待傳輸和接收到的數據; 所述有限狀態機包括空閒、開始、傳輸和結束四個狀態。
2.根據權利要求1所述的SPI控制器,其特徵在於,所述SPI控制器還包括發送數據緩存器和接收數據緩存器,所述接收數據緩存器用於緩存SPI控制器接收到的數據; 所述接收數據緩存器,進行如下控制接收數據緩存器中數據存滿後,當有新數據寫入接收數據緩存器時,最先寫入的數據被最先寫入的數據之後的數據覆蓋,依次類推,最後寫入的數據之前的數據被最後寫入的數據覆蓋,進而形成一數據空間存儲寫入的新數據。
3.根據權利要求2所述的SPI控制器,其特徵在於,所述數據轉換模塊包括輸出數據並串轉換單元和輸入數據串並轉換單元, 所述輸出數據並串轉換單元用於讀取發送數據緩存器中的並行數據後進行並串轉換後輸出,其中,當SPI控制器被配置為主機時,輸出至MOSI信號線;反之,當SPI控制器被配置為從機時,輸出至MISO信號線; 所述輸入數據串並轉換單元用於將輸入串行數據後進行串並轉換寫入接收數據緩存器,其中,當SPI控制器被配置為主機時,輸入為MISO信號線;反之,當SPI控制器被配置為從機時,輸入為MOSI信號線。
4.根據權利要求1所述的SPI控制器,其特徵在於,所述寄存器模塊包括控制寄存器和波特率寄存器,所述控制寄存器用於接收並寄存CPU配置SPI傳輸參數;所述波特率寄存器用於接收並寄存CPU配置SCLK時鐘波特率參數。
5.根據權利要求4所述的SPI控制器,其特徵在於,所述傳輸參數包括SPIE、MSS、CPHA、CPOL、MODFEN 和 DataSize。
6.根據權利要求5所述的SPI控制器,其特徵在於,所述CPHA和CPOL傳輸參數,支持8位、16位或32位的數據傳輸、最高位先傳輸或者最低位先傳輸。
7.—種SPI控制器的通信方法,其特徵在於,包括, 51、系統復位,有限狀態機處於空閒狀態,SS輸出高電平,SCLK輸出即CPOL; 52、CPU配置SPI控制器為主機,不使能M0DF,使能SPI控制器,SPI控制器為主機並等待SPI傳輸; 53、CPU將待傳輸的數據寫入發送數據緩存器,寫操作將啟動SPI傳輸; 54、有限狀態機保持空閒狀態,當檢測到遞增計數器計數為ClockNumber/2-l,有限狀態機進入開始狀態,並將SS輸出低電平開始SPI傳輸; 55、有限狀態機保持開始狀態,當遞增計數器計數到ClockNumber/2-l時SCLK輸出翻轉,同時SS輸出低電平; 56、有限狀態機處於傳輸狀態直至數據傳輸結束,進入結束狀態。
8.根據權利要求7所述的SPI控制器的通信方法,其特徵在於,還包括, S7、有限狀態機保持在結束狀態到遞增計數器計數到ClockNumber/2-l,之後有限狀態機進行狀態轉換 ·58、當CPHA=O,有限狀態機進入空閒狀態,同時SS輸出高電平並結束當前SPI傳輸、等待下次SPI傳輸; ·59、當CPHA=O,如果發送數據緩存器中仍存有數據,有限狀態機進入傳輸狀態,同時保持SS輸出低電平開始下次SPI傳輸;反之,如果發送數據緩存器中無數據,有限狀態機進入空閒狀態,同時SS輸出高電平並結束當前SPI傳輸、等待下次SPI傳輸。
9.根據權利要求8所述的SPI控制器的通信方法,其特徵在於,所述SPI傳輸為 510、CPU配置SPI控制器為主機,並判斷SPI主機系統類型; 511、當為多SPI主機系統,檢測MODF,CPU配置SPI控制器使能MODF,SPI控制器配置SS為輸入並檢測SS輸入電平SS為低,有其他的SPI主機操作SPI總線,此時SPI控制器硬體自動配置為從機,並向CPU報告MODF ;SS為高,沒有其他的SPI主機操作SPI總線,SPI控制器可以配置為主機並開始SPI傳輸,CPU配置SPI控制器不使能M0DF,SPI控制器配置SS為輸出,準備SPI傳輸; 當為單SPI主機系統,CPU配置SPI控制器為主機並且不使能MODF,SPI控制器配置SS為輸出,準備SPI傳輸; 512、CPU寫操作波特率寄存器配置SCLK波特率參數; 513、CPU寫操作控制寄存器配置SPI傳輸參數; 514、(PU將待傳輸的數據寫入發送數據緩存器;數據轉換模塊將發送數據緩存器中的數據讀出後進行並串轉換後輸出至M0SI,同時輸入MISO進行串並轉換後寫入到接收數據緩存器; 515、持續SPI控制器數據傳輸; 516、當發送數據緩存器中還有數據,需繼續傳輸執行步驟S14,並開始下次傳輸,否則傳輸結束。
10.根據權利要求9所述的SPI控制器的通信方法,其特徵在於,S17、CPU讀取接收數據緩存器裡面接收到的數據。
全文摘要
本發明涉及一種SPI控制器,包括內部總線接口模塊,寄存器模塊,數據轉換模塊,狀態與中斷控制模塊,發送和接收數據緩存器,還包括有限狀態機,用於根據寄存器模塊中控制寄存器寄存的SPI傳輸參數和波特率寄存器寄存的SCLK波特率參數產生SS和SCLK輸出。本發明提供的改進型SPI控制器,1)當被配置為主機時,SS輸出完全由SPI控制器硬體自動控制,無需軟體控制模擬SS輸出,2)接收數據緩存器中數據的讀取是可選的,減少了不必要的CPU讀取接收數據緩存器操作,上述兩點大大減少CPU操作SPI控制器時所需的軟體控制,從而提高CPU的使用率。
文檔編號G06F13/20GK103064805SQ201210572669
公開日2013年4月24日 申請日期2012年12月25日 優先權日2012年12月25日
發明者段長江, 聶澤東 申請人:深圳先進技術研究院

同类文章

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

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有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-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀