TWI394050B - 基於串列週邊介面匯流排的設備及其資料傳輸方法 - Google Patents
基於串列週邊介面匯流排的設備及其資料傳輸方法 Download PDFInfo
- Publication number
- TWI394050B TWI394050B TW98133052A TW98133052A TWI394050B TW I394050 B TWI394050 B TW I394050B TW 98133052 A TW98133052 A TW 98133052A TW 98133052 A TW98133052 A TW 98133052A TW I394050 B TWI394050 B TW I394050B
- Authority
- TW
- Taiwan
- Prior art keywords
- host
- slave
- internal clock
- controller
- data
- Prior art date
Links
- 230000005540 biological transmission Effects 0.000 title claims description 54
- 238000000034 method Methods 0.000 title claims description 14
- 230000002093 peripheral effect Effects 0.000 title claims description 12
- 239000000872 buffer Substances 0.000 claims description 65
- 230000003139 buffering effect Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 17
- 239000013078 crystal Substances 0.000 description 4
- 230000000630 rising effect Effects 0.000 description 4
- 235000015429 Mirabilis expansa Nutrition 0.000 description 2
- 244000294411 Mirabilis expansa Species 0.000 description 2
- 235000013536 miso Nutrition 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Landscapes
- Information Transfer Systems (AREA)
Description
本發明涉及一種串列資料傳輸設備及其資料傳輸方法,尤其關於一種基於串列週邊介面匯流排的設備及其資料傳輸方法。
串列週邊介面(Serial Peripheral Interface,SPI)是一種串列同步通訊介面。利用該介面,主設備(即主機)可以與一個或多個從設備(即從機)以串列方式進行資料傳輸。
傳統的SPI匯流排系統基於主設備提供給從設備的串列時鐘訊號進行資料傳輸,每個串列時鐘週期發送1比特資料。適當地提高串列時鐘訊號的頻率,可以獲得較高的資料傳輸速率。例如,當串列時鐘訊號頻率為8MHz時,資料傳輸速率為8Mbps,當串列時鐘訊號頻率提高到16MHz時,資料傳輸速率提高到16Mbps。然而,串列時鐘訊號的頻率是受限的,不能任意提高。例如,為了保證訊號完整性,最高串列時鐘訊號的頻率為32MHz。相對應地,傳統的SPI匯流排系統的資料傳輸速率也受到了限制。例如,當最高串列時鐘訊號的頻率為32MHz時,最高資料傳輸速率只能達到32Mbps。
另一方面,目前絕大多數的SPI匯流排系統使用的是傳統的SPI匯流排,為了與傳統的SPI匯流排系統進行資料傳輸,相容性問題不容忽視。
鑒於以上內容,有必要提供一種基於串列週邊介面(SPI)匯流排的設備及其資料傳輸方法,能夠實現高速率的資料傳輸,並且相容習知技術的SPI匯流排系統。
一種基於SPI匯流排的主機控制器,可以與基於SPI匯流排的從機控制器進行資料傳輸,該主機控制器包括:主機時鐘產生單元,用於生成主機內部時鐘;從機選擇單元,用於選擇與主機控制器進行資料傳輸的從機控制器;主機時鐘分頻單元,用於將主機內部時鐘二分頻生成串列時鐘訊號,並將該串列時鐘訊號發送給選擇的從機控制器;主機時鐘計數單元,用於對主機內部時鐘計數;主機位址緩衝區,用於緩存發送給選擇的從機控制器的目標位址;主機輸出資料緩衝區,用於緩存發送給選擇的從機控制器的有效資料;主機輸出控制邏輯單元,用於生成讀/寫操作控制符,從主機位址緩衝區讀取發送給選擇的從機控制器的目標位址,從主機輸出資料緩衝區讀取發送給選擇的從機控制器的有效資料,並根據主機內部時鐘及主機內部時鐘計數值按照指定的順序將讀/寫操作控制符、目標位址以及有效資料發送給選擇的從機控制器,所述讀/寫操作控制符用於控制選擇的從機控制器執行相對應的讀/寫操作;及主機輸入控制邏輯單元,用於根據主機內部時鐘及主機內部時鐘計數值接收選擇的從機控制器發送來的有效資料,並將接收的有效資料緩存到主機輸入資料緩衝區。
一種基於串列週邊介面(SPI)匯流排的資料傳輸方法,用於在主機控制器與從機控制器之間進行資料傳輸,該方法包括步驟:主機控制器生成主機內部時鐘;主機控制器選擇進行資料傳輸的從機控制器;主機控制器將主機內部時鐘二分頻生成串列時鐘訊號,並將該串列時鐘訊號發送給選擇的從機控制器;從機控制器將串列時鐘訊號二倍頻生成從機內部時鐘;主機控制器對主機內部時鐘計數,從機控制器對從機內部時鐘計數;主機控制器根據主機內部時鐘計數值以及主機內部時鐘按照指定的順序發送讀/寫操作控制符及目標位址,從機控制器根據從機內部時鐘計數值以及從機內部時鐘接收該讀/寫操作控制符及目標位址;與寫操作控制符相對應地,主機控制器根據主機內部時鐘計數值以及主機內部時鐘按照指定的順序發送有效資料,從機控制器根據從機內部時鐘計數值以及從機內部時鐘接收有效資料並將該有效資料寫入目的位址指定的儲存單元,或者與讀操作控制符相對應地,從機控制器從目標位址指定的儲存單元讀取有效資料,並根據從機內部時鐘及從機內部時鐘計數值將該有效資料按照指定的順序發送給主機控制器,主機控制器根據主機內部時鐘及主機內部時鐘計數值接收該有效資料;及主機控制器結束對從機控制器的選擇。
本發明將主機控制器及從機控制器的內部時鐘的頻率加倍,利用多個控制邏輯單元協調主機控制器與從機控制器之間的資料傳輸,每半個串列時鐘週期傳輸1比特資料,實現了高速率的資料傳輸。並且,本發明支持單倍速的資料傳輸,以相容習知技術的SPI匯流排系統。
參閱圖1所示,係串列週邊介面(Serial Peripheral Interface,SPI)匯流排系統較佳實施例的系統架構圖。該SPI匯流排系統10包括主機控制器11及一個或者多個從機控制器,例如從機控制器12A-12D。主機控制器11與從機控制器12A-12D之間透過SPI匯流排13進行資料傳輸。所述SPI匯流排13包括串列時鐘訊號線14、主機輸出/從機輸入資料線15、主機輸入/從機輸出資料線16以及從機選擇訊號線17A-17D。所述串列時鐘訊號線14傳輸串列時鐘訊號(SCLK),所述主機輸出/從機輸入資料線15傳輸主機控制器11發送給從機控制器12A-12D的資料(MOSI),所述主機輸入/從機輸出資料線16傳輸從機控制器12A-12D發送給主機控制器11的資料(MISO),所述從機選擇訊號線17A-17D傳輸從機選擇訊號(/SS1-/SS4)。SPI匯流排系統10的工作方式包括寫操作及讀操作。主機控制器11擁有SPI匯流排控制的主動權,讀、寫操作都由主機控制器11發起。進行寫操作時,主機控制器11將目標位址及有效資料發送給從機控制器12A-12D,從機控制器12A-12D將有效資料寫入目標位址指定的儲存單元。進行讀操作時,主機控制器11將目標位址發送給從機控制器12A-12D,從機控制器12A-12D從目標位址指定的儲存單元讀取有效資料,並把有效資料返回給主機控制器11。
參閱圖2所示,係圖1中主機控制器11的細化架構圖。所述主機控制器11包括主機時鐘產生單元200、從機選擇單元210、主機時鐘分頻單元220、主機時鐘計數單元230、主機位址緩衝區240、主機輸出資料緩衝區250、主機輸入資料緩衝區260、主機輸出控制邏輯單元270及主機輸入控制邏輯單元280。
所述主機時鐘產生單元200生成主機內部時鐘,並將該主機內部時鐘輸出給從機選擇單元210、主機時鐘分頻單元220、主機時鐘計數單元230、主機輸出控制邏輯單元270及主機輸入控制邏輯單元280。主機內部時鐘用於對從機選擇單元210、主機時鐘分頻單元220、主機時鐘計數單元230、主機輸出控制邏輯單元270及主機輸入控制邏輯單元280輸出的訊號進行同步。在本實施例中,主機時鐘產生單元200根據外部電路(例如外部的晶振電路)提供的系統時鐘生成主機內部時鐘。例如,假設外部的晶振電路提供的系統時鐘的頻率為16MHz,主機控制器11需要64MHz的主機內部時鐘,則主機時鐘產生單元200將系統時鐘四倍頻,從而生成64MHz的主機內部時鐘。
所述從機選擇單元210產生從機選擇訊號並由從機選擇訊號線17A-17D發送給從機控制器12A-12D,以指示從機控制器12A-12D是否與主機控制器11進行資料傳輸。具體而言,當主機控制器11與從機控制器12A、12B、12C或12D進行資料傳輸時,從機選擇單元210將相對應的從機選擇訊號置為有效,當資料傳輸完畢後,從機選擇單元210將相對應的從機選擇訊號置為無效。在本實施例中,主機控制器11發送給從機控制器12A、12B、12C及12D的從機選擇訊號分別是/SS1、/SS2、/SS3及/SS4。假設從機選擇訊號低電平有效,若主機控制器11選擇與從機控制器12B進行資料傳輸,則從機選擇單元210將/SS2置為低電平,將/SS1、/SS3及/SS4置為高電平。當主機控制器11與從機控制器12B的資料傳輸完畢後,從機選擇單元200將從機選擇訊號/SS2置為高電平。在本實施例中,從機選擇單元200根據外部設備(例如處理器)提供的選擇控制訊號產生從機選擇訊號/SS1、/SS2、/SS3及/SS4。
所述主機時鐘分頻單元220將主機內部時鐘二分頻生成串列時鐘訊號,並將該串列時鐘訊號由串列時鐘訊號線14發送給從機控制器12A-12D。顯然地,主機內部時鐘的頻率是串列時鐘訊號的二倍。
所述主機時鐘計數單元230對主機內部時鐘計數,並將主機內部時鐘計數值輸出給從機選擇單元210、主機輸出控制邏輯單元270及主機輸入控制邏輯單元280。從機選擇單元210根據主機時鐘計數單元230的主機內部時鐘計數值判斷是否資料傳輸完畢。例如,假設需要在主機控制器11與從機控制器12之間傳輸32比特資料,每個主機內部時鐘週期傳輸1比特資料,並且每經過一個主機內部時鐘週期將主機內部時鐘計數值加1,若主機時鐘計數單元230從0開始計數,則計數到31時表明資料傳輸完畢。主機時鐘計數單元230可以設置為每經過一個主機內部時鐘週期將主機內部時鐘計數值加1,或者每經過兩個主機內部時鐘週期將主機內部時鐘計數值加1,從而控制主機控制器11與從機控制器12的資料傳輸速率。具體而言,當需要以兩倍速(即為串列時鐘訊號頻率兩倍的速率)傳輸資料時,主機時鐘計數單元230每經過一個主機內部時鐘週期將主機內部時鐘計數值加1;當需要以單倍速(即與串列時鐘訊號頻率相同的速率)傳輸資料時,主機時鐘計數單元230每經過兩個主機內部時鐘週期將主機內部時鐘計數值加1。在本實施例中,主機時鐘計數單元230根據外部設備提供的計數方式控制訊號設置其工作方式。例如,當計數方式控制訊號為1時,每經過兩個主機內部時鐘週期主機時鐘計數單元230將主機內部時鐘計數值加1;當計數方式控制訊號為0時,每經過1個主機內部時鐘週期主機時鐘計數單元230將主機內部時鐘計數值加1。
所述主機位址緩衝區240提供儲存空間,緩存發送給從機控制器12A-12D的目標位址;所述主機輸出資料緩衝區250提供儲存空間,緩存發送給從機控制器12A-12D的有效資料。在本實施例中,主機位址緩衝區240接收外部設備提供的有效資料,主機輸出資料緩衝區250接收外部設備提供的目標位址。進一步地,主機位址緩衝區240利用兩條位址匯流排接收外部設備提供的目標位址,主機輸出資料緩衝區250利用兩條資料匯流排接收外部設備提供的有效資料。
所述主機輸出控制邏輯單元270生成讀/寫操作控制符,從主機位址緩衝區240讀取發送給從機控制器12A-12D的目標位址,從主機輸出資料緩衝區250讀取發送給從機控制器12A-12D的有效資料,並根據主機內部時鐘及主機內部時鐘計數值按照指定的順序將讀/寫操作控制符、目標位址以及有效資料由主機輸出/從機輸入資料線15發送給從機控制器12A-12D。對於寫操作,主機輸出控制邏輯單元270生成寫操作控制符;對於讀操作,主機輸出控制邏輯單元270生成讀操作控制符。主機輸出控制邏輯單元270在主機內部時鐘的跳變沿發送資料。例如,在每個主機內部時鐘的上升沿發送1比特資料。或者,在每個主機內部時鐘的下降沿發送1比特資料。
所述主機輸入控制邏輯單元280根據主機內部時鐘及主機內部時鐘計數值接收從機控制器12A-12D由主機輸入/從機輸出資料線16發送的有效資料,並將接收的有效資料緩存到主機輸入資料緩衝區260。主機輸入控制邏輯單元280在主機內部時鐘的跳變沿接收資料。例如,在每個主機內部時鐘的上升沿接收1比特資料。或者,在每個主機內部時鐘的下降沿接收1比特資料。
在本實施例中,主機輸出控制邏輯單元270及主機輸入控制邏輯單元280根據外部設備提供的讀/寫控制訊號執行讀/寫操作。當收到寫控制訊號時,主機輸出控制邏輯單元270生成寫操作控制符,並將寫操作控制符、目標位址及有效資料發送給從機控制器12A-12D;當收到讀控制訊號時,主機輸出控制邏輯單元270生成讀操作控制符,並將讀操作控制符、目標位址發送給從機控制器12A-12D,主機輸入控制邏輯單元280接收從機控制器12A-12D返回的有效資料並緩存到主機輸入資料緩衝區260。
參閱圖3所示,係圖1中的從機控制器的細化架構圖。從機控制器12A-12D包括從機時鐘倍頻單元300、從機時鐘計數單元310、從機輸入控制邏輯單元320、從機輸出控制邏輯單元330、從機位址緩衝區340、從機輸入資料緩衝區350、從機輸出資料緩衝區360、從機操作控制邏輯單元370及從機目標記憶體380。
所述從機時鐘倍頻單元300由串列時鐘訊號線14接收主機控制器發送的串列時鐘訊號,將該串列時鐘訊號二倍頻生成從機內部時鐘,並將該從機內部時鐘輸出給從機時鐘計數單元310、從機輸入控制邏輯單元320及從機輸出控制邏輯單元330。與主機內部時鐘相類似地,從機內部時鐘用於對從機時鐘計數單元310、從機輸入控制邏輯單元320及從機輸出控制邏輯單元330輸出的訊號進行同步。從機內部時鐘的頻率是串列時鐘訊號的二倍。在本實施例中,從機時鐘倍頻單元300採用鎖相環電路將串列時鐘訊號二倍頻。所述鎖相環電路接收外部電路提供的系統時鐘作為參考時鐘。
所述從機時鐘計數單元310由從機選擇訊號線17A-17D接收主機控制器11發送的從機選擇訊號,當從機選擇訊號有效時,對從機內部時鐘計數,並將從機內部時鐘計數值輸出給從機輸入控制邏輯單元320及從機輸出控制邏輯單元330。
所述從機輸入控制邏輯單元320根據從機內部時鐘及從機內部時鐘計數值由主機輸出/從機輸入資料線15接收主機控制器11發送的讀/寫操作控制符、目標位址及有效資料,將接收的目標位址緩存到從機位址緩衝區340,將接收的有效資料緩存到從機輸入資料緩衝區350,並根據接收的讀/寫操作控制符產生相對應的讀/寫操作控制訊號並輸出給從機操作控制邏輯單元370。若收到寫操作控制符,則從機輸入控制邏輯單元320產生寫操作控制訊號;或者若收到讀操作控制符,則從機輸入控制邏輯單元320產生讀操作控制訊號。從機輸入邏輯控制邏輯單元320在從機內部時鐘的跳變沿接收資料。例如,在每個從機內部時鐘的上升沿接收1比特資料。或者,在每個從機內部時鐘的下降沿接收1比特資料。
所述從機操作控制邏輯單元370根據接收的讀/寫操作控制訊號執行相對應的操作。具體而言,當收到寫操作控制訊號時,從機操作控制邏輯單元370讀取從機位址緩衝區340緩存的目標位址以及從機輸入資料緩衝區350緩存的有效資料,並將有效資料儲存到從機目標記憶體380的目標位址所指定的儲存單元;或者當收到讀操作控制訊號時,從機操作控制邏輯單元370讀取從機位址緩衝區340緩存的目標位址,從目標位址所指定的儲存單元中讀取有效資料,並將該有效資料緩存到從機輸出資料緩衝區360。在本實施例中,從機操作控制邏輯單元370透過兩條位址匯流排與從機位址緩衝區340相連,透過兩條輸入資料匯流排與從機輸入資料緩衝區350相連,透過兩條輸出資料匯流排與從機輸出資料緩衝區360相連。若以兩倍速傳輸資料,從機操作控制邏輯單元370利用兩條位址匯流排、兩條輸入資料匯流排及兩條輸出資料匯流排進行資料傳輸。若以單倍速傳輸資料,從機操作控制邏輯單元370利用其中一條位址匯流排、一條輸入資料匯流排及一條輸出資料匯流排進行資料傳輸。
所述從機輸出控制邏輯單元330讀取從機輸出資料緩衝區360緩存的有效資料,並根據從機內部時鐘及從機內部時鐘計數值由主機輸入/從機輸出資料線16將讀取的有效資料按照指定的順序發送給主機控制器11。從機輸出控制邏輯單元330在從機內部時鐘的跳變沿發送資料。例如,在每個從機內部時鐘的上升沿發送1比特資料。或者,在每個從機內部時鐘的下降沿發送1比特資料。
參閱圖4所示,係本發明基於串列週邊介面(SPI)匯流排的資料傳輸方法較佳實施例的流程圖。以下以圖1中的主機控制器11與從機控制器12B的資料傳輸為例進行說明。
步驟S401,主機時鐘產生單元200生成主機內部時鐘,並將該主機內部時鐘輸出給從機選擇單元210、主機時鐘分頻單元220、主機時鐘計數單元230、主機輸出控制邏輯單元270及主機輸入控制邏輯單元280。主機內部時鐘用於對從機選擇單元210、主機時鐘分頻單元220、主機時鐘計數單元230、主機輸出控制邏輯單元270及主機輸入控制邏輯單元280輸出的訊號進行同步。在本實施例中,主機時鐘產生單元200根據外部電路(例如外部的晶振電路)提供的系統時鐘生成主機內部時鐘。例如,假設外部的晶振電路提供的系統時鐘的頻率為16MHz,主機控制器11需要64MHz的主機內部時鐘,則主機時鐘產生單元200將系統時鐘四倍頻,從而生成64MHz的主機內部時鐘。
步驟S402,從機選擇單元210將由從機選擇訊號線17B發送給從機控制器12B的從機選擇訊號/SS2置為有效。假設從機選擇訊號低電平有效,則從機選擇單元210將/SS2置為低電平。
步驟S403,主機時鐘分頻單元220將主機內部時鐘二分頻生成串列時鐘訊號,並將該串列時鐘訊號由串列時鐘訊號線14發送給從機控制器12B。如前所述,主機內部時鐘的頻率是串列時鐘訊號的二倍。
步驟S404,從機控制器12B的從機時鐘倍頻單元300將串列時鐘訊號二倍頻生成從機內部時鐘,並將該從機內部時鐘輸出給從機時鐘計數單元310、從機輸入控制邏輯單元320及從機輸出控制邏輯單元330。如前所述,從機內部時鐘的頻率與主機內部時鐘相同,均是串列時鐘訊號的二倍。在本實施例中,從機時鐘倍頻單元300採用鎖相環電路將串列時鐘訊號二倍頻。所述鎖相環電路接收外部電路提供的系統時鐘作為參考時鐘。
步驟S405,主機時鐘計數單元230對主機內部時鐘計數,並將主機內部時鐘計數值輸出給從機選擇單元210、主機輸出控制邏輯單元270及主機輸入控制邏輯單元280;從機時鐘計數單元310對從機內部時鐘計數,並將從機內部時鐘計數值輸出給從機輸入控制邏輯單元320及從機輸出控制邏輯單元330。其中,主機時鐘計數單元230可以設置為每經過一個主機內部時鐘週期將主機內部時鐘計數值加1,或者每經過兩個主機內部時鐘週期將主機內部時鐘計數值加1,從而控制主機控制器11與從機控制器12的資料傳輸速率。具體而言,當需要以兩倍速(即為串列時鐘訊號頻率兩倍的速率)傳輸資料時,主機時鐘計數單元230每經過一個主機內部時鐘週期將主機內部時鐘計數值加1;當需要以單倍速(即與串列時鐘訊號頻率相同的速率)傳輸資料時,主機時鐘計數單元230每經過兩個主機內部時鐘週期將主機內部時鐘計數值加1。
步驟S406,主機控制器11與從機控制器12B之間傳輸讀/寫操作控制符及目標位址。具體來說,主機輸出控制邏輯單元270生成讀/寫操作控制符,從主機位址緩衝區240讀取發送給從機控制器12B的目標位址,根據主機內部時鐘及主機內部時鐘計數值將讀/寫操作控制符及目標位址按照指定的順序由主機輸出/從機輸入資料線15發送給從機控制器12B;從機輸入控制邏輯單元320根據從機內部時鐘及從機內部時鐘計數值接收主機控制器11發送的讀/寫操作控制符及目標位址,將接收的目標位址緩存到從機位址緩衝區340,將接收的有效資料緩存到從機輸入資料緩衝區350,並根據接收的讀/寫操作控制符產生讀/寫操作控制訊號並輸出給從機操作控制邏輯單元370。例如,主機輸出控制邏輯單元270在主機內部時鐘計數值為0或1時發送1比特的讀/寫操作控制符,在主機內部時鐘計數值為2、3、…、或15時發送1比特的目標位址。從機輸入控制邏輯單元320在從機內部時鐘計數值為0或1時接收1比特的讀/寫操作控制符,在從機內部時鐘計數值為2、3、…、或15時接收1比特的目標位址。並且,主機輸出控制邏輯單元270在主機內部時鐘的跳變沿發送資料,從機輸入控制邏輯單元320在從機內部時鐘的跳變沿接收資料。
步驟S407,主機控制器11與從機控制器12B之間傳輸有效資料。在該步驟中,對於寫操作(此時從機輸入控制邏輯單元320發送寫操作控制訊號至從機操作控制邏輯單元370),主機輸出控制邏輯單元270從主機輸出資料緩衝區250讀取發送給從機控制器12B的有效資料,並根據主機時鐘計數單元230的主機內部時鐘及主機內部時鐘計數值將有效資料按照指定的順序由主機輸出/從機輸入資料線15發送給從機控制器12B;從機輸入控制邏輯單元320根據從機內部時鐘及從機內部時鐘計數值接收有效資料,從機操作控制邏輯單元370根據寫操作控制訊號將接收的有效資料寫入目標位址指定的從機目標記憶體380的儲存單元。對於讀操作(此時從機輸入控制邏輯單元320發送讀操作控制訊號至從機操作控制邏輯單元370),從機操作控制邏輯單元370根據讀操作控制訊號從目標位址指定的從機目標記憶體380的儲存單元讀取有效資料並緩存到從機輸出資料緩衝區360,從機輸出控制邏輯單元330讀取該有效資料,並根據從機內部時鐘及從機內部時鐘計數值將該有效資料按照指定的順序由主機輸入/從機輸出資料線16發送給主機控制器11;主機輸入控制邏輯單元280根據主機內部時鐘及主機內部時鐘計數值接收從機輸出控制邏輯單元330發送的有效資料,並將接收的有效資料緩存到主機輸入資料緩衝區260。其中,從機輸出控制邏輯單元330在從機內部時鐘的跳變沿發送資料。主機輸入控制邏輯單元在主機內部時鐘的跳變沿接收資料。
需要說明的是,從機操作控制邏輯單元370支持單倍速的資料傳輸,也支持兩倍速的資料傳輸。
步驟S408,主機控制器11與從機控制器12B資料傳輸完畢後,從機選擇單元200將從機選擇訊號/SS2置為無效,例如將/SS2置為高電平。在本實施例中,從機選擇單元210根據主機時鐘計數單元230的主機內部時鐘計數值判斷主機控制器11與從機控制器12B資料傳輸是否完畢。例如,假設需要在主機控制器11與從機控制器12之間傳輸32比特資料,每個主機內部時鐘週期傳輸1比特資料,並且每經過一個主機內部時鐘週期將主機內部時鐘計數值加1,若主機時鐘計數單元230從0開始計數,則計數到31時表明資料傳輸完畢。
圖5至圖8係以兩倍速傳輸資料的示意圖。其中,SCLK表示串列時鐘訊號,2×SCLK表示主機內部時鐘,/SS2表示從機控制器12B的從機選擇訊號,MOSI表示主機輸出/從機輸入資料線15上的資料,MISO表示主機輸入/從機輸出資料線16上的資料。
圖5至圖8所示的例子中,採用交錯傳輸的方式進行資料傳輸,每次傳輸兩個有效資料,每個有效資料是8比特,每個有效資料對應的目標位址是7比特,每個有效資料對應1比特的讀/寫操作控制符。其中,第一個有效資料(以下稱第一有效資料)為D0,其對應的第一目標位址為A0,第一有效資料的各個比特從低到高為D00、D01、D02、D03、D04、D05、D06、D07,第一目標位址的各個比特從低到高為A00、A01、A02、A03、A04、A05、A06、A07。第二個有效資料(以下稱第二有效資料)為D1,其對應的第二目標位址為A1,第二有效資料的各個比特從低到高為D10、D11、D12、D13、D14、D15、D16、D17,第二目標位址的各個比特從低到高為A10、A11、A12、A13、A14、A15、A16、A17。由圖5至圖8可知,主機控制器11與從機控制器12B之間首先傳輸兩個讀/寫操作控制符,然後傳輸兩個目標位址,最後傳輸兩個有效資料,並且按照從低到高的順序傳輸目標位址及有效資料的各個比特。其中,目標位址的發送順序為:A00、A10、A01、A11、A02、A12、A03、A13、A04、A14、A05、A15、A06、A16,有效資料的發送順序為:D00、D10、D01、D11、D02、D12、D03、D13、D04、D14、D05、D15、D06、D16、D06、D16。
具體來說,圖5係連續執行兩次寫操作的示意圖。首先傳輸寫操作控制符/W0與/W1,然後傳輸目標位址A0與A1,最後傳輸有效資料D0與D1。並且,寫操作控制符/W0與/W1、目標位址A0與A1以及有效資料D0與D1均由主機輸出/從機輸入資料線15傳輸。
圖6係連續執行兩次讀操作的示意圖。首先傳輸讀操作控制符R0與R1,然後傳輸目標位址A0與A1,最後傳輸有效資料D0與D1。並且,讀操作控制符R0與R1以及目標位址A0與A1由主機輸出/從機輸入資料線15傳輸,有效資料D0與D1由主機輸入/從機輸入資料線16傳輸。
圖7係先後執行一次寫操作及一次讀操作的示意圖。首先傳輸寫操作控制符/W0與讀操作控制符R1,然後傳輸目標位址A0與A1,最後傳輸有效資料D0與D1。並且,寫操作控制符/W0、讀操作控制符R1、目標位址A0與A1以及有效資料D0由主機輸出/從機輸入資料線15傳輸,有效資料D1由主機輸入/從機輸入資料線16傳輸。
圖8係先後執行一次讀操作及一次寫操作的示意圖。首先傳輸讀操作控制符R0與寫操作控制符/W1,然後傳輸目標位址A0與A1,最後傳輸有效資料D0與D1。並且,讀操作控制符R0與寫操作控制符/W1、目標位址A0與A1及有效資料D1由主機輸出/從機輸入資料線15傳輸,有效資料D0由主機輸入/從機輸入資料線16傳輸。
應當可以理解,若SPI匯流排系統10以單倍速傳輸資料,則按照圖9所示執行寫操作,按照圖10所示執行讀操作。
利用本發明,SPI匯流排系統10可以每半個串列時鐘訊號週期傳輸1比特資料,相對於習知技術中的SPI匯流排系統實現了更高的資料傳輸速率。例如,若最高串列時鐘訊號的頻率是32MHz,習知技術的SPI匯流排系統只能達到最高32Mbps的資料傳輸速率,而本發明的SPI匯流排系統10可以達到最高64Mbps的資料傳輸速率。並且,主機控制器11以及從機控制器12A-12D均支持單倍速的資料傳輸,以相容習知技術的SPI匯流排系統。
綜上所述,本發明符合發明專利要件,爰依法提出專利申請。惟,以上所述者僅為本發明之較佳實施例,本發明之範圍並不以上述實施例為限,舉凡熟悉本案技藝之人士援依本發明之精神所作之等效修飾或變化,皆應涵蓋於以下申請專利範圍內。
10‧‧‧SPI匯流排系統
11‧‧‧主機控制器
12A-12D‧‧‧從機控制器
13‧‧‧SPI匯流排
14‧‧‧串列時鐘訊號線
15‧‧‧主機輸出/從機輸入資料線
16‧‧‧主機輸入/從機輸出資料線
17A-17D‧‧‧從機選擇訊號線
200‧‧‧主機時鐘產生單元
210‧‧‧從機選擇單元
220‧‧‧主機時鐘分頻單元
230‧‧‧主機時鐘計數單元
240‧‧‧主機位址緩衝區
250‧‧‧主機輸出資料緩衝區
260‧‧‧主機輸入資料緩衝區
270‧‧‧主機輸出控制邏輯單元
280‧‧‧主機輸入控制邏輯單元
300‧‧‧從機時鐘倍頻單元
310‧‧‧從機時鐘計數單元
320‧‧‧從機輸入控制邏輯單元
330‧‧‧從機輸出控制邏輯單元
340‧‧‧從機位址緩衝區
350‧‧‧從機輸入資料緩衝區
360‧‧‧從機輸出資料緩衝區
370‧‧‧從機操作控制邏輯單元
380‧‧‧從機目標記憶體
S401‧‧‧生成主機內部時鐘
S402‧‧‧從機選擇訊號置為有效
S403‧‧‧發送串列時鐘訊號
S404‧‧‧生成從機內部時鐘
S405‧‧‧分別對主機內部時鐘以及從機內部時鐘計數
S406‧‧‧傳輸讀/寫操作控制符及目標位址
S407‧‧‧傳輸有效資料
S408‧‧‧從機選擇訊號置為無效
圖1係串列週邊介面匯流排系統較佳實施例的系統架構圖。
圖2係圖1中主機控制器的細化架構圖。
圖3係圖1中從機控制器的細化架構圖。
圖4係本發明基於串列週邊介面匯流排的資料傳輸方法較佳實施例的示意圖。
圖5係以兩倍速傳輸資料時連續執行兩次寫操作的示意圖。
圖6係以兩倍速傳輸資料時連續執行兩次讀操作的示意圖。
圖7係以兩倍速傳輸資料時先後執行一次寫操作與一次讀操作的示意圖。
圖8係以兩倍速傳輸資料時先後執行一次讀操作與一次寫操作的示意圖。
圖9係以單倍速傳輸資料時執行寫操作的示意圖。
圖10係以單倍速傳輸資料時執行讀操作的示意圖。
S401‧‧‧生成主機內部時鐘
S402‧‧‧從機選擇訊號置為有效
S403‧‧‧發送串列時鐘訊號
S404‧‧‧生成從機內部時鐘
S405‧‧‧分別對主機內部時鐘以及從機內部時鐘計數
S406‧‧‧傳輸讀/寫操作控制符及目標位址
S407‧‧‧傳輸有效資料
S408‧‧‧從機選擇訊號置為無效
Claims (10)
- 一種基於串列週邊介面(SPI)匯流排的主機控制器,可以與基於SPI匯流排的從機控制器進行資料傳輸,該主機控制器包括:
主機時鐘產生單元,用於生成主機內部時鐘;
從機選擇單元,用於選擇與主機控制器進行資料傳輸的從機控制器;
主機時鐘分頻單元,用於將主機內部時鐘二分頻生成串列時鐘訊號,並將該串列時鐘訊號發送給選擇的從機控制器;
主機時鐘計數單元,用於對主機內部時鐘計數;
主機位址緩衝區,用於緩存發送給選擇的從機控制器的目標位址;
主機輸出資料緩衝區,用於緩存發送給選擇的從機控制器的有效資料;
主機輸出控制邏輯單元,用於生成讀/寫操作控制符,從主機位址緩衝區讀取發送給選擇的從機控制器的目標位址,從主機輸出資料緩衝區讀取發送給選擇的從機控制器的有效資料,並根據主機內部時鐘及主機內部時鐘計數值按照指定的順序將讀/寫操作控制符、目標位址以及有效資料發送給選擇的從機控制器,其中所述讀/寫操作控制符用於控制選擇的從機控制器執行相對應的讀/寫操作;及
主機輸入控制邏輯單元,用於根據主機內部時鐘及主機內部時鐘計數值接收選擇的從機控制器發送來的有效資料,並將接收的有效資料緩存到主機輸入資料緩衝區。 - 如申請專利範圍第1項所述之基於SPI匯流排的主機控制器,其中所述主機時鐘計數單元在以兩倍速傳輸資料時每經過一個主機內部時鐘週期將主機內部時鐘計數值加1,在以單倍速傳輸資料時每經過兩個主機內部時鐘週期將主機內部時鐘計數值加1。
- 如申請專利範圍第1項所述之基於SPI匯流排的主機控制器,其中所述主機輸出控制邏輯單元採用交錯傳輸的方式發送讀/寫操作控制符、目標位址以及有效資料。
- 如申請專利範圍第1項所述之基於SPI匯流排的主機控制器,其中所述從機選擇單元根據主機時鐘計數單元的主機內部時鐘計數值判斷是否資料傳輸完畢,若資料傳輸完畢,則結束對從機控制器的選擇。
- 一種基於串列週邊介面(SPI)匯流排的從機控制器,可以與基於SPI匯流排的主機控制器進行資料傳輸,該從機控制器包括:
從機時鐘倍頻單元,用於接收主機控制器發送來的串列時鐘訊號,將該串列時鐘訊號二倍頻生成從機內部時鐘;
從機時鐘計數單元,用於當主機控制器選擇與該從機控制器進行資料傳輸時,對從機內部時鐘計數;
從機輸入控制邏輯單元,用於根據從機內部時鐘及從機內部時鐘計數值接收主機控制器發送的讀/寫操作控制符、目標位址及有效資料,將接收的目標位址緩存到從機位址緩衝區,將接收的有效資料緩存到從機輸入資料緩衝區,並根據接收的讀/寫操作控制符產生相對應的讀/寫操作控制訊號;
從機操作控制邏輯單元,用於當收到寫操作控制訊號時,讀取從機位址緩衝區緩存的目標位址以及從機輸入資料緩衝區緩存的有效資料,並將有效資料儲存到從機目標記憶體的目標位址所指定的儲存單元;或者當收到讀操作控制訊號時,讀取從機位址緩衝區緩存的目標位址,從目標位址指定的儲存單元中讀取有效資料,並將該有效資料緩存到從機輸出資料緩衝區;及
所述從機輸出控制邏輯單元讀取從機輸出資料緩衝區緩存的有效資料,並根據從機內部時鐘及從機內部時鐘計數值將讀取的有效資料按照指定的順序發送給主機控制器。 - 一種基於串列週邊介面(SPI)匯流排的資料傳輸方法,用於在主機控制器與從機控制器之間進行資料傳輸,該方法包括步驟:
主機控制器生成主機內部時鐘;
主機控制器選擇進行資料傳輸的從機控制器;
主機控制器將主機內部時鐘二分頻生成串列時鐘訊號,並將該串列時鐘訊號發送給選擇的從機控制器;
從機控制器將串列時鐘訊號二倍頻生成從機內部時鐘;
主機控制器對主機內部時鐘計數,從機控制器對從機內部時鐘計數;
主機控制器根據主機內部時鐘計數值以及主機內部時鐘按照指定的順序發送讀/寫操作控制符及目標位址,從機控制器根據從機內部時鐘計數值以及從機內部時鐘接收該讀/寫操作控制符及目標位址;
與寫操作控制符相對應地,主機控制器根據主機內部時鐘計數值以及主機內部時鐘按照指定的順序發送有效資料,從機控制器根據從機內部時鐘計數值以及從機內部時鐘接收有效資料並將該有效資料寫入目的位址指定的儲存單元,或者與讀操作控制符相對應地,從機控制器從目標位址指定的儲存單元讀取有效資料,並根據從機內部時鐘及從機內部時鐘計數值將該有效資料按照指定的順序發送給主機控制器,主機控制器根據主機內部時鐘及主機內部時鐘計數值接收該有效資料;及
主機控制器結束對從機控制器的選擇。 - 如申請專利範圍第6項所述之基於SPI匯流排的資料傳輸方法,其中所述主機控制器對主機內部時鐘計數的步驟中,主機控制器在以兩倍速傳輸資料時每經過一個主機內部時鐘週期將主機內部時鐘計數值加1,在以單倍速傳輸資料時每經過兩個主機內部時鐘週期將主機內部時鐘計數值加1。
- 如申請專利範圍第6項所述之基於SPI匯流排的資料傳輸方法,其中所述主機控制器根據主機內部時鐘計數值以及主機內部時鐘按照指定的順序發送讀/寫操作控制符及目標位址的步驟中,主機控制器採用交錯傳輸的方式發送讀/寫操作控制符及目標位址,所述主機控制器根據主機內部時鐘計數值以及主機內部時鐘按照指定的順序發送有效資料的步驟中,主機控制器採用交錯傳輸的方式發送有效資料。
- 如申請專利範圍第6項所述之基於SPI匯流排的資料傳輸方法,其中所述主機控制器結束對從機控制器的選擇的步驟中,主機控制器根據主機內部時鐘計數值判斷是否資料傳輸完畢,若資料傳輸完畢,則結束對從機控制器的選擇。
- 如申請專利範圍第6項所述之基於SPI匯流排的資料傳輸方法,其中所述從機控制器將串列時鐘訊號二倍頻生成從機內部時鐘的步驟中,從機控制器採用鎖相環電路將串列時鐘訊號二倍頻。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW98133052A TWI394050B (zh) | 2009-09-29 | 2009-09-29 | 基於串列週邊介面匯流排的設備及其資料傳輸方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW98133052A TWI394050B (zh) | 2009-09-29 | 2009-09-29 | 基於串列週邊介面匯流排的設備及其資料傳輸方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201112002A TW201112002A (en) | 2011-04-01 |
| TWI394050B true TWI394050B (zh) | 2013-04-21 |
Family
ID=44909093
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW98133052A TWI394050B (zh) | 2009-09-29 | 2009-09-29 | 基於串列週邊介面匯流排的設備及其資料傳輸方法 |
Country Status (1)
| Country | Link |
|---|---|
| TW (1) | TWI394050B (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI750980B (zh) * | 2020-12-30 | 2021-12-21 | 新唐科技股份有限公司 | 串列週邊介面系統和其資料傳輸方法 |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI497304B (zh) * | 2012-03-13 | 2015-08-21 | Novatek Microelectronics Corp | 序列介面傳送方法及其裝置 |
| US9990316B2 (en) * | 2015-09-21 | 2018-06-05 | Qualcomm Incorporated | Enhanced serial peripheral interface |
| US10162558B2 (en) | 2015-10-30 | 2018-12-25 | Micron Technology, Inc. | Data transfer techniques for multiple devices on a shared bus |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200820002A (en) * | 2006-07-06 | 2008-05-01 | Macronix Int Co Ltd | Method and apparatus for communicating a bit per half clock cycle over at least one pin of an SPI bus |
| US20090103380A1 (en) * | 2007-10-17 | 2009-04-23 | Micron Technology, Inc. | System and method for data read of a synchronous serial interface nand |
| US20090103362A1 (en) * | 2007-10-17 | 2009-04-23 | Micron Technology, Inc. | System and method for setting access and modification for synchronous serial interface nand |
| TW200935227A (en) * | 2008-02-15 | 2009-08-16 | Hon Hai Prec Ind Co Ltd | Serial peripheral interface communication circuit |
-
2009
- 2009-09-29 TW TW98133052A patent/TWI394050B/zh not_active IP Right Cessation
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200820002A (en) * | 2006-07-06 | 2008-05-01 | Macronix Int Co Ltd | Method and apparatus for communicating a bit per half clock cycle over at least one pin of an SPI bus |
| US20090103380A1 (en) * | 2007-10-17 | 2009-04-23 | Micron Technology, Inc. | System and method for data read of a synchronous serial interface nand |
| US20090103362A1 (en) * | 2007-10-17 | 2009-04-23 | Micron Technology, Inc. | System and method for setting access and modification for synchronous serial interface nand |
| TW200935227A (en) * | 2008-02-15 | 2009-08-16 | Hon Hai Prec Ind Co Ltd | Serial peripheral interface communication circuit |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI750980B (zh) * | 2020-12-30 | 2021-12-21 | 新唐科技股份有限公司 | 串列週邊介面系統和其資料傳輸方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| TW201112002A (en) | 2011-04-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN102023945B (zh) | 基于串行外围设备接口总线的设备及其数据传输方法 | |
| CN101599053B (zh) | 支持多种传输协议的串行接口控制器及控制方法 | |
| WO2023284169A1 (zh) | 从axi总线到opb总线的数据写入方法及读取方法 | |
| JP6173340B2 (ja) | バス上の複数のデータ線を介してデータを送るシステムおよび方法 | |
| CN106257434B (zh) | 一种基于增强型外设互连协议总线的数据传输方法及装置 | |
| US20100064083A1 (en) | Communications device without passive pullup components | |
| TWI394050B (zh) | 基於串列週邊介面匯流排的設備及其資料傳輸方法 | |
| CN108228498A (zh) | 一种dma控制装置和图像处理器 | |
| JPH11167480A (ja) | バッファメモリ装置 | |
| CN107783727A (zh) | 一种内存设备的访问方法、装置和系统 | |
| JP2008508826A (ja) | FlexRay通信モジュール | |
| CN113468092A (zh) | 高速spi通信装置 | |
| JPH0816513A (ja) | 周辺装置とシリアルのデジタルデータを交換するための、プロセッサに組み付けられたインターフェース回路 | |
| CN116126763B (zh) | 总线互联系统、数据处理方法、装置、电子设备及介质 | |
| CN101764795A (zh) | Ieee1394总线的链路层控制器 | |
| CN115586974A (zh) | 内存控制器、系统、装置及电子设备 | |
| WO2021089430A1 (en) | Bus system and method for operating a bus system | |
| CN112579495B (zh) | Gpio控制器 | |
| CN201355815Y (zh) | 一种应用于空间技术的ieee1394总线协议控制器 | |
| WO2001024022A1 (en) | Method and apparatus for decoupling processor speed from memory subsystem speed in a node controller | |
| CN103226531A (zh) | 一种双端口外设配置接口电路 | |
| US10489319B2 (en) | Automatic transmission of dummy bits in bus master | |
| CN119166559A (zh) | 片外访问电路、方法、存储器控制器、芯片及电子设备 | |
| CN202025311U (zh) | 一种基于串行数据传输方式的链路接口电路 | |
| CN103888211A (zh) | 一种交叉芯片间进行数据传输的方法及装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |