專利名稱:通過(guò)gpio端口支持usb接口的嵌入式設(shè)備及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種支持USB接口的嵌入式設(shè)備及其方法。
背景技術(shù):
USB設(shè)備由于具有支持熱插拔,可連接多個(gè)設(shè)備,標(biāo)準(zhǔn)統(tǒng)一,攜帶方便等優(yōu)點(diǎn)被廣泛應(yīng)用, 支持USB接口的設(shè)備可非常方便的實(shí)現(xiàn)與電腦(PC)的數(shù)據(jù)交換。如圖l所示,現(xiàn)有技術(shù)中 支持USB接口的嵌入式設(shè)備,都內(nèi)置有USB控制器,USB接口中的數(shù)據(jù)端口和電源端口均與所 述USB控制器相連接,該USB控制器再與該嵌入式設(shè)備的微處理控制器相連接。在數(shù)據(jù)的接 收過(guò)程中,對(duì)USB電氣信號(hào)的接收、解析,信令協(xié)議的處理,差錯(cuò)處理及鏈路控制均由USB 控制器來(lái)完成,并將數(shù)據(jù)存儲(chǔ)在設(shè)置在USB控制器內(nèi)的寄存器中。當(dāng)USB控制器收到對(duì)應(yīng)端 點(diǎn)(End Point)的有效數(shù)據(jù)后,USB控制器發(fā)出中斷信號(hào),觸發(fā)所述微處理控制器進(jìn)入中斷, 通知應(yīng)用程序,訪問(wèn)寄存器來(lái)獲得收到的數(shù)據(jù)。在數(shù)據(jù)的發(fā)送過(guò)程中,待發(fā)送數(shù)據(jù)首先被存 儲(chǔ)在所述寄存器中,USB控制器完成對(duì)寄存器中數(shù)據(jù)的鏈路信令處理,生成USB差分信號(hào)后, 再進(jìn)行發(fā)送。知道發(fā)送結(jié)束,才由USB控制器發(fā)出中斷信號(hào),觸發(fā)所述微處理控制器進(jìn)入中 斷,通知應(yīng)用稃序。
但是目前有許多嵌入式CPU出于成本或其它原因靠慮,并沒(méi)有集成USB控制器。這樣不 能直接支持USB功能。使產(chǎn)品的功能點(diǎn)減少,給用戶造成不便,影響產(chǎn)品的市場(chǎng)競(jìng)爭(zhēng)力。雖 然可以采用增加單獨(dú)的USB控制器來(lái)擴(kuò)展設(shè)備功能,但增加USB控制器導(dǎo)致嵌入式設(shè)備成本 提高,功耗增加,印刷電路板面積增大,影響產(chǎn)品的外觀設(shè)計(jì)和競(jìng)爭(zhēng)力。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種通過(guò)GPIO端口支持USB接口的嵌入式設(shè)備及其方法,無(wú)需增加 USB控制器即可實(shí)現(xiàn)USB的功能。
一種通過(guò)GPIO端口支持USB接口的嵌入式設(shè)備,包括微處理控制器、USB接口、隨機(jī)存 儲(chǔ)器、只讀存儲(chǔ)器、吋鐘單元和電源管理單元;所述USB接口、隨機(jī)存儲(chǔ)器、只讀存儲(chǔ)器、 時(shí)鐘單元和電源管理單元均與所述微處理控制器相連接,所述USB接口包括第一數(shù)據(jù)端口 、 第二數(shù)據(jù)端口和電源端口;其特征在于所述微處理控制器包括第一GPIO端口、第二GPIO 端口,所述第一數(shù)據(jù)端口和第二數(shù)據(jù)端口分別與第一GPIO端口、第二GPIO端門(mén)相連接,所
述電源端口與所述電源管理單元相連接。
所述微處理控制器還包括第三GPIO端口 ,所述電源端口與所述第三GPIO端口相連接。 一種利用卜.述嵌入式設(shè)備實(shí)現(xiàn)通過(guò)GPIO端口支持USB接口的方法,步驟如下
1) 當(dāng)所述嵌入式設(shè)備連接到主機(jī)的數(shù)據(jù)總線卜.后,所述USB主機(jī)發(fā)出USB電平信號(hào)觸發(fā) 微處理控制器進(jìn)入中斷狀態(tài);
2) 、所述嵌入式設(shè)備對(duì)所述中斷信號(hào)進(jìn)行判斷,如果是復(fù)位信號(hào),所述嵌入式設(shè)備進(jìn)行 復(fù)位操作后退出中斷狀態(tài);如果不是復(fù)位信號(hào),則判斷是否為USB邊沿中斷信號(hào)如果是, 該嵌入式設(shè)備接收USB差分信號(hào)后退出中斷狀態(tài);如果否,則進(jìn)行與該中斷信號(hào)相應(yīng)的操作。
其中,所述接收L'SB差分信號(hào)的過(guò)程包括如下步驟
41) 、所述嵌入式設(shè)備對(duì)第一GPIO端口、第二GPIO端口上的USB差分信號(hào)進(jìn)行采樣;
42) 、所述微處理控制器對(duì)接收到的USB差分信號(hào)進(jìn)行解析和處理。 所述嵌入式設(shè)備在發(fā)送數(shù)據(jù)時(shí),所述微處理控制器進(jìn)入中斷狀態(tài)后,對(duì)待發(fā)送數(shù)據(jù)進(jìn)行
處理,鏈路控制及封包后,生成USB差分信號(hào),再利用所述第一GPIO端口、第二GPI0端口 同時(shí)輸出相反的電平來(lái)進(jìn)行發(fā)送。
本發(fā)明無(wú)需增加USB控制器,在進(jìn)行信號(hào)傳輸時(shí),該嵌入式設(shè)備的微處理控制器首先進(jìn) 入中斷狀態(tài),以利用該微處理控制器的GPIO端口接收和發(fā)送USB差分信號(hào),利用該微處理控 制器進(jìn)行信號(hào)的解析,信令協(xié)議的處理,差錯(cuò)處理及鏈路控制,利用該微處理器對(duì)待發(fā)送的 數(shù)據(jù)進(jìn)行處理生成USB差分信號(hào),經(jīng)解析處理或者待發(fā)送的數(shù)據(jù)存儲(chǔ)在較大存儲(chǔ)能力的隨機(jī) 存儲(chǔ)器中。這樣,嵌入式設(shè)備中無(wú)需再增加USB控制器來(lái)支持USB接口,節(jié)約了成本,可降 低功耗,減小印刷電路板的面積,使嵌入式設(shè)備更加美觀。另外當(dāng)數(shù)據(jù)量較大時(shí)也無(wú)需進(jìn)行 拆包,提高了工作效率。
圖1為現(xiàn)有技術(shù)中設(shè)有USB控制器的嵌入式設(shè)備結(jié)構(gòu)示意圖2為本發(fā)明實(shí)施例一的結(jié)構(gòu)示意圖3為本發(fā)明實(shí)施例二的結(jié)構(gòu)意圖4為本發(fā)明實(shí)施例三的中斷信號(hào)判斷示意圖5為本發(fā)明實(shí)施例三的采樣示意圖6為本發(fā)明實(shí)施例三的對(duì)USB差分信號(hào)進(jìn)行解析的示意圖; 圖7為本發(fā)明實(shí)施例二的SCTUP包處理流程示意圖8為本發(fā)明實(shí)施例三的IN包處理流程示意圖; 圖9為本發(fā)明實(shí)施例三的OUT包處理流程示意圖。
具體實(shí)施方式
實(shí)施例一
如圖2所示, 一種通過(guò)GPIO端口支持USB接口的嵌入式設(shè)備,包括微處理控制器、USB 接口、隨機(jī)存儲(chǔ)器、只讀存儲(chǔ)器、時(shí)鐘單元和電源管理單元;所述USB接口、隨機(jī)存儲(chǔ)器、 只讀存儲(chǔ)器、時(shí)鐘單元和電源管理單元均與所述微處理控制器相連接,所述USB接口包括第 一數(shù)據(jù)端口、第二數(shù)據(jù)端口和電源端口;其特征在于所述微處理控制器包括第一GPIO端口、 第二GPI0端口,所述第一數(shù)據(jù)端n和第二數(shù)據(jù)端口分別與第一GPIO端口、第二GPIO端口相 連接,所述電源端口與所述電源管理單元相連接。
當(dāng)嵌入式設(shè)備通過(guò)USB電纜與USR主機(jī)相連接時(shí),所述第一 GPIO端口與第二 GPIO端口 通過(guò)USB接口的第一數(shù)據(jù)端口及第二數(shù)據(jù)端口分別與USB電纜中的兩根數(shù)據(jù)線(D+、 D-)相 連接;所述電源管理單兀通過(guò)USB接口的電源端口與USB電纜中的電源線(VBUS)相連接。所 述USB主機(jī)可以是電腦(PC),所述嵌入式設(shè)備可以是亍-機(jī)。
進(jìn)一步的,所述微處理控制器還包括第四GPIO端口,所述第四GPIO端口與上拉或者下 拉電阻相連接,控制該上拉或者下拉電阻與所述數(shù)據(jù)端口相連接。當(dāng)該嵌入式設(shè)備通過(guò)USB 電纜與USB主機(jī)相連接時(shí),所述第四GPIO端口的控制所述上拉或者下拉電阻與USB電纜的數(shù) 據(jù)線相連接,所述LSB主機(jī)通過(guò)對(duì)該上拉或者下拉電阻的檢測(cè),即可判斷出該嵌入式設(shè)備是 否已經(jīng)連接到該USB主機(jī)的數(shù)據(jù)總線上。
實(shí)施例二
如圖3所示, 一種通過(guò)GPIO端口支持USB接口的嵌入式設(shè)備,除下列技術(shù)特征外,其余 均與實(shí)施例一屮所描述的技術(shù)特征相同。
所述微處理控制器還包括第三GPIO端口 ,所述電源端口不與所述電源管理申.元相連接, 而是與所述第三GPIO端口相連接。當(dāng)嵌入式設(shè)備通過(guò)USB電纜與USB主機(jī)相連接時(shí),所述第 三GPIO端口通過(guò)USB接口的電源端口與USB電纜中的電源線(VBUS)相連接。
實(shí)施例三
如圖4所示, 一種通過(guò)GP10端口支持USB接口的方法,其特征在于實(shí)施例一或二中所
描述的嵌入式設(shè)備,步驟如下
1) 當(dāng)所述嵌入式設(shè)備連接到USB主機(jī)的數(shù)據(jù)總線上時(shí),所述USB主機(jī)引起所述USB電纜 中電源線上的電壓變化,如果此時(shí)該嵌入式設(shè)備未開(kāi)機(jī),該電壓變化首先引起該嵌入式設(shè)備 丌機(jī),再進(jìn)入中斷狀態(tài)。如果此時(shí)該嵌入式設(shè)備為開(kāi)機(jī)狀態(tài),則直接引起該嵌入式設(shè)備進(jìn)入 中斷狀態(tài)。在該中斷狀態(tài)下,所述嵌入式設(shè)備首先判斷該中斷的原因是否是由所述電源線上 的電壓變化引起,如果足,該嵌入式設(shè)備通過(guò)所述第四GPIO驅(qū)動(dòng)上拉或者下拉電阻連接到所 述USB電纜的數(shù)據(jù)線上,通知USB主機(jī)該嵌入式設(shè)備已連接。隨后,所述USB主機(jī)通過(guò)所述 USB電纜的兩數(shù)據(jù)線再次發(fā)送USB差分電氣信號(hào),該USB差分信號(hào)通過(guò)處于中斷模式的第一 GPI0端口、第二GPIO端口觸發(fā)所述微處理控制器再次進(jìn)入中斷狀態(tài)。該數(shù)據(jù)線傳輸?shù)闹袛嘈?號(hào)有三種情況,分別為復(fù)位信號(hào),該中斷信號(hào)的電平持續(xù)時(shí)間超過(guò)10毫秒;USB邊沿中斷 信號(hào),該中斷信號(hào)為USB差分信號(hào)的第一個(gè)電平跳變;其他信號(hào)。
2) 、所述嵌入式設(shè)備對(duì)所述中斷信號(hào)進(jìn)行判斷,如果是復(fù)位信號(hào),所述嵌入式設(shè)備進(jìn)行 復(fù)位操作后退出中斷狀態(tài);如果不是復(fù)位信號(hào),則判斷是否為USB邊沿中斷信號(hào)如果是, 該嵌入式設(shè)備接收USB差分信號(hào)后退出中斷狀態(tài);如果否,則進(jìn)行與該中斷信號(hào)相應(yīng)的操作 該操作與本技術(shù)方案無(wú)關(guān),這里不進(jìn)行描述。
進(jìn)一步的,所述接收USB差分信號(hào)的過(guò)程包括如卜一步驟
41) 、所述嵌入式設(shè)備對(duì)第一GPIO端口、第二GPIO端U上的USB差分信號(hào)進(jìn)行采樣;
42) 、所述微處理控制器對(duì)接收到的USB差分信號(hào)進(jìn)行解析和處理。 如圖5所示,所述步驟41)包括
411) 、根據(jù)所述USB差分信號(hào)的位周期T,設(shè)定采樣時(shí)間間隔t, t《T;
412) 、所述微處理控制器進(jìn)入中斷后,從同步信號(hào)的電平跳變邊沿開(kāi)始每隔L進(jìn)行一次 采樣。由于所述電源端口的電平跳變與所述微處理控制器進(jìn)入中斷之間存在延時(shí),所以第-次采樣的時(shí)間為所述微處理控制器實(shí)際進(jìn)入中斷后,所述第一 GPIO端口及第二 GPIO端口上 的同步信號(hào)的電平跳變邊沿。
由于在具體的執(zhí)行環(huán)境下,所述微處理微控制器執(zhí)行周期、時(shí)鐘頻率及所述數(shù)據(jù)包中電 平的位周期均為固定且可知的,可以通過(guò)調(diào)整所述微處理微控制器執(zhí)行指令的序列來(lái)精確控 制第一次采樣的時(shí)間點(diǎn)以及采樣時(shí)間間隔t。這樣,可以根據(jù)需要在每一位電平信號(hào)的中間位 置進(jìn)行一次采樣,也可以對(duì)每一位電平信號(hào)進(jìn)行多次采樣,將每一位電平信號(hào)多次采樣的平 均值作為該位電平信號(hào)的采樣值。另外,由于采樣所需要的時(shí)間很短,對(duì)每一位電平信弓進(jìn) 行采樣的時(shí)間小于該電平信號(hào)傳輸?shù)膮奸g,所以每一位電平傳輸?shù)腲閑時(shí)間內(nèi),所述微處理
微控制器可以進(jìn)行校驗(yàn)、解碼等操作,也可以在該空閑時(shí)間插入些空的指令,使采樣和數(shù) 據(jù)傳輸更好的保持同步。
如圖6所示,所述步驟42)包括
421) 、所述微處理控制器判斷所述USB差分信號(hào)中的令牌域(Token)是否正確,如果是, 進(jìn)行步驟422);如果否,結(jié)束接收LSB差分信號(hào),退出中斷;
422) 、所述微處理控制器判斷所述該USB差分信號(hào)中的設(shè)備地址是否正確,如果是,進(jìn) 行歩驟423);如果否,結(jié)束接收USB差分信號(hào),退出中斷;
423) 、所述微處理控制器判斷所述USB差分信號(hào)是否為有效的SETUP信號(hào),如果是,所 述微處理控制器器對(duì)解析出的數(shù)據(jù)包進(jìn)行SETUP包處理如果否,進(jìn)行步驟424);
424) 、所述微處理控制器判斷所述嵌入式設(shè)備的接收端口是否錯(cuò)誤,如果是,所述微處 理控制器通過(guò)所述第一 GPIO端U及第二 GPIO端口向所述USB主機(jī)發(fā)送STALL握手信號(hào);如 果否,進(jìn)行步驟425);
425) 、所述微處理控制器判斷所述數(shù)據(jù)信號(hào)是否為有效的IN信號(hào),如果是,所述微處理 控制器對(duì)解析出的數(shù)據(jù)包進(jìn)行IN包處理;如果否,進(jìn)行步驟426);
426) 、所述微處理控制器判斷所述數(shù)據(jù)信號(hào)是否為有效的OUT信號(hào),如果是,所述微處 理控制器對(duì)解析出的數(shù)據(jù)包進(jìn)行OUT包處理;如果否,進(jìn)行錯(cuò)誤處理后,結(jié)束接收USB差分 信號(hào),退出中斷;
進(jìn)一歩的,所述步驟423)中包括一校驗(yàn)判斷步驟如果所述USB差分信號(hào)為有效的SETUP 信號(hào),則對(duì)該SETUP包進(jìn)行數(shù)據(jù)完整性校驗(yàn),如果校驗(yàn)成功,所述微處理控制器通過(guò)所述第 一 GPIO端口及第二 GPIO端口向所述USB主機(jī)發(fā)送ACK信號(hào)后進(jìn)行SETUP包處理;如果校驗(yàn) 失敗,直接退出中斷狀態(tài)。
進(jìn)一步的,所述步驟426)中包括一校驗(yàn)判斷步驟如果所述USB差分信號(hào)為有效的OUT 信號(hào),則對(duì)該OUT包進(jìn)行數(shù)據(jù)完整性校驗(yàn),如果校驗(yàn)成功,所述微處理控制器通過(guò)所述第一 GPIO端口及第二 GPIO端口向所述USB主機(jī)發(fā)送ACK信號(hào)后進(jìn)行OUT包處理;如果校驗(yàn)失敗, 所述微處理控制器通過(guò)所述第一 GPIO端口及第二 GPIO端口向所述USB牛.機(jī)發(fā)送NAK信號(hào)。 如圖7所示,所述步驟423)中的SETUP包處理具體包括如卜'步驟 4231 )、所述隨機(jī)存儲(chǔ)器中與所述USB主機(jī)的默認(rèn)端點(diǎn)相對(duì)應(yīng)的對(duì)象進(jìn)行初始化; 4232)、所述微處理控制器將所述對(duì)象設(shè)置為SETUP狀態(tài);這樣,所述USB主機(jī)可獲得該 嵌入式設(shè)備的類型、狀態(tài)、通信協(xié)議版本及傳輸信息,以完成所述USB主機(jī)與所述嵌入式設(shè) 備的通訊。
4233) 、所述微處理控制器將所述數(shù)據(jù)包中的數(shù)據(jù)保存在所述對(duì)象中;
4234) 、設(shè)置SETUP事件;
4235) 、結(jié)束SETUP包處理過(guò)程。
如圖8所示,所述步驟425)中IN包處理原理和具體歩驟如下 處理原理
USB主機(jī)通過(guò)發(fā)出IN包來(lái)通知USB設(shè)備向LSB主機(jī)發(fā)送數(shù)據(jù)。每個(gè)IN包傳輸期間, 只能向USB主機(jī)傳送固定長(zhǎng)度的數(shù)據(jù)。如果有大量數(shù)據(jù)要傳輸,USB主機(jī)會(huì)發(fā)出多個(gè)IN包 來(lái)獲取。當(dāng)USB主機(jī)發(fā)出IN包后,USB設(shè)備需要作出響應(yīng),如果有數(shù)據(jù)要傳輸,則發(fā)送數(shù)據(jù) 到USB主機(jī),如果沒(méi)有數(shù)據(jù)要傳輸(數(shù)據(jù)還沒(méi)有準(zhǔn)備好),則返回NAK到USB主機(jī),通知USB 主機(jī)稍后再重新發(fā)起這次操作。
具體步驟如下
4251) 所述微處理控制器檢測(cè)所述發(fā)送緩沖區(qū)是否準(zhǔn)備好待發(fā)送數(shù)據(jù),如果是,進(jìn)行歩 驟4253);如果否,進(jìn)行歩驟4252);
4252) 、所述嵌入式設(shè)備通過(guò)所述第一 GPIO端口、第二 GPIO端口向所述USB主機(jī)發(fā)送NAK 握手信號(hào)后,進(jìn)行歩驟4258);
4253) 、所述嵌入式設(shè)備通過(guò)所述第一GPIO端U、第二GPIO端U發(fā)出所述發(fā)送緩沖區(qū)中 的數(shù)據(jù);
4254) 、所述微處理控制器等待USB主機(jī)發(fā)出的握手信號(hào),如果在協(xié)議規(guī)定時(shí)間內(nèi)等到, 進(jìn)行歩驟4255);如果超時(shí),進(jìn)行步驟4258);
4255) 、所述微處理控制器判斷收到的握手信號(hào)是否為ACK信號(hào),如果是,進(jìn)行步驟4256); 如果否,進(jìn)行步驟4258);
4256) 、所述微處理控制判斷是否將緩沖區(qū)里面的數(shù)據(jù)是否都已經(jīng)全部發(fā)送完成,如果是, 進(jìn)行歩驟4257,如果否進(jìn)行步驟4258;
4257) 、微處理器控制器設(shè)置數(shù)據(jù)發(fā)送完成事件;
4258) 、結(jié)束IN包處理過(guò)程。
如圖9所示,所述步驟426)中的OUT包處理原理和具休歩驟如下 處理原理USB主機(jī)通過(guò)OUT包來(lái)向設(shè)備發(fā)送數(shù)據(jù)。依照USB協(xié)議,每個(gè)OUT包只能攜 帶固定長(zhǎng)度的數(shù)據(jù)(Payload),當(dāng)有大量數(shù)據(jù)耍發(fā)送時(shí),USB主機(jī)將這些數(shù)據(jù)拆到許多OUT包 中來(lái)傳送。USB設(shè)備需要對(duì)每一個(gè)OUT包作出響應(yīng),如果能正常接收,就向USB主機(jī)返回ACK 信號(hào);如果設(shè)備忙,緩沖區(qū)中的數(shù)據(jù)還未處理完,就向USB主機(jī)返回NAK信號(hào);USB主機(jī)會(huì)等
待一段時(shí)間后重新發(fā)送這個(gè)OUT包。 具體歩驟如下
4261) 、所述微處理控制器檢測(cè)所述接收緩沖區(qū)中與主機(jī)響應(yīng)所述嵌入式設(shè)備的端點(diǎn)相對(duì) 應(yīng)的對(duì)象接收緩沖區(qū)是否己滿,如果未滿,進(jìn)行步驟4263);如果已滿,進(jìn)行步驟4262)
4262) 、所述微處理控制器通過(guò)所述第一GPIO端口、第二GPIO端口向所述USB主機(jī)發(fā)送 NAK握手信號(hào),轉(zhuǎn)4267);
4263) 、微處理控制器將所述數(shù)據(jù)包中的數(shù)據(jù)保存到所述接收緩沖區(qū);
4264) 、微處理控制器通過(guò)所述第一GPIO端口、第一GPIO端口向所述USB主機(jī)發(fā)送ACK 握手信號(hào);
4265) 、微處理器判斷接收緩沖區(qū)是否滿,如果未滿,轉(zhuǎn)4267);
4266) 、設(shè)置接收緩沖區(qū)滿事件;
4267) 、結(jié)束OUT包處理過(guò)程。
所述嵌入式設(shè)備在發(fā)送數(shù)據(jù)時(shí),利用所述微處理控制器對(duì)待發(fā)送數(shù)據(jù)進(jìn)行鏈路信令處理, 通過(guò)所述第一 GPIO端口、第二 GP10端口同時(shí)輸出相反的電平模擬USB差分信號(hào)進(jìn)行發(fā)送。
以上所述的SETUP、 IN、 0UT、 STALL、 ACK、 NAK均為USB信號(hào)的分組標(biāo)識(shí),用來(lái)標(biāo)識(shí)操 作的屬性。所述SETUP、 IN、 OUT均用來(lái)標(biāo)識(shí)出端點(diǎn)號(hào)和地址;所述STALL表示端點(diǎn)被禁止; 所述ACK表示接收到無(wú)誤的數(shù)據(jù)信號(hào);所述NAK表示接收設(shè)備不能接收。
權(quán)利要求
1、一種通過(guò)GPIO端口支持USB接口的嵌入式設(shè)備,包括微處理控制器、USB接口、隨機(jī)存儲(chǔ)器、只讀存儲(chǔ)器、時(shí)鐘單元和電源管理單元;所述USB接口、隨機(jī)存儲(chǔ)器、只讀存儲(chǔ)器、時(shí)鐘單元和電源管理單元均與所述微處理控制器相連接,所述USB接口包括第一數(shù)據(jù)端口、第二數(shù)據(jù)端口和電源端口;其特征在于所述微處理控制器包括第一GPIO端口、第二GPIO端口,所述第一數(shù)據(jù)端口和第二數(shù)據(jù)端口分別與第一GPIO端口、第二GPIO端口相連接,所述電源端口與所述電源管理單元相連接。
2、 如權(quán)利要求1所述的通過(guò)GPIO端口支持USB接口的嵌入式設(shè)備,其特征在于所述 微處理控制器還包括第三GPIO端口 ,所述電源端口與所述第三GPIO端口相連接。
3、 一種通過(guò)GPIO端口支持USB接口的方法,其特征在于利用權(quán)利要求1或2中所描 述的嵌入式設(shè)備,步驟如下-1) 當(dāng)所述嵌入式設(shè)備連接到USB豐機(jī)的數(shù)據(jù)總線上后,所述USB主機(jī)發(fā)出USB電平信號(hào) 觸發(fā)微處理控制器進(jìn)入中斷狀態(tài);2) 、所述嵌入式設(shè)備對(duì)所述中斷信號(hào)進(jìn)行判斷,如果是復(fù)位信號(hào),所述嵌入式設(shè)備進(jìn)行 復(fù)位操作后退出中斷狀態(tài);如果不是復(fù)位信號(hào),則判斷是否為USB邊沿中斷信號(hào)如果是, 該嵌入式設(shè)備接收USB差分信號(hào)后退出中斷狀態(tài);如果否,則進(jìn)行與該中斷信號(hào)相應(yīng)的操作。
4、 如權(quán)利要求3所述的通過(guò)GPI0端口支持USB接n的方法,其特征在于所述接收USB 差分信號(hào)的過(guò)程包括如下歩驟41) 、所述嵌入式設(shè)備對(duì)第一GPIO端口、第二GPIO端口上的USB差分信號(hào)進(jìn)行采樣;42) 、所述微處理控制器對(duì)接收到的USB差分信號(hào)進(jìn)行解析和處理。
5、 如權(quán)利要求4所述的通過(guò)GPIO端口支持USB接口的方法,其特征在于所述歩驟41) 包括411) 、根據(jù)所述USB差分信號(hào)的位周期T,設(shè)定采樣時(shí)間間隔t, t《T;412) 、所述微處理控制器進(jìn)入中斷后,從同步信號(hào)的電平跳變邊沿開(kāi)始每隔t進(jìn)行一次 采樣。
6、 如權(quán)利要求4所述的通過(guò)GPI0端口支持USB接口的方法,其特征在于所述步驟42) 包括421) 、所述微處理控制器判斷所述USB差分信號(hào)中的令牌域是否正確,如果是,進(jìn)行步 驟422);如果否,結(jié)束接收USB差分信號(hào),退出中斷;422) 、所述微處理控制器判斷所述該USB差分信號(hào)中的設(shè)備地址是否正確,如果是,進(jìn) 行步驟423);如果否,結(jié)束接收USB差分信號(hào),退出屮斷;423) 、所述微處理控制器判斷所述USB差分信號(hào)是否為有效的SETUP信號(hào),如果是,所 述微處理控制器器對(duì)解析出的數(shù)據(jù)包進(jìn)行SETUP包處理;如果否,進(jìn)行步驟424);424) 、所述微處理控制器判斷所述嵌入式設(shè)備的接收端口是否錯(cuò)誤,如果是,所述微處 理控制器通過(guò)所述第一 GPIO端口及第二 GPIO端n向所述USB主機(jī)發(fā)送STALL握手信號(hào);如 果否,進(jìn)行歩驟425);425) 、所述微處理控制器判斷所述數(shù)據(jù)信號(hào)是否為有效的IN信號(hào),如果是,所述微處理 控制器對(duì)解析出的數(shù)據(jù)包進(jìn)行IN包處理;如果否,進(jìn)行步驟426);426) 、所述微處理控制器判斷所述數(shù)據(jù)信號(hào)是否為有效的OUT信號(hào),如果是,所述微處 理控制器對(duì)解析出的數(shù)據(jù)包進(jìn)行OUT包處理;如果否,進(jìn)行錯(cuò)誤處理后,轉(zhuǎn)步驟結(jié)束接收USB 差分信號(hào),退出中斷。
7、 如權(quán)利要求6所述的通過(guò)GPIO端口支持USB接口的方法,其特征在于所述步驟423) 中包括一校驗(yàn)判斷歩驟如果所述USB差分信號(hào)為有效的SETUP信號(hào),則對(duì)該SETUP包進(jìn)行 數(shù)據(jù)完整性校驗(yàn),如果校驗(yàn)成功,所述微處理控制器通過(guò)所述第一 GPIO端口及第二 GPIO端 口向所述USB主機(jī)發(fā)送ACK信號(hào)后進(jìn)行SETUP包處理;如果校驗(yàn)失敗,直接退出中斷狀態(tài)。
8、 如權(quán)利要求6所述的通過(guò)GPIO端口支持USB接口的方法,其特征在于所述歩驟426) 中包括一校驗(yàn)判斷步驟如果所述USB差分信號(hào)為有效的OUT信號(hào),則對(duì)該OUT包進(jìn)行數(shù)據(jù) 完整性校驗(yàn),如果校驗(yàn)成功,所述微處理控制器通過(guò)所述第一GPIO端口及第二GPIO端口向 所述USB主機(jī)發(fā)送ACK信號(hào)后進(jìn)行OUT包處理;如果校驗(yàn)失敗,所述微處理控制器通過(guò)所述 第一 GPIO端口及第二 GPIO端口向所述USB主機(jī)發(fā)送NAK信號(hào)。
9、 如權(quán)利要求6所述的通過(guò)GPIO端口支持USB接n的方法,其特征在于所述步驟423) 中的SETUP包處理具體包括如下步驟4231 )、所述隨機(jī)存儲(chǔ)器中與所述USB主機(jī)的默認(rèn)端點(diǎn)相對(duì)應(yīng)的對(duì)象進(jìn)行初始化;4232) 、所述微處理控制器將所述對(duì)象設(shè)置為SETUP狀態(tài);這樣,所述主機(jī)可獲得該嵌入 式設(shè)備的類型、狀態(tài)、通信協(xié)議版本及傳輸信息,以完成所述主機(jī)與所述嵌入式設(shè)備的通訊;4233) 、所述微處理控制器將所述數(shù)據(jù)包中的數(shù)據(jù)保存在所述對(duì)象中;4234) 、設(shè)置SETUP事件;4235) 、結(jié)束SETUP包處理過(guò)程。
10、 如權(quán)利要求7所述的通過(guò)GPIO端口支持USB接口的方法,其特征在于所述歩驟425) 中IN包處理具體包括如下步驟4251)所述微處理控制器檢測(cè)所述發(fā)送緩沖區(qū)是否準(zhǔn)備好待發(fā)送數(shù)據(jù),如果足,進(jìn)行步 驟4253):如果否,進(jìn)行步驟4252);4252 )、所述嵌入式設(shè)備通過(guò)所述第一 GPIO端口 、第二 GPIO端口向所述USB主機(jī)發(fā)送NAK 握手信號(hào)后,進(jìn)行步驟4258);4253) 、所述嵌入式設(shè)備通過(guò)所述第一GPIO端口、第二GPIO端口發(fā)出所述發(fā)送緩沖區(qū)中 的數(shù)據(jù);4254) 、所述微處理控制器等待USB主機(jī)發(fā)出的握手信號(hào),如果在協(xié)議規(guī)定時(shí)間內(nèi)等到, 進(jìn)行歩驟4255);如果超時(shí),進(jìn)行步驟4258);4255) 、所述微處理控制器判斷收到的握手信號(hào)是否為ACK信號(hào),如果是,進(jìn)行步驟4256); 如果否,進(jìn)行步驟4258);4256) 、所述微處理控制判斷是否將緩沖區(qū)里面的數(shù)據(jù)是否都已經(jīng)全部發(fā)送完成,如果是, 進(jìn)行步驟4257,如果否進(jìn)行歩驟4258;4257) 、微處理器控制器設(shè)置數(shù)據(jù)發(fā)送完成事件;4258) 、結(jié)束IN包處理過(guò)程。
11、如權(quán)利要求7所述的通過(guò)GPI0端口支持USB接口的方法,所述步驟426)屮的OUT 包處理具體包括如下歩驟4261 )、所述微處理控制器檢測(cè)所述接收緩沖區(qū)中與主機(jī)響應(yīng)所述嵌入式設(shè)備的端點(diǎn)相對(duì) 應(yīng)的對(duì)象接收緩沖區(qū)是否已滿,如果未滿,進(jìn)行步驟4263);如果已滿,進(jìn)行歩驟4262)4262) 、所述微處理控制器通過(guò)所述第一GPIO端口、第二GPIO端口向所述USB主機(jī)發(fā)送 NAK握手信號(hào),轉(zhuǎn)4267);4263) 、微處理控制器將所述數(shù)據(jù)包中的數(shù)據(jù)保存到所述接收緩沖區(qū);4264) 、微處理控制器通過(guò)所述第一GP10端口、第二GPIO端口向所述USB主機(jī)發(fā)送ACK握1M言號(hào);4265) 、微處理器判斷接收緩沖區(qū)是否滿,如果未滿,轉(zhuǎn)化67);4266) 、設(shè)置接收緩沖區(qū)滿事件;4267) 、結(jié)束OUT包處理過(guò)程。
全文摘要
本發(fā)明公開(kāi)了一種通過(guò)GPIO端口支持USB接口的嵌入式設(shè)備及方法,其特征在于所述第一數(shù)據(jù)端口和第二數(shù)據(jù)端口分別與第一GPIO端口、第二GPIO端口相連接,所述電源端口與所述電源管理單元或者第三GPIO端口相連接。在進(jìn)行信號(hào)傳輸時(shí),該嵌入式設(shè)備的微處理控制器首先進(jìn)入中斷狀態(tài),以利用該微處理控制器的GPIO端口接收和發(fā)送USB差分信號(hào),利用該微處理控制器進(jìn)行信號(hào)或者數(shù)據(jù)的處理并將數(shù)據(jù)存儲(chǔ)在具有大存儲(chǔ)能力的隨機(jī)存儲(chǔ)器中。這樣,嵌入式設(shè)備中無(wú)需設(shè)置USB控制器,節(jié)約了成本,可降低功耗,減小印刷電路板的面積,使嵌入式設(shè)備更加美觀。另外當(dāng)數(shù)據(jù)量較大時(shí)也無(wú)需進(jìn)行拆包,提高了工作效率。
文檔編號(hào)G06F13/38GK101393542SQ200810200890
公開(kāi)日2009年3月25日 申請(qǐng)日期2008年10月8日 優(yōu)先權(quán)日2008年10月8日
發(fā)明者剛 倪, 濮贊嶺, 種文軒 申請(qǐng)人:上海華勤通訊技術(shù)有限公司