本發(fā)明專利申請(qǐng)是國(guó)際申請(qǐng)?zhí)枮閜ct/us2013/065017,國(guó)際申請(qǐng)日為2013年10月15日,進(jìn)入中國(guó)國(guó)家階段的申請(qǐng)?zhí)枮?01380053473.1,名稱為“虛擬gipo”的發(fā)明專利申請(qǐng)的分案申請(qǐng)。
相關(guān)申請(qǐng)
本申請(qǐng)要求于2012年10月15日遞交的美國(guó)臨時(shí)申請(qǐng)no.61/714,118的權(quán)益,其內(nèi)容通過引用完全被納入于此。
本申請(qǐng)涉及通用輸入/輸出(gpio),并且尤其涉及配置成將一對(duì)引腳用作虛擬gpio引腳的集成電路。
背景技術(shù):
通用輸入/輸出(gpio)使得集成電路設(shè)計(jì)者能夠提供可以為特定應(yīng)用定制的通用引腳。例如,取決于用戶需要,gpio引腳可以被編程為輸出引腳或者輸出引腳。gpio模塊或者外圍設(shè)備通常會(huì)控制基于接口要求而能變動(dòng)的引腳群。因?yàn)間pio引腳的可編程性,它們一般被包括在微處理器和微控制器應(yīng)用中。例如,移動(dòng)設(shè)備中的應(yīng)用處理器可以使用數(shù)個(gè)gpio引腳來進(jìn)行握手信令,諸如進(jìn)行與調(diào)制解調(diào)器處理器的處理器間通信(ipc)。
對(duì)于此類握手信令,若邊帶信號(hào)必須既被處理器發(fā)射又被其接收,那么該邊帶信號(hào)可以被視為是“對(duì)稱”的。若有n個(gè)對(duì)稱的邊帶信號(hào)需要被交換,那么每個(gè)處理器要求n*2個(gè)gpio(一個(gè)gpio發(fā)射給定信號(hào)并且一個(gè)gpio接收該信號(hào))。例如,調(diào)制解調(diào)器處理器與應(yīng)用處理器之間的對(duì)稱ipc接口可以包括五個(gè)信號(hào),其轉(zhuǎn)譯成結(jié)果所得的ipc信令需要10個(gè)gpio引腳。ipc通信需要如此之多的gpio引腳增加了制造成本。此外,為ipc投入過多的gpio限制了gpio對(duì)其他系統(tǒng)級(jí)外圍接口的可用性。該問題不能夠通過將ipc通信移到處理器之間的主數(shù)據(jù)總線上來得到解決,因?yàn)槿绱司瓦`反了特定角點(diǎn)條件。
相應(yīng)地,本領(lǐng)域中存在對(duì)能夠容適眾多輸入/輸出信號(hào),而不要求過多數(shù)目的引腳的gpio架構(gòu)的需求。
技術(shù)實(shí)現(xiàn)要素:
提供了一種用于在各自具有處理器的兩個(gè)集成電路之間進(jìn)行通信的虛擬gpio架構(gòu)。每個(gè)集成電路還包括用于使用一組信號(hào)與遠(yuǎn)程處理器通信的gpio接口。該組信號(hào)包括一組gpio信號(hào)和一組虛擬gpio信號(hào)。每個(gè)集成電路由此包括對(duì)應(yīng)于該組gpio信號(hào)的一組gpio引腳。
與該組gpio信號(hào)形成對(duì)比的是,該組虛擬gpio信號(hào)并不在gpio引腳上被發(fā)射。替換地,每個(gè)集成電路使用專用發(fā)射引腳和專用接收引腳來傳送和接收該組虛擬gpio信號(hào)。鑒于此,該組虛擬gpio信號(hào)包括發(fā)射集和接收集。每個(gè)集成電路中的有限狀態(tài)機(jī)(fsm)配置成通過該專用發(fā)射引腳向遠(yuǎn)程處理器串行地傳送該發(fā)射集。該有限狀態(tài)機(jī)進(jìn)一步配置成在該專用接收引腳上從該遠(yuǎn)程處理器串行地接收虛擬gpio信號(hào)的該接收集。
該處理器向該gpio接口提供第一組信號(hào)。從該gpio接口,該第一組信號(hào)的一部分作為第一組gpio信號(hào)在第一組對(duì)應(yīng)gpio引腳上被傳送到遠(yuǎn)程處理器。來自該處理器的該第一組信號(hào)的剩余部分由該gpio接口并行地提供到fsm。該fsm能夠接著將該剩余部分作為虛擬gpio信號(hào)的發(fā)射集在專用發(fā)射引腳上串行地傳送。
該gpio接口還在第二組對(duì)應(yīng)gpio引腳上從該遠(yuǎn)程處理器接收第二組gpio信號(hào)。此外,該fsm從該遠(yuǎn)程處理器串行地接收虛擬gpio信號(hào)的接收集,并且并行地向該gpio接口提供該接收集。該gpio接口能夠接著向該處理器提供第二組信號(hào),該第二組信號(hào)包括來自該遠(yuǎn)程處理器的第二組gpio信號(hào)、以及虛擬gpio信號(hào)的接收集。
用這種方式,該處理器對(duì)于其向該gpio接口提供的第一組信號(hào)是否包括任何虛擬gpio信號(hào)是“不置可否”的。類似地,對(duì)于該處理器來說,它從該gpio接口接收到的第二組信號(hào)是否包括任何虛擬gpio信號(hào)并沒有功能上的差別。該處理器由此不需要針對(duì)其與本文中所公開的虛擬gpio架構(gòu)的集成進(jìn)行任何配置或者重編程。此外,該有限狀態(tài)機(jī)獨(dú)立于該處理器,因?yàn)槠洳⒎鞘怯绍浖?qū)動(dòng)的。該虛擬gpio架構(gòu)由此能夠在該處理器處于休眠模式或以其他方式呈非活躍時(shí)獨(dú)立地運(yùn)作,這節(jié)省了功率。
一個(gè)處理器中的fsm在由開始位和結(jié)束位劃界的幀中傳送虛擬gpio信號(hào)的發(fā)射集。遠(yuǎn)程處理器中的fsm由此將所傳送的幀作為其虛擬gpio信號(hào)的接收集來接收。通過監(jiān)視其是否接收到包括了開始位和結(jié)束位二者的完整幀,一個(gè)處理器的fsm就能夠檢測(cè)出該遠(yuǎn)程處理器是否發(fā)生了故障。
附圖說明
圖1是示例虛擬gpio架構(gòu)的框圖。
圖2a是其中處理器與單個(gè)遠(yuǎn)程處理器通信的虛擬gpio架構(gòu)的高級(jí)框圖。
圖2b是其中處理器與兩個(gè)遠(yuǎn)程處理器通信的虛擬gpio架構(gòu)的高級(jí)框圖。
圖3是虛擬gpio有限狀態(tài)機(jī)的框圖。
圖4解說了虛擬gpio幀的傳送與接收之間的時(shí)序關(guān)系。
圖5是圖1的gpio架構(gòu)所實(shí)踐的方法的流程圖。
本發(fā)明的實(shí)施例及其優(yōu)勢(shì)通過參考之后的詳細(xì)描述而被最好地理解。應(yīng)當(dāng)領(lǐng)會(huì),在一個(gè)或多個(gè)附圖中,相同的參考標(biāo)記被用來標(biāo)識(shí)相同的元件。
具體實(shí)施方式
提供了一種虛擬通用輸入/輸出(gpio)架構(gòu),其使得系統(tǒng)能夠?qū)⒁粚?duì)引腳使用為就如同這對(duì)引腳構(gòu)成了更大數(shù)目的gpio引腳一樣。這一架構(gòu)被視為是虛擬的,因?yàn)閷?duì)于創(chuàng)建那些虛擬gpio信號(hào)的系統(tǒng)級(jí)應(yīng)用而言,這就如同那些虛擬gpio信號(hào)正被容適在常規(guī)gpio引腳上進(jìn)行輸入/輸出一樣。換句話說,具有本文中所公開的虛擬gpio架構(gòu)的片上系統(tǒng)(soc)或處理器不會(huì)體驗(yàn)到gpio信號(hào)與虛擬gpio信號(hào)之間的功能性差異。然而,僅使用了兩個(gè)引腳來傳送和接收原本各自都需要它們自身專用的gpio引腳對(duì)(若gpio信號(hào)是對(duì)稱的)的虛擬gpio信號(hào)。
本文中所公開的虛擬gpio架構(gòu)可以針對(duì)容適移動(dòng)電話或其他通信設(shè)備中的應(yīng)用處理器與調(diào)制解調(diào)器處理器之間的ipc來討論。然而,將領(lǐng)會(huì),本文中所公開的虛擬gpio電路和技術(shù)廣泛應(yīng)用于要求gpio能力的片上系統(tǒng)(soc)或者專用集成電路(asic)。
所公開的虛擬gpio架構(gòu)使得發(fā)射節(jié)點(diǎn)的健康對(duì)于接收節(jié)點(diǎn)來說是透明的。這是重要的優(yōu)勢(shì),在軟件實(shí)現(xiàn)的調(diào)試階段期間尤其如此,因其向接收處理器指示了發(fā)射處理器變?yōu)椴黄鹱饔玫臅r(shí)間。
為了使得能夠?qū)崿F(xiàn)此類穩(wěn)健的虛擬gpio能力,每個(gè)集成電路包括耦合到電路板上的發(fā)射線的專用發(fā)射引腳以及耦合到該電路板的接收線的專用接收引腳。鑒于此,虛擬gpio信號(hào)可以被劃分為用于在該發(fā)射線上進(jìn)行傳送的發(fā)射集和用于在該接收線上進(jìn)行接收的接收集。如果信令是對(duì)稱的,那么每個(gè)處理器的發(fā)射集中信號(hào)的數(shù)目是相同的。然而,本文中所公開的虛擬gpio架構(gòu)能夠容適不對(duì)稱信令,其中一個(gè)處理器的虛擬gpio信號(hào)的發(fā)射集與遠(yuǎn)程處理器的發(fā)射集的大小不相同。
現(xiàn)在轉(zhuǎn)到附圖,圖1針對(duì)移動(dòng)電話或其他通信設(shè)備中對(duì)應(yīng)集成電路中的應(yīng)用處理器集成電路100和調(diào)制解調(diào)器處理器集成電路105來解說虛擬gpio架構(gòu)101。因?yàn)槊總€(gè)集成電路耦合到專用的發(fā)射線和專用的接收線,所以應(yīng)用處理器100的發(fā)射線110a由此是調(diào)制解調(diào)器處理器105的接收線。類似地,調(diào)制解調(diào)器處理器105的發(fā)射線110b是應(yīng)用處理器100的接收線。這些線或?qū)Ь€被承載在電路板(由虛線150指示)或者集成電路100和105之間的其他物理互連上。每個(gè)集成電路包括耦合到對(duì)應(yīng)發(fā)射線(例如,調(diào)制解調(diào)器處理器105的線110b)的專用發(fā)射引腳。類似地,每個(gè)處理器包括耦合到對(duì)應(yīng)接收線(例如,調(diào)制解調(diào)器處理器105的線110a)的專用接收引腳。每個(gè)集成電路中的有限狀態(tài)機(jī)(fsm)115使用這些專用線和引腳,參考來自外部時(shí)鐘源(例如,32khz休眠時(shí)鐘)的外部時(shí)鐘信號(hào)來控制傳送和接收。
如在gpio領(lǐng)域所已知的,每個(gè)處理器包括其用來與gpio引腳對(duì)接的gpio接口103。有利地,gpio接口在虛擬gpio架構(gòu)101中可以是不變的。換句話說,每個(gè)處理器以常規(guī)方式通過其gpio接口103接收和傳送信號(hào),從而虛擬gpio架構(gòu)101對(duì)于處理器100和105而言是透明的。通過每個(gè)gpio接口103處理的這些信號(hào)的特定部分可以作為gpio信號(hào)130在常規(guī)gpio引腳125上被發(fā)射和接收。但是,通過gpio接口103處理的這些信號(hào)的剩余部分并不通過常規(guī)gpio引腳125被發(fā)射或接收。替代地,該剩余部分包括使用專用發(fā)射引腳和專用接收引腳通過fsm115來傳送和接收的多個(gè)虛擬gpio信號(hào)135。
通過gpio接口103處理的這些信號(hào)的此剩余部分被指定為虛擬gpio信號(hào)135,因?yàn)樗鼈儾⒉蝗绯R?guī)gpio信號(hào)130的情形中那樣各自具有它們自身專用的引腳。這十分有利,因?yàn)槊總€(gè)處理器核不要求對(duì)其gpio接口103的改組,而虛擬gpio架構(gòu)101達(dá)成了與其中虛擬gpio信號(hào)135將各自要求其自身引腳的常規(guī)gpio實(shí)施例相比而言顯著的引腳減少。
集成電路可以僅包括一個(gè)fsm115或者可以包括用于和多個(gè)外部系統(tǒng)接口的多個(gè)此類元件。圖2a解說了虛擬gpio架構(gòu),其中集成電路200包括用于與集成電路205(包括其自身的fsm115)中的遠(yuǎn)程處理器通信的單個(gè)fsm115。作為對(duì)比,圖2b中所示的集成電路220包括用于分別與集成電路225和230中的遠(yuǎn)程處理器通信的fsm115a和fsm115b。鑒于此,片上系統(tǒng)(soc)(諸如本文中所討論的處理器)可以被配置有容適與其他soc的虛擬gpio信令所需要的那樣多的fsm。
不管處理器可能具有的fsm的數(shù)目是多少,如圖2a中所指示的,每個(gè)fsm使用其自身專用的發(fā)射引腳240和接收引腳245進(jìn)行通信。
再次參見圖1,因?yàn)樘摂Mgpio信號(hào)135是使用諸如fsm115的有限狀態(tài)機(jī)來容適的,所以這些處理器核可以處于休眠或者其他類型的休止?fàn)顟B(tài),卻能夠接收虛擬gpio信號(hào)135。以這種方式,虛擬gpio架構(gòu)101不僅有利地節(jié)約了每個(gè)gpio接口103的引腳的數(shù)目,而且也是低功率的。
如本文中所使用的,“引腳”是覆蓋了集成電路用來耦合到電路板上或者其他物理互連(例如,封裝互連或者穿孔式通孔互連)上的導(dǎo)線的結(jié)構(gòu)(諸如焊盤或?qū)嶋H引腳)的通用術(shù)語。例如,若每個(gè)集成電路具有十六個(gè)gpio引腳125,那么這些引腳可以配置成容適八個(gè)對(duì)稱gpio信號(hào)130(為了解說清楚起見,圖1中僅示出了四個(gè)常規(guī)gpio信號(hào)#1到#4)或者十六個(gè)不對(duì)稱gpio信號(hào)130。此外,每個(gè)集成電路能夠使用線110a和110b來容適多個(gè)(n個(gè))虛擬gpio信號(hào)135的輸入/輸出對(duì)接,其中n是任意復(fù)數(shù)整數(shù)。對(duì)于每個(gè)處理器核而言,gpio信號(hào)130與虛擬gpio信號(hào)135之間沒有差異:它們兩者都只不過是要按需通過gpio接口103傳送和接收的信號(hào)。然而,與常規(guī)gpio信號(hào)130形成對(duì)比的是,因?yàn)樘摂Mgpio信號(hào)135沒有專用引腳,所以虛擬gpio信號(hào)135在fsm115中被串行化以用于在線110a和110b上傳輸。在接收之際,每個(gè)fsm115將接收到的經(jīng)串行化虛擬gpio信號(hào)反串行化。由此,每個(gè)fsm115對(duì)于虛擬gpio信號(hào)135而言起到串行器/反串行器的作用。
處理器可能需要響應(yīng)于這些gpio信號(hào)中選定的若干信號(hào)上的改變而接收中斷信號(hào)。針對(duì)虛擬gpio信號(hào)135而言,調(diào)制解調(diào)器功率管理器(mpm)140按通過中斷配置寄存器145被編程的方式來監(jiān)視這些選定的gpio信號(hào)。每個(gè)虛擬gpio信號(hào)135具有對(duì)應(yīng)的中斷配置寄存器145。如果虛擬gpio信號(hào)135被要求響應(yīng)于該信號(hào)改變狀態(tài)而生成中斷,那么對(duì)應(yīng)的配置寄存器145將被相應(yīng)地編程。類似地,如果虛擬gpio信號(hào)135是無論該信號(hào)是否改變了狀態(tài)均不生成中斷的信號(hào),那么對(duì)應(yīng)的中斷配置寄存器也將被相應(yīng)地編程。mpm140也可以包括有限狀態(tài)機(jī)。由此,就像fsm115,mpm140是低功率的并且無論其處理器是處于休眠模式還是某種其他休止?fàn)顟B(tài)均呈活躍。
虛擬gpio信號(hào)135可以被細(xì)分為發(fā)射集和接收集。在對(duì)稱系統(tǒng)中,每個(gè)集合可以具有相同的數(shù)目。然而,將會(huì)領(lǐng)會(huì),虛擬gpio架構(gòu)101是有利的,因?yàn)槠淠軌颥F(xiàn)成地容適其中虛擬gpio信號(hào)135的發(fā)射集和接收集具有不同大小的不對(duì)稱信令實(shí)施例。無論架構(gòu)101是對(duì)稱的還是不對(duì)稱的,每個(gè)fsm115并行地從gpio接口103接收虛擬gpio信號(hào)135的發(fā)射集,并行的意義是指虛擬gpio信號(hào)135的該發(fā)射集中的每個(gè)信號(hào)被承載在gpio接口103與fsm115之間的該信號(hào)自身的導(dǎo)線106上。與之形成對(duì)比的是,由fsm115對(duì)此發(fā)射集所做的結(jié)果傳輸發(fā)生在單個(gè)發(fā)射引腳240上,如針對(duì)圖2a所討論的。虛擬gpio信號(hào)的該發(fā)射集接著變成遠(yuǎn)程處理器的接收集。該遠(yuǎn)程處理器的fsm接著反串行化該接收集,以使得其可以并行地呈遞給gpio接口103。
每個(gè)fsm115包括存儲(chǔ)虛擬gpio信號(hào)135的發(fā)射集的先前狀態(tài)的配置寄存器107。以這種方式,每個(gè)fsm115能夠監(jiān)視從gpio接口103接收到的發(fā)射集的當(dāng)前狀態(tài),并且僅在當(dāng)前狀態(tài)相對(duì)于先前狀態(tài)而言改變了時(shí)才觸發(fā)發(fā)射集的串行傳輸。換句話說,fsm115將僅在通過配置寄存器107中存儲(chǔ)先前狀態(tài)監(jiān)測(cè)到發(fā)射集內(nèi)的一個(gè)或多個(gè)信號(hào)改變了狀態(tài)時(shí)才觸發(fā)發(fā)射集的串行傳輸。
如以上所討論的,每個(gè)fsm115作為串行器/反串行器來串行化虛擬gpio信號(hào)135的發(fā)射集并且反串行化虛擬gpio信號(hào)135的接收集。圖3是fsm115的框圖用以更好地解說這些操作。fsm115經(jīng)由gpio接口103(圖1)通過復(fù)用模塊300與處理器核交換虛擬gpio信號(hào)135。在一個(gè)實(shí)施例中,fsm115包括若發(fā)射集中有改變則將授權(quán)在發(fā)射線110a上傳送虛擬gpio信號(hào)135的發(fā)射集的邏輯電路301。邏輯電路301由此將虛擬gpio信號(hào)135的發(fā)射集的當(dāng)前狀態(tài)與存儲(chǔ)在配置寄存器107中的發(fā)射信號(hào)的該集合的先前狀態(tài)作比較。例如,邏輯電路301可以包括異或門310以執(zhí)行該比較。復(fù)用模塊300將該發(fā)射集并行加載到并入串出(piso)移位寄存器315。若來自異或門310的使能信號(hào)320走高(指示發(fā)射集的當(dāng)前狀態(tài)與先前狀態(tài)之間有改變),則piso移位寄存器315被啟用以響應(yīng)于外部時(shí)鐘120的循環(huán),串行地將其內(nèi)容移出到發(fā)射線110a上。
fsm115還使用串入并出(sipo)移位寄存器325用類似的方式將虛擬gpio信號(hào)的接收集反串行化。虛擬gpio信號(hào)135的接收集由遠(yuǎn)程處理器生成并且由遠(yuǎn)程處理器傳送到接收線110b上。該虛擬gpio信號(hào)135的接收集響應(yīng)于外部時(shí)鐘120的循環(huán)被成功地移到sipo移位寄存器325中。如本文中所進(jìn)一步討論的,fsm115被配置成在具有單獨(dú)開始位和結(jié)束位的幀中傳送該發(fā)射集并且接收虛擬gpio信號(hào)135的接收集。
這些幀具有預(yù)定義的大小。在一個(gè)實(shí)施例中,幀大小可以被固定為長(zhǎng)達(dá)特定數(shù)目的位。若虛擬gpio信號(hào)的發(fā)射集小于此固定大小,那么每幀內(nèi)未被使用的位可以是隨意(don'tcare)值。替換地,每個(gè)fsm115可以被配置成取決于給定應(yīng)用所需的位的數(shù)目而變更所發(fā)射的幀的大小。
為了檢測(cè)收到虛擬gpio信號(hào)135的接收集的完整幀,fsm115可以包括在收到幀的開始位后計(jì)數(shù)外部時(shí)鐘120的必要循環(huán)數(shù)目的邏輯電路350。例如,假設(shè)接收集包括響應(yīng)于外部時(shí)鐘120的十個(gè)循環(huán)所接收到的十個(gè)虛擬gpio信號(hào)。在檢測(cè)到開始位并且等待了外部時(shí)鐘120的另外十個(gè)循環(huán)后,邏輯電路350將接著期望收到結(jié)束位。如果相應(yīng)地檢測(cè)到了結(jié)束位,那么邏輯電路350可以接著選通輸出鎖存器351來并行接收已作為完整幀移入sipo移位寄存器325的虛擬gpio信號(hào)的接收集。被鎖存的虛擬gpio信號(hào)的接收集接著可以通過復(fù)用模塊300被呈遞給gpio接口103。
再次參照piso移位寄存器315,將會(huì)領(lǐng)會(huì),該寄存器被配置成將虛擬gpio信號(hào)的發(fā)射集用開始位和結(jié)束位來框定。虛擬gpio信號(hào)的發(fā)射集由此在由開始位和結(jié)束位劃界的幀中被傳送。因?yàn)樘幚砥鞯陌l(fā)射集變成遠(yuǎn)程處理器的接收集,所以該接收集也相應(yīng)被框定。該框定是有利的,因?yàn)槊總€(gè)處理器由此可以監(jiān)視遠(yuǎn)程處理器的健康而不需要任何的附加專用引腳。例如,每個(gè)fsm115可以配置成在默認(rèn)狀態(tài)(虛擬gpio信號(hào)的發(fā)射集的當(dāng)前狀態(tài)相比于先前狀態(tài)沒有改變)期間將其專用發(fā)射引腳240弱拉(并因此將發(fā)射線110a弱拉)至電源電壓。對(duì)于此類實(shí)施例而言,開始位將會(huì)是邏輯零,以使得為了傳送開始位,fsm115將發(fā)射線110a接地。用這種方式,每個(gè)fsm115可以通過檢測(cè)接收線110b被拉向接地而現(xiàn)成地檢測(cè)出收到開始位。在一個(gè)實(shí)施例中,開始位和停止位是邏輯互補(bǔ)的。
存在處理器發(fā)生故障使得其不恰適地將其發(fā)射線110a拉到接地的可能性。該遠(yuǎn)程處理器會(huì)由此將這一情況檢測(cè)為開始位,并且邏輯電路350會(huì)相應(yīng)地開始向著幀的結(jié)束進(jìn)行計(jì)數(shù)。但是,結(jié)束位在該實(shí)施例中是邏輯1,這樣每個(gè)fsm115將發(fā)射線110a充電至電源電壓以信令通知幀傳輸?shù)慕Y(jié)束。若處理器發(fā)生了故障使得遠(yuǎn)程fsm檢測(cè)到被視為開始位的信號(hào),則邏輯電路350將不會(huì)檢測(cè)到結(jié)束位,并且將會(huì)相應(yīng)告知其處理器有關(guān)遠(yuǎn)程處理器的故障。
圖4示出了針對(duì)用于虛擬gpio幀400的傳送和接收的外部時(shí)鐘120的示例性時(shí)序。為了允許有足夠的建立時(shí)間來進(jìn)行接收,傳輸應(yīng)當(dāng)參照第一時(shí)鐘沿來發(fā)生,并且參照剩余的時(shí)鐘沿接收。例如,piso移位寄存器315中的位可以響應(yīng)于外部時(shí)鐘120的下降沿或負(fù)沿而被移出以用于在發(fā)射線110a上傳輸。相反地,接收線110b上收到的位可以響應(yīng)于時(shí)鐘120的上升沿或正沿而被移入sipo移位寄存器325。
為使一個(gè)處理器檢測(cè)到遠(yuǎn)程處理器中的非活躍狀態(tài),每個(gè)fsm115可以被配置成在默認(rèn)狀態(tài)(其中沒有幀要發(fā)射)中弱拉高其發(fā)射線。開始位和停止位具有相反的邏輯狀態(tài)。開始位405可以由此為零,以使得發(fā)射線110a為該位的傳送而被拉低,而停止位410可以為二進(jìn)制1值,以使得發(fā)射線110a為該位的傳送而被拉高。再次參見圖3,邏輯電路350被配置成參照外部時(shí)鐘120的上升沿來監(jiān)視接收線110b。無幀傳輸?shù)哪J(rèn)邏輯狀態(tài)由因上文所討論的弱上拉而導(dǎo)致接收線110b簡(jiǎn)單地維持在高來指示。如果邏輯電路350在外部時(shí)鐘120的上升沿之一檢測(cè)到接收線110b被拉低了(指示開始位405的零值),則邏輯電路350根據(jù)幀400的預(yù)定義大小等待足夠數(shù)目的時(shí)鐘循環(huán)以接著檢測(cè)停止位410的邏輯高值。收到停止位410向邏輯電路350指示完整幀400已被完全移入sipo移位寄存器325。此刻,邏輯電路350選通sipo移位寄存器325,以使得收到的幀通過鎖存器351被并行地提供到復(fù)用模塊300。虛擬gpio信號(hào)的接收集可以接著通過gpio接口103被相應(yīng)地提供到處理器核。
相對(duì)慢的外部時(shí)鐘120(諸如32khz休眠時(shí)鐘)對(duì)于ipc的信令要求來說是充足的。例如,假設(shè)虛擬gpio信號(hào)的傳輸?shù)淖钚〗⒑捅3忠蟾髯詾閮杉{秒,并且虛擬gpiofsm處收到外部時(shí)鐘120的最大預(yù)期領(lǐng)先或滯后為六納秒。能夠容易地示出,外部時(shí)鐘120的結(jié)果所得的最大頻率將會(huì)是62mhz。諸如來自休眠時(shí)鐘的32khz頻率由此會(huì)為此類實(shí)施例提供非常大的安全邊際。
圖5的流程圖中總結(jié)了架構(gòu)101的操作方法。該方法始于gpio接口在步驟500從其處理器接收一組信號(hào)。在步驟505該組信號(hào)接著從該gpio接口被提供到fsm。在步驟510,fsm響應(yīng)于外部時(shí)鐘的循環(huán),在專用發(fā)射引腳上串行地發(fā)射該組信號(hào)。
考慮所公開的虛擬gpio架構(gòu)的優(yōu)勢(shì):僅需要兩個(gè)引腳以及共用時(shí)鐘源,而任何數(shù)目的虛擬gpio信號(hào)能通過有限狀態(tài)機(jī)被串行化或反串行化。僅有的限制是對(duì)虛擬gpio信號(hào)參照外部時(shí)鐘120和任何預(yù)期的時(shí)鐘滯后或領(lǐng)先量的時(shí)序要求。此外,不需要任何其他引腳來使得一個(gè)處理器的健康對(duì)于對(duì)方處理器透明。
如本領(lǐng)域普通技術(shù)人員至此將會(huì)領(lǐng)會(huì)并取決于手頭的具體應(yīng)用,可以在本公開的設(shè)備的材料、裝置、配置和使用方法上做出許多修改、替換和變動(dòng)而不會(huì)脫離本公開的精神和范圍。有鑒于此,本公開的范圍不應(yīng)當(dāng)被限定于本文中所解說和描述的特定實(shí)施例(因?yàn)槠鋬H是藉其一些示例來解說和描述的),而應(yīng)當(dāng)與所附權(quán)利要求及其功能等同方案完全相當(dāng)。