基于lpc1768平臺的usb接口系統(tǒng)及實現(xiàn)方法
【專利摘要】本發(fā)明提供了一種基于LPC1768平臺的USB接口系統(tǒng),包括由LPC1768構(gòu)成的中央處理單元、第一USB接口和第二USB接口,且所述第一USB接口的總線供電端子連接有主機電源開關(guān);所述中央處理單元包括主從檢測模塊、中斷處理模塊、數(shù)據(jù)收發(fā)模塊,其中:所述主從檢測模塊,用于確定系統(tǒng)工作模式;所述中斷處理模塊和數(shù)據(jù)收發(fā)模塊根據(jù)系統(tǒng)工作模式按不同中斷模式進行數(shù)據(jù)收發(fā)。本發(fā)明還提供一種基于LPC1768平臺的USB接口實現(xiàn)方法。本發(fā)明通過設(shè)置兩個USB接口并根據(jù)該兩個接口的連接狀態(tài)和上位機選擇的模式,實現(xiàn)了能夠同時支持USB主站和USB從站的功能,并簡化了電路、降低了軟件的復(fù)雜度。
【專利說明】基于LPC1768平臺的USB接口系統(tǒng)及實現(xiàn)方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及領(lǐng)域,更具體地說,涉及一種基于LPC1768平臺的USB接口系統(tǒng)及實現(xiàn)方法。
【背景技術(shù)】
[0002]USB OTG主要應(yīng)用于各種不同的設(shè)備或移動設(shè)備間的聯(lián)接,以進行數(shù)據(jù)交換,例如PDA、移動電話等消費類電子產(chǎn)品。USB OTG標準在完全兼容USB2.0標準的基礎(chǔ)上,增添了電源管理(節(jié)省功耗)功能,其允許設(shè)備既可作為主機,也可作為外設(shè)操作(兩用0TG)。OTG兩用設(shè)備完全符合USB2.0標準,并可提供一定的主機檢測能力,支持主機通令協(xié)議(HNP)和對話請求協(xié)議(SRP)。
[0003]LPC1768芯片是NXP公司推出的基于ARMCortex_M3內(nèi)核的微控制器,其不僅能夠支持USB的主機(HOST)功能,也支持USB的設(shè)備(DEVICE)功能。在現(xiàn)有的采用LPC1768芯片的設(shè)備中,需通過增加ISP1301芯片使USB在OTG模式下支持USB的主機和從機功能,這不但增加了電路的復(fù)雜度和編程的難度,并且占用了大量CPU資源。
[0004]此外,目前也有專門的USB總線的通用接口芯片,同時支持USB主機方式和從機方式,如CH375,其對于USB存儲設(shè)備的應(yīng)用直接提供了數(shù)據(jù)塊的讀寫接口,并以512b的物理扇區(qū)為基本讀寫單位,從而將USB存儲設(shè)備簡化為一種外部數(shù)據(jù)存儲器,單片機可以自由讀寫USB存儲設(shè)備中的數(shù)據(jù),也可以自由定義其數(shù)據(jù)結(jié)構(gòu)。但是這些芯片不但增加了電路的復(fù)雜度,也增加了成本。
【發(fā)明內(nèi)容】
[0005]本發(fā)明要解決的技術(shù)問題在于,針對上述USB主機、從機功能實現(xiàn)電路復(fù)雜、成本較高的問題,提供一種基于LPC1768平臺的USB接口系統(tǒng)及實現(xiàn)方法。
[0006]本發(fā)明解決上述技術(shù)問題的技術(shù)方案是,提供一種基于LPC1768平臺的USB接口系統(tǒng),包括由LPC1768構(gòu)成的中央處理單元,該USB接口系統(tǒng)還包括差分信號端子分別連接到中央處理單元的相同引腳的第一 USB接口和第二 USB接口,且所述第一 USB接口的總線供電端子連接有主機電源開關(guān);所述中央處理單元包括主從檢測模塊、中斷處理模塊、數(shù)據(jù)收發(fā)模塊,其中:
[0007]所述主從檢測模塊,用于根據(jù)所述第一 USB接口和第二 USB接口的連接狀態(tài)及上位機選擇的模式確定系統(tǒng)工作模式,所述工作模式包括主站模式和從站模式;
[0008]所述中斷處理模塊,用于在接收到數(shù)據(jù)或有數(shù)據(jù)要發(fā)送時,根據(jù)系統(tǒng)工作模式進入主站中斷模式或從站中斷模式;所述中斷處理模塊在主站中斷模式時讀取主機中斷寄存器并使數(shù)據(jù)收發(fā)模塊執(zhí)行端口事件處理操作、在從站中斷模式時讀取設(shè)備中斷寄存器并使數(shù)據(jù)收發(fā)模塊執(zhí)行收發(fā)數(shù)據(jù)操作。
[0009]在本發(fā)明所述的基于LPC1768平臺的USB接口系統(tǒng)中,所述數(shù)據(jù)收發(fā)模塊的端口事件處理操作包括:讀取端口事件、置事件標志、回寫TD控制器狀態(tài)及清除中斷標志;所述數(shù)據(jù)收發(fā)模塊的收發(fā)數(shù)據(jù)操作包括:控制端點接收數(shù)據(jù)處理、控制端點發(fā)送數(shù)據(jù)處理、邏輯端點接收數(shù)據(jù)處理、邏輯端點發(fā)送數(shù)據(jù)處理。
[0010]在本發(fā)明所述的基于LPC1768平臺的USB接口系統(tǒng)中,所述中央處理單元還包括枚舉模塊,所述枚舉模塊在系統(tǒng)處于主站模式時向設(shè)備端發(fā)送命令包以通過枚舉獲取設(shè)備的信息,并根據(jù)獲取的信息加載對應(yīng)的驅(qū)動;所述枚舉模塊在系統(tǒng)處于從站模式時將自身設(shè)備的信息返回給主機以讓主機識別并進行驅(qū)動。
[0011]在本發(fā)明所述的基于LPC1768平臺的USB接口系統(tǒng)中,所述中央處理單元還包括初始化模塊,用于根據(jù)系統(tǒng)的工作模式進行對應(yīng)的參數(shù)配置。
[0012]在本發(fā)明所述的基于LPC1768平臺的USB接口系統(tǒng)中,所述中央處理單元還包括熱拔插處理模塊,用于在偵測到USB連接引腳具有高電平信號輸入時復(fù)位總線并啟動枚舉模塊。
[0013]在本發(fā)明所述的基于LPC1768平臺的USB接口系統(tǒng)中,所述主從檢測模塊在第一USB接口具有設(shè)備接入且設(shè)置為主站模式時確認系統(tǒng)處于主站模式、在第二 USB接口具有設(shè)備接入且上位機設(shè)置為從站模式時確認系統(tǒng)處于從站模式。
[0014]本發(fā)明還提供一種基于LPC1768平臺的USB接口實現(xiàn)方法,所述LPC1768平臺包括LPC1768芯片以及差分信號端子分別連接到LPC1768芯片的相同引腳的第一 USB接口和第二 USB接口,且所述第一 USB接口的總線供電端子連接有主機電源開關(guān),該方法包括以下步驟:
[0015](a)根據(jù)所述第一 USB接口和第二 USB接口的連接狀態(tài)及選擇的模式確定工作模式,所述工作模式包括主站模式和從站模式;
[0016](b)在接收到數(shù)據(jù)或有數(shù)據(jù)要發(fā)送時,根據(jù)當前的工作模式進入主站中斷模式或從站中斷模式,其中:在主站中斷模式時讀取主機中斷寄存器并使數(shù)據(jù)收發(fā)模塊執(zhí)行端口事件處理操作,在從站中斷模式時讀取設(shè)備中斷寄存器并使數(shù)據(jù)收發(fā)模塊執(zhí)行收發(fā)數(shù)據(jù)操作。
[0017]在本發(fā)明所述的基于LPC1768平臺的USB接口實現(xiàn)方法中,所述步驟(b)之前包括:在確認處于主站模式時向設(shè)備端發(fā)送命令包以通過枚舉獲取設(shè)備的信息,并根據(jù)獲取的信息加載對應(yīng)的驅(qū)動;或者在確認處于從站模式時將自身設(shè)備的信息返回給主機以讓主機識別并進行驅(qū)動。
[0018]在本發(fā)明所述的基于LPC1768平臺的USB接口實現(xiàn)方法中,所述步驟(b)之前包括:根據(jù)確認的工作模式進行對應(yīng)的參數(shù)配置。
[0019]在本發(fā)明所述的基于LPC1768平臺的USB接口實現(xiàn)方法中,所述步驟(a)中,在第一 USB接口具有設(shè)備接入且設(shè)置為主站模式時確認處于主站模式、在第二 USB接口具有設(shè)備接入且設(shè)置為從站模式時確認處于從站模式。
[0020]本發(fā)明的基于LPC1768平臺的USB接口系統(tǒng)及實現(xiàn)方法,通過設(shè)置兩個USB接口并根據(jù)該兩個接口的連接狀態(tài)和上位機選擇的模式,實現(xiàn)了能夠同時支持USB主站和USB從站的功能,并簡化了電路、降低了軟件的復(fù)雜度。
【專利附圖】
【附圖說明】
[0021]圖1是本發(fā)明基于LPC1768平臺的USB接口系統(tǒng)實施例的硬件連接示意圖。[0022]圖2是圖1中的中央處理單元的示意圖。
[0023]圖3是本發(fā)明基于LPC1768平臺的USB接口實現(xiàn)方法實施例的流程示意圖。
[0024]圖4是圖3中USB主站中斷處理的示意圖。
[0025]圖5是圖3中USB從站中斷處理的示意圖。
【具體實施方式】
[0026]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0027]如圖1、2所示,是本發(fā)明基于LPC1768平臺的USB接口系統(tǒng)實施例的示意圖,其包括基于LPC1768芯片的中央處理單元10 (即在硬件上,中央處理單元10包括LPC1768芯片)、第一 USB接口 USB-A和第二 USB接口 USB-B,其中第一 USB接口和第二 USB接口的差分信號端子D+、D-分別連接到中央處理單元10的相同引腳USB_D+、USB_D-,且第一 USB接口的總線供電端子連接有主機電源開關(guān)(該主機電源開關(guān)例如可采用LM3526-L),以實現(xiàn)USB主機電源控制。上述第一 USB接口 USB-A和第二 USB接口 USB-B分別可作為對外的輸入輸出接口。
[0028]該中央處理單元10支持標準的OHCI接口,提供了訪問OHCI寄存器的指針(pUhp)和數(shù)據(jù)交換區(qū)(HCCA),并對該指針和數(shù)據(jù)交換區(qū)的訪問進行封裝,對外屏蔽了寄存器讀寫的細節(jié)。具體地,上述中央處理單元10包括主從檢測模塊11、中斷處理模塊12、數(shù)據(jù)收發(fā)模塊13,上述主從檢測模塊11、中斷處理模塊12、數(shù)據(jù)收發(fā)模塊13分別由運行在中央處理單元10的軟件實現(xiàn)。
[0029]主從檢測模塊11用于根據(jù)第一 USB接口 USB-A和第二 USB接口 USB-B的連接狀態(tài)及當前選擇的模式(具體可由系統(tǒng)提供GUI供使用者進行選擇)確定系統(tǒng)在兩個USB接口數(shù)據(jù)收發(fā)過程中采用的工作模式,上述工作模式包括主站模式和從站模式。特別地,該主從檢測模塊11在第一 USB接口 USB-A具有設(shè)備接入且系統(tǒng)設(shè)置為主站模式時確認系統(tǒng)處于主站模式、在第二 USB接口 USB-B具有設(shè)備接入且系統(tǒng)設(shè)置為從站模式時確認系統(tǒng)處于從站模式。
[0030]中斷處理模塊12用于在接收到數(shù)據(jù)或有數(shù)據(jù)要發(fā)送時,根據(jù)當前的工作模式使系統(tǒng)進入主站中斷模式或從站中斷模式。該中斷處理模塊12在主站中斷模式時讀取主機中斷寄存器并使數(shù)據(jù)收發(fā)模塊13執(zhí)行端口事件處理操作、在從站中斷模式時讀取設(shè)備中斷寄存器并使數(shù)據(jù)收發(fā)模塊13執(zhí)行收發(fā)數(shù)據(jù)操作。
[0031]具體地,在主站中斷模式下,數(shù)據(jù)收發(fā)模塊13的端口事件處理操作包括:讀取端口事件、置事件標志、回寫TD控制器狀態(tài)及清除中斷標志;數(shù)據(jù)收發(fā)模塊13的收發(fā)數(shù)據(jù)操作包括:控制端點接收數(shù)據(jù)處理、控制端點發(fā)送數(shù)據(jù)處理、邏輯端點接收數(shù)據(jù)處理、邏輯端點發(fā)送數(shù)據(jù)處理。
[0032]上述中央處理單元10還可包括初始化模塊15。該初始化模塊15用于根據(jù)中央處理單元10的工作模式進行對應(yīng)的參數(shù)配置,例如對引腳、時鐘、中斷等進行配置,其具體的參數(shù)分別與其他方式實現(xiàn)的USB主站、USB從站的參數(shù)相同。
[0033]上述的中央處理單元10還可包括枚舉模塊14。該枚舉模塊14在系統(tǒng)處于主站模式時向設(shè)備端(即連接到第一 USB接口 USB-A的設(shè)備)發(fā)送命令包,以通過枚舉獲取設(shè)備的信息(例如該設(shè)備的類別、通信方式等),并根據(jù)從設(shè)備端獲取的信息加載對應(yīng)的驅(qū)動;該枚舉模塊14在系統(tǒng)處于從站模式時,接收并響應(yīng)主機的命令包,將自身設(shè)備的信息(例如類別、通信方式等)返回給主機(即連接到第二 USB接口 USB-B的設(shè)備)以讓主機識別并進行驅(qū)動。當枚舉成功后,數(shù)據(jù)收發(fā)模塊13即可根據(jù)應(yīng)用層協(xié)議進行數(shù)據(jù)的組幀和解析操作。
[0034]上述中央處理單元10還可包括熱拔插處理模塊16,用于實現(xiàn)兩個USB接口的熱拔插操作。該熱拔插處理模塊16用于在偵測到USB連接引腳USB_C0NNET具有高電平信號輸入(即USB連接引腳USB_C0NNET對應(yīng)的差分信號D+上拉)時,確認USB接口接入了一個全速的USB設(shè)備,馬上復(fù)位總線并啟動枚舉模塊14進行枚舉操作。
[0035]如圖3所述,是本發(fā)明基于LPC1768平臺的USB接口實現(xiàn)方法實施例的流程示意圖,其中LPC1768平臺包括LPC1768芯片以及差分信號端子分別連接到LPC1768芯片的相同引腳的第一 USB接口和第二 USB接口,且第一 USB接口的總線供電端子連接有主機電源開關(guān)(例如LM3526-L),該方法包括以下步驟:
[0036]步驟S31:LPCl768芯片實時檢測第一 USB接口和第二 USB接口的連接狀態(tài),SPLPC1768芯片實時檢測其USB_D+和USB_D_引腳是否具有電平信號輸入。該步驟中若檢測到第一 USB接口和第二 USB接口中的任一個具有設(shè)備接入,則執(zhí)行步驟S32。
[0037]步驟S32:LPC1768芯片根據(jù)選擇的模式以及第一USB接口的連接狀態(tài)確定是否為主站模式,若選擇了主站模式且第一 USB接口具有設(shè)備接入,則確認為主站模式,并執(zhí)行步驟S33,否則執(zhí)行步驟S34。
[0038]步驟S33:LPC1768芯片在接收到數(shù)據(jù)或有數(shù)據(jù)要發(fā)送時,進入主站中斷模式。
[0039]步驟S34:LPC1768芯片根據(jù)選擇的模式以及第二USB接口的連接狀態(tài)確定是否為從站模式,若選擇了從站模式且第二 USB接口具有設(shè)備接入,則確認為從站模式,并執(zhí)行步驟S35,否則返回步驟S31。
[0040]步驟S35:LPC1768芯片在接收到數(shù)據(jù)或有數(shù)據(jù)要發(fā)送時,進入主站中斷模式。
[0041]在上述方法中還包括:在確認處于主站模式時,LPC1768芯片向設(shè)備端發(fā)送命令包,以通過枚舉獲取設(shè)備的信息,并根據(jù)獲取的信息加載對應(yīng)的驅(qū)動;或者在確認處于從站模式時將自身設(shè)備的信息返回給主機以讓主機識別并進行驅(qū)動。
[0042]此外,上述方法還可包括初始化步驟,即根據(jù)確認的工作模式進行對應(yīng)的參數(shù)配置。
[0043]在上述方法中,主機模式下數(shù)據(jù)傳輸都是通過端點描述符(ED)和傳輸描述符(TD)這兩種數(shù)據(jù)結(jié)構(gòu)來完成的,在進行傳輸之前需要對ED和TD進行相應(yīng)的設(shè)置,才可以保證數(shù)據(jù)傳輸?shù)恼_性。從機模式下數(shù)據(jù)傳輸是通過控制端點和邏輯端點對數(shù)據(jù)進行接收和發(fā)送。
[0044]具體地,如圖4所示,是圖3中USB主站中斷處理步驟的流程圖,其具體包括:
[0045]步驟S331:讀取主機中斷寄存器HcInterruptStatus。
[0046]步驟S332:在有端口事件改變時,讀取端口事件寄存器HcRhPortStatusl。
[0047]步驟S333:置事件標志,即置連接狀態(tài)標志。
[0048]步驟S334:回寫TD控制器狀態(tài)。[0049]步驟S335:清除中斷標志。
[0050]如圖5所示,是圖3中USB從站中斷處理步驟的流程圖,其具體包括:
[0051]步驟S351:讀取設(shè)備中斷寄存器。
[0052]步驟S352:控制端點接收數(shù)據(jù)處理,即執(zhí)行接收SETUP包、置位狀態(tài)寄存器等操作。
[0053]步驟S353:控制端點發(fā)送數(shù)據(jù)處理,即執(zhí)行發(fā)送控制包、置位狀態(tài)寄存器等操作。
[0054]步驟S354:邏輯端點接收數(shù)據(jù)處理,即從接收緩沖區(qū)讀取數(shù)據(jù)。
[0055]步驟S355:邏輯端點發(fā)送數(shù)據(jù)處理,即通過端點發(fā)送數(shù)據(jù)。
[0056]以上所述,僅為本發(fā)明較佳的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)該以權(quán)利要求的保護范圍為準。
【權(quán)利要求】
1.一種基于LPC1768平臺的USB接口系統(tǒng),包括由LPC1768構(gòu)成的中央處理單元,其特征在于:該USB接口系統(tǒng)還包括差分信號端子分別連接到中央處理單元的相同引腳的第一USB接口和第二 USB接口,且所述第一 USB接口的總線供電端子連接有主機電源開關(guān);所述中央處理單元包括主從檢測模塊、中斷處理模塊、數(shù)據(jù)收發(fā)模塊,其中: 所述主從檢測模塊,用于根據(jù)所述第一 USB接口和第二 USB接口的連接狀態(tài)及上位機選擇的模式確定系統(tǒng)工作模式,所述工作模式包括主站模式和從站模式; 所述中斷處理模塊,用于在接收到數(shù)據(jù)或有數(shù)據(jù)要發(fā)送時,根據(jù)系統(tǒng)工作模式進入主站中斷模式或從站中斷模式;所述中斷處理模塊在主站中斷模式時讀取主機中斷寄存器并使數(shù)據(jù)收發(fā)模塊執(zhí)行端口事件處理操作、在從站中斷模式時讀取設(shè)備中斷寄存器并使數(shù)據(jù)收發(fā)模塊執(zhí)行收發(fā)數(shù)據(jù)操作。
2.根據(jù)權(quán)利要求1所述的基于LPC1768平臺的USB接口系統(tǒng),其特征在于:所述數(shù)據(jù)收發(fā)模塊的端口事件處理操作包括:讀取端口事件、置事件標志、回寫TD控制器狀態(tài)及清除中斷標志;所述數(shù)據(jù)收發(fā)模塊的收發(fā)數(shù)據(jù)操作包括:控制端點接收數(shù)據(jù)處理、控制端點發(fā)送數(shù)據(jù)處理、邏輯端點接收數(shù)據(jù)處理、邏輯端點發(fā)送數(shù)據(jù)處理。
3.根據(jù)權(quán)利要求1所述的基于LPC1768平臺的USB接口系統(tǒng),其特征在于:所述中央處理單元還包括枚舉模塊,所述枚舉模塊在系統(tǒng)處于主站模式時向設(shè)備端發(fā)送命令包以通過枚舉獲取設(shè)備的信息,并根據(jù)獲取的信息加載對應(yīng)的驅(qū)動;所述枚舉模塊在系統(tǒng)處于從站模式時將自身設(shè)備的信息返回給主機以讓主機識別并進行驅(qū)動。
4.根據(jù)權(quán)利要求3所述的基于LPC1768平臺的USB接口系統(tǒng),其特征在于:所述中央處理單元還包括初始化 模塊,用于根據(jù)系統(tǒng)的工作模式進行對應(yīng)的參數(shù)配置。
5.根據(jù)權(quán)利要求3所述的基于LPC1768平臺的USB接口系統(tǒng),其特征在于:所述中央處理單元還包括熱拔插處理模塊,用于在偵測到USB連接引腳具有高電平信號輸入時復(fù)位總線并啟動枚舉模塊。
6.根據(jù)權(quán)利要求3所述的基于LPC1768平臺的USB接口系統(tǒng),其特征在于:所述主從檢測模塊在第一 USB接口具有設(shè)備接入且設(shè)置為主站模式時確認系統(tǒng)處于主站模式、在第二 USB接口具有設(shè)備接入且上位機設(shè)置為從站模式時確認系統(tǒng)處于從站模式。
7.一種基于LPC1768平臺的USB接口實現(xiàn)方法,其特征在于:所述LPC1768平臺包括LPC1768芯片以及差分信號端子分別連接到LPC1768芯片的相同引腳的第一 USB接口和第二 USB接口,且所述第一 USB接口的總線供電端子連接有主機電源開關(guān),該方法包括以下步驟: (a)根據(jù)所述第一USB接口和第二 USB接口的連接狀態(tài)及選擇的模式確定工作模式,所述工作模式包括主站模式和從站模式; (b)在接收到數(shù)據(jù)或有數(shù)據(jù)要發(fā)送時,根據(jù)當前的工作模式進入主站中斷模式或從站中斷模式,其中:在主站中斷模式時讀取主機中斷寄存器并使數(shù)據(jù)收發(fā)模塊執(zhí)行端口事件處理操作,在從站中斷模式時讀取設(shè)備中斷寄存器并使數(shù)據(jù)收發(fā)模塊執(zhí)行收發(fā)數(shù)據(jù)操作。
8.根據(jù)權(quán)利要求7所述的基于LPC1768平臺的USB接口實現(xiàn)方法,其特征在于:所述步驟(b)之前包括:在確認處于主站模式時向設(shè)備端發(fā)送命令包以通過枚舉獲取設(shè)備的信息,并根據(jù)獲取的信息加載對應(yīng)的驅(qū)動;或者在確認處于從站模式時將自身設(shè)備的信息返回給主機以讓主機識別并進行驅(qū)動。
9.根據(jù)權(quán)利要求6所述的基于LPC1768平臺的USB接口實現(xiàn)方法,其特征在于:所述步驟(b)之前包括:根據(jù)確認的工作模式進行對應(yīng)的參數(shù)配置。
10.根據(jù)權(quán)利要求6所述的基于LPC1768平臺的USB接口實現(xiàn)方法,其特征在于:所述步驟(a)中,在第一USB接口具有設(shè)備接入且設(shè)置為主站模式時確認處于主站模式、在第二USB接口具有設(shè)備接 入且設(shè)置為從站模式時確認處于從站模式。
【文檔編號】G06F13/40GK104021101SQ201410196493
【公開日】2014年9月3日 申請日期:2014年5月9日 優(yōu)先權(quán)日:2014年5月9日
【發(fā)明者】黃華政 申請人:深圳市匯川控制技術(shù)有限公司