本發(fā)明涉及電子控制領(lǐng)域,具體而言,涉及一種通過BIOS控制總線設(shè)備切換的方法和裝置。
背景技術(shù):
目前市場上所售大部分筆記本電腦一般被劃分成CPU(Central Processing Unit,中央處理器)和EC(Embeded Controller,嵌入式控制器)兩大控制部分,CPU提供在開機(jī)后的操作系統(tǒng)模式下的用戶訪問,EC則提供在待機(jī)模式下的自身供電、時(shí)鐘、復(fù)位、GPIO(General Purpose Input Output,通用輸入/輸出)、I2C(Inter-Integrated Circuit,內(nèi)部集成電路)等控制和在開機(jī)模式的鍵盤、充電、風(fēng)扇等控制。CPU和EC一般都各有一個(gè)I2C Master控制器(主控制器),分別連接到各自I2C總線并控制各自總線上的設(shè)備,因此,掛在各自總線上的I2C設(shè)備不能既被CPU控制又被EC控制。而在現(xiàn)實(shí)的系統(tǒng)中,往往需要用EC作為主要的控制,而CPU需要在將來的某個(gè)時(shí)間節(jié)點(diǎn)選擇性的訪問EC所控制的設(shè)備。
針對上述現(xiàn)有技術(shù)中總線設(shè)備不能既被中央處理器控制又被嵌入式控制器控制的問題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種通過BIOS控制總線設(shè)備切換的方法和裝置,以至少解決現(xiàn)有技術(shù)中總線設(shè)備不能既被中央處理器控制又被嵌入式控制器控制的技術(shù)問題。
根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種通過BIOS控制總線設(shè)備切換的方法,該方法應(yīng)用于BIOS,總線設(shè)備連接多路復(fù)用器,多路復(fù)用器分別與中央處理器和嵌入式控制器連接,方法包括:接收操作系統(tǒng)下達(dá)的對總線設(shè)備的控制權(quán)的切換信息;根據(jù)切換信息,控制多路復(fù)用器連通總線設(shè)備和中央處理器,或控制多路復(fù)用器連通總線設(shè)備和嵌入式控制器。
進(jìn)一步的,切換信息包括低電平信號(hào)和高電平信號(hào),根據(jù)切換信息,控制多路復(fù)用器連通總線設(shè)備和中央處理器,或控制多路復(fù)用器連通總線設(shè)備和嵌入式控制器,包括:根據(jù)高電平信號(hào),控制多路復(fù)用器連通總線設(shè)備和嵌入式控制器;根據(jù)低電平信號(hào),控制多路復(fù)用器連通總線設(shè)備和中央處理器。
進(jìn)一步的,接收操作系統(tǒng)下達(dá)的對總線設(shè)備的控制權(quán)的切換信息之前,方法包括:初始化多路復(fù)用器,控制多路復(fù)用器連通總線設(shè)備和嵌入式控制器。
進(jìn)一步的,控制多路復(fù)用器連通總線設(shè)備和中央處理器,包括:中央處理器通過調(diào)用BIOS的高級(jí)配置和電源管理接口與總線設(shè)備連通。
進(jìn)一步的,總線設(shè)備為I2C設(shè)備,多路復(fù)用器為IO多路復(fù)用器。
根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種通過BIOS控制總線設(shè)備切換的裝置,裝置包括BIOS、總線設(shè)備、多路復(fù)用器、中央處理器和嵌入式控制器,總線設(shè)備連接多路復(fù)用器,多路復(fù)用器分別與中央處理器和嵌入式控制器連接,BIOS包括:接收模塊,用于接收操作系統(tǒng)下達(dá)的對總線設(shè)備的控制權(quán)的切換信息;控制模塊,用于根據(jù)切換信息,控制多路復(fù)用器連通總線設(shè)備和中央處理器,或控制多路復(fù)用器連通總線設(shè)備和嵌入式控制器。
進(jìn)一步的,切換信息包括低電平信號(hào)和高電平信號(hào),控制模塊包括:第一控制模塊,用于根據(jù)高電平信號(hào),控制多路復(fù)用器連通總線設(shè)備和嵌入式控制器;第二控制模塊,用于根據(jù)低電平信號(hào),控制多路復(fù)用器連通總線設(shè)備和中央處理器。
進(jìn)一步的,裝置還包括:初始化模塊,用于在接收模塊接收操作系統(tǒng)下達(dá)的對總線設(shè)備的控制權(quán)的切換信息之前,初始化多路復(fù)用器,控制多路復(fù)用器連通總線設(shè)備和嵌入式控制器。
進(jìn)一步的,中央處理器通過調(diào)用BIOS的高級(jí)配置和電源管理接口與總線設(shè)備連通。
進(jìn)一步的,總線設(shè)備為I2C設(shè)備,多路復(fù)用器為IO多路復(fù)用器。
在本發(fā)明實(shí)施例中,采用BIOS控制的方式,其中,總線設(shè)備連接多路復(fù)用器,多路復(fù)用器分別與中央處理器和嵌入式控制器連接,BIOS通過接收操作系統(tǒng)下達(dá)的對總線設(shè)備的控制權(quán)的切換信息,根據(jù)切換信息,控制多路復(fù)用器連通總線設(shè)備和中央處理器,或控制多路復(fù)用器連通總線設(shè)備和嵌入式控制器,達(dá)到了總線設(shè)備可以既被中央處理器控制又被嵌入式控制器控制的目的,高效、實(shí)用、兼容性強(qiáng),進(jìn)而解決了現(xiàn)有技術(shù)中總線設(shè)備不能既被中央處理器控制又被嵌入式控制器控制的技術(shù)問題。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
圖1是根據(jù)本發(fā)明實(shí)施例1的一種通過BIOS控制總線設(shè)備切換的方法的流程圖;
圖2是根據(jù)本發(fā)明實(shí)施例1中的硬件電路示意圖;
圖3是根據(jù)本發(fā)明實(shí)施例2的一種通過BIOS控制總線設(shè)備切換的裝置的結(jié)構(gòu)圖;
圖4是根據(jù)本發(fā)明實(shí)施例2的一種可選的通過BIOS控制總線設(shè)備切換的裝置的結(jié)構(gòu)圖;以及
圖5是根據(jù)本發(fā)明實(shí)施例2的一種可選的通過BIOS控制總線設(shè)備切換的裝置的結(jié)構(gòu)圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤4送?,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
實(shí)施例1
根據(jù)本發(fā)明實(shí)施例,提供了一種通過BIOS控制總線設(shè)備切換的方法實(shí)施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
圖1是根據(jù)本發(fā)明實(shí)施例的通過BIOS控制總線設(shè)備切換的方法,該方法應(yīng)用于BIOS,如圖1所示,該方法包括如下步驟:
步驟S102,接收操作系統(tǒng)下達(dá)的對總線設(shè)備的控制權(quán)的切換信息。
具體的,本發(fā)明中總線設(shè)備連接多路復(fù)用器,多路復(fù)用器分別與中央處理器和嵌入式控制器,本發(fā)明中的BIOS為“Bas ic Input Output System”的縮略詞,指的是基本輸入輸出系統(tǒng)。
具體的,本發(fā)明將多路復(fù)用器的控制層面移動(dòng)到BIOS里面,把請求控制權(quán)的邏輯放在操作系統(tǒng)中的驅(qū)動(dòng)實(shí)現(xiàn),由BISO接收操作系統(tǒng)下達(dá)的對總線設(shè)備的控制權(quán)的切換信息,可選的,對總線設(shè)備的控制權(quán)的切換信息可以由操作系統(tǒng)Driver下達(dá)。
步驟S104,根據(jù)切換信息,控制多路復(fù)用器連通總線設(shè)備和中央處理器,或控制多路復(fù)用器連通總線設(shè)備和嵌入式控制器。
具體的,如果總線設(shè)備被嵌入式控制器控制,在需要轉(zhuǎn)換為由中央處理器控制的情況下,可以由操作系統(tǒng)下達(dá)將對總線設(shè)備的控制權(quán)切換為中央處理器的切換信息,BIOS接收到該切換信息后,根據(jù)該切換信息,即可控制多路復(fù)用器連通總線設(shè)備和中央處理器;同理,如果總線設(shè)備被中央處理器控制,在需要轉(zhuǎn)換為由嵌入式控制器控制的情況下,可以由操作系統(tǒng)下達(dá)將對總線設(shè)備的控制權(quán)切換為嵌入式控制器的切換信息,BIOS接收到該切換信息后,根據(jù)該切換信息,即可控制多路復(fù)用器連通總線設(shè)備和嵌入式控制器。
通過上述步驟S104,可以實(shí)現(xiàn)BIOS對多路復(fù)用器的控制,用戶可以通過運(yùn)行在中央處理器上的操作系統(tǒng)驅(qū)動(dòng)程序來通過BIOS選擇多路復(fù)用器連通的路徑。
在本發(fā)明實(shí)施例中,采用BIOS控制的方式,其中,總線設(shè)備連接多路復(fù)用器,多路復(fù)用器分別與中央處理器和嵌入式控制器連接,BIOS通過接收操作系統(tǒng)下達(dá)的對總線設(shè)備的控制權(quán)的切換信息,根據(jù)切換信息,控制多路復(fù)用器連通總線設(shè)備和中央處理器,或控制多路復(fù)用器連通總線設(shè)備和嵌入式控制器,達(dá)到了總線設(shè)備可以既被中央處理器控制又被嵌入式控制器控制的目的,高效、實(shí)用、兼容性強(qiáng),進(jìn)而解決了現(xiàn)有技術(shù)中總線設(shè)備不能既被中央處理器控制又被嵌入式控制器控制的技術(shù)問題。
此處需要說明的是,本發(fā)明適用于移動(dòng)終端,其中移動(dòng)終端包括筆記本電腦,適用于筆記本電腦中中央處理器想要在某一時(shí)刻控制總線設(shè)備,但在下一時(shí)刻需要把對總線設(shè)備的訪問權(quán)歸還給嵌入式控制器的情況。
在一種可選的實(shí)施例中,切換信息包括低電平信號(hào)和高電平信號(hào),步驟S104包括:
步驟S202,根據(jù)高電平信號(hào),控制多路復(fù)用器連通總線設(shè)備和嵌入式控制器。
步驟S204,根據(jù)低電平信號(hào),控制多路復(fù)用器連通總線設(shè)備和中央處理器。
具體的,本發(fā)明實(shí)施例的硬件電路如圖2所示,多路復(fù)用器(MUX)的輸入端連接到I2C Slave設(shè)備(從設(shè)備),多路復(fù)用器的輸出端連接到中央處理器(CPU)和嵌入式控制器(EC),多路復(fù)用器的控制端連接到中央處理器,具體通過中央處理器的BIOS控制,當(dāng)BIOS控制端輸出低電平時(shí),多路復(fù)用器選擇接通I2C Slave設(shè)備和嵌入式控制器,實(shí)現(xiàn)嵌入式控制器的訪問控制;當(dāng)BIOS控制端輸出高電平時(shí),多路復(fù)用器選擇接通I2C Slave設(shè)備和中央處理器,從而實(shí)現(xiàn)中央處理器的訪問控制。
在一種可選的實(shí)施例中,步驟S102之前,方法包括:步驟S302,初始化多路復(fù)用器,控制多路復(fù)用器連通總線設(shè)備和嵌入式控制器。
具體的,在應(yīng)用于筆記本電腦時(shí),當(dāng)筆記本電腦復(fù)位后,BIOS初始化多路復(fù)用器,把默認(rèn)的總線設(shè)備控制權(quán)交給嵌入式控制器,也就是連通總線設(shè)備和嵌入式控制器,并且BIOS同時(shí)也初始化ACPI(高級(jí)配置和電源管理接口)表中的Method(方法),等待操作系統(tǒng)下達(dá)對總線設(shè)備的控制權(quán)的切換信息。
在一種可選的實(shí)施例中,BIOS ACPI Method可以通過以下代碼實(shí)現(xiàn):
以上可以被定義在ACPI SSDT表中,通過ASL.EXE程序編譯并導(dǎo)入到BIOS中,重啟Windows系統(tǒng)后方可生效。
在一種可選的實(shí)施例中,控制多路復(fù)用器連通總線設(shè)備和中央處理器,包括:中央處理器通過調(diào)用BIOS的高級(jí)配置和電源管理接口與總線設(shè)備連通。
具體的,總線設(shè)備和中央處理器的連通是通過中央處理器調(diào)用BIOS ACPI中的方法實(shí)現(xiàn)的,從而達(dá)到對總線設(shè)備訪問控制的目的,通過BIOS ACPI調(diào)用的方式可以解決操作系統(tǒng)對于底層操作的保護(hù)性,以及操作系統(tǒng)內(nèi)部各驅(qū)動(dòng)的消息傳遞的復(fù)雜性、兼容性問題。
此處需要說明的是,中央處理器通過調(diào)用BIOS的高級(jí)配置和電源管理接口與總線設(shè)備連通可以應(yīng)用于步驟S104以及步驟S204中。
在一種可選的實(shí)施例中,總線設(shè)備為I2C設(shè)備,多路復(fù)用器為IO多路復(fù)用器。
具體的,本發(fā)明中的總線設(shè)備可以包括但不限于I2C設(shè)備,任何掛在不同總線(分別連接CPU和EC)上的設(shè)備均可實(shí)現(xiàn)在筆記本中動(dòng)態(tài)訪問(被CPU或EC控制)。
在一種可選的實(shí)施例中,本發(fā)明可以應(yīng)用于Award BIOS、Windows 10Enterprise上,其中,應(yīng)用于Windows 10時(shí),可以通過以下代碼驅(qū)動(dòng)實(shí)現(xiàn):
實(shí)施例2
根據(jù)本發(fā)明實(shí)施例,提供了一種通過BIOS控制總線設(shè)備切換的裝置的產(chǎn)品實(shí)施例,圖3是根據(jù)本發(fā)明實(shí)施例的通過BIOS控制總線設(shè)備切換的裝置,該裝置包括BIOS、總線設(shè)備、多路復(fù)用器、中央處理器和嵌入式控制器,如圖3所示,BIOS包括接收模塊101和控制模塊103,其中,接收模塊101,用于接收操作系統(tǒng)下達(dá)的的對總線設(shè)備的控制權(quán)的切換信息;控制模塊103,用于根據(jù)切換信息,控制多路復(fù)用器連通總線設(shè)備和中央處理器,或控制多路復(fù)用器連通總線設(shè)備和嵌入式控制器。
具體的,本發(fā)明中總線設(shè)備連接多路復(fù)用器,多路復(fù)用器分別與中央處理器和嵌入式控制器連接。
在本發(fā)明實(shí)施例中,采用BIOS控制的方式,其中,總線設(shè)備連接多路復(fù)用器,多路復(fù)用器分別與中央處理器和嵌入式控制器連接,通過BIOS的接收模塊101接收操作系統(tǒng)下達(dá)的對總線設(shè)備的控制權(quán)的切換信息,控制模塊103根據(jù)切換信息,控制多路復(fù)用器連通總線設(shè)備和中央處理器,或控制多路復(fù)用器連通總線設(shè)備和嵌入式控制器,達(dá)到了總線設(shè)備可以既被中央處理器控制又被嵌入式控制器控制的目的,高效、實(shí)用、兼容性強(qiáng),進(jìn)而解決了現(xiàn)有技術(shù)中總線設(shè)備不能既被中央處理器控制又被嵌入式控制器控制的技術(shù)問題。
此處需要說明的是,本發(fā)明適用于移動(dòng)終端,其中移動(dòng)終端包括筆記本電腦,適用于筆記本電腦中中央處理器想要在某一時(shí)刻控制總線設(shè)備,但在下一時(shí)刻需要把對總線設(shè)備的訪問權(quán)歸還給嵌入式控制器的情況。
此處需要說明的是,上述接收模塊101和控制模塊103對應(yīng)于實(shí)施例1中的步驟S102至步驟S104,上述模塊與對應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場景相同,但不限于上述實(shí)施例1所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行。
在一種可選的實(shí)施例中,切換信息包括低電平信號(hào)和高電平信號(hào),如圖4所示,控制模塊103包括第一控制模塊201和第二控制模塊203。其中,第一控制模塊201,用于根據(jù)高電平信號(hào),控制多路復(fù)用器連通總線設(shè)備和嵌入式控制器;第二控制模塊203,用于根據(jù)低電平信號(hào),控制多路復(fù)用器連通總線設(shè)備和中央處理器。
此處需要說明的是,上述第一控制模塊201和第二控制模塊203對應(yīng)于實(shí)施例1中的步驟S202至步驟S204,上述模塊與對應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場景相同,但不限于上述實(shí)施例1所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行。
在一種可選的實(shí)施例中,如圖5所示,裝置還包括:初始化模塊301,用于在接收模塊101接收操作系統(tǒng)下達(dá)的對總線設(shè)備控制權(quán)的切換信息之前,初始化多路復(fù)用器,控制多路復(fù)用器連通總線設(shè)備和嵌入式控制器。
此處需要說明的是,上述初始化模塊301對應(yīng)于實(shí)施例1中的步驟S302至步驟S110,上述模塊與對應(yīng)的步驟所實(shí)現(xiàn)的示例和應(yīng)用場景相同,但不限于上述實(shí)施例1所公開的內(nèi)容。需要說明的是,上述模塊作為裝置的一部分可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行。
在一種可選的實(shí)施例中,中央處理器通過調(diào)用BIOS的高級(jí)配置和電源管理接口與總線設(shè)備連通。
在一種可選的實(shí)施例中,總線設(shè)備為I2C設(shè)備,多路復(fù)用器為IO多路復(fù)用器。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
在本發(fā)明的上述實(shí)施例中,對各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
在本申請所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的技術(shù)內(nèi)容,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。