無ID pin做USB OTG功能的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)數(shù)據(jù)通訊領(lǐng)域,特別是涉及無ID pin做USB OTG功能的方法及
>J-U ρ?α裝直。
【背景技術(shù)】
[0002]隨著便攜式設(shè)備的發(fā)展,用戶對(duì)便攜式設(shè)備的體驗(yàn)要求也越來越高,用戶想便攜式設(shè)備同時(shí)具有做主設(shè)備和從設(shè)備的功能;當(dāng)接上U盤時(shí)能做主設(shè)備,讀取U盤里的數(shù)據(jù),當(dāng)連接到電腦時(shí)做從設(shè)備,能與電腦進(jìn)行數(shù)據(jù)通信。
[0003]目前具有USB (Universal Serial Bus,通用串行總線)0TG (On The Go)功能的產(chǎn)品在進(jìn)行主從識(shí)別時(shí)基本都是根據(jù)ID pin( IDentity Personal Identificat1n Number,個(gè)人身份碼)的高低電平狀態(tài)實(shí)現(xiàn)的,當(dāng)ID pin為低電平時(shí),自動(dòng)切換為主設(shè)備模式;當(dāng)IDpin為高電平時(shí),自動(dòng)切換為從設(shè)備模式。而當(dāng)外圍電路的GP1 (General Purpose InputOutput,通用輸入輸出)pin較少時(shí),就會(huì)限制了該功能。
【發(fā)明內(nèi)容】
[0004]針對(duì)現(xiàn)有技術(shù)中外圍電路的GP1 pin較少時(shí),就會(huì)限制主從設(shè)備自動(dòng)切換功能的問題,本發(fā)明提供了一種不需要ID pin也可以實(shí)現(xiàn)主從設(shè)備自動(dòng)切換功能的無ID pin做USB OTG功能的方法及裝置。
[0005]為達(dá)到技術(shù)目的,本發(fā)明實(shí)施例采用如下技術(shù)方案:
[0006]本發(fā)明提供一種無ID pin做USB OTG功能的方法,包括以下步驟:
[0007]當(dāng)USB控制器處于空閑狀態(tài)時(shí),輪詢檢測(cè)USB數(shù)據(jù)接口 ;
[0008]判斷是否檢測(cè)到USB數(shù)據(jù)接口的主機(jī)中斷請(qǐng)求信號(hào);
[0009]或者判斷USB數(shù)據(jù)接口所在數(shù)據(jù)線dm和dp是否都處于下拉低電平狀態(tài);
[0010]當(dāng)檢測(cè)到主機(jī)中斷請(qǐng)求信號(hào)時(shí),則驅(qū)動(dòng)USB控制器為主設(shè)備;
[0011]當(dāng)USB數(shù)據(jù)接口所在數(shù)據(jù)線dm和dp都處于下拉低電平狀態(tài)時(shí),則驅(qū)動(dòng)USB控制器為從設(shè)備。
[0012]作為一種可實(shí)施例,所述當(dāng)檢測(cè)到主機(jī)中斷請(qǐng)求信號(hào)時(shí),則驅(qū)動(dòng)USB控制器為主設(shè)備,包括如下步驟:
[0013]加載主設(shè)備驅(qū)動(dòng)信號(hào),驅(qū)動(dòng)USB控制器為主設(shè)備;
[0014]判斷是否出現(xiàn)主設(shè)備的斷開信號(hào);
[0015]若是,卸載主設(shè)備驅(qū)動(dòng)信號(hào),設(shè)置USB控制器為空閑狀態(tài);
[0016]否則,返回繼續(xù)驅(qū)動(dòng)USB控制器處于主設(shè)備工作狀態(tài)。
[0017]作為一種可實(shí)施例,所述當(dāng)USB數(shù)據(jù)接口所在數(shù)據(jù)線dm和dp都處于下拉低電平狀態(tài)時(shí),則驅(qū)動(dòng)USB控制器為從設(shè)備,包括如下步驟:
[0018]加載從設(shè)備驅(qū)動(dòng)信號(hào),驅(qū)動(dòng)USB控制器為從設(shè)備;
[0019]判斷是否出現(xiàn)從設(shè)備的斷開信號(hào);
[0020]若是,卸載從設(shè)備驅(qū)動(dòng)信號(hào),設(shè)置USB控制器為空閑狀態(tài);
[0021]否則,返回繼續(xù)驅(qū)動(dòng)USB控制器處于從設(shè)備工作狀態(tài)。
[0022]作為一種可實(shí)施例,所述當(dāng)USB控制器處于空閑狀態(tài)時(shí),輪詢檢測(cè)USB數(shù)據(jù)接口之前,包括如下步驟:
[0023]啟動(dòng)主設(shè)備檢測(cè);
[0024]判斷USB控制器是否處于空閑狀態(tài);
[0025]若USB控制器處于空閑狀態(tài),開啟USB控制器為主設(shè)備控制器;
[0026]若USB控制器沒有處于空閑狀態(tài)或者USB控制器處于空閑狀態(tài)但未檢測(cè)到USB數(shù)據(jù)接口有主機(jī)中斷請(qǐng)求信號(hào),啟動(dòng)從設(shè)備檢測(cè)。
[0027]作為一種可實(shí)施例,當(dāng)驅(qū)動(dòng)USB控制器為主設(shè)備或者從設(shè)備時(shí),不對(duì)USB數(shù)據(jù)接口進(jìn)行輪詢檢測(cè)。
[0028]本發(fā)明還提供一種無ID pin做USB OTG功能的裝置,包括檢測(cè)模塊,第一判斷模塊,主設(shè)備模塊和從設(shè)備模塊,其中:
[0029]所述檢測(cè)模塊,用于當(dāng)USB控制器處于空閑狀態(tài)時(shí),輪詢檢測(cè)USB數(shù)據(jù)接口 ;
[0030]所述第一判斷模塊,用于判斷是否檢測(cè)到USB數(shù)據(jù)接口的主機(jī)中斷請(qǐng)求信號(hào),或者判斷USB數(shù)據(jù)接口所在數(shù)據(jù)線dm和dp是否都處于下拉低電平狀態(tài);
[0031]所述主設(shè)備模塊,用于當(dāng)檢測(cè)到主機(jī)中斷請(qǐng)求信號(hào)時(shí),則驅(qū)動(dòng)USB控制器為主設(shè)備;
[0032]所述從設(shè)備模塊,用于當(dāng)USB數(shù)據(jù)接口所在數(shù)據(jù)線dm和dp都處于下拉低電平狀態(tài)時(shí),則驅(qū)動(dòng)USB控制器為從設(shè)備。
[0033]作為一種可實(shí)施例,包括第一加載模塊和第二判斷模塊;
[0034]所述第一加載模塊,用于加載主設(shè)備驅(qū)動(dòng)信號(hào),驅(qū)動(dòng)USB控制器為主設(shè)備;
[0035]所述第二判斷模塊,用于判斷是否出現(xiàn)主設(shè)備的斷開信號(hào);
[0036]若是,卸載主設(shè)備驅(qū)動(dòng)信號(hào),設(shè)置USB控制器為空閑狀態(tài);
[0037]否則,返回繼續(xù)驅(qū)動(dòng)USB控制器處于主設(shè)備工作狀態(tài)。
[0038]作為一種可實(shí)施例,包括第二加載模塊和第三判斷模塊;
[0039]所述第二加載模塊,用于加載從設(shè)備驅(qū)動(dòng)信號(hào),驅(qū)動(dòng)USB控制器為從設(shè)備;
[0040]所述第三判斷模塊,用于判斷是否出現(xiàn)從設(shè)備的斷開信號(hào);
[0041]若是,卸載從設(shè)備驅(qū)動(dòng)信號(hào),設(shè)置USB控制器為空閑狀態(tài);
[0042]否則,返回繼續(xù)驅(qū)動(dòng)USB控制器處于從設(shè)備工作狀態(tài)。
[0043]作為一種可實(shí)施例,還包括啟動(dòng)模塊和第四判斷模塊;
[0044]所述啟動(dòng)模塊,用于啟動(dòng)主設(shè)備檢測(cè);
[0045]所述第四判斷模塊,用于判斷USB控制器是否處于空閑狀態(tài);
[0046]若USB控制器處于空閑狀態(tài),開啟USB控制器為主設(shè)備控制器;
[0047]若USB控制器沒有處于空閑狀態(tài)或者USB控制器處于空閑狀態(tài)但未檢測(cè)到USB數(shù)據(jù)接口有主機(jī)中斷請(qǐng)求信號(hào),啟動(dòng)從設(shè)備檢測(cè)。
[0048]本發(fā)明的有益效果:
[0049]本發(fā)明的無ID pin做USB OTG功能的方法及裝置,在USB控制器處于空閑狀態(tài)時(shí),通過不斷輪詢檢測(cè)USB數(shù)據(jù)接口中是否出現(xiàn)主機(jī)中斷請(qǐng)求信號(hào)或者數(shù)據(jù)接口所在數(shù)據(jù)線dm和dp的pin電平是否都為低,從而驅(qū)動(dòng)USB控制器為主設(shè)備或從設(shè)備,即實(shí)現(xiàn)USB控制器的主從設(shè)備自動(dòng)切換功能,該方法在無ID pin做USB OTG功能的情況下實(shí)現(xiàn)了 USB OTG功能,既滿足了使用者對(duì)USB OTG功能的需求,又不需要ID pin,節(jié)省了 GP1 pin。
【附圖說明】
[0050]圖1為本發(fā)明的無ID pin做USB OTG功能的方法的一實(shí)施例的流程示意圖;
[0051]圖2為本發(fā)明的無ID pin做USB OTG功能的裝置的一實(shí)施例的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0052]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明無ID pin做USB OTG功能的方法及裝置進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0053]USB (Universal Serial Bus,通用串行總線)0TG (On The Go)技術(shù),是指具有 USB數(shù)據(jù)接口的設(shè)備在沒有計(jì)算機(jī)的條件下直接進(jìn)行數(shù)據(jù)通信的一種技術(shù),其目的是使外設(shè)設(shè)備以主機(jī)的身份與另外一組特定的外設(shè)設(shè)備直接進(jìn)行數(shù)據(jù)通信。
[0054]USB OTG規(guī)范包括以下幾點(diǎn):支持設(shè)備之間的點(diǎn)對(duì)點(diǎn)通信,尤其對(duì)于數(shù)據(jù)通信兩端的設(shè)備都支持USB OTG規(guī)范的情況,提出了支持主從角色自動(dòng)切換的主機(jī)流通協(xié)議HNP(Host Negotiat1n Protocol,主機(jī)協(xié)商協(xié)議),通過該主機(jī)協(xié)商協(xié)議確定主從設(shè)備,從而實(shí)現(xiàn)主從設(shè)備之間可靠的點(diǎn)對(duì)點(diǎn)通信。支持USB OTG規(guī)范的設(shè)備常被稱為雙角色設(shè)備(DRD,Dual Role Device),它們?cè)谂c其它作為主設(shè)備的外部設(shè)備連接時(shí),自動(dòng)切換為從設(shè)備模式;在與其它作為從設(shè)備的外部設(shè)備連接時(shí),自動(dòng)切換為主設(shè)備模式。
[0055]目前,具有USBOTG功能的設(shè)備一般都具有管腳ID,檢測(cè)模塊根據(jù)檢測(cè)的ID pin電平信號(hào)的高低,切換設(shè)備為主設(shè)備或者從設(shè)備,當(dāng)ID pin為低電平時(shí),自動(dòng)切換設(shè)備為主設(shè)備模式;當(dāng)ID pin為高電平時(shí),自動(dòng)切換設(shè)備為從設(shè)備模式。現(xiàn)有具有USB OTG功能的設(shè)備的ID pin與外圍電路的GP1 pin連接,當(dāng)外圍電路的GP1端口較少時(shí),就會(huì)影響限制設(shè)備的USB OTG功能。
[0056]隨著手持設(shè)備設(shè)計(jì)的越來越精巧,當(dāng)外圍設(shè)備的DP1端口較少時(shí),如何實(shí)現(xiàn)在無ID pin做USB OTG功能時(shí)實(shí)現(xiàn)USB OTG功能,被更多的使用者所需求。本發(fā)明設(shè)計(jì)的目的就是在無ID pin做USB OTG功能時(shí)實(shí)現(xiàn)主從自動(dòng)切換的功能。
[0057]實(shí)施例一
[0058]參見圖1所示,本發(fā)明實(shí)施例提供一種無ID pin做USB OTG功能的方法,【具體實(shí)施方式】如下:
[0059]作為一種可實(shí)施方式,所述當(dāng)USB控制器處于空閑狀態(tài)時(shí),輪詢檢測(cè)USB數(shù)據(jù)接口之前,包括如下步驟:
[0060]S100,啟動(dòng)主設(shè)備檢測(cè);
[0061]S200,判斷USB控制器是否處于空閑狀態(tài);
[0062]S210,若USB控制器處于空閑狀態(tài),開啟USB控制器為主設(shè)備控制器;
[0063]S220,若USB控制器沒有處于空閑狀態(tài)或者USB控制器處于空閑狀態(tài)但未檢測(cè)到USB數(shù)據(jù)接口有主機(jī)中斷請(qǐng)求信號(hào),啟動(dòng)從設(shè)備檢測(cè)。
[0064]本發(fā)明中在對(duì)USB數(shù)據(jù)接口不斷輪詢掃描過程中,先嘗試對(duì)主設(shè)備加載檢測(cè),判斷此時(shí)的USB控制器是否處于空閑狀態(tài),如果處于空閑狀態(tài),就使能主設(shè)備控制器,當(dāng)檢測(cè)到有從設(shè)備(如U盤)接入時(shí),USB控制器會(huì)產(chǎn)生一個(gè)主機(jī)中斷請(qǐng)求信號(hào),此時(shí)驅(qū)動(dòng)USB控制器為主設(shè)備;當(dāng)USB控制器沒有處于空閑狀態(tài)或者USB控制器處于空閑狀態(tài)但USB數(shù)據(jù)接口未出現(xiàn)主機(jī)中斷請(qǐng)求信號(hào)時(shí),則嘗試對(duì)從設(shè)備加載檢測(cè),進(jìn)行從設(shè)備的檢測(cè),當(dāng)USB控制器為空閑狀態(tài),又檢測(cè)數(shù)據(jù)線dm和dp都處于下拉低電平狀態(tài),就驅(qū)動(dòng)USB控制器為從設(shè)備,從而實(shí)現(xiàn)主從設(shè)備的自動(dòng)切換功能。
[0065]在對(duì)USB數(shù)據(jù)接口不斷輪詢掃描過程中,也可以先嘗試對(duì)從設(shè)備加載檢測(cè),判斷此時(shí)的USB控制器是否處于空閑狀態(tài),如果處于空閑狀態(tài),就使能從設(shè)備控制器,當(dāng)檢測(cè)到該USB控制器通過USB數(shù)據(jù)線連接到主設(shè)備(PC機(jī)),其中所在兩根數(shù)據(jù)線dm和dp都處于下拉低電平狀態(tài)時(shí),就驅(qū)動(dòng)USB控制器為從設(shè)備(當(dāng)不接USB數(shù)據(jù)線或者設(shè)備時(shí)數(shù)據(jù)線dm和dp為弱上拉高電平狀態(tài));當(dāng)USB控制器沒有處于空閑狀態(tài)或者USB控制器處于空閑狀態(tài)但未檢測(cè)到數(shù)據(jù)線dm和dp都處于下拉低電平狀態(tài)時(shí),則嘗試主設(shè)備加載檢測(cè),進(jìn)行主設(shè)備的檢測(cè),當(dāng)USB控制器為空閑狀態(tài),又檢測(cè)到USB數(shù)據(jù)接口的主機(jī)中斷請(qǐng)求信號(hào),就驅(qū)動(dòng)USB控制器為主設(shè)備,從而實(shí)現(xiàn)主從設(shè)備的自動(dòng)切換功能。
[0066]作為一種可實(shí)施方式,當(dāng)USB控制器處于空閑狀態(tài)時(shí),輪詢檢測(cè)USB數(shù)據(jù)接口 ;
[0067]S300,判斷是否檢測(cè)到USB數(shù)據(jù)接口的主機(jī)中斷請(qǐng)求信號(hào);
[0068]S600,或者判斷USB數(shù)據(jù)接口所在數(shù)據(jù)線dm(Data Minus,數(shù)據(jù)負(fù)信號(hào))和dp(DataPositive,數(shù)據(jù)正信號(hào))是否都處于下拉低電平狀態(tài);
[0069]當(dāng)出現(xiàn)主機(jī)中斷請(qǐng)求信號(hào)時(shí),則驅(qū)動(dòng)USB控制器為主設(shè)備;
[0070]當(dāng)USB數(shù)據(jù)接口所在數(shù)據(jù)線dm和dp都處于下拉低電平狀態(tài)時(shí),則驅(qū)動(dòng)USB控制器為從設(shè)備。<