專利名稱:嵌入式系統(tǒng)上實(shí)現(xiàn)異類端口切換的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式系統(tǒng)技術(shù)領(lǐng)域,尤其涉及一種在嵌入式系統(tǒng) 上實(shí)現(xiàn)異類端口切才奐的系統(tǒng)和方法。
背景技術(shù):
嵌入式系統(tǒng)需要與上位機(jī)(如PC )通訊,采用的通訊方式包括 USB通訊、串口通訊、紅外通訊、藍(lán)牙通訊等。嵌入式系統(tǒng)軟件中 一般采用服務(wù)與端口綁定的通訊方式,目前是在嵌入式系統(tǒng)出廠時(shí) 給服務(wù)設(shè)定默認(rèn)端口,用戶在使用過(guò)程中,不能改變。也即,當(dāng)有 與系統(tǒng)當(dāng)前端口不同類型的新4妾入端口接入嵌入式系統(tǒng)中時(shí),嵌入 式系統(tǒng)中的H務(wù)并不能加載在該新4妻入端口上。嵌入式系統(tǒng)中 一般采用服務(wù)與輸入輸出端口綁定的通訊方式, 目前的解決方法是終端啟動(dòng)后給服務(wù)綁定默認(rèn)端口 (默認(rèn)端口是上 次通訊4吏用的端口)。這里所i兌的月良務(wù)是指嵌入式系統(tǒng)與上位才幾連 接后,對(duì)嵌入式系統(tǒng)與上位機(jī)之間的通信進(jìn)行控制、解析(可能包 括對(duì)上位才幾的凄t據(jù)包進(jìn)行沖交一瞼、轉(zhuǎn)意符處理、轉(zhuǎn)換通訊內(nèi)容)、批^ 行(本服務(wù)/模塊主要通過(guò)調(diào)用其他模塊,來(lái)執(zhí)行上位機(jī)的請(qǐng)求,并 返回執(zhí)行結(jié)果)上位機(jī)發(fā)送過(guò)來(lái)的命令、返回結(jié)果(包括增加校驗(yàn)、 轉(zhuǎn)意等)給上位機(jī)的程序。目前的嵌入式系統(tǒng)中 一般采用端口與服務(wù)靜態(tài)綁定,軟件運(yùn)行 過(guò)程中不能切換。要端口能夠l吏用,端口必須在系統(tǒng)中進(jìn)行注冊(cè)。 這里所謂的注冊(cè),即將某一類型的端口與其所需的系統(tǒng)資源對(duì)應(yīng)起 來(lái)。目前的嵌入式系統(tǒng)中只注冊(cè)一種固定的端口 ,端口與系統(tǒng)綁定, 不能改變。例如,目前手才幾與PC通訊最常用的方式是USB端口和串口,但_ 手機(jī)出廠時(shí)端口與服務(wù)已經(jīng)綁定,在使用過(guò)程中不能切換端口 ,這
才羊出廠的手沖幾要么只能4吏用USB端口 ,要么只能4吏用串口,用戶不 能在串口和USB 口之間進(jìn)行選擇。這給用戶帶來(lái)了極大的不便。對(duì) 于出廠端口i殳置為串口的終端,若用戶想-使用USB4妄口4吏其個(gè)人計(jì) 算機(jī)進(jìn)行通訊,目前是無(wú)法做到的。當(dāng)手機(jī)中系統(tǒng)當(dāng)前端口為USB 端口,手才幾通過(guò)該端口與上位才幾相連并進(jìn)4亍一定的月良務(wù),例如通^f言 等。而此時(shí)若用戶將該手機(jī)通過(guò)串口接入上位機(jī)(串口為新4妄入端 口 ),則上位才幾并不能通過(guò)串口與該手才幾進(jìn)4亍通信,通信月l務(wù)無(wú)法 加載在串口之上。
如何能夠使嵌入式系統(tǒng)的用戶在不同端口之間進(jìn)4亍選才奪而不是 受限于嵌入式系統(tǒng)制造商的預(yù)先規(guī)定,成為了業(yè)界亟待解決的問(wèn)題。
發(fā)明內(nèi)容
為解決嵌入式系統(tǒng)中在異類端口之間進(jìn)行轉(zhuǎn)換的問(wèn)題,本發(fā)明 4是供一種在嵌入式系統(tǒng)中實(shí)現(xiàn)異類端口切換的方法,在所述嵌入式 系統(tǒng)中注冊(cè)有多種類型的端口,當(dāng)有新接入端口時(shí),執(zhí)行如下步驟
A、 4企測(cè)新《1妄入端口的類型;
B、 若新4妄入端口的類型與系統(tǒng)當(dāng)前端口類型不同,則將系統(tǒng) 當(dāng)前端口 i殳置為新4妾入端口 。
上述的方法,所述步驟B包4舌如下步驟
Bl、將服務(wù)從系統(tǒng)當(dāng)前端口卸載;
B2、將服務(wù)裝載于新接入端口。
上述的方法,其特征在于,所述B1包括如下步驟
Bll、 4全測(cè)當(dāng)前服務(wù)狀態(tài);
B12、若服務(wù)處于非工作狀態(tài),執(zhí)行B13;若服務(wù)處于工作狀 態(tài),中止服務(wù);
B13、解除月良務(wù)與系統(tǒng)當(dāng)前端口的綁定;
B14、 4吏系統(tǒng)當(dāng)前端口處于非工4乍才莫式,釋》文系統(tǒng)當(dāng)前端口占 用的系統(tǒng)資源。
上述的方法,所述解除月良務(wù)與系統(tǒng)當(dāng)前端口的綁定是指將月良務(wù) 的端口資源指4十偏離當(dāng)前端口 。
上述的方法,所述步驟B2包纟舌如下步驟 B21、為朝-4妄入端口分配系統(tǒng)資源; B22、 ^f吏新4妄入端口處于工作才莫式; B23、將服務(wù)與新接入端口綁定。
上述的方法,所述的服務(wù)與新接入端口綁定是指將服務(wù)的端口 資源指針指向新接入端口 。
上述方法,所述步驟B后還包括步驟C,存儲(chǔ)新接入端口的信
自、
本發(fā)明還提供一種在嵌入式系統(tǒng)中實(shí)現(xiàn)異類端口切換的系統(tǒng), 在所述嵌入式系統(tǒng)中注冊(cè)有多種類型的端口,所述系統(tǒng)包4舌端口監(jiān) 聽(tīng)模塊和端口控制模塊,端口監(jiān)聽(tīng)模塊用以監(jiān)聽(tīng)是否有新接入端口
及其類型;端口控制模塊用以將新接入端口設(shè)置為系統(tǒng)當(dāng)前端口 ; 當(dāng)端口監(jiān)聽(tīng)模塊監(jiān)聽(tīng)到有新接入端口并且該端口的類型與系統(tǒng)當(dāng)前 端口不一致時(shí),向端口控制模塊發(fā)送重新設(shè)置系統(tǒng)當(dāng)前接口命令, 端口控制模塊將新接入端口 。
上述的系統(tǒng),所述的端口控制模塊包括了服務(wù)控制子模塊和端 口操作子模塊,服務(wù)控制子模塊用以檢測(cè)并控制當(dāng)前服務(wù)的狀態(tài)并 在服務(wù)處于中止?fàn)顟B(tài)時(shí)向端口 l喿作子才莫塊發(fā)送重新i殳置系統(tǒng)當(dāng)前端 口命令;端口操作子模塊用以控制端口與服務(wù)的綁定狀態(tài),控制端 口工作才莫式以及為端口釋力文或分配系統(tǒng)資源。
上述的系統(tǒng),所述的控制端口與服務(wù)的綁定狀態(tài)是指將服務(wù)的 端口資源指4十偏離或指向端口 。
上述的系統(tǒng),所述端口操作子才莫塊還用于將新接入端口信息存 儲(chǔ)于所述系統(tǒng)的文件當(dāng)中,當(dāng)新接入端口與服務(wù)幫定后,端口操作 子模塊將新接入端口信息存儲(chǔ)于所述系統(tǒng)的文件當(dāng)中。
本發(fā)明通過(guò)實(shí)現(xiàn)嵌入式系統(tǒng)監(jiān)聽(tīng)新接入端口及其類型,并根據(jù) 新接入端口類型對(duì)系統(tǒng)當(dāng)前端口進(jìn)行轉(zhuǎn)換,實(shí)現(xiàn)了對(duì)不同種類端口 的自動(dòng)切換,使嵌入式系統(tǒng)能夠支持USB通訊、串口通訊、紅外通 訊、藍(lán)牙通訊等多種通訊方式。提高通訊方式的靈活性,發(fā)揮各種 通訊方式的優(yōu)點(diǎn)。極大地增加了用戶的滿意度。
圖1為本發(fā)明方法基本流程圖; 圖2為圖1中步艱《S103的一個(gè)具體流禾呈圖; 圖3為本發(fā)明方法的一個(gè)更為詳細(xì)的流程圖; 圖4為本發(fā)明的系統(tǒng)圖。
務(wù)本實(shí)施方式
下面結(jié)合附圖,對(duì)本發(fā)明的方法和系統(tǒng)作具體和詳細(xì)的說(shuō)明。 本發(fā)明適用于在不同端口中進(jìn)行自適應(yīng)地切換,所述的端口包括了 USB端口、纟工外端口、藍(lán)牙端口、串口等。
要端口能夠-使用,端口必須在系統(tǒng)中進(jìn)行注冊(cè)。目前的嵌入式 系統(tǒng)中一般只注冊(cè)一種端口。而本發(fā)明中,需要在嵌入式系統(tǒng)支持 多種端口 ,因此需要將這些端口的類型都注冊(cè)在嵌入式系統(tǒng)當(dāng)中。
本發(fā)明方法的基本流程參見(jiàn)圖1,
S101:有新端口4妄入;
S102:檢測(cè)新接入端口是否與嵌入式系統(tǒng)中已經(jīng)和服務(wù)綁定的 當(dāng)前端口 (即系統(tǒng)當(dāng)前端口 )類型相同,如果相同,則直4妄到步駛《 S104,如果不同,則才丸4亍步驟S103;
S103:將系統(tǒng)當(dāng)前端口設(shè)置為新接入端口;
S104:結(jié)束。
參見(jiàn)圖2,S103包括了 S201將月l務(wù)乂人系統(tǒng)當(dāng)前端口卸載和S202 將月良務(wù)加載在新4妻入端口兩個(gè)步驟。
參見(jiàn)圖3,當(dāng)新接入端口與系統(tǒng)當(dāng)前端口類型不一致時(shí),執(zhí)行
5301, 啟動(dòng)將系統(tǒng)當(dāng)前端口設(shè)置為新接入端口的步驟,之后執(zhí)行
5302, 4企測(cè)當(dāng)前的;i良務(wù)狀態(tài),如果力良務(wù)處于非工作狀態(tài),則直4妄4丸 行S304,解除系統(tǒng)當(dāng)前端口與服務(wù)的綁定;如果服務(wù)處于工作狀態(tài), 則執(zhí)行步驟S303,先中止正在進(jìn)行的力良務(wù),z使其處于非工作狀態(tài), 處于非工作狀態(tài)的"l務(wù)才可以解除與當(dāng)前端口的綁定,然后扭^亍 S304,之后執(zhí)行步驟S 305使系統(tǒng)當(dāng)前端口處于非工作才莫式并釋》文其
占用的系統(tǒng)資源,之后執(zhí)行步驟S306為新接入端口分配系統(tǒng)資源, 并使其處于工作模式,使其能夠與服務(wù)進(jìn)行綁定,之后執(zhí)行S207, 將新接入端口與服務(wù)進(jìn)4亍綁定。S302 -S305為圖2中S201的更為 詳細(xì)的步驟,S305 -S307為圖2中S202的更為詳細(xì)的步驟。綁定 可以采用服務(wù)的端口資源指針來(lái)進(jìn)行服務(wù)通過(guò)端口資源指針來(lái)驅(qū) 動(dòng)端口,當(dāng)該端口資源指針指向某個(gè)端口時(shí),就稱為月l務(wù)與該端口 綁定。例如,若服務(wù)的端口資源指針指向藍(lán)牙端口,則服務(wù)與藍(lán)牙 端口進(jìn)行了綁定。該指針一次只能指向一個(gè)端口,且不同端口可能 共用相同的系統(tǒng)資源,因此切換端口時(shí)要關(guān)閉當(dāng)前端口 ,釋放其所 占用的系統(tǒng)資源。當(dāng)然,也可以采用其他方法,例如,采用月良務(wù)的 名稱與端口的某一^^居項(xiàng)相^f應(yīng)的方式。之后執(zhí)行S308,將新接入端口信息保存在文件當(dāng)中,這樣4吏系 統(tǒng)的默i人端口變更為新4妻入的端口 。這一步也可以省略,這才羊系統(tǒng) 的,默i人端口仍為原來(lái)的端口 。下面結(jié)合圖4,以串口切換到USB端口為例對(duì)本發(fā)明的過(guò)程做 詳細(xì)說(shuō)明本發(fā)明的系統(tǒng),包括端口監(jiān)聽(tīng)模塊和端口控制模塊,端口監(jiān)聽(tīng) 模塊用以監(jiān)聽(tīng)是否有新接入端口及其類型;端口控制模塊用以將新 接入端口設(shè)置為系統(tǒng)當(dāng)前端口 ;當(dāng)端口監(jiān)聽(tīng)才莫塊監(jiān)聽(tīng)到有新接入端 口并且該端口的類型與系統(tǒng)當(dāng)前端口不一致時(shí),向端口控制才莫塊發(fā) 送重新設(shè)置系統(tǒng)當(dāng)前接口命令,端口控制模塊將新接入端口設(shè)置為 系統(tǒng)當(dāng)前端口 。端口控制模塊包括了服務(wù)控制子模塊和端口操作子 模塊,服務(wù)控制子模塊用以檢測(cè)并控制當(dāng)前服務(wù)的狀態(tài);端口操作 子模塊用以控制端口與服務(wù)的綁定狀態(tài),控制端口工作模式以及為 端口釋》文或分配系統(tǒng)資源;當(dāng)服務(wù)控制子模塊檢測(cè)到當(dāng)前服務(wù)處于非工作狀態(tài),則向端口操作子模塊發(fā)送重新設(shè)置系統(tǒng)當(dāng)前端口命令,端口操作子模塊解除 當(dāng)前端口與服務(wù)的綁定、使系統(tǒng)當(dāng)前端口處于非工作才莫式并釋放其系統(tǒng)資源,為新接入端口分配系統(tǒng)資源并使其處于工作模式,將所 述新4妻入端口與月良務(wù)綁定;
若服務(wù)控制子模塊檢測(cè)到當(dāng)前服務(wù)處于工作狀態(tài),則服務(wù)控制 子模塊中止當(dāng)前服務(wù),向端口操作子模塊發(fā)送重新設(shè)置系統(tǒng)當(dāng)前端 口命令,端口操作子模塊解除系統(tǒng)當(dāng)前端口與服務(wù)的綁定、使系統(tǒng) 當(dāng)前端口處于非工作模式并釋放其系統(tǒng)資源,為新接入端口分配系 統(tǒng)資源并使其處于工作模式,將所述新接入端口與服務(wù)綁定。
上述系統(tǒng)的端口控制模塊還可用于將新接入端口信息保存在所 述系統(tǒng)的文件當(dāng)中,這樣使系統(tǒng)的默認(rèn)端口變更為新4妻入端口 。
每個(gè)需要使用端口的服務(wù)都有一個(gè)端口資源指針,服務(wù)可以通 過(guò)端口資源指針來(lái)對(duì)端口進(jìn)行相關(guān)操作。在嵌入式系統(tǒng)的服務(wù)使用 串口的情況下,服務(wù)的端口資源指針指向串口。
服務(wù)包括了端口資源指針、服務(wù)狀態(tài)接口、打開(kāi)服務(wù)接口和中 止H務(wù)4妄口。
端口包4舌了端口類型4妄口 、系鄉(xiāng)充端口4妄口、打開(kāi)端口4妄口、關(guān) 閉端口接口、通訊處理接口等接口。讀取端口類型接口能夠提供當(dāng) 前端口的類型,主要用在端口激活時(shí)判斷激活的端口和服務(wù)默認(rèn)端 口是否一至丈方面。
端口監(jiān)聽(tīng)才莫塊監(jiān)聽(tīng)到USB端口被接入后,/人USB端口的端口類 型接口中讀取其類型,并讀耳又服務(wù)端口資源指針當(dāng)前指向的端口的 端口類型_|妄口中的端口類型并;f企測(cè)兩者是否一致,若4全測(cè)不一致, 則向端口控制模塊中的服務(wù)控制子模塊發(fā)送重新設(shè)置系統(tǒng)當(dāng)前接口 命令,服務(wù)控制子模塊接收到命令后,通過(guò)服務(wù)的服務(wù)狀態(tài)接口檢 測(cè)當(dāng)前服務(wù)的狀態(tài),若當(dāng)前服務(wù)處于工作狀態(tài),則向服務(wù)的中止服 務(wù)接口發(fā)送中止服務(wù)命令,使服務(wù)中止。之后服務(wù)控制子模塊向端 口控制模塊中的端口操作子模塊重新設(shè)置系統(tǒng)當(dāng)前端口命令,端口 操作子模塊將通過(guò)串口的關(guān)閉端口接口來(lái)使串口處于非工作模式, 之后端口操作子模塊將服務(wù)的端口資源指針偏離串口 ,使服務(wù)與串 口解除綁定,并通過(guò)系統(tǒng)端口接口釋放串口占用的系統(tǒng)資源。之后 端口操作子模塊在已注冊(cè)的端口中找到USB端口對(duì)應(yīng)的系統(tǒng)資源, 并通過(guò)USB端口的系統(tǒng)端口接口為其分配這些系統(tǒng)資源,完成初始 化過(guò)程,并通過(guò)USB端口的打開(kāi)端口接口使USB端口處于工作才莫
式,之后將服務(wù)的端口資源指針指向USB端口 ,即4巴USB端口的 地址f武值纟合力良務(wù)的端口資源指針,完成"1務(wù)與新4妄入的USB端口的 綁定。至此該服務(wù)乂人串口切換到USB端口的工作完成。
以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明, 凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等, 均應(yīng)包含在本發(fā)明的4呆護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種在嵌入式系統(tǒng)中實(shí)現(xiàn)異類端口切換的方法,其特征在于,在所述嵌入式系統(tǒng)中注冊(cè)有多種類型的端口,當(dāng)有新接入端口時(shí),執(zhí)行如下步驟A、檢測(cè)新接入端口的類型;B、若新接入端口的類型與系統(tǒng)當(dāng)前端口類型不同,則將系統(tǒng)當(dāng)前端口設(shè)置為新接入端口。
2、 如權(quán)利要求1所述的方法,其特征在于,所述步驟B包括 如下步驟Bl、將服務(wù)從系統(tǒng)當(dāng)前端口卸載; B2、將服務(wù)裝載于新接入端口。
3、 如權(quán)利要求2所述的方法,其特征在于,所述B1包括如下 步驟Bll、沖全測(cè)當(dāng)前月良務(wù)狀態(tài);B12、若服務(wù)處于非工作狀態(tài),執(zhí)行B13;若服務(wù)處于工作狀 態(tài),中止服務(wù);B13、解除月良務(wù)與系統(tǒng)當(dāng)前端口的綁定;B14、 Y吏系統(tǒng)當(dāng)前端口處于非工作才莫式,釋方文系統(tǒng)當(dāng)前端口占 用的系統(tǒng)資源。
4、 如權(quán)利要求3所述的方法,其特征在于,所述解除服務(wù)與系 統(tǒng)當(dāng)前端口的綁定是指將月l務(wù)的端口資源指4f偏離當(dāng)前端口 。
5、 如4又利要求2至4任一所述的方法,其特4i在于,所述步驟 B2包括如下步驟B21、為朝4妄入端口分配系鄉(xiāng)克資源; B22、 4吏新4妻入端口處于工作才莫式; B23、將服務(wù)與新接入端口綁定。
6、 如權(quán)利要求5所述的方法,其特征在于,所述的服務(wù)與新接 入端口綁定是指將服務(wù)的端口資源指針指向新接入端口 。
7、 如權(quán)利要求5所述的方法,其特征在于,所述步驟B后還 包括步驟C,存儲(chǔ)新接入端口的信息。
8、 一種在嵌入式系統(tǒng)中實(shí)現(xiàn)異類端口切換的系統(tǒng),其特征在于, 在所述嵌入式系統(tǒng)中注冊(cè)有多種類型的端口 ,所述系統(tǒng)包括端口監(jiān) 聽(tīng)模塊和端口控制模塊,端口監(jiān)聽(tīng)模塊用以監(jiān)聽(tīng)是否有新接入端口 及其類型;端口控制模塊用以將新接入端口設(shè)置為系統(tǒng)當(dāng)前端口 ; 當(dāng)端口監(jiān)聽(tīng)才莫塊監(jiān)聽(tīng)到有新接入端口并且該端口的類型與系統(tǒng)當(dāng)前 端口不一致時(shí),向端口控制才莫塊發(fā)送重新i殳置系統(tǒng)當(dāng)前端口命令, 端口控制模塊將新接入端口設(shè)置為系統(tǒng)當(dāng)前端口 。
9、 如權(quán)利要求8所述的系統(tǒng),其特征在于,所述的端口控制模 塊包括了服務(wù)控制子模塊和端口操作子模塊,服務(wù)控制子模塊用以 檢測(cè)并控制當(dāng)前服務(wù)的狀態(tài)并在服務(wù)處于中止?fàn)顟B(tài)時(shí)向端口操作子 模塊發(fā)送重新設(shè)置系統(tǒng)當(dāng)前端口命令;端口操作子模塊用以控制端 口與服務(wù)的綁定狀態(tài),控制端口工作才莫式以及為端口釋》丈或分配系 統(tǒng)資源。
10、 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述的控制端口 與服務(wù)的綁定狀態(tài)是指將服務(wù)的端口資源指針偏離或指向端口 。
11、 如權(quán)利要求IO所述的系統(tǒng),其特征在于,所述端口操作子 模塊還用于將新接入端口信息存儲(chǔ)于所述系統(tǒng)的文件當(dāng)中,當(dāng)新接 入端口與服務(wù)幫定后,端口搮:作子才莫塊將新4妄入端口信息存4諸于所 述系統(tǒng)的文件當(dāng)中。
全文摘要
為解決在嵌入式系統(tǒng)領(lǐng)域中,嵌入式系統(tǒng)上實(shí)現(xiàn)異類端口切換的問(wèn)題,本發(fā)明提供一種在嵌入式系統(tǒng)上實(shí)現(xiàn)異類端口切換的方法,在所述嵌入式系統(tǒng)中注冊(cè)有多種類型的端口,當(dāng)有新接入端口時(shí),執(zhí)行如下步驟A、檢測(cè)新接入端口的類型;B、若新接入端口的類型與系統(tǒng)當(dāng)前端口類型不同,則將系統(tǒng)當(dāng)前端口設(shè)置為新接入端口。所述步驟B包括如下步驟B1、將服務(wù)從系統(tǒng)當(dāng)前端口卸載;B2、將服務(wù)裝載于新接入端口。本發(fā)明還提供一種執(zhí)行上述方法的系統(tǒng)。本發(fā)明能夠?qū)崿F(xiàn)嵌入式系統(tǒng)自動(dòng)監(jiān)聽(tīng)端口,能夠自動(dòng)對(duì)異類端口進(jìn)行切換,能夠提高通訊方式的靈活性,發(fā)揮各種通訊方式的優(yōu)點(diǎn)。
文檔編號(hào)G06F13/38GK101115261SQ20071014745
公開(kāi)日2008年1月30日 申請(qǐng)日期2007年9月12日 優(yōu)先權(quán)日2007年9月12日
發(fā)明者鵬 徐, 武 王 申請(qǐng)人:中興通訊股份有限公司