專利名稱:用于擴展串行外圍接口的系統(tǒng)、方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本公開涉及芯片間通信,更特別地,涉及用于控制數(shù)據(jù)流的采用預先消息大小協(xié)商的擴展串行外圍接口。
背景技術(shù):
串行外圍接口(SPI)集成電路(IC或者芯片)被用于許多電子設(shè)備,尤其是如蜂窩電話的移動設(shè)備。諸如藍牙的無線協(xié)議被移動設(shè)備采用從而發(fā)送諸如數(shù)字聲音數(shù)據(jù)的數(shù)據(jù)信號給在額定10米范圍內(nèi)的其它藍牙設(shè)備。隨著電信的空中傳輸位速率的增加,諸如蜂窩電話的電子設(shè)備技術(shù)被應用從而利用通信系統(tǒng)的更加寬的帶寬。例如,藍牙“增強數(shù)據(jù)速率”規(guī)范定義3Mbps的空中傳輸位速率。該3Mbps的速率超出了典型移動設(shè)備的通用異步收發(fā)器(UART)將數(shù)據(jù)從主機處理器傳輸?shù)剿{牙芯片的能力。因此,那些處理信息以便利用藍牙增強數(shù)據(jù)速率能力的產(chǎn)品可能要求比UART更快的新的接口。
圖1顯示按照實施例的電話和頭戴式耳機的框圖;圖2顯示按照實施例的微處理器芯片的框圖;圖3顯示按照實施例的組件的功能框圖;圖4顯示用于主從數(shù)據(jù)傳輸?shù)南⑿蛄袌D;圖5顯示用于從主數(shù)據(jù)傳輸?shù)南⑿蛄袌D。
具體實施例方式
公開了一種用于在第一處理器和第二處理器之間進行通信的系統(tǒng)、方法和設(shè)備。主模塊和從模塊分別與第一處理器和第二處理器進行通信。在示范性的應用中,第一處理器可以是適用于蜂窩電話的微處理器,而第二處理器可以是適用于,例如,藍牙無線技術(shù)的其它處理器。在下文中,主模塊和從模塊可以分別被稱作主和從。
提供目前的公開以用可行的方式進一步解釋制造和使用根據(jù)本發(fā)明的各種實施例的最佳模式。本公開被提供,以便進一步加強理解和明白本發(fā)明的原理以及其所具有的優(yōu)點,而不是以任意方式來限制本發(fā)明。本發(fā)明由所附的權(quán)利要求所唯一定義,包括這個申請的任何修改以及被公布的這些權(quán)利要求的任何等效替代。
需要進一步理解的是,關(guān)系術(shù)語的使用,如果有的話,諸如第一和第二、頂部和底部以及類似物,僅被用于唯一地區(qū)分一個和另一個實體或者動作,而不必要求或者暗示在這些實體或動作之間的任何實際的這樣的關(guān)系或者順序。發(fā)明的許多功能和原理通過使用軟件程序或者指令以及諸如專用IC的集成電路(IC)來實現(xiàn)。需要注意的是,盡管由于,例如,可用時間,目前的技術(shù)和出于經(jīng)濟上的考慮,可能造成巨大的努力和激發(fā)許多設(shè)計選擇,然而當由這里所公開的概念和原理所引導的時候,普通技術(shù)人員將能夠通過最小的試驗就容易地生成這樣的軟件指令和程序以及IC。因此,為了簡明扼要和最小化使按照本發(fā)明的原理和概念模糊的風險,對于這樣的軟件和IC的討論,如果可能的話,將被限制在針對優(yōu)選實施例中的原理和概念的本質(zhì)上。
在本公開中,在主模塊和從模塊之間的“擴展”串行外圍接口(SPI),下文中被稱作“ESPI”,將被描述。在主模塊和從模塊之間的操作包括以下內(nèi)容進出從模塊中的主時鐘數(shù)字數(shù)據(jù);提供從模塊向主模塊發(fā)布中斷的能力;提供給主從之間的預先流控制握手之用的特定消息格式(從模塊,在下面的例子中,與采用藍牙協(xié)議的其它設(shè)備進行交互)。例如,修改SPI芯片技術(shù),這里所公開的系統(tǒng)、方法和設(shè)備提供給ESPI芯片與例如采用藍牙協(xié)議的芯片一起被使用的能力。
在ESPI協(xié)議中,ESPI主模塊在CS線上提供芯片選擇信號,在CLK線上的時鐘信號,以及在主機輸出/從機輸入(MOSI)數(shù)據(jù)線上提供數(shù)據(jù)至ESPI從模塊。握手提供基于藍牙協(xié)議傳輸?shù)臄?shù)據(jù)被從微芯片處理的能力。正如下面將要更加詳細顯示的那樣,這個例子中的數(shù)據(jù)包括握手數(shù)據(jù)和數(shù)字數(shù)據(jù)。數(shù)字數(shù)據(jù)可以是,例如,數(shù)字聲音數(shù)據(jù)。它也可以包括其它,非聲音的數(shù)字數(shù)據(jù)。ESPI從模塊,由時鐘信號所驅(qū)動,在主機輸入/從機輸出(MISO)數(shù)據(jù)線上提供數(shù)據(jù)給ESPI主模塊。作為握手的一部分,在IRQ線上從ESPI從模塊到ESPI主模塊提供中斷信號,使得ESPI從模塊可以異步通知ESPI主模塊,該ESPI從模塊具有它想要發(fā)送的數(shù)據(jù)。(標稱)CS線能夠被使用在與ESPI從模塊的握手中,因此CS線可以被程序所控制,而不是被SPI的硬件所控制。ESPI協(xié)議中的這五個信號和線(CS,CLK,MOSI和IRQ)可以結(jié)合圖1-5被更加充分地討論。
單個ESPI主芯片可以驅(qū)動不止一個ESPI從芯片。在配置不止一個從模塊的時候,主模塊向所要的從模塊提供芯片選擇信號,并且可以從每個從模塊接收中斷信號。
ESPI協(xié)議使得主模塊和/或設(shè)備與作為智能從設(shè)備的從設(shè)備之間進行通信。智能從設(shè)備不完全依賴于主模塊,且它具有自己的處理器,可能忙于其它的任務(wù)而不能對主設(shè)備的召喚做出立即的響應。這里所描述的ESPI協(xié)議允許ESPI從模塊可以阻止主模塊發(fā)送數(shù)據(jù)直到從模塊準備好接受數(shù)據(jù)。同樣地,主模塊可以阻止從模塊發(fā)送數(shù)據(jù)直到主模塊準備好接受數(shù)據(jù)。而且,ESPI協(xié)議以及前面所描述的五個ESPI信號,結(jié)合了數(shù)據(jù)傳輸、流控制和低功率操作的功能。(就低功率操作而言,每個設(shè)備,主模塊或者從模塊,能夠獨立地進入各自的低功率狀態(tài),并且當其它設(shè)備想通信的時候由其它設(shè)備喚醒)。
正如下面將要被詳細討論的,ESPI協(xié)議提供,通過在傳輸之前對傳輸中的數(shù)據(jù)量進行協(xié)商來進行流控制。在協(xié)商中,雙方(主模塊和從模塊)就傳輸?shù)拈L度達成一致意見。為了傳輸給從模塊,雙方同意的數(shù)目是主模塊想要發(fā)送的且從模塊能夠接受的最小量。為了自從模塊傳輸,達成一致的數(shù)目是從模塊想要發(fā)送的數(shù)目(因為主模塊總是能夠控制時鐘去停止來自從模塊的數(shù)據(jù)發(fā)送直到它能夠接受從模塊想要發(fā)送的全部)。主模塊不必接受在一個連續(xù)流中的全部從數(shù)據(jù)。更確切地,主模塊能夠?qū)σ恍﹣碜詮哪K的數(shù)據(jù)計時,移動那些數(shù)據(jù)到其它存儲器,然后對來自從模塊的更多的數(shù)據(jù)計時。在這里所公開的實施例中,如果雙方都同意,主或者從模塊能夠潛在地在單一事務(wù)中發(fā)送65535個字節(jié)的數(shù)據(jù)。事務(wù)的大小是可變的,范圍從1字節(jié)到65535字節(jié)。在另一個實施例中,可以提供不同的最大事務(wù)大小。
一般地,對于主模塊和從模塊之間的每個事務(wù)(例如,每次數(shù)據(jù)傳輸),在這里所公開的實施例中,主模塊為三個中斷服務(wù),從模塊為兩個中斷服務(wù)(見下面的圖4和圖5)。在ESPI方案中,從主模塊到從模塊的65535字節(jié)的傳輸將中斷主模塊處理器三次。其它配置,或者其它實施例,可以提供不同數(shù)目的中斷。
為了進一步地公開,采用藍牙設(shè)備的示范性使用將在下面被討論,但是這里所公開的系統(tǒng)、方法和設(shè)備提供在主機控制器和客戶控制器之間的通用的通信。
現(xiàn)在參照圖1,電話和頭戴式耳機的框圖由100表示。雖然這里的公開涉及蜂窩電話,但是任何使用這里所描述的蜂窩電話的電子設(shè)備都落入這里公開的范圍。電話102可以包括與智能從模塊進行通信的微處理器芯片104,該智能從模塊包含諸如藍牙芯片的智能從模塊106。電話102也可以包括用于和電話服務(wù)提供者進行無線連接的天線108。并且,電話102可以包括天線110以便支持在電話102和頭戴式耳機114之間的無線藍牙連接112。在線路116、118和122上的信號可以從微處理器芯片104傳遞到智能從模塊106。在線路120和124上的信號可以從智能從模塊106傳遞到微處理器芯片104。在線路116、118、120、122和124上的信號將在下面結(jié)合圖2-5被詳細地討論。
圖2顯示了微處理器芯片104的框圖。微處理器芯片提供在處理核心中的計算。它接受輸入數(shù)據(jù)并且通過它的外圍設(shè)備組(這里是UART、USB和MQSPI)提供輸出數(shù)據(jù)。微處理器芯片104可以是單一的微處理器芯片。微處理器芯片104可以包括微處理器核心202。微處理器核心202可以傳遞控制和數(shù)據(jù)信號209到UART外設(shè)206和USB外設(shè)208,或者傳遞來自這兩個外設(shè)的控制和數(shù)據(jù)信號??蛇x地,不同協(xié)議的外設(shè)也可以在這里被預期。
微處理器芯片104也包括擴展串行外圍接口ESPI主模塊210。正如在前面所簡略描述的那樣,ESPI提供在主模塊和從模塊之間的接口。從模塊不被顯示在圖2中,但是主模塊和從模塊之間的關(guān)系被顯示在圖3中。
再參照圖2,微處理器核心202可以傳遞控制和數(shù)據(jù)信號211到ESPI主模塊210,并且類似地,自ESPI主模塊210接收這樣的信號。微處理器核心202也可以自ESPI主模塊210接收處理器中斷信號306(見圖3)。ESPI主模塊210可以包括多隊列串行外圍接口(MQSPI)212,它是特定類型的SPI四腳芯片器件。在這個例子中,MQSPI功能被更改。如所示,引腳218,MQSPI芯片的原始芯片選擇(CS)引腳,被留下沒有被連接。增加兩個額外的通用輸入/輸出(GPIO)214引腳116和124。這里一共有5個可用引腳。GPIO引腳116用作芯片選擇(CS),取代MQSPI模塊212的未連接的芯片選擇輸出引腳218的功能。GPIO引腳116可以由微處理器核心202所驅(qū)動并且通過微處理器核心提供對芯片選擇功能的控制。GPIO引腳124用作IRQ輸入連接,將來自ESPI從模塊的中斷信號傳遞到微處理器核心202上。
如所示,ESPI主模塊210也包括CLK118線路,主機輸入/從機輸出(MISO)120線路,以及主機輸出/從機輸入(MOSI)122線路。ESPI主模塊210在CLK118線路上提供時鐘信號給從模塊以便從模塊讀取MOSI線路并且傳輸線路上的位給它的存儲器緩沖器。因此,在每個時鐘信號脈沖內(nèi),在MOSI線路122上由主模塊所提供的數(shù)據(jù)位被傳輸給ESPI從模塊310的從存儲器緩沖器302(見圖3)。同時,在MISO線路120上由從模塊所提供的數(shù)據(jù)位被傳輸給ESPI主模塊210中的存儲器緩沖器308。通過這種方式,ESPI主模塊210對進出從模塊的數(shù)字數(shù)據(jù)計時。正如下面將進一步描述的,這5個信號(CS、CLK、MOSI、MISO和IRQ)執(zhí)行ESPI流控制協(xié)議。
圖3解釋通過ESPI從模塊和/或者設(shè)備310與主模塊104進行通信的智能從模塊106。這里,整個從模塊方描繪了包括自身從處理器312的智能從模塊。數(shù)據(jù)和控制信號314在ESPI從模塊310和從處理器312之間傳遞。ESPI從模塊310也可以提供處理器中斷316給處理器312。由于從模塊是智能從模塊,所以雙方之間的通信包括中斷,并且由此,雙方之間的預先協(xié)商允許被控制的數(shù)據(jù)流。
圖3顯示按照本發(fā)明實施例的包括5個引腳的組件的功能框圖。如圖2所描繪的,主模塊104包括微處理器核心202和ESPI主模塊210。數(shù)據(jù)和控制信號211在微處理器核心202和ESPI主模塊210之間傳遞。ESPI主模塊210也可以提供處理器中斷信號306。
如所示,ESPI主模塊210具有存儲器緩沖器308。緩沖器308可能持有將被發(fā)送到智能從模塊106的數(shù)據(jù)。可選地,緩沖器308可以或者額外地,持有自智能從模塊106所接收的并且等待傳輸?shù)轿⑻幚砥骱诵?02的數(shù)據(jù)。自ESPI主模塊210到智能從模塊106的數(shù)據(jù)傳輸處于微處理器核心202的控制之下,如同自ESPI主模塊210到微處理器核心202的數(shù)據(jù)傳輸。
ESPI從模塊310包括串行外圍接口(SPI),它與ESPI主模塊210的3個原引腳進行通信。同樣,ESPI從模塊310包括與ESPI主模塊210之上的GPIO引腳116和124進行通信的通用輸入/輸出引腳。ESPI從模塊310也可以包括存儲器緩沖器302。緩沖器302可以持有將被發(fā)送到ESPI主模塊210的數(shù)據(jù)。緩沖器302可選地,或者另外,持有從ESPI主模塊210接收到的并且等待傳輸?shù)教幚砥?12核心的數(shù)據(jù)。如前面所提到的,自ESPI主模塊210到智能從模塊106的數(shù)據(jù)傳輸處于微處理器核心202的控制之下。然而,自ESPI從模塊310到智能從處理器312的數(shù)據(jù)傳輸處于處理器312的控制之下。處理器312可以傳遞控制和數(shù)據(jù)信號320到一個或者多個外圍設(shè)備,或者傳遞來自一個或者多個外圍設(shè)備的控制和數(shù)據(jù)信號,外圍設(shè)備可以是,例如,傳送和接收數(shù)字聲音數(shù)據(jù)或者其它數(shù)字數(shù)據(jù)的藍牙無線電設(shè)備322。
在ESPI主模塊210和ESPI從模塊310之間的通信現(xiàn)在將被詳細地描述。如前面所討論的,在ESPI協(xié)議中,5個信號和線路提供主模塊和從模塊之間的通信。如圖3中所示,這5個信號為CLK118、GP輸出116、MOSI122、MISO120和GP輸入124。GP輸出116用作芯片選擇信號;GP輸入124提供IRQ輸入連接。
當準備ESPI主模塊210以用于寫數(shù)據(jù)到智能ESPI從模塊310,或者從它讀數(shù)據(jù)的時候,主模塊在GP輸出116上斷言芯片選擇信號。ESPI主模塊210在CLK118上運行時鐘并且在每個時鐘周期內(nèi)在MOSI122上提供數(shù)據(jù)位(并且同時在MISO120上讀取數(shù)據(jù)位)。GP輸入124線路,它是對標準SPI接口上的四個線路的增加,具有兩個功能。首先,它允許ESPI從模塊310去通知ESPI主模塊210,從模塊有數(shù)據(jù)需要通過發(fā)送中斷(IRQ)信號而被發(fā)送。其次,它允許從模塊106與主模塊104握手以顯示它能夠接收數(shù)據(jù)。
如下面所詳細描述地,ESPI協(xié)議提供,主模塊104和從模塊106隱含地在實際傳輸之前就數(shù)據(jù)傳輸?shù)臄?shù)目達成一致意見。因為雙方同意,因此沒有必要進行明確的硬件流控制,因為雙方都指示了它們準備接受的數(shù)據(jù)數(shù)目。CS信號(在GP輸出116上)實際上是對ESPI從模塊310的喚醒信號,并且中斷信號IRQ(在GP輸入124上)是對ESPI主模塊210的喚醒信號。采用這里所描述的配置,流控制由協(xié)商所預先配置。因此,不具有明確的流控制線路。下面將進一步詳細地描述,一旦事務(wù)發(fā)生,它就進行到完成并且是自給式的。
ESPI協(xié)議基于下面的假設(shè),即在主模塊104和從模塊106之間的通信鏈接是可靠的,沒有位錯誤或者丟失的字節(jié)。因此,協(xié)議沒有包括錯誤檢測和校正機制。協(xié)議進一步基于下面的假設(shè),即雙方以整數(shù)個字節(jié)的方式傳遞數(shù)據(jù)。沒有包括這些假設(shè)的替換實施例也落入本公開的范圍。
在主模塊104和從模塊106之間的數(shù)據(jù)傳輸中的事件序列被顯示在圖4和圖5中。圖4顯示了主模塊104有數(shù)據(jù)發(fā)送到從模塊106的情況下的消息序列圖。圖5顯示從模塊106有數(shù)據(jù)發(fā)送到主模塊104的情況下的消息序列圖。圖4和5關(guān)注與ESPI主模塊210交互的主微處理器核心202;這兩個圖都沒有顯示在ESPI從模塊310和從微處理器312之間的數(shù)據(jù)傳輸?shù)募毠?jié)。
現(xiàn)在參照圖4,消息序列圖顯示在微處理器核心202(主微處理器)和ESPI主模塊210之間,在ESPI主模塊210和ESPI從模塊310之間,以及在ESPI從模塊310和處理器312(從微處理器)之間傳遞的消息。在402上,在主模塊104和從模塊106之間的握手通過在主模塊和從模塊之間傳遞的初始消息組而開始。正如前面所討論的,通用(GP)輸出116線路可以被用于提供片選功能。在410上,微處理器核心202提供對于ESPI主模塊210的斷言GPIO的控制,ESPI主模塊反過來在412上斷言GP輸出信號從而提供片選功能給ESPI從模塊310。然后,ESPI從模塊310提供中斷信號414給處理器312,處理器響應416以促成ESPI從模塊310去響應418ESPI主模塊,ESPI主模塊反過來返回中斷420給微處理器核心202。
在404上,用于預先流控制的協(xié)商發(fā)生在接下來的消息組中。握手的完成是通過在主模塊104和從模塊106之間以特定格式傳遞消息來實現(xiàn)的。
協(xié)議中的消息被列在表1中,“ESPI協(xié)議消息”。在這個表中,例如“MSBx”是承載將要被傳輸?shù)淖止?jié)數(shù)目的兩個字節(jié)值中的最高有效字節(jié)。同樣地,例如“LSBx”是兩個字節(jié)值中的最低有效字節(jié)。符號“0xXX”指示任意的值。發(fā)送方不必設(shè)置它們,并且將被接收方所忽略。在實際中,它們可以被設(shè)置為零。
表1ESPI協(xié)議消息
類型1和3消息是“主模塊消息”,那即是,它們被從主模塊發(fā)送到從模塊。類型2消息是“從模塊消息”,那即是,它們被從從模塊發(fā)送到主模塊。
在類型1消息中,MS(它代表數(shù)量“主模塊發(fā)送”)是有兩個字節(jié)大小的整數(shù),范圍從0到65535。類似地,在類型2消息中的SA(“從模塊接受”)和SS(“從模塊發(fā)送”)是由每對字節(jié)所限定的整數(shù),并且也能夠具有0到65535之間的任何值。
需要注意的是,類型1和2消息的更大的尺寸提供對MS、SA和SS的更大值的限定。例如,利用7個而不是5個字節(jié)可以提供三個字節(jié)所限定的MS、SA和SS值,留下一個可用字節(jié)規(guī)定消息的類型。對于每個采用三個字節(jié),MS、SA和SS每個的范圍從值0到16777215。
如圖4所示,在422上,微處理器核心202準備5個字節(jié)的類型1消息,將它寫到ESPI主模塊210中,并且引導主模塊開始傳輸這5個字節(jié)。這個消息在來自主模塊且載有數(shù)目MS的MSBx和LSBx字節(jié)中告訴從模塊,主模塊想要發(fā)送多少字節(jié)的數(shù)據(jù)給該從模塊。MS是從主模塊傳輸?shù)綇哪K的數(shù)據(jù)傳輸?shù)膫溥x大小。數(shù)據(jù)傳輸?shù)膶嶋H大小直到與從模塊的協(xié)商完成之后才被設(shè)置。然后,ESPI主模塊210對于在MOSI線路122上從主模塊到從模塊的5個字節(jié)進行計時。同時,5個字節(jié)被讀入主模塊中用作MISO120線路上的類型2消息,并且被存儲在ESPI主模塊的存儲器緩沖器308中。當5個字節(jié)的傳輸被完成以后,ESPI主模塊210發(fā)出中斷426給微處理器核心202,它通過從存儲器緩沖器308中讀出5個字節(jié)的類型2消息而發(fā)出響應428。來自從模塊的MSBy和LSBy指示從模塊能夠接受多少個字節(jié),SA。SA因此也是自主模塊傳輸?shù)綇哪K的數(shù)據(jù)備選大小。如果SA具有零值,那么從模塊不能夠接受來自主模塊的任何字節(jié),并且主模塊退出寫序列以便稍晚的時候再試一次。來自從模塊的MSBz和LSBz字節(jié)載有數(shù)目SS,它們不被微處理器核心202考慮并且不必具有由從模塊所設(shè)置的特定值。
如果SA具有比0大的值,那么對于數(shù)據(jù)傳輸大小的協(xié)商被完成,并且數(shù)據(jù)傳輸406發(fā)生。在數(shù)據(jù)傳輸中的字節(jié)數(shù)目是兩個數(shù)目MS和SA中的最小值。為了產(chǎn)生傳輸406,在430上,微處理器核心202發(fā)送主-到-從數(shù)據(jù)給ESPI主模塊210的存儲器緩沖器308,并且引導主模塊去開始該傳輸。在432上,主模塊在MOSI線路122上從存儲器緩沖器輸出主-到-從數(shù)據(jù)到從模塊。這些數(shù)據(jù)被存儲進ESPI從模塊的存儲器緩沖器302中。從主模塊開始傳輸數(shù)據(jù)的同時,等量的從-到-主數(shù)據(jù)自從模塊被輸入。來自從模塊的數(shù)據(jù)被忽略,因此它不必具有任何具體的值(例如,每個字節(jié)可以被設(shè)置為0)。當所有的數(shù)據(jù)被傳輸以后,ESPI從模塊310發(fā)送中斷434給處理器312從而通知數(shù)據(jù)傳輸已經(jīng)完成。處理器312通過自ESPI從模塊的存儲器緩沖器302讀出數(shù)據(jù)而作出響應436。ESPI主模塊210發(fā)送中斷438給微處理器核心202,它通知那些被協(xié)商的數(shù)據(jù)傳輸事務(wù)已經(jīng)被完成。
在主模塊和從模塊之間的交互隨著最后一組動作408而結(jié)束。在436上,從微處理器312讀數(shù)據(jù)以后,處理器312引導444 ESPI從模塊310,以對于GPIO引腳124上的IRQ解除斷言,并且ESPI從模塊310在446上解除斷言IRQ。獨立于444和446,在440上,微處理器核心202引導ESPI主模塊210,以對于GP輸出116信號解除斷言,在442撤消選定ESPI從模塊310?;蛘?,在444和446上的IRQ的斷言解除能夠被442上的GPIO的斷言解除所促發(fā)。然而,這將造成對從微處理器312的額外的中斷。在446上的IRQ124的斷言解除和在442上的GPIO的斷言解除完成在主模塊104和從模塊106之間的事務(wù)。需要注意的是,如果由主模塊所傳輸?shù)臄?shù)據(jù)大于所允許的最大尺寸(例如,大于65535字節(jié)),那么主模塊必須將它分割成可允許的數(shù)據(jù)傳輸大小并且多次履行完整的交換402、404、406和408。
圖5顯示消息序列圖,該圖針對從模塊106具有要發(fā)送到到主模塊104的數(shù)據(jù)的情況?,F(xiàn)在參照圖5,在主模塊104和從模塊106之間的握手隨著在502上的初始動作組而開始。在圖5的情形下,從模塊106將具有要發(fā)送到主模塊104的從-到-主數(shù)據(jù)(在ESPI從模塊310的存儲器緩沖器302中)。處理器312引導510 ESPI從模塊310,從而提供中斷信號512給ESPI主模塊210,然后它在514發(fā)送中斷給微處理器核心202。微處理器核心202通過引導主模塊去斷言GP輸出116線路作為芯片選擇來進行響應516,并且ESPI從模塊310反過來發(fā)送520中斷給處理器312。
接著,用于預先流控制的協(xié)商隨著接下來的一組消息而發(fā)生,如在504所示。在522上,微處理器核心202準備5個字節(jié)的類型3的主模塊消息,將它寫入ESPI主模塊210,并且引導ESPI主模塊210從而開始5個字節(jié)的傳輸。類型3消息是向從模塊106確認主模塊104能夠接受數(shù)據(jù)。同時,類型2從消息在ESPI從模塊310中是可用的以便傳輸?shù)紼SPI主模塊210。這種類型2消息在來自從模塊的載有數(shù)目SS的MSBz和LSBz字節(jié)中,告訴ESPI從模塊310將要發(fā)送多少字節(jié)的從-到-主數(shù)據(jù)到ESPI主模塊210。(正如前面所討論的,在類型2消息中包括更多字節(jié)提供了更大的數(shù)據(jù)傳輸尺寸。)然后,ESPI主模塊210對在MOSI線路122上自ESPI主模塊210到ESPI從模塊310的5個字節(jié)進行計時524。同時,這5個字節(jié)作為MOSI線路120上的類型2消息而被讀入ESPI主模塊210,并且被存儲在ESPI主模塊的存儲器緩沖器308中。當5個字節(jié)的傳輸已經(jīng)完成以后,ESPI主模塊210發(fā)出中斷526給微處理器核心202,它在528通過從存儲器緩沖器308中讀出5個字節(jié)的類型2從消息而做出響應。
接下來,進行從-到-主數(shù)據(jù)傳輸506。在數(shù)據(jù)傳輸中的字節(jié)數(shù)目是數(shù)目SS。為了啟動傳輸,微處理器核心202引導530 ESPI主模塊210從而自從模塊310計時輸入532SS個數(shù)據(jù)字節(jié)到ESPI主模塊210的存儲器緩沖器308中。自ESPI從模塊310傳輸從-到-主數(shù)據(jù)的同時,相同數(shù)目的主-到-從數(shù)據(jù)自ESPI主模塊210被計時輸入。來自ESPI主模塊210的數(shù)據(jù)被忽略,因此其不必有任何具體的值(例如,這些字節(jié)可以全部被設(shè)置為0)。
在傳輸期間,當必要的時候,ESPI主模塊210可以停止計時輸入從-到-主數(shù)據(jù),以在它的接收緩沖器滿了的情況下,將數(shù)據(jù)自它的接收緩沖器傳輸?shù)狡渌鼉?nèi)部緩沖器。(要注意的是,這與主模塊104到從模塊106的事務(wù)不同,其中ESPI主模塊210在不停止它的時鐘的情況下,能夠?qū)f(xié)商確定的一定數(shù)目的數(shù)據(jù)流式傳輸?shù)紼SPI從模塊310。)因為ESPI主模塊210控制時鐘,因此它不必通知ESPI從模塊310它能夠接受的字節(jié)數(shù)目(如從模塊通知主模塊),因為主模塊能夠(最終)接受所有的字節(jié)。要注意的是,當從模塊想要發(fā)送的數(shù)據(jù)超出ESPI主模塊存儲器緩沖器308所能容納的數(shù)目時,主模塊必須重復從-到-主數(shù)據(jù)傳輸506的動作直到如在504協(xié)商的主模塊接收所有從模塊的數(shù)據(jù)。
當所有的數(shù)據(jù)被傳輸,ESPI主模塊210發(fā)送中斷534給微處理器核心202,通知所協(xié)商的數(shù)據(jù)傳輸已經(jīng)完成。微處理器核心202通過自ESPI主模塊的存儲器緩沖器308讀出數(shù)據(jù)來做出響應536。要注意的是,如果由從模塊所傳輸?shù)臄?shù)據(jù)大于所允許的最大數(shù)目(例如,大于65535字節(jié)),那么從模塊必須將其分割為可以接受的數(shù)據(jù)傳輸尺寸并且多次履行完整的交換502、504、506和508。
在主模塊和從模塊之間的交互隨著最后一組動作508而結(jié)束。在538上,微處理器核心202引導ESPI主模塊210解除斷言540GP輸出信號,撤消選擇從模塊,這促成ESPI從模塊310去發(fā)送中斷542給處理器312。處理器312反過來引導544ESPI從模塊310對于GPIO引腳124上的IRQ解除斷言。在546上的IRQ信號的斷言解除完成了在主模塊104和從模塊106之間的事務(wù)。
可能的是主模塊和從模塊具有要發(fā)送的數(shù)據(jù),并且同時警告遠程設(shè)備這個事實。在這種情況下,主模塊總是贏得這個競爭。它將首先執(zhí)行這個事務(wù)。主模塊將知道它發(fā)送給從模塊的數(shù)據(jù)數(shù)目,因為從模塊已經(jīng)在它的響應中提供了那個值(SA)。從模塊將了解到它具有的輸出數(shù)據(jù)沒有被主模塊接受,因為主模塊發(fā)送類型1消息,而不是類型3消息。
本公開旨在解釋如何形成和使用與這項技術(shù)一致的各種實施例,而不是限制其中真實的,預期的和公正的范圍和精神。前面的描述不是排它的或是被限制為所公開的精確形式。根據(jù)前述的教導,可以做出修改或者變化。選擇和描述實施例是為了最好地解釋所描述的技術(shù)原理和它的實際應用,并且使得本領(lǐng)域中的普通技術(shù)人員去利用在各種實施例中的技術(shù)以及通過各種修改使之適宜所需要的特定用途。當在公正的、合法的和公平合理地賦予的范圍之內(nèi)被解釋的時候,所有的這些修改和變化都落入由所附的權(quán)利要求及其所有等效替代確定的本發(fā)明的范圍之內(nèi),這些權(quán)利要求可能在本專利申請的審批期間修改。
權(quán)利要求
1.一種用于串行芯片間通信的系統(tǒng),包括主模塊;從模塊;在主模塊和從模塊之間的為了通過主模塊控制從模塊的芯片選擇線路;在主模塊和從模塊之間的為了通過主模塊控制從模塊的時鐘線路;以及在主模塊和從模塊之間的為從模塊提供能力以中斷主模塊的中斷線路。
2.如權(quán)利要求1所述的系統(tǒng),其中主-到-從數(shù)據(jù)和從-到-主數(shù)據(jù)被處理,進一步包括在主模塊和從模塊之間的主機輸出/從機輸入線路;以及在主模塊和從模塊之間的主機輸入/從機輸出線路;其中,在主機輸出/從機輸入線路上的主-到-從數(shù)據(jù)流和在主機輸入/從機輸出線路上的從-到-主數(shù)據(jù)流通過流控制協(xié)議而被協(xié)商。
3.如權(quán)利要求2所述的系統(tǒng),其中流控制協(xié)議包括自主模塊到從模塊的主消息,并且該主消息包括指定消息類型的字節(jié)。
4.如權(quán)利要求3所述的系統(tǒng),其中流控制協(xié)議進一步包括自從模塊到主模塊的從消息,并且該從消息包括指定消息類型的字節(jié)。
5.如權(quán)利要求4所述的系統(tǒng),其中主消息進一步包括至少一個指定主-到-從數(shù)據(jù)的第一備選大小的字節(jié)。
6.如權(quán)利要求5所述的系統(tǒng),其中從消息進一步包括至少一個指定主-到-從數(shù)據(jù)的第二備選大小的字節(jié);以及主-到-從數(shù)據(jù)的大小是第一備選大小和第二備選大小中的最小值。
7.如權(quán)利要求4所述的系統(tǒng),其中從消息包括至少一個指定從-到-主數(shù)據(jù)中的字節(jié)數(shù)目的字節(jié)。
8.一種設(shè)備,包括具有用于CS、CLK、MOSI、MISO和IRQ信號的連接的主設(shè)備;具有用于CS、CLK、MOSI、MISO和IRQ信號的連接的從設(shè)備;連接主CS連接和從CS連接的控制線路;連接主CLK連接和從CLK連接的控制線路;連接主IRQ連接和從IRQ連接的控制線路;連接主MOSI連接和從MOSI連接的數(shù)據(jù)線路;連接主MISO連接和從MISO連接的數(shù)據(jù)線路;其中CS連接由主設(shè)備使用從而去啟動從設(shè)備;CLK連接由主設(shè)備所使用從而對主設(shè)備和從設(shè)備之間的數(shù)據(jù)流進行計時;IRQ連接由從設(shè)備所使用從而去提醒主設(shè)備,從設(shè)備有數(shù)據(jù)要發(fā)送給主設(shè)備;IRQ連接進一步被從設(shè)備所使用從而去提醒主設(shè)備,從設(shè)備準備好了自主設(shè)備接受數(shù)據(jù);MOSI連接被使用從而自主設(shè)備傳遞數(shù)據(jù)到從設(shè)備;并且MISO連接被使用從而自從設(shè)備傳遞數(shù)據(jù)到主設(shè)備。
9.如權(quán)利要求8所述的設(shè)備,其中CS、CLK、MOSI、MISO和IRQ信號包括流控制協(xié)議。
10.如權(quán)利要求8所述的設(shè)備,其中所述設(shè)備是蜂窩電話。
全文摘要
在具有計時能力的擴展串行外圍接口(ESPI)主(210)芯片和ESPI從(310)芯片之間進行芯片間通信的系統(tǒng)、方法和設(shè)備被公開。所述方法包括主芯片選擇從芯片(402),主模塊自主芯片計時輸入數(shù)據(jù)到從芯片中,并且同時自從芯片機時輸入數(shù)據(jù)到主芯片(404)中,接著處理時鐘引入的數(shù)據(jù),從而協(xié)商在主芯片和從芯片之間的進一步的數(shù)據(jù)傳輸(406)。由主芯片所做的從芯片選擇也可以因為響應主芯片自從芯片(502)接收到的中斷而發(fā)生,然后主芯片在兩個方向(504)上計時數(shù)據(jù)從而進一步協(xié)商在主芯片和從芯片之間的數(shù)據(jù)傳輸(506)。
文檔編號G06F13/42GK101061468SQ200580040042
公開日2007年10月24日 申請日期2005年11月29日 優(yōu)先權(quán)日2004年12月29日
發(fā)明者馬修·T·威爾遜, 斯蒂芬·R·S·羅斯 申請人:摩托羅拉公司