專利名稱:實(shí)現(xiàn)設(shè)備共享的系統(tǒng)及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)的設(shè)備管理領(lǐng)域,尤其涉及一種實(shí)現(xiàn)設(shè)備共享的系統(tǒng)及其 方法。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,具有各種功能的計(jì)算機(jī)外接設(shè)備也越來越多。許多 外接設(shè)備并不支持USB通信協(xié)議,而是支持UART、I2C、GPIO等通信協(xié)議。這些設(shè)備與計(jì)算 機(jī)連接時(shí)需要使用多個(gè)數(shù)據(jù)接口,增加了計(jì)算機(jī)系統(tǒng)的繁雜度和不穩(wěn)定性。而且個(gè)人電腦 的硬件資源有限,并沒有足夠的接口來連接很多這樣的設(shè)備。由于接口數(shù)量的限制,嚴(yán)重影 響了個(gè)人電腦功能的擴(kuò)展。另外,對(duì)于多個(gè)操作系統(tǒng),目前通常是在各自系統(tǒng)中驅(qū)動(dòng)自己連接的設(shè)備,這樣就 需要很多個(gè)同樣功能的設(shè)備,降低了設(shè)備的使用效率,造成資源的浪費(fèi)。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題在于,針對(duì)現(xiàn)有技術(shù)需要過多計(jì)算機(jī)接口且設(shè)備利用率 低的缺陷,提供一種有效釋放計(jì)算機(jī)接口且設(shè)備利用率高的實(shí)現(xiàn)設(shè)備共享的系統(tǒng)及其方 法。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是根據(jù)一個(gè)方面,一種實(shí)現(xiàn)設(shè)備共享的系統(tǒng),于第一處理器和第二處理器間共享所 述第一處理器上連接的一個(gè)或多個(gè)設(shè)備,所述第一處理器與所述第二處理器通過高速總 線相連,所述高速總線用于在所述第一處理器和所述第二處理器間傳輸各種通信協(xié)議的數(shù) 據(jù);所述系統(tǒng)包括第一通訊模塊,位于所述第一處理器中,用于根據(jù)所述一個(gè)或多個(gè)設(shè)備各自支持 的數(shù)據(jù)通信協(xié)議分別向所述第二處理器發(fā)送數(shù)據(jù)或從所述第二處理器接收數(shù)據(jù);第一管理模塊,位于所述第一處理器中,與所述第一通訊模塊和所述一個(gè)或多個(gè) 設(shè)備的驅(qū)動(dòng)程序通訊,用于接收到所述第二處理器發(fā)送的共享請(qǐng)求后向所述第二處理器發(fā) 送相應(yīng)的設(shè)備信息,還用于解析通過所述第一通訊模塊接收的數(shù)據(jù),并將解析后的數(shù)據(jù)分 別發(fā)送至相應(yīng)設(shè)備的驅(qū)動(dòng)程序以驅(qū)動(dòng)所述一個(gè)或多個(gè)設(shè)備,且回復(fù)操作結(jié)果至所述第二處 理器;一個(gè)或多個(gè)設(shè)備驅(qū)動(dòng)程序,位于所述第一處理器中,所述一個(gè)或多個(gè)設(shè)備驅(qū)動(dòng)程 序中的每一個(gè)對(duì)應(yīng)于一個(gè)所述設(shè)備,所述設(shè)備驅(qū)動(dòng)程序與所述第一管理模塊和所述相應(yīng)的 設(shè)備通訊,用于接收所述第一管理模塊解析的數(shù)據(jù)并發(fā)送給所述相應(yīng)的設(shè)備以便對(duì)所述相 應(yīng)的設(shè)備進(jìn)行相關(guān)操作;第二通訊模塊,位于所述第二處理器中,用于根據(jù)所述一個(gè)或多個(gè)設(shè)備各自支持 的數(shù)據(jù)通信協(xié)議分別向所述第一處理器發(fā)送數(shù)據(jù)或從所述第一處理器接收數(shù)據(jù); 第二管理模塊,位于所述第二處理器中,與所述第二通訊模塊通訊,用于通過所述
4第二通訊模塊向所述第一處理器發(fā)送共享請(qǐng)求,并解析通過所述第二通訊模塊接收的數(shù) 據(jù);以及一個(gè)或多個(gè)虛擬設(shè)備驅(qū)動(dòng)程序,位于所述第二處理器中,所述一個(gè)或多個(gè)虛擬設(shè) 備驅(qū)動(dòng)程序中的每一個(gè)對(duì)應(yīng)于一個(gè)所述設(shè)備,所述虛擬設(shè)備驅(qū)動(dòng)程序與所述第二管理模塊 通訊,用于在所述第二處理器虛擬所述一個(gè)或多個(gè)設(shè)備,并將所述第二處理器對(duì)所述一個(gè) 或多個(gè)虛擬設(shè)備進(jìn)行操作的數(shù)據(jù)發(fā)送至所述第二管理模塊以便傳送給與所述第一處理器 連接的所述一個(gè)或多個(gè)設(shè)備。本發(fā)明實(shí)現(xiàn)設(shè)備共享的系統(tǒng)中,所述一個(gè)或多個(gè)設(shè)備包括硬件設(shè)備和/或軟件設(shè)備。本發(fā)明實(shí)現(xiàn)設(shè)備共享的系統(tǒng)中,所述第一處理器是ARM單片機(jī),所述第二處理器 是計(jì)算機(jī)。本發(fā)明實(shí)現(xiàn)設(shè)備共享的系統(tǒng)中,所述第一處理器是計(jì)算機(jī),所述第二處理器是ARM 單片機(jī)。本發(fā)明實(shí)現(xiàn)設(shè)備共享的系統(tǒng)中,所述高速總線是USB總線,且只有一條。根據(jù)一個(gè)方面,一種實(shí)現(xiàn)設(shè)備共享的方法,于連接有一個(gè)或多個(gè)設(shè)備的第一處理 器和通過高速總線與所述第一處理器相連的第二處理器間共享所述一個(gè)或多個(gè)設(shè)備,其 中,所述第一處理器和所述第二處理器間的數(shù)據(jù)通信分別基于所共享的一個(gè)或多個(gè)設(shè)備各 自支持的數(shù)據(jù)通信協(xié)議;所述方法包括以下步驟Si、所述第二處理器向所述第一處理器發(fā)送共享請(qǐng)求;S2、所述第一處理器向所述第二處理器發(fā)送對(duì)應(yīng)于所述共享請(qǐng)求的所述一個(gè)或多 個(gè)設(shè)備的信息;S3、所述第二處理器根據(jù)接收的所述一個(gè)或多個(gè)設(shè)備的信息分別對(duì)相應(yīng)于所述一 個(gè)或多個(gè)設(shè)備的一個(gè)或多個(gè)虛擬設(shè)備進(jìn)行操作;S4、所述第二處理器將所述操作數(shù)據(jù)發(fā)送給所述第一處理器;以及S5、所述第一處理器根據(jù)接收的所述操作數(shù)據(jù)對(duì)所述一個(gè)或多個(gè)設(shè)備進(jìn)行相應(yīng)操 作,并回復(fù)操作結(jié)果給所述第二處理器。本發(fā)明實(shí)現(xiàn)設(shè)備共享的方法中,所述一個(gè)或多個(gè)設(shè)備包括硬件設(shè)備和/或軟件設(shè)備。本發(fā)明實(shí)現(xiàn)設(shè)備共享的方法中,所述第一處理器是ARM單片機(jī),所述第二處理器 是計(jì)算機(jī)。本發(fā)明實(shí)現(xiàn)設(shè)備共享的方法中,所述第一處理器是計(jì)算機(jī),所述第二處理器是ARM 單片機(jī)。本發(fā)明實(shí)現(xiàn)設(shè)備共享的方法中,所述高速總線是USB總線,且只有一條。本發(fā)明實(shí)現(xiàn)設(shè)備共享的系統(tǒng)及其方法的有益效果為通過在一條高速總線上傳輸 各種基于不同通信協(xié)議的數(shù)據(jù),從而實(shí)現(xiàn)處理器間的設(shè)備共享,可以有效釋放計(jì)算機(jī)的接 口,增加系統(tǒng)的穩(wěn)定性、簡潔性和可靠性,同時(shí)節(jié)省成本;另外,多個(gè)操作系統(tǒng)可以基于虛擬 技術(shù)共享各種硬件和/或軟件設(shè)備,提高了設(shè)備的利用率。
下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明,附圖中
圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的實(shí)現(xiàn)設(shè)備共享的系統(tǒng)的框圖;圖2是根據(jù)本發(fā)明另一個(gè)實(shí)施例的實(shí)現(xiàn)設(shè)備共享的系統(tǒng)的框圖;圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的實(shí)現(xiàn)設(shè)備共享的方法的流程圖。
具體實(shí)施例方式圖1是根據(jù)本發(fā)明一個(gè)實(shí)施例的實(shí)現(xiàn)設(shè)備共享的系統(tǒng)的框圖。在本實(shí)施例中,實(shí) 現(xiàn)設(shè)備共享的系統(tǒng)于第一處理器100和第二處理器110間共享第一處理器上連接的一個(gè)或 多個(gè)硬件和/或軟件設(shè)備(例如,設(shè)備104)。硬件設(shè)備可以包括觸摸屏、GPS、藍(lán)牙、收音機(jī) 和/或其它計(jì)算機(jī)210或ARM單片機(jī)200上連接的外圍設(shè)備。軟件設(shè)備可以包括游戲軟件、 播放器軟件和/或其它計(jì)算機(jī)210或ARM單片機(jī)200上配置的應(yīng)用軟件。第一處理器100 與第二處理器110通過高速總線相連,該高速總線(例如,USB總線)用于在第一處理器100 和第二處理器110間傳輸各種通信協(xié)議(例如,UART、I2C、GPIO和/或其它通信協(xié)議)的 數(shù)據(jù)。例如,第一處理器100與第二處理器110間的數(shù)據(jù)傳輸基于所共享的設(shè)備(例如,設(shè) 備104)支持的數(shù)據(jù)通信協(xié)議。在本實(shí)施例中,實(shí)現(xiàn)設(shè)備共享的系統(tǒng)包括第一通訊模塊101,位于第一處理器100中,用于根據(jù)所共享的一個(gè)或多個(gè)設(shè)備 (例如,設(shè)備104)各自支持的數(shù)據(jù)通信協(xié)議分別向第二處理器110發(fā)送數(shù)據(jù)或從第二處理 器110接收數(shù)據(jù)。第一管理模塊102,位于第一處理器100中,與第一通訊模塊101和各種設(shè)備驅(qū)動(dòng) 程序(例如,設(shè)備驅(qū)動(dòng)程序103)通訊,用于接收到第二處理器110發(fā)送的共享請(qǐng)求后向第 二處理器110發(fā)送相應(yīng)的設(shè)備信息,還用于解析通過第一通訊模塊101接收的數(shù)據(jù),并將解 析后的數(shù)據(jù)分別發(fā)送至相應(yīng)設(shè)備的驅(qū)動(dòng)程序(例如,設(shè)備驅(qū)動(dòng)程序103)以驅(qū)動(dòng)相應(yīng)的一個(gè) 或多個(gè)設(shè)備(例如,設(shè)備104),且回復(fù)操作結(jié)果至第二處理器110。一個(gè)或多個(gè)設(shè)備驅(qū)動(dòng)程序(例如,設(shè)備驅(qū)動(dòng)程序103),位于第一處理器100中,一 個(gè)或多個(gè)設(shè)備驅(qū)動(dòng)程序(例如,設(shè)備驅(qū)動(dòng)程序103)中的每一個(gè)對(duì)應(yīng)于一個(gè)設(shè)備(例如,設(shè) 備104),一個(gè)或多個(gè)設(shè)備驅(qū)動(dòng)程序(例如,設(shè)備驅(qū)動(dòng)程序103)與第一管理模塊102和相應(yīng) 的一個(gè)或多個(gè)設(shè)備(例如,設(shè)備104)通訊,用于接收第一管理模塊102解析的數(shù)據(jù)并發(fā)送 給相應(yīng)的設(shè)備(例如,設(shè)備104)以便對(duì)相應(yīng)設(shè)備(例如,設(shè)備104)進(jìn)行相關(guān)操作。第二通訊模塊111,位于第二處理器110中,用于根據(jù)所共享的一個(gè)或多個(gè)設(shè)備 (例如,設(shè)備104)各自支持的數(shù)據(jù)通信協(xié)議分別向第一處理器100發(fā)送數(shù)據(jù)或從第一處理 器100接收數(shù)據(jù)。第二管理模塊112,位于第二處理器110中,與第二通訊模塊111通訊,用于通過第 二通訊模塊111向第一處理器100發(fā)送共享請(qǐng)求,并解析通過第二通訊模塊111接收的數(shù)據(jù)。一個(gè)或多個(gè)虛擬設(shè)備驅(qū)動(dòng)程序(例如,虛擬設(shè)備驅(qū)動(dòng)程序113),位于第二處理器 110中,一個(gè)或多個(gè)虛擬設(shè)備驅(qū)動(dòng)程序(例如,虛擬設(shè)備驅(qū)動(dòng)程序113)中的每一個(gè)對(duì)應(yīng)于 一個(gè)設(shè)備(例如,設(shè)備104),一個(gè)或多個(gè)虛擬設(shè)備驅(qū)動(dòng)程序(例如,虛擬設(shè)備驅(qū)動(dòng)程序113) 與第二管理模塊112通訊,用于在第二處理器110虛擬所共享的一個(gè)或多個(gè)設(shè)備(例如,設(shè) 備104),并將第二處理器110對(duì)相應(yīng)的一個(gè)或多個(gè)虛擬設(shè)備(例如,虛擬設(shè)備114)進(jìn)行操作的數(shù)據(jù)發(fā)送至第二管理模塊112以便傳送給與第一處理器100連接的相應(yīng)的一個(gè)或多個(gè) 設(shè)備(例如,設(shè)備104)。在本實(shí)施例中,當(dāng)?shù)诙幚砥?10需要共享連接在第一處理器100上的一個(gè)或多 個(gè)設(shè)備(例如,設(shè)備104)時(shí),第二管理模塊112通過第二通訊模塊111向第一處理器100發(fā) 送共享請(qǐng)求,第一通訊模塊101接收該共享請(qǐng)求后將該共享請(qǐng)求傳遞至第一管理模塊102。 第一管理模塊102解析該共享請(qǐng)求,并根據(jù)解析后的共享請(qǐng)求將一個(gè)或多個(gè)設(shè)備(例如,設(shè) 備104)的信息(例如,設(shè)備類型、設(shè)備大小等)通過第一通訊模塊101發(fā)送給第二處理器 110。第二通訊模塊111接收這些設(shè)備信息后通過第二管理模塊112將這些設(shè)備信息分別 傳遞給相應(yīng)的一個(gè)或多個(gè)虛擬設(shè)備驅(qū)動(dòng)程序(例如,虛擬設(shè)備驅(qū)動(dòng)程序113)。相應(yīng)的一個(gè) 或多個(gè)虛擬設(shè)備驅(qū)動(dòng)程序(例如,虛擬設(shè)備驅(qū)動(dòng)程序113)就可以在第二處理器110上虛擬 相應(yīng)的一個(gè)或多個(gè)虛擬設(shè)備(例如,虛擬設(shè)備114),第二處理器110的操作系統(tǒng)就可以像調(diào) 用真實(shí)設(shè)備一樣調(diào)用虛擬設(shè)備。在本實(shí)施例中,相應(yīng)的一個(gè)或多個(gè)虛擬設(shè)備驅(qū)動(dòng)程序(例 如,虛擬設(shè)備驅(qū)動(dòng)程序113)根據(jù)接收的設(shè)備信息通過第二處理器110的操作系統(tǒng)對(duì)相應(yīng)的 一個(gè)或多個(gè)虛擬設(shè)備(例如,虛擬設(shè)備114)分別進(jìn)行各種操作,相應(yīng)的一個(gè)或多個(gè)虛擬設(shè) 備驅(qū)動(dòng)程序(例如,虛擬設(shè)備驅(qū)動(dòng)程序113)將操作系統(tǒng)發(fā)送的操作指令和數(shù)據(jù)傳遞給第二 管理模塊112。第二管理模塊112根據(jù)相應(yīng)的一個(gè)或多個(gè)設(shè)備(例如,設(shè)備104)所支持的 數(shù)據(jù)通信協(xié)議分別封裝相應(yīng)的操作指令和數(shù)據(jù),并由第二通訊模塊111將封裝后的操作指 令和數(shù)據(jù)通過高速總線(例如,USB總線)發(fā)送給第一處理器100。第一管理模塊102通過 第一通訊模塊101接收第二處理器110發(fā)送的數(shù)據(jù),并將接收的數(shù)據(jù)解析為相應(yīng)的操作指 令和數(shù)據(jù)。然后,第一管理模塊102將解析后的操作指令和數(shù)據(jù)發(fā)送給相應(yīng)的一個(gè)或多個(gè) 設(shè)備驅(qū)動(dòng)程序(例如,設(shè)備驅(qū)動(dòng)程序103),相應(yīng)的一個(gè)或多個(gè)設(shè)備驅(qū)動(dòng)程序(例如,設(shè)備驅(qū) 動(dòng)程序103)根據(jù)接收的操作指令和數(shù)據(jù)對(duì)相應(yīng)的一個(gè)或多個(gè)設(shè)備(例如,設(shè)備104)進(jìn)行 相應(yīng)操作。操作完畢后,相應(yīng)的一個(gè)或多個(gè)設(shè)備驅(qū)動(dòng)程序(例如,設(shè)備驅(qū)動(dòng)程序103)將操作 結(jié)果發(fā)送給第一管理模塊102,第一管理模塊102根據(jù)相應(yīng)的一個(gè)或多個(gè)設(shè)備(例如,設(shè)備 104)所支持的數(shù)據(jù)通信協(xié)議分別封裝操作結(jié)果,并由第一通訊模塊101通過高速總線(例 如,USB總線)發(fā)送給第二處理器110。第二管理模塊112通過第二通訊模塊111接收封裝 后的操作結(jié)果,并解析封裝后的操作結(jié)果。解析完畢后,第二管理模塊112將解析后的操作 結(jié)果分別發(fā)送給對(duì)應(yīng)的一個(gè)或多個(gè)虛擬設(shè)備驅(qū)動(dòng)程序(例如,虛擬設(shè)備驅(qū)動(dòng)程序113)。相 應(yīng)的一個(gè)或多個(gè)虛擬設(shè)備驅(qū)動(dòng)程序(例如,虛擬設(shè)備驅(qū)動(dòng)程序113)根據(jù)該操作結(jié)果返回相 應(yīng)信息給第二處理器110的操作系統(tǒng),從而完成第二處理器110的操作系統(tǒng)對(duì)一個(gè)或多個(gè) 虛擬設(shè)備(例如,虛擬設(shè)備114)的操作。圖2是根據(jù)本發(fā)明另一個(gè)實(shí)施例的實(shí)現(xiàn)設(shè)備共享的系統(tǒng)的框圖。在本實(shí)施例中, 于計(jì)算機(jī)210和ARM單片機(jī)200間共享連接在計(jì)算機(jī)210和/或ARM單片機(jī)200上的硬件 和/或軟件設(shè)備。硬件設(shè)備可以包括觸摸屏、GPS、藍(lán)牙、收音機(jī)和/或其它計(jì)算機(jī)210或 ARM單片機(jī)200上連接的外圍設(shè)備。軟件設(shè)備可以包括游戲軟件、播放器軟件和/或其它計(jì) 算機(jī)210或ARM單片機(jī)200上配置的應(yīng)用軟件。當(dāng)計(jì)算機(jī)210需要共享ARM單片機(jī)200上連接的一個(gè)或多個(gè)硬件和/或軟件設(shè) 備(例如,單片機(jī)設(shè)備205)時(shí),計(jì)算機(jī)210可以作為上述計(jì)算機(jī),ARM單片機(jī)200可以作為 上述ARM單片機(jī)。計(jì)算機(jī)管理模塊212通過計(jì)算機(jī)通訊模塊211向ARM單片機(jī)200發(fā)送共享請(qǐng)求,單片機(jī)通訊模塊201接收該共享請(qǐng)求后將該共享請(qǐng)求傳遞至單片機(jī)管理模塊202。 單片機(jī)管理模塊202解析該共享請(qǐng)求,并根據(jù)解析后的共享請(qǐng)求將一個(gè)或多個(gè)設(shè)備(例如, 單片機(jī)設(shè)備205)的信息(例如,設(shè)備類型、設(shè)備大小等)通過單片機(jī)通訊模塊201發(fā)送給 計(jì)算機(jī)210。計(jì)算機(jī)通訊模塊211接收這些設(shè)備信息后通過計(jì)算機(jī)管理模塊212將這些設(shè) 備信息分別傳遞給相應(yīng)的一個(gè)或多個(gè)虛擬設(shè)備驅(qū)動(dòng)程序(例如,計(jì)算機(jī)虛擬設(shè)備驅(qū)動(dòng)程序 213)。相應(yīng)的一個(gè)或多個(gè)虛擬設(shè)備驅(qū)動(dòng)程序(例如,計(jì)算機(jī)虛擬設(shè)備驅(qū)動(dòng)程序213)就可以 在計(jì)算機(jī)210上虛擬相應(yīng)的一個(gè)或多個(gè)虛擬設(shè)備(例如,計(jì)算機(jī)虛擬設(shè)備215),計(jì)算機(jī)210 的操作系統(tǒng)就可以像調(diào)用真實(shí)設(shè)備一樣調(diào)用虛擬設(shè)備。在本實(shí)施例中,相應(yīng)的一個(gè)或多個(gè) 虛擬設(shè)備驅(qū)動(dòng)程序(例如,計(jì)算機(jī)虛擬設(shè)備驅(qū)動(dòng)程序213)根據(jù)接收的設(shè)備信息通過計(jì)算 機(jī)210的操作系統(tǒng)(例如,windows操作系統(tǒng))對(duì)相應(yīng)的一個(gè)或多個(gè)虛擬設(shè)備(例如,計(jì)算 機(jī)虛擬設(shè)備215)分別進(jìn)行各種操作時(shí),相應(yīng)的一個(gè)或多個(gè)虛擬設(shè)備驅(qū)動(dòng)程序(例如,計(jì)算 機(jī)虛擬設(shè)備驅(qū)動(dòng)程序213)將操作系統(tǒng)發(fā)送的操作指令和數(shù)據(jù)傳遞給計(jì)算機(jī)管理模塊212。 計(jì)算機(jī)管理模塊212根據(jù)相應(yīng)的一個(gè)或多個(gè)設(shè)備(例如,單片機(jī)設(shè)備205)所支持的數(shù)據(jù)通 信協(xié)議(例如,UART、USB、I2C、GPIO和/或其它數(shù)據(jù)通信協(xié)議)分別封裝相應(yīng)的操作指令 和數(shù)據(jù),并由計(jì)算機(jī)通訊模塊211將封裝后的操作指令和數(shù)據(jù)通過高速總線(例如,USB總 線)發(fā)送給ARM單片機(jī)200。單片機(jī)管理模塊202通過單片機(jī)通訊模塊201接收計(jì)算機(jī)210 發(fā)送的數(shù)據(jù),并將接收的數(shù)據(jù)解析為相應(yīng)的操作指令和數(shù)據(jù)。然后,單片機(jī)管理模塊202將 解析后的操作指令和數(shù)據(jù)發(fā)送給相應(yīng)的一個(gè)或多個(gè)設(shè)備驅(qū)動(dòng)程序(例如,單片機(jī)設(shè)備驅(qū)動(dòng) 程序203),相應(yīng)的一個(gè)或多個(gè)設(shè)備驅(qū)動(dòng)程序(例如,單片機(jī)設(shè)備驅(qū)動(dòng)程序203)根據(jù)接收的 操作指令和數(shù)據(jù)對(duì)相應(yīng)的一個(gè)或多個(gè)設(shè)備(例如,單片機(jī)設(shè)備205)進(jìn)行相應(yīng)操作。操作完 畢后,相應(yīng)的一個(gè)或多個(gè)設(shè)備驅(qū)動(dòng)程序(例如,單片機(jī)設(shè)備驅(qū)動(dòng)程序203)將操作結(jié)果發(fā)送 給單片機(jī)管理模塊202,單片機(jī)管理模塊202根據(jù)相應(yīng)的一個(gè)或多個(gè)設(shè)備(例如,單片機(jī)設(shè) 備205)所支持的數(shù)據(jù)通信協(xié)議(例如,UART、USB、I2C、GPI0和/或其它數(shù)據(jù)通信協(xié)議)分 別封裝操作結(jié)果,并由單片機(jī)通訊模塊201通過高速總線(例如,USB總線)發(fā)送給計(jì)算機(jī) 210。計(jì)算機(jī)管理模塊212通過計(jì)算機(jī)通訊模塊211接收封裝后的操作結(jié)果,并解析封裝后 的操作結(jié)果。解析完畢后,計(jì)算機(jī)管理模塊212將解析后的操作結(jié)果分別發(fā)送給對(duì)應(yīng)的一 個(gè)或多個(gè)虛擬設(shè)備驅(qū)動(dòng)程序(例如,計(jì)算機(jī)虛擬設(shè)備驅(qū)動(dòng)程序213)。相應(yīng)的一個(gè)或多個(gè)虛 擬設(shè)備驅(qū)動(dòng)程序(例如,計(jì)算機(jī)虛擬設(shè)備驅(qū)動(dòng)程序213)根據(jù)該操作結(jié)果返回相應(yīng)信息給計(jì) 算機(jī)210的操作系統(tǒng)(例如,windows操作系統(tǒng)),從而完成計(jì)算機(jī)210的操作系統(tǒng)(例如, windows操作系統(tǒng))對(duì)一個(gè)或多個(gè)虛擬設(shè)備(例如,計(jì)算機(jī)虛擬設(shè)備215)的操作。
當(dāng)ARM單片機(jī)200需要共享計(jì)算機(jī)210上連接的一個(gè)或多個(gè)硬件和/或軟件設(shè) 備(例如,計(jì)算機(jī)設(shè)備216)時(shí),計(jì)算機(jī)210可以作為上述第一處理器,ARM單片機(jī)200可以 作為上述第二處理器。單片機(jī)管理模塊202通過單片機(jī)通訊模塊201向計(jì)算機(jī)210發(fā)送共 享請(qǐng)求,計(jì)算機(jī)通訊模塊211接收該共享請(qǐng)求后將該共享請(qǐng)求傳遞至計(jì)算機(jī)管理模塊212。 計(jì)算機(jī)管理模塊212解析該共享請(qǐng)求,并根據(jù)解析后的共享請(qǐng)求將一個(gè)或多個(gè)設(shè)備(例如, 計(jì)算機(jī)設(shè)備216)的信息(例如,設(shè)備類型、設(shè)備大小等)通過計(jì)算機(jī)通訊模塊211發(fā)送給 ARM單片機(jī)200。單片機(jī)通訊模塊201接收這些設(shè)備信息后通過單片機(jī)管理模塊202將這 些設(shè)備信息分別傳遞給相應(yīng)的一個(gè)或多個(gè)虛擬設(shè)備驅(qū)動(dòng)程序(例如,單片機(jī)虛擬設(shè)備驅(qū)動(dòng) 程序204)。相應(yīng)的一個(gè)或多個(gè)虛擬設(shè)備驅(qū)動(dòng)程序(例如,單片機(jī)虛擬設(shè)備驅(qū)動(dòng)程序204)就
8可以在ARM單片機(jī)200上虛擬相應(yīng)的一個(gè)或多個(gè)虛擬設(shè)備(例如,單片機(jī)虛擬設(shè)備206), ARM單片機(jī)200的操作系統(tǒng)就可以像調(diào)用真實(shí)設(shè)備一樣調(diào)用虛擬設(shè)備。相應(yīng)的一個(gè)或多個(gè) 虛擬設(shè)備驅(qū)動(dòng)程序(例如,單片機(jī)虛擬設(shè)備驅(qū)動(dòng)程序204)根據(jù)接收的設(shè)備信息通過ARM單 片機(jī)200的操作系統(tǒng)對(duì)相應(yīng)的一個(gè)或多個(gè)虛擬設(shè)備(例如,單片機(jī)虛擬設(shè)備206)分別進(jìn)行 各種操作,相應(yīng)的一個(gè)或多個(gè)虛擬設(shè)備驅(qū)動(dòng)程序(例如,單片機(jī)虛擬設(shè)備驅(qū)動(dòng)程序204)將 操作系統(tǒng)發(fā)送的操作指令和數(shù)據(jù)傳遞給單片機(jī)管理模塊202。單片機(jī)管理模塊202根據(jù)相 應(yīng)的一個(gè)或多個(gè)設(shè)備(例如,計(jì)算機(jī)設(shè)備216)所支持的數(shù)據(jù)通信協(xié)議(例如,UART、USB、 I2C、GPI0和/或其它數(shù)據(jù)通信協(xié)議)分別封裝相應(yīng)的操作指令和數(shù)據(jù),并由單片機(jī)通訊模 塊201將封裝后的操作指令和數(shù)據(jù)通過高速總線(例如,USB總線)發(fā)送給計(jì)算機(jī)210。計(jì) 算機(jī)管理模塊212通過計(jì)算機(jī)通訊模塊211接收ARM單片機(jī)200發(fā)送的數(shù)據(jù),并將接收的 數(shù)據(jù)解析為相應(yīng)的操作指令和數(shù)據(jù)。然后,計(jì)算機(jī)管理模塊212將解析后的操作指令和數(shù) 據(jù)發(fā)送給相應(yīng)的一個(gè)或多個(gè)設(shè)備驅(qū)動(dòng)程序(例如,計(jì)算機(jī)設(shè)備驅(qū)動(dòng)程序214),相應(yīng)的一個(gè) 或多個(gè)設(shè)備驅(qū)動(dòng)程序(例如,計(jì)算機(jī)設(shè)備驅(qū)動(dòng)程序214)根據(jù)接收的操作指令和數(shù)據(jù)對(duì)相應(yīng) 的一個(gè)或多個(gè)設(shè)備(例如,計(jì)算機(jī)設(shè)備216)進(jìn)行相應(yīng)操作。操作完畢后,相應(yīng)的一個(gè)或多 個(gè)設(shè)備驅(qū)動(dòng)程序(例如,計(jì)算機(jī)設(shè)備驅(qū)動(dòng)程序214)將操作結(jié)果發(fā)送給計(jì)算機(jī)管理模塊212, 計(jì)算機(jī)管理模塊212根據(jù)相應(yīng)的一個(gè)或多個(gè)設(shè)備(例如,計(jì)算機(jī)設(shè)備216)所支持的數(shù)據(jù)通 信協(xié)議(例如,UART、USB、I2C、GPIO和/或其它數(shù)據(jù)通信協(xié)議)分別封裝操作結(jié)果,并由 計(jì)算機(jī)通訊模塊211通過高速總線(例如,USB總線)發(fā)送給ARM單片機(jī)200。單片機(jī)管理 模塊202通過單片機(jī)通訊模塊201接收封裝后的操作結(jié)果,并解析封裝后的操作結(jié)果。解 析完畢后,單片機(jī)管理模塊202將解析后的操作結(jié)果分別發(fā)送給對(duì)應(yīng)的一個(gè)或多個(gè)虛擬設(shè) 備驅(qū)動(dòng)程序(例如,單片機(jī)虛擬設(shè)備驅(qū)動(dòng)程序204)。相應(yīng)的一個(gè)或多個(gè)虛擬設(shè)備驅(qū)動(dòng)程序 (例如,單片機(jī)虛擬設(shè)備驅(qū)動(dòng)程序204)根據(jù)該操作結(jié)果返回相應(yīng)信息給ARM單片機(jī)200的 操作系統(tǒng),從而完成ARM單片機(jī)200的操作系統(tǒng)對(duì)一個(gè)或多個(gè)虛擬設(shè)備(例如,單片機(jī)虛擬 設(shè)備206)的操作。圖3是根據(jù)本發(fā)明一個(gè)實(shí)施例的實(shí)現(xiàn)設(shè)備共享的方法的流程圖。本實(shí)施例中,實(shí) 現(xiàn)設(shè)備共享的方法于第一處理器和通過高速總線與第一處理器相連的第二處理器間共享 連接在第一處理器上的一個(gè)或多個(gè)硬件和/或軟件設(shè)備,其中,第一處理器和第二處理器 間的數(shù)據(jù)通信分別基于所共享的一個(gè)或多個(gè)設(shè)備各自支持的數(shù)據(jù)通信協(xié)議。在本實(shí)施例 中,硬件設(shè)備可以包括觸摸屏、GPS、藍(lán)牙、收音機(jī)和/或其它計(jì)算機(jī)210或ARM單片機(jī)200 上連接的外圍設(shè)備。軟件設(shè)備可以包括游戲軟件、播放器軟件和/或其它計(jì)算機(jī)210或ARM 單片機(jī)200上配置的應(yīng)用軟件。在本實(shí)施例中,實(shí)現(xiàn)計(jì)算機(jī)設(shè)備共享的方法包含以下步驟步驟Si,當(dāng)?shù)诙幚砥?10需要共享連接在第一處理器100上的一個(gè)或多個(gè)設(shè)備 (例如,設(shè)備104)時(shí),第二處理器110向第一處理器100發(fā)送共享請(qǐng)求。步驟S2,第一處理器100接收并解析該共享請(qǐng)求,并依照解析后的共享請(qǐng)求將相 應(yīng)的一個(gè)或多個(gè)設(shè)備(例如,設(shè)備104)的信息(例如,設(shè)備類型、設(shè)備大小等)發(fā)送給第二 處理器110。步驟S3,第二處理器110接收這些設(shè)備信息,并由第二處理器的操作系統(tǒng)(例如, windows操作系統(tǒng)、arm操作系統(tǒng)和/或其它操作系統(tǒng))根據(jù)相應(yīng)的設(shè)備信息通過相應(yīng)的虛
9擬設(shè)備驅(qū)動(dòng)程序(例如虛擬設(shè)備驅(qū)動(dòng)程序113)對(duì)相應(yīng)的虛擬設(shè)備(例如,虛擬設(shè)備114) 分別進(jìn)行相關(guān)操作。步驟S4,第二處理器110通過虛擬設(shè)備驅(qū)動(dòng)程序113將第二處理器110的操作系 統(tǒng)對(duì)虛擬設(shè)備114進(jìn)行操作的操作指令和數(shù)據(jù)發(fā)送給第一處理器100。步驟S5,第一處理器100將接收的操作指令和數(shù)據(jù)傳遞給相應(yīng)的一個(gè)或多個(gè)設(shè)備 驅(qū)動(dòng)程序(例如,設(shè)備驅(qū)動(dòng)程序103),相應(yīng)的一個(gè)或多個(gè)設(shè)備驅(qū)動(dòng)程序(例如,設(shè)備驅(qū)動(dòng)程 序103)根據(jù)接收的操作指令和數(shù)據(jù)對(duì)相應(yīng)的一個(gè)或多個(gè)設(shè)備(例如,設(shè)備104)進(jìn)行相應(yīng) 操作,并回復(fù)操作結(jié)果。第一處理器100將相應(yīng)的一個(gè)或多個(gè)設(shè)備驅(qū)動(dòng)程序(例如,設(shè)備驅(qū) 動(dòng)程序103)回復(fù)的操作結(jié)果發(fā)送給第二處理器110,第二處理器110相應(yīng)的一個(gè)或多個(gè)虛 擬設(shè)備驅(qū)動(dòng)程序(例如,虛擬設(shè)備驅(qū)動(dòng)程序113)根據(jù)操作結(jié)果返回相應(yīng)信息給第二處理器 110的操作系統(tǒng),從而完成第二處理器110的操作系統(tǒng)對(duì)虛擬設(shè)備114的操作。本發(fā)明通過在一條高速總線上傳輸各種基于不同通信協(xié)議的數(shù)據(jù),從而實(shí)現(xiàn)處理 器間的設(shè)備共享,可以有效釋放計(jì)算機(jī)的接口,增加系統(tǒng)的穩(wěn)定性、簡潔性和可靠性,同時(shí) 節(jié)省成本;另外,多個(gè)操作系統(tǒng)可以基于虛擬技術(shù)共享各種硬件和/或軟件設(shè)備,提高了設(shè) 備的利用率。雖然本發(fā)明是通過具體實(shí)施例進(jìn)行說明的,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)明白,在不脫離 本發(fā)明范圍的情況下,還可以對(duì)本發(fā)明進(jìn)行各種變換及等同替代。另外,針對(duì)特定情形或材 料,可以對(duì)本發(fā)明做各種修改,而不脫離本發(fā)明的范圍。因此,本發(fā)明不局限于所公開的具 體實(shí)施例,而應(yīng)當(dāng)包括落入本發(fā)明權(quán)利要求范圍內(nèi)的全部實(shí)施方式。
權(quán)利要求
1.一種實(shí)現(xiàn)設(shè)備共享的系統(tǒng),于第一處理器和第二處理器間共享所述第一處理器上連 接的一個(gè)或多個(gè)設(shè)備,其特征在于,所述第一處理器與所述第二處理器通過高速總線相連, 所述高速總線用于在所述第一處理器和所述第二處理器間傳輸各種通信協(xié)議的數(shù)據(jù);所述 系統(tǒng)包括第一通訊模塊,位于所述第一處理器中,用于根據(jù)所述一個(gè)或多個(gè)設(shè)備各自支持的數(shù) 據(jù)通信協(xié)議分別向所述第二處理器發(fā)送數(shù)據(jù)或從所述第二處理器接收數(shù)據(jù);第一管理模塊,位于所述第一處理器中,與所述第一通訊模塊和所述一個(gè)或多個(gè)設(shè)備 的驅(qū)動(dòng)程序通訊,用于接收到所述第二處理器發(fā)送的共享請(qǐng)求后向所述第二處理器發(fā)送相 應(yīng)的設(shè)備信息,還用于解析通過所述第一通訊模塊接收的數(shù)據(jù),并將解析后的數(shù)據(jù)分別發(fā) 送至相應(yīng)設(shè)備的驅(qū)動(dòng)程序以驅(qū)動(dòng)所述一個(gè)或多個(gè)設(shè)備,且回復(fù)操作結(jié)果至所述第二處理 器;一個(gè)或多個(gè)設(shè)備驅(qū)動(dòng)程序,位于所述第一處理器中,所述一個(gè)或多個(gè)設(shè)備驅(qū)動(dòng)程序中 的每一個(gè)對(duì)應(yīng)于一個(gè)所述設(shè)備,所述設(shè)備驅(qū)動(dòng)程序與所述第一管理模塊和所述相應(yīng)的設(shè)備 通訊,用于接收所述第一管理模塊解析的數(shù)據(jù)并發(fā)送給所述相應(yīng)的設(shè)備以便對(duì)所述相應(yīng)的 設(shè)備進(jìn)行相關(guān)操作;第二通訊模塊,位于所述第二處理器中,用于根據(jù)所述一個(gè)或多個(gè)設(shè)備各自支持的數(shù) 據(jù)通信協(xié)議分別向所述第一處理器發(fā)送數(shù)據(jù)或從所述第一處理器接收數(shù)據(jù);第二管理模塊,位于所述第二處理器中,與所述第二通訊模塊通訊,用于通過所述第二 通訊模塊向所述第一處理器發(fā)送共享請(qǐng)求,并解析通過所述第二通訊模塊接收的數(shù)據(jù);以 及一個(gè)或多個(gè)虛擬設(shè)備驅(qū)動(dòng)程序,位于所述第二處理器中,所述一個(gè)或多個(gè)虛擬設(shè)備驅(qū) 動(dòng)程序中的每一個(gè)對(duì)應(yīng)于一個(gè)所述設(shè)備,所述虛擬設(shè)備驅(qū)動(dòng)程序與所述第二管理模塊通 訊,用于在所述第二處理器虛擬所述一個(gè)或多個(gè)設(shè)備,并將所述第二處理器對(duì)所述一個(gè)或 多個(gè)虛擬設(shè)備進(jìn)行操作的數(shù)據(jù)發(fā)送至所述第二管理模塊以便傳送給與所述第一處理器連 接的所述一個(gè)或多個(gè)設(shè)備。
2.根據(jù)權(quán)利要求1所述的實(shí)現(xiàn)設(shè)備共享的系統(tǒng),其特征在于,所述一個(gè)或多個(gè)設(shè)備包 括硬件設(shè)備和/或軟件設(shè)備。
3.根據(jù)權(quán)利要求1或2所述的實(shí)現(xiàn)設(shè)備共享的系統(tǒng),其特征在于,所述第一處理器是 ARM單片機(jī),所述第二處理器是計(jì)算機(jī)。
4.根據(jù)權(quán)利要求1或2所述的實(shí)現(xiàn)設(shè)備共享的系統(tǒng),其特征在于,所述第一處理器是計(jì) 算機(jī),所述第二處理器是ARM單片機(jī)。
5.根據(jù)權(quán)利要求1或2所述的實(shí)現(xiàn)設(shè)備共享的系統(tǒng),其特征在于,所述高速總線是USB 總線,且只有一條。
6.一種實(shí)現(xiàn)設(shè)備共享的方法,其特征在于,于連接有一個(gè)或多個(gè)設(shè)備的第一處理器和 通過高速總線與所述第一處理器相連的第二處理器間共享所述一個(gè)或多個(gè)設(shè)備,其中,所 述第一處理器和所述第二處理器間的數(shù)據(jù)通信分別基于所共享的一個(gè)或多個(gè)設(shè)備各自支 持的數(shù)據(jù)通信協(xié)議;所述方法包括以下步驟(51、所述第二處理器向所述第一處理器發(fā)送共享請(qǐng)求;(52、所述第一處理器向所述第二處理器發(fā)送對(duì)應(yīng)于所述共享請(qǐng)求的所述一個(gè)或多個(gè)設(shè)備的信息;·53、所述第二處理器根據(jù)接收的所述一個(gè)或多個(gè)設(shè)備的信息分別對(duì)相應(yīng)于所述一個(gè)或 多個(gè)設(shè)備的一個(gè)或多個(gè)虛擬設(shè)備進(jìn)行操作;·54、所述第二處理器將所述操作數(shù)據(jù)發(fā)送給所述第一處理器;以及·55、所述第一處理器根據(jù)接收的所述操作數(shù)據(jù)對(duì)所述一個(gè)或多個(gè)設(shè)備進(jìn)行相應(yīng)操作, 并回復(fù)操作結(jié)果給所述第二處理器。
7.根據(jù)權(quán)利要求6所述的實(shí)現(xiàn)設(shè)備共享的方法,其特征在于,所述一個(gè)或多個(gè)設(shè)備包 括硬件設(shè)備和/或軟件設(shè)備。
8.根據(jù)權(quán)利要求6或7所述的實(shí)現(xiàn)設(shè)備共享的方法,其特征在于,所述第一處理器是 ARM單片機(jī),所述第二處理器是計(jì)算機(jī)。
9.根據(jù)權(quán)利要求6或7所述的實(shí)現(xiàn)設(shè)備共享的方法,其特征在于,所述第一處理器是計(jì) 算機(jī),所述第二處理器是ARM單片機(jī)。
10.根據(jù)權(quán)利要求6或7所述的實(shí)現(xiàn)設(shè)備共享的方法,其特征在于,所述高速總線是 USB總線,且只有一條。
全文摘要
本發(fā)明公開了一種實(shí)現(xiàn)設(shè)備共享的系統(tǒng)及其方法,于連接有一個(gè)或多個(gè)設(shè)備的第一處理器和通過高速總線與第一處理器相連的第二處理器間共享所述一個(gè)或多個(gè)設(shè)備,其中,第一處理器和第二處理器間的數(shù)據(jù)通信分別基于所共享的一個(gè)或多個(gè)設(shè)備各自支持的數(shù)據(jù)通信協(xié)議。需要共享時(shí),第二處理器向第一處理器發(fā)送共享請(qǐng)求,然后第一處理器向第二處理器發(fā)送對(duì)應(yīng)于該共享請(qǐng)求的設(shè)備的信息,第二處理器根據(jù)接收的設(shè)備信息分別對(duì)相應(yīng)虛擬設(shè)備進(jìn)行操作,并將操作數(shù)據(jù)發(fā)送給第一處理器,最后第一處理器根據(jù)接收的操作數(shù)據(jù)對(duì)相應(yīng)硬件和/或軟件設(shè)備進(jìn)行相應(yīng)操作,并回復(fù)操作結(jié)果給第二處理器。本發(fā)明有效釋放了計(jì)算機(jī)接口且提高了設(shè)備的利用率。
文檔編號(hào)G06F13/20GK102004716SQ20101054266
公開日2011年4月6日 申請(qǐng)日期2010年11月12日 優(yōu)先權(quán)日2010年11月12日
發(fā)明者顏悌君 申請(qǐng)人:深圳市合正汽車電子有限公司