一種終端控制存儲(chǔ)卡狀態(tài)的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及電子終端技術(shù)領(lǐng)域,尤其涉及一種終端控制存儲(chǔ)卡狀態(tài)的方法及裝置。
【背景技術(shù)】
[0002]隨著用戶對(duì)手機(jī)、平板電腦等終端的依賴性越來越高,例如用戶經(jīng)常使用手機(jī)觀看離線視頻,使得用戶對(duì)終端存儲(chǔ)性能的要求越來越高。
[0003]目前很多手機(jī)廠商都支持外部存儲(chǔ)擴(kuò)展,并且大部分手機(jī)的電池是不可卸的,因此很多外部存儲(chǔ)都支持熱插拔功能。熱插拔動(dòng)作是通過終端中存儲(chǔ)卡通訊端口的電平狀態(tài)響應(yīng)的,例如,在存儲(chǔ)卡通訊端口處于高電平時(shí)存儲(chǔ)卡為插入狀態(tài),在存儲(chǔ)卡通訊端口處于低電平時(shí)存儲(chǔ)卡為拔出狀態(tài)。
[0004]然而,結(jié)構(gòu)硬件接觸不良等原因會(huì)引起電平不穩(wěn)的情況發(fā)生,這樣就造成在極短的時(shí)間內(nèi)存儲(chǔ)卡通訊端口的電平狀態(tài)頻繁發(fā)生切換,有可能終端中插入有存儲(chǔ)卡而存儲(chǔ)卡通訊端口處于低電平而引起掉卡,或者,終端中未插入有存儲(chǔ)卡而存儲(chǔ)卡通訊端口處于高電平而引起錯(cuò)誤插卡提示。
【發(fā)明內(nèi)容】
[0005]本發(fā)明提供一種終端控制存儲(chǔ)卡狀態(tài)的方法及裝置,以避免存儲(chǔ)卡通訊端口的頻繁高低電平切換引起的掉卡或錯(cuò)誤插卡顯示。
[0006]—方面,本發(fā)明實(shí)施例提供了檢測(cè)終端存儲(chǔ)卡狀態(tài)的方法,包括:
[0007]在檢測(cè)到終端中存儲(chǔ)卡通訊端口的電平狀態(tài)切換時(shí),計(jì)算切換間隔時(shí)間;
[0008]在所述切換間隔時(shí)間大于預(yù)設(shè)的時(shí)間閥值時(shí),檢測(cè)當(dāng)前存儲(chǔ)卡處于插入狀態(tài)或拔出狀態(tài)。
[0009]另一方面,本發(fā)明實(shí)施例提供了一種檢測(cè)終端存儲(chǔ)卡狀態(tài)的裝置,包括:時(shí)間計(jì)算單元,用于在檢測(cè)到終端中存儲(chǔ)卡通訊端口的電平狀態(tài)切換時(shí),計(jì)算切換間隔時(shí)間;
[0010]狀態(tài)檢測(cè)單元,用于在所述切換間隔時(shí)間大于預(yù)設(shè)的時(shí)間閥值時(shí),檢測(cè)當(dāng)前存儲(chǔ)卡處于插入狀態(tài)或拔出狀態(tài)。
[0011]本發(fā)明實(shí)施例提供的檢測(cè)終端存儲(chǔ)卡狀態(tài)的方法,通過只在存儲(chǔ)卡通訊端口的電平狀態(tài)切換,且切換間隔時(shí)間大于時(shí)間閥值時(shí),才檢測(cè)當(dāng)前存儲(chǔ)卡處于插入狀態(tài)或拔出狀態(tài),避免了切換間隔時(shí)間小于時(shí)間閥值時(shí)檢測(cè)終端存儲(chǔ)卡狀態(tài),從而避免了避免存儲(chǔ)卡通訊端口的頻繁高低電平切換引起的掉卡或錯(cuò)誤插卡顯示。
【附圖說明】
[0012]圖1為本發(fā)明實(shí)施例一提供的一種檢測(cè)終端存儲(chǔ)卡狀態(tài)的方法的流程示意圖;
[0013]圖2為本發(fā)明實(shí)施例二提供的一種檢測(cè)終端存儲(chǔ)卡狀態(tài)的方法的流程示意圖;
[0014]圖3為本發(fā)明實(shí)施例三提供的一種檢測(cè)終端存儲(chǔ)卡狀態(tài)的方法的流程示意圖;
[0015]圖4為本發(fā)明實(shí)施例四提供的一種檢測(cè)終端存儲(chǔ)卡狀態(tài)的裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0016]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖牵颂幩枋龅木唧w實(shí)施例僅僅用于解釋本發(fā)明,而非對(duì)本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
[0017]實(shí)施例一
[0018]圖1為本發(fā)明實(shí)施例一提供的一種檢測(cè)終端存儲(chǔ)卡狀態(tài)的方法的流程示意圖,該方法可以由檢測(cè)終端存儲(chǔ)卡狀態(tài)的裝置執(zhí)行,其中該裝置可以由軟件和/或硬件實(shí)現(xiàn),可作為終端的一部分被內(nèi)置在終端內(nèi)部。如圖1所示,該實(shí)現(xiàn)流程包括:
[0019]步驟11、在檢測(cè)到終端中存儲(chǔ)卡通訊端口的電平狀態(tài)切換時(shí),計(jì)算切換間隔時(shí)間。
[0020]在本實(shí)施例中,終端可以是諸如智能手機(jī)、電腦或者個(gè)人數(shù)字助理等之類的電子產(chǎn)品。終端具有用于放置存儲(chǔ)卡的卡槽,存儲(chǔ)卡可以是諸如TF(T-Flash,T)卡或者SD (Secure Digital Memory Card,安全數(shù)碼卡)卡之類的外置存儲(chǔ)卡。存儲(chǔ)卡通訊端口為終端CPU (Central Processing Unit,中央處理器)與外置存儲(chǔ)卡間的通訊出口,存儲(chǔ)卡通訊端口具有高電平或低電平兩種電平狀態(tài)。
[0021]示例性的,在檢測(cè)到終端中存儲(chǔ)卡通訊端口由高電平切換為低電平或者由低電平切換為高電平時(shí),計(jì)算切換間隔時(shí)間。
[0022]步驟12、在所述切換間隔時(shí)間大于預(yù)設(shè)的時(shí)間閥值時(shí),檢測(cè)當(dāng)前存儲(chǔ)卡處于插入狀態(tài)或拔出狀態(tài)。
[0023]在本實(shí)施例中,時(shí)間閥值可以小于ls,例如時(shí)間閥值為1ms,以使用戶在時(shí)間閥值的時(shí)間長度內(nèi)無法完成對(duì)存儲(chǔ)卡的插拔操作。
[0024]可選的,計(jì)算切換間隔時(shí)間之后,還包括:在所述切換間隔時(shí)間小于所述間閥值時(shí),忽略該次電平狀態(tài)切換。
[0025]示例性的,只有在所述切換間隔時(shí)間大于預(yù)設(shè)的時(shí)間閥值時(shí),才檢測(cè)當(dāng)前存儲(chǔ)卡處于插入狀態(tài)或拔出狀態(tài),而在所述切換間隔時(shí)間小于預(yù)設(shè)的時(shí)間閥值時(shí),不檢測(cè)當(dāng)前的存儲(chǔ)卡狀態(tài)。相比于現(xiàn)有技術(shù)中只要檢測(cè)到終端中存儲(chǔ)卡通訊端口的電平狀態(tài)切換就檢測(cè)存儲(chǔ)卡狀態(tài),避免了在存儲(chǔ)卡通訊端口的頻繁高低電平切換時(shí)檢測(cè)存儲(chǔ)卡狀態(tài),即避免了存儲(chǔ)卡通訊端口的頻繁高低電平切換引起的掉卡或錯(cuò)誤插卡顯示。
[0026]本發(fā)明實(shí)施例提供的檢測(cè)終端存儲(chǔ)卡狀態(tài)的方法,通過只在存儲(chǔ)卡通訊端口的電平狀態(tài)切換,且切換間隔時(shí)間大于時(shí)間閥值時(shí),才檢測(cè)當(dāng)前存儲(chǔ)卡處于插入狀態(tài)或拔出狀態(tài),避免了切換間隔時(shí)間小于時(shí)間閥值時(shí)檢測(cè)終端存儲(chǔ)卡狀態(tài),即該方法避免了存儲(chǔ)卡通訊端口的頻繁高低電平切換引起的掉卡或錯(cuò)誤插卡顯示。
[0027]實(shí)施例二
[0028]本實(shí)施例在上述實(shí)施例的基礎(chǔ)上提供了一種新的檢測(cè)終端存儲(chǔ)卡狀態(tài)的方法。圖2為本發(fā)明實(shí)施例二提供的一種檢測(cè)終端存儲(chǔ)卡狀態(tài)的方法的流程示意圖,如圖2所示,該實(shí)現(xiàn)流程包括:
[0029]步驟21、在檢測(cè)到終端中存儲(chǔ)卡通訊端口的電平狀態(tài)切換時(shí),計(jì)算切換間隔時(shí)間。
[0030]在本實(shí)施例中,終端可以是諸如智能手機(jī)、電腦或者個(gè)人數(shù)字助理等之類的電子產(chǎn)品。終端具有用于放置存儲(chǔ)卡的卡槽,存儲(chǔ)卡可以是諸如TF卡或者SD卡之類的外置存儲(chǔ)卡。存儲(chǔ)卡通訊端口為終端CPU與外置存儲(chǔ)卡間的通訊出口,存儲(chǔ)卡通訊端口具有高電平或低電平兩種電平狀態(tài)。
[0031]示例性的,在檢測(cè)到終端中存儲(chǔ)卡通訊端口由高電平切換為低電平或由低電平切換為高電平時(shí),計(jì)算切換間隔時(shí)間。
[0032]可選的,在檢測(cè)到終端中存儲(chǔ)卡通訊端口的電平狀態(tài)切換時(shí),計(jì)算切換間隔時(shí)間,包括:在檢測(cè)到終端中存儲(chǔ)卡通訊端口的電平狀態(tài)切換時(shí),計(jì)算該次電平狀態(tài)切換對(duì)應(yīng)的第一電平切換時(shí)間與上一次電平狀態(tài)切換對(duì)應(yīng)的第二電平切換時(shí)間之間的差值,并將計(jì)算出的差值作為所述切換間隔時(shí)間。
[0033]可選的,計(jì)算切換間隔時(shí)間之后,還包括:在所述切換間隔時(shí)間小于所述時(shí)間閥值時(shí),忽略該次電平狀態(tài)切換。示例性的,在計(jì)算出的切換間隔時(shí)間小于所述時(shí)間閥值時(shí),不檢測(cè)存儲(chǔ)卡狀態(tài)也不記錄該次電平狀態(tài)以及該次電平切換時(shí)間。
[0034]步驟22、在所述切換間隔時(shí)間大于所述時(shí)間閥值時(shí),延時(shí)預(yù)設(shè)的時(shí)間長度。
[0035]在本實(shí)施例中,時(shí)間閥值可以小于ls,例如時(shí)間閥值為1ms,以使用戶在時(shí)間閥值時(shí)間內(nèi)無法完成對(duì)存儲(chǔ)卡的插拔操作。時(shí)間長度可以小于ls,例如時(shí)間長度可以為200ms。
[0036]步驟23、檢測(cè)當(dāng)前存儲(chǔ)卡處于插入狀態(tài)或拔出狀態(tài)。
[0037]可選的,檢測(cè)當(dāng)前存儲(chǔ)卡處于插入狀態(tài)或拔出狀態(tài),包括:
[0038]A、控制發(fā)送復(fù)位命令以檢測(cè)終端中是否插入有存儲(chǔ)卡。
[0039]示例性的,控制CPU發(fā)送只有存儲(chǔ)卡能夠識(shí)別的復(fù)位命令,在CPU接收到存儲(chǔ)卡對(duì)復(fù)位命令的響應(yīng)信息時(shí)確定終端中插入有存儲(chǔ)卡,即存儲(chǔ)卡為插入狀態(tài);在CPU接收不到存儲(chǔ)卡對(duì)復(fù)位命令的響應(yīng)信息時(shí)確定終端中未插入存儲(chǔ)卡,即存儲(chǔ)卡為拔出狀態(tài)。
[0040]B、在所述終端中插入有所述存儲(chǔ)卡時(shí),控制所述存儲(chǔ)卡進(jìn)入空閑模式。
[0041]示例性的,在所述終端中插入有所述存儲(chǔ)卡時(shí),CPU發(fā)送CMDO (Command,命令提示符)命令,讓存儲(chǔ)卡進(jìn)入IDLE (空閑)模型。
[0042]C、檢測(cè)所述存儲(chǔ)卡是否被拔出,若被拔出,則確定所述存儲(chǔ)卡處于拔出狀態(tài)并對(duì)所述存儲(chǔ)卡進(jìn)行下電操作;若未被拔出,則確定所述存儲(chǔ)卡處于插入狀態(tài),獲取所述存儲(chǔ)卡支持的電壓值,并根據(jù)獲取的電壓值對(duì)所述存儲(chǔ)卡進(jìn)行上電操作。
[0043]示例性的,CPU還可以發(fā)送CMD命令,檢測(cè)存儲(chǔ)卡是否被拔出,若被拔出,則確定存儲(chǔ)卡為移除狀態(tài),并對(duì)其進(jìn)行下電操作,以防止漏電;若未被拔出,則發(fā)送CMD8命令,獲取存儲(chǔ)卡支持的電壓值,對(duì)其進(jìn)行上電。
[0044]本實(shí)施在所述切換間隔時(shí)間大于所述時(shí)間閥值時(shí),延時(shí)一段時(shí)間再檢查存儲(chǔ)卡狀態(tài),進(jìn)一步避免了存儲(chǔ)卡通訊端口的電平抖動(dòng)引起的掉卡或錯(cuò)誤插卡顯示。
[0045]本發(fā)明實(shí)施例提供的檢測(cè)終端存儲(chǔ)卡狀態(tài)的方法,通過在存儲(chǔ)卡通訊端口的電平狀態(tài)切換,且切換間隔時(shí)間大于時(shí)間閥值時(shí),延時(shí)一段時(shí)間之后再檢測(cè)當(dāng)前存儲(chǔ)卡處于插入狀態(tài)或拔出狀態(tài),進(jìn)一步避免了存儲(chǔ)卡通訊端口的電平抖動(dòng)引起的掉卡或錯(cuò)誤插卡顯