專利名稱:優(yōu)先級增強型消息傳送裝置及其方法
技術領域:
本發(fā)明涉及接口協(xié)議,尤其是涉及串行協(xié)議中優(yōu)先級消息傳送技術。
通過串行總線通信的各種已知裝置,包括諸如微處理器、微控制器、數(shù)字信號處理器、邏輯器件以及外設等部件。這樣的設備包括個人計算機和通信裝置,前述個人計算機諸如膝上型和桌上型計算機,前述通信裝置諸如蜂窩電話、多用途電話、個人數(shù)據(jù)助理、掌上型計算機以及計算機外設等等。對于這些裝置而言,部件和串行總線可以在裝置的內(nèi)部或外部。
無論串行總線的用途怎樣,各種協(xié)議常常用于將數(shù)據(jù)成幀為離散消息或分組,這樣數(shù)據(jù)通過串行總線被傳送。此外,這種數(shù)據(jù)鏈路利用除串行傳送和接收線路外的相互連接來容納流量指令信令。如果相互連接的數(shù)量僅限于傳送和接收線路,那么就不存在用于流量控制的單獨線路。因此,流量控制已經(jīng)被包括為成幀協(xié)議的部分。
當成幀協(xié)議被用于串行總線時,在最大可容許鏈路等待時間與最大可容許分組長度之間作出折衷。分組長度越長,系統(tǒng)等待消息通信的時間就越長。例如,考慮到在一個鏈路中每個字節(jié)的傳送需要1微秒,以及最大分組長度為100字節(jié)。如果正好在100個字節(jié)分組中第一個字節(jié)的傳送被啟動之后高優(yōu)先級分組被用于傳送,那么在優(yōu)先級消息可以被送出之前,系統(tǒng)必須等待1整秒。
一種解決方法是,將消息拆散為足夠小的分組,以適應優(yōu)先級消息傳送所要求的等待時間,然后,傳送消息進行處理之前,在另一端接收時將這些分組重新裝配成完整的消息。例如,通過減少分組的大小至最大10字節(jié),優(yōu)先級消息可以被插入,其等待時間僅為10微秒。然而,在構造更長的消息及重新裝配它們時,會增加相當大的額外開銷。這會減慢消息的接收處理。此外,由于這種系統(tǒng)的復雜性,還會出現(xiàn)大量的錯誤情況。因而,實現(xiàn)這種技術方案的協(xié)議增加了額外開銷,增加了錯誤的機會,并且實現(xiàn)起來非常復雜。
因此需要一種改進的用于調(diào)節(jié)優(yōu)先級消息的協(xié)議,該協(xié)議不會對通信協(xié)議的性能產(chǎn)生消極影響。
圖1為說明現(xiàn)有技術中通過串行總線相互連接的兩個部件的電路方框示意圖;圖2為說明圖1現(xiàn)有技術中部件串行總線的更詳細電路方框示意圖;圖3為說明在消息分組間插入優(yōu)先級消息的示意圖;圖4為說明在正在進行的分組消息內(nèi)插入優(yōu)先級消息的示意圖;圖5為說明傳送消息處理的流程圖;圖6為說明接收消息處理的流程圖;圖7為說明優(yōu)先級消息接收處理的流程圖;圖8為說明在分組接收期間優(yōu)先級消息接收處理的流程圖;圖9為說明在串行總線中消息路由選擇的示意圖;圖10說明數(shù)據(jù)消息的多路復用首標;圖11說明指令消息的首標;圖12為說明根據(jù)現(xiàn)有技術的數(shù)據(jù)成幀/路由選擇的示意圖;圖13為說明一種改進的數(shù)據(jù)成幀和路由選擇方法的示意圖;圖14為說明利用路由選擇首標選擇路由的流程圖;圖15為說明包括串行總線的無線電話的電路方框示意圖。
串行總線通信協(xié)議進行數(shù)據(jù)通信。當優(yōu)先級消息被通信時,正在進行的數(shù)據(jù)傳送,如果有的話,被中斷。優(yōu)先級消息被通信,然后被中斷的數(shù)據(jù)分組傳送被完成。優(yōu)先級消息傳送例行程序提供了一種通用的通信協(xié)議,即使在需要最小數(shù)目的相互連接時,該協(xié)議仍然有效。除了分組化消息的有效傳送外,該協(xié)議還提供了優(yōu)先級消息傳送的較少等待時間。
通信系統(tǒng)100(圖1)包括例如為處理器102的第一部件,以及例如為處理器104的第二部件,兩者通過串行總線106相互連接。串行總線包括用以從處理器102至處理器104進行信號通信的傳送線108,以及用以從處理器104至處理器102進行信號通信的接收線110。除了如接地的公共基準外,串行總線不需要其它的相互連接。
部件,或處理器102、104,可以包括微處理器、微控制器、數(shù)字信號處理器、邏輯器件或者其它通過串行總線通信的裝置。通信系統(tǒng)可以在一諸如個人計算機、個人數(shù)據(jù)助理、掌上計算機的單個裝置內(nèi),或者在諸如蜂窩電話或陸線電話的通信裝置內(nèi),或者在可能包括諸如計算機外設、無線電話等等的外部設備的通信系統(tǒng)內(nèi)。
處理器102包括一個串行輸入/輸出口(I/O)202。用于輸入及輸出數(shù)據(jù)的緩沖器204以及中央處理器器(CPU)206通過數(shù)據(jù)總線208被連接至串行I/O口202。處理器104類似地包括串行I/O口210。用于輸入及輸出數(shù)據(jù)的緩沖器212以及CPU214通過數(shù)據(jù)總線216被相互連接至串行I/O口210。
在處理器102與處理器104間通信的數(shù)據(jù)被格式化為分組,或消息,300-305(圖3)。在通信期間,數(shù)據(jù)分組在串行總線上依次通信。如果在時刻t1,優(yōu)先級消息傳送請求308在處理器102內(nèi)產(chǎn)生,消息將在時刻t2被傳送,時刻t2在數(shù)據(jù)分組的末端。這樣就產(chǎn)生了Δ1的延遲。優(yōu)先級消息具有Δ2的持續(xù)時間,它比本發(fā)明所用的分組長度短。如果數(shù)據(jù)分組較長,對于要進行有效操作而言優(yōu)先級消息的傳送延遲可能太長了。在優(yōu)先級消息要求立即響應的地方,延遲可能會太長以至于產(chǎn)生用戶可感覺的延遲或系統(tǒng)故障。
在時刻t1接收請求之后不久,一種改進的優(yōu)先級消息協(xié)議將優(yōu)先級消息401插入分組302。通過當消息產(chǎn)生時就進行通信,可以避免用戶可感知的延遲。分組302被中斷,以至于分組的一部分在優(yōu)先級消息之前被傳送而另一部分在優(yōu)先級消息之后被立即傳送。在任何一種情況下,如果另一個分組緊緊跟隨在分組302之后,那么在任何一種情況下僅延遲Δ2,這是一個很小的延遲。優(yōu)先級消息可以被插入而對數(shù)據(jù)分組通信沒有消極影響的方法將在下文描述。
改進的串行I/O口使用指令信號及串行I/O消息。在優(yōu)先級增強型串行線路接口協(xié)議(PSLIP)中僅定義了9種指令信號,盡管可以使用更多或更少的信號。9個指令信號是由換碼字符打頭,例如字符$DB,其中“$”表示跟隨其后的數(shù)值為十六進制。跟隨換碼字符的下一個字符為一用來標識指令信號的指令字符,例如優(yōu)先級字符。優(yōu)先級字符可選擇地包括信道指示符。信道指示符被用于多于一個優(yōu)先級消息目的地的系統(tǒng)中。因而指令信號識別優(yōu)先級消息,信道指示符指示所去的地方。跟隨優(yōu)先級消息的兩個字節(jié)標識優(yōu)先級消息。這兩個字節(jié)的值并不至關重要,但是可以具有系統(tǒng)所需要的任何值。
換碼字符被用于指示隨后字節(jié)的處理不是例行的處理。換碼字符啟動普通數(shù)據(jù)交換的中斷。換碼字符在每個“分組開始”字符、“開始確認”字符、“開始不被確認”字符、“插入換碼”字符(命令接收實體將換碼字符插入消息緩沖區(qū)中)、“暫?!弊址ⅰ皶和4_認”字符、“恢復”字符、“恢復確認”字符以及“高優(yōu)先級消息”字符之前。預想的優(yōu)先增強型串行線路接口協(xié)議,PSLIP,所定義的指令信號有9種。這些指令信號根據(jù)傳送處理例行程序的需要被插入,并且由接收處理例行程序接收后進行解釋。
如上所述,系統(tǒng)也具有串行I/O消息。串行I/O消息可以是數(shù)據(jù)消息1000(圖10),或者是控制指令1100(圖11)。消息的種類被串行I/O消息的第一個字節(jié)的最高位所區(qū)分。這個位稱作類型字段。這種類型字段具有用作數(shù)據(jù)消息的0值,以及用作指令控制的1值。消息其余部分的格式取決于消息的種類。
尤其是,每個串行I/O數(shù)據(jù)消息(圖10)包含一個路由選擇首標1002及消息數(shù)據(jù)1004。路由選擇首標包括加在每個消息數(shù)據(jù)前面的單個字節(jié)。首標包括類型字段1006、備用字段1008以及一個端口或連接器標識符字段1010。類型字段被設置為0值以指示它是數(shù)據(jù)消息。備用字段未被使用。它可以被用于其它的功能,諸如錯誤檢測及恢復。備用字段的傳輸值總是0。串行總線另一端的接收裝置將忽略這一位。端口標識符字段為所附的消息指定目的地端口。如上所述,利用6位端口標識符允許被支持的連接器達到64個。如本申請所用的,一個端口指的是一個連接器。數(shù)據(jù)1004可以是任何格式,例如可以是數(shù)據(jù)或控制信號,并且可以是任何其它格式。
串行I/O控制指令1100(圖1)包括一個由單個字節(jié)組成的指令首標1102,以及指令參數(shù)1104。類型字段1106位于首標中的最高位。下一位1108備用,盡管總是作為0進行通信。串行總線另一端的接收裝置將會忽略這一位。下一個6位是指令字段1110。指令字段識別被通信的控制指令。指令參數(shù)1104與每一個指令都不同。
在改進的系統(tǒng)中預想的有6個控制指令,盡管可以被支持的達到64,或者少數(shù)可以被使用。6個控制指令包括復聯(lián)(multiple)I/O(MSIO)建立請求、MSIO建立響應、端口開放請求、端口開放響應、端口關閉請求以及端口關閉響應。MISO建立請求用于由請求部件102確立連接以及為這種連接聲明最大數(shù)目的端口。MISO建立響應是由被請求完成連接的部件104發(fā)出的響應,并且用于協(xié)商允許在連接上開放的最大數(shù)目端口。端口開放請求用于請求開放一個端口。端口開放響應用于接收或拒絕開放端口的請求。端口關閉請求用于請求關閉一個端口。端口關閉響應用于對端口關閉請求作出響應,表示端口是否可以被關閉。因而,控制指令被用于通過串行總線106連接的部件102和104所用,以協(xié)商連接。
在操作中,當一個連接被建立以后,但在傳送之前,傳送實體,例如處理器102,對被通信的分組長度進行通信。接收實體,例如處理器104,如果它的緩沖器足夠大,就通過送出一個“確認”字符作出響應,或者如果它的緩沖器不是足夠大,就通過送出一個“沒有確認”字符作出響應。確認將導致有效的通信。
在通信期間的任何時刻,接收實體可以傳送一個“暫?!弊址?。傳送實體用“暫停確認”作出應答,并且不能再傳送分組消息,直到它從請求暫停的實體接收一個“恢復”字符。
可以預想的是,如果因為被接收的信息比CPU214及緩沖器212可以處理的信息更快,使得與之相關的緩沖器22即將被裝滿,則“暫?!毕山邮詹考?04發(fā)出。因而在這種情況下,這種暫停協(xié)議將會幫助避免丟失數(shù)據(jù)。其它防止錯誤的保護方法是,在通信暫停之前,要求正被傳送的任何字節(jié)都應該結(jié)束。
當接收實體,處理器104,在暫停后想要繼續(xù)時,一個“恢復”字符被傳送至另一個實體,處理器102。另一個實體(處理器102)發(fā)出“恢復確認”字符。然后,有效的通信狀態(tài)被處理器102及處理器104所恢復。
跟隨“暫?!毕⒅蟊粏拥臅和顟B(tài),并不適用于PSLIP協(xié)議的9個指令信號。這包括高優(yōu)先級指令。因而,當鏈路處于暫停狀態(tài)時,優(yōu)先級消息仍然進行通信。此外,在一個方向的分組消息傳送的暫停期間,例如從部件104至部件102,在另一方向的分組消息仍然可以被傳送,從部件102至部件104。
在雙線總線,即串行總線106的兩端具有部件102、104(圖2)的系統(tǒng)的運行,將參將照圖9被更詳細地描述。本領域技術人員將認識到,其它的連接(未示出)可以在雙線總線上提供。在每端示意性地給出了6個連接。連接900-905是與部件102相關的各個實體相連的連接。例如,各個實體可以是電源控制、鍵盤、音頻或顯示的處理例行程序,連接900-911是這些處理例行程序間的接口。任何數(shù)目的連接都可以被支持,可以預見的是,64個連接被下文描述的6個標識符位所支持。
連接900-902被耦合至協(xié)議A處理器913。連接903被耦合至協(xié)議B處理器914。連接904及905被耦合至協(xié)議C處理器915。協(xié)議處理器913-915可以各自通信具有同樣或不同協(xié)議的消息,并且被連接至多協(xié)議分組信息918,其將所有非優(yōu)先級消息指向適當?shù)膮f(xié)議處理器913-915。串行I/O口917處理所有通過串行總線106通信的數(shù)據(jù)。優(yōu)先級消息,或表示優(yōu)先級消息的指令信號,從串行I/O口直接傳遞給優(yōu)先級消息處理器920。優(yōu)先級消息處理器將優(yōu)先級消息指向適當?shù)男诺?21、922。在無線電話中,例如,高優(yōu)先級消息可以被用于電源故障報警以及按鍵音頻確認。這里將描述按鍵的音頻反饋。
連接906-907被耦合至協(xié)議A處理器923。連接908-910被耦合至協(xié)議B處理器924。連接911被耦合至協(xié)議C處理器925。協(xié)議處理器923-925相連至多協(xié)議分組處理器928,其將所有非優(yōu)先級消息導向協(xié)議處理器923-925。串行I/O口929處理通過串行總線106通信的數(shù)據(jù)。優(yōu)先級消息從串行I/O口被直接傳遞至優(yōu)先級消息處理器930。通過直接從串行I/O口發(fā)送優(yōu)先級消息至由優(yōu)先級消息中信道信息指定的目的地,優(yōu)先級消息處理可以有利地發(fā)生。另一種方法是,在優(yōu)先級消息被通信至適當?shù)哪康牡刂?,CPU214可以提供產(chǎn)生最小緩沖的簡短處理例行程序。優(yōu)先級消息處理器將優(yōu)先級消息指向適當?shù)男诺?23、933。
由于僅有4位被分配給優(yōu)先級信道識別符,高優(yōu)先級信道的數(shù)目限于16個。這是可以被接受的,因為具有優(yōu)先級消息能力的實體數(shù)目是有限的。如果這個機制被過度使用,過多的時間將被耗費在優(yōu)先級消息路由選擇以及不重要消息的排隊上。如果時間太長,系統(tǒng)將不能傳遞高優(yōu)先級消息,這是由于他們將排列在其它優(yōu)先級消息之后,而這些其它優(yōu)先級消息可能事實上并不是真正高優(yōu)先級。因而,必須被高優(yōu)先級地通信以使系統(tǒng)運行正常的消息僅是那些被給予高優(yōu)先級能力的消息。通過提供有限的高優(yōu)先權消息傳送,為優(yōu)先權消息提供唯一、有效的傳遞消息的能力。
此外,一個以上的優(yōu)先級消息可以被順序送出,但是本領域技術人員將認識到,過多順序的優(yōu)先級消息將導致很長的排隊,以至于優(yōu)先級消息的延遲將超過所要求的長度。因此,要求系統(tǒng)允許具有優(yōu)先級狀態(tài)的消息的數(shù)目應該是有限的。
當端口第一次被開放時,串行總線106每一端的分組處理器918、928利用控制信號(如上所述)協(xié)商端口的各種特征。一組指令消息在分組處理器918、928之間傳遞,以實現(xiàn)這種設置。在設置之后,端口可以被使用,直到利用另一組控制指令使其關閉。
串行I/O口917、929并不檢查消息的內(nèi)容。這允許成幀例行程序很快地建立消息,并且把它們放入消息排隊中,然后可以被較低優(yōu)先級多協(xié)議分組處理器所處理。串行I/O口917、929可以立即處理高優(yōu)先級消息,而不用等待與之相關的較低優(yōu)先級分組處理。
不同的協(xié)議處理器913、915、923和924可以實現(xiàn)進一步的路由選擇。另一種方法是,不同的協(xié)議處理器914、925可以僅實現(xiàn)單一連接。在所描述的實施例中,有些獨立協(xié)議處理器實現(xiàn)單一連接,而其它獨立協(xié)議處理器實現(xiàn)進一步的路由選擇。
對于從處理器102(圖2)至處理器102通信的操作將被進一步詳細描述,但是將被認識到,描述同樣適用于從處理器104至處理器102信息的傳送。傳送請求被接收,如框502(圖5)所示。CPU206將會確定傳送請求是否為傳送指令信號的請求,如框504所示。如果不是,CPU206將確定傳送請求是否為數(shù)據(jù)分組,如判定框506所示。如果不是,而是一個控制指令,CPU將基于該指令構造一個指令消息,如框508所示。然后,CPU206排列指令消息用于傳送,如框511所示,并且返回接收下一個請求。被排列的消息被裝入緩沖204,消息的發(fā)送被交給發(fā)送例行程序,該發(fā)送例行程序在傳送線108上清空緩沖器。
如果在框506中消息被確定為數(shù)據(jù)分組,那么消息就是數(shù)據(jù)。相應地,數(shù)據(jù)路由選擇首標被加到數(shù)據(jù)消息,如框510所示。該消息被裝入緩沖器204,并且消息的發(fā)送被交給發(fā)送例行程序,該發(fā)送例行程序在傳送線108上清空緩沖器,如框511所示。
如果在判定框504中消息被確定為指令消息,CPU206在判定框512中確定指令信號是否為優(yōu)先級消息。如果是優(yōu)先級消息,優(yōu)先級消息如框514所示被構造。如果有一個消息正在被發(fā)送,如框516所示,發(fā)送例行程序?qū)⒈恢袛唷?yōu)先級消息被送出,如框518所示。然后,發(fā)送例行程序被恢復,從而被中斷消息的其余部分可以被通信,如框520所示。
如果指令信號被確定為不是優(yōu)先級消息,指令信號消息在框522中被構造。然后,信號消息被裝入傳送緩沖器,以根據(jù)指令信號例行程序進行處理。
用于接收消息的協(xié)議將參照圖2、6、7進行描述。將認識到,處理器102及處理器104每個都同樣執(zhí)行傳送和接收,盡管被描述的接收操作僅僅與處理器104有關。接收過程包括通過串行I/O口接收數(shù)據(jù)字節(jié),如框102所示。在框604中,CPU214將確定該字節(jié)是否為指示指令信號的換碼字符。如果不是換碼字符,CPU214將等待換碼字符的接收。如果被接收的字節(jié)是換碼字符,CPU214接收跟隨換碼字碼的指令字節(jié),如框605所示。然后,CPU214確定“開始分組”消息是否被接收,如框606所示。如果不是“開始分組”消息,接著CPU214處理指令信號,在下文將被更詳細地描述。
如判定框606所確定的,如果該消息是“開始分組”消息,在判定框607中,CPU214確定接收緩沖器是否為空。如果為空,CPU214轉(zhuǎn)到框608。如果不為空,如框609所示,接收緩沖器的內(nèi)容被送至接收消息隊列。如框608所示,CPU214接收消息長度。然后,CPU214確定該長度是否可以被接受,如判定框610所示。如果該長度比當時緩沖器212可利用的長度長,或者比以前協(xié)商的長度長,或者為零,該長度不能被接受。如果該長度不能被接受,如框612所示,CPU用“開始不被確認”應答,并且返回接收下一字符。如本申請所用的,一個字符是一個字節(jié)長,該字節(jié)是8位字節(jié),它們都是8位長。
如果確定消息的長度可以被接受,CPU214送出一“開始確認”,如框614所示。然后,預留該消息長度的緩沖器,如框616所示。
然后,下一個字節(jié)被從串行I/O口210接收,如框618所示。在判定框620,CPU214確定該字節(jié)是否為換碼字符。如果不是換碼字符,緩沖器被加載,并且跟蹤被加載字節(jié)數(shù)目的計數(shù)器加1,如框622所示。接著,CPU214確定計數(shù)器是否指示已經(jīng)到達消息的末端,如框624所示。如果沒有,CPU接收下一個字節(jié)。如果確定消息的末端被接收,CPU將接收緩沖器的內(nèi)容傳遞給接收消息隊列,如框625所示,并且返回到步驟602以接收下一個字符。
如果在判定框606中確定指令字符并不指示“開始分組”消息,CPU214必須繼續(xù)處理指令信號。參照圖7來描述指令信號的處理。指令信號為一跟在換碼字符后的字節(jié),并且如框606所示被接收。如果該指令不是優(yōu)先級字符,如框704所示,指令信號在框706中被處理,隨后CPU214返回接收下一個字節(jié)。
如果在判定框704中確定指令字節(jié)為一優(yōu)先級指令字符,那么CPU214接收跟隨優(yōu)先級指令的數(shù)據(jù)字節(jié),如框708中所示。然后,CPU214將高優(yōu)先級指令送至適當?shù)男诺?,如?10所示,并且返回接收下一個字節(jié)。
如果在判定框620中確定出現(xiàn)了換碼字符,CPU214必須接收指令信號。指令信號的處理類似于關于圖7的描述。如框802(圖8)所示,指令字節(jié)被接收。如果指令字節(jié)不是一個優(yōu)先級字符,如判定框804所確定的,CPU214確定指令字節(jié)是否指示“開始分組”消息,如框805所示。如果不是,如框806中所示,該指令被處理,隨后在步驟618(圖6)CPU214返回以接收下一個字節(jié)。如果在判定框805(圖8)中確定指令字節(jié)識別了一個“開始分組”消息,CPU214到達步驟607,以啟動消息分組的接收。
如果在判定框804中確定指令字節(jié)是一個優(yōu)先級指令字符,接著CPU214接收跟隨優(yōu)先級指令的數(shù)據(jù)字節(jié),如框808所示。然后,CPU214將高優(yōu)先級指令送至適當?shù)男诺?,如?10中所示,并且返回步驟618接收下一個字節(jié)。由于字節(jié)被接收,框620中的判定為是,計數(shù)器并不加1,從而附加的字節(jié)并沒有被裝入存儲器被分配給被接收的消息數(shù)據(jù)的緩沖器212。這樣就保證了優(yōu)先級消息不會干擾被中斷分組傳送的完整。
如圖12所示,一般來說,數(shù)據(jù)流1201被輸入至多協(xié)議成幀/路由選擇處理1202。由于它們被接收以成幀及發(fā)送這些消息時,成幀/路由選擇處理1202打開消息。產(chǎn)生的被成幀數(shù)據(jù)消息1203-1208被指向他們各自的協(xié)議處理器923-925,這些處理器執(zhí)行服務程序。當分組使用不同分組協(xié)議進行通信時,會產(chǎn)生其它的復雜問題及延遲。在這種情況下,單一成幀/協(xié)議處理1202被用于打開所有分組,這些分組按照被接收的次序打開。接著,用于高優(yōu)先級消息的路由選擇判定被成幀及識別協(xié)議所延遲,該成幀及識別協(xié)議用于在多協(xié)議成幀/路由選擇處理1202中排在前面的數(shù)據(jù)消息。
在成幀處理1302(圖13)中,PSLIP信號“開始分組”可以被有利地用于成幀消息。不是高優(yōu)先級消息的被成幀的消息1308-1312被發(fā)送到路由器1304。高優(yōu)先級消息1305被發(fā)送用于高優(yōu)先級路由選擇1306。成幀1302及高優(yōu)先級路由選擇1306發(fā)生在串行口202、210。路由器1304可與多協(xié)議分組處理器928一起發(fā)生在串行I/O口。在打開消息之前,每個消息被發(fā)送至各自與協(xié)議處理器923-925的其中一個相連的適當?shù)木彌_器,它允許非高優(yōu)先級消息被多協(xié)議處理器928,以及協(xié)議處理器923-925(圖9)從他們的緩沖器被處理,前述協(xié)議處理器923-925以低優(yōu)先級為基礎且不會延遲被發(fā)送至高優(yōu)先級協(xié)議處理器920(或直接至適當信道)的高優(yōu)先級消息。這將消息1313-1318的路由選擇任務從成幀任務中分離出來。此外,首標的使用允許每個連接器內(nèi)封的消息數(shù)據(jù)的路由選擇獨立于成幀,或協(xié)議。其它優(yōu)先化可以發(fā)生于路由器1304及協(xié)議處理器923-925之內(nèi),其中在消息被基于路由選擇首標和/或數(shù)據(jù)分組中的信息打開之前,消息可以被優(yōu)先化。
由于增加了路由選擇首標,路由選擇可以被很快地實現(xiàn)?,F(xiàn)在描述首標的處理。優(yōu)先級消息及指令信號將如上所述被消除。對于剩下的消息,從串行總線106接收的下一個消息的第一個字節(jié)被CPU214所檢驗,如框1402(圖14)中所示。然后,確定這一字節(jié),即增加的路由選擇首標,是否為判定框1404中的數(shù)據(jù)首標。如果路由選擇首標是數(shù)據(jù)首標,消息被發(fā)送至被數(shù)據(jù)路由選擇首標所識別的端口相關的協(xié)議處理器,如框1406所示。這時不需要做其它的協(xié)議分析。如果確定消息為一指令,CPU214執(zhí)行這一指令,如框1408所示。這樣,消息可以被傳送至與所標識的協(xié)議處理器相關的緩沖器,若沒有各協(xié)議首標,將不得不確定將哪個協(xié)議用于該消息。當消息被傳送至各協(xié)議處理器923、924、925時,路由選擇首標可以被消除。
本發(fā)明的串行總線可以被有利地用于無線電話1500(圖15)中。無線電話1500包括一個顯示器1502及耦合至微處理器1506的按鍵1504。微處理器1506通過串行總線106連接至微處理器1508。微處理器耦合至音頻電路1510及射頻收發(fā)信機1516。音頻電路驅(qū)動揚聲器1512并且接收來自話筒的信號。射頻(RF)電路通過天線1520與其它裝置(未示出)通信。
優(yōu)先級消息可以被用于產(chǎn)生響應于用戶按鍵動作1504的音頻音調(diào),在這樣的無線電話中,鍵盤被連接至其中一個處理器1506,而話筒被連接至另一個處理器1508。如果延遲時間太長,按鍵被按壓的音頻指示將不會很快地發(fā)生以提供有意義的鍵盤動作反饋,從而導致用戶再次按壓按鍵。
本發(fā)明改進的協(xié)議允許分組,或消息,300-305(圖3)具有任何方便的數(shù)據(jù)長度,而不會干擾優(yōu)先級消息。例如,數(shù)據(jù)分組在長度上可以是數(shù)以千計的字節(jié)。對于非常長的分組,優(yōu)先級消息的傳送在分組傳送完成之前,這將極大地減少優(yōu)先級消息所經(jīng)歷的等待時間。
因而可以看出,優(yōu)先級中斷協(xié)議便于優(yōu)先級消息的通信。通過提供非常短的優(yōu)先級消息可以部分地實現(xiàn)。此外,可以看出這里還公開了一種優(yōu)先級消息協(xié)議,其允許傳送實體將優(yōu)先級消息插入數(shù)據(jù)分組,而不必等待正在進行中的數(shù)據(jù)分組的完成,由此減少優(yōu)先級消息處理的等待時間。此外,與成幀協(xié)議無關的多協(xié)議路由選擇允許多協(xié)議分組處理發(fā)生在較低優(yōu)先級處理中,而不是在消息成幀及高優(yōu)先級消息處理中。
權利要求
1.一種串行總線通信裝置,包括一個從串行總線接收消息的成幀器;從成幀器接收高優(yōu)先級消息的高優(yōu)先級信道,以及從成幀器接收除高優(yōu)先級消息以外的消息的路由器,該路由器發(fā)送被成幀消息至協(xié)議處理器。
2.根據(jù)權利要求1所述的串行總線通信裝置,還包括一個高優(yōu)先級路由器,其從成幀器向至少一個高優(yōu)先級信道發(fā)送路由消息。
3.根據(jù)權利要求2所述的串行總線通信裝置,其中,高優(yōu)先級路由器從成幀器向多個高優(yōu)先級信道發(fā)送消息。
4.根據(jù)權利要求3所述的串行總線通信裝置,其中,路由器發(fā)送被成幀消息至多個獨立的協(xié)議處理器。
5.根據(jù)權利要求1所述的串行總線通信裝置,其中,該裝置位于無線電話中,該無線電話包括一個按鍵;一個話筒;耦合至該按鍵的第一處理器;耦合至該話筒的第二處理器,其中,串行總線通信裝置耦合在第一處理器及第二處理器之間,并且其中第一處理器響應于按鍵的動作,以產(chǎn)生用于傳送至第二處理器的優(yōu)先級消息,第一處理器中斷被從第一處理器至第二處理器通信的數(shù)據(jù)分組,如果有的話的傳送,并且傳送優(yōu)先級消息至第二處理器,第二處理器響應于優(yōu)先級消息,以產(chǎn)生音頻警報,在送出優(yōu)先級消息以后,第一處理器恢復傳送被中斷的數(shù)據(jù)分組。
6.根據(jù)權利要求1所述的串行總線通信裝置,還包括一種提供串行總線通信協(xié)議通信數(shù)據(jù)分組的方法,步驟包括識別優(yōu)先級消息;中斷被傳送的數(shù)據(jù)分組的傳送,如果有的話;傳送優(yōu)先級消息;以及完成被中斷數(shù)據(jù)分組的傳送。
7.根據(jù)權利要求6所述的串行總線通信裝置,還包括在完成被中斷數(shù)據(jù)分組的傳送之前,傳送至少一個其它優(yōu)先級消息的步驟。
8.根據(jù)權利要求6所述的串行總線通信裝置,其中,優(yōu)先級消息的傳送與接收至少一個消息同時發(fā)生。
9.根據(jù)權利要求6所述的串行總線通信裝置,還包括發(fā)送優(yōu)先級消息;在優(yōu)先級消息被發(fā)送之后,恢復被中斷數(shù)據(jù)分組的接收;以及在恢復被中斷數(shù)據(jù)分組的接收以前,接收至少一個其它優(yōu)先級消息。
10.根據(jù)權利要求9所述的串行總線通信裝置,其中,接收優(yōu)先級消息與傳送至少一個消息同時發(fā)生。
全文摘要
一個串行總線(106)通信協(xié)議對數(shù)據(jù)分組進行通信。當優(yōu)先級消息被識別時,被傳送數(shù)據(jù)分組(302)的傳送被中斷,如果有的話。優(yōu)選級消息(402)被傳送。此后,被中斷數(shù)據(jù)分組的傳送被完成。
文檔編號G06F13/00GK1264234SQ00101690
公開日2000年8月23日 申請日期2000年1月27日 優(yōu)先權日1999年1月27日
發(fā)明者邁爾斯·R·杰克遜, 埃里克·P·胡森 申請人:摩托羅拉公司