亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

多信道I2S傳輸控制系統(tǒng)及方法與流程

文檔序號(hào):11450416閱讀:820來(lái)源:國(guó)知局
多信道I2S傳輸控制系統(tǒng)及方法與流程

本發(fā)明涉及一種同步串行總線,特定來(lái)說(shuō)是i2s類型的同步串行總線。



背景技術(shù):

存在其中在單獨(dú)線上傳輸時(shí)鐘及數(shù)據(jù)的各種同步串行協(xié)議。同步串行接口的最常見(jiàn)實(shí)施方案中的一者是串行外圍接口(spi)總線,其包括用于輸入及輸出的單獨(dú)數(shù)據(jù)線、時(shí)鐘線、任選地選擇線及/或從選擇線。

i2s總線使用類似數(shù)目個(gè)線,但提供不同傳輸協(xié)議。微控制器通常實(shí)施待增強(qiáng)的spi協(xié)議,使得spi接口可模擬i2s接口。i2s協(xié)議使用時(shí)鐘線上的位時(shí)鐘信號(hào)bclk及單獨(dú)字時(shí)鐘線。字時(shí)鐘通常稱為左/右時(shí)鐘信號(hào)lrclk。一般來(lái)說(shuō),利用lrclk的每一邊緣,使用位時(shí)鐘信號(hào)串行地傳輸左或右信道數(shù)據(jù)字。i2s協(xié)議對(duì)于音頻數(shù)據(jù)是優(yōu)選的。取決于配置,在裝置之間傳送具有16、24或32個(gè)位的音頻數(shù)據(jù)字。特定來(lái)說(shuō),24位模式通常通過(guò)使用32個(gè)位來(lái)模擬或需要正確地實(shí)施某種數(shù)據(jù)處理。

需要i2s接口(特定來(lái)說(shuō),在微控制器中)的經(jīng)改善實(shí)施方案。



技術(shù)實(shí)現(xiàn)要素:

根據(jù)一實(shí)施例,一種串行外圍接口可配置以在i2s傳輸模式中操作且可包括:傳輸單元,其與用于數(shù)據(jù)、位時(shí)鐘及左/右時(shí)鐘信號(hào)的外部引腳連接;先進(jìn)先出(fifo)緩沖器,其包括多個(gè)存儲(chǔ)器線;及控制單元,其可操作以從兩個(gè)存儲(chǔ)器線讀取數(shù)據(jù)部分,將所述數(shù)據(jù)部分匯編成傳輸字,且將所述經(jīng)匯編傳輸字轉(zhuǎn)發(fā)到所述傳輸單元,其中所述傳輸單元經(jīng)配置以經(jīng)由所述外部數(shù)據(jù)引腳串行地傳輸所述經(jīng)匯編傳輸字。

根據(jù)另一實(shí)施例,所述fifo緩沖器可包括三個(gè)32位存儲(chǔ)器線。根據(jù)另一實(shí)施例,在24位操作模式中,所述控制單元經(jīng)配置以:存取第一存儲(chǔ)器線以讀取位上部24個(gè)位,并將所述位傳送到所述傳輸單元;接著存取所述第一存儲(chǔ)器線以讀取下部8個(gè)位且存取第二存儲(chǔ)器線以讀取上部16個(gè)位,并將經(jīng)組合的24位字傳送到所述傳輸單元;接著存取所述第二存儲(chǔ)器線以讀取下部16個(gè)位且存取第三存儲(chǔ)器線以讀取上部8個(gè)位,并將經(jīng)組合的24位字傳送到所述傳輸單元;及接著存取所述第三存儲(chǔ)器線以讀取下部24個(gè)位,并將所述位傳送到所述傳輸單元。根據(jù)另一實(shí)施例,在16位操作模式中,所述控制單元經(jīng)配置以:存取所述第一存儲(chǔ)器線以讀取位所述上部16個(gè)位,并將所述位傳送到所述傳輸單元;接著存取所述第一存儲(chǔ)器線以讀取所述下部16個(gè)位以將所述位傳送到所述傳輸單元;接著針對(duì)所述第二存儲(chǔ)器線及所述第三存儲(chǔ)器線重復(fù)所述存取及傳送。

根據(jù)另一實(shí)施例,一種串行外圍接口可配置以在i2s傳輸模式中操作且可包括:多個(gè)傳輸單元,其各自與至少一外部數(shù)據(jù)引腳連接;相關(guān)聯(lián)先進(jìn)先出(fifo)緩沖器,其各自包括多個(gè)存儲(chǔ)器線;及控制單元,其可操作以從兩個(gè)存儲(chǔ)器線讀取數(shù)據(jù)部分,將所述數(shù)據(jù)部分匯編成傳輸字,且將所述經(jīng)匯編傳輸字轉(zhuǎn)發(fā)到所述傳輸單元,其中所述傳輸單元經(jīng)配置以經(jīng)由所述外部數(shù)據(jù)引腳串行地傳輸所述經(jīng)匯編傳輸字。

根據(jù)另一實(shí)施例,每一fifo緩沖器包括三個(gè)32位存儲(chǔ)器線。根據(jù)另一實(shí)施例,所述傳輸單元中的一者可經(jīng)配置為主單元且其余傳輸單元經(jīng)配置為從單元。根據(jù)另一實(shí)施例,對(duì)所有fifo緩沖器執(zhí)行輸入操作,使得寫(xiě)入操作將數(shù)據(jù)寫(xiě)入到每一fifo緩沖器中的相同地址。根據(jù)另一實(shí)施例,每一傳輸單元從相關(guān)聯(lián)fifo緩沖器讀取單個(gè)數(shù)據(jù)字,其中在相關(guān)聯(lián)控制寄存器中定義所述單個(gè)數(shù)據(jù)字的所述地址。根據(jù)另一實(shí)施例,在24位操作模式中,分別地,第一傳輸單元讀取相關(guān)聯(lián)fifo緩沖器的第一存儲(chǔ)器線的上部24個(gè)位,第二傳輸單元讀取所述第一存儲(chǔ)器線的下部8個(gè)位及第二存儲(chǔ)器的上部16個(gè)位,第三傳輸單元讀取所述第二存儲(chǔ)器線的下部16個(gè)位及第三存儲(chǔ)器線的上部8個(gè)位,且第四傳輸單元讀取所述第三存儲(chǔ)器線的下部24個(gè)位。根據(jù)另一實(shí)施例,在16位操作模式中,分別地,第一傳輸單元讀取每一存儲(chǔ)器線的所述上部16個(gè)位,且第二傳輸單元讀取每一存儲(chǔ)器線的所述下部16個(gè)位。根據(jù)另一實(shí)施例,在所述16位操作模式中,所述fifo緩沖器僅使用單個(gè)32位存儲(chǔ)器線。根據(jù)另一實(shí)施例,所述fifo緩沖器中的僅一者用于所有四個(gè)傳輸單元。根據(jù)另一實(shí)施例,在所述24位操作模式中,所述控制單元經(jīng)配置以:存取選定fifo緩沖器的所述第一存儲(chǔ)器線以讀取所述上部24個(gè)位,并將所述位傳送到所述第一傳輸單元;接著存取所述選定fifo緩沖器的所述第一存儲(chǔ)器線以讀取所述下部8個(gè)位且存取所述第二存儲(chǔ)器線以讀取所述上部16個(gè)位,并將經(jīng)組合的24位字傳送到所述第二傳輸單元;接著存取所述選定fifo緩沖器的所述第二存儲(chǔ)器線以讀取所述下部16個(gè)位且存取所述第三存儲(chǔ)器線以讀取所述上部8個(gè)位,并將經(jīng)組合的24位字傳送到所述第三傳輸單元;及接著存取所述選定fifo緩沖器的所述第三存儲(chǔ)器線以讀取所述下部24個(gè)位,并將所述位傳送到所述第四傳輸單元。根據(jù)另一實(shí)施例,在16位操作模式中,所述控制單元經(jīng)配置以:存取選定fifo緩沖器的每一存儲(chǔ)器線以讀取所述上部16個(gè)位,并將所述位傳送到所述第一傳輸單元;及接著存取所述選定fifo緩沖器的每一存儲(chǔ)器線以讀取所述下部16個(gè)位,并將所述位傳送到所述第二傳輸單元。根據(jù)另一實(shí)施例,在所述16位操作模式中,所述fifo緩沖器僅使用單個(gè)32位存儲(chǔ)器線。

根據(jù)另一實(shí)施例,一種操作可配置以在i2s傳輸模式中操作的串行外圍接口的方法可包括以下步驟:配置所述串行外圍接口以在i2s模式中操作,其中所述串行外圍接口包括與用于數(shù)據(jù)、位時(shí)鐘及左/右時(shí)鐘信號(hào)的外部引腳連接的傳輸單元;提供包括多個(gè)存儲(chǔ)器線的先進(jìn)先出(fifo)緩沖器;及控制所述串行外圍接口以從兩個(gè)存儲(chǔ)器線讀取數(shù)據(jù)部分,將所述數(shù)據(jù)部分匯編成傳輸字,將所述經(jīng)匯編傳輸字轉(zhuǎn)發(fā)到所述傳輸單元,及經(jīng)由所述外部數(shù)據(jù)引腳串行地傳輸所述經(jīng)匯編傳輸字。

根據(jù)所述方法的另一實(shí)施例,所述fifo緩沖器可包括三個(gè)32位存儲(chǔ)器線。根據(jù)所述方法的另一實(shí)施例,在24位操作模式中,所述方法包括:存取第一存儲(chǔ)器線以讀取位上部24個(gè)位,并將所述位傳送到所述傳輸單元;接著存取所述第一存儲(chǔ)器線以讀取下部8個(gè)位且存取第二存儲(chǔ)器線以讀取上部16個(gè)位,并將經(jīng)組合的24位字傳送到所述傳輸單元;接著存取所述第二存儲(chǔ)器線以讀取下部16個(gè)位且存取第三存儲(chǔ)器線以讀取上部8個(gè)位,并將經(jīng)組合的24位字傳送到所述傳輸單元;及接著存取所述第三存儲(chǔ)器線以讀取下部24個(gè)位,并將所述位傳送到所述傳輸單元。根據(jù)所述方法的另一實(shí)施例,在16位操作模式中,所述方法包括:存取所述第一存儲(chǔ)器線以讀取位所述上部16個(gè)位,并將所述位傳送到所述傳輸單元;接著存取所述第一存儲(chǔ)器線以讀取所述下部16個(gè)位,將所述位傳送到所述傳輸單元;接著針對(duì)所述第二存儲(chǔ)器線及所述第三存儲(chǔ)器線重復(fù)所述存取及傳送步驟。

根據(jù)另一實(shí)施例,一種操作可配置以在i2s傳輸模式中操作的串行外圍接口的方法可包括以下步驟:提供各自與至少一外部數(shù)據(jù)引腳連接的多個(gè)傳輸單元;提供各自包括多個(gè)存儲(chǔ)器線的相關(guān)聯(lián)先進(jìn)先出(fifo)緩沖器;及從兩個(gè)存儲(chǔ)器線讀取數(shù)據(jù)部分,將所述數(shù)據(jù)部分匯編成傳輸字,將所述經(jīng)匯編傳輸字轉(zhuǎn)發(fā)到所述傳輸單元,及經(jīng)由所述外部數(shù)據(jù)引腳串行地傳輸所述經(jīng)匯編傳輸字。

根據(jù)所述方法的另一實(shí)施例,每一fifo緩沖器可包括三個(gè)32位存儲(chǔ)器線。根據(jù)所述方法的另一實(shí)施例,所述方法可包括將所述傳輸單元中的一者配置為主單元且將其余傳輸單元配置為從單元的步驟。根據(jù)所述方法的另一實(shí)施例,所述方法可包括對(duì)所有fifo緩沖器執(zhí)行輸入操作,使得寫(xiě)入操作將數(shù)據(jù)寫(xiě)入到每一fifo緩沖器中的相同地址。根據(jù)所述方法的另一實(shí)施例,每一傳輸單元可從相關(guān)聯(lián)fifo緩沖器讀取單個(gè)數(shù)據(jù)字,其中在相關(guān)聯(lián)控制寄存器中定義所述單個(gè)數(shù)據(jù)字的所述地址。根據(jù)所述方法的另一實(shí)施例,在24位操作模式中,分別地,第一傳輸單元讀取相關(guān)聯(lián)fifo緩沖器的第一存儲(chǔ)器線的上部24個(gè)位,第二傳輸單元讀取所述第一存儲(chǔ)器線的下部8個(gè)位及第二存儲(chǔ)器的上部16個(gè)位,第三傳輸單元讀取所述第二存儲(chǔ)器線的下部16個(gè)位及第三存儲(chǔ)器線的上部8個(gè)位,且第四傳輸單元讀取所述第三存儲(chǔ)器線的下部24個(gè)位。根據(jù)所述方法的另一實(shí)施例,在16位操作模式中,分別地,第一傳輸單元讀取每一存儲(chǔ)器線的所述上部16個(gè)位,且第二傳輸單元讀取每一存儲(chǔ)器線的所述下部16個(gè)位。根據(jù)所述方法的另一實(shí)施例,在所述16位操作模式中,所述fifo緩沖器僅使用單個(gè)32位存儲(chǔ)器線。根據(jù)所述方法的另一實(shí)施例,所述fifo緩沖器中的僅一者用于所有四個(gè)傳輸單元。根據(jù)所述方法的另一實(shí)施例,在24位操作模式中,所述方法包括:存取選定fifo緩沖器的所述第一存儲(chǔ)器線以讀取所述上部24個(gè)位,并將所述位傳送到所述第一傳輸單元;接著存取所述選定fifo緩沖器的所述第一存儲(chǔ)器線以讀取所述下部8個(gè)位且存取所述第二存儲(chǔ)器線以讀取所述上部16個(gè)位,并將經(jīng)組合的24位字傳送到所述第二傳輸單元;接著存取所述選定fifo緩沖器的所述第二存儲(chǔ)器線以讀取所述下部16個(gè)位且存取所述第三存儲(chǔ)器線以讀取所述上部8個(gè)位,并將經(jīng)組合的24位字傳送到所述第三傳輸單元;及接著存取所述選定fifo緩沖器的所述第三存儲(chǔ)器線以讀取所述下部24個(gè)位,并將所述位傳送到所述第四傳輸單元。根據(jù)所述方法的另一實(shí)施例,在16位操作模式中,所述方法包括:存取選定fifo緩沖器的每一存儲(chǔ)器線以讀取所述上部16個(gè)位,并將所述位傳送到所述第一傳輸單元;及接著存取所述選定fifo緩沖器的每一存儲(chǔ)器線以讀取所述下部16個(gè)位,并將所述位傳送到所述第二傳輸單元。根據(jù)所述方法的另一實(shí)施例,在所述16位操作模式中,所述fifo緩沖器僅使用單個(gè)32位存儲(chǔ)器線。

附圖說(shuō)明

圖1展示常規(guī)串行外圍接口;

圖2展示根據(jù)各種實(shí)施例的各種操作模式的fifo緩沖器;

圖3展示實(shí)施例的框圖;

圖4展示另一實(shí)施例的框圖;

圖5及6展示根據(jù)圖4的實(shí)施例的操作模式;及

圖7到10展示根據(jù)各種實(shí)施例的操作模式的流程圖。

具體實(shí)施方式

圖1展示可在微控制器內(nèi)實(shí)施的常規(guī)spi接口外圍裝置100。待由所述裝置在外部傳送的數(shù)據(jù)經(jīng)由內(nèi)部總線110寫(xiě)入到緩沖寄存器120中。所述緩沖寄存器可實(shí)施為如在圖1中所展示具有單獨(dú)傳輸及接收緩沖器的先進(jìn)先出(fifo)存儲(chǔ)器130且可具有任何適合大小。根據(jù)一些實(shí)施例,緩沖器的fifo功能性可是可編程的以被啟用或停用。輸入緩沖器120/130與傳送移位寄存器140耦合,傳送移位寄存器140與外部輸入引腳sdix及外部輸出引腳sdox連接。‘x’指示多個(gè)單元可存在于微控制器中。

從選擇與幀同步控制單元150被提供且與外部從選擇引腳ssx耦合并可控制寄存器140的輸出與輸出引腳sdox之間的三態(tài)緩沖器。時(shí)鐘控制單元160提供操作移位寄存器140的移位時(shí)鐘信號(hào)。時(shí)鐘控制單元160也與從選擇與幀同步控制單元150以及邊緣選擇單元170耦合。波特(baud)速率產(chǎn)生器180可通過(guò)各種內(nèi)部時(shí)鐘信號(hào)以可編程方式被驅(qū)動(dòng)且經(jīng)由可控制驅(qū)動(dòng)器與外部引腳sckx及邊緣選擇單元170耦合。可實(shí)施可用于配置spi的各種控制寄存器。

此spi外圍裝置100經(jīng)設(shè)計(jì)以作為具有各種操作模式(例如主模式或從模式、幀式操作、dsp模式等)的正常spi接口而操作。另外,此外圍裝置可經(jīng)配置以作為i2s接口而操作。在此模式中,ssx引腳用作lrclk引腳,sckx作為bclk線而操作,且sdix及sdox作為數(shù)據(jù)信號(hào)輸入/輸出引腳而操作。取決于單元100是作為主裝置還是從裝置而操作,引腳ssx及sckx是輸出(主)引腳或輸入(從)引腳。

一旦數(shù)據(jù)字被寫(xiě)入到緩沖器中,外圍裝置便將經(jīng)由移位寄存器將經(jīng)寫(xiě)入數(shù)據(jù)傳送到輸出引腳sdox。如果所述單元是配置為主裝置,那么通過(guò)裝置100產(chǎn)生相應(yīng)時(shí)鐘信號(hào)。當(dāng)作為從裝置操作時(shí),裝置100在接收到相應(yīng)lrclk信號(hào)之后即刻從緩沖器提取新數(shù)據(jù)字。所述裝置可編程以傳送具有16、24或32個(gè)位的數(shù)據(jù)字,其中fifo經(jīng)設(shè)計(jì)以具有多個(gè)32位寄存器。當(dāng)經(jīng)編程以傳輸16位字時(shí),僅傳輸每一緩沖寄存器中的下部16個(gè)位且將忽略上部16個(gè)位。當(dāng)經(jīng)編程以傳輸24位字時(shí),僅傳輸每一緩沖寄存器中的下部24個(gè)位且將忽略上部8個(gè)位。當(dāng)經(jīng)編程以傳輸32位字時(shí),傳輸每一整個(gè)緩沖寄存器。因此,此實(shí)施方案需要對(duì)數(shù)據(jù)的某一預(yù)處理,這是因?yàn)橐纛l數(shù)據(jù)一般來(lái)說(shuō)是以打包方式存儲(chǔ)于大容量存儲(chǔ)裝置中。因此,僅32位傳送模式不需要預(yù)處理,這是因?yàn)榭芍苯訉?shù)據(jù)從存儲(chǔ)器寫(xiě)入到緩沖器中。

然而,在16位及24位模式中,以打包方式存儲(chǔ)相應(yīng)音頻數(shù)據(jù),換句話說(shuō),不為節(jié)省存儲(chǔ)器而發(fā)生24個(gè)位的對(duì)準(zhǔn)。如果使用32位寫(xiě)入操作將數(shù)據(jù)直接寫(xiě)入到緩沖器120/130中,那么所述數(shù)據(jù)將失準(zhǔn)且被截?cái)?。事?shí)上,可能不發(fā)生有用傳輸。因此,必須在數(shù)據(jù)可寫(xiě)入到緩沖器中之前對(duì)所述數(shù)據(jù)進(jìn)行預(yù)處理。特定來(lái)說(shuō),對(duì)于24位音頻數(shù)據(jù),此導(dǎo)致時(shí)間密集型處理。如果使用32位讀取操作來(lái)從存儲(chǔ)器檢索數(shù)據(jù),那么必須緩沖8或16個(gè)位并與隨后讀取組合?;蛘?,可僅使用8位讀取,且將通過(guò)使用三個(gè)連續(xù)讀取操作而匯編24個(gè)位。以任一方式,24位音頻數(shù)據(jù)從存儲(chǔ)器的傳送將需要某種處理,所述處理用完可能是其它任務(wù)所需要的處理功率。16位音頻數(shù)據(jù)需要類似操作,即使歸因于所有16位數(shù)據(jù)的對(duì)準(zhǔn)而需要較少處理功率。然而,每一16位字必須單獨(dú)地存儲(chǔ)于32位緩沖寄存器120/130中以確保i2s接口的恰當(dāng)操作。

圖2展示存儲(chǔ)器中的32位、24位及16位打包數(shù)據(jù)的對(duì)準(zhǔn)。以最高效方式存儲(chǔ)數(shù)據(jù),使得不浪費(fèi)存儲(chǔ)器空間。因此,在不考慮任何類型的對(duì)準(zhǔn)錯(cuò)放置的情況下,每一后續(xù)數(shù)據(jù)字緊接在前一字之后而無(wú)任何存儲(chǔ)器空間。一般來(lái)說(shuō),此對(duì)于32位系統(tǒng)中的32位字來(lái)說(shuō)不成問(wèn)題,這是因?yàn)槿绻谝蛔謱?duì)準(zhǔn),那么32位數(shù)據(jù)將自動(dòng)對(duì)準(zhǔn),如在實(shí)例300中所展示。因此,利用32位指令讀取存儲(chǔ)器允許利用單個(gè)寫(xiě)入命令將相應(yīng)字放置于fifo中。

實(shí)例310展示24位數(shù)據(jù)的存儲(chǔ)。如在圖3中可見(jiàn),相對(duì)于32位,僅對(duì)準(zhǔn)數(shù)據(jù)0與4。因此,數(shù)個(gè)8位讀取操作及數(shù)據(jù)(經(jīng)組合16位及8位讀取指令或32位讀取指令)的合并以及為實(shí)現(xiàn)下一24位字所需的那些部分的中間存儲(chǔ)為必需的以正確地填充fifo。

對(duì)于如在實(shí)例320中展示的16位數(shù)據(jù)寬度,將對(duì)準(zhǔn)每隔一個(gè)的字與32位邊界。因此,需要具有中間緩沖的單個(gè)16位讀取指令或32位讀取指令。

顯然地,如在實(shí)例310中所展示的24位情景導(dǎo)致最多處理。圖3展示具有i2s傳輸能力的增強(qiáng)型spi接口。此處,fifo210不直接連接到spi傳輸單元220,而是由控制單元260控制對(duì)fifo210的存取,控制單元260(例如)可包含取決于可編程操作模式而提供數(shù)據(jù)到傳輸單元220的有限狀態(tài)機(jī)(fsm)。

當(dāng)此單元經(jīng)編程以在i2s模式中操作時(shí),傳輸單元220使用其如在圖3中展示的外部連接,即,數(shù)據(jù)線用于音頻數(shù)據(jù),時(shí)鐘線提供位時(shí)鐘信號(hào)bclk,且ssx引腳用于lrclk信號(hào)。圖3的底部假設(shè)spi接口在24位音頻模式中使用i2s協(xié)議操作。因此將直接從存儲(chǔ)器利用4個(gè)音頻24位數(shù)據(jù)字填充fifo210。一旦fifo210已經(jīng)填充有三個(gè)32位字,控制單元便可存取fifo210,如在圖3的底部中所展示。第一存取是fsm傳送線0[31..8]到傳輸單元220。第二存取傳送與線1[31..16]串接的線0[7..0]。第三存取傳送與線2[31..24]串接的線1[15..0]且第四存取傳送線2[23..0]。所述系統(tǒng)接著向微處理器指示fifo是空的且可將更多數(shù)據(jù)從存儲(chǔ)器傳送到緩沖器中。微處理器接著可直接將來(lái)自存儲(chǔ)器的下一三個(gè)32位字傳送到緩沖器中而無(wú)需對(duì)數(shù)據(jù)的任何處理或重新布置。

在16位操作模式中,狀態(tài)機(jī)260存取fifo210以交替地讀取上部字線x[31..16]及下部字線x[15..0]。再次,處理器可在無(wú)需重新對(duì)準(zhǔn)從存儲(chǔ)器檢索的數(shù)據(jù)的情況下僅使用32位讀取/寫(xiě)入指令直接傳送數(shù)據(jù)以得到最優(yōu)速度。根據(jù)另一實(shí)施例,在16位操作模式中,fifo210可僅使用單個(gè)存儲(chǔ)器線。

圖4展示同步串行接口外圍裝置400的另一實(shí)施例,其中多個(gè)spi或i2s接口單元410、420、230、240與fifo210到240一起操作以提供多信道功能性。在此實(shí)例中,提供四個(gè)信道。然而,根據(jù)其它實(shí)施例,可提供更多或更少信道。在此類實(shí)施方案中,可相應(yīng)地增加用于每一fifo210到240的fifo線的數(shù)目,使得所傳送的音頻數(shù)據(jù)塊相對(duì)于32位存儲(chǔ)器結(jié)構(gòu)對(duì)準(zhǔn)。歸因于24位數(shù)據(jù)字針對(duì)32位存儲(chǔ)器系統(tǒng)中的每四個(gè)字而對(duì)準(zhǔn)的事實(shí),因此在32位系統(tǒng)中可能必須考慮多組四個(gè)信道。然而,上文所論述的概念也可用于16位系統(tǒng)中,所述16位系統(tǒng)將需要至少存儲(chǔ)2(兩個(gè))24位字或?qū)τ诟嘈诺来鎯?chǔ)此數(shù)目的倍數(shù)的3個(gè)16位fifo線。較高位系統(tǒng)將能夠?qū)⒏?4位字存儲(chǔ)于三個(gè)fifo線中。

再次,控制單元260可用于配置這四個(gè)信道單元且可包括協(xié)調(diào)存儲(chǔ)于緩沖器fifo210到240中的數(shù)據(jù)的傳送的有限狀態(tài)機(jī)(fsm)。每一單元包括單獨(dú)數(shù)據(jù)線、lrcd線及clk線。一個(gè)單元可選為主裝置(舉例來(lái)說(shuō),單元440),且其余單元410到430可作為從裝置而操作。根據(jù)相應(yīng)實(shí)施方案,哪個(gè)單元是主裝置可是可選擇的或可是固定的。如在圖4中所展示,這些單元的相應(yīng)時(shí)鐘線彼此連接,使得主單元440提供時(shí)鐘信號(hào)到單元410到420。因此,同步地發(fā)生音頻信號(hào)經(jīng)由四個(gè)信道的所有傳輸。

在外部,所述裝置可提供僅一組lrc及clk引腳,且從spi單元410到430的相應(yīng)相關(guān)聯(lián)引腳可用于其它目的,例如通用輸入/輸出引腳功能性。因此,當(dāng)所述裝置在于圖4到6中展示的各種模式中操作時(shí),多個(gè)外部引腳可用于其它功能。

根據(jù)各種實(shí)施例,控制單元260可經(jīng)配置以允許直接從單個(gè)緩沖器fifo(舉例來(lái)說(shuō),fifo240)或從與相應(yīng)傳輸單元410到440相關(guān)聯(lián)的每一緩沖器fifo210到240傳送打包數(shù)據(jù)。控制器經(jīng)配置而以與關(guān)于圖3所解釋類似的方式來(lái)逐線地讀取緩沖器且協(xié)調(diào)所存儲(chǔ)數(shù)據(jù)到正確i2s單元410到440的傳送/匯編。在一個(gè)實(shí)施例中,在24位操作模式中,四個(gè)24位字將分配給所有四個(gè)信道以用于同步傳輸。由于主裝置440觸發(fā)傳輸,因此主裝置440是接收其數(shù)據(jù)的最后信道。因此,一旦數(shù)據(jù)已經(jīng)傳送到主裝置440,主裝置便開(kāi)始傳輸,此發(fā)送相應(yīng)時(shí)鐘信號(hào)到所有其它單元以同時(shí)觸發(fā)其傳輸。此可通過(guò)單獨(dú)命令或經(jīng)由到fifo的寫(xiě)入的完成而完成。

圖5更詳細(xì)地展示在系統(tǒng)經(jīng)配置于針對(duì)24位音頻數(shù)據(jù)的i2s模式中時(shí)與圖4相同的配置。提供spi主控制器240及多達(dá)3個(gè)spi從裝置210到230以用于解碼及傳輸呈4個(gè)信道24位數(shù)據(jù)的3個(gè)四字節(jié)(quadlet)或2個(gè)信道16位數(shù)據(jù)的1個(gè)四字節(jié)的打包32位格式的數(shù)據(jù)。當(dāng)fifo數(shù)據(jù)被讀取時(shí),主裝置與從裝置組合利用如上文所論述的主clk及l(fā)rc(同步脈沖)同時(shí)傳輸所有4(或2)個(gè)信道的經(jīng)解碼數(shù)據(jù)。如上文所提及,根據(jù)一些實(shí)施例,在16位操作模式中,fifo210到240可僅使用如用圖5中的fifo210到240的頂部表示所指示的單個(gè)存儲(chǔ)器線。

如所展示,所述系統(tǒng)可在一個(gè)實(shí)施例中以“一次寫(xiě)入到許多fifo”而操作,其中將呈3或1(32位)個(gè)四字節(jié)形式的數(shù)據(jù)寫(xiě)入到所有監(jiān)視(spy)fifo210到240。根據(jù)此實(shí)施例,此利用其中所有fifo將被同時(shí)尋址(各自獲得相同數(shù)據(jù)值)的一個(gè)寫(xiě)入循環(huán)完成,但可利用到fifo210到240的單獨(dú)寫(xiě)入完成,此顯然將需要更多處理時(shí)間。根據(jù)一些實(shí)施例,用戶可利用用戶可設(shè)定spi寄存器值定義哪個(gè)spi單元210到240獲得來(lái)自fifo中的每一四字節(jié)的數(shù)據(jù)的哪些位。僅一個(gè)spi被定義為主裝置,且其余spi被定義為從裝置。表1展示用于單元210到250的可能設(shè)定。

表1

slave_en[2:0]

000——主裝置解碼啟用

001——從裝置1解碼啟用

010——從裝置2解碼啟用

011——從裝置3解碼啟用

100——主裝置16位解碼[15:0]啟用

101——主裝置16位解碼[31:16]啟用

110——從裝置116位解碼[31:16]啟用

111——從裝置116位解碼[15:0]啟用

用于來(lái)自fifo的數(shù)據(jù)解碼的有限狀態(tài)機(jī)(fsm)對(duì)主裝置或從裝置來(lái)說(shuō)是相同的。fsm控制讀取fifo數(shù)據(jù),且用戶定義的spi寄存器值確定來(lái)自四字節(jié)的數(shù)據(jù)的哪些位應(yīng)被移位出spi。通過(guò)來(lái)自cpu的信號(hào)或在主spifsm命令發(fā)送出數(shù)據(jù)時(shí)以自動(dòng)主模式命令主/從spi開(kāi)始發(fā)送數(shù)據(jù)。

根據(jù)另一實(shí)施例,可如在圖6中所展示實(shí)施“利用邊帶總線進(jìn)行僅主fifo寫(xiě)入”。在此實(shí)施例中,呈3或1(32位)個(gè)四字節(jié)形式的數(shù)據(jù)僅寫(xiě)入到主fifo(舉例來(lái)說(shuō),fifo240)。用戶已經(jīng)利用用戶可設(shè)定spi寄存器值定義哪個(gè)從spi獲得來(lái)自fifo240中的每一四字節(jié)的數(shù)據(jù)的哪些位。僅一個(gè)spi被定義為主裝置,且其余spi被定義為從裝置。用于來(lái)自fifo240的數(shù)據(jù)解碼的fsm對(duì)于主裝置或從裝置來(lái)說(shuō)是相同的,但僅在從裝置中啟用。fsm控制讀取fifo數(shù)據(jù),且用戶定義的spi寄存器值確定來(lái)自四字節(jié)的數(shù)據(jù)的哪些位應(yīng)被移位出spi。通過(guò)來(lái)自cpu的信號(hào)cmd_spi_go或在主spifsm命令發(fā)送出數(shù)據(jù)時(shí)以自動(dòng)主模式命令主/從spi開(kāi)始發(fā)送數(shù)據(jù)。數(shù)據(jù)總線mst_slv_data[24:0]連接到所有spi單元以用于傳輸數(shù)據(jù)。第二總線mst_slv_bus[2:0]根據(jù)表2提供控制值。如在圖6中所展示,數(shù)據(jù)及控制信號(hào)可經(jīng)引導(dǎo)通過(guò)spi主單元440。然而,其它實(shí)施例可通過(guò)控制單元260而提供這些信號(hào)。如上文所提及,根據(jù)一些實(shí)施例,在16位操作模式中,fifo210可僅使用單個(gè)存儲(chǔ)器線。

表2

mst_slv_bus[2:0]

000——無(wú)默認(rèn)

1xx——主裝置開(kāi)始向從裝置傳輸

x01——spi從裝置#1獲得數(shù)據(jù)

x10——spi從裝置#2獲得數(shù)據(jù)

x11——spi從裝置#3獲得數(shù)據(jù)

可視情況組合如上文所描述的所有功能性。舉例來(lái)說(shuō),裝置可經(jīng)設(shè)計(jì)以在如在圖5及6中所展示的第一操作模式及第二操作模式中操作。fifo可經(jīng)設(shè)計(jì)以具有(舉例來(lái)說(shuō))多于三個(gè)存儲(chǔ)器線的可編程大小。因此,例如對(duì)一或多個(gè)信道使用32位寬音頻數(shù)據(jù)的其它操作模式可受益于較大fifo大小。

圖7展示根據(jù)各種實(shí)施例的包含饋送四個(gè)信道的24位操作模式的三個(gè)連續(xù)讀取操作以及饋送兩個(gè)信道的16位操作模式中的單個(gè)讀取操作的一般性流程圖。注釋:可在于等待狀態(tài)期間斷言了相應(yīng)信號(hào)cmd_spi_go時(shí)加載fifo的下一些值。此使得可將下一個(gè)fifo值預(yù)加載到傳輸寄存器中??稍谟诘却隣顟B(tài)期間斷言了信號(hào)cmd_spi_go時(shí)斷言等于系統(tǒng)時(shí)鐘周期的脈沖的master_latch_next_data信號(hào),以在前一個(gè)rdy_tx_reg_data的最后位被移位出之前將數(shù)據(jù)寄存到spi移位器中。在于停滯狀態(tài)期間啟用之后首次通過(guò)fsm時(shí),在cmd_spi_go脈沖下給pre_tx_reg及rdy_tx_reg加載相同值。

圖8展示根據(jù)實(shí)施例的24位操作模式的流程圖。圖10展示根據(jù)實(shí)施例的16位操作模式的流程圖,其中fifo中的單個(gè)存儲(chǔ)器線是操作的。注釋:在tx_reg的移位的開(kāi)始處斷言等于系統(tǒng)時(shí)鐘的脈沖的load_next_value。因此,下一些fifo值可在tx_reg中的移位需要之前預(yù)加載到pre_tx_reg中。當(dāng)在狀態(tài)停滯期間來(lái)自cpu的通行信號(hào)為高或處于自動(dòng)模式中時(shí)且在spi移位器已經(jīng)將待移位出的tx_reg數(shù)據(jù)的最后位移位出之前,斷言等于系統(tǒng)時(shí)鐘的脈沖的mst_latch_next_data。在于停滯狀態(tài)下啟用之后首次通過(guò)狀態(tài)機(jī)時(shí),利用latch_next_data給pre_tx_reg及tx_reg加載相同值。

圖9展示根據(jù)實(shí)施例的具有四個(gè)信道及相應(yīng)數(shù)據(jù)匯編路徑的24位模式的流程圖。注釋:load_next_value:是在主tx_ms_reg的移位的開(kāi)始時(shí)針對(duì)等于系統(tǒng)時(shí)鐘的脈沖而斷言。因此,下一些fifo值可在tx_xx_reg中的移位需要之前預(yù)加載到pre_tx_xx_reg中。latch_next_data:是在于狀態(tài)停滯期間來(lái)自cpu的通行信號(hào)為高或處于自動(dòng)模式中時(shí)且在spi主移位器已經(jīng)將待移位出的tx_ms_reg數(shù)據(jù)的最后位移位出之前,針對(duì)等于系統(tǒng)時(shí)鐘的脈沖而斷言。在于停滯狀態(tài)下啟用之后首次通過(guò)狀態(tài)機(jī)時(shí),利用latch_next_data給pre_tx_xx_reg及tx_xx_reg加載相同值。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1