TW201633164A - 多通道is傳輸控制系統及方法 - Google Patents

多通道is傳輸控制系統及方法 Download PDF

Info

Publication number
TW201633164A
TW201633164A TW104137220A TW104137220A TW201633164A TW 201633164 A TW201633164 A TW 201633164A TW 104137220 A TW104137220 A TW 104137220A TW 104137220 A TW104137220 A TW 104137220A TW 201633164 A TW201633164 A TW 201633164A
Authority
TW
Taiwan
Prior art keywords
bits
memory line
bit
transmission
read
Prior art date
Application number
TW104137220A
Other languages
English (en)
Inventor
詹姆士 卡沙迪
洛德尼 派沙溫多
瑟吉 帕乏洛
Original Assignee
微晶片科技公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 微晶片科技公司 filed Critical 微晶片科技公司
Publication of TW201633164A publication Critical patent/TW201633164A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Communication Control (AREA)
  • Information Transfer Systems (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)

Abstract

本發明揭示一種串列周邊介面,其可組態以在一I2S傳輸模式中操作。該介面具有:一傳輸單元,其與用於資料、位元時脈及左/右時脈信號之外部接腳連接;一先進先出(FIFO)緩衝器,其具有複數個記憶體線;及一控制單元,其可操作以自兩個記憶體線讀取資料部分,將該等資料部分組合成一傳輸字,且將該經組合傳輸字轉送至該傳輸單元,其中該傳輸單元經組態以經由該外部資料接腳串列地傳輸該經組合傳輸字。

Description

多通道I 2 S傳輸控制系統及方法
本發明係關於一種同步串列匯流排,特定而言I2S類型之同步串列匯流排。
存在其中在單獨線上傳輸時脈及資料之各種同步串列協定。一同步串列介面之最常見實施中之一者係串列周邊介面(SPI)匯流排,其包括用於輸入及輸出之單獨資料線、一時脈線、視情況地一選擇線及/或一從屬選擇線。
I2S匯流排使用一類似數目個線,但提供一不同傳輸協定。微控制器通常實施待增強之SPI協定,使得SPI介面可模擬一I2S介面。I2S協定使用時脈線上之一位元時脈信號BCLK及一單獨字時脈線。字時脈通常稱為一左/右時脈信號LRCLK。一般而言,利用LRCLK之每一邊緣,使用位元時脈信號串列地傳輸一左或右通道資料字。I2S協定對於音訊資料係最佳的。取決於組態,在裝置之間傳送具有16、24或32位元之音訊資料字。特定而言,24位元模式通常藉由使用32位元來模擬或需要正確地實施某些資料處理。
需要一I2S介面(特定而言)在一微控制器中之一經改良實施。
根據一實施例,一種串列周邊介面可組態以在一I2S傳輸模式中 操作且可包括:一傳輸單元,其與用於資料、位元時脈及左/右時脈信號之外部接腳連接;一先進先出(FIFO)緩衝器,其包括複數個記憶體線;及一控制單元,其可操作以自兩個記憶體線讀取資料部分,將該等資料部分組合成一傳輸字,且將該經組合傳輸字轉送至該傳輸單元,其中該傳輸單元經組態以經由該外部資料接腳串列地傳輸該經組合傳輸字。
根據又一實施例,該FIFO緩衝器可包括三個32位元記憶體線。根據又一實施例,在一24位元操作模式中,該控制單元經組態以:存取第一記憶體線以讀取上部24位元,並將該等位元傳送至該傳輸單元;然後存取該第一記憶體線以讀取下部8個位元且存取第二記憶體線以讀取上部16個位元,並將一經組合24位元字傳送至該傳輸單元;然後存取該第二記憶體線以讀取下部16個位元且存取第三記憶體線以讀取上部8個位元,並將一經組合24位元字傳送至該傳輸單元;及然後存取該第三記憶體線以讀取下部24個位元,並將該等位元傳送至該傳輸單元。根據又一實施例,在一16位元操作模式中,該控制單元經組態以:存取該第一記憶體線以讀取上部16個位元,並將該等位元傳送至該傳輸單元;然後存取該第一記憶體線以讀取該下部16個位元以將該等位元傳送至該傳輸單元;然後針對該第二記憶體線及該第三記憶體線重複該存取及該傳送。
根據另一實施例,一種串列周邊介面可組態以在一I2S傳輸模式中操作且可包括:複數個傳輸單元,其各自與至少一外部資料接腳連接;相關聯先進先出(FIFO)緩衝器,其各自包括複數個記憶體線;及一控制單元,其可操作以自兩個記憶體線讀取資料部分,將該等資料部分組合成一傳輸字,且將該經組合傳輸字轉送至該傳輸單元,其中該傳輸單元經組態以經由該外部資料接腳串列地傳輸該經組合傳輸字。
根據又一實施例,每一FIFO緩衝器包括三個32位元記憶體線。根據又一實施例,該等傳輸單元中之一者可經組態為一主控單元且剩餘傳輸單元經組態為從屬單元。根據又一實施例,對所有FIFO緩衝器執行輸入操作,使得一寫入操作將資料寫入至每一FIFO緩衝器中之相同位址。根據又一實施例,每一傳輸單元自一相關聯FIFO緩衝器讀取一單個資料字,其中在一相關聯控制暫存器中定義該單個資料字之該位址。根據又一實施例,在一24位元操作模式,分別地,一第一傳輸單元讀取一相關聯FIFO緩衝器之一第一記憶體線之上部24位元,一第二傳輸單元讀取該第一記憶體線之下部8個位元及第二記憶體線之上部16個位元,第三傳輸單元讀取該第二記憶體線之下部16個位元及第三記憶體線之上部8個位元,且第四傳輸單元讀取該第三記憶體線之下部24個位元。根據又一實施例,在一16位元操作模式中,分別地,一第一傳輸單元讀取每一記憶體線之該上部16個位元,且一第二傳輸單元讀取每一記憶體線之該下部16個位元。根據又一實施例,在該16位元操作模式中,該等FIFO緩衝器僅使用一單個32位元記憶體線。根據又一實施例,該等FIFO緩衝器中之僅一者用於所有四個傳輸單元。根據又一實施例,在該24位元操作模式中,該控制單元經組態以:存取一選定FIFO緩衝器之該第一記憶體線以讀取該上部24位元,並將該等位元傳送至該第一傳輸單元;然後存取該選定FIFO緩衝器之該第一記憶體線以讀取該下部8個位元且存取該第二記憶體線以讀取該上部16個位元,並將一經組合24位元字傳送至該第二傳輸單元;然後存取該選定FIFO緩衝器之該第二記憶體線以讀取該下部16個位元且存取該第三記憶體線以讀取該上部8個位元,並將一經組合24位元字傳送至該第三傳輸單元;及然後存取該選定FIFO緩衝器之該第三記憶體線以讀取該下部24個位元,並將該等位元傳送至該第四傳輸單元。根據又一實施例,在一16位元操作模式中,該控制 單元經組態以:存取一選定FIFO緩衝器之每一記憶體線以讀取該上部16個位元,並將該等位元傳送至該第一傳輸單元;及然後存取該選定FIFO緩衝器之每一記憶體線以讀取該下部16個位元,並將該等位元傳送至該第二傳輸單元。根據又一實施例,在該16位元操作模式中,該FIFO緩衝器僅使用一單個32位元記憶體線。
根據又一實施例,一種操作可組態以在一I2S傳輸模式中操作之一串列周邊介面之方法可包括以下步驟:組態該串列周邊介面以在I2S模式中操作,其中該串列周邊介面包括與用於資料、位元時脈及左/右時脈信號之外部接腳連接之一傳輸單元;提供包括複數個記憶體線之一先進先出(FIFO)緩衝器;及控制該串列周邊介面以自兩個記憶體線讀取資料部分,將該等資料部分組合成一傳輸字,將該經組合傳輸字轉送至該傳輸單元,及經由該外部資料接腳串列地傳輸該經組合傳輸字。
根據該方法之又一實施例,該FIFO緩衝器可包括三個32位元記憶體線。根據該方法之又一實施例,在一24位元操作模式中,該方法包括:存取第一記憶體線以讀取上部24位元,並將該等位元傳送至該傳輸單元;然後存取該第一記憶體線以讀取下部8個位元且存取第二記憶體線以讀取上部16個位元,並將一經組合24位元字傳送至該傳輸單元;然後存取該第二記憶體線以讀取下部16個位元且存取第三記憶體線以讀取上部8個位元,並將一經組合24位元字傳送至該傳輸單元;及然後存取該第三記憶體線以讀取下部24個位元,並將該等位元傳送至該傳輸單元。根據該方法之又一實施例,在一16位元操作模式中,該方法包括:存取該第一記憶體線以讀取上部16個位元,並將該等位元傳送至該傳輸單元;然後存取該第一記憶體線以讀取該下部16個位元,將該等位元傳送至該傳輸單元;然後針對第二記憶體線及第三記憶體線重複存取及傳送之該等步驟。
根據又一實施例,一種操作可組態以在一I2S傳輸模式中操作之一串列周邊介面之方法可包括以下步驟:提供各自與至少一外部資料接腳連接之複數個傳輸單元;提供各自包括複數個記憶體線之相關聯先進先出(FIFO)緩衝器;及自兩個記憶體線讀取資料部分,將該等資料部分組合成一傳輸字,將該經組合傳輸字轉送至該傳輸單元,及經由該外部資料接腳串列地傳輸該經組合傳輸字。
根據該方法之又一實施例,每一FIFO緩衝器可包括三個32位元記憶體線。根據該方法之又一實施例,該方法可包括將該等傳輸單元中之一者組態為一主控單元且將剩餘傳輸單元組態為從屬單元之步驟。根據該方法之又一實施例,該方法可包括對所有FIFO緩衝器執行輸入操作,使得一寫入操作將資料寫入至每一FIFO緩衝器中之相同位址。根據該方法之又一實施例,每一傳輸單元可自一相關聯FIFO緩衝器讀取一單個資料字,其中在一相關聯控制暫存器中定義該單個資料字之該位址。根據該方法之又一實施例,在一24位元操作模式,分別地,一第一傳輸單元讀取一相關聯FIFO緩衝器之一第一記憶體線之上部24位元,一第二傳輸單元讀取該第一記憶體線之下部8個位元及第二記憶體線之上部16個位元,第三傳輸單元讀取該第二記憶體線之下部16個位元及第三記憶體線之上部8個位元,且第四傳輸單元讀取該第三記憶體線之下部24個位元。根據該方法之又一實施例,在一16位元操作模式中,分別地,一第一傳輸單元讀取每一記憶體線之該上部16個位元,且一第二傳輸單元讀取每一記憶體線之該下部16個位元。根據該方法之又一實施例,在該16位元操作模式中,該等FIFO緩衝器僅使用一單個32位元記憶體線。根據該方法之又一實施例,該等FIFO緩衝器中之僅一者用於所有四個傳輸單元。根據該方法之又一實施例,在一24位元操作模式中,該方法包括:存取一選定FIFO緩衝器之該第一記憶體線以讀取該上部24位元,並將該等位 元傳送至該第一傳輸單元;然後存取該選定FIFO緩衝器之該第一記憶體線以讀取該下部8個位元且存取該第二記憶體線以讀取該上部16個位元,並將一經組合24位元字傳送至該第二傳輸單元;然後存取該選定FIFO緩衝器之該第二記憶體線以讀取該下部16個位元且存取該第三記憶體線以讀取該上部8個位元,並將一經組合24位元字傳送至該第三傳輸單元;及然後存取該選定FIFO緩衝器之該第三記憶體線以讀取該下部24個位元,並將該等位元傳送至該第四傳輸單元。根據該方法之又一實施例,在一16位元操作模式中,該方法包括:存取一選定FIFO緩衝器之每一記憶體線以讀取該上部16個位元,並將該等位元傳送至該第一傳輸單元;及然後存取該選定FIFO緩衝器之每一記憶體線以讀取該下部16個位元,並將該等位元傳送至該第二傳輸單元。根據該方法之又一實施例,在該16位元操作模式中,該FIFO緩衝器僅使用一單個32位元記憶體線。
0‧‧‧線/資料
1‧‧‧線
2‧‧‧線
3‧‧‧線
4‧‧‧資料
100‧‧‧習用串列周邊介面介面周邊裝置/串列周邊介面周邊裝置/單元/裝置
110‧‧‧內部匯流排
120‧‧‧緩衝暫存器/輸入緩衝器/緩衝器
130‧‧‧輸入緩衝器/先進先出記憶體/緩衝器
140‧‧‧傳送移位暫存器/暫存器/移位暫存器
150‧‧‧從屬選擇及框同步控制單元
160‧‧‧時脈控制單元
170‧‧‧邊緣選擇單元
180‧‧‧波特速率產生器
210‧‧‧先進先出/緩衝器先進先出/緩衝器/串列周邊介面從屬裝置/監視先進先出/串列周邊介面單元
220‧‧‧串列周邊介面傳輸單元/串列周邊介面從屬裝置/先進先出/監視先進先出/串列周邊介面單元/串列周邊介面傳輸單元/傳輸單元
230‧‧‧串列周邊介面從屬裝置/先進先出/監視先進先出/串列周邊介面單元
240‧‧‧先進先出/監視先進先出/串列周邊介面單元/串列周邊介面主控控制器/主控先進先出
260‧‧‧控制單元
300‧‧‧實例
310‧‧‧實例
320‧‧‧實例
400‧‧‧同步串列介面周邊/I2S單元
410‧‧‧串列周邊介面或I2S介面單元/單元/從屬串列周邊介面單元/傳輸單元/I2S單元
420‧‧‧串列周邊介面或I2S介面單元/單元/從屬串列周邊介面單元/傳輸單元/I2S單元
430‧‧‧單元/從屬串列周邊介面單元/傳輸單元/I2S單元
440‧‧‧傳輸單元/I2S單元/主控單元/單元/主控裝置/串列周邊介面主控單元
CLK‧‧‧時脈信號
cmd_spi_go‧‧‧信號
LRC‧‧‧左/右時脈信號
MST_SLV_
BUS[2:0]‧‧‧第二匯流排
MST_SLV_
DATA[24:0]‧‧‧資料匯流排
SCKx‧‧‧外部接腳
SDIx‧‧‧外部輸入接腳
SDOx‧‧‧輸出接腳/外部輸出接腳
SSx‧‧‧外部從屬選擇接腳
圖1展示一習用串列周邊介面;圖2展示根據各種實施例之各種操作模式之FIFO緩衝器;圖3展示一實施例之一方塊圖;圖4展示另一實施例之一方塊圖;圖5及圖6展示根據圖4之一實施例之操作模式;及圖7至圖9展示根據各種實施例之操作模式之流程圖。
圖1展示可在一微控制器內實施之一習用SPI介面周邊裝置100。將在外部之待由該裝置傳送之資料經由一內部匯流排110寫入至緩衝暫存器120中。緩衝暫存器可實施為如在圖1中所展示具有單獨傳輸及接收緩衝器之一先進先出(FIFO)記憶體130且可具有任何適合大小。根據某些實施例,緩衝器之FIFO功能性可係可程式化的以被啟用或 停用。輸入緩衝器120/130與一傳送移位暫存器140耦合,傳送移位暫存器140與外部輸入接腳SDIx及外部輸出接腳SDOx連接。「x」指示多個單元可存在於微控制器中。
從屬選擇及框同步控制單元150經提供且與外部從屬選擇接腳SSx耦合且可控制暫存器140之輸出與輸出接腳SDOx之間的一個三態緩衝器。一時脈控制單元160提供操作移位暫存器140之移位時脈信號。時脈控制單元160亦與從屬選擇及框同步控制單元150以及一邊緣選擇單元170耦合。一波特(baud)速率產生器180可藉由各種內部時脈信號以可程式化方式被驅動且經由一可控制驅動器與外部接腳SCKx及邊緣選擇單元170耦合。可實施可用以組態SPI之各種控制暫存器。
此SPI周邊裝置100經設計以作為具有各種操作模式(諸如主控或從屬模式、框式操作、DSP模式等)之一正常SPI介面而操作。另外,此周邊裝置可經組態以作為一I2S介面而操作。在此模式中,SSx接腳用作LRCLK接腳,SCKx作為BCLK線而操作,且SDIx及SDOx作為資料信號輸入/輸出接腳而操作。取決於單元100是作為主控裝置還是從屬裝置而操作,接腳SSx及SCKx係輸出(主控)接腳或輸入(從屬)接腳。
一旦一資料字經寫入至緩衝器中,周邊裝置將經由移位暫存器將經寫入資料傳送至輸出接腳SDOx。若該單元組態為一主控裝置,則藉由裝置100產生各別時脈信號。當作為一從屬裝置操作時,裝置100在接收各別LRCLK信號之後旋即自緩衝器擷取一新資料字。該裝置可程式化以傳送具有16、24或32位元之資料字,其中FIFO經設計以具有複數個32位元暫存器。當經程式化以傳輸16位元字時,僅傳輸每一緩衝暫存器中之下部16個位元且將忽略上部16個位元。當經程式化以傳輸24位元字時,僅傳輸每一緩衝暫存器中之下部24個位元且將忽略上部8個位元。當經程式化以傳輸32位元字時,傳輸每一整個緩 衝暫存器。因此,此實施需要對資料之某一預處理,此乃因音訊資料一般而言以一緊縮方式儲存於大容量儲存裝置中。因此,僅32位元傳送模式不需要預處理,此乃因可直接將資料自記憶體寫入至緩衝器中。
然而,在16位元及24位元模式中,以一緊縮方式儲存各別音訊資料,換言之,不為節省記憶體而發生24位元之對準。若使用32位元寫入操作將資料直接寫入至緩衝器120/130中,則該資料將失準且被截斷。事實上,可能不發生有用傳輸。因此,必須在資料可寫入至緩衝器之前對該資料進行預處理。特定而言,對於24位元音訊資料,此導致時間密集型處理。若使用32位元讀取操作自記憶體擷取資料,則必須緩衝8或16位元並利用一隨後讀取將其組合。另一選擇係,可僅使用8位元讀取,且將藉由使用三個連續讀取操作而組合24位元。以任一方式,24位元音訊資料自記憶體之傳送將需要某些處理,該等處理用完可能係其他任務所需要之處理功率。16位元音訊資料需要類似操作,即使歸因於所有16位元資料之對準而需要較少處理功率。然而,每一16位元字必須單獨地儲存於一32位元緩衝暫存器120/130中以確保I2S介面之適當操作。
圖2展示記憶體中之32位元、24位元及16位元緊縮資料之對準。以最有效方式儲存資料,使得不浪費記憶體空間。因而,在不考量任何類型之對準錯放置之情況下,每一後續資料字緊接在前一字之後而無任何記憶體空間。一般而言,此對於一32位元系統中之32位元字而言不成問題,此乃因若第一字對準,則32位元資料將自動對準,如在實例300所展示。因此,利用32位元指令讀取記憶體允許利用一單個寫入命令將各別字放置於FIFO中。
實例310展示24位元資料之儲存。如在圖3中可見,相對於32位元,僅對準資料0與4。因此,需要進行數個8位元讀取操作及資料(經 組合16位元及8位元讀取指令或32位元讀取指令)之合併以及為達成下一24位元字所需之彼等部分之中間儲存,才能正確地填充FIFO。
對於如在實例320中展示之16位元資料寬度,將對準每隔一個之字與一32位元邊界。因此,需要具有中間緩衝之單個16位元讀取指令或一32位元讀取指令。
顯然地,如在實例310中所展示之24位元情景導致最多處理。圖3展示具有I2S傳輸能力之一增強型SPI介面。此處,一FIFO 210不直接連接至一SPI傳輸單元220,而是由一控制單元260控制對FIFO 210之存取,控制單元260(舉例而言)可包含取決於一可程式化操作模式而提供資料至傳輸單元220之一有限狀態機(FSM)。
當此單元經程式化以在I2S模式中操作時,傳輸單元220使用其如在圖3中展示之外部連接,亦即,資料線用於音訊資料,時脈線提供位元時脈信號BCLK,且SSx接腳用於LRCLK信號。圖3之底部假定SPI介面在24位元音訊模式中使用I2S協定操作。因此將直接自記憶體利用4個音訊24位元資料字填充FIFO 210。一旦FIFO 210已經填充有三個32位元字,控制單元便可存取FIFO 210,如在圖3之底部所展示。一第一存取係FSM傳送線0[31…8]至傳輸單元220。一第二存取傳送與線1[31…16]串連之線0[7…0]。一第三存取傳送與線2[31…24]串連之線1[15…0],且一第四存取傳送線2[23…0]。該系統然後向微處理器指示FIFO係空的且可將更多資料自記憶體傳送至緩衝器中。微處理器然後可直接將來自記憶體之下一三個32位元字傳送至緩衝器中而無需對資料之任何處理或重新配置。
在16位元操作模式中,狀態機260存取FIFO 210以交替地讀取上部字線x[31…16]及下部字線x[15…0]。此外,處理器可在無需重新對準自記憶體擷取之資料之情況下僅使用32位元讀取/寫入指令直接傳送資料以得到最佳速度。根據另一實施例,在16位元操作模式中, FIFO 210可僅使用一單個記憶體線。
圖4展示一同步串列介面周邊裝置400之又一實施例,其中多個SPI或I2S介面單元410、420、430、440與一FIFO 210至240一起操作以提供一多通道功能性。在此實例中,提供四個通道。然而,根據其他實施例,可提供更多或更少通道。在此類實施中,可據此增加用於每一FIFO 210至240之FIFO線之數目,使得所傳送之一音訊資料區塊相對於一32位元記憶體結構對準。歸因於24位元資料字針對一32位元記憶體系統中之每四個字而對準,因此可能必須考量一32位元系統中之多組四個通道。然而,上文所論述之概念亦可用於16位元系統中,該16位元系統將需要至少儲存兩個24位元字或對於更多通道儲存此數目之倍數的3個16位元FIFO線。較高位元系統將能夠將更多24位元字儲存於三個FIFO線中。
此外,一控制單元260可用以組態此四個通道單元且可包括協調儲存於緩衝器FIFO 210至240中之資料之傳送之一有限狀態機(FSM)。每一單元包括單獨資料線、LRCD線及CLK線。一個單元可選為一主控裝置(舉例而言,單元440),且剩餘單元410至430可作為從屬裝置而操作。根據各別實施,哪個單元係主控裝置可係可選擇的或可係固定的。如在圖4中所展示,此等單元之各別時脈線彼此連接,使得主控單元440提供時脈信號至單元410至420。因而,同步地發生音訊信號經由四個通道之所有傳輸。
外部地,該裝置可提供僅一組LRC及CLK接腳,且從屬SPI單元410至430之各別相關聯接腳可用於其他目的,諸如通用輸入/輸出接腳功能性。因而,當該裝置在於圖4至圖6中展示之各種模式中操作時,複數個外部接腳可用於其他功能。
根據各種實施例,控制單元260可經組態以允許直接自一單個緩衝器FIFO(舉例而言,FIFO 240)或自與各別傳輸單元410至440相關聯 之每一緩衝器FIFO 210至240傳送緊縮資料。控制器經組態以用與關於圖3所闡釋類似之一方式來線逐線地讀取緩衝器且協調所儲存資料至正確I2S單元410至440之傳送/組合。在一項實施例中,在24位元操作模式中,四個24位元字將分配給所有四個通道以用於同步傳輸。由於主控裝置440觸發傳輸,因此主控裝置440係接收其資料之最後通道。因此,一旦資料已經傳送至主控裝置440,主控裝置便開始傳輸,此發送各別時脈信號至所有其他單元以同時觸發傳輸。此可藉由一單獨命令或經由寫入至FIFO之完成而完成。
圖5更詳細地展示在該系統經組態於針對24位元音訊資料之I2S模式中時與圖4相同之組態。提供SPI主控控制器240及多達3個SPI從屬裝置210至230以用於解碼及傳輸呈4個通道24位元資料之3個四位元組(quadlet)或2個通道16位元資料之1個四位元組之一緊縮32位元格式之資料。當FIFO資料被讀取時,主控裝置與從屬裝置組合利用如上文所論述之主控CLK及LRC(同步脈衝)同時傳輸所有4(或2)個通道之經解碼資料。如上文所述及,根據某些實施例,在16位元操作模式中,FIFO 210至240可僅使用如用圖5中之FIFO 210至240之頂部表示所指示之一單個記憶體線。
如所展示,該系統可在一項實施例中以「一次寫入至諸多FIFO」而操作,其中將呈3或1(32位元)個四位元組形式之資料寫入至所有監視(spy)FIFO 210至240。根據此實施例,此利用其中所有FIFO將被同時定址(各自獲得相同資料值)之一個寫入循環完成,但可利用至FIFO 210至240之單獨寫入完成,此顯然將需要更多處理時間。根據某些實施例,使用者可利用一使用者可設定SPI暫存器值定義哪個SPI單元210至240獲得來自FIFO中之每一四位元組之資料之哪些位元。僅一個SPI被定義為一主控裝置,且剩餘SPI被定義為從屬裝置。表1展示用於單元210至250之可能設定。
用於來自FIFO之資料解碼之一有限狀態機(FSM)對主控裝置或從屬裝置而言係相同的。FSM控制讀取FIFO資料,且使用者定義之SPI暫存器值判定來自四位元組之資料之哪些位元應被移位出SPI。藉由來自CPU之一信號或在主控SPI FSM命令發送出資料時以自動主控模式命令主控/從屬SPI開始發送資料。
根據另一實施例,可如在圖6中所展示實施「對於一側頻匯流排僅對主控FIFO進行寫入」。在此實施例中,呈3或1(32位元)個四位元組形式之資料僅寫入至主控FIFO(舉例而言,FIFO 240)。使用者已經利用一使用者可設定SPI暫存器值定義哪個從屬SPI獲得來自FIFO 240中之每一四位元組之資料之哪些位元。僅一個SPI被定義為一主控裝置,且剩餘SPI被定義為從屬裝置。用於來自FIFO 240之資料解碼之FSM對於主控裝置或從屬裝置而言係相同的,但僅在從屬裝置中啟用。FSM控制讀取FIFO資料,且使用者定義之SPI暫存器值判定來自四位元組之資料之哪些位元應被移位出SPI。藉由來自CPU之一信號CMD_SPI_GO或在主控SPI FSM命令發送出資料時以自動主控模式命令主控/從屬SPI開始發送資料。一資料匯流排MST_SLV_DATA[24:0]連接至所有SPI單元以用於傳輸資料。一第二匯流排MST_SLV_BUS[2:0]根據表2提供控制值。如在圖6中所展示,資料及控制信號可經引導通過SPI主控單元440。然而,其他實施例可藉由控制單元260而提供此等信號。如上文所述及,根據某些實施例,在16 位元操作模式中,FIFO 210可僅使用一單個記憶體線。
可視情況組合如上文所闡述之所有功能性。舉例而言,一裝置可經設計以在如在圖5及圖6中所展示之一第一操作模式及一第二操作模式中操作。FIFO可經設計以具有(舉例而言)三個以上記憶體線之一可程式化大小。因此,例如對一或多個通道使用32位元寬音訊資料之其他操作模式可受益於一較大FIFO大小。
圖7展示根據各種實施例之包含饋送四個通道之24位元操作模式之三個連續讀取操作以及饋送兩個通道之16位元操作模式中之一單個讀取操作之一般性流程圖。注釋:可在於等待狀態期間確證了一各別信號cmd_spi_go時載入FIFO之下一些值。此使得可將下一個FIFO值預載入至傳輸暫存器中。可在於等待狀態期間確證了信號cmd_spi_go時確證等於系統時脈週期之一脈衝之master_latch_next_data信號,以在前一個rdy_tx_reg_data之最後位元被移位出之前將資料暫存至SPI移位器中。在於停滯狀態期間啟用之後首次通過FSM時,在cmd_spi_go脈衝下給pre_tx_reg及rdy_tx_reg載入相同值。
圖8展示根據一實施例之24位元操作模式之一流程圖。圖10展示根據一實施例之16位元操作模式之一流程圖,其中FIFO中之一單個記憶體線係可操作的。注釋:在tx_reg之移位之開始處確證等於系統時脈之一脈衝之load_next_value。因此,下一些FIFO值可在tx_reg中之移位需要之前預載入至pre_tx_reg中。當在停滯狀態期間來自CPU之通行信號為高或處於自動模式中時且在SPI移位器已經將待移位出 之tx_reg資料之最後位元移位出之前,確證等於系統時脈之一脈衝之mst_latch_next_data。在於停滯狀態下啟用之後首次通過狀態機時,利用latch_next_data給pre_tx_reg及tx_reg載入相同值。
圖9展示根據一實施例之具有四個通道及各別資料組合路徑之24位元模式之一流程圖。注釋:Load_next_value:係在主控tx_ms_reg之移位之開始時針對等於系統時脈之一脈衝而經確證。因此,下一些FIFO值可在tx_xx_reg中之移位需要之前預載入至pre_tx_xx_reg中。Latch_next_data:係在於停滯狀態期間來自CPU之通行信號為高或處於自動模式中時且在SPI主控移位器已經將待移位出之tx_ms_reg資料之最後位元移位出之前,針對等於系統時脈之一脈衝而經確證。在於停滯狀態下啟用之後首次通過狀態機時,利用latch_next_data給pre_tx_reg及tx_reg載入相同值。
0‧‧‧線
1‧‧‧線
2‧‧‧線
3‧‧‧線
210‧‧‧先進先出
220‧‧‧串列周邊介面傳輸單元
260‧‧‧控制單元

Claims (32)

  1. 一種串列周邊介面,其可組態以在一I2S傳輸模式中操作且包括:一傳輸單元,其與用於資料、位元時脈及左/右時脈信號之外部接腳連接;一先進先出(FIFO)緩衝器,其包括複數個記憶體線;及一控制單元,其可操作以自兩個記憶體線讀取資料部分,將該等資料部分組合成一傳輸字,且將該經組合傳輸字轉送至該傳輸單元,其中該傳輸單元經組態以經由該外部資料接腳串列地傳輸該經組合傳輸字。
  2. 如請求項1之串列周邊介面,其中該FIFO緩衝器包括三個32位元記憶體線。
  3. 如請求項2之串列周邊介面,其中在一24位元操作模式中,該控制單元經組態以:存取第一記憶體線以讀取上部24個位元,並將該等位元傳送至該傳輸單元,然後存取該第一記憶體線以讀取下部8個位元且存取第二記憶體線以讀取上部16個位元,並將一經組合24位元字傳送至該傳輸單元,然後存取該第二記憶體線以讀取下部16個位元且存取第三記憶體線以讀取上部8個位元,並將一經組合24位元字傳送至該傳輸單元,及然後存取該第三記憶體線以讀取下部24個位元,並將該等位元傳送至該傳輸單元。
  4. 如請求項2之串列周邊介面,其中在一16位元操作模式中,該控 制單元經組態以:存取該第一記憶體線以讀取上部16個位元,並將該等位元傳送至該傳輸單元,然後存取該第一記憶體線以讀取該下部16個位元以將該等位元傳送至該傳輸單元,然後針對該第二記憶體線及該第三記憶體線重複該存取及該傳送。
  5. 一種串列周邊介面,其可組態以在一I2S傳輸模式中操作且包括:複數個傳輸單元,其各自與至少一外部資料接腳連接;相關聯先進先出(FIFO)緩衝器,其各自包括複數個記憶體線;及一控制單元,其可操作以自兩個記憶體線讀取資料部分,將該等資料部分組合成一傳輸字,且將該經組合傳輸字轉送至該傳輸單元,其中該傳輸單元經組態以經由該外部資料接腳串列地傳輸該經組合傳輸字。
  6. 如請求項5之串列周邊介面,其中每一FIFO緩衝器包括三個32位元記憶體線。
  7. 如請求項6之串列周邊介面,其中該等傳輸單元中之一者經組態為一主控單元且剩餘傳輸單元經組態為從屬單元。
  8. 如請求項7之串列周邊介面,其中對所有FIFO緩衝器執行輸入操作,使得一寫入操作將資料寫入至每一FIFO緩衝器中之相同位址。
  9. 如請求項8之串列周邊介面,其中每一傳輸單元自一相關聯FIFO緩衝器讀取一單個資料字,其中在一相關聯控制暫存器中定義該單個資料字之該位址。
  10. 如請求項9之串列周邊介面,其中在一24位元操作模式,分別地,一第一傳輸單元讀取一相關聯FIFO緩衝器之一第一記憶體線之上部24個位元,一第二傳輸單元讀取該第一記憶體線之下部8個位元及第二記憶體線之上部16個位元,第三傳輸單元讀取該第二記憶體線之下部16個位元及第三記憶體線之上部8個位元,且第四傳輸單元讀取該第三記憶體線之下部24個位元。
  11. 如請求項9之串列周邊介面,其中在一16位元操作模式中,分別地,一第一傳輸單元讀取每一記憶體線之該上部16個位元,且一第二傳輸單元讀取每一記憶體線之該下部16個位元。
  12. 如請求項9之串列周邊介面,其中在該16位元操作模式中,該等FIFO緩衝器僅使用一單個32位元記憶體線。
  13. 如請求項7之串列周邊介面,其中該等FIFO緩衝器中之僅一者用於所有四個傳輸單元。
  14. 如請求項13之串列周邊介面,其中在該24位元操作模式中,該控制單元經組態以:存取一選定FIFO緩衝器之該第一記憶體線以讀取該上部24個位元,並將該等位元傳送至該第一傳輸單元,然後存取該選定FIFO緩衝器之該第一記憶體線以讀取該下部8個位元且存取該第二記憶體線以讀取該上部16個位元,並將一經組合24位元字傳送至該第二傳輸單元,然後存取該選定FIFO緩衝器之該第二記憶體線以讀取該下部16個位元且存取該第三記憶體線以讀取該上部8個位元,並將一經組合24位元字傳送至該第三傳輸單元,及然後存取該選定FIFO緩衝器之該第三記憶體線以讀取該下部24個位元,並將該等位元傳送至該第四傳輸單元。
  15. 如請求項13之串列周邊介面,其中在一16位元操作模式中,該 控制單元經組態以:存取一選定FIFO緩衝器之每一記憶體線以讀取該上部16個位元,並將該等位元傳送至該第一傳輸單元,及然後存取該選定FIFO緩衝器之每一記憶體線以讀取該下部16個位元,並將該等位元傳送至該第二傳輸單元。
  16. 如請求項15之串列周邊介面,其中在該16位元操作模式中,該FIFO緩衝器僅使用一單個32位元記憶體線。
  17. 一種操作可組態以在一I2S傳輸模式中操作之一串列周邊介面之方法,其包括以下步驟:組態該串列周邊介面以在I2S模式中操作,其中該串列周邊介面包括與用於資料、位元時脈及左/右時脈信號之外部接腳連接之一傳輸單元;提供包括複數個記憶體線之一先進先出(FIFO)緩衝器;及控制該串列周邊介面以自兩個記憶體線讀取資料部分,將該等資料部分組合成一傳輸字,將該經組合傳輸字轉送至該傳輸單元,及經由該外部資料接腳串列地傳輸該經組合傳輸字。
  18. 如請求項17之方法,其中該FIFO緩衝器包括三個32位元記憶體線。
  19. 如請求項18之方法,其中在一24位元操作模式中,該方法包括:存取第一記憶體線以讀取上部24個位元,並將該等位元傳送至該傳輸單元,然後存取該第一記憶體線以讀取下部8個位元且存取第二記憶體線以讀取上部16個位元,並將一經組合24位元字傳送至 該傳輸單元,然後存取該第二記憶體線以讀取下部16個位元且存取第三記憶體線以讀取上部8個位元,並將一經組合24位元字傳送至該傳輸單元,及然後存取該第三記憶體線以讀取下部24個位元,並將該等位元傳送至該傳輸單元。
  20. 如請求項18之方法,其中在一16位元操作模式中,該方法包括:存取該第一記憶體線以讀取上部16個位元,並將該等位元傳送至該傳輸單元,然後存取該第一記憶體線以讀取該下部16個位元,將該等位元傳送至該傳輸單元,然後針對第二記憶體線及第三記憶體線重複存取及傳送之該等步驟。
  21. 一種操作可組態以在一I2S傳輸模式中操作之一串列周邊介面之方法,其包括以下步驟:提供各自與至少一外部資料接腳連接之複數個傳輸單元;提供各自包括複數個記憶體線之相關聯先進先出(FIFO)緩衝器;及自兩個記憶體線讀取資料部分,將該等資料部分組合成一傳輸字,將該經組合傳輸字轉送至該傳輸單元,及經由該外部資料接腳串列地傳輸該經組合傳輸字。
  22. 如請求項21之方法,其中每一FIFO緩衝器包括三個32位元記憶體線。
  23. 如請求項22之方法,其包括將該等傳輸單元中之一者組態為一 主控單元且將剩餘傳輸單元組態為從屬單元之步驟。
  24. 如請求項23之方法,其包括對所有FIFO緩衝器執行輸入操作,使得一寫入操作將資料寫入至每一FIFO緩衝器中之相同位址。
  25. 如請求項24之方法,其中每一傳輸單元自一相關聯FIFO緩衝器讀取一單個資料字,其中在一相關聯控制暫存器中定義該單個資料字之該位址。
  26. 如請求項25之方法,其中在一24位元操作模式,分別地,一第一傳輸單元讀取一相關聯FIFO緩衝器之一第一記憶體線之上部24個位元,一第二傳輸單元讀取該第一記憶體線之下部個8位元及第二記憶體線之上部16個位元,第三傳輸單元讀取該第二記憶體線之下部16個位元及第三記憶體線之上部8個位元,且第四傳輸單元讀取該第三記憶體線之下部24個位元。
  27. 如請求項25之方法,其中在一16位元操作模式中,分別地,一第一傳輸單元讀取每一記憶體線之該上部16個位元,且一第二傳輸單元讀取每一記憶體線之該下部16個位元。
  28. 如請求項25之方法,其中在該16位元操作模式中,該等FIFO緩衝器僅使用一單個32位元記憶體線。
  29. 如請求項23之方法,其中該等FIFO緩衝器中之僅一者用於所有四個傳輸單元。
  30. 如請求項29之方法,其中在一24位元操作模式中,該方法包括:存取一選定FIFO緩衝器之該第一記憶體線以讀取該上部24個位元,並將該等位元傳送至該第一傳輸單元,然後存取該選定FIFO緩衝器之該第一記憶體線以讀取該下部8個位元且存取該第二記憶體線以讀取該上部16個位元,並將一經組合24位元字傳送至該第二傳輸單元, 然後存取該選定FIFO緩衝器之該第二記憶體線以讀取該下部16個位元且存取該第三記憶體線以讀取該上部8個位元,並將一經組合24位元字傳送至該第三傳輸單元,及然後存取該選定FIFO緩衝器之該第三記憶體線以讀取該下部24個位元,並將該等位元傳送至該第四傳輸單元。
  31. 如請求項29之方法,其中在一16位元操作模式中,該方法包括:存取一選定FIFO緩衝器之每一記憶體線以讀取該上部16個位元,並將該等位元傳送至該第一傳輸單元,及然後存取該選定FIFO緩衝器之每一記憶體線以讀取該下部16個位元,並將該等位元傳送至該第二傳輸單元。
  32. 如請求項31之方法,其中在該16位元操作模式中,該FIFO緩衝器僅使用一單個32位元記憶體線。
TW104137220A 2014-11-11 2015-11-11 多通道is傳輸控制系統及方法 TW201633164A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/538,133 US9842071B2 (en) 2014-11-11 2014-11-11 Multi-channel I2S transmit control system and method

Publications (1)

Publication Number Publication Date
TW201633164A true TW201633164A (zh) 2016-09-16

Family

ID=54705814

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104137220A TW201633164A (zh) 2014-11-11 2015-11-11 多通道is傳輸控制系統及方法

Country Status (7)

Country Link
US (1) US9842071B2 (zh)
EP (1) EP3218813B1 (zh)
JP (1) JP2018502406A (zh)
KR (1) KR20170084043A (zh)
CN (1) CN107111587A (zh)
TW (1) TW201633164A (zh)
WO (1) WO2016077189A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108304282A (zh) * 2018-03-07 2018-07-20 郑州云海信息技术有限公司 一种双bios的控制方法及相关装置
TWI699656B (zh) * 2018-12-27 2020-07-21 新唐科技股份有限公司 可切換的i2s介面

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2539445A (en) * 2015-06-16 2016-12-21 Nordic Semiconductor Asa Data processing
US10007485B2 (en) * 2016-01-12 2018-06-26 Oracle International Corporation Zero-delay compression FIFO buffer
CN106911987B (zh) * 2017-02-21 2019-11-05 珠海全志科技股份有限公司 主控端、设备端、传输多声道音频数据的方法和系统
CN108628793B (zh) * 2017-03-20 2021-04-02 华大半导体有限公司 Spi通信电路及方法
FR3066033B1 (fr) * 2017-05-05 2019-06-21 Stmicroelectronics (Rousset) Sas Dispositif d'etage tampon, en particulier apte a etre connecte sur un bus du type interface de peripherique serie
DE102019112447A1 (de) * 2019-05-13 2020-11-19 Jenoptik Optical Systems Gmbh Verfahren und Auswerteeinheit zur Ermittlung eines Zeitpunkts einer Flanke in einem Signal
DE112020004915T5 (de) * 2019-10-10 2022-06-30 Microchip Technology Incorporated Serielle n-kanal-peripheriekommunikation und darauf bezogene systeme, verfahren und vorrichtungen
IT202000006322A1 (it) * 2020-03-25 2021-09-25 Stmicroelectronics Application Gmbh Sistema di elaborazione comprendente un’interfaccia periferica seriale con code, relativo circuito integrato, dispositivo e procedimento
RU2762040C1 (ru) * 2020-11-06 2021-12-15 СВИ Коммуникатионс-унд Компутер ГмбХ Система объединения цифровых потоков и способ объединения цифровых потоков (варианты)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517627A (en) * 1992-09-18 1996-05-14 3Com Corporation Read and write data aligner and method
JP2004240713A (ja) * 2003-02-06 2004-08-26 Matsushita Electric Ind Co Ltd データ転送方法及びデータ転送装置
EP1447739A1 (en) * 2003-02-12 2004-08-18 Deutsche Thomson-Brandt Gmbh Method and apparatus for preprocessing input/output signals of/to different types of interfaces using a common format
JP4354268B2 (ja) * 2003-12-22 2009-10-28 株式会社河合楽器製作所 信号処理装置
KR100881191B1 (ko) 2007-03-27 2009-02-05 삼성전자주식회사 멀티 프로토콜 씨리얼 인터페이스 장치 및 그에 따른soc 장치
CN102113367B (zh) * 2008-06-23 2013-11-20 Hart通信基金会 无线通信网络分析仪
US8255593B2 (en) * 2009-09-29 2012-08-28 Oracle America, Inc. Direct memory access with striding across memory
US9001227B2 (en) * 2010-04-05 2015-04-07 Qualcomm Incorporated Combining data from multiple image sensors
CN102117478B (zh) * 2011-02-09 2012-10-03 河南科技大学 批量图像数据的实时处理方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108304282A (zh) * 2018-03-07 2018-07-20 郑州云海信息技术有限公司 一种双bios的控制方法及相关装置
CN108304282B (zh) * 2018-03-07 2021-04-20 郑州云海信息技术有限公司 一种双bios的控制方法及相关装置
TWI699656B (zh) * 2018-12-27 2020-07-21 新唐科技股份有限公司 可切換的i2s介面
US11314682B2 (en) 2018-12-27 2022-04-26 Nuvoton Technology Corporation Switchable I2S interface

Also Published As

Publication number Publication date
WO2016077189A1 (en) 2016-05-19
EP3218813A1 (en) 2017-09-20
US9842071B2 (en) 2017-12-12
EP3218813B1 (en) 2022-05-04
KR20170084043A (ko) 2017-07-19
US20160132440A1 (en) 2016-05-12
JP2018502406A (ja) 2018-01-25
CN107111587A (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
TW201633164A (zh) 多通道is傳輸控制系統及方法
JP6173340B2 (ja) バス上の複数のデータ線を介してデータを送るシステムおよび方法
US8266360B2 (en) I2C-bus interface with parallel operational mode
US7088132B1 (en) Configuring FPGAs and the like using one or more serial memory devices
US20140115229A1 (en) Method and system to reduce system boot loader download time for spi based flash memories
WO2022121199A1 (zh) Qspi控制器,图像处理器及闪存访问方法
CN107710184B (zh) 具有少于八位的字节及可变分组大小的spi接口
US20100064083A1 (en) Communications device without passive pullup components
US7468613B1 (en) Methods and apparatus for control and configuration of programmable logic devices
EP3336710B1 (en) I²c bridge device
JP2009527829A (ja) 複数のプロセッサコア用の共通アナログインターフェイス
WO2016095435A1 (zh) 一种多芯片级联的方法、芯片和装置、存储介质
US20090070502A1 (en) Data Modification Module
US8984195B2 (en) Microcontroller including alternative links between peripherals for resource sharing
WO2008096000A1 (en) Microcontroller with memory trace module
US7650440B2 (en) Peripheral supplied addressing in a simple DMA module
CN111026691A (zh) 基于apb总线的owi通讯设备
JP2006072592A5 (zh)
US7603487B2 (en) Hardware configurable hub interface unit
US7831754B1 (en) Multiple communication channel configuration systems and methods
TWI579845B (zh) 具預看快速讀取之串列記憶體
EP3819778A1 (en) Bus system and method for operating a bus system
JP2008071285A (ja) プロセッサ間におけるデータ送受信システム
US20230195661A1 (en) Method for data communication between subregions of an fpga
US20170126427A1 (en) Motor controller attaining both low latency and high throughput data communications