專利名稱:一種基于usb磁盤的設(shè)備間通信的電路及方法
技術(shù)領(lǐng)域:
本發(fā)明實(shí)施例主要涉及嵌入式計(jì)算機(jī)技術(shù)應(yīng)用領(lǐng)域,特別是在嵌入式計(jì)算機(jī)硬件環(huán)境下利用虛擬USB磁盤及FAT文件系統(tǒng)實(shí)現(xiàn)嵌入式設(shè)備與嵌入式設(shè)備之間,嵌入式設(shè)備與上位機(jī)間相互通信的電路及方法。
背景技術(shù):
目前,USB磁盤被廣泛使用,幾乎所有的計(jì)算機(jī)操作系統(tǒng)均內(nèi)含USB磁盤驅(qū)動(dòng)程序。因此如果采用USB磁盤接口及通信協(xié)議結(jié)合通用的文件系統(tǒng)傳輸協(xié)議,實(shí)現(xiàn)嵌入式設(shè)備與嵌入式設(shè)備之間、嵌入式設(shè)備與上位機(jī)間基于數(shù)據(jù)文件相互交換的雙向通信,可以避免設(shè)備間由于操作系統(tǒng)版本不同、應(yīng)用程序不同從而導(dǎo)致需要對(duì)應(yīng)安裝相應(yīng)的驅(qū)動(dòng)程序或通信協(xié)議,實(shí)現(xiàn)良好的互配性,將會(huì)給用戶在使用上帶來(lái)極大的方便。但是由于在標(biāo)準(zhǔn)的 USB磁盤接口及通信協(xié)議中,USB磁盤接口分為“HOST”主機(jī)端和“CLIENT”客戶機(jī)端,USB 磁盤的存儲(chǔ)空間被映射在“CLIENT”客戶機(jī)端?!癏OST”主機(jī)端可以采用文件下載的方式,通過(guò)標(biāo)準(zhǔn)的USB磁盤接口及通信協(xié)議方便地改變位于“CLIENT”客戶機(jī)端USB磁盤的存儲(chǔ)空間上的數(shù)據(jù),實(shí)現(xiàn)從“HOST”主機(jī)端到“CLIENT”客戶機(jī)端的數(shù)據(jù)傳送。而“CLIENT”客戶機(jī)端由于受到標(biāo)準(zhǔn)的USB磁盤通信協(xié)議以及操作系統(tǒng)中磁盤數(shù)據(jù)緩存管理機(jī)制的限制,本地 USB磁盤的存儲(chǔ)空間上的數(shù)據(jù)改變無(wú)法及時(shí)地通知“HOST”主機(jī)端。導(dǎo)致無(wú)法利用USB磁盤接口及通信協(xié)議來(lái)實(shí)現(xiàn)“CLIENT”客戶機(jī)端設(shè)備與“HOST”主機(jī)端設(shè)備之間的相互通信。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明實(shí)施例提出了一種基于USB磁盤的設(shè)備間相互通信的電路及方法。通過(guò)對(duì)“CLIENT”客戶機(jī)端USB磁盤硬件接口電路及相關(guān)驅(qū)動(dòng)程序的修改,實(shí)現(xiàn) “CLIENT”客戶機(jī)端在本地USB磁盤的存儲(chǔ)空間上的數(shù)據(jù)文件變動(dòng)后,“CLIENT”客戶機(jī)端可以強(qiáng)制通知“HOST”主機(jī)端設(shè)備接收,從而實(shí)現(xiàn)“CLIENT”客戶機(jī)端設(shè)備與“HOST”主機(jī)端設(shè)備之間在兼容標(biāo)準(zhǔn)的USB磁盤接口及通信協(xié)議的前提下的相互通信。本發(fā)明實(shí)施例解決其技術(shù)問(wèn)題所采用的技術(shù)方案是修改“CLIENT”客戶機(jī)端USB磁盤硬件接口電路及相關(guān)驅(qū)動(dòng)程序,令其在“CLIENT” 客戶機(jī)端設(shè)備將準(zhǔn)備傳輸給“HOST”主機(jī)端設(shè)備的有關(guān)數(shù)據(jù)按磁盤文件系統(tǒng)規(guī)定格式存放在本地USB磁盤的存儲(chǔ)空間上后,在“CLIENT”客戶機(jī)端設(shè)備啟動(dòng)下述操作如果本地的“CLIENT”客戶機(jī)端USB硬件接口設(shè)備的“D+”端口不能在線即時(shí)定義成GPIO輸出狀態(tài)的情況下,修改本地的“CLIENT”客戶機(jī)端USB硬件接口設(shè)備的相關(guān)電路,將一個(gè)“CLIENT”客戶機(jī)端處理器的GPIO腳定義為輸出控制信號(hào),將另一個(gè)GPIO腳定義為低電平輸出腳,與原“CLIENT”客戶機(jī)端USB “D+”端口通過(guò)雙向多路器的切換,形成新的USB端口 “D+”端口。平時(shí)通過(guò)該客戶機(jī)端的輸出控制信號(hào)將新的USB端口 “D+”端口與原USB “D+”端口接通,不影響原USB “D+”端口的正常工作。此時(shí)通過(guò)該客戶機(jī)端的輸出控制信號(hào)將新的USB端口 “D+”端口與低電平輸出GPIO接通,強(qiáng)迫該端口輸出低電平。
如果本地的“CLIENT”客戶機(jī)端USB硬件接口設(shè)備的“D+”可以被在線即時(shí)定義成 GPIO輸出狀態(tài)的情況下,則上述步驟被簡(jiǎn)化為將本地的“CLIENT”客戶機(jī)端USB硬件接口設(shè)備的“D+”端口在線即時(shí)定義成GPIO輸出端,并且令該端口輸出為低電位,使得本地的 “ CLIENT,,客戶機(jī)端USB硬件接口設(shè)備的“D+ ”端口輸出為低電位。維持本地的“ CLIENT ”客戶機(jī)端USB硬件接口設(shè)備的“D+ ”端口輸出低電平20毫秒以上。根據(jù)標(biāo)準(zhǔn)的USB磁盤接口及通信協(xié)議中的有關(guān)約定,“HOST”主機(jī)端設(shè)備檢測(cè)到正在與其連接的“CLIENT”客戶機(jī)端USB “D+”端口輸出為恒定低電平時(shí),會(huì)視為“CLIENT”客戶機(jī)被強(qiáng)制撤離,“HOST”主機(jī)端磁盤接口程序?qū)㈥P(guān)閉對(duì)應(yīng)的磁盤緩存區(qū),退出與該“CLIENT” 客戶機(jī)端的USB磁盤連接狀態(tài),進(jìn)入空閑狀態(tài)。重新設(shè)置本地的“CLIENT”客戶機(jī)端USB硬件接口,使其USB硬件接口的“D+”端口輸出狀態(tài)恢復(fù)正常USB通信狀態(tài)。此時(shí)該“D+”端口會(huì)呈現(xiàn)高電平上拉輸出。根據(jù)標(biāo)準(zhǔn)的 USB磁盤接口及通信協(xié)議中的有關(guān)約定,如果“HOST”主機(jī)端設(shè)備在空閑狀態(tài)下檢測(cè)到連接到“CLIENT”客戶機(jī)端的USB “D+”端口輸出變?yōu)楦唠娖綍r(shí),會(huì)視為“CLIENT”客戶機(jī)端重新接入U(xiǎn)SB磁盤,此時(shí)“HOST”主機(jī)端程序?qū)⒅匦麻_(kāi)始進(jìn)行相關(guān)的USB磁盤加載過(guò)程,并重新把更新后的USB磁盤數(shù)據(jù)(FAT表、根目錄等)讀入磁盤緩存區(qū)。而“HOST”主機(jī)端可以通過(guò)檢查存放在“CLIENT”客戶機(jī)端USB磁盤空間中預(yù)先約定的文件屬性(文件名、擴(kuò)展名、 修改時(shí)間等等)所發(fā)生的更新和變動(dòng),即時(shí)對(duì)新的USB磁盤數(shù)據(jù)文件進(jìn)行上傳讀入,從而完成“CLIENT”客戶機(jī)端設(shè)備對(duì)“HOST”主機(jī)端設(shè)備的主動(dòng)數(shù)據(jù)傳輸。本發(fā)明實(shí)施例的有益效果是,通過(guò)對(duì)“CLIENT”客戶機(jī)端USB磁盤接口的硬件和軟件程序進(jìn)行改動(dòng),在兼容標(biāo)準(zhǔn)的USB磁盤接口及通信協(xié)議的前提下,實(shí)現(xiàn)USB磁盤“CLIENT” 客戶機(jī)設(shè)備與“HOST”主機(jī)端設(shè)備之間基于數(shù)據(jù)文件操作的相互通信。
為了更進(jìn)清楚的說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例中描述中所需要使用的附圖做簡(jiǎn)要介紹。圖1示出了本發(fā)明實(shí)施例的“CLIENT”客戶機(jī)端硬件電路修改示意圖。圖2示出了本發(fā)明實(shí)施例的執(zhí)行方法流程圖。
具體實(shí)施例方式“HOST”主機(jī)端設(shè)備對(duì)“CLIENT”客戶機(jī)端設(shè)備的下行數(shù)據(jù)傳輸流程按照標(biāo)準(zhǔn)的 USB磁盤接口及通信協(xié)議方式不變。圖2示出了 “CLIENT”客戶機(jī)端設(shè)備對(duì)“HOST”主機(jī)端設(shè)備的上行數(shù)據(jù)傳輸方式流程示意圖100。在圖2中,首先本地的“CLIENT”客戶機(jī)端與“HOST”主機(jī)端硬件連接并分別通過(guò)軟件協(xié)議完成設(shè)備初始化步驟Clio步驟H110和建立USB磁盤連接步驟C120步驟H120。上傳數(shù)據(jù)傳輸開(kāi)始時(shí),本地的“CLIENT”客戶機(jī)端將準(zhǔn)備傳送的數(shù)據(jù)文件,以磁盤文件的形式,按照約定格式存放到本地的USB磁盤的存儲(chǔ)空間中步驟C130。然后將本地的“CLIENT”客戶機(jī)端USB硬件接口設(shè)備的“D+”端口強(qiáng)制定義轉(zhuǎn)換成為恒定低電平輸出狀態(tài),并延時(shí)保持20毫秒以上步驟C140。根據(jù)標(biāo)準(zhǔn)的USB磁盤接口及通信協(xié)議中的有關(guān)約定,“HOST”主機(jī)端設(shè)備檢測(cè)到正在與其連接的“CLIENT”客戶機(jī)端USB “D+”端口輸出為恒定低電平時(shí),會(huì)視為“CLIENT”客戶機(jī)被強(qiáng)制撤離,“HOST”主機(jī)端磁盤接口程序?qū)㈥P(guān)閉對(duì)應(yīng)的磁盤緩存區(qū),退出與該“CLIENT”客戶機(jī)端的USB磁盤連接狀態(tài)進(jìn)入空閑狀態(tài)步驟 H130。接著設(shè)置本地的“CLIENT”客戶機(jī)端USB硬件接口設(shè)備的“D+”端口恢復(fù)為正常工作狀態(tài)步驟C150。此時(shí)該“D+”端口會(huì)呈現(xiàn)上拉高電平輸出。根據(jù)標(biāo)準(zhǔn)的USB磁盤接口及通信協(xié)議中的有關(guān)約定,“HOST”主機(jī)端設(shè)備在空閑狀態(tài)下檢測(cè)到連接到“CLIENT”客戶機(jī)端的USB “D+”端口輸出變?yōu)楦唠娢粫r(shí),會(huì)視為“CLIENT”客戶機(jī)重新接入,此時(shí)“HOST”主機(jī)端程序?qū)⒅匦麻_(kāi)始進(jìn)行設(shè)備初始化步驟C160步驟H140和建立USB磁盤連接步驟 C170步驟H150等一系列的USB磁盤加載過(guò)程,并重新把更新后的USB磁盤數(shù)據(jù)(FAT 表、根目錄等)讀入磁盤緩存區(qū)。而“HOST”主機(jī)端可以通過(guò)檢查存放在“CLIENT”客戶機(jī)端USB磁盤空間中預(yù)先約定的文件屬性(文件名、擴(kuò)展名、修改時(shí)間等等)所發(fā)生的更新和變動(dòng),即時(shí)對(duì)新的USB磁盤數(shù)據(jù)文件進(jìn)行上傳讀入步驟H160。從而完成本地的“CLIENT” 客戶機(jī)端設(shè)備對(duì)“HOST”主機(jī)端設(shè)備的主動(dòng)數(shù)據(jù)傳輸。上述說(shuō)明為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則內(nèi),所作的任何修改、替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種基于USB磁盤的設(shè)備間通信的電路及方法,其特征在于包括對(duì)USB磁盤設(shè)備的“CLIENT”客戶機(jī)端接口電路進(jìn)行修改,使之在正常的USB磁盤設(shè)備連接狀態(tài)下,可編程強(qiáng)制改變其USB “D+”端口的屬性及狀態(tài)。從而實(shí)現(xiàn)在“CLIENT”客戶機(jī)端操縱及控制該“CLIENT”客戶機(jī)端與“HOST”主機(jī)端的USB磁盤設(shè)備連接狀態(tài)。
2.根據(jù)權(quán)利要求1所述的基于USB磁盤的設(shè)備間通信的電路及方法,其特征在于還包括USB磁盤設(shè)備的“CLIENT”客戶機(jī)端程序可以通過(guò)相關(guān)電路,強(qiáng)制其USB “D+”端口進(jìn)入恒定低電平輸出狀態(tài),從而使該“CLIENT”客戶機(jī)端退出與“HOST”主機(jī)端的USB磁盤設(shè)備連接狀態(tài)。
3.根據(jù)權(quán)利要求1所述的基于USB磁盤的設(shè)備間通信的電路及方法,其特征在于還包括USB磁盤設(shè)備的“CLIENT”客戶機(jī)端程序可以通過(guò)相關(guān)電路,強(qiáng)制其USB “D+”端口從恒定低電平輸出狀態(tài)恢復(fù)到正常的USB通信狀態(tài),從而使“HOST”主機(jī)端的USB磁盤設(shè)備重新與該“CLIENT”客戶機(jī)端USB磁盤設(shè)備恢復(fù)建立正常連接連接狀態(tài)。
4.根據(jù)權(quán)利要求1所述的基于USB磁盤的設(shè)備間通信的電路及方法,其特征在于還包括“HOST”主機(jī)端的應(yīng)用程序,可以通過(guò)檢查存放在“CLIENT”客戶機(jī)端USB磁盤空間中預(yù)先約定的文件屬性(文件名、擴(kuò)展名、修改時(shí)間等等)所發(fā)生的更新和變動(dòng),即時(shí)對(duì)新的USB 磁盤數(shù)據(jù)文件進(jìn)行上傳讀入,從而完成“CLIENT”客戶機(jī)端設(shè)備對(duì)“HOST”主機(jī)端設(shè)備的主動(dòng)數(shù)據(jù)傳輸。
全文摘要
本發(fā)明實(shí)施例提出了一種基于USB磁盤的設(shè)備間通信的電路及方法。通過(guò)對(duì)“CLIENT”客戶機(jī)端USB磁盤硬件接口及相關(guān)驅(qū)動(dòng)程序的修改,實(shí)現(xiàn)“CLIENT”客戶機(jī)端在本地USB磁盤的存儲(chǔ)空間上的數(shù)據(jù)文件變動(dòng)后,“CLIENT”客戶機(jī)端可以強(qiáng)制通知“HOST”主機(jī)端設(shè)備接收,從而實(shí)現(xiàn)“CLIENT”客戶機(jī)端設(shè)備與“HOST”主機(jī)端設(shè)備之間在兼容標(biāo)準(zhǔn)的USB磁盤接口及通信協(xié)議的前提下的相互通信。
文檔編號(hào)G06F13/38GK102169469SQ20111008693
公開(kāi)日2011年8月31日 申請(qǐng)日期2011年4月7日 優(yōu)先權(quán)日2011年4月7日
發(fā)明者柴可 申請(qǐng)人:柴可