專利名稱:一種基于通用輸入輸出口實(shí)現(xiàn)手機(jī)usb功能的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種實(shí)現(xiàn)手機(jī)USB功能的新方法,尤其涉及手機(jī)利用兩個(gè)GPIO口 (General Purpose Input/Output即通用輸入輸出,簡稱10 口 ), 一個(gè)中斷來實(shí)現(xiàn)USB (Universal Serial Bus通用串行總線)功能的方法。
背景技術(shù):
以往的手機(jī)U盤功能是通過增加一塊USB控制芯片或基帶芯片內(nèi)部集成USB控制器來實(shí)現(xiàn)USB采樣和一些底層的協(xié)議分析,上層的協(xié)議才由軟件負(fù)責(zé)。對于一些低端的手機(jī)基帶芯片本身并不帶USB功能,增加USB控制器會(huì)帶來成本的提高,如果能用軟件的方法來實(shí)現(xiàn)采樣和底層協(xié)議的分析,那么將會(huì)有效降低生產(chǎn)成本。
發(fā)明內(nèi)容
針對已有技術(shù)的不足,本發(fā)明的目的在于提供一種基于輸入輸出口,一個(gè)中斷來
實(shí)現(xiàn)手機(jī)USB功能的方法,該方法簡單,成本低。 本發(fā)明的發(fā)明目的是通過如下技術(shù)方案實(shí)現(xiàn)的 —種基于輸入輸出口實(shí)現(xiàn)手機(jī)USB功能的方法,該方法包括手機(jī)的通用輸入輸出口分別連接USB差分?jǐn)?shù)據(jù)正信號和USB差分?jǐn)?shù)據(jù)負(fù)信號,USB差分?jǐn)?shù)據(jù)正信號還連著一個(gè)外部中斷口; 當(dāng)接收數(shù)據(jù)的時(shí)候,USB的同步前導(dǎo)碼發(fā)送過來時(shí)觸發(fā)了采樣中斷,開始進(jìn)行采樣,通過兩個(gè)通用輸入輸出口采集電平的變換,等待同步前導(dǎo)碼結(jié)束;采樣后進(jìn)行協(xié)議處理; 當(dāng)發(fā)送數(shù)據(jù)的時(shí)候,先發(fā)送同步前導(dǎo)碼,根據(jù)USB協(xié)議,對電平進(jìn)行改變,直到發(fā)送數(shù)據(jù)結(jié)束。 在采樣時(shí),通過精確計(jì)算采樣代碼的耗時(shí),來使得所有的采樣點(diǎn)都能落在USB數(shù)據(jù)有效范圍內(nèi)。 在處理協(xié)議時(shí),行寫操作時(shí),通過中斷觸發(fā)來回復(fù)PC端NAK信號,進(jìn)行讀操作時(shí)在代碼的固定位置(即時(shí)序上固定位置)插入等待USB信號并返回NAK的代碼。
USB的數(shù)據(jù)傳輸速率是根據(jù)總線帶寬動(dòng)態(tài)調(diào)整的,對于在進(jìn)行大范圍數(shù)據(jù)傳輸?shù)臅r(shí)候,采樣時(shí)間點(diǎn)的安排,需要進(jìn)行精確測試和計(jì)算。 本發(fā)明利用兩個(gè)GPIO口和一個(gè)中斷來進(jìn)行USB數(shù)據(jù)的采樣,采用匯編語言來實(shí)現(xiàn)USB底層的數(shù)據(jù)采樣,用C語言實(shí)現(xiàn)USB上層協(xié)議的實(shí)現(xiàn),整個(gè)采用軟件實(shí)現(xiàn),無需增加硬件。利用USB的大容量存儲(chǔ)協(xié)議來完成U盤的所有功能。 本發(fā)明可以在實(shí)際使用中省去專用的USB芯片,可以使手機(jī)的成本得到有效下降
圖1為本發(fā)明的結(jié)構(gòu)示意3
圖2為本發(fā)明的采樣周期 圖3為本發(fā)明的數(shù)據(jù)接收流程 圖4為本發(fā)明的數(shù)據(jù)發(fā)送流程圖。
具體實(shí)施例方式
下面結(jié)合附圖1-圖4進(jìn)一步說明本發(fā)明是如何實(shí)現(xiàn)的 實(shí)施例 USB的理論速率 USB1. 1低速1. 5Mbits,除去開銷約0. 8Mbits,理論速率在100Kbytes左右。
如果按照1. 5MBits的速率,按照手機(jī)基帶ARM7 52MHz主頻(Advanced RISCMachine高級精簡指令集機(jī)器)的CPU,每個(gè)Bit有34. 6個(gè)CPU時(shí)鐘周期,那么如果CPU的處理速度足夠快,是完全可以采用GPIO采樣實(shí)現(xiàn)慢速USB。當(dāng)然這個(gè)時(shí)候?qū)PU的消耗很大,可能不能進(jìn)行其他的操作??梢詫?shí)現(xiàn)關(guān)機(jī)U盤的功能。我們運(yùn)用精確的指令加延時(shí)來完成對USB的采樣。 可以使用沿觸發(fā)中斷來開始進(jìn)行采樣,通過同步前導(dǎo)碼來進(jìn)行時(shí)鐘同步,這樣的話實(shí)現(xiàn)較為簡單。 如圖1所示,GPIO 口分別連接USB的DP (Differential-Plus, D+, USB差分?jǐn)?shù)據(jù)正信號),DM(Differential-mi皿s, D_, USB差分?jǐn)?shù)據(jù)負(fù)信號)。DP還連著一個(gè)外部中斷口 。當(dāng)USB的同步前導(dǎo)碼發(fā)送的時(shí)候,會(huì)觸發(fā)中斷,然后就通過兩個(gè)GPIO采集電平的變換。
如圖2所示,在采樣周期內(nèi)取一點(diǎn)對DP,匿進(jìn)行采樣。通過對在涉及采樣的程序部分,根據(jù)ARM (Advanced RISC Machines)匯編指令進(jìn)行精確計(jì)算,使得所有的采樣點(diǎn)都能落在USB數(shù)據(jù)有效范圍內(nèi)。 在處理協(xié)議的時(shí)候,由于USB的時(shí)序要求很苛刻,在進(jìn)行文件寫操作的時(shí)候,通過中斷觸發(fā)來回復(fù)PC端NAK信號,來增加延遲。并且在文件寫操作失敗的時(shí)候,根據(jù)協(xié)議進(jìn)行相應(yīng)的操作。而當(dāng)在進(jìn)行文件讀操作的時(shí)候,我們僅在代碼的固定地方(在時(shí)間軸上來看,就是固定的時(shí)間點(diǎn))等待PC的要求讀取數(shù)據(jù)的請求,并恢復(fù)NAK信號。
由于USB的數(shù)據(jù)傳輸是根據(jù)總線帶寬動(dòng)態(tài)調(diào)整的,對于在進(jìn)行大范圍數(shù)據(jù)傳輸?shù)臅r(shí)候,采樣時(shí)間點(diǎn)的安排,需要進(jìn)行精確測試和計(jì)算。 如圖3流程所示,接收數(shù)據(jù)的時(shí)候,同步前導(dǎo)碼發(fā)送過來時(shí)觸發(fā)了采樣中斷,開始進(jìn)行采樣,等待同步前導(dǎo)碼結(jié)束。如流程所示,根據(jù)USB協(xié)議,如果電平有變化,確定該bit位為O,無變化則為l,依次接受該包所有字節(jié)內(nèi)容,直到收到結(jié)束標(biāo)志SEO (Single EndedZero)或者收到的字節(jié)數(shù)超出包的最大長度限制,其間需要注意USB協(xié)議的填充規(guī)則,和采樣周期的精確調(diào)整。 如圖4流程所示,發(fā)送數(shù)據(jù)的時(shí)候,由于發(fā)送數(shù)據(jù)包之前必須要先同步,所以先發(fā)送同步前導(dǎo)碼,其發(fā)送規(guī)則和后面的數(shù)據(jù)是一樣的,根據(jù)USB協(xié)議,該bit位為l,則維持和前一位bit電平一致,該bit位為0,則改變電平,其間需要注意USB協(xié)議的填充規(guī)則和采樣周期的精確調(diào)整,直到發(fā)送數(shù)據(jù)結(jié)束,發(fā)送結(jié)束標(biāo)志SEO。
權(quán)利要求
一種基于通用輸入輸出口實(shí)現(xiàn)手機(jī)USB功能的方法,該方法包括手機(jī)的通用輸入輸出口分別連接USB差分?jǐn)?shù)據(jù)正信號和USB差分?jǐn)?shù)據(jù)負(fù)信號,USB差分?jǐn)?shù)據(jù)正信號還連著一個(gè)外部中斷口;當(dāng)接收數(shù)據(jù)的時(shí)候,USB的同步前導(dǎo)碼發(fā)送過來時(shí)觸發(fā)了采樣中斷,開始進(jìn)行采樣,通過兩個(gè)通用輸入輸出口采集電平的變換,等待同步前導(dǎo)碼結(jié)束;采樣后進(jìn)行協(xié)議處理;當(dāng)發(fā)送數(shù)據(jù)的時(shí)候,先發(fā)送同步前導(dǎo)碼,根據(jù)USB協(xié)議,對電平進(jìn)行改變,直到發(fā)送數(shù)據(jù)結(jié)束。
2. 根據(jù)權(quán)利要求1所述的一種基于通用輸入輸出口實(shí)現(xiàn)手機(jī)USB功能的方法,其特征 是在采樣時(shí),通過精確計(jì)算采樣代碼的耗時(shí),來使得所有的采樣點(diǎn)都能落在USB數(shù)據(jù)有效 范圍內(nèi)。
3. 根據(jù)權(quán)利要求1所述的一種基于通用輸入輸出口實(shí)現(xiàn)手機(jī)USB功能的方法,其特征 在于在處理協(xié)議時(shí),行寫操作時(shí),通過中斷觸發(fā)來回復(fù)PC端NAK信號。
4. 根據(jù)權(quán)利要求1所述的一種基于通用輸入輸出口實(shí)現(xiàn)手機(jī)USB功能的方法,其特征 在于在處理協(xié)議時(shí),進(jìn)行讀操作時(shí)在代碼的固定位置入等待USB信號并返回NAK的代碼。
5. 根據(jù)權(quán)利要求1所述的一種基于通用輸入輸出口實(shí)現(xiàn)手機(jī)USB功能的方法,其特征 在于USB的數(shù)據(jù)傳輸速率是根據(jù)總線帶寬動(dòng)態(tài)調(diào)整的,對于在進(jìn)行大范圍數(shù)據(jù)傳輸?shù)臅r(shí) 候,采樣時(shí)間點(diǎn)的安排,需要進(jìn)行精確測試和計(jì)算。
全文摘要
本發(fā)明公開了一種基于通用輸入輸出口口實(shí)現(xiàn)U盤的功能,通過兩個(gè)GPIO口和一個(gè)外部中斷來完成USB的采樣,協(xié)議處理,數(shù)據(jù)傳輸,來實(shí)現(xiàn)完整的U盤功能。本發(fā)明可以在實(shí)際使用中省去專用的USB芯片,可以使手機(jī)的成本得到有效下降。
文檔編號G06F13/40GK101739376SQ20081020295
公開日2010年6月16日 申請日期2008年11月19日 優(yōu)先權(quán)日2008年11月19日
發(fā)明者張征磊, 楊恒 申請人:龍旗科技(上海)有限公司